DXF接口方法研究与实现

DXF接口方法研究与实现

ID:39548626

大小:48.50 KB

页数:5页

时间:2019-07-06

DXF接口方法研究与实现_第1页
DXF接口方法研究与实现_第2页
DXF接口方法研究与实现_第3页
DXF接口方法研究与实现_第4页
DXF接口方法研究与实现_第5页
资源描述:

《DXF接口方法研究与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、2011-07-05DXF接口方法研究与实现摘要研究了AutoCAD的DXF文件接口格式,分析DXF文件的组成,用C语言对接口程序的编写以及对接口子程序的编写。关键字DXF、计算机辅助设计、接口文件一、引言每个CAD系统都有自己的数据文件,数据文件分图形数据文件、几何模型文件和产品模型文件几种。数据文件的格式与每个CAD系统自己的内部数据模式密切相关,而每个CAD系统自己内部的数据模式一般是不公开的,也是各不相同的。由于用户使用的需要,就有数据交换文件概念的出现。二、DXF接口文件的格式、组成文件格式由

2、五个部分组成,它们是:(l)HEADERSECTION(头部区)记录AutoCAD作图时所用到的系统变量,这些变量可由AutoCAD中的STATUS在屏幕上显示的各种命令来设置。(2)TABLESECTION(列表区)包含了八个表,具体如下:APIDP——图名;DIMSTYLE——尺寸标注的种类;LTYPE——型名及其间隔;LAYER——层名及其设定状态;STYLlE——文字的种类及其应用名;UCS——用户设定的局部坐标系;VlEW——观察对象的视点、视线;VPORT——显示区上每个视区的表示方法。(3

3、)ENTTIESSECTION(实体区)用于定义AutoCAD所支持的图形元素,如表2.1所示。(4)BLOCKSSECTION(复合图形区)用于定义所有的复合图形及其所构成的实体,此实体的含义与上述实体区中所列出的图形元素相同。用BLOCK表示复合图形的开始和ENDBLK表示复合图形的终止。(5)ENDOFFile(文件结束)DXF文件每个段由若干个组组成,每个组在DXF文件中占有两行。组的第一行为组代码,它是一个非零的正整数,相当于数据类型代码,每个组代码的含义是由AutoCAD系统约定好的,以FO

4、RTRAN“I3”格式(即向右对齐并且用三字符字段填满空格的输出格式)输出。组的第二行为组值,相当于数据的值,采用的格式取决于组代码指定的组的类型。组代码和组值合起来表示一个数据的含义和它的值。-5-2011-07-05图形元素图形元素LINE直线POINT点CIRCLE圆ARC圆弧TRACE粗实线SOLID实体TEXT文字SHAPE形体PLINE折线DIMENSION尺寸标注INSERT插入图形VIEWPORT视区ATIDEF属性定义ATIRIB属性值VERTEX顶点SEQEND折线终止3DFACE三

5、维面表2.1DXF文件定义的图形元素二、接口程序以及接口子程序的编写有了以上知识就可读懂DXF文件并从中提取我们所需要的信息了,而我们所需要的信息大多在ENTITIES段中。先讲一下大概的处理方法:输入DXF文件名,打开DXF文件,读取一个记录,HEADER,TABLES,ENTITIES,BLOCKS,EOF,处理HEADER,处理TABLES,处理ENTITIES,处理BLOCKS,结束。可以从DXF文件中检索,当检索到与某个段时就转到那个段的处理程序去处理。如检索到HEADER段就转入HEADER

6、段的处理程序去处理。图形的大部分信息都在实体ENTITIES段中,因此读取实体段的内容很重要。读取实体段的数据首先要考虑读取数据的存储方式,然后再进行后一步的处理或存入数据文件中。此处用链表结构来存储。各个实体的数据分成两块:公共数据块和特殊数据块。公共数据块存储每个实体都具有特征参数,如所在图层,实体标识,线型名……特殊数据块存储每个实体特有的数据,如实体LINE,它里面有两个端点的坐标值;实体CIRCLE中有圆心坐标值和半径值等。单个实体的数据处理方法:读取一个实体的数据首先根据组码“0”后的实体标

7、识字符串来确定其为哪一种实体,然后再根据这个实体的具体情况来读取数据。1.下面是用C来读取HEADER段中的部分程序。#include#include#include#defineSTRLEN30intmain(intargc,char*argv[]){intcode;/*存储组码*/charcodevalue[STRLEN];/*存储组码对应的值*/FILE*dxf;/*文件指针*/charfilename[STRLEN];/*文件名*/cha

8、rsuffix[6]=".dxf";/*只输入文件名打开DXF文件,不用输后缀.*/-5-2011-07-05printf("请输入文件名:");gets(filename);strcat(filename,suffix);dxf=fopen(filename,"r");/*打开文件进行读操作*/if(!dxf){printf("打开文件出错!按任意键退出...");getchar();exit(0);}else{printf("文件已

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。