




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
有关DWG文献解析的研究汇报(草稿)(张玄德)通过对DWG文献的资料整顿和对华天软件周云鹏经理的征询,Autodesk企业一直没有公开DWG文献的存储格式,去年华天软件也开始着手解析该文献,此前一直采用第三方的组件实现。他们采用的是通过ODA数据互换平台对DWG的文献格式进行解析(见图1)。图1通过对比分析,目前主流的对DWG文献解析的手段有6种。分别是:采用AutoLisp和VisualLisp进行二次开发。这种方式有点是集成性好,缺陷是无法挣脱CAD运行环境。采用ADS/ObjectARX实现DWG文献的解析。ADS/ObjectARX是一种用C语言访问的DWG文献的开发工具,ObjectARX是一种基于C++的类库,并且AutoCAD自身也是ObjectARX创立的CAD软件系统,因此可以采用ObjectARX对DWG文献进行完全访问,不过ObjectARX只能运行在AutoCAD内核环境中。通过DXF文献解析DWG文献。DXF文献是DWG文献的一种文本形式的等价表达。不过后期通过DXF文献很难完全访问DWG文献的内在信息。通过COM/ActiveX方式实现对DWG文献的解析。该种方式的进程透明性和位置透明性为不一样应用程序进程之间通过网络进行数据通信提供了一种良好的机制,实现双接口的组件既能保证强类型语言应用程序的高效率。这种方式的缺陷是应用程序作为客户端无法独立于AutoCAD这个ActiveX服务器单独运行。采用ObjectDBX方式实现。由于AutoCAD所提供的四种访问DWG文献的措施都无法脱离CAD运行平台独立运行。ObjectDBX是一套基于C++的类库。与ObjectARX不一样的是ObjectDBX不在依赖AutoCAD平台。只限制于Windows平台和VisioC++开发工具。采用OpenDwgToolkit实现对DWG文献的解析。由于ObjectDBX应用程序只能在Windows平台上采用VisualC++来开发,而网络应用开发环境要比AutoCAD单个软件运行的环境要复杂的多。OpenDwgToolkit简称ODT。除了其跨平台优势外,对开发者而言ODT不仅是免费的,不需要OpenDBX比较昂贵的授权费用。AutoCAD软件是我国目前最流行的微机软件包之一,DWG文献为AutoDesk企业推出的图形格式文献,可以理解成由点、线、面等构成的图形数据库。其复杂性重要来自由对象的多样性及属性的复杂性。例如图形、线形、样式的关联。一种DWG图纸文献由图纸信息和多种图元对象构成。分为无图形表达类和有图形表达类。有图形表达类对象以块表方式寄存;无图形表达类包括图层、线形。DWG文献内容可以分为四个部分:(一)索引部;(二)标题部;(三)实体部;(四)名表部。索引部索引部重要是由AutoCAD的版本信息及各部的首地址、各分表的首地址、长度及个数等信息构成,从DWG文献中的#0000-#0050H。#00-#13Char*20AutoCAD版本信息#14-#17int*4实体部首址#18-#1Fint*4名表部首址#1C-#1Fint*4图块定义首址#20-#23int*4图块定义长度#24-#27int*4文献总长度#28-#2Bint*4常数图块描述段:#2C-#2Dint*2图块名长度(25H)#2E-#2Fint*2图块个数#30-#31int*2标识数#32-#35int*2图块名表首址层描述段:#36-#37int*2层名长度(25H)#38-#39int*2层的个数#3A-#3Bint*2标识数#3C-#3Fint*2层名表首址字型描述段:#40-#41int*2字型名长度(C2H)#42-#43int*2字型个数#44-#45int*2标识数#46-#49int*2字型名表首址线形描述段:#4A-#4Bint*2线型名长度(BBH)#4C-#4Dint*2线型个数#4E-#4Fint*2标识数#50-#53int*4线型名表首址视图描述段:#54-#55int*2视图名长度(5BH)#56-#57int*2视图个数#58-#59int*2标识数#5A-#5Dint*4视图名表首址各个地址间的关系:实体部首址=索引部长度+标题部长度表部首址=实体部首址+实体部总长度块实体首址=表部首址+表部总长度文献总长度=块实体首址+块实体部总长度环境部该部给出了系统变量,属性设置及目前状态等信息,它位于DWG文献的#005E-#03EEH。#05E-#075INSBASEreal*24#076-#077实体个数int*2#078-#08FEXTININreal*24#090-#0A7EXTMAXreal*24#0A8-#0B7LIMMINreal*16#0B8-#0C7LIMMIXreal*16#0C8-#0DFVIEWCTRreal*24#0E0-#0E7VIEWSIZEreal*8#0E8-#0E9SNAPNODEint*2#0EA-#0F9SNAPUNITint*16#0FA-#109SNAPBASEreal*16#10A-#111SNAPANCint*8#112-#113SNAPSTYLint*2#114-#115SNAPISOPAIRint*2#116-#117GRIDNODEint*2#118-#127GRIDUNITint*2#128-#129ORTHOMODEint*2#12A-#12BREGENNODEint*2#12C-#12DFILEMODEint*2#12E-#12FQTEXTMODEint*2#130-#131DRAGMODEint*2#132-#139LTSCALEint*8#13A-#141TEXTSIZEreal*8#142-#149TRACEWIDreal*8#14A-#14BCLAYERreal*2#14C-#163#164-#165LUNITSint*2#166-#167LUPRECint*2#168-#169AXISMODEint*2#16A-#179AXISUNITint*16#17A-#191SKETCHINCreal*8#182-#189FILLETRADreal*8#18A-#18BAUNITSint*2#18C-#18DAUPRECint*2#18E-#18F#190-#191OSMODEint*2#192-#193ATTMODEint*2#194-#1A2MENUchar*15#1A3-#1AADIMSCALEreal*8#1AB-#1B2DIMASZreal*8#1B3-#1BADIMEXOreal*8#1BB-#1C2DIMDLIreal*8#1C3-#1C4DIMEXEreal*8#1CB-#1D2DIMTPreal*8#1D3-#1DADIMTNreal*8#1DB-#1E2DIMTXTreal*8#1E3-#1EADIMCENreal*8#1E8-#1F2DIMTSZreal*8#1F3DIMTOLint*1#1F4DIMLINint*1#1F5DIMTIHint*1#1F6DIMTOHint*1#1F7DIMSE1int*1#1F8DIMSE2int*1#1F9DIMTADint*1#1FA-#228#229-#230ELEVATIONreal*8#234-#238THICHNESSreal*8#239-#250VIEWDIRreal*24#251-#2B2图形显示阐明#2E3-#2E4BLIPMODEint*2#2E5-#3EE备用实体部该部给出了所有图形实体的描述,图形实体又分为简朴图形实体和复杂图形实体。简朴图形实体是点、直线等基本图形。复杂图形实体指多线段、图块等由基本图形实体所构成的图形。每一种图形实体均有描述段,他由描述首部和描述内容两部分所构成,描述首部的格式是固定的,描述内容各不相似。描述首部格式:LINE实体标识数为01H,描述段长度为28H。#00-#07描述首部#08-#17起点坐标值real*16#18-#27终点坐标值real*16POINT实体标识数为02H,描述段长度为18H#00-#07描述首部#08-#17点的坐标值real*16CIRCLE实体标识数为03H,描述段长度为20H#00-#07描述首部#08-#17圆心坐标值real*16#18-#1F圆的半径real*8SHAPE实体标识数为04H,描述段长度可变#00-#07描述首部#08-#17插入坐标值real*16#18-#1F型体高度real*8#20型体号real*8#21-#28插入角度(可省略)real*8若描述首部中的属性字第0位为1,读值存在,否则缺省值为0#29型体文献号(可省)int*1若描述首部中的属性字第1位为1,读值存在,否则缺省值为0TEXT实体标识数为07H,描述段长度可变#00-#07描述首部#08-#17文字头的坐标值real*16#18-#1F字符高度real*8#20-#21字符串长度into*2#22字符串char*256#字符创旋转角real*8ARC实体标识数为08H,描述段长度为30H#00-#07描述首部#08-#17圆心坐标值real*16#18-#1F半径real*8#20-#27起始角real*8#28-#2F终止角real*8TRACE实体标识数为09H,描述段长度为48H#00-#07描述首部#08-#17第一点坐标值real*16#18-#1F第二点坐标值real*16#28-#37第三点坐标值real*16#38-#47第四点坐标值real*16SOLID实体标识数为0BH,描述段长度为48H#00-#07描述首部#08-#17第一点坐标值real*16#18-#1F第二点坐标值real*16#28-#37第三点坐标值real*16#38-#47第四点坐标值real*16复杂图形实体在DWG文献中,复杂图形实体指反复图形、图块和多段连线实体,它们都是有不止一种标识数的实体。反复图形实体反复图形指某些简朴图形的反复排列,它的描述由三部分构成,开始实体、简朴图形实体和结束实体。(a)开始实体标识数为06H,描述段长度为08H,格式同描述首部。(b)结束实体标识数为07H,描述段长度为1CH。#00-#07描述首部#08-#09反复行数int*2#0A-#0B反复列数int*2#14-#1B反复行距real*8#14-#1B反复列距real*8实体图块图块实体就是将某些简朴图形实体看作一种整体,他的描述由三部分构成,BLOCK(图块开始)实体,简朴图形实体和图块结束实体。BLOCK实体标识数为0CH,描述段长度为08H,格式同描述首部(b)图块结束实体标识数为0CH,描述段长度为18H。#00-#07描述首部#08-#17基点坐标值real*16POLYLINE实体多段连线指直线和圆弧所组合的曲线,它的描述也由三部分构成:POLYINE(多段连线)实体、结点实体和结束实体。POLYLINE实体标识数为8013H,描述段长度可变#00-#07描述首部#08状态值(可省)int*1(若属性字第0位为1,该值存在,否则为0)数值0,正常;数值1封闭;数值2拟合#09-#10起始宽度(可省)#11-#18终止宽度(可省)结点实体标识数为14H,描述长度可变#00-#07描述首部#08-#17结点坐标值#18-#1F结点起始宽度#20-#27结点终止宽度#28-#2F凹凸值#30结点状态#31--#38光滑切线方向结束
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论