- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DWG文档格式化存储的方法的研究
DWG文档格式化存储的方法的研究
摘要:基于CAD的DWG文件解析是解决DWG文件不易读取的唯一方法,也是CAD在实际操作中遇到的主要问题。本文阐述了如何解析DWG文件,分析DWG文件数据结构及数据类型,将DWG二进制格式文件分解成可以存储的实体元素,并将得到的实体元素存入数据库,可提取数据库中DWG文件信息,为实现工程概算和模糊匹配提供方便,同时简要介绍了DWG文件转换成XML文件的方法。
关键词:DWG 文档格式化 研究
中图分类号:TP393文献标识码:A文章编号:1672-3791(2011)02(a)-0000-00
1前言
CAD作为一种功能强大的计算机辅助设计软件被广泛使用,在建筑、规划、测绘中用它来绘制图形,例如建筑设计图、城市规划图等,其绘制的结果被保存为以DWG为扩展名的矢量图形文件中,这种矢量图形在许多软件中不能直接使用,必须经过各种方法的转换后方能调用。因此传统的DWG文件不易读取,不易转换的特性就成为实际操作应用的瓶颈,所以开发解析DWG文件,将DWG文件解析成可以读取的,字符串形式的数据或方便转换存储形式的数据,就成为十分必要的,也是现在软件实际应用中主要面临的问题。
本文对CAD矢量图形的转换方法进行探究。通过对DWG实例文件的二进制剖析,重点研究了DWG文件的内部格式,包括其总体结构,以及各部分的组织方式。在具体数据类型方面包括基本数据类型,扩展数据类型和三维信息等的内部表示方法。分析了其数据表示的不对齐,不定长,表示域大等特点。
2 DWG文件的组成与解析
2.1 DWG 文件的结构
如图 1 所示,DWG文件按照地址偏移量依次分为定位器部分,图像部分,环境变量部分,实体部分和对象映射表部分。各部分相互指向,共同表达了DWG 文件中实体的复杂逻辑关系。各个部分组成了一个有机整体,用户可以访问任何部分,在访问具体对象前要通过对象映射表。定位器部分实质是整个DWG 文件的总起部分,它用相对于文件首部的偏移来记录其他各部分的位置。其中定位器的编号与其内容是一一对应的,在所有DWG文件中保持不变。
图 1 DWG 文件的总体结构
2.2 DWG二进制格式文件
DWG采用二进制格式的文件形式,一方面可以节省文件占用的空间,另一方面提高读写文件的效率。为了防止用户对DWG文件无意损坏而造成的AutoCAD 崩溃,AutoCAD 采用循环冗余校验,对DWG文件的正确性进行检查。
DWG二进制格式文件,共有5 种数据形式:字符型、字节型、整型、长整型、IEEE标准的浮点数,用户可以直接对这些数据进行存取和处理。文件DWG 的数据结构由5 部分组成,分别是:头部、实体部、表部、块实体部和应急头部。总体结构如图2所示:
图2 DWG文件数据结构图
(1)头部结构
DWG文件的头部存放着DWG 文件的一些重要信息,如DWG 文件标志、版本信息、各种索引用的地址以及Auto-CAD 软件中的一部分系统变量。头部的信息对于AutoCAD来讲是至关重要的,因为AutoCAD 对DWG 文件的所有寻址操作的地址均从头部的有关参数计算而来,而且头部还保存着与该文件中所保存图形密切相关的系统变量的值。
(2)实体部
实体部保存着该图形中的全部实体。所谓实体是指AutoCAD 中的基本图形单元。如:点,线、圆、弧、块、尺寸标注等。为了识别实体,AutoCAD 将实体进行编码,如点实体的编码为02H,直线实体的编码为01H。对于每一个实体,其数据结构都可以分成两个部分:实体头部和实体尾部。实体头部的长度固定,包含有实体类型编码、实体性质、实体长度。不同实体,其尾部数据结构不同。
(3)表部
表是AutoCAD 为方便索引而引入的数据结构。在DWG文件中所有的表均按一定顺序集中存放在表部。这些表包括块表、层表、字型表、线型表。每一种表的格式、长度均固定。例如层表,它包含了该层的全部信息:层名、该层实体的颜色、线型以及该层的状态,而每一种表的长度、个数和起始地址保存在头部的索引信息段。
(4)块实体部
块是用AutoCAD 进行绘图时经常遇到的一个概念。它是为了减少图形文件的长度和方便操作而引入的。AutoCAD 将用户所做的块集中存在一起,这就是块实体部。每生成一个块时,AutoCAD 同时自动地生成一个相应的块表以便检索。对于每一个块,其两端均为块起始实体和结束实体,中间为该块所包含的各种实体元素。
(5)应急头部
为了防止由于头部的重要索引信息的损坏而使整个DWG文件中的信息丢失, AutoCAD 将一些重要索引信息的副本保存在DWG 文件的尾部,称为应
原创力文档


文档评论(0)