资源描述:
《用C语言程序读取CADdxf文件里实体语言.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、{woldline-dxf(FILE*fp,charlayer[2],floatx1,floaly1,floatx2,floaty2)fprintf(fp,"0LINE8%s",1ayer);fprintf(fp,"10%f20%f",x1,y1);fprintf(fp,"l1%f2l%f",x2,y2);}#include;#include;#include"acad-dxf.c"main(){floatr1,r2,11,12,13x[100],y[37].Z[37];floatbe
2、ta.beta1,fq,dz,w;inti;floatxl,x1,y1,z1,x2,z2,x3,z3,x4,z4,xs,zs,Xe,ze;摘要:本文简要介绍了一下DXF文件的组成。重点讲述了怎样使用C语言来读取DXF文件中的实体信息。关键字:C、DXFAbstract:ThepaperpresentthebasicpartsofDXFfile.AndfocusonhowtouseCreadtheentity’sinformationfromDXFfile.KeyWords:C,DXFDXF是DrawingeXchangeFile的缩写,意思为图形交换文件,在工程制图
3、中有广泛的应用,掌握了DXF文件的读写对编写CAD软件时的图形信息的交换有重要意义。它有两种格式:一种是ASCIIDXF格式;一种是二进制DXF格式。ASCIIDXF文件格式是ASCII文字格式的AutoCAD图形的完整表示,这种文件格式易于被其它程序处理。二进制格式的DXF文件与ASCII格式的DXF文件包含的信息相同,但格式上二进制格式比ASCII格式更精简,能够节省百分之二十五的文件空间。AutoCAD能够更快地对其执行读写操作(通常能快五倍)。这可能是对ASCII格式的DXF文件操作时有ASCII与二进制形式的转换,因而花费时间较多。本文主要讨论ASCII格
4、式的DXF文件,因为它可读性强。一、ASCII格式的DXF文件的组成先来介绍一下ASCII格式的DXF文件的组成。(小提示:打开AutoCAD,新建一个空的文件,然后再输出为DXF文件,并用记事本打开DXF文件,就可以看到它的所有代码了,这样有助于你更好地理解DXF文件的组成。还有按一下F1,打开AutoCAD的帮助文件,找到DXF参考,它是权威具体的资料。)用记事本打开一个DXF文件,你可以发现它里面有这样一些代码:0SECTION2HEADER9$ACADVER1AC1015……即里面总是数字和字符串/数字在交替的出现。数字就叫做代码(通常称为组码),紧跟组码数
5、字的称为关联值对。(以下内容来自DXF参考)DXF文件本质上由代码及关联值对组成。代码(通常称为组码)表明其后的值的类型。使用这些组码和值对,可以将DXF文件组织到由记录组成的区域中,这些记录由组码和数据项目组成。在DXF文件,每个组码和值各占一行。表1为组码值类型表的部分:表1组码值类型表(部分)一个完整的ASCII格式的DXF文件结构如下:lHEADER段。它包含图形的基本信息。它由AutoCAD数据库版本号和一些系统变量组成。每个参数都包含一个变量名称及其关联的值。lCLASSES段。包含应用程序定义的类的信息,这些类的实例出现在数据库的BLOCKS、ENTI
6、TIES和OBJECTS段中。类定义在类的层次结构中是固定不变的。lTABLES段。包含以下符号表的定义:APPID(应用程序标识表)BLOCK_RECORD(块参照表)DIMSTYLE(标注样式表)LAYER(图层表)LTYPE(线型表)STYLE(文字样式表)UCS(用户坐标系表)VIEW(视图表)VPORT(视口配置表)lBLOCKS段。包含构成图形中每个块参照的块定义和图形图元。lENTITIES段。包含图形中的图形对象(图元),其中包括块参照(插入图元)。这里的信息很重要。lOBJECTS段。包含图形中的非图形对象。除图元、符号表记录以及符号表以外的所有对
7、象都存储在此段。OBJECTS段中的条目样例是包含多线样式和组的词典。lTHUMBNAILIMAGE段。包含图形的预览图像数据。此段为可选。每个段都以一个后跟字符串SECTION的组码0开始,其后是组码2和表示该段名称的字符串(例如,HEADER)。每个段都由定义其元素的组码和值组成。每个段都以一个后跟字符串ENDSEC的组码0结束。举两个例子:1.以下是DXF™文件HEADER段的样例:0HEADER段的开始SECTION2HEADER9每出现一个标题变量便重复一次$<变量><组码><值>0HEADER段的结尾ENDSEC2.以下是DXF文件ENTITIES段