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