




已阅读5页,还剩66页未读, 继续免费阅读
(机械电子工程专业论文)基于dwgdirect的autocad复杂图形对象处理.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大连理工大学硕士学位论文 摘要 在进行d w g 图形文件的打开操作时,如果能够在文件对话框中预览图形,则可以 在打开文件之前得到文件的一部分图形信息,根据得到的信息来判断该文件是否是需要 打开的文件,较好地提高效率。 当今信息安全已经受到越来越多人们的关注,众多c a d 软件也先后提供了文件的 加密功能,以此来保障用户的信息安全。因此在c a d 软件的开发过程中,文件的加密 功能已经成为了不可或缺的一部分。 在a u t o c a d 几乎垄断我国c a d 软件市场的不利情况下,几款国内知名c a d 软件 的成功,体现了一个不争的事实:一款有竞争力的软件,不仅要有强大的功能、有竞争 力的价格,更需要一个和a u t o c a d 可靠兼容的接口。 本课题是以开发功能完善、高度可靠、符合我国工程设计人员习惯的工程软件为目 的,在w i n d o w s 平台上以v i s u a lc + + 为开发工具,运用面向对象技术,利用d w g d i r e c t 类库,在j h c a d 工程绘图软件系统框架的基础上设计并实现了d w g 文件的图形预览、 文件加密、图块和尺寸实体转换等功能。 具体完成的工作包括:通过对d w g 图形文件和d w g d i r e e t 类库的内部结构深入研 究和分析,在理解b m p 和w m f 图片格式的基础上,实现d w g 文件预览图的生成和 显示;利用d w g d i r e e t 类库提供的函数接口,通过调用m i c r o s o f t 提供的加密应用程序 接口( c r y p t o a p i ) ,实现d w g 图形数据文件的加密和解密;通过对图块和尺寸实体特 征的分析,j h c a d 和d w g d i r e e t 相应的实体模型的研究,在j i - i c a d 中保存图形为d w g 文件时保证图形中图块和尺寸实体信息的完整性。 经过在j h c a d 工程绘图软件系统平台上的编制、调试和测试,完成了预期的目标, 验证了程序的正确性与功能的实用性。 关键词:d w g d i r e e t ;预览图;加密;解密;尺寸实体 基于d w g d i r e c t 的a u t o c 削d 复杂图形对象处理 t h ep r o c e s s i n go fc o m p l e xg r a p h i co b je c to fa u t o c a d b a s e do nd w g d i r e e t a b s t r a c t w h i l ec a r r y i n go nt h eo p e r a t i o no fo p e n i n gd w g f i g u r ef i l e ,i fw ec a np r e v i e wt h e f i g u r ei nf i l ed i a l o g ,t h e nw ec a ng e ts o m ef i g u r ei n f o r m a t i o no f t h ef i l eb e f o r eo p e n i n gt h e f i l e ,a n dj u d g ew h e t h e rt h i sf i l ei st h ef i l ew en e e dt oo p e na c c o r d i n gt ot h ei n f o r m a t i o n r e c e i v e d ,a n dr a i s et h ee f f i c i e n c yw e l l n o w a d a y si n f o r m a t i o ns e c u r i t yh a sb e e np a i da t t e n t i o nb ym o r ea n dm o r ep e o p l e , n u m e r o u sc a ds o f f w a r e ss u c c e s s i v e l yo f f e r e dt h ef i l ee n c r y p t i o nf u n c t i o nt oe n s u r eu s e r s i n f o r m a t i o ns e c u r i t y i nu n f a v o r a b l ec a s eo fa u t o c a dn e a r l ym o n o p o l i z e sc a ds o f t w a r em a r k e to fo u r c o u n t r y ,t h es u c c e s so fs e v e r a ld o m e s t i cf a m o u sc a ds o f t w a r e sh a sr e f l e c t e da ni r r e f u t a b l e f a c t :ac o m p e t i t i v es o f t w a r e ,n o to n l ys h o u l dh a v eas t r o n gf u n c t i o n ,c o m p e t i t i v ep r i c e ,b u t a l s on e e d sar e l i a b l ea n dc o m p a t i b l ei n t e r f a c ew i t l la u t o c a d 。 i no r d e rt od e v e l o pe n g i n e e r i n gd r a w i n gs o f t w a r ew i t hp e r f e c tf u n c t i o n , h i 曲e f f i c i e n c y a n dr e l i a b i l i t y ,a n da c c o r d sv d t ht h ed e s i g nh a b i to fo u re n g i n e e r s ,t h i sp a p e ri m p l e m e n t st h e f u n c t i o no ff i g u r ep r e v i e w i n go fd w gf i l e ,d w gf i l ee n c r y p t i o n , c o n v e r s i o no fb l o c ka n d d i m e n s i o ni nj h c a ds y s t e m , w h i c hi sd e v e l o p e di nv i s u a lc + + e n v i r o n m e n to nw i n d o w s p l a t f o r m , u s i n go b j e e l - o r i e n t e dm e t h o d ,d w g d i r e e tc l a s sl i b r a r y t a s k sa c c o m p l i s h e da r ea sf o l l o w s : t h r o u g hf u l t h e ri n v e s t i g a t i n ga n da n a l y s i so fi n t e r n a ls t r u c t u r eo fd w gf i g u r ef i l ea n d d w g d i r e e t , o nt h eb a s i so fu n d e r s t a n d i n gb m pa n dw m fp i c t u r ef o r m a t s ,r e a l i z e st h e g e n e r a t i o na n dd i s p l a yo fd w g f i l ep r e v i e w m a k i n gu s eo ft h ef u n c t i o ni n t e r f a c e so f f e r e db y d w g d i r e c t , a c c o m p l i s h e se n c r y p t i o na n dd e c r y p t i o no fd w gf i g u r e f i l e b yc a l l i n g e n c r y p t i o na p p l i c a t i o np r o g r a mi n t e r f a c e s ( c r y p t o a p i ) p r o v i d e db ym i c r o s o f t b ym e a n so f c h a r a c t e r i s t i ca n a l y s i so fb l o c ka n dd i m e n s i o n , t h r o u g hs t u d y i n go ns o l i dm o d e lo fj h c a d a n dd w g d i r e e t , e n s u r ei n f o r m a t i o nm t e g r a j i t yo fb l o c ka n dd i m e n s i o nw h i l es a v i n gt h e f i g u r ei nj h c a d a sd w gf i l e t h ep r o g r a m sh a v eb e e nv e r i f i e dc o r r e c ta n df e a s i b l et h r o u g hc o d i n g ,d e b u g g i n ga n d t e s t i n go nj i - i c a de n g i n e e r i n gd r a w i n gs o f t w a r ep l a t f o r m k e yw o r d s :d w g d i r e c t ;p r e v i e w ;e n c r y p t i o n ;d e c r y p t i o n ;d i m e n s i o n i i 大连理工大学学位论文独创性声明 作者郑重声明:所呈交的学位论文,是本人在导师的指导下进行研究 工作所取得的成果。尽我所知,除文中已经注明引用内容和致谢的地方外, 本论文不包含其他个人或集体已经发表的研究成果,也不包含其他已申请 学位或其他用途使用过的成果。与我一同工作的同志对本研究所做的贡献 均已在论文中做了明确的说明并表示了谢意。 若有不实之处,本人愿意承担相关法律责任。 学位论文题目: 一基壬旦盥立亟i 金区鲍丝l q 固复塞图显慰象处翌 一 作者签名: 堑毖 日期: 型! 年l 月2 一日 大连理工大学硕士研究生学位论文 大连理工大学学位论文版权使用授权书 本人完全了解学校有关学位论文知识产权的规定,在校攻读学位期间 论文工作的知识产权属于大连理工大学,允许论文被查阅和借阅。学校有 权保留论文并向国家有关部门或机构送交论文的复印件和电子版,可以将 本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、 缩印、或扫描等复制手段保存和汇编本学位论文。 学位论文题目:薹i2 型丝:咝缝笤堕绁毖! 盈遨丝丝 作者签名: 塑盗一 e l 期:丝互年l 月_ 2 l 日 导师签名: 三盔盏! 章 日期: 幽年月l 日 大连理工大学硕士学位论文 1绪论 1 1工程绘图c a d 软件概述 1 1 1 发展状况 ( 1 ) 国外发展状况 2 0 世纪6 0 年代初,美国麻省理工学院开发了名为s k e t c h p a d 的计算机交互图形处 理系统,并描述了人机对话设计和制造全过程,这就是c a d 的雏形,形成了最初的c a d 概念:科学技术,绘图。随着计算机软件、硬件的发展,计算机逐步应用于设计过程, 形成了c a d 系统。c a d 技术是计算机技术在工程设计、机械制造等领域中最有影响的 一项高新应用技术。工程绘图软件技术自其产生以来,一直在c a d 领域占据重要的地 位【旧。 自产生至今的几十年里,工程绘图c a d 技术有了巨大的发展。目前在c a d 市场上 占据统治地位的多是国外的软件产品。主要有以下二种工作平台【3 ,4 】: a u t o c a d :a u t o d e s k 公司的主导产品,是当今最流行的二维绘图软件,它的图形数 据文件d w g 是一种加密格式的矢量图形文件,已经成为了一种事实上的工业标准。 m i c r o s t a t i o n :是国际上和a u t o c a d 齐名的二维c a d 设计软件,美国b e n t l e ys y s t e m 公司所研发,是一套可执行于多种软硬体平台( m u l t i p l a t f o r m ) 的通用电脑辅助绘图及设 计( c a d ) 软件。具有很好的兼容性和扩展性。 ( 2 ) 国内发展状况 国内在机械c a d 技术方面的研究始于七十年代中期,航空和造船业是使用c a d 技 术较早的部门。八十年代初,一些大型企业开始引进国外成套的c a d 系统。九十年代 以后,工业领域开始采用c a d 技术进行辅助设计,大大提高了设计质量,取得了一定 的经济效益。国内许多科研院校,如清华大学、北京航空航天大学、华中科技大学等在 c a d 技术研发方面取得了一些成果,形成了自主版权的c a d 商品化软件产品,能够可 靠读取或操作d w g 格式的图形数据1 5 ,6 ,7 j 。 国内方面,比较常见的工程绘图c a d 软件大致分为两类: 一类是以i t c 为平台开发出来的软件,如: 中望c a d :广州中望龙腾软件股份有限公司产品。界面、操作习惯和命令方式与 a u t o c a d 保持一致,文件格式也可高度兼容,并具有较好的稳定性和速度。部分版本 提供了二次开发接口。 另一边是完全自主研发的工程绘图软件,如: 基于d w g d i r e c t 的h u t o c h d 复杂图形对象处理 c a x a 电子图板:北京c a x a 软件公司产品。操作风格和界面的设计与a u t o c a d 相似,功能上也有较好的兼容性。广泛应用于机械、电子、航空、船舶、教育、科研等 多个行业。 开目c a d :武汉开目信息技术有限责任公司产品。是纯二维平面设计软件,与 a u t o c a d 的使用有较大的区别,但文件格式与d w g 、d 等兼容。绘图方式主要模拟 人的设计绘图思路,符合我国设计人员的习惯。 从c a d 的发展来看,未来的趋势将是计算机模拟和工业设计技术的结合。随着计 算机网络化的迅速发展,可用计算资源的逐渐丰富,计算机模拟在设计中的地位日渐重 要。c a d 技术的普及应用越来越广泛,越来越深入,c a d 技术正在向着开放、集成、 智能和标准化的方向发展【s 】。 1 1 2 存在问题 a u t o c a d 是当今最流行的二维绘图软件,功能强大,广泛应用于机械设计、土木 建筑、电子电路、装饰装潢、航空航天、轻工化工等诸多领域,但也正是因为这样,使 得软件的专业性稍显不足。另外由于其凭借核心技术上的垄断,价格居高不下,让不少 国内企业望而却步。 就国内c a d 软件而言,虽然近些年来我国在c a d 技术研发方面取得了一些成果, 但是由于起步较晚,我国的c a d 软件在资金投入、商品化包装以及企业的集团化规模 化和软件的可靠性方面存在一定的差距。再加上一直存在的盗版问题,使得a u t o c a d 成为了我国广大工程设计人员的首选软件,也使得a u t o c a d 软件的d w g 文件格式成 为了事实上的工业标准。 因此在开发自主版权的c a d 软件时开发人员就不得不考虑与a u t o c a d 软件的可靠 兼容,而a u t o d c s k 公司又一直没有对外公开d w g 的文件格式。a u t o d e s k 推荐的信息 交换格式是d x f ,但d x f 格式存在一些问题【9 】:文件尺寸大,一般d x f 文件是d w g 文件的2 5 倍或更大;d w g 到d x f 需要额外的操作步骤,而且d x f 文件的装载保存 效率远低于d w g 文件;a u t o c a d 没有提供自动保持d w g 和d x f 文件一致性功能, 因此需要解决d x f 和d w g 的一致性问题。这些都使得目前我国工程绘图c a d 软件市 场几乎为以a u t o c a d 为代表的国外知名c a d 软件品牌所垄断。 1 2开发自主版权c a d 软件 1 2 1 开发意义 近些年,我国软件业虽然发展速度与全球软件平均年增长速度基本持平,但与欧美 大连理工大学硕士学位论文 的一些国家相比所占比重还颇低。这一现象与我国缺少具有自主版权的核心软件基 础的软件支撑系统( 平台) 有着密切关系。长期以来,国内二维工程绘图c a d 软件市场一 直被a u t o c a d 所垄断。但是正版a u t o c a d 昂贵的价格让很多中国的c a d 用户望而却 步。因此我们需要开发具有独立版权的工程绘图c a d 软件【1 0 1 。 首先,这是市场的需要,是国家和企业发展的需要。在a u t o c a d 等国外软件一统 天下的时候,价格十分昂贵。正是这种情况下,我国开始大力支持国内自主版权c a d 软件的开发。并产生了几款比较优秀的国产软件,为我国的企业节省了大量的投资和开 发费用。 第二,开发自主版权的工程绘图软件是企业提高软件应用效果的需要。由于通用的 c a d 软件平台必须同时满足许多行业绘图的需要,而各个行业的图纸基本原理完全不 同,所以需要用户做大量的二次开发,这种方式对于大部分企业来说既很困难,又没有 必要。而独立开发的软件就不同了,这些c a d 软件一定都有明确的应用范围,例如机 械、化工等,这样就可以将应用行业的工程原理作为系统的核心思想,在规划数据结构 和软件界面时注重体现出本行业的特点。 为了促进c a d 技术的发展,国家已把发展c a d 技术纳入国家重点发展计划之中。 因此,开发自主版权的工程绘图c a d 软件,是一条正确而且意义深远的开发之路。只 有自主创新技术的国产软件的崛起,才能带来真正意义上的中国软件行业的腾飞。 1 2 2 开发要求 要开发一款成功的自主版权的c a d 软件,需要满足下面几个方面: ( 1 ) 要有足够强大的功能,能够满足设计人员越来越高的设计要求,并提供友好的 界面、命令方式等。 ( 2 ) 要针对我国行业的标准,开发具有行业特点,符合设计人员使用习惯的专业 c a d 软件,把握我国各个行业的实际需求。 ( 3 ) 提高和当前流行的、占据市场领导地位的c a d 软件的兼容性,其中最重要的就 是提供和a u t o c a d 的可靠兼容接口。 目前我国工程绘图c a d 软件市场几乎为以a u t o c a d 为代表的国外知名c a d 软件 品牌所垄断,造成国产c a d 软件这种困境的根本原因在于a u t o c a d 确立了c a d 软件 的标准,正如w i n d o w s 确认了桌面操作系统的标准一样。现在既然不能改变d w g 文件 格式成为事实上的工业标准这一现实,那么在开发自主版权c a d 软件的时候只能满足 用户对于和a u t o c a d 软件可靠兼容的要求,否则只能被市场淘汰。 基于d w g d i r e c t 的a u t o c a d 复杂图形对象处理 1 2 3 开发方式 目前国内c a d 软件的开发主要有以下2 种开发方式: ( 1 ) 以i t c ( i n t e l l i c a d ) 为平台进行c a d 软件开发。i n t e l l i c a d 系统是一个开源 的二维c a d 设计软件,能很好地支持a u t o c a d 支持的文件格式,拥有很多和a u t o c a d 相同的功能以及几百条和a u t o c a d 一致的命令及参数【l l 】。 ( 2 ) 始终坚持完全自主开发。在专业c a d 软件开发中,往往选用高级语言( 如v c ,v b :等) 作为主要开发平台,自行开发独立版权的图形支撑系统。但是考虑到目前a u t o c a d 在市场占垄断地位的情况,就需要着重考虑如何实现与a u t o c a d 进行图形数据交换, 实现无缝连接。这样既可充分享用a u t o c a d 强大的图形管理功能,又不妨碍按照自主 的方式独立地组织图形数据。但是因为d w g 的文件格式a u t o d c s k 公司一直没有对外公 开,因此如何可靠读取或操作d w g 格式的图形数据便成为专业c a d 软件中不可忽视 的问题,同时,这也是一直困扰软件技术人员的难题。现在国内很多完全自主开发的 c a d 软件都使用d w g d i r e c t 类库实现与a u t o c a d 的图形数据交换。 1 3 基于d w g d i r e c t 的a u t o c a d 图形处理 d w g d i r e e t 是由开放设计协会( o p e nd e s i g na l l i a n c e ) 设计的一套类库。该协会前身 叫做o p e n d w g 协会,是世界著名的由软件开发人员和软件用户所组成的联盟,与其他 一些专门进行标准设置的团体不同,o p e nd e s i g na l l i a n c e 集中精力于开发高质量的软件 模块库,使得更多的人可以对自己的程序进行改进,实现对标准c a d 格式文件的读、 写,致力于促进c a d 文件数据转换的开放性和工业标准化的生成。为了使a u t o c a d 使 用的d w g 图形格式成为通用且公开的c a d 标准,该联盟提供了相应的操作d w g 图 形文件的软件包用来推广该格式的应用。 、 为了解读d w g 格式文件,该组织在多年研究基础上,提供了一套直接访问d w g 文件的函数库( o p e n d w g ) ,软件开发人员可以借以开发应用程序,使得系统能够独立于 a u t o c a d 平台之外访问d w g 文件。o p e n d w g 的核心机制在于将d w g 文件中的数据 转化为用户自身定义的数据结构进行表达的信息模型,对外屏蔽了d w g 的版本差异, 这样就可以方便地对各种版本d w g 文件进行处理l l 2 1 。 d w g d i r e e t ,它是o p e n d w g 的一个升级。o p e n d w g 是一个工业标准化的格式, o p e n d w g 是以a u t o c a d 中所使用的d w g 格式为基础的。o p e n d w g 为我们提供了与 d w g 文件格式近乎完美的兼容性,其优点众多,即便对于至关重要的应用程序的开发 来说也是一个非常安全的选择f 1 3 】。 ( 1 ) 这是最为重要的一点,它的所有文档都是公开的,没有进行任何加密,使用者 大连理工大学硕士学位论文 不会在这方面出现困惑。 ( 2 ) o p e n d w g 会始终提供强大的技术支持。他们拥有由众多专家组成的技术团队, 专门负责解决那些可能突然出现的各种问题。 ( 3 ) o p e n d w g 类库具有强大的功能,它是采用面向对象的c + + 语言编写而成,可以 满足即便是最苛刻的商业软件开发商。 ( 4 ) o p e n d w g 的类库是不断升级的,实现了对d w g 文件格式从2 5 到2 0 0 4 所有 版本的兼容。、 d w g d i r e e t 作为o p e n d w g 的升级版本,它可以用来读、写a u t o c a d 文件,而且 极大地提高了a u t o c a d 图纸信息的提取速度,为我们对a u t o c a d 图纸的操作提供了方 便。当不同版本和类型的文件加载到d w g d i r e e t 中时,这些文件的数据被标准化为统一 的格式,这样就允许用户以一个统一的标准通过不同版本和类型的文件访问数据。 因此应用d w g d i r e e t 类库可以实现自主开发的c a d 软件中的图形数据格式和d w g 图形数据格式的相互转换,此外利用d w g d i r e e t 类库提供的函数接口,还可以实现如 d w g 文件预览、文件加密和解密等功能的开发。 1 4 课题主要研究内容 本次课题的研究是在w i n d o w s 平台上,运用面向对象技术,以j h c a d 工程设计及 绘图系统为基础,v i s u a lc + + 作为开发工具,充分利用d w g d i r e c t 类库提供的功能,完 成j h c a d 若干功能的实现。 主要内容有以下几个功能模块: ( 1 ) 预览图的处理 保存为d w g 文件格式时,d w g 文件包含图形的缩略图。当打开一个包含缩略图 的d w g 文件时,在文件打开对话框中显示文件的预览图。其中保存时对是否生成预览 图提供选择功能。 ( 2 ) d w g 文件的加密和解密 修改文件或保存文件时,可以向图形添加密码,之后保存该图形,图形文件将被加 密。除非输入密码,否则图形文件将无法重新打开。这样能保证用户图纸的安全性。若 有多个图形文件,应该为每个需要加密的图形分别附加密码。加密算法完全兼容 a u t o c a d ,即j h c a d 和a u t o c a d 加密的图形文件可以双向存取。 ( 3 ) 图块和尺寸实体的处理 保存为d w g 格式时,将图形中的图块和尺寸转换为d w g 文件格式中对应的实体 对象,保持信息的完整性,并与a u t o c a d 软件可靠兼容。 基于d w g d i r e c t 的a u t o c a d 复杂图形对象处理 2 实现基础与开发环境 本课题在w i n d o w s 平台上以v i s u a lc + + 为开发工具,运用面向对象技术,利用 d w g d i r e e t 类库提供的功能,在j h c a d 工程绘图软件系统框架的基础上,完成j i - i c a d 相应功能的设计和实现。 2 1d w g 文件 d w g 文件是a u t o c a d 生成的一种图形文件,它是一种二迸制文件,格式不公开, 普通用户无法直接读取其内容。从用户角度看,a u t o c a d 几乎是一个封闭的系统,它 只相当于图形编辑工具,生成的图形文件是一个以二进制形式存放的d w g 文件,其内 容很难读懂。虽然a u t o d e s k 公司为用户提供了d x f 文件,但如果能够进一步了解d w g 文件格式,一方面可以省去一些操作过程,另一方面可以根据不同的功能要求编制出各 种灵活、方便、结构紧凑的外部命令。 2 1 1数据类型 d w g 文件为二迸制格式文件,共有五种数据形式:字符型、单字节整型、双字节 整型、四字节整型和以i e e e 标准存储的浮点数( 即双精度浮点数) 【1 4 】。由于a u t o d e s k 公司在d w g 文件中采用了以上五种标准数据类型,因此能很方便的对这些数据进行直 接存取和处理。例如:我们可以用c 语言中的c h a r 实现字符型数据,用b y t e 实现字节 型数据,用妇实现整型数据,用l o n g 实现长整型,用d o u b l e 实现双精度浮点型。 2 2 2 总体结构 从a u t o c a d 的资料中可知,d x f 文件共由4 个部分组成,它们分别是头部、表部、 块部和实体部。而d w g 文件的结构与d x f 文件基本相同,它由5 部分组成,分别是: 头部( h e a d e r ) 、实体部( e n t i t i e s ) 、表部( t a b l e s ) 、块实体部( b l o c k s ) 和应急头部 ( c o n t i n g e n c yh e a d e r ) t 1 5 , 1 6 。总体结构如图2 1 所示。 大连理工大学硕士学位论文 文件头 实体头实体尾( 1i n e ) 实 实体头实体尾( c i r c l e ) 体 数 实体头实体尾( p o i n t ) 据 区 实体头实体尾( h a t c h ) 实体( 1 ) 头尾 块 实体( 2 ) 头尾 实 图 块 体 实体( 3 ) 头尾 形 实 表 数 体 据 数块 实体( 1 ) 头尾 区 据 实体( 2 ) 头尾 区实 体 实体( 3 ) 头尾 表 图层表( 1 a y e rt a b l e ) 表 数 线型表( 1i n et y p et a b l e ) 据 块表( b l o c kt a b l e ) 区 应急头部 图2 1d w g 文件的总体结构 f i g 2 1 g e n e r a ls t r u c t u r eo fd w gf i l e ( 1 ) 头部 d w g 文件的头部存放着d w g 文件的一些重要信息,如d w g 文件标志、版本信息、 各种索引用的地址以及a u t o c a d 软件中的一部分系统变量。头部的信息对于a u t o c a d 来讲是至关重要的,因为a u t o c a d 对d w g 文件的所有寻址操作的地址均从头部的有关 参数计算而来,而且头部还保存着与该文件中所保存图形密切相关的系统变量的值。有关 头部的结构如图2 2 所示。 基于d w g d i r e c t 的a u t o c a d 复杂图形对象处理 d w g 文件信息标志 d w g 文本版本信息 d w g 文件地址索引信息 d w g 文件系统变量 图2 2 头文件结构 f i g 2 2 s t r u c t u r eo fh e a df i l e 文件头后面是图形数据区,图形数据区包含实体数据区和块实体数据区,以及表数 据区。 ( 2 ) 实体部 实体部保存着该d w g 图形中的全部实体。在a u t o c a d 中,图形实体指基本图形 元素,如:点( p o i n t ) 、线( l i n e 、r a y 、m l i n e 、p l i n e 、s p l i n e 等) 、圆( c i r c l e ) 、圆弧( a r c ) 、 块( b l o c k ) 、尺寸标注( d i m e n s i o n ) 等。为了识别实体,a u t o d e s k 公司对实体进行编码,如 直线实体的编码为0 1 h ,点实体的编码为0 2 h 等等。对于一个实体,其数据结构都可以 分成两个部分:实体头部和实体尾部。 实体头部的长度固定,且其意义对每一个实体基本相同,它包含有实体类编码、实 体性质、实体长度等等,用于描述各种实体的一些共同属性。 对于实体尾部,a u t o d e s k 采用了极为紧凑的格式以节省占用资源,它描述了实体的 几何参数。对于不同实体,其尾部数据结构不同,即使在同一类型的绘图命令中,根据 复杂程度不同尾部数据的格式不同。因此,实体尾部的格式种类较多,在某些情况下实 尾部长度可以为零。例如:在直线实体尾部中仅保存了直线两端点的坐标值;字实体尾 部中保存了文字的起始点坐标、高度、文字内容及旋转角度等等。 实体部中,各实体按一定次序存取。a u t o c a d 在存储d w g 文件时,将几何对象作 为实体进行存储。 ( 3 ) 块实体部 块实体数据区是由每个块所对应的实体表组成的。一个块包含多个图形实体,每个 块包含的实体都以一个表的形式存在。 块是用a u t o c a d 进行绘图时经常遇到的一个概念。它是为了减少图形文件的长度 和方便操作而引入的。a u t o c a d 将用户生成的块集中存在一起,这就是块实体部。每 生成一个块时,a u t o c a d 同时自动地生成一个相应的块表,以便检索。对于每一个块, 其两端均为块起始实体和块结束实体,中间为该块所包含的各种实体元素。在图纸中, 大连理工大学硕士学位论文 对每个块对象都可以进行旋转、缩放、插入等操作,还可以通过爆炸命令获取块中的对 象,可以对给对象进行编辑,也可以重新定义新的块。对块的寻址操作是通过块表中的 信息和块实体部的起始地址来完成的。 ( 4 ) 表部 表是a u t o d e s k 公司为方便索引而引入的数据结构。在d w g 文件中所有的表均按一 定顺序集中存放在表部。这些表包括块表( b l o c kt a b l e ) ,图层表( 1 a y e rt a b l e ) 、线型表( 1 i n e t y p et a b l e ) 、视图表( v i e wt a b l e ) 等等。每一种表的格式、长度均是固定的。比如:图层表 包含了该层的全部信息层名、该层实体的颜色、线型以及该层的状态( 如是否可见、 是否冻结) 等,而每一种表的长度、个数和起始地址都保存在头部的索引信息段中。 a u t o c a d 在存储d w g 文件时,将几何对象的属性以表的形式进行存储。 ( 5 ) 应急头部 为了防止由于头部的重要素引信息的损坏而使整个d w g 文件中的信息丢失, a u t o d e s k 将一些重要素引信息的副本保存在d w g 文件的尾部,称为应急头部 ( c o n t i n g e n c yh e a d e r ) 。 2 2 3a u t o c a d 图形实体 a u t o c a d 图形是一些存储在数据库中的对象的集合,最基本的数据库对象包括实 体,符号表和数据词典等i l 。 符号表和数据词典都是用来储存数据库对象的容器,这两种容器对象都有与之相关 的符号表( 字符串) 。a u t o c a d 数据库中包含一系列固定的符号表,每一个符号表都存储 着表示符号表记录的特定类的句柄,例如层表( a c d b l a y e r t a b l e ) 中包含层表记录,块表 ( a c d b b l o c k t a b l e ) 包含块表记录。由于数据库中的符号表是固定的,因此用户不能向 数据库中添加新的符号表,只能向符号表中添加新的符号表记录。 数据词典提供了一个比符号表更加通用的容器来储存对象,在数据词典中可以储存 任何a c d b o b j e c t 类及其子类的对象。当a u t o c a d 创建新的图形时,数据库中生成一个 “命名对象词典”( n a m e do b j e c td i c t i o n a r y ) ,它负责管理所有与数据库相关的对象数据词 典,用户可以在“命名对象词典”中创建新的对象数据词典来存储新的数据库对象。 a u t o c a d 的图形数据库中所有的图形元素被称为实体( e n t i t y ) ,这些实体都被系统 赋予一个唯一的名称,保存在图形数据库中,通过对a u t o c a d 中实体的访问,可以把 外部信息加入到图形文件中去,这是进行复杂制图工作的有效途径。实体能够在屏幕上 用图形表示出来,如直线、圆、圆弧、文字、实心填充、样条曲线和尺寸等等。需要注 意的是,上述列举的直线、圆和圆弧等都是实体类型,而不是实体名( e n t i t yn a m e ) 。实 基于d w g d i r e c t 的a u t o c a i ) 复杂图形对象处理 体名是指图形中每一个实体所对应的名字,它只是一个指针( p o i n t e r ) ,用这个指针可以 找到该实体在图形数据库中的记录及其在屏幕上的向量。用户可以在a u t o c a d 编辑窗 口内观察实体,并且对实体进行操作。所有的实体类均由a c d b e n t i t y 类派生而来,而 a e d b e n t i t y 类是由a c d b o b j e c t 类派生而来。除了一些复杂实体外,大部分实体都包含 了绘制它们所必须的所有集合信息。 所有a u t o c a d 实体都包含在块表中。新建的数据库的块表中包含三个预定义的记 录:m o d e ls p a c e 、* p a p e rs p a c e 和* p a p e rs p a c e 0 ,分别代表模型空间和两 个图纸空间布局。当创建新块时( 如执行b l o c k 、h a t c h 或d i m e n s i o n 命令) ,新的 块表记录被添加到块表中。 数据库中所有实体的关系如图2 3 所示: 图2 3 数据厍中实体的关系 f i g 2 3r e l a t i o n s h i pb e t w e e ne n t i t i e si nt h ed a t a b a s e 所有的实体都有一些相同的公用属性,实体类中也都包含了设置和查询这些公用属 性的成员函数。实体的公用属性可以通过a u t o c a d 命令设置和查询。它们包括:颜色 ( c o l o r ) 、线型( l i n et y p e ) 、线型比例( l i n e t y p es c a l e ) 、可见性( v i s i b i l i t y ) 、层( l a y e r ) 、直线 宽度( l i n ew e i g h t ) 和打印样式名( p l o ts t y l en a m e ) 等等。 2 2 d w g d i r e c t 技术 2 2 1 d w g d i r e e t 类库和数据库结构 d w g d i r e c t 类库是在2 0 0 2 年由o p e nd e s i g na l l i a n c e 引入的一套基于面向对象的全 新类库,实现支持a u t o c a d 所有版本的d w g 文件。该d w g d i r e c t 主要由以下几个类 大连理工大学硕士学位论文 库组成: ( 1 ) o d r x 类一该类用于运行时类的注册和识别; ( 2 ) o c t d b 类该类表示数据库中的所有实体数据; ( 3 ) o d g i 类该类实现数据对象的渲染; ( 4 ) o d g e 类一通用几何类( 如点,向量等) ; ( 5 ) o d b r 类一该类用于b r e p ( 边界表示法) ; ( 6 ) o d g s 类一图形系统类,为客户提供矢量化界面; 图2 4d w g 文件在内存中的表现形式 f i g 2 4d i s p l a yo fd w g f i l e si nm e m o r y 在d w g d i r e e t 类库中,d w g 文件在内存中由一个o d d b d a t a b a s e 类的实例表示。 每个o d d b d a t a b a s e 类的实例就代表一个简单的数据库,它由9 个符号表和1 个对象字 典组成。d w g 文件在内存中的表现形式如图2 4 所示。 每个符号表和对象字典中都包含多条记录,例如:b l o c k t a b l e 中包含多条 基于d w g d i r e c t 的a u t o c a d 复杂图形对象处理 b l o c k t a b l e r e c o r d ,直线、圆弧、图块等实体的数据又都包含在b l o c k t a b l e r e c o r d 中, 通常的实体都存储在m o d e ls p a c e 块表记录中:层表中的记录存储层的有关信息; 尺寸标注样式表、层表、线型表和文字样式表等均用来存储相应的表记录。根据数据库 结构,采用相应的类函数即可方便的访问到d w g 中的实体数据等信息【1 8 】。 对象字典是存储一般对象的容器,可用来存储任何数据库对象和子类,主要包括组 ( g r o u p ) 和多线( m l i n e ) 样式两个数据库字典。用户也可以创建一个新的“用户对象字 典”,并存储于对象字典中。在实际开发中,可以将应用程序的“扩展对象”存放在“用户 对象字典”中,“扩展对象”的“扩展记录和数据”通过链表的形式存储在对象字典中,对于 该类对象,不另外存储到块表。 2 2 2d w g d i r e e t 的平台支持 d w g d i r e e t 支持的平台包括:w i n d o w s 平台,u n i x 平台,m a c i n t o s h 平台。在w i n d o w s 平台下提供单线程静态链接库( d dv c 6 m l 1 i b ) ,多线程静态链接库( d dv c 6 m t 1 i b ) , 静态多线程d l l 库( d dv c 6 m d 1 i b ) 以及动态链接库( d dv c 6 1 i b 和d dv c 6 d l l ) 。 在w i n d o w s 环境下使用d w g d i r e c t 的设定: ( 1 ) 选择正确的d w g d i r e e t 类库头文件,在w i n d o w s 平台下所需要的头文件在 d dn o n l i b s z i p 中提供。在v c h 6 0 环境下,需要将头文件的目录也就是i n c l u d e 目录 以及其下的子目录添加到v c 工程的支持目录下。 ( 2 ) 选择正确的静态动态链接库。 2 3v i s u a lc + + 及面向对象技术 2 3 1v i s u a lc + + 6 0 简介 使用v i s u a lc + + 6 0 作为开发环境。v i s u a lc + + 不仅仅是一个编译器,它是一个全 面的应用程序开发环境,使用它可以充分利用面向对象特性的c + + 来开发专业级的 w i n d o w s 应用程序【1 9 ,2 0 】。v i s u a lc + + 作为一种程序设计语言,它同时也是一个集成开发 工具,提供了软件代码自动生成功能和一个支持可视化编程的集成开发环境,称为v i s u a l s t u d i o (
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年大学警卫学专业题库-校园安全管理的信息化与智能化
- 2025年乡村医生考试:农村急救技能操作题库解析与练习
- 2025年大学工会学专业题库- 工会对职业技能培训的推动
- 2025年消防执业资格考试题库:消防设施检测与维护消防设施验收试题
- 2025年统计学期末考试题库:统计与决策应用案例分析卷解析
- 2025年大学华文教育专业题库- 大学华文教育专业实践研究论文
- 2025年大学科学教育专业题库-、科学教育教师师德培养研究
- 2025年资产评估师考试真题模拟:企业价值评估实务
- 2025年大学融合教育专业题库- 教师专业成长路径中的融合教育观
- 2025年大学移民管理专业题库- 移民社会心理健康分析
- 电缆沟及盖板作业指导书培训课件
- GB/T 19867.6-2016激光-电弧复合焊接工艺规程
- GB/T 19478-2018畜禽屠宰操作规程鸡
- 三级教育考试卷(焊工)答案
- 无生上课课堂教学评价标准
- 深圳低压电工作业-实际操作培训课件-科目四-作业现场应急处理
- 植物生理学第十三章植物的逆境生理课件
- 中控岗位培训课件
- 宾馆酒店前台责任书
- 2.2 第2课时 基本不等式的综合应用(课件)高一数学(人教A版2019必修第一册)
- 勿忘国耻教学课件
评论
0/150
提交评论