对dwg文件解析的研究报告

上传人:今*** 文档编号:105676113 上传时间:2019-10-13 格式:DOCX 页数:10 大小:144.88KB
返回 下载 相关 举报
对dwg文件解析的研究报告_第1页
第1页 / 共10页
对dwg文件解析的研究报告_第2页
第2页 / 共10页
对dwg文件解析的研究报告_第3页
第3页 / 共10页
对dwg文件解析的研究报告_第4页
第4页 / 共10页
对dwg文件解析的研究报告_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《对dwg文件解析的研究报告》由会员分享,可在线阅读,更多相关《对dwg文件解析的研究报告(10页珍藏版)》请在金锄头文库上搜索。

1、关于DWG文件解析的研究报告(初稿)(张玄德)经过对DWG文件的资料整理和对华天软件周云鹏经理的咨询,Autodesk公司一直没有公开DWG文件的存储格式,去年华天软件也开始着手解析该文件,以前一直采用第三方的组件实现。他们采用的是通过ODA数据交换平台对DWG的文件格式进行解析(见图1)。图1通过对比分析,目前主流的对DWG文件解析的手段有6种。分别是:(1) 采用AutoLisp和Visual Lisp进行二次开发。这种方式有点是集成性好,缺点是无法摆脱CAD运行环境。(2) 采用ADS/ObjectARX实现DWG文件的解析。 ADS/ObjectARX是一个用C语言访问的DWG文件的开

2、发工具,ObjectARX是一个基于C+的类库,而且AutoCAD本身也是ObjectARX创建的CAD软件系统,因此可以采用ObjectARX对DWG文件进行完全访问,但是ObjectARX只能运行在AutoCAD内核环境中。(3) 通过DXF文件解析DWG文件。DXF文件是DWG文件的一种文本形式的等价表示。但是后期通过DXF文件很难完全访问DWG文件的内在信息。(4) 通过COM/ActiveX方式实现对文件的解析。该种方式的进程透明性和位置透明性为不同应用程序进程之间通过网络进行数据通信提供了一种良好的机制,实现双接口的组件既能保证强类型语言应用程序的高效率。这种方式的缺点是应用程序作

3、为客户端无法独立于AutoCAD这个ActiveX服务器单独运行。(5) 采用ObjectDBX方式实现。由于AutoCAD所提供的四种访问DWG文件的方法都无法脱离CAD运行平台独立运行。ObjectDBX是一套基于的类库。与ObjectARX不同的是ObjectDBX不在依赖AutoCAD平台。只限制于Windows平台和VisioC+开发工具。(6) 采用OpenDwg Toolkit实现对DWG文件的解析。由于ObjectDBX应用程序只能在Windows平台上采用Visual C+来开发,而网络应用开发环境要比AutoCAD单个软件运行的环境要复杂的多。OpenDwg Toolkit

4、简称ODT。除了其跨平台优势外,对开发者而言ODT不仅是免费的,不需要OpenDBX比较昂贵的授权费用。AutoCAD软件是我国目前最流行的微机软件包之一,DWG文件为Auto Desk公司推出的图形格式文件,可以理解成由点、线、面等构成的图形数据库。其复杂性主要来自由对象的多样性及属性的复杂性。比如图形、线形、样式的关联。一个DWG图纸文件由图纸信息和各种图元对象组成。分为无图形表示类和有图形表示类。有图形表示类对象以块表方式存放;无图形表示类包括图层、线形。DWG文件内容可以分为四个部分:(一)索引部;(二)标题部;(三)实体部;(四)名表部。(一) 索引部索引部主要是由Auto CAD的

5、版本信息及各部的首地址、各分表的首地址、长度及个数等信息构成,从DWG文件中的#0000-#0050H。#00-#13 Char*20 AutoCAD版本信息#14-#17 int *4 实体部首址#18-#1F int *4 名表部首址#1C-#1F int *4 图块定义首址#20-#23 int *4 图块定义长度#24-#27 int *4 文件总长度#28-#2B int *4 常数1、 图块描述段:#2C-#2D int *2 图块名长度(25H)#2E-#2F int *2 图块个数#30-#31 int *2 标识数#32-#35 int *2 图块名表首址2、 层描述段: #

6、36-#37 int *2 层名长度(25H) #38-#39 int *2 层的个数#3A-#3B int *2 标识数#3C-#3F int *2 层名表首址3、 字型描述段: #40-#41 int *2 字型名长度(C2H)#42-#43 int *2 字型个数#44-#45 int *2 标识数#46-#49 int *2 字型名表首址4、 线形描述段: #4A-#4B int *2 线型名长度(BBH)#4C-#4D int *2 线型个数#4E-#4F int *2 标识数#50-#53 int *4 线型名表首址5、 视图描述段: #54-#55 int *2 视图名长度(5B

7、H)#56-#57 int *2 视图个数#58-#59 int *2 标识数#5A-#5D int *4 视图名表首址6、 各个地址间的关系: 实体部首址=索引部长度+标题部长度 表部首址=实体部首址+实体部总长度 块实体首址=表部首址+表部总长度 文件总长度=块实体首址+块实体部总长度(二) 环境部该部给出了系统变量,属性设置及当前状态等信息,它位于DWG文件的#005E-#03EEH。 #05E-#075 INSBASE real*24 #076-#077 实体个数 int *2 #078-#08F EXTININ real*24#090-#0A7 EXTMAX real*24#0A8-

8、#0B7 LIMMIN real*16#0B8-#0C7 LIMMIX real*16#0C8-#0DF VIEWCTR real*24#0E0-#0E7 VIEWSIZE real*8#0E8-#0E9 SNAPNODE int*2#0EA-#0F9 SNAPUNIT int*16#0FA-#109 SNAPBASE real*16#10A-#111 SNAPANC int *8#112-#113 SNAPSTYL int *2#114-#115 SNAPISOPAIR int *2#116-#117 GRIDNODE int *2#118-#127 GRIDUNIT int *2#128-

9、#129 ORTHOMODE int *2#12A-#12B REGENNODE int *2#12C-#12D FILEMODE int *2#12E-#12F QTEXTMODE int *2#130-#131 DRAGMODE int *2#132-#139 LTSCALE int *8#13A-#141 TEXTSIZE real*8#142-#149 TRACEWID real*8#14A-#14B CLAYER real*2#14C-#163#164-#165 LUNITS int*2#166-#167 LUPREC int *2#168-#169 AXISMODE int *2#

10、16A-#179 AXISUNIT int *16#17A-#191 SKETCHINC real * 8#182-#189 FILLETRAD real * 8#18A-#18B AUNITS int *2#18C-#18D AUPREC int *2#18E-#18F #190-#191 OSMODE int *2#192-#193 ATTMODE int *2#194-#1A2 MENU char *15#1A3-#1AA DIMSCALE real*8#1AB-#1B2 DIMASZ real*8#1B3-#1BA DIMEXO real*8#1BB-#1C2 DIMDLI real*

11、8#1C3-#1C4 DIMEXE real*8#1CB-#1D2 DIMTP real*8#1D3-#1DA DIMTN real*8#1DB-#1E2 DIMTXT real*8#1E3-#1EA DIMCEN real*8#1E8-#1F2 DIMTSZ real*8#1F3 DIMTOL int *1#1F4 DIMLIN int *1#1F5 DIMTIH int *1#1F6 DIMTOH int *1#1F7 DIMSE1 int *1#1F8 DIMSE2 int *1#1F9 DIMTAD int *1#1FA-#228 #229-#230 ELEVATION real*8#

12、234-#238 THICHNESS real*8#239-#250 VIEWDIR real*24#251-#2B2 图形显示说明 #2E3-#2E4 BLIPMODE int *2#2E5-#3EE 备用(三) 实体部该部给出了所有图形实体的描述,图形实体又分为简单图形实体和复杂图形实体。简单图形实体是点、直线等基本图形。复杂图形实体指多线段、图块等由基本图形实体所组成的图形。每一个图形实体都有描述段,他由描述首部和描述内容两部分所组成,描述首部的格式是固定的,描述内容各不相同。描述首部格式:(1) LINE实体标识数为01H,描述段长度为28H。#00-#07 描述首部#08-#17 起

13、点坐标值 real *16#18-#27 终点坐标值 real *16(2) POINT实体标识数为02H,描述段长度为18H#00-#07 描述首部#08-#17 点的坐标值 real*16(3) CIRCLE实体标识数为03H,描述段长度为20H#00-#07 描述首部#08-#17 圆心坐标值 real*16#18-#1F 圆的半径 real*8(4) SHAPE实体标识数为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,读值存在,否则缺省值为0(5) TEXT实体标识数为07H,描述段长度可变#00-#07 描述首部#08-#17 文字头的坐标值 real*16#18-#1F 字符高度 real*8#20-#21 字符串长度 into*2#22 字符串 char*256#

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号