基于Internet的协同实体建模系统的设计与实现_第1页
基于Internet的协同实体建模系统的设计与实现_第2页
基于Internet的协同实体建模系统的设计与实现_第3页
基于Internet的协同实体建模系统的设计与实现_第4页
基于Internet的协同实体建模系统的设计与实现_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于Internet的协同实体建模系统的设计与实现* 国家自然科学基金(69973045)和教育部骨干教师基金资助。周勋,男,1979年生,硕士研究生,主要研究方向为CAD与协同设计。李洁,1979年生,女,硕士研究生,主要研究方向为CAD与协同设计。何发智,男,1968年生,博士、讲师,主要研究方向为CAD/CAM/CSCW/协同设计。高曙明,男,1964年生,博士、教授、博导,主要研究方向为CAD/CAM/特征技术/虚拟现实/协同设计。 本文通讯联系人:何发智,杭州 310027,浙江大学CAD&CG国家重点实验室周勋 李洁 何发智 高曙明(浙江大学CAD&CG国家重点实验室 杭州 310

2、027)摘要:讨论了基于Internet的协同实体建模系统的设计及关键实现技术,并开发了一原型系统ZUNetCAD。首先,ZUNetCAD采用了基于分布式对象的组件结构,把几何引擎封装成实体建模服务器,为远程异地客户提供造型服务。然后解决了在瘦客户端对远程异地服务器上几何模型中拓扑元素进行显示和交互的问题。最后针对协同建模中的三个关键问题拓扑元素的命名、局部传输、一致性维护与并发控制提出了相应的解决措施。通过在Internet上对原型系统的实验,验证了ZUNetCAD的系统框架和技术思路的正确性。关键词:协同设计 实体建模 因特网 Collaborative Solid Modeling Sy

3、stem Over InternetZHOU Xun LI Jie HE Fa-Zhi GAO Shu-Ming( State Key Laboratory of CAD&CG, Zhejiang University, Hangzhou, 310027 )Abstract: A collaborative solid modeling system over Internet is studied. The architecture of ZUNetCAD based on component bus is presented. A CORBA wrapper of the geometri

4、c engine provided the modeling services for remote clients. The interaction methods in clients are provided to reference the topologic entities in server. Some key issues of ZUNetCAD, such as naming geometric entities, dynamic segmentation and incremental transmission of solid model, consistency mai

5、ntenance and concurrent control are researched. The prototype has been implemented and tested in Internet environment. Key words: Collaborative Design Solid Modeling Internet1 引言实体建模是CAD/CAM技术的核心内容1。典型实体建模系统通常是面向单机单用户环境,仍然是目前商品化CAD系统的主流。传统分布式CAD系统也仅仅只是把实体建模功能分散在不同的物理地点上予以实现,基本上也只能提供人机交互的能力。而协同实体建模则必

6、须支持设计者之间的密切交流,通常要求具备群体性、动态性、并行性、异地性和实时性等方面的要求2 3。由于Internet的快速发展,以及日益加剧的全球化市场竞争,基于Internet的协同实体建模已经成为CAD/CAM的一个重要研究课题。基于Internet的协同实体建模系统,可以是Web使能的45,也可以不是Web使能的6;可以是基于分布式对象技术的4 6,也可以不基于分布式对象技术57;可以是基于特征的45,也可以不基于特征67。本文对一个基于Internet的实体建模系统的设计和关键实施技术进行了研究,主要目的是进行技术探索和系统验证。2 ZUNetCAD的系统框架2000年6月OMG(O

7、bject Management Group, 对象管理集团)发布了征求1.0版CAD服务设施(CAD Services V1.0 Request for Proposal)的要求8。2001年1月OMG公布了由达索/IBM、SDRC、UG等联合提交的初步建议(Initial Submission CAD Services),该建议得到波音、通用电器、美国国家标准局等的支持9。这两个文件为新一代CAD系统确立了一个发展方向,有关实体建模的研究、开发和应用将围绕基于分布式对象的CAD服务设施开展新一轮竞争10。ZUNetCAD基于这种思想,系统框架见图1。服务器端为客户提供基本实体造型和协作管理

8、等服务,而客户端则支持数据显示和用户交互。CORBA服务按照提供服务的类型和名称进行IDL的设计。客户端向中间件ORB发出实体造型操作请求,由ORB定位该请求的服务,由服务器完成该造型,并通过反向更新将造型结果返回到客户端。建模服务器协作管理完整几何模型骨架(skeleton)Web服务器Internet ( CORBA & HTTP )存根(stub)其他类型的应用存根(stub)简化面边模型Java Application存根(stub)简化面边模型Java Applet数据库服务器STEP数据Web Portal图1 ZUNetCAD的系统框架3 模块设计3.1 服务器端服务器端的功能主

9、要有三个,一是造型服务,二是协作管理,三是实体模型的传输。造型服务是通过对主流几何引擎为内核进行封装而形成的CORBA对象,该对象可以根据客户请求进行真正意义上的几何造型运算。协作管理主要是指任务、用户和会话的管理。对于不同的任务,需要分配不同的工作空间,使各个项目保持相对的独立性。用户管理包括新用户注册、现有用户的注销、权限分配等。会话管理负责用户登录,提供任务向导,并把造型服务的结果发送给该任务的所有在线用户。服务器端还需把复杂的几何模型离散为面和线,以便供客户端显示之用。三维实体一般是比较复杂的,离散后的数据传输量非常大。ZUNetCAD提出了两种解决方法。一是在新用户加入时,先传输实体

10、的线框模型,再传输面片模型,由于线框模型数据量小,用户就能尽快地看到实体的大致结构,以避免长时间等待。二是在造型造型过程中,采用局部传输方法,即只传输更新的实体数据。通过上述措施,Internet上协同设计最容易招致批评的实时性问题将得以缓解。3.2 客户端ZUNetCAD原则上支持任何符合CORBA接口规范的客户形式,包括Java小程序、Java标准程序和其他类型的应用程序。以Java客户端为例,主要功能是模型显示和用户交互。但是Java 3D自身模型无法支持用户对几何模型中拓扑元素面或者边的选取。Java 3D的模型采用树型结构,根代表总场景,然后二分为两个子树。左子树中存放场景构造数据,

11、右子树中存放场景视图,通常情况下,左子树下将是一系列的离散面片,仅能对面片进行选取和操作。ZUNetCAD对左子树进行了改进,将左子树扩展为两个子树,面模型子树和边模型子树,这两个子树均包含一定拓扑结构。其中,在面模型子树中定制一系列的面节点,每个面节点保存面名字ID和两个指针,该指针分别指向面的属性数据和组成该面的面片集。边模型子树中同样也定制了一系列的边节点,每个边节点保存边名字ID和两个指针,该指针指向边的属性数据和组成该边的离散边集合。这里的名字ID与服务器上几何模型拓扑元素名字ID对应。当用户利用Java 3D的GUI选择到一个面片或者离散边时,ZUNetCAD通过上述改进数据结构就

12、能找到所对应的面节点或者边节点,通过节点中的名字ID就能找到对应几何模型中拓扑元素面或者边。这样,既与复杂的几何模型不同,又与纯粹显示用途的面片模型不同,ZUNetCAD在保证客户端足够“瘦”的同时,又能对真正几何模型中的面边拓扑元素进行选取,从而保证了协同实体造型过程中的显示和交互。4 关键实施技术4.1 拓扑元素的命名在实体建模过程中,为了能够有效地引用和查找拓扑元素,需要对拓扑元素进行永久命名。在协同实体建模中,拓扑元素命名的首要任务是保证操作的目标对象在客户端和服务器端的统一。客户端在建模过程中往往需要选择具体的面、边、点等拓扑元素,以确定操作的目标对象,同时需要把这一信息正确地传送到

13、服务器,以便服务器进行相应操作。通过对拓扑元素命名,使每个拓扑元素都有自己的名字,从而当需要传输拓扑元素时,只需把它的名字传送到服务器端即可。拓扑元素命名的第二个重要任务是有效地支持局部传输,通过给每个拓扑元素命名,可以方便地找到变动元素。ZUNetCAD中拓扑元素的名字格式采用8位十进制数12345678。其中1、2位是操作号,客户端每进行一个操作,该操作号自动加一。第3位是拓扑元素的标识符,1表示面、2表示边、3表示点;4、5、6位是面、边、点在所在物体中的编号。7、8位用于当拓扑元素被分割时,对分割的拓扑元素加以区分。对于布尔操作或倒角等操作引起的拓扑元素的增减变化,需对新增加的元素命以

14、不同的名字。这里有三种情况。第一种情况,该面、边为新增加的,原先没有名字,则用当前操作号作为名字的前两位。第二种情况,由于面或者边分离时继承原物体中相应拓扑元素的名字,会出现重名,所以需要对该面或者边重新命名,命名的方法是操作号仍为原先的操作号,但对最后两位即7、8位的序号在原先的基础上递增,以保证没有重名。第三种情况,面或者边合并,这时一个面或者边就会有两个名字,这时就需要删除其中某个面或者边的操作号,删除原则是将当前辅助物体的操作号删除掉。所谓辅助物体就是仅起过渡作用,但并不在结果物体中显示的物体。例如布尔运算A-B中,A是主要物体,将作为结果物体显示,B则是辅助物体。4.2 局部传输方法

15、在协同建模过程中,网络带宽和CAD数据规模始终是一对矛盾。ZUNetCAD采用了局部传输方法,即只传输当前操作后改变过的元素。造型操作的结果有三类:新增加(ADD)的元素、需要删除(DELETE)的元素、发生变动(UPDATE)的元素。若能得到这三类元素的集合,就可以实现局部传输。根据命名机制,名字的前2位代表该元素是在哪一步操作中生成的。如果元素的操作号等于当前操作号,那么该元素就是新生成的,归为ADD集合。对于删除元素,可以将当前元素集合与操作之前的元素集合进行比较,如果操作之前的元素在当前操作元素集合中不存在,那么该元素就可以归为DELETE集合。对于变动元素可以通过以下方法找到。从三维

16、实体的拓扑结构分析,与一个ADD的点相邻的边要么是UPDATE的边,要么是ADD的边,不可能是没有变化的边。同样情形,与一条ADD或UPDATE的边相邻的面要么是UPDATE的面,要么是ADD的面。这样,首先在相邻面或边中判别出ADD的面或边,那么剩下的相邻面或边就是UPDATE的面或边。对于ADD和UPDATE的元素,需要传输离散后的面片或边的数据,而对于DELETE的元素,只需传与之对应的名字即可。4.3 一致性维护和并发控制协同建模系统支持物理上分散的多个协作用户的并行操作,必须采取并发控制来保证共享数据在各个站点上的一致性。并发控制在很大程度上取决于系统结构,ZUNetCAD建模系统属

17、于集中式结构。集中式结构的顺序处理是生来固有的悲观策略,事件按照先到先服务的次序进行处理,不会有失序,即请求被收到之后,先存放在请求队列中,只有在上一个请求执行之后,下一个请求才能被执行。对于添加操作,按照串行化方法执行。根据ZUNetCAD的命名机制,所得到实体元素的名字将是唯一的,并在本次协同建模的会话周期内保持不变。这样,各个站点根据该名字进行操作将不会产生歧义。由于网络延迟的原因,可能会造成多个站点发出的操作请求有冲突。该冲突可以表现为对同一实体对象的操作冲突,也可以表现为对不同的实体对象操作冲突。ZUNetCAD对已经生成的实体对象定义了三种基本操作:删除、修改和锁定。这样对同一实体

18、对象的操作冲突可以解析为六种情况。第一种情况,删除与删除之间的冲突,放弃后面的删除操作,结果是该对象被删除。第二种情况,修改与修改之间的冲突,顺序执行,最终结果为后一个修改操作的结果。第三种情况,删除与修改之间的冲突,若修改在前删除在后就顺序执行,若删除在前修改在后则放弃修改操作,最终结果是该对象被删除。第四种情况,删除与锁定之间的冲突,放弃后面的一个操作,结果要么是删除,要么是锁定。第五种情况,修改与锁定,若修改在前锁定在后就顺序执行,若锁定在前修改在后则放弃修改操作,最终结果是该对象被锁定。第六种情况,锁定与锁定之间的冲突,放弃后面的锁定操作,结果是该对象被第一个操作锁定。对于锁定的对象,

19、ZUNetCAD规定了两种解锁方法,一是由锁定用户来解锁,二是由系统来强制解锁。除了第一种情况以外,其他五种情况会产生传统意义上不自然的用户界面,但作为协同工作环境,ZUNetCAD用户应该意识到这也是一种协作方式。对不同实体对象的冲突操作,是指某个操作所依赖或者所引用的对象在操作过程中会被其他用户的操作所改动。加锁是解决这类问题的有效方法。ZUNetCAD中锁定操作的相关冲突已经在上文得到解析,需要指出的是,由于网络延迟,在个别情况下,最终锁定得到的实体对象可能已经不处在用户所期望状态,这时需要用户主动调整。4 系统实现ZUNetCAD的组件总线以OOC公司(现被Orbix公司并购)开放源代

20、码的ORB产品ORBacus 4.1.0为蓝本开发。服务器端的几何引擎为美国Spatial TechnologyArizona State University)设计自动化室连接起来,实现了远程异地建模。图2为原型系统中两个用户USER_0和USER_1协同建模的情形,其中,USER_1在试图对USER_0加锁的面上打孔时,该操作将会被禁止。USER_1锁定的面 USER_0锁定的面 (a) USER_0的界面 (b) USER_1的界面 图2 原型系统运行界面5 结束语本文以一个基于Internet协同建模系统的设计和实现为背景,对协同建模中的若干有代表性的问题进行了探讨,提出了相应的解决方

21、法,并在Internet环境下对原型系统进行了测试。下一步的努力方向是支持参数化特征造型和分布式约束求解,以便更好地为CAD/CAM服务。参考文献1 唐荣锡. CAD/CAM技术. 北京: 北京航空航天大学出版社. 19942 林宗楷. 协同设计将对设计工作和CAD技术引起的变化. 软件学报, 1998, 9(增刊): 126130 3 Wu D, Sarma R. dynamic segmentation and Incremental editing of Boundary. In: Proceedings of 2001 ACM symposium on Solid modeling a

22、nd applications. New York: ACM Press. 2893004 Lee J Y, Kim H, Han S B, Park S B. Net-work-centric feature-based modeling. In: Proceedings of Pacific Graphics99 - The Seventh Pacific Conference on Computer Graphics and Applications. Los Alimitos, CA: IEEE Computer Society, 1999. 2802895 Bidarra R, Berg E V D, Bronsvoort W F. Web-based collaborative feature modeling. Proceedings sixth ACM symposium on Solid modeling and applications. New York: ACM Press, 2001. 319 320 6 Lukas U V. Collaborative

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论