DXF图形文件格式.docVIP

  • 38
  • 0
  • 约6.19万字
  • 约 68页
  • 2017-07-29 发布于湖北
  • 举报
解析DXF图形文件格式 一、DXF文件格式分析 DXF文件由标题段、表段、块段、实体段和文件结束段5部分组成,其内容如下。 ☆标题段(HEADER)标题段记录AutoCAD系统的所有标题变量的当前值或当前状态。标题变量记录了AutoCAD系统的当前工作环境,如SNAP捕捉当前状态、栅格间距式样、当前图层层名及线型、颜色等。 ☆表段(TABLES)表段共包含4个表,每个表又包含可变数目的表项。这些表在文件中出现的顺序是线型表(LTYPE)、图层表(LAYER)、字样表(STYLE)、视图表(VIEW)。 ☆块段(BLOCK)块段记录了所用块的块名,当前图层层名、块的种类、块的插入基点及组成该块的所有成员。块的种类分为图形块、带有属性的块和无名块三种。无名块包括用HATCH命令生成的剖面线和用DIM命令所完成的尺寸标准。 ☆实体段(ENTITIES)实体段记录了每个实体的名称、所在图层及其名字、线型、颜色等。 ☆文件结束段(EOF OF FILE)DXF文件的结束标志。 一个DXF文件由若干个组构成,每个组占两行,第一行为组的代码,第二行为组值。组代码相当于数据类型的代码,它由CAD图形系统所规定,而组值为具体的数值,二者结合起来表示一个数据的含义和值。例如,代码10代表一个点的X坐标,占一行,而其第二行4.5425则是点X坐标的具体数值,二者结合表示一点,其X坐标值为4.5425。 (1)组代码和组值的类型组代码为一个非负的不超过三位的整数,而组值由组代码的类型决定。例如: 代码0~9组值类型为字符型。 代码10~59组值类型为实型。 代码60~79组值类型为整型。 代码999表示解释行。 (2)组代码的含义每个组代码均有规定的含义,有些代码含义是固定的,而有些组代码则因应用场合不同而有多个含义,应具体分析。另外,一些代码是备用的,目前版本尚未用到,现将他们的含义举例介绍如下。 0:表示一个事物的开始,如一个块、表、图层、实体等。 1:字符型数据的值,如TEXT的字符串、文件名、属性值等。 2:一个事物的名字,如段、表、块、线型、视图等的名字。 3~5:字符型数据的值,如文件名、线型说明等。 6:线型名(固定类型)。 8:图层名(固定类型)。 关于实体的坐标与相应的组代码10~18、20~28、30~38的用法应根据实体所用到点的数量,按组代码个位的0、1、2、……的顺序使用。例如LINE的起点组代码为10、20、30,而11、21、31为其终点。其他类似。 DXF文件的结构相当复杂,完整读取DXF文件也是一项异常繁琐的工程。在实际应用中,为了提取图形的实体信息,可以省略DXF文件中的许多项,只要获取其中的层表、块段和实体段,就可以完成相应几何图形的描述。在层表中说明每一层的颜色、线型,在块段中说明块所在的层、属性及其在图形中的位置,在实体段中说明直线的起点、终点及圆的圆心、半径等几何信息和各实体所在的层。根据实体所在的层,在层表中搜索每一层的颜色、线型并将其添加到实体对象中。在利用CAD进行绘图时,需将变量参数DIMASO设为ON,以保证块段中定义的尺寸块为一个整体,并可被正确无误地获取。根据尺寸类型名、尺寸定义的起点、终点坐标与实体类型名、实体空间坐标是否匹配,对实体对象进行尺寸附加。在绘图时,如对自定义的粗糙度、形位公差等块不进行“EXPLODE”炸开操作,也可通过增加相应读取函数提取其属性。 下面举例说明实体段在DXF文件中的格式。 圆弧(ARC) 0(开始)ARC(圆弧) 8(层的组码) W1(层名为“W1”) 10(圆弧圆心的X坐标组码) 7.0(圆弧圆心的X坐标组值) 20(圆弧圆心的Y坐标组码) 9.0(圆弧圆心的Y坐标组值) 30(圆弧圆心的Z坐标组码) 0.0(圆弧圆心的Z坐标组值) 40(圆弧的半径组码) 25.0(圆弧的半径值) 50(圆弧的起始角度组码) 90.0(圆弧的起始角度值) 51(圆弧的终止角度组码) 180.0(圆弧的终止角度组值) 若实体的线型用BYLAYER,颜色为256(即BYLAYER),基面高度和厚度为零,其格式可简化。 对于其他图形实体的格式描述(LINE、CIRCLE、TEXT等),这里就不再一一详述了。 二、几何图形实体信息的提取 生成DXF文件必须首先进入图形编辑环境,在命令(Command)提示下键入DXFOUT,回答所需的一个文件名后,即把内部压缩格式的图形数据转换为ASC的数据并写入相应DXF文件(以DXF为扩展名)中,供应用程序提取并处理实体数据。三、几何图形描述的数据结构 通过对CAD系统的DXF图形交换文件进行分析,可以得到描述零件的全

文档评论(0)

1亿VIP精品文档

相关文档