DXF 文件结构

一个完整的 ASCII DXF 文件由 6 个(Section)组成,按以下顺序排列:

 0
 SECTION
 2
 HEADER        ; 标题段
 0
 ENDSEC

 0
 SECTION
 2
 CLASSES       ; 类段
 0
 ENDSEC

 0
 SECTION
 2
 TABLES        ; 符号表段
 0
 ENDSEC

 0
 SECTION
 2
 BLOCKS        ; 块段
 0
 ENDSEC

 0
 SECTION
 2
 ENTITIES      ; 图元段
 0
 ENDSEC

 0
 SECTION
 2
 OBJECTS       ; 对象段
 0
 ENDSEC

每个段以 0/SECTION 开始,以 0/ENDSEC 结束,用组码 2 指定段名称。

段名称 作用说明
HEADER 存储图形相关的系统变量设置,如图形范围、尺寸标注变量等
CLASSES 存储应用程序定义的类信息,使 DXF 能够包含自定义对象
TABLES 存储符号表定义,包括图层、线型、文字样式、标注样式、视图等
BLOCKS 存储块定义和块中的图元
ENTITIES 存储图形中的主要图元(图形对象),如直线、圆、文字等
OBJECTS 存储非图形对象,如词典、布局、材质定义等

在文件结构层面,以下组码被用作段标记:

组码 说明
0 标记 SECTION、ENDSEC、EOF 等
2 段名称

文件末尾使用组码 0 后跟 EOF 作为结束标记:

 0
 EOF

以下是一个只包含一条直线的简单 DXF 文件示例:

 0
 SECTION
 2
 HEADER
 9
 $ACADVER
 1
 AC1027
 0
 ENDSEC
 0
 SECTION
 2
 CLASSES
 0
 ENDSEC
 0
 SECTION
 2
 TABLES
 0
 TABLE
 2
 LAYER
 70
 2
 0
 LAYER
 2
 0
 70
 0
 62
 7
 6
 CONTINUOUS
 0
 ENDTAB
 0
 ENDSEC
 0
 SECTION
 2
 BLOCKS
 0
 BLOCK
 2
 *MODEL_SPACE
 70
 0
 10
 0.0
 20
 0.0
 30
 0.0
 0
 ENDBLK
 0
 BLOCK
 2
 *PAPER_SPACE
 70
 0
 10
 0.0
 20
 0.0
 30
 0.0
 0
 ENDBLK
 0
 ENDSEC
 0
 SECTION
 2
 ENTITIES
 0
 LINE
 8
 0
 10
 0.0
 20
 0.0
 30
 0.0
 11
 100.0
 21
 100.0
 31
 0.0
 0
 ENDSEC
 0
 SECTION
 2
 OBJECTS
 0
 DICTIONARY
 2
 ACAD_GROUP
 0
 ENDSEC
 0
 EOF

无论使用何种编程语言,读取 DXF 文件的基本流程都是相同的:

1. 打开 DXF 文件,逐行读取
2. 每两行为一个"组"(第一行组码,第二行值)
3. 遇到 "0/SECTION" 开始新的段
4. 根据 "0/ENDSEC" 结束当前段
5. 在 ENTITIES 段中,根据组码 0 后的字符串判断图元类型
6. 读取该图元的所有组码,直到遇到下一个组码 0

组码 0 在 DXF 文件中具有三种不同的用途:

  • 标记段的开始/结束:0/SECTION、0/ENDSEC
  • 标记图元/对象类型:0/LINE、0/CIRCLE、0/TEXT 等
  • 标记文件结束:0/EOF

在某些 DXF 文件中还存在一个 THUMBNAILIMAGE 段,用于存储图形的缩略图预览图像。该段通常位于 OBJECTS 段之后。如果需要处理 DXF 文件的预览图,可以关注此段。

理解 DXF 文件的整体结构是二次开发的第一步。本章介绍了 DXF 文件的 6 个主要段以及文件的基本读取算法。接下来的章节将逐一深入讲解每个段的详细组码。

该主题尚不存在

您访问的页面并不存在。如果允许,您可以使用创建该页面按钮来创建它。

  • dxf格式/02_dxf_structure.txt
  • 最后更改: 2026/06/17 09:43
  • 张叶安