组码参考
按数字次序排列的组码
下表列出了 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 处理程序时,使用表驱动的方式解析组码,以保持程序的兼容性和可扩展性。