DXF简介

DXF数据接口
每个CAD系统都有自己的数据文件,数据文件分图形数据文件、几何模型文件和产品模型文件几种。数据文件的格式与每个CAD系统自己的内部数据模式密切相关,而每个CAD系统自己内部的数据模式一般是不公开的,也是各不相同的。由于用户使用的需要,就有数据交换文件概念的出现。
DXF为AutoCAD系统的图形数据文件,DXF虽然不是标准,但由于AutoCAD系统的普遍应用,使得DXF成为事实上的数据交换标准。DXF是具有专门格式的ASCII码文本文件,它易于被其它程序处理,主要用于实现高级语言编写的程序与AutoCAD系统的连接,或其它CAD系统与AutoCAD系统交换图形文件。
1   DXF文件结构  
一个完整的DXF文件是由四个段和一个文件结尾组成的。其顺序如下:
(1)标题段,记录AutoCAD系统的所有标题变量的当前值或当前状态。这些标题变量记录了AutoCAD系统的当前工作环境。例如,AutoCAD版本号、插入基点、绘图界限、SNAP捕捉的当前状态、珊格间距、式样、当前图层名、当前线型和当前颜色等;
(2)表段,包含了四个表,每个表又包含可变数目的表项。按照这些表在文件中出现的顺序,它们依次为线型表、图层表、字样表和视图表;
(3)块段,记录定义每一块时的块名、当前图层名、块的种类、块的插入基点及组成该块的所有成员。块的种类分为图形块、带有属性的块和无名块三种。无名块包括用HATCH命令生成的剖面线和用DIM命令完成的尺寸标注;
(4)元素段,记录了每个几何元素的名称、所在图层的名称、线型名、颜色号、基面高度、厚度以及有关几何数据;
(5)文件结束,标识文件结束。
 
DXF文件每个段由若干个组构成,每个组在DXF文件中占有两行。组的第一行为组代码,它是一个非零的正整数,相当于数据类型代码,每个组代码的含义是由AutoCAD系统约定好的,以FORTRAN   “I3”格式(即向右对齐并且用三字符字段填满空格的输出格式)输出。组的第二行为组值,相当于数据的值,采用的格式取决于组代码指定的组的类型。组代码和组值合起来表示一个数据的含义和它的值。组代码范围见下表。需要注意的是,在AutoCAD系统中组代码既用于指出如下表所示的组值的类型,又用来指出组的一般应用。组代码的具体含义取决于实际变量、表项或元素描述,但“固定”的组代码总具有相同的含义,如组代码“8”总表示图层名。
组代码范围 跟随值的类型
0-9 串
10-59 浮点
60-79 整数
210-239 浮点
999 注释
1000-1009 串
1010-1059 浮点
1060-1079 整数
表6.3   组代码范围
 
一个DXF文件的框架如下:
0   ......段开始
SECTION  
2  
HEADER   ......该段为标题段
9
$ACADVER   ......下面依次描述所有标题变量
1
AC1003
.
.
.
0
ENDSEC   ......标题段结束
0
SECTION   ......段开始
2
TABLES   ......该段为表段
0
TABLE   ......表开始
2
LTYPE   ......该表为线型表
.
.
.
0
ENDTAB   ......线型表结束
0
TABLE  
2  
LAYER   ......图层表开始
.
.
.
0
ENDTAB   ......图层表结束
0
TABLE
2
STYLE   ......字样表开始
.
.
.
0
ENDTAB   ......字样表开始
0
TABLE
2
VIEW   ......视图表开始
.
.
.
0
ENDTAB   ......视图表结束
0
ENDSEC   ......表段结束
0
SECTION  
2
BLOCKS   ......块段开始
0
BLOCK   ......块开始
.
.
.
ENDBLK   ......块结束
.
.
.
0
ENDSEC   ......块段结束
0
SECTION
2
ENTITIES   ......元素表开始
0
xxxxxxx   ......开始的元素
.
.
.
0
xxxxxxx   ......又一个元素开始
.
.
.
0
ENDSEC   ......元素段结束
0
EOF   ......文件结束
 
2   DXF文件接口程序设计
DXF文件格式的设计充分考虑了接口程序的需要,它能够容易地跳过没有必要关心的信息,同时又能方便地提取所需要的信息。只要记住按何顺序处理各个组并跳过不关心的组即可。但编写一个输出DXF文件的程序是比较困难的,因为必须保持图形的一致性以使AutoCAD系统接受它。AutoCAD系统允许在一个DXF文件中省略许多项并且仍可获得一个合法的图形。如果不需要设置任何标题变量,那么整个HEADER段都可以省略。在TABLES段中的任何一个表,在不需要时也可以略去,并且事实上如果对它不作任何处理时,整个表段也可以去掉。如果在LTYPE表中定义了线型,则该表必须在LAYER表之前出现。如果图中没有使用块定义,则可以省略BLOCKS段。如果有,那么它必须出现在ENTITIES段之前。EOF必须出现在文件的末尾。
3   DXF文件格式存在的问题
(1)由于DXF文件制定的较早,存在很多的不足。不能完整地描述产品信息模型,产品的公差、材料等信息根本没有涉及。即使产品的几何模型,由于仅仅保留了原有系统数据结构中的几何和部分属性信息,大量的拓扑信息已不复存在,也是不完整的;
(2)DXF文件格式也不合理,文件过于冗长,使得文件的处理、存放、传递和交换不方便。另外,复杂的文件格式也使得编写一个读、写完整的DXF数据文件的程序接口是件不容易的工作。
随着CAD/CAM技术的发展和CAD/CAM系统应用的日益广泛,不同系统和系统不同子系统间的数据交换问题变得重要和迫切了,直接推动国家或国际上通用的数据交换文件标准的制定。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值