目录

组码参考

按数字次序排列的组码

下表列出了 DXF 中最常用的组码及其说明。固定组码表示该组码在各图元中始终具有相同的用途。非固定组码的用途取决于所在的上下文。

基本组码(-5 ~ 9)

组码 说明
-5 永久反应器链
-4 条件运算符(仅用于 ssget)
-3 扩展数据 (XDATA) 标记(固定)
-2 图元名参照(固定)
-1 图元名(每次打开图形时变化,从不保存)(固定)
0 图元类型字符串(固定):LINE、CIRCLE、TEXT 等
1 图元的主文字值
2 名称(属性标记、块名等)
3-4 其他文字或名称值
5 图元句柄:最多 16 个十六进制数字的字符串(固定)
6 线型名(固定)
7 文字样式名(固定)
8 图层名(固定)
9 变量名称标识符(仅在 HEADER 段中使用)

坐标组码(10 ~ 39)

组码 说明
10 主要点:直线起点、圆心、文字插入点等。DXF 中为 X 值(后跟 20、30)
11-18 其他点。DXF 中为 X 值(后跟 21-28、31-38)
20、30 主要点的 Y、Z 值
21-28 其他点的 Y 值
31-37 其他点的 Z 值
38 标高(如果非零)
39 厚度(如果非零,固定)

数值组码(40 ~ 79)

组码 说明
40-48 双精度浮点值(文字高度、缩放比例等)
48 线型比例
49 重复双精度浮点值(如 LTYPE 的虚线长度)
50-58 角度值(DXF 文件中以度为单位)
60 图元可见性(0=可见,1=不可见)
62 颜色号(固定)
66 “后跟图元”标志(固定)
67 空间(0=模型空间,1=图纸空间)(固定)
68 视口状态
69 视口标识号
70-78 整数值(重复计数、标志位、模式等)

常见颜色号(组码 62):

颜色号 颜色 颜色号 颜色 颜色号 颜色
1 2 3 绿
4 5 6 洋红
7 白/黑 8 深灰 9 浅灰
10-249 其他标准色 250-255 伪色 256 BYLAYER

扩展组码(90 ~ 179)

组码 说明
90-99 32 位整数值
100 子类数据标记:将派生类名作为字符串。所有派生类对象必须拥有此标记
102 控制字符串,用于应用程序定义的数据
105 DIMVAR 符号表条目的对象句柄
110-112 UCS 原点、X 轴、Y 轴
120-122 UCS 原点的 Y 值、UCS X 轴、UCS Y 轴
130-132 UCS 原点的 Z 值、UCS X 轴、UCS Y 轴
140-149 双精度浮点值(DIMSTYLE 设置等)
170-179 16 位整数值(DIMSTYLE 标志位等)

方向与拉伸组码(210 ~ 239)

组码 说明
210 拉伸方向 X 值(固定)
220、230 拉伸方向的 Y、Z 值

句柄与对象 ID 组码(320 ~ 399)

组码 说明
320-329 任意对象句柄(不随 INSERT/XREF 转换)
330-339 软指针句柄(指向同一文件中的其他对象)
340-349 硬指针句柄(指向同一文件中的其他对象)
350-359 软所有者句柄
360-369 硬所有者句柄
370-379 线宽枚举值
380-389 PlotStyleName 类型枚举
390-399 PlotStyleName 对象句柄

真彩色组码(420 ~ 449)

组码 说明
420-427 24 位真彩色值(格式:0x00RRGGBB)
430-437 颜色名称字符串
440-447 透明度值

扩展数据组码(1000 ~ 1071)

扩展数据(XDATA)用于在 DXF 中存储应用程序自定义的数据:

组码 说明
1000 ASCII 字符串(最多 255 字节)
1001 注册应用程序名(最多 31 字节)
1002 控制字符串(“{” 或 “}“)
1003 扩展数据图层名
1004 二进制数据块(最多 127 字节)
1005 图元句柄(最多 16 个十六进制数字)
1010 三维点
1011 三维世界空间位置
1012 三维世界空间位移
1013 三维空间方向
1040 双精度浮点值
1041 距离值
1042 缩放比例
1070 16 位有符号整数
1071 32 位有符号长整数

编程要点

1. **句柄(Handle)**:组码 5 是图元的唯一标识符,在整个图形文件中唯一,但每次保存文件时会重新生成。
2. **图层名**:所有图元都必须有组码 8 指定图层名,缺失时默认为 "0" 图层。
3. **颜色继承**:组码 62 未指定时,继承图层的颜色(BYLAYER)。
4. **线型继承**:组码 6 未指定时,继承图层的线型(BYLAYER)。
5. **坐标系统**:组码 10-18、20-28、30-38 通常使用世界坐标系(WCS),而组码 210-230 指定拉伸方向。

本章小结

本章列出了 DXF 中最常用的组码及其说明。组码是 DXF 二次开发的基础,理解组码的含义和分类对于正确读写 DXF 文件至关重要。建议开发者在编写 DXF 处理程序时,使用表驱动的方式解析组码,以保持程序的兼容性和可扩展性。