TABLES 段
符号表概述
TABLES 段(符号表段)包含多个符号表定义,每个符号表定义了一系列命名的“符号”。TABLES 段的通用结构如下:
0 TABLE 2 表名 ; LAYER、LTYPE、STYLE 等 70 条目数量 ; 该表中的条目数 ... 0 ENDTAB
TABLES 段可包含的符号表类型:
| 表名 | 中文说明 | 表中条目类型 |
|---|---|---|
| APPID | 应用程序 ID | 注册的应用程序 |
| BLOCK_RECORD | 块记录 | 所有块定义 |
| DIMSTYLE | 标注样式 | 尺寸标注样式定义 |
| LAYER | 图层 | 图层定义 |
| LTYPE | 线型 | 线型定义 |
| STYLE | 文字样式 | 文字样式定义 |
| UCS | 用户坐标系 | 用户坐标系定义 |
| VIEW | 视图 | 视图定义 |
| VPORT | 视口 | 视口配置 |
符号表的通用组码
所有符号表及其条目共享以下组码:
| 组码 | 说明 |
|---|---|
| 0 | TABLE(表开始)或表条目类型名 |
| 2 | 表名或条目名 |
| 5 | 句柄 |
| 8 | 图层名(某些条目) |
| 62 | 颜色号(某些条目) |
| 70 | 标准标志位 |
| 100 | 子类标记 |
| 102 | 扩展数据 |
| 330 | 软所有者 ID |
标志位(组码 70)说明
组码 70 在符号表中通常表示条目的状态:
- 0 = 未使用/标准条目
- 1 = 由外部参照(Xref)定义
- 4 = 由外部参照依赖
- 16 = 如果设置了该位,则在图形编辑会话期间不会列出该条目
- 32 = 如果设置了该位,表示该条目依赖于外部参照
- 64 = 如果设置了该位,表示该条目是由 AutoCAD 初始创建的
各符号表详解
LAYER 表(图层)
图层是最常用的符号表,定义图形的图层属性。
| 组码 | 说明 |
|---|---|
| 0 | LAYER |
| 2 | 图层名 |
| 5 | 句柄 |
| 70 | 标志位 |
| 62 | 颜色号(负值表示图层关闭) |
| 6 | 线型名 |
| 290 | 打印标志(0=不打印,1=打印) |
| 370 | 线宽枚举值 |
| 390 | PlotStyleName 句柄 |
示例:
0 LAYER 2 0 ; 图层名 "0" 70 0 ; 标准图层 62 7 ; 颜色 = 白/黑 6 CONTINUOUS ; 线型 = 连续线
LTYPE 表(线型)
| 组码 | 说明 |
|---|---|
| 0 | LTYPE |
| 2 | 线型名 |
| 3 | 线型描述文字 |
| 70 | 标志位 |
| 40 | 图案总长度 |
| 73 | 虚线长度项数量 |
| 49 | 虚线长度(可重复,每个线段一个) |
常用线型:
- CONTINUOUS - 连续线
- DASHED - 虚线
- CENTER - 中心线
- DASHDOT - 点划线
- BORDER - 边框线
- DIVIDE - 分界线
STYLE 表(文字样式)
| 组码 | 说明 |
|---|---|
| 0 | STYLE |
| 2 | 文字样式名 |
| 3 | 字体文件名 |
| 4 | 大字体文件名(可选) |
| 40 | 文字高度(0 表示可变高度) |
| 41 | 宽度因子 |
| 50 | 倾斜角度 |
| 70 | 标志位(1=反向,2=倒置,4=垂直) |
| 71 | 文字生成标志 |
默认文字样式 STANDARD 使用 txt.shx 字体,高度为 0(可变高度)。
DIMSTYLE 表(标注样式)
DIMSTYLE 表定义尺寸标注的样式,包含大量标注变量:
| 组码 | 说明 |
|---|---|
| 0 | DIMSTYLE |
| 2 | 标注样式名 |
| 3 | DIMPOST(标注后缀) |
| 4 | DIMAPOST(替代后缀) |
| 5 | 句柄 |
| 40 | DIMSCALE(全局比例) |
| 41 | DIMASZ(箭头大小) |
| 42 | DIMEXO(尺寸界线偏移) |
| 43 | DIMDLI(基线间距) |
| 44 | DIMEXE(尺寸界线超出) |
| 45 | DIMRND(舍入值) |
| 46 | DIMDLE(尺寸线超出) |
| 47 | DIMTP(正公差) |
| 48 | DIMTM(负公差) |
| 140 | DIMTXT(文字高度) |
| 141 | DIMCEN(圆心标记大小) |
| 142 | DIMTSZ(刻度大小) |
| 143 | DIMALTF(替代单位比例因子) |
| 144 | DIMLFAC(线性比例因子) |
| 145 | DIMTVP(文字垂直位置) |
| 146 | DIMTFAC(公差文字高度比例) |
| 147 | DIMGAP(尺寸线间距) |
| 170 | DIMTOL(公差标志) |
| 171 | DIMLIM(极限尺寸标志) |
| 172 | DIMTIH(文字水平放置内部标志) |
| 173 | DIMTOH(文字水平放置外部标志) |
| 174 | DIMSE1(第一条尺寸界线抑制) |
| 175 | DIMSE2(第二条尺寸界线抑制) |
| 176 | DIMTAD(文字垂直位置) |
| 177 | DIMZIN(零抑制) |
| 178 | DIMALT(替代单位标志) |
| 179 | DIMALTD(替代单位小数位数) |
| 271 | DIMDEC(主单位小数位数) |
| 272 | DIMTDEC(公差小数位数) |
| 273 | DIMALTU(替代单位小数位数) |
| 274 | DIMAUNIT(角度单位格式) |
APPID 表(应用程序 ID)
| 组码 | 说明 |
|---|---|
| 0 | APPID |
| 2 | 应用程序名称 |
| 70 | 标志位 |
每个在扩展数据中使用的应用程序都需要在 APPID 表中注册。
BLOCK_RECORD 表(块记录)
| 组码 | 说明 |
|---|---|
| 0 | BLOCK_RECORD |
| 2 | 块名 |
| 340 | 关联的 BLOCK 图元句柄 |
BLOCK_RECORD 表中的条目与 BLOCKS 段的块定义一一对应。*MODEL_SPACE 和 *PAPER_SPACE 是两个特殊的预定义块。
VIEW 表(视图)
| 组码 | 说明 |
|---|---|
| 0 | VIEW |
| 2 | 视图名 |
| 10,20,30 | 视图中心点 |
| 11,21,31 | 视图目标点 |
| 12,22,32 | 摄像机位置 |
| 40 | 视图高度 |
| 41 | 视图宽度 |
| 42 | 镜头长度 |
| 43 | 前剪裁面 |
| 44 | 后剪裁面 |
| 50 | 旋转角度 |
| 71 | 视图模式 |
UCS 表(用户坐标系)
| 组码 | 说明 |
|---|---|
| 0 | UCS |
| 2 | UCS 名称 |
| 10,20,30 | 原点 |
| 11,21,31 | X 轴方向 |
| 12,22,32 | Y 轴方向 |
| 79 | 正交视图类型 |
VPORT 表(视口)
| 组码 | 说明 |
|---|---|
| 0 | VPORT |
| 2 | 视口名 |
| 10,20 | 视口左下角 |
| 11,21 | 视口右上角 |
| 12,22 | 视图中心 |
| 15,25 | 捕捉基点 |
| 40 | 视图高度 |
| 41 | 视口宽高比 |
| 42 | 镜头长度 |
| 43 | 前剪裁面 |
| 44 | 后剪裁面 |
| 50 | 捕捉旋转 |
| 51 | 视图旋转 |
| 68 | 状态标志 |
| 69 | 视口 ID |
| 71 | 视图模式 |
| 73 | 栅格间距 X |
| 74 | 栅格间距 Y |
编程注意事项
1. **必要符号表**:每个 DXF 文件至少需要包含 LAYER 表(至少包含 "0" 图层)和 BLOCK_RECORD 表(至少包含 *MODEL_SPACE 和 *PAPER_SPACE)。 2. **标准线型**:LTYPE 表至少应包含 CONTINUOUS 线型。使用标准线型(如 DASHED、CENTER 等)时,也需要在 LTYPE 表中定义。 3. **顺序要求**:符号表应按照 LAYER → LTYPE → STYLE → DIMSTYLE → APPID → BLOCK_RECORD → VIEW → UCS → VPORT 的顺序排列。 4. **条目标记**:组码 70 在符号表的开头(TABLE 条目)表示表中的条目总数,在具体条目中则表示该条目的标志位。
本章小结
TABLES 段是 DXF 文件中定义各种命名资源的核心部分。正确理解每个符号表的组码结构对于生成和解析 DXF 文件至关重要。在二次开发中,LAYER 和 STYLE 两个表是最常需要处理的。