已阅读5页,还剩70页未读, 继续免费阅读
(机械电子工程专业论文)基于扩展命令流的三维建模系统.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
u n i v e r s i t yo fs c i e n c ea n dt e c h n o l o g yo fc h i n a adi s s e r t a t i o nf o rm a s t e r sd e g r e e ae x t ende dc omamndsb a s e d3d m o d e i i n gs y s t e m 1 _ 一一 a u t h o r sn a m e :j i a nl i s p e c i a l i t y :m e c h a n i c a la n de l e c t r i c a le n g i n e e r i n g s u p e r v i s o r :p r o f l i a n g u a ns h e n f i n i s h e dt i m e :j u n e11 ,2 0 11 中国科学技术大学学位论文原创性声明 本人声明所呈交的学位论文,是本人在导师指导下进行研究工作所取得的成 果。除已特别加以标注和致谢的地方外,论文中不包含任何他人已经发表或撰写 过的研究成果。与我一同工作的同志对本研究所做的贡献均已在论文中作了明确 的说明。 作者签名:签字日期: 中国科学技术大学学位论文授权使用声明 作为申请学位的条件之一,学位论文著作权拥有者授权中国科学技术大学拥 有学位论文的部分使用权,即:学校有权按有关规定向国家有关部门或机构送交 论文的复印件和电子版,允许论文被查阅和借阅,可以将学位论文编入中国学 位论文全文数据库等有关数据库进行检索,可以采用影印、缩印或扫描等复制 手段保存、汇编学位论文。本人提交的电子文档的内容和纸质论文的内容相一致。 保密的学位论文在解密后也遵守此规定。 d ,从开口保密( 年) 作者签名: 耋复 签字日期:z = i i c 肜 导师签名: 签字日期: 摘要 摘要 随着i n t e m e t 技术的不断发展和人们对c a d 软件的需求,传统c a d 技术越 来越向着网络化、协同化的方向发展。本文针对这一趋势,分析了国内外现有 软件系统,并针对实验室原有的w e b c a d 系统提出了一套基于扩展命令流的架 构,用于快速构建三维网络化的协同c a d 平台。 通过使用扩展命令流,将c a d 软件的开发分成了若干定义良好的模块,包 括用户界面的,命令流的分析器和服务器端三部分。通过将主要的业务和逻辑 集中于分析器之上,软件开发人员不但能迅速而高效针对自己的需求对其的进 行开发,维护和扩展,同时还能迅速而轻松的将原有的软件系统集成进该网络 化协同设计系统。该系统采用c + + 语言开发,具有很好的扩展性能,借助于通过 网络传输纯文本的命令流,该系统能够与其他不同的操作系统平台,不同的开 发语言的软件轻松进行交互。 在这个系统中,不但将二维和三维的操作统一进行处理,不再区分两者的 区别,同时也将用户之间的交流也作为一种命令来处理,无论是客户端还是服 务器端的架构都大大简化,后期的开发人员更易扩展和维护。同时考虑到对已 有单机类建模软件的集成,服务器端的协同控制采用先来先服务的策略( f i f o ) , 而不是原来w e b c a d 采用的基于多种用户权限的策略,这样已有的并不支持用 户权限的单机建模软件只需稍稍改动即可与本系统相集成。同时对服务器对客 户端连接的处理上牺牲了一点移植性采用更为有效率的e p o l l 机制。 在本文的最后,对所做的工作进行了总结,并对将来的工作提出了展望。 关键词:扩展命令流,网络c a d ,协同 _ 。一 a b s t r a c t a b s t r a c t a si n t e r n e tr e l a t e dt e c h n o l o g i e sa n dt h ed e m a n d sf o rc o m p u t e ra i d e d d e s i g nc o n t i n u et oe v o l v e ,t r a d i t i o n a lc a ds o f t w a r eb e c o m e sm o r ea n dm o r e t o w a r d st h en e t w o r ka n dc o l l a b o r a t i o nd i r e c t i o n 1 nt h i sp a p er ,a ne x t e n d e d c o m m a n ds t r e a mb a s e dn e t w o r kc o l l a b o r a t i v ed e s i g nf r a m e w o r ki sp r o p o s e d b yu s i n gt h ee x t e n d e dc o m m a n ds t r e a m ,t h ec a d s o f t w a r ei sd i v i d e di n t o af e ww e l l d e f i n e dm o d u l e s ,i n c l u d i n gu s e ri n t e r f a c e ,c o m m a n ds t r e a mp a r s e r a n dt h es e r v e rv i ap u t t i n gc o r eb u s i n e s sa n dl o g i ct o g e t h e ri n p a r s e r , d e v e l o p e mc a nn o to n l yd e v e l o pq u i c k l ya n de f f i c i e n t l y , b u ta l s oe n h a n c et h e m a i n t a i n a b i l i t ya n de x p a n s i b i l i t y a tt h es a m et i m e ,i tb e c o m e sq u i c k e ra n d e a s i e rt oi n t e g r a t et h el e g a c ys o f t w a r es y s t e mi n t ot h i sf r a m e w o r k t h es y s t e m i sd e v e l o p e db yc + + l a n g u a g ew i t hg o o ds c a l a b i l i t y s i n c eo n l yp l a i nt e x ti s t r a n s m i t t e db e t w e e ns e r v e ra n dc l i e n t ,t h es y s t e mc a np o r tt od i f i e r e n t o p e r a t i n gs y s t e m sa n dp l a t f o r m se a s i l y i nt h i s s y s t e m ,n o to n l y t h e o p e r a t i o n s o ft w o d i m e n s i o n a la n d t h r e e d i m e n s i o n a lp r o c e s s i n g ,b u ta l s ot h ec o m m u n i c a t i o no fu s e r sa r eu n i f i e d t r e a t e da sn o r m a lc o m m a n d s t h a ti sw h yt h es t r u c t u r eo fb o t hc l i e n ta n d s e r v e rs i d ea r eg r e a t l ys i m p l i f i e d d u et ot h ei n t e g r a t i o no ft h el e g a c ym o d e l i n g s o f t w a r e ,af i r s t c o m ef i r s t s e r v e d ( f i f o ) c o o p e r a t i v ec o n t r o ls t r a t e g yi su s e d i nt h es e r v e r - s i d e c o m p a r et od e t e r m i n eb yu s e r s r o l ea n dp r i o r i t ys t r a t e g y w h i c hw a sa d o p t e db yt h eo r i g i n a lw e b c a d ,t h i sp o l i c ym a k e si ts i m p l e rt o s u p p o r tt h ee x i s t i n gs t a n d a l o n em o d e l i n gs o f t w a r e m e a n w h i l e ,t h es e r v e r h a n d st h ec l i e n tc o n n e c t i o n sv i ae p o l lm e c h a n i s m a l t h o u g hi ts a c r i f i c e sal i t t l e p o r t a b i l i t y ,t h ee f f i c i e n c yi si m p r o v e dg r e a t l y i nt h el a s t ,ab r i e fs u m m a r i z a t i o na n dp r o s p e c t i v ep l a nf o rt h ef u t u r ew o r k a r eg i v e n k e y w o r d s :e x t e n d e dc o m m a n d s ,w e bb a s e dc a d ,c o l l a b o r a t i o n 目录 目录 摘要i a b s t r a c t i i i 目录v 第1 章绪论:1 1 1 研究背景1 1 2 国内外研究动态2 1 3 命令流的历史和现状一3 1 4 论文的主要研究内容4 第2 章基于扩展命令流的系统设计5 2 1 系统的总体结构设计5 2 2 系统的设计目标:6 2 2 1 易于扩展6 2 2 2 轻量级7 2 2 3 网络的透明性8 2 2 4 与遗留软件的兼容性8 2 2 5 其他的协同设计的特性9 2 3 三维平台的构建9 2 3 1 商业软件一功能完备但使用上诸多限制。1 0 2 3 2 免费软件可以自由使用但是不开放源代码1 0 2 3 3 开源解决方案开源且完全自由使用,但是文档并不齐备1 2 第3 章扩展命令流的设计与实现1 5 v 目录 3 1 扩展命令流( e x t e n d e dc o m m a n d ss t r e a m ) 与r a wc o m m a n d ss t r e a m 1 5 3 2 上下文无关文法1 6 3 3 扩展命令流的设计1 7 3 3 1 特性1 - 静态类型安全( s t a t i c t y p es a f e ) ,1 7 3 3 2 特性2 :变量的声明与赋值( v a r i a b l ed e c l a r a t i o na n da s s i g n m e n t ) 2 0 3 3 3 特性3 :控制结构c o n t r o ls 缸u c t u r e :i f w h i l e f o re r e 2 1 3 3 4 特性4 :内置的数学函数b u i l t i nm a t hf u n c t i o n 2 2 3 3 5 特性5 :与r a wc o m m a n d 一一对应的建模函数2 3 3 3 6 特性6 :完全同于c 语言的函数调用机制。2 4 3 3 7 其他一些特性。2 5 第4 章扩展命令流分析器( p a r s e r ) 的设计与实现2 7 4 1 分析器的组成2 7 4 2 词法分析2 7 4 2 1 正则表达式与巴克斯诺尔范式( b n f ) 2 7 4 2 2 扩展巴克斯诺尔范式( e b n f ) 及其构造词法分析实例2 8 4 3 语法分析2 9 4 4 基本命令流生成器3l 第5 章客户端和服务器端的设计与实现3 5 5 1 客户端的设计与实现。3 5 5 1 1 三层式结构:用户界面,分析器和建模引擎3 5 5 1 2 用户交互界面层3 6 5 1 3 分析器的设计与实现。3 9 5 2 网络的透明性3 9 5 3 对遗留软件的兼容性4 l 5 4 服务器端的设计与实现4 i 5 4 1 命令流的接收和转发4 2 5 4 2 几种与客户端交互实现方式上的比较。4 2 v i 目录 5 4 3 侧重操作类型的协侧控制”4 5 5 4 4 用户之间的实时交流。4 5 第6 章扩展命令流应用实例4 7 6 1 用于快速开发( r a p i d a p p l i c a t i o nd e v e l o p m e n t ) 框架4 7 6 2 用于参数化设计4 9 第7 章全文总结和展望5 3 7 1 全文总结5 3 7 2 展望5 4 参考文献5 5 致谢5 9 硕士期间发表的论文6 1 v i i 第1 章绪论 1 1 研究背景 第1 章绪论 当前,随着计算机科学技术的迅猛发展,世界范围内正进行着一场全新的 科学技术革命,这一次新技术革命对几乎所有行业的都带来了深刻变革,它不 仅改变了传统的世界经济结构组成与人类社会的生产力和生产方式,而且给全 世界带来前所未有的丰富的巨大的物质财富,同时也在强烈的冲击着传统意义 上的产品设计、制造理念,以及管理模式和业务流程。同样的影响也发生在机 械相关行业,而今机械设计与制造行业正面临企业跨国化,经济全球化,沟通 信息化的巨大挑战;同时机械行业的产品也增加了对智能化,人性化,数字化 和绿色环保无污染等等诸多要求。可以预见的是,在当前的时代背景条件之下, 机械制造业的未来将注重品种的多样性,根据客户需求进行柔性定制,更加注 重对社会环境资源的保护和利用。 世界制造业竞争的焦点是如何迅速有效的抓住市场机遇,通过及时组织全 公司乃至全国,全球范围的人力物力资源,达到快速开发出新产品以满足客户 的需求,并快速的推向市场占领市场的目的。创新形式的开发产品方式和手段 已成为企业赢得竞争的强有力手段。在当前数字化信息化制造的大潮中,三维 建模的技术起到了至关重要的作用,在用c a d c a m 方法开发产品时,零件计 算机模型的建立决定整体产品开发的周期和效率。在传统的建模技术中,无论 是基于g u i 的人机交互式的过程,还是基于脚本或者二次开发的技术,在当前 用户多变的需求和众多的参数化设计前都显得力不从心。在产品研发的初期, 无论是零件的外形还是尺寸,其要求都具有相当大的模糊性,详细的信息参数 需要等到装配验证或者进行性能分析甚至设置数控加工时才能够最终确定,对 于要就个性化定制的客户尤其如此,如果零件的模型不具有很好的变动灵活性, 可以预见开发过程中将有大量不必要的重复的劳动,三维建模技术对对开发的 周期和开发效率的重要性由此可见一斑。 从上述这些分析中我们可以知道:随着计算机技术的发展,人们逐渐意识 到开发全新的三维建模技术对于机械产品的快速高效研究,开发和制造都具有 第1 章绪论 举足轻重的作用,因此对其的研究不仅具有非常重要的学术方面的价值,而且 同时还具有可观的经济价值和社会价值。 通过考查不难得知,在传统的c a d 软件的三维建模技术中存在着较大局限 性和落后性:这些软件最初都是以单一的使用者为中心来进行设计与开发的, 交互界面虽然做的十分友好,不少软件的功能也十分强大,但是缺乏对不同设 计者之间的数据信息交流功能;同时由于各个商业公司之间各自为战,互不兼 容,企业一旦确定使用某款c a d 软件,其迁移到其他软件上的成本及其巨大, 某些情况下甚至是不可能的:并且不同的c a d 软件侧重于不同的功能,使用者 需要熟悉诸多软件的使用,如果需要做二次开发则需要学习各款软件的从编程 语言到运行方式完全不同的丌发方式,如此以来,不仅对开发人员的要求较高, 同时也延长了设计周期,增加了成本,也难以满足用户个性化的需求。随着近 年来各国对诸多先进设计、制造技术研究的不断深入,许多全新的c a d 技术软 件也不断开发出来,涌现出许多基于网络的协同c a d 软件。 1 2 国内外研究动态 目前,市场上已经有不少的基于网络的c a d 协同设计软件出现,而且其中 的许多已经具备相当的成熟程度。如c i m m e t r ys y s t e m si n c 的a u t o v u ef o r j a v a , 它允许使用者在浏览器中直接打开存储在服务器端的c a d 图纸,并且可以使用 红线进行标注。此外还有s o l i d w o r k s 提供b l u e p r i n t ,它能够显示并编辑用户提 供的d w g 文件。其他软件提供商也提供了类似功能的软件( 如s d r c 的i - d e a s 8 版本) 。 协同设计在国内的研究也进行的如火如荼,许多高校和研究所都开发了自 己的产品。孙立镌等( 2 0 0 8 ) 采用基于中性语义特征转换和结合a u t o c a d 开 发的h u s t c a d 能够在不同站点( 即客户端) 之间进行同步的建模操作和显示, 实现了异构c a d 系统间视图的一致性。张霖( 2 0 1 1 ) 从软件即服务的角度 ( s o f t w a r ea sas e r v i c e ,即s a a s ) 提出了面向服务的云制造,其中包括了丰富 的协作设计功能。王琪等( 2 0 0 5 ) 则从协同c a d 中精确模型的实时传输的角 度提出和构建了基于变动基元的网络造型环境。本实验室自主设计和开发的 w e b c a d 系统则侧重于二维绘图,d w g 图纸的读写( 李木军,2 0 0 3 ) 和三维建 2 第1 章绪论 模操作中的协同设计( 郝瑜,2 0 0 8 ) ,对协同设计提出了自己的解决方案。 然而非常遗憾的是,上述这些研究虽然都有各自的特色之处,但是整体功 能与商业软件相比还是有一定差距,而且由于都基于各自的环境进行开发,使 得很难将这些软件整合成为一个功能强大的平台。研究人员不得不首先重复的 开发出基本的平台,然后才能在此之上进行进一步的研究。本文力图提出一个 使用扩展命令流作为统一的中间形式,具有高度一致性和强大的扩展性网络建 模平台,使得相关研究者和开发人员减少重复劳动,快速高效的开发出自己所 需要的功能。 1 3 命令流的历史和现状 基于命令流的软件系统可以说历史悠久。现在仍然广泛应用的f t p ( f i l e t r a n s f e rp r o t o c 0 1 ) 耳p 使用一系列的邱r a wc o m m a n d s 在客户端j l 艮务器之间的进行 通信。在此之上用户可以自由的丌发出所需要的功能,无论是集成进浏览器( 如 i e ,f i r e f o x 等) ,集成进文件浏览器( 如w i n d o w s 的资源管理器) ,抑或单独的 邱客户端软件。不仅做到了操作系统,丌发环境无关,同时也获得了的使用上 的极大自由。不仅仅在文件传输中,在由g o o g l e 公司发起的e x t e n s i b l em e s s a g i n g a n dp r e s e n c ep r o t o c o l ( x m p p ) 协议也是一个基于命令流的系统。该协议使用x m l 数据元基于命令流的网络消息传输协议,可用于服务类实时通讯、表示和需 求响应服务中的数据传输。x m p p 目前已经被i e t f 国际标准组织完成了标准 化工作,并且被众多商业和自由软件作为底层组件使用。 从上面可以看出,由于采用了一种统一的,易于分析处理的中间表示形式, 开发人员在其之上可以轻易的扩展到各种平台架构,方便的嵌入、或者集成进 目标系统之中,而且也很容易做到与支持同样中间形式的软件进行交互。这些 特性十分适合于网络协同建模和设计领域,并且国内外也已经有了若干有益的 尝试。范朋旺等( 2 0 0 2 ) 开发的i n t e s o l i d 采用四元组( 即操作命令,约束关系, 参数,定型参数四个要素) 在服务器端和客户端之间进行通信;蔡鸿明等( 2 0 0 4 ) 使用扩展c s g 模型的形式在网络上传输,客户端将其转化成v r m l 进行显示。 孙立镌等( 2 0 0 8 ) 在中性语义特征和本地的建模命令之间进行转换,从而实现 在异构c a d 软件之间的视图的一致性。 3 第1 章绪论 1 4 论文的主要研究内容 从这些研究现状可以看出,要实现高效而灵活c a d 设计软件,底层就必须 要有一个良好的框架和平台。开发人员可以在此之上自由的对其进行扩展和开 发,实现自己所需要的功能。 正是基于上述考虑,本文提出了一种基于扩展命令流的三维建模底层框架。 该框架包括了从客户端,服务器端和扩展命令流的分析,转发等一系列组件, 不仅具有很好的扩展性和移植性,而且其架构清晰简洁明了。开发人员很容易 使用该框架进行扩展,实现自己所需要的功能。 本文的主要的研究内容包括: 1 基于扩展命令流三维建模系统的设计 2 扩展命令流的设计 3 命令流分析器的研究与实现 4 客户端朋艮务器端的设计与实现 5 基于扩展命令流系统的应用 4 第2 章基丁扩展命令流的系统设计 第2 章基于扩展命令流的系统设计 2 1 系统的总体结构设计 由于协同设计软件其本身所具有的复杂性,例如复杂文件格式的解析与相 互转换,实体模型的网络传输,客户端服务器端的通信与同步,不同用户之间 的协作与权限管理等等,都使得其设计与实现成为一项浩大的工程,并且随着 软件规模的不断增长,其维护和后续的扩展也越来越困难。在做到功能的完备 性和降低系统的复杂性,提高可维护性之间的矛盾表现在诸多方面: 1 由于网络协同的建模软件基本上都是从零丌始开发,其可用性上要远远 差于那些经过漫长时间考验的单机软件,并且用户需要相当长的时间来 熟悉网络版软件的界面和操作,增加了用户使用的难度。 2 机械行业中有许多应用极为广泛的文件格式,许多软件的丌发者并没有 时间和精力去支持,添加新文件格式的支持十分困难。除了捌有大量人 力物力的商业公司外,很少有软件支持众多的文件格式。在本实验室历 经十余年开发的w e b c a d 仅仅对d w g 文件格式的某个特定版本提供 有限的支持。 3 软件的可维护性和扩展性考虑的不够。例如许多自主丌发的系统对建模 引擎的依赖性没有予以重视,只注重了功能上模块划分,许多组件的代 码杂乱的混在一起,一旦其使用的建模引擎功能上的不足和出现维护上 的问题,将很难移植到其他的引擎之上。这个方面w e b c a d 也没有考 虑周全,并且其规模已经达到上千源文件,总计二十余万行的代码。这 两年来其基于的a r to fi l l u s i o n 开发几近停止,并且其采用的建模引擎 j a v a 3 d 根本不提供对机械行业任何常用文件的支持。一方面底层模块 功能上出现了不足,需要替换;另一方方面,设计上的依赖性导致的复 杂性使得更换底层组件几乎不可能。 要解决上述的诸多问题,只有从整个系统的高度来分析问题和设计解决方 案。基于此,本系统的设计主旨在于提供一个完整的底层框架和相关的基础件, 5 第2 章基丁扩展命令流的系统设计 软件开发人员可以在利用此框架,在其之上采用自己熟悉的开发语言和丌发坏 境,完全自由的进行扩展以实现需要的功能,同时又能够做到与既有系统完全 的兼容。通过将许多具体的细节( 如建模引擎,文件格式的支持等等) 封装到 底层的组件之中,使得开发人员得到功能上的完备性的同时又无需考虑软件中 的复杂性。 悄a 。u l 。,。 f p 9 lc 一i p 中一 + ”牛 i s y m - o p ,v 时“ n y - h , m m m t m “扣扣“e 。h 采。 , 一 i。 翟嚣器黜创哪一 ”r = ”蒜“翟p 和”“夕4 g 。囊 一- ,u一一 d m ,m q ” - p t 劬_ 2 2 系统的设计目标 2 2 1 易于扩展 图2 1 系统总体结构图 软件的扩展性一般说来主要指以下两个方面: 1 业务逻辑扩展性 2 程序结构扩展性 对最终用户而言,最重要的是业务逻辑上的扩展性。进入新世纪以来建模 软件用户的需求已经从以前单纯的三维建模扩展到协同设计,优化分析,资源 共享,团队之间的交流等等诸多方面,数量众多且多变的需求,对软件本身提 出了越来越高的要求。如果软件的丌发进度不能跟上用户的需求,最终只能被 用户抛弃。 另一方面,对软件的开发人员和维护人员来说,程序结构的扩展性占据了 极其重要的地位。程序结构清晰明了,不仅开发的难度大大降低,开发的效率 也将大幅度提高,从而间接增强了业务逻辑的扩展性。如果底层框架的设计做 得不够好,上层的结构和逻辑必将一团混乱。在本系统,通过广泛使用面向对 6 第2 章基丁扩展命令流的系统设计 象的设计模式,使得大部分组件的使用均局限在定义良好的接口之上,因此其 各个模块具有极高的可替换性。这样一来,当某个组件无法满足需求时,丌发 者可以自由替换而不会影响到系统其他部分。 2 2 2 轻量级 过于复杂的系统设计和实现不但增加了后续丌发的成本,而且对于维护人 员来说也是沉重的负担。即使文档齐全,面对动辄数十万行规模的代码,光是 熟悉就需要相当长的时间,更不用说在其之上进行扩展和丌发了。 本系统通过将系统功能划分为前段,后端,服务器端等功能独立的模块, 一方面是得各模块之间的耦合程度大大降低,另外大量采用c + + 模板以及c + + o x 中的特性,去除了大量重复代码。整个系统的代码量控制在两到三万行左右, 而且任何客户端的都可以使用其分析器的部分,从而不仅整个命令流系统较为 轻量级,使用者开发的客户端也能达到轻量级的效果。下图即显示只用不到两 千行代码丌发的一个包括三维模型的网络同步显示,i g e s ,s t e p 等文件的导入 导出以及所有基本命令流的解析的平台无关的客户端。 7 第2 章基丁扩展命令流的系统设计 巴,:,。i 。,、一 一卮i 吼罄| ,、。 一 t ”一+ 固自瞄 c l e a r a l 4 图2 2 基丁- 命令流的采川g t k m m 开发的一个轻鲑级客户端 2 2 3 网络的透明性: 在传统的软件开发中,单机版软件和基于网络的软件是分别开发的,这种 重复劳动造成的人力物力的浪费,拖慢了丌发速度,同时也增加了维护的成本。 本系统设计之初即考虑到要统一这两种软件形式,实现网络的透明性。通过使 用本地回路( 1 0 0 pb a c k ,即1 2 7 0 0 1 ) ,单机版的基于命令流的软件也同样是采 用基于网络的模式。这样一来既简化了系统结构,易于维护,同时也减少了调 试时的工作。 2 2 4 与遗留软件的兼容性 许多单机版的c a d 软件都经过了很长时间和大量用户的考验,其稳定性和 8 第2 章基丁扩展命令流的系统设计 用户的熟悉性是其巨大的优势。如果我们从零开始开发基于网络的协同设计软 件,无疑是低效并且十分不明智的。本系统通过使用命令流并将协同控制部分 置于服务器端,力图达到与遗留软件的最大可能的兼容性,使得其只需若干小 小的修改即可集成进网络协同设计平台。 2 2 5 其他的协同设计的特性 协同设计中许多基本的特性在本系统中也存在,并且均封装在底层组件之 中。当用户开始使用扩展命令流开发系统是,这些特性就已经拥有了。 1 基于网络。软件架构采用c s ,客户端和服务器端通过t c p 协议交互, 同时由于传输的是纯文本( 不同于原有w e b c a d 传输序列化的j a v a o b j e c t s ,难以与其他语言编写的软件交互) ,因此也能很好的适应b s 架构。 2 实时性。由于传输的是纯文本形式的命令流,并且服务器端并不作过多 处理,因此网络负载很轻,具有很好的实时性。同时服务器端针对不同 的平台采用各平台效率最高的组件编写,虽然损失了一致性,但是能够 大大提高处理的效率。 3 多用户。客户端无需直接处理多用户的情况,而是在需要处理某个操作 的实体,只是将操作对应的命令流发送给服务器端,由服务器端来判断 是否允许其操作。由于客户端无需进行各种角色与权限的判断,因此很 容易将原有单机版的软件改造成为多用户的网络软件。这里也体现了该 平台的在扩展性上的优势。 2 3 三维平台的构建 对于一个三维平台来说,底层建模引擎的选择至关重要。在郝瑜( 2 0 0 8 ) 的论文中,对比了o p e n c a d ,b r l c a d ,x 3 d 和a r to fi l l u s i o n 等几个建模 引擎,并最终采用免费开源的a r to fi l l u s i o n 引擎,并对其进行了修改集成进 了w e b c a d 系统之中。但是该引擎的作者从2 0 0 9 年后基本上已经不再进行后续 开发,只进行了一次b u g 的修补:从另一方面来看,由于该引擎属于个人作品, 无论其引擎本身,还是其底层的j a v a 3 d ,对机械行业中常用的文件格式如i g e s , 9 第2 章基- 丁扩展命令流的系统设计 s t e p 等等的支持由于工作量较大都没有提供。这不得不说对用户的使用来说极 为不便。虽然由于其开源特性,用户可以自己编码实现,但是w e b c a d 中仅仅对 d w g 文件格式的支持就开发了数年之久,仍然还有许多工作尚未完善。可以看出, 许多工作如标准文件格式的解析,需要大量的人力物力来进行开发和完善,如 果建模引擎本身就提供支持,对于开发进度能够有极大的提升。由于其因此, 本系统设计伊始即更为广泛的考察了众多建模引擎,这其中既有商业软件,也 不乏个人的开源作品,并且尤其注重其功能的完备性。 2 3 1 商业软件功能完备但使用上诸多限制 当前主流的商业建模引擎有a c i s ,p a r a s o l i d 等,经过商业公司多年的开发, 这些内核功能强大而完备,开发文档齐全,在诸多商业软件中应用广泛,可以 说已经十分成熟。这罩以a c i s 为例进行介绍。 3 d a c i sm o d e l e r 是全球最大的3 d 引擎厂商s p a t i a l 公司的久负盛名的三维 造型引擎,目前被超过3 5 0 种客户程序所采用,其在全球的应用量已经超过了 1 5 0 余力套。a c i s 采用的是面向对象的,丌放的c + + 架构,拥有强大3 d 造型 功能:集成了线框、曲面和实体的造型功能,并且支持流形拓扑和非流形拓扑, 同时还具备十分丰富的几何运算功能,因此非常适合用于构建需要混合造型功 能的复杂3 d 应用程序。此外其还包括了诸如隐藏线去除、可变形造型、多种高 级遮盖和特征去除等等功能;其对各种文件格式的支持也十分完善。国内不少 研究均采用a c i s 作为建模引擎,如薛翔( 2 0 0 6 ) ,邱剑波( 2 0 0 8 ) 等等。不过 同其他商业建模引擎一样,a c i s 最大的缺点是既不提供源代码也不提供免费使 用的版本,由于本实验室并没有购买其授权,因此使用起来颇有不便。 2 3 2 免费软件可以自由使用但是不开放源代码 除了传统的收费软件外,许多商业公司或个人都丌发出了不少功能相当齐 备的建模引擎,这些软件或者是商业公司作为对应收费版本宣传之用,或者是 专业版本的限制功能版。虽然与a c i s 等比较起来,这些软件在功能上略逊一筹, 但是由于其可以供个人或科研单位自由使用而不受限制,因此也有较大的吸引 力。 这里考察的s g c o r e 是由g e o m e t r o s 公司提供的一套免费c + + 建模引擎,其 1 0 第2 章基丁扩展命令流的系统设汁 具有完善的二维和三维建模操作,并且对文字和尺寸标注也提供了很好的支持。 下图展示了其功能: 善攀薹挚j ? :瓣i 卜? 耄:o _ “: 0 1 ,: 毒薹褰譬器 ,o 卜 ,r + 。: 髫攥i滋藩瓣谚i 7 l 燃 。,” 。o ;,f :。i 鼍、岛j 孥一雾 专管1窿 j 警斑遂警7 j 鍪黩 0 ! l 黪o 溪。j 。3 f i 荔蕊 鬻 遴 魁惩烂滋谚 7 _ 一j 一:。一 1 日_ 口l _ 日_ _ l i e 日= :i 已 瓣 莹黼誊: + + 0 :寸囊毒譬:j o j 囊:i 铡囊 然。j l l 熬 f 蔫藩麟 鬻薯 蒌鬻攀鬻i:善囊霹善篱一 图2 3s g c o r e 的基本功能演示 从上图中也可以看出,s g c o r e 的建模,实体运算,文字和标注等相关功能完 全针对机械相关行业的建模软件进行的开发,同时加上完备的文档和实例,使 之用起来将十分方便。但是s g c o r e 完全基于w i n d o w s 平台,在其他平台无法使 用,移植性并不是太好,因此并不能算的上是完美的方案。 第2 章基丁扩展命令流的系统设计 2 。3 3 开源解决方案开源且完全自由使用,但是文档并不齐备 丌源软件业已成为商业软件之外一股新兴的势力,从操作系统,编译器等 底层软件,到浏览器,i m 等面向最终用户的应用,到处都有丌源软件的身影, 三维建模领域也不例外。这里主要对比了原有w e b c a d 采用的a r t o f l l l u s i o n 和 本系统采用的o p e n c a s c a d e 。 a r t o f l l l u s i o n 是一个采用j a v a 丌发的丌源的三维造型系统,它具有生成复杂 三维实体,通过细分表面来构建实体,并且可以自由地设置各种表面材质。原 有w e b c a d 的三维造型功能即是由郝瑜师兄修改过的a r t o f l l l u s i o n 集成进原有 系统而来。不过其有两个重要的缺点:首先,由于a r t o f l l l u s i o n 和底层的j a v a 3 d 都不是专门面向机械相关行业,对相关的造型功能和文件格式的支持均较弱, 反而对动画行业的相关功能( 如基于骨骼运动的三维渲染功能等) 支持较为完 备;并且从j a v a 3 d 和a r t o f l l l u s i o n 的丌发者论坛以及其发布的丌发路线图来看, 其彻底没有支持这些文件的丌发计划,对比其他解决方案不得不说是一个劣势; 其次,a r t o f i l l u s i o n 并不是一套建模引擎库,而是一个完整的软件,借用其主页 上的说法:a r to fi l l u s i o ni saf r e e ,o p e ns o u r c e3 dm o d e l i n ga n dr e n d e d n gs t u d i o , 这就意味着集成进w e b c a d 的部分事实上已经成为一个分支( b r a n c h ) ,如果原 软件有了更新( 如功能上的改进,结构的变化等等) ,如何合并( m e r g e ) 这些不 同将是一个大问题,无论继续丌发w e b c a d 中的b r a n c h 还是与m a i n s t r e a m 同步 都将涉及到对其内部结构的深入改动。 o p e n c a s c a d e 是一套采用c c + + 进行丌发的丌源的c a d c a m c a e 几 何建模引擎,其源自于法国的m a t r ad a t a v i s i o n 公司。该软件原来是著名的 c a d c a m 软件e u c l i d 的底层丌发平台,但是在1 9 9 8 年, m a t r a d a t a v i s i o n 公司改变了相关的经营策略,从原来以销售软件改变为专业提供 c a d c a m c a e 软件服务为主的盈利模式,并且在1 9 9 9 年公开了 o p e n c a s c a d e 的源代码。o p e n c a s c a d e 是一个功能十分强大的三维建模引 擎,提供了从点、线、面、体等基本实体到曲线曲面上造型复杂实体的显示和 交互等操作,而且还可实现材质纹理、光照控制、图元填充、动画渲染等图形 操作,同时还具有缩放、旋转、漫游、模拟飞行穿越等诸多动态操作,并且其 对导入导出i g e s ,s t e p ,b r e p 等众多格式的文件提供了直接的支持,只需 寥寥数行代码调用其内部接口即可完成这些复杂文件格式的解析与转换。 1 2 第2 章基丁扩展命令流的系统设计 图2 4o p e n c a s c a d e 建模引擎的基本功能演示 作为丌源界最为知名的c a d 三维建模引擎,其不仅被众多商业公司采用, 同时也是许多开源c a d 软件的核心部件,如f r e e c a d 和a n y c a d 就是采用 此引擎。同时众多丌源的网格划分程序( 如g m s h ,n e t g e n 等) 和有限元计 算软件( 如g e t d p 等) 对o p e n c a s c a d e 提供了直接的支持,因此很容易与这 些程序相结合,扩展现有平台的功能。 1 3 第2 章基丁扩展命令流的系统改计 ! ;。:罚:“:二。,“ ” ”0 :j qn i 簟一。,f 晡| 目 j ? 4 :? j 0 7 1 岳; 一 一 一- - i :】 i 时;:_ i ;l :l :e 1 e 叠越葺置m m m m m m m - - m - - m t t 髓i 一 l 翳震i 嬲翻翰翻毪l 躺 i 龋翻l 乏啦嗣融嘲 。!勰霞翻嘲胡嘲嘲翻髓 i 髑霸疆躁靼疆璺i 嘲 l 魏瀚疆鬻翮璺 t 拍r 纠口q 龃 : 麟塑掰;书辩? 蝴鞠嘲r _ l 蕊穗端k 扩穗糍圜嚏 i 麓一 噜 l 1j 靼:w:丘叠盘 _ :睛豫塞麴l 霆雪爨螽冀 _ :广二为 ,:1 7 型 懿 蠢: 曩f ;垒l 盖ij 兰翁蜀糯怒露短程强麓憋豳。 圜 篇篇! 器 。: ,:一j :?;: + :匕:= 一并 - - o - 一 。= * 二t :二二:;:n 一t +。 ,。4一1 一。一 t 。 n - 7 车剧一j 删一型剖- j 删m 二一o l f 蓟刨g 三盈t u j 村!
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年河南工业和信息化职业学院单招综合素质笔试备考试题含详细答案解析
- 2026年通化医药健康职业学院单招综合素质考试模拟试题含详细答案解析
- 2026年江西传媒职业学院单招综合素质笔试备考题库含详细答案解析
- 2025河北承德市宽城满族自治县人力资源和社会保障局招聘公益性岗位人员11人参考考试试题及答案解析
- 2026年南昌理工学院单招综合素质考试备考题库含详细答案解析
- 2026年中山职业技术学院单招职业技能考试参考题库含详细答案解析
- 2026年宁德职业技术学院单招综合素质考试备考试题含详细答案解析
- 2026年景德镇艺术职业大学单招综合素质考试模拟试题含详细答案解析
- 2026年丽江师范高等专科学校单招综合素质笔试备考试题含详细答案解析
- 2026年安阳幼儿师范高等专科学校单招综合素质考试参考题库含详细答案解析
- 肉鸡采食量影响因素分析与调控研究进展
- T-CCTAS 237-2025 城市轨道交通市域快线车辆运营技术规范
- 软件系统上线测试与验收报告
- 冬季交通安全测试题及答案解析
- 2025年国家能源局系统公务员面试模拟题及备考指南
- (2025年标准)圈内认主协议书
- 2025年安徽省中考化学真题及答案
- 2025年军队文职人员统一招聘面试( 临床医学)题库附答案
- 海马体核磁扫描课件
- 某电力股份企业同热三期2×100万千瓦项目环评报告书
- 2026届上海市部分区中考一模语文试题含解析
评论
0/150
提交评论