2.1 三维模型的显示
目前各种商业CAD软件都有各自的模型显示格式,CAD业界也制定了各种标准格式以便于不同平台之间的数据交流,目前比较流行的有STEP,IGES等格式。由于作为网络协同交流的CAD模型更注重的是模型的几何信息,而诸如材料、工艺和精度等信息相对次要。因此采用STL和OBJ格式的轻量化模型,这两种文件主要包含了模型的几何信息,以三角网格片的形式呈现,数据量比较小,有利于网络的共享传输。另外,三角网格模型的处理简单、计算量小,而且现有的图形硬件大多支持三角形绘制的加速,可实现快速绘制,很好地满足实时交互的要求。值得一提的是OBJ格式的模型在实际协同显示中比STL格式的模型具有更好的优势。
2.2 基于xml的消息通信协议
在协同中要进行多种类型的信息交流,包括会议管理信息,模型操作信息,文本聊天信息等。如何有效地对各种信息进行封 装和解析,采用了基于XML(Extensible Markup Language)的消息 通信协议。XML是W3C(互联网联合组织)创建的一组规范,用 于解决计算机之间的传输和文档交换问题。因为XML是一个与 平台、语言和厂商无关的统一数据格式标准,用它作为消息通信 协议具有存储格式良好,可扩展性强,高度结构化,容易传输等 几个优点。
在系统实际开发中涉及到文字聊天信息,模型操作信息,圈 阅信息和会议管理信息的传送和接收。作为操作端要把这些信 息进行分类并且封装为XML格式,然后作为文本字符串发送出 去,作为接收者则要解析XML文本信息,执行相应的操作。以下 是将2D圈阅中画直线的信息封装为XML文本的格式:
如图2所示,是消息从操作端到浏览端的整个流程。
图2 消息流程图
为了提高消息发送和接受的效率,系统采用了多线程技术。 即除了主线程外设计了两个线程,一个是发送线程,用于在协同 过程中发送协同消息;一个是接收线程,用于等待接收和处理传 送过来的消息。
在通常情况下只有主线程执行操作,而发送线程和接收线 程处于阻塞状态,当有信息需要发送的时候会自动通知发送线 程进行发送操作,当收到信息的时候接收线程会对收到的信息 进行解析和响应操作。这样可以有效地节省处理器的资源,同 时明确功能的划分。
2.3 会议用户和角色管理
如何有效地维护各个用户之间的关系,如何有效地维护各 个角色的行为是协同过程的关键。每个会议都有唯一一个主机 端和多个客户端,主机端具有指定某会议成员成为操作者的权 利,客户端可以向主机端申请成为操作者。同时,每个会议都有 唯一一个操作者和很多个浏览者,操作者可以对模型进行操作 控制,浏览者的操作行为则受到限制。系统设计中约定:创建会 议的用户就是会议的主机端,而后来加人的用户将成为会议的 客户端,这种关系直到用户退出会议或会议解散为止。另外,操 作者可以由主机端指定,一旦某成员成为操作者,会议的其他成 员则默认成为浏览者。
3 系统界面及特点
系统的运行界面,如图3图所示。
图3 系统运行界面
本系统采用Eclipse组织编写的sWT开发包进行界面编程,直接调用操作系统的图形库,从而使得Java应用程序的界面外观与操作系统完全一致;更为重要的是,对本地方法的直接调用大幅度的提高了Java应用程序的运行速度。另外,SWT内部绑定OpenGLl.1的函数库,系统涉及到的CAD三维显示操作采用该图形函数库来编写。
系统界面主要分为三大块:最上面是菜单栏和工具栏。左边是模型交互浏览窗口,右边是协同模块,包括用户列表的显示,用户操作的申请管理以及文本聊天信息的发送和显示。该系统的主要优点是部署简单,操作方便,用户只要通过浏览器就可直接下载运行程序,采用点对点的通信方式,不用设置服务器端进行消息中转,各用户既可以是主机端也可以是浏览端。另外系统采用Java语言编写,具有跨平台性,一次编写,随处运行。
4 结语
论述了轻量化CAD模型实时协同系统的设计框架,提出了基于XML的消息通信协议,实现了高效便捷的点对点通信方式,解决了在跨平台条件下实现异地同步的设计协同交流。系统待解决的问题:目前系统只能实现单个零件的浏览批注,基于装配组件的协同交流具有更现实的需求,而从CAD模型中提取装配零件信息则是该功能实现的关键。