DXF 格式详解

文章目录

      • 1.使用组代码和值表示数据
      • 2.文件结构
        • 2.1DXF HEADER 段
        • 2.2 DXF CLASSES 段
          • CLASSES 段组码 (DXF)
        • 2.3 DXF TABLES 段 (DXF)
          • 2.3.1 APPID (DXF)
          • 2.3.2 BLOCK_RECORD (DXF)
          • 2.3.3 以下组码适用于 DIMSTYLE 符号表条目。
          • 2.3.4 LAYER (DXF)
          • 2.3.5 LTYPE (DXF)
          • 2.3.6 STYLE (DXF)
          • 2.3.7 UCS (DXF)
          • 2.3.8 VIEW (DXF)
          • 2.3.10 VPORT (DXF)
          • 2.3.11 符号表组码 (DXF)
          • 2.3.12 通用符号表组码 (DXF)
        • 2.4 DXF BLOCKS 段
          • 2.4.1 BLOCKS 段组码 (DXF)
          • 2.4.2 BLOCK (DXF)
          • 模型空间和图纸空间块定义
            • 模型空间和图纸空间图元分离
          • 2.4.3 ENDBLK (DXF)
        • 2.5 DXF ENTITIES 段
          • 2.5.1 通用图元组码 (DXF)
          • 2.5.2 POINT (DXF)
          • 2.5.3 LINE (DXF)
          • 2.5.4 POLYLINE (DXF)
          • 2.5.5 ARC (DXF)
          • 2.5.6 SPLINE (DXF)
          • 2.5.7 TEXT (DXF)
        • 2.6 关于 OBJECT 段组码 (DXF)
          • 2.6.1 通用对象组码 (DXF)
          • 2.6.2 DATATABLE (DXF)
        • 2.7 DXF THUMBNAILIMAGE 段
          • 2.7.1 THUMBNAILIMAGE 段组码 (DXF)
        • 参考地址:

DXF格式是 AutoCAD 图形文件中包含的所有信息的一种带标记数据的表示方式。带标记数据是指文件中的每个数据元素前面都带有一个称为组码的整数。组码的值表明了随后的数据元素的类型。还指出了数据元素对于给定对象(或记录)类型的含义。实际上,图形文件中所有用户指定的信息都可以用 DXF 格式表示。
在本文中,我将介绍DXF文件的基本设置和规范。

1.使用组代码和值表示数据

DXF文件中的每个变量都与一个组码相关联(组码的范围从1到1071)。每个组代码都在特定情况下使用,并包含特定类型的信息。
例如,组代码2用于名称,例如节的名称或块的名称。组代码0表示实体的开头或文件的结尾。与每个变量关联的值存储为整数,浮点数或字符串。例如,线的长度存储为整数,而点坐标存储为浮点数。

2.文件结构

DXF文件分为几个部分:每个部分都由记录组成,而记录又由组代码和关联的数据值组成。
您可以按以下顺序在DXF文件中找到以下部分:

部分 基本描述
Header 本部分包含有关图形的常规信息。就像您手机中的“设置”功能一样,该功能包含与图形关联的不同变量及其关联的值。例如,“标题”部分将定义DXF文件使用的AutoCAD版本($ ACADVER变量)或用于测量文件角度的单位($ AUNITS变量)。
Classes CLASSES部分保存有关应用程序定义的类的信息,这些类的实例出现在数据库的BLOCKS,ENTITIES和OBJECTS部分中。
Tables 本部分包含几个不同表的定义,每个表都包含许多不同的符号条目。例如,线型表(LTYPE)定义了DXF文件中的破折号,点,文本和符号的样式以及它们的缩放比例。以下是在该部分中找到的表的完整列表:应用程序ID(APPID)表块记录(BLOCK_RECORD)表尺寸样式(DIMSTYPE)表图层(LAYER)表线型(LTYPE)表文字样式(STYLE)表格用户坐标系(UCS)表查看(VIEW)表视口配置(VPORT)表
Blocks 本部分包含构成图形中每个块参考的图形对象和图形实体。
Entities 本部分包含图形的实际对象数据和图形实体。这可以包括原始数据,例如,圆实体是由其厚度,中心点,其半径和拉伸方向定义的。
Objects 在这里,您将找到图形的非图形部分。例如,AutoCAD词典存储在此处。
2.1DXF HEADER 段

DXF 文件的 HEADER 段包含与图形关联的变量的设置。每个变量由给出变量名称的组码 9 指定,其后是提供变量值的组。仅列出保存在图形文件中的变量。
下表列出了在 DXF文件的 HEADER 区域中表示的变量。

DXF 标题变量
变量 组码 说明
$ACADMAINTVER 70 维护版本号(应忽略)
$ACADVER 1 AutoCAD 图形数据库版本号:AC1006 = R10AC1009 = R11 和 R12AC1012 = R13AC1014 = R14AC1015 = AutoCAD 2000AC1018 = AutoCAD 2004AC1021 = AutoCAD 2007AC1024 = AutoCAD 2010AC1027 = AutoCAD 2013AC1032 = AutoCAD 2018
$ANGBASE 50 0 角度方向
$ANGDIR 70 1 = 顺时针角度0 = 逆时针角度
$ATTMODE 70 属性的可见性:0 = 无1 = 普通2 = 全部
$AUNITS 70 角度的单位格式
$AUPREC 70 角度的单位精度
$CECOLOR 62 当前图元颜色号:0 = BYBLOCK;256 = BYLAYER
$CELTSCALE 40 当前图元线型比例
$CELTYPE 6 图元线型名称、BYBLOCK 或 BYLAYER
$CELWEIGHT 370 新对象的线宽
$CEPSNID 390 新对象的打印样式句柄。如果 CEPSNTYPE 为 3,则此值代表该句柄
$CEPSNTYPE 380 新对象的打印样式类型:0 = “BYLAYER” 打印样式1 = BYBLOCK打印样式2 = 词典默认的打印样式3 = 随对象 ID/句柄打印样式
$CHAMFERA 40 第一个倒角距离
$CHAMFERB 40 第二个倒角距离
$CHAMFERC 40 倒角长度
$CHAMFERD 40 倒角角度
$CLAYER 8 当前图层名
$CMLJUST 70 当前多线对正:0 = 顶端对正;1 = 居中对正;2 = 底端对正
$CMLSCALE 40 当前多线比例
$CMLSTYLE 2 当前多线样式名称
$CSHADOW 280 三维对象的阴影模式:0 = 投射和接收阴影1 = 投射阴影2 = 接收阴影3 = 忽略阴影注: 从基于 AutoCAD 2016 的产品开始,该变量已弃用,但是为了实现向后兼容性,该变量仍受支持。
$DIMADEC 70 角度标注中显示的精度位的位数
$DIMALT 70 非零时执行的换算单位标注
$DIMALTD 70 换算单位小数位
$DIMALTF 40 换算单位比例因子
$DIMALTRND 40 确定换算单位的舍入值
$DIMALTTD 70 换算单位标注的公差值的小数位数
$DIMALTTZ 70 控制是否对换算公差值做消零处理:0 = 消除零英尺和零英寸1 = 包含零英尺和零英寸2 = 包含零英尺,消除零英寸3 = 包含零英寸,消除零英尺要消除前导零或后续零,请将下列值添加到上述值之一中;4 = 消除前导零8 = 消除后续零
$DIMALTU 70 所有标注样式族成员(角度标注除外)的换算单位的单位格式:1 = 科学2 = 小数3 = 工程4 = 建筑(堆叠)5 = 分数(堆叠)6 = 建筑7 = 分数8 = 操作系统定义小数分隔符和数字分组符号
$DIMALTZ 70 控制是否对换算单位标注值做消零处理:0 = 消除零英尺和零英寸1 = 包含零英尺和零英寸2 = 包含零英尺,消除零英寸3 = 包含零英寸,消除零英尺4 = 消除十进制标注中的前导零8 = 消除十进制标注中的后续零12 = 消除前导零和后续零
$DIMAPOST 1 换算标注后缀
$DIMASO 70 1 = 创建关联标注0 = 绘制单独图元注: 已弃用;请参见 $DIMASSOC。
$DIMASSOC 280 控制标注对象的关联性0 = 创建分解标注;即标注的各元素之间没有任何关联,直线、圆弧、箭头及标注文字均作为单独的对象进行绘制1 = 创建无关联标注对象;将标注的各种元素组成单一对象,如果对象上的定义点移动,标注值将被更新2 = 创建关联标注对象;标注的各种元素组成单一对象,并且标注的一个或多个定义点与几何对象上的关联点相联结
$DIMASZ 40 标注箭头尺寸
$DIMATFIT 70 当尺寸界线的空间不足以同时放置标注文字和箭头时用来控制两者的位置:0 = 将文字和箭头均置于尺寸界线之外1 = 先移动箭头,然后移动文字2 = 先移动文字,然后移动箭头3 = 移动文字和箭头中较合适的一个如果 DIMTMOVE 设置为 1,AutoCAD 将为被移动的标注文字添加一条引线
$DIMAUNIT 70 角度标注的角度格式:0 = 十进制度数1 = 度/分/秒;2 = 百分度3 = 弧度4 = 勘测单位
$DIMAZIN 70 控制是否对角度标注做消零处理:0 = 显示所有前导零和后续零1 = 消除十进制标注中的前导零2 = 消除十进制标注中的后续零3 = 消除前导零和后续零
$DIMBLK 1 箭头块名称
$DIMBLK1 1 第一箭头块名称
$DIMBLK2 1 第二箭头块名称
$DIMCEN 40 中心标记/中心线的大小
$DIMCLRD 70 尺寸线颜色:范围是:0 = BYBLOCK;256 = BYLAYER
$DIMCLRE 70 尺寸界线颜色:范围是:0 = BYBLOCK;256 = BYLAYER
$DIMCLRT 70 标注文字的颜色:范围是:0 = BYBLOCK;256 = BYLAYER
$DIMDEC 70 主单位标注的公差值的小数位数
$DIMDLE 40 尺寸线超出尺寸界线的距离
$DIMDLI 40 尺寸线增量
$DIMDSEP 70 创建单位格式为小数的标注时使用的单字符小数分隔符
$DIMEXE 40 尺寸界线延伸
$DIMEXO 40 尺寸界线偏移
$DIMFAC 40 用于计算标注分数和公差的文字高度的比例因子。AutoCAD 将 DIMTFAC 与 DIMTXT 相乘,以设置分数或公差的文字高度。
$DIMGAP 40 尺寸线间距
$DIMJUST 70 水平标注文字位置:0 = 在尺寸线上方,且在尺寸界线之间居中对正1 = 在尺寸线上方,且紧邻第一条尺寸界线2 = 在尺寸线上方,且紧邻第二条尺寸界线3 = 在第一条尺寸界线上方且居中对正4 = 在第二条尺寸界线上方且居中对正
$DIMLDRBLK 1 引线的箭头块名
$DIMLFAC 40 线性测量的比例因子
$DIMLIM 70 非零时生成的标注界限
$DIMLUNIT 70 为所有标注类型(除角度标注外)设定单位:1 = 科学2 = 小数3 = 工程4 = 建筑5 = 分数6 = 操作系统
$DIMLWD 70 尺寸线线宽:-3 = 标准-2 = BYLAYER-1 = BYBLOCK0-211 = 表示百分之几毫米的整数
$DIMLWE 70 尺寸界线线宽:-3 = 标准-2 = BYLAYER-1 = BYBLOCK0-211 = 表示百分之几毫米的整数
$DIMPOST 1 基本标注后缀
$DIMRND 40 标注距离的舍入值
$DIMSAH 70 非零时使用单独的箭头块
$DIMSCALE 40 全局标注比例因子
$DIMSD1 70 收缩第一条尺寸界线:0 = 不隐藏1 = 隐藏
$DIMSD2 70 收缩第一条尺寸界线:0 = 不隐藏1 = 隐藏
$DIMSE1 70 非零时抑制第一条尺寸界线
$DIMSE2 70 非零时抑制第二条尺寸界线
$DIMSHO 70 1 = 拖动时重计算标注0 = 拖动原始图像
$DIMSOXD 70 非零时抑制位于尺寸界限之外的尺寸线
$DIMSTYLE 2 标注样式名
$DIMTAD 70 非零时文字在尺寸线上方
$DIMTDEC 70 显示公差值的小数位数
$DIMTFAC 40 标注公差显示比例因子
$DIMTIH 70 非零时将文字水平放在内侧
$DIMTIX 70 非零时将文字强制放在尺寸界线的内侧
$DIMTM 40 下偏差
$DIMTMOVE 70 标注文字移动规则:0 = 尺寸线和标注文字一起移动1 = 移动标注文字时添加引线2 = 允许标注文字自由移动而不添加引线
$DIMTOFL 70 如果文字位于尺寸界线之外,非零时尺寸线将强制放置在尺寸界线之间。
$DIMTOH 70 非零时将文字水平放在外侧
$DIMTOL 70 非零时生成标注公差
$DIMTOLJ 70 公差值的垂直对正:0 = 顶端对正1 = 居中对正2 = 底端对正
$DIMTP 40 上偏差
$DIMTSZ 40 标注标记大小:0 = 绘制箭头>0 = 绘制小斜线以替代箭头
$DIMTVP 40 文字的垂直位置
$DIMTXSTY 7 标注文字样式
$DIMTXT 40 标注文字高度
$DIMTZIN 70 控制是否对公差值做消零处理:0 = 消除零英尺和零英寸1 = 包含零英尺和零英寸2 = 包含零英尺,消除零英寸3 = 包含零英寸,消除零英尺4 = 消除十进制标注中的前导零8 = 消除十进制标注中的后续零12 = 消除前导零和后续零
$DIMUPT 70 用户定位文字的光标功能:0 = 仅控制尺寸线的位置1 = 控制文字位置和尺寸线位置
$DIMZIN 70 控制是否对主单位值做消零处理:0 = 消除零英尺和零英寸1 = 包含零英尺和零英寸2 = 包含零英尺,消除零英寸3 = 包含零英寸,消除零英尺4 = 消除十进制标注中的前导零8 = 消除十进制标注中的后续零12 = 消除前导零和后续零
$DISPSILH 70 控制“线框”模式下体对象轮廓曲线的显示:0 = 关闭1 = 打开
$DRAGVS 349 创建三维实体图元时,视觉样式的硬指针 ID。默认值为 NULL
$DWGCODEPAGE 3 图形代码页;创建新图形时设定为系统代码页,但不再由 AutoCAD 维护
$ELEVATION 40 由 ELEV 命令设定的当前标高
$ENDCAPS 280 新对象的线宽端点封口设置:0 = 无1 = 圆形2 = 角度3 = 方形
$EXTMAX 10, 20, 30 XYZ 图形范围右上角(在 WCS 中)
$EXTMIN 10, 20, 30 XYZ 图形范围左下角(在 WCS 中)
$EXTNAMES 290 控制符号表命名:0 = AutoCAD Release 14 兼容性。名称最多可以包含 31 个字符。其中可以包括字母 A 到 Z、数字 0 到 9 以及特殊字符,例如,美元符号 ($)、下划线 (_) 和连字符 (-)。1 = AutoCAD 2000。名称中最多可以包含 255 个字符,可以包含字母 A 到 Z,数字 0 到 9,空格以及未被 Microsoft Windows 和 AutoCAD用于其他目的的特殊字符
$FILLETRAD 40 圆角半径
$FILLMODE 70 非零时启用填充模式
$FINGERPRINTGUID 2 在创建时设定,用于唯一标识特定图形
$HALOGAP 280 指定在某一对象被另一对象隐藏处显示的间距;该值被指定为一种单位的百分数,并且不受缩放级别的影响。使用 HIDE 或 SHADEMODE 的 Hidden 选项时,在晕圈行的隐藏点处缩短晕圈行
$HANDSEED 5 下一个可用的句柄
$HIDETEXT 290 指定 HIDETEXT 系统变量:0 = 在生成隐藏视图时 HIDE 忽略文字对象1 = HIDE 不忽略文字对象
$HYPERLINKBASE 1 图形中所有相对超链接的路径。如果为空,则使用图形路径
$INDEXCTL 280 控制是否创建图层和空间索引并保存到图形文件中:0 = 不创建索引1 = 创建图层索引2 = 创建空间索引3 = 创建图层和空间索引
$INSBASE 10, 20, 30 由 BASE 命令设定的插入基点(在 WCS 中)
$INSUNITS 70 AutoCAD 设计中心块的默认图形单位:0 = 无单位1 = 英寸2 = 英尺3 = 英里4 = 毫米5 = 厘米6 = 米7 = 千米8 = 微英寸9 = 英里10 = 码11 = 埃12 = 毫微米13 = 微米14 = 分米15 = 十米16 = 百米17 = 百万公里18 = 天文单位19 = 光年20 = 秒差距21 = 美制测量英尺22 = 美制测量英寸23 = 美制测量码24 = 美制测量英里
$INTERFERECOLOR 62 表示在执行 INTERFERE 命令期间创建的“干涉对象”的 ACI 颜色索引。默认值为 1
$INTERFEREOBJVS 345 干涉对象的视觉样式的硬指针 ID。默认视觉样式为“概念”。
$INTERFEREVPVS 346 在检查干涉期间视口的视觉样式的硬指针 ID。默认视觉样式为“三维线框”。
$INTERSECTIONCOLOR 70 指定相交多段线的图元颜色:1 到 255 的值可以指定 AutoCAD 颜色索引 (ACI)0 = 颜色“BYBLOCK”256 = 颜色“BYLAYER”257 = 颜色“随图元”
$INTERSECTIONDISPLAY 290 指定相交多段线的显示:0 = 关闭相交多段线的显示1 = 打开相交多段线的显示
$JOINSTYLE 280 新对象的线宽接头设置:0 = 无1 = 圆形2 = 角度3 = 平面
$LIMCHECK 70 如果打开了界限检查则为非零值
$LIMMAX 10, 20 XY 图形界限右上角(在 WCS 中)
$LIMMIN 10, 20 XY 图形界限左下角(在 WCS 中)
$LTSCALE 40 全局线型比例
$LUNITS 70 坐标和距离的单位格式
$LUPREC 70 坐标和距离的单位精度
$LWDISPLAY 290 控制“模型”选项卡或“布局”选项卡中线宽的显示:0 = 不显示线宽1 = 显示线宽
$MAXACTVP 70 设定要重生成的视口的最大数目
$MEASUREMENT 70 设定图形单位:0 = 英制1 = 公制
$MENU 1 菜单文件名
$MIRRTEXT 70 非零时镜像文字
$OBSCOLOR 70 指定遮挡线的颜色。遮挡线是通过更改颜色和线型使其可见的隐藏线,并且仅在使用 HIDE 或 SHADEMODE 命令时才可见。仅当 OBSCUREDLTYPE 的值设定为非 0,打开它时,OBSCUREDCOLOR 设置才可见。0 和 256 = 图元颜色1-255 = AutoCAD 颜色索引 (ACI)
$OBSLTYPE 280 指定遮挡线的线型。与标准对象线型不同,暗显直线的线型不受缩放级别的影响。默认值,即 0 值,将关闭遮挡线的显示。线型值定义如下:0 = 关闭1 = 实线2 = 虚线3 = 点4 = 短划5 = 中划6 = 长划7 = 双短划8 = 双中划9 = 双长划10 = 中长划11 = 疏点
$ORTHOMODE 70 非零时启用正交模式
$PDMODE 70 点显示模式
$PDSIZE 40 点显示尺寸
$PELEVATION 40 当前图纸空间标高
$PEXTMAX 10, 20, 30 图纸空间的 XYZ 的最大范围
$PEXTMIN 10, 20, 30 图纸空间的 XYZ 的最小范围
$PINSBASE 10, 20, 30 图纸空间插入基点
$PLIMCHECK 70 非零时图纸空间中的界限检查
$PLIMMAX 10, 20 图纸空间中 XY 的最大界限
$PLIMMIN 10, 20 图纸空间中 XY 的最小界限
$PLINEGEN 70 控制是否围绕二维多段线的顶点生成线型图案:1 = 围绕多段线顶点生成连续的线型图案0 = 多段线的每一段都以虚线开始和结束
$PLINEWID 40 默认的多段线宽度
$PROJECTNAME 1 为当前图形指定工程名称。在原始路径中没有找到外部参照或图像时使用。此工程名称指向注册表中的一段,其中包含每个已定义工程名称的一个或多个搜索路径。工程名称及其搜索路径可以在“选项”对话框的“文件”选项卡中设置
$PROXYGRAPHICS 70 控制代理对象图像的保存
$PSLTSCALE 70 控制图纸空间的线型比例:1 = 无特殊线型比例0 = 视口比例缩放决定线型比例缩放
$PSTYLEMODE 290 指示当前图形处于“颜色相关打印样式”还是“命名打印样式”模式:0 = 使用当前图形中的命名打印样式表1 = 使用当前图形中的颜色相关打印样式表
$PSVPSCALE 40 新视口的视图比例因子:0 = 按图纸空间缩放>0 = 比例因子(正实数值)
$PUCSBASE 2 定义正交 UCS 设置(仅用于图纸空间)的原点和方向的 UCS 名称。
$PUCSNAME 2 当前图纸空间 UCS 名称
$PUCSORG 10, 20, 30 当前图纸空间 UCS 原点
$PUCSORGBACK 10, 20, 30 将 PUCSBASE 设定为 WORLD 并将图纸空间 UCS 改为 BACK 后成为新的 UCS 原点的点
$PUCSORGBOTTOM 10, 20, 30 将 PUCSBASE 设定为 WORLD 并将图纸空间 UCS 改为 BOTTOM 后成为新的 UCS 原点的点
$PUCSORGFRONT 10, 20, 30 将 PUCSBASE 设定为 WORLD 并将图纸空间 UCS 改为 FRONT 后成为新的 UCS 原点的点
$PUCSORGLEFT 10, 20, 30 将 PUCSBASE 设定为 WORLD 并将图纸空间 UCS 改为 LEFT 后成为新的 UCS 原点的点
$PUCSORGRIGHT 10, 20, 30 将 PUCSBASE 设定为 WORLD 并将图纸空间 UCS 改为 RIGHT 后成为新的 UCS 原点的点
$PUCSORGTOP 10, 20, 30 将 PUCSBASE 设定为 WORLD 并将图纸空间 UCS 改为 TOP 后成为新的 UCS 原点的点
$PUCSORTHOREF 2 如果图纸空间 UCS 为正交(PUCSORTHOVIEW 不等于 0),该名称即为与正交 UCS 相关的 UCS 的名称。如果为空,则 UCS 与 WORLD 相关
$PUCSORTHOVIEW 70 图纸空间 UCS 的正交视图类型:0 = UCS 为非正交视图1 = 俯视2 = 仰视3 = 前视4 = 后视5 = 左视6 = 右视
$PUCSXDIR 10, 20, 30 当前图纸空间的 UCS X
$PUCSYDIR 10, 20, 30 当前图纸空间的 UCS Y
$QTEXTMODE 70 非零时启用“快速文字”模式
$REGENMODE 70 非零时启用 REGENAUTO 模式
$SHADEDGE 70 控制边的着色:0 = 表面着色,边不突出显示1 = 表面着色,边突出显示为黑色2 = 表面不填充,边以图元的颜色绘制3 = 表面为图元颜色,边为黑色
$SHADEDIF 70 以百分比表示的环境光/漫射光;范围从 1 到 100;默认值为 70
$SHADOWPLANELOCATION 40 地面阴影平面的位置。这是 Z 轴坐标。
$SKETCHINC 40 徒手画记录增量
$SKPOLY 70 确定由 SKETCH 命令创建的对象类型:0 = 生成直线1 = 生成多段线2 = 生成样条曲线
$SORTENTS 280 控制对象的排序方式;可从通过“选项”对话框的“用户系统配置”选项卡访问。SORTENTS 使用下列位码值:0 = 禁用 SORTENTS1 = 为选择的对象排序2 = 为捕捉的对象排序4 = 为重画的图形排序;弃用8 = 为 MSLIDE 命令创建的幻灯片排序;弃用16 = 为 REGEN 命令排序32 = 为打印的对象排序64 = 为 PostScript 输出的对象排序;弃用
$SPLINESEGS 70 每个样条曲线曲面的直线段数目
$SPLINETYPE 70 PEDIT 样条曲线的样条曲线类型
$SURFTAB1 70 在第一个方向上的网格平移数目
$SURFTAB2 70 在第二个方向上的网格平移数目
$SURFTYPE 70 PEDIT 平滑的曲面类型
$SURFU 70 M 方向上的曲面密度(用于 PEDIT 平滑)
$SURFV 70 N 方向上的曲面密度(用于 PEDIT 平滑)
$TDCREATE 40 创建图形的本地日期/时间(参见“日期/时间变量的特殊处理”)
$TDINDWG 40 此图形的累计编辑时间(参见“日期/时间变量的特殊处理”)
$TDUCREATE 40 创建图形的通用日期/时间(参见“日期/时间变量的特殊处理”)
$TDUPDATE 40 上次更新图形的本地日期/时间(参见“日期/时间变量的特殊处理”)
$TDUSRTIMER 40 用户消耗时间计时器
$TDUUPDATE 40 上次更新/保存图形的通用日期/时间(参见“日期/时间变量的特殊处理”)
$TEXTSIZE 40 默认文字高度
$TEXTSTYLE 7 当前文字样式名
$THICKNESS 40 由 ELEV 命令设定的当前厚度
$TILEMODE 70 1 表示以前版本的兼容模式;0 表示其他模式
$TRACEWID 40 默认宽线宽度
$TREEDEPTH 70 指定空间索引的最大深度
$UCSBASE 2 定义正交 UCS 设置的原点和方向的 UCS 名称
$UCSNAME 2 当前 UCS 的名称
$UCSORG 10, 20, 30 当前 UCS 的原点(在 WCS 中)
$UCSORGBACK 10, 20, 30 将 UCSBASE 设定为 WORLD 并将模型空间 UCS 改为 BACK 后成为新的 UCS 原点的点
$UCSORGBOTTOM 10, 20, 30 将 UCSBASE 设定为 WORLD 并将模型空间 UCS 改为 BOTTOM 后成为新的 UCS 原点的点
$UCSORGFRONT 10, 20, 30 将 UCSBASE 设定为 WORLD 并将模型空间 UCS 改为 FRONT 后成为新的 UCS 原点的点
$UCSORGLEFT 10, 20, 30 将 UCSBASE 设定为 WORLD 并将模型空间 UCS 改为 LEFT 后成为新的 UCS 原点的点
$UCSORGRIGHT 10, 20, 30 将 UCSBASE 设定为 WORLD 并将模型空间 UCS 改为 RIGHT 后成为新的 UCS 原点的点
$UCSORGTOP 10, 20, 30 将 UCSBASE 设定为 WORLD 并将模型空间 UCS 改为 TOP 后成为新的 UCS 原点的点
$UCSORTHOREF 2 如果模型空间 UCS 为正交(UCSORTHOVIEW 不等于 0),该名称即为与正交 UCS 相关的 UCS 的名称。如果为空,则 UCS 与 WORLD 相关
$UCSORTHOVIEW 70 模型空间 UCS 的正交视图类型:0 = UCS 为非正交视图1 = 俯视2 = 仰视3 = 前视4 = 后视5 = 左视6 = 右视
$UCSXDIR 10, 20, 30 当前 UCS X 轴的方向(在 WCS 中)
$UCSYDIR 10, 20, 30 当前 UCS Y 轴的方向(在 WCS 中)
$UNITMODE 70 低位集 = 按照输入的格式显示分数、英尺-英寸和勘测角度
$USERI1 - 5 70 供第三方开发商使用的五个整数变量
$USERR1 - 5 40 供第三方开发商使用的五个实数变量
$USRTIMER 70 控制图形的用户计时器:0 = 关闭计时器1 = 打开计时器
$VERSIONGUID 2 唯一标识图形的特定版本。修改图形时更新
$VISRETAIN 70 控制外部参照相关图层的特性:0 = 不保留依赖外部参照的可见性设置1 = 保留依赖外部参照的可见性设置
$WORLDVIEW 70 确定响应 DVIEW 和 VPOINT 命令的输入是相对于 WCS 还是当前 UCS 进行计算:0 = 不更改 UCS1 = 在 DVIEW/VPOINT 期间将 UCS 设定为 WCS
$XCLIPFRAME 290 控制外部参照剪裁边界的可见性:0 = 剪裁边界不可见1 = 剪裁边界可见
$XEDIT 290 控制当前图形被其他图形参照时是否可以在位编辑:0 = 无法使用在位参照编辑1 = 可以进行在位参照编辑
2.2 DXF CLASSES 段

DXF 文件中的 CLASSES 段包含的信息适用于应用程序定义的类,这些类的实例出现在数据库的 BLOCKS、ENTITIES 和 OBJECTS 段。假定类定义在类的层次结构中是永远固定的。所有字段都是必需的。

CLASSES 段组码 (DXF)

CLASSES 段的每个条目都包含下表描述的组。

CLASSES 段组码
组码 说明
0 记录类型 (CLASS)。标识 CLASS 记录的开始
1 类 DXF 记录名;始终唯一
2 C++ 类名。用于与定义对象类行为的软件绑定;始终唯一
3 应用程序名。当前未加载本段列出的某个类定义时出现在“警告”框中
90 代理功能标志。指示该对象作为代理时的功能的按位编码值:0 = 不允许操作 (0)1 = 允许删除 (0x1)2 = 允许转换 (0x2)4 = 允许更改颜色 (0x4)8 = 允许更改图层 (0x8)16 = 允许更改线型 (0x10)32 = 允许更改线型比例 (0x20)64 = 允许更改可见性 (0x40)128 = 允许克隆 (0x80)256 = 允许更改线宽 (0x100)512 = 允许更改打印样式名 (0x200)895 = 允许除克隆以外的所有操作 (0x37F)1023 = 允许所有操作 (0x3FF)1024 = 禁用代理警告对话框 (0x400)32768 = R13 格式代理 (0x8000)
91 自定义类的实例计数
280 “是代理”标志。如果创建此 DXF 文件时未加载类,则设定为 1,否则设定为 0
281 “是图元”标志。如果类从 AcDbEntity 类派生并可能位于 BLOCKS 或 ENTITIES 段中,则设定为 1。如果设定为 0,则实例可能仅出现在 OBJECTS 段中
2.3 DXF TABLES 段 (DXF)

本章介绍的组码可以在 DXF文件中找到,并且可以由应用程序使用。TABLES 段包含若干个表,每个表都包含多个条目。图元定义列表中的 AutoLISP ® 和 ObjectARX ® 应用程序也使用这些代码。

2.3.1 APPID (DXF)

以下组码适用于 APPID 符号表条目。

APPID 组码
组码 说明
100 子类标记 (AcDbRegAppTableRecord)
2 用户提供(或应用程序提供)的应用程序名称(用于扩展数据)。这些表条目用于维护注册的所有应用程序的名称
70 标准标记值(按位编码值):16 = 如果设定了此位,则表条目外部依赖于外部参照32 = 如果同时设定了此位和位 16,则表明已成功融入了外部依赖的外部参照64 = 如果设定了此位,则表明在上次编辑图形时,图形中至少有一个图元参照了表条目。(此标志对 AutoCAD 命令很有用。大多数读取 DXF 文件的程序都可以忽略它,并且无需由写入 DXF 文件的程序对其进行设定)
2.3.2 BLOCK_RECORD (DXF)

以下组码适用于 BLOCK_RECORD 符号表条目。

BLOCK_RECORD 组码
组码 说明
100 子类标记 (AcDbBlockTableRecord)
2 块名
340 关联的 LAYOUT 对象的硬指针 ID/句柄
70 块插入单位。
280 块分解性
281 块可测量性
310 DXF:位图预览的二进制数据(可选)
1001 扩展数据应用程序名称“ACAD”(可选)
1000 扩展数据字符串数据“设计中心数据”(可选)
1002 扩展数据的开始“{”(可选)
1070 AutoCAD 设计中心版本号
1070 插入单位:0 = 无单位1 = 英寸2 = 英尺3 = 英里4 = 毫米5 = 厘米6 = 米7 = 千米8 = 微英寸9 = 英里10 = 码11 = 埃12 = 毫微米13 = 微米14 = 分米15 = 十米16 = 百米17 = 百万公里18 = 天文单位19 = 光年20 = 秒差距21 = 美制测量英尺22 = 美制测量英寸23 = 美制测量码24 = 美制测量英里
1002 扩展数据的结束“}”
2.3.3 以下组码适用于 DIMSTYLE 符号表条目。
DIMSTYLE 组码
组码 说明
100 子类标记 (AcDbDimStyleTableRecord)
2 标注样式名
70 标准标记值(按位编码值):16 = 如果设定了此位,则表条目外部依赖于外部参照32 = 如果同时设定了此位和位 16,则表明已成功融入了外部依赖的外部参照64 = 如果设定了此位,则表明在上次编辑图形时,图形中至少有一个图元参照了表条目。(此标志对 AutoCAD 命令很有用。大多数读取 DXF 文件的程序都可以忽略它,并且无需由写入 DXF 文件的程序对其进行设定)
3 DIMPOST
4 DIMAPOST
5 DIMBLK(已废弃,现在为对象 ID)
6 DIMBLK1(已废弃,现在为对象 ID)
7 DIMBLK2(已废弃,现在为对象 ID)
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
148 DIMALTRND
71 DIMTOL
72 DIMLIM
73 DIMTIH
74 DIMTOH
75 DIMSE1
76 DIMSE2
77 DIMTAD
78 DIMZIN
79 DIMAZIN
170 DIMALT
171 DIMALTD
172 DIMTOFL
173 DIMSAH
174 DIMTIX
175 DIMSOXD
176 DIMCLRD
177 DIMCLRE
178 DIMCLRT
179 DIMADEC
270 DIMUNIT(已废弃,现在使用 DIMLUNIT 和 DIMFRAC)
271 DIMDEC
272 DIMTDEC
273 DIMALTU
274 DIMALTTD
275 DIMAUNIT
276 DIMFRAC
277 DIMLUNIT
278 DIMDSEP
279 DIMTMOVE
280 DIMJUST
281 DIMSD1
282 DIMSD2
283 DIMTOLJ
284 DIMTZIN
285 DIMALTZ
286 DIMALTTZ
287 DIMFIT(已废弃,现在使用 DIMATFIT 和 DIMTMOVE)
288 DIMUPT
289 DIMATFIT
340 DIMTXSTY(参照的 STYLE 的句柄)
341 DIMLDRBLK(参照的 BLOCK 的句柄)
342 DIMBLK(参照的 BLOCK 的句柄)
343 DIMBLK1(参照的 BLOCK 的句柄)
344 DIMBLK2(参照的 BLOCK 的句柄)
371 DIMLWD(线宽枚举值)
372 DIMLWE(线宽枚举值)
2.3.4 LAYER (DXF)

以下组码适用于 LAYER 符号表条目。

LAYER 组码
组码 说明
100 子类标记 (AcDbLayerTableRecord)
2 图层名
70 标准标记(按位编码值):1 = 冻结图层,否则解冻图层2 = 默认情况下在新视口中冻结图层4 = 锁定图层16 = 如果设定了此位,则表条目外部依赖于外部参照32 = 如果同时设定了此位和位 16,则表明已成功融入了外部依赖的外部参照64 = 如果设定了此位,则表明在上次编辑图形时,图形中至少有一个图元参照了表条目。(此标志对 AutoCAD 命令很有用。大多数读取 DXF 文件的程序都可以忽略它,并且无需由写入 DXF 文件的程序对其进行设定)
62 颜色编号(如果为负值,则表明图层处于关闭状态)
6 线型名
290 打印标志。如果设定为 0,则不打印此图层
370 线宽枚举值
390 PlotStyleName 对象的硬指针 ID/句柄
347 Material 对象的硬指针 ID/句柄

在执行 SAVEAS 期间,外部参照相关的图层被输出。对于这些图层,DXF 文件中关联的线型名始终为 CONTINUOUS。

2.3.5 LTYPE (DXF)

以下组码适用于 LTYPE 符号表条目。

LTYPE 组码
组码 说明
100 子类标记 (AcDbLinetypeTableRecord)
2 线型名
70 标准标记值(按位编码值):16 = 如果设定了此位,则表条目外部依赖于外部参照32 = 如果同时设定了此位和位 16,则表明已成功融入了外部依赖的外部参照64 = 如果设定了此位,则表明在上次编辑图形时,图形中至少有一个图元参照了表条目。(此标志对 AutoCAD 命令很有用。大多数读取 DXF 文件的程序都可以忽略它,并且无需由写入 DXF 文件的程序对其进行设定)
3 线型的说明文字
72 对齐代码;值通常为 65,A 的 ASCII 代码
73 线型元素的数目
40 图案总长度
49 虚线、点或空间长度(每个元素一个条目)
74 复杂线型元素类型(每个元素一种类型)。默认值为 0(无嵌入的形/文字)以下代码是位值:1 = 如果设定了此位,则代码 50 指定绝对旋转;如果未设置此位,则代码 50 指定相对旋转2 = 嵌入元素是字符串4 = 嵌入元素是形
75 如果代码 74 指定嵌入的形,则表示形编号(每个元素一个编号)如果代码 74 指定嵌入的字符串,此值将设定为 0如果代码 74 设定为 0,则省略代码 75
340 指向 STYLE 对象的指针(如果代码 74 > 0,则每个元素一个指针)
46 S = 比例值(可选);可存在多个条目
50 R = 嵌入的形或文字的相对旋转值(以弧度为单位),A = 嵌入的形或文字的绝对旋转值(以弧度为单位);如果代码 74 指定了嵌入的形或字符串,则每个元素一个
44 X = X 偏移值(可选);可存在多个条目
45 Y = Y 偏移值(可选);可存在多个条目
9 字符串(如果代码 74 = 2,则每个元素一个字符串)

tblsearchtblnext 函数不返回组码 74、75、340、46、50、44、45 和 9。在应用程序中,必须使用 tblobjname 检索这些值。

2.3.6 STYLE (DXF)

以下组码适用于 STYLE 符号表条目。

STYLE 组码
组码 说明
100 子类标记 (AcDbTextStyleTableRecord)
2 样式名
70 标准标记值(按位编码值):1 = 如果设定了此位,则此条目用于说明形4 = 垂直文字16 = 如果设定了此位,则表条目外部依赖于外部参照32 = 如果同时设定了此位和位 16,则表明已成功融入了外部依赖的外部参照64 = 如果设定了此位,则表明在上次编辑图形时,图形中至少有一个图元参照了表条目。(此标志对 AutoCAD 命令很有用。大多数读取 DXF 文件的程序都可以忽略它,并且无需由写入 DXF 文件的程序对其进行设定)
40 固定的文字高度;如果文字高度未固定,则为 0
41 宽度因子
50 倾斜角度
71 文字生成标志:2 = 文字反向(在 X 轴方向镜像)4 = 文字倒置(在 Y 轴方向镜像)
42 上次使用的高度
3 主要字体文件名
4 大字体文件名;如果无,则为空
1071 包含 Truetype 字体的字宽与字族、字符集以及斜体和粗体标志的长值

STYLE 表项目也可用来记录 LOAD 命令申请的形文件。这种情况下,在 70 组标志中设定第一位 (1),并且只有 3 组(形文件名)有意义(其他所有组均为输出)。

2.3.7 UCS (DXF)

以下组码适用于 UCS 符号表条目。

UCS 组码
组码 说明
100 子类标记 (AcDbUCSTableRecord)
2 UCS 名称
70 标准标记值(按位编码值):16 = 如果设定了此位,则表条目外部依赖于外部参照32 = 如果同时设定了此位和位 16,则表明已成功融入了外部依赖的外部参照64 = 如果设定了此位,则表明在上次编辑图形时,图形中至少有一个图元参照了表条目。(此标志对 AutoCAD 命令很有用。大多数读取 DXF 文件的程序都可以忽略它,并且无需由写入 DXF 文件的程序对其进行设定)
10 原点(在 WCS 中)DXF:X 值;APP:三维点
20, 30 DXF:原点的 Y 值和 Z 值(在 WCS 中)
11 X 轴方向(在 WCS 中)DXF:X 值;APP:三维矢量
21, 31 DXF:X 轴方向的 Y 值和 Z 值(在 WCS 中)
12 Y 轴方向(在 WCS 中)DXF:X 值;APP:三维矢量
22, 32 DXF:Y 轴方向的 Y 值和 Z 值(在 WCS 中)
79 总是为 0
146 标高
346 基准 UCS 的 ID/句柄(如果为正交)。如果 79 代码为 0,则不显示此代码。如果未显示此代码,且 79 代码不为零,则假定基准 UCS 为 WORLD
71 正交类型(可选;通常与 13、23 和 33 代码成对出现):1 = 俯视图;2 = 仰视图3 = 主视图;4 = 后视图5 = 左视图;6 = 右视图
13 与此 UCS 相关的正交类型的原点DXF:原点的 X 值;APP:三维点
23, 33 DXF:原点的 Y 值和 Y

每个 71/13、71/23 和 71/33 组码对都定义了与此 UCS 相关的特定正交类型的 UCS 原点。例如,如果存在下列组码对,则在将 UCSBASE 设定为此 UCS 时调用 UCS/LEFT 命令,将导致新的 UCS 原点变为 (1,2,3)。

71: 5
13: 1.0
23: 2.0
33: 3.0

如果不存在此组码对,则调用 UCS/LEFT 命令将使得新的 UCS 原点被设定为此 UCS 的原点。

2.3.8 VIEW (DXF)

以下组码适用于 VIEW 符号表条目。

VIEW 组码
组码 说明
100 子类标记 (AcDbViewTableRecord)
2 视图名称
70 标准标记值(按位编码值):1 = 如果设定了此位,则为图纸空间视图16 = 如果设定了此位,则表条目外部依赖于外部参照32 = 如果同时设定了此位和位 16,则表明已成功融入了外部依赖的外部参照64 = 如果设定了此位,则表明在上次编辑图形时,图形中至少有一个图元参照了表条目。(此标志对 AutoCAD 命令很有用。大多数读取 DXF 文件的程序都可以忽略它,并且无需由写入 DXF 文件的程序对其进行设定)
40 视图高度(在 DCS 中)
10 视口中心点(在 DCS 中)DXF:X 值;APP:二维点
20 DXF:视图中心点的 Y 值(在 DCS 中)
41 视图宽度(在 DCS 中)
11 来自目标的观察方向(在 WCS 中)DXF:X 值;APP:三维矢量
21, 31 DXF:来自目标的观察方向的 Y 值和 Z 值(在 WCS 中)
12 目标点(在 WCS 中)DXF:X 值;APP:三维点
22, 32 DXF:目标点的 Y 值和 Z 值(在 WCS 中)
42 焦距
43 前向剪裁平面(距目标点的偏移)
44 后向剪裁平面(距目标点的偏移)
50 扭曲角度
71 视图模式(参见 VIEWMODE 系统变量)
281 渲染模式:0 = 二维优化(传统二维)1 = 线框2 = 隐藏线3 = 平面着色4 = 体着色5 = 带线框平面着色6 = 带线框体着色所有非二维优化渲染模式均使用新三维图形管道。这些值直接与 SHADEMODE 命令和 AcDbAbstractViewTableRecord::RenderMode 枚举相对应
72 如果存在与此视图相关联的 UCS,则为 1;否则为 0
73 如果相机可打印,则为 1
332 背景对象的软指针 ID/句柄(可选)
334 活动剖切对象的软指针 ID/句柄(可选)
348 视觉样式对象的硬指针 ID/句柄(可选)
361 Sun 硬所有权 ID

仅当将代码 72 设定为 1 时才显示以下代码。这些代码定义了与此视图关联的 UCS。恢复此视图时,此 UCS 将成为当前 UCS(如果代码 72 为 0,UCS 将保持不变)。

包含 UCS 组码的 VIEW
组码 说明
110 UCS 原点(仅当将代码 72 设定为 1 时才显示)DXF:X 值;APP:三维点
120, 130 DXF:UCS 原点的 Y 值和 Z
111 UCS X 轴(仅当将代码 72 设定为 1 时才显示)DXF:X 值;APP:三维矢量
121, 131 DXF:UCS X 轴的 Y 值和 Z
112 UCS Y 轴(仅当将代码 72 设定为 1 时才显示)DXF:X 值;APP:三维矢量
122, 132 DXF:UCS Y 轴的 Y 值和 Z
79 UCS 的正交类型(仅当将代码 72 设定为 1 时才显示):0 = UCS 为非正交视图1 = 俯视图;2 = 仰视图3 = 主视图;4 = 后视图5 = 左视图;6 = 右视图
146 UCS 标高(仅当将代码 72 设定为 1 时才显示)
345 如果 UCS 是命名 UCS,则为 AcDbUCSTableRecord 的 ID/句柄。如果未提供,UCS 则为未命名 UCS(仅当将代码 72 设定为 1 时才显示)
346 如果 UCS 为正交 UCS,则为基准 UCS 的 AcDbUCSTableRecord 的 ID/句柄(代码 79 非零)。如果未提供,且 79 代码为非零值,则基准 UCS 将作为 WORLD(仅当将代码 72 设定为 1 时才显示)
2.3.10 VPORT (DXF)

以下组码适用于 VPORT 符号表条目。VPORT 表是唯一的:它可能包含多个同名的条目(表示多视口配置)。与活动视口配置相对应的条目名称均为 *ACTIVE。第一个这种条目说明了当前视口。

VPORT 组码
组码 说明
100 子类标记 (AcDbViewportTableRecord)
2 视口名
70 标准标记值(按位编码值):16 = 如果设定了此位,则表条目外部依赖于外部参照32 = 如果同时设定了此位和位 16,则表明已成功融入了外部依赖的外部参照64 = 如果设定了此位,则表明在上次编辑图形时,图形中至少有一个图元参照了表条目。(此标志对 AutoCAD 命令很有用。大多数读取 DXF 文件的程序都可以忽略它,并且无需由写入 DXF 文件的程序对其进行设定)
10 视口的左下角DXF:X 值;APP:二维点
20 DXF:视口左下角的 Y
11 视口右上角DXF:X 值;APP:二维点
21 DXF:视口右上角的 Y
12 视口中心点(在 DCS 中)DXF:X 值;APP:二维点
22 DXF:视图中心点的 Y 值(在 DCS 中)
13 捕捉基点(在 DCS 中)DXF:X 值;APP:二维点
23 DXF:捕捉基点的 Y 值(在 DCS 中)
14 捕捉间距 XYDXF:X 值;APP:二维点
24 DXF:捕捉间距 XYY
15 栅格间距 XYDXF:X 值;APP:二维点
25 DXF:栅格间距 X 和 Y 的 Y
16 相对于目标点的观察方向(在 WCS 中)DXF:X 值;APP:三维点
26, 36 DXF:相对于目标点的观察方向的 Y 值和 Z 值(在 WCS 中)
17 观察目标点(在 WCS 中)DXF:X 值;APP:三维点
27, 37 DXF:观察目标点的 Y 值和 Z 值(在 WCS 中)
42 焦距
43 前向剪裁平面(距目标点的偏移)
44 后向剪裁平面(距目标点的偏移)
45 视图高度
50 捕捉旋转角度
51 视图扭转角度
72 圆形边
331 或 441 冻结图层对象的软指针 ID/句柄或硬指针 ID/句柄;为每个冻结图层重复
1 打印样式表
281 渲染模式:0 = 二维优化(传统二维)1 = 线框2 = 隐藏线3 = 平面着色4 = 体着色5 = 带线框平面着色6 = 带线框体着色所有非二维优化渲染模式均使用新三维图形管道。这些值直接与 SHADEMODE 命令和 AcDbAbstractViewTableRecord::RenderMode 枚举相对应
71 视图模式(参见 VIEWMODE 系统变量)
74 UCSICON 设置
110 UCS 原点DXF:X 值;APP:三维点
120, 130 DXF:UCS 原点的 Y 值和 Z
111 UCS X 轴DXF:X 值;APP:三维矢量
121, 131 DXF:UCS X 轴的 Y 值和 Z
112 UCS Y 轴DXF:X 值;APP:三维矢量
122, 132 DXF:UCS Y 轴的 Y 值和 Z
345 如果 UCS 是命名 UCS,则为 AcDbUCSTableRecord 的 ID/句柄。如果不存在,则为未命名 UCS
346 如果 UCS 为正交 UCS,则为基准 UCS 的 AcDbUCSTableRecord 的 ID/句柄(代码 79 非零)。如果不存在,且代码 79 非零,则将基准 UCS 作为 WORLD
79 UCS 的正交类型0 = UCS 为非正交视图1 = 俯视2 = 仰视3 = 前视4 = 后视5 = 左视6 = 右视
146 标高
170 着色打印设置
61 主栅格线
332 背景对象的软指针 ID/句柄(可选)
333 着色打印对象的软指针 ID/句柄(可选)
348 视觉样式对象的硬指针 ID/句柄(可选)
292 标志上的默认光源
282 默认光源类型0 = 一条平行光1 = 两条平行光
141 亮度
142 对比度
63, 421, 431 环境色(仅当不是黑色时输出)
2.3.11 符号表组码 (DXF)

表的次序可以更改,但 LTYPE 表总是位于 LAYER 表之前。每个表都由带有 TABLE 标签的 0 组码引入。其后是一个标识特定表(APPID、DIMSTYLE、LAYER、LTYPE、STYLE、UCS、VIEW、VPORT 或 BLOCK_RECORD)的 2 组码、一个 5 组码(句柄)、一个 100 组码(AcDbSymbolTable 子类标记)和一个 70 组码(用于指定后面的表条目的最大数目)。表名称以大写字母输出。DIMSTYLE 句柄是 105 组码,而不是 5 组码。

图形中的表可以包含已删除的项目,但这些项目并不写入 DXF 文件。这样,表标题后面的表条目可能少于 70 组码指示的数目,因此不要使用 70 组码中的计数作为索引在表中执行读取操作。提供此组码是为了使读取 DXF 文件的程序能够分配足以容纳其后的全部表条目的数组。

每个表中此标题的后面都是表条目。每个表条目都包含以下内容:一个标识项目类型(与表名相同,例如 LTYPE 或 LAYER)的 0 组、一个提供表条目名称的 2 组、一个指定与表条目(为随后的每个表定义)相关的标志的 70 组以及提供表条目值的其他组。每个表的结尾由 0 组指定,组值为 ENDTAB。

符号表记录和符号表都是数据库对象。对于 AutoCAD ® 中的所有主要应用而言,这至少意味着存在一个句柄,它位于符号表记录对象和符号表对象的 2 个组码之后。

DIMSTYLE 表是系统中句柄代码为 105 的唯一记录类型,因为它早期使用的是组码 5。原则上,程序员不必担心此异常,除非它出现在 DIMSTYLE 表段的上下文中。因为只有在此上下文中才可能出现这种异常。

2.3.12 通用符号表组码 (DXF)

下表显示了适用于所有符号表的组码。

适用于所有符号表的组码
组码 说明
-1 APP:图元名(每次打开图形时都会发生变化)
0 对象类型 (TABLE)
2 表名
5 句柄
102 “{ACAD_XDICTIONARY”表示扩展词典组的开始。仅当将永久反应器附加到此对象时,此组才存在(可选)
360 所有者词典的硬所有者 ID/句柄(可选)
102 组的结束“}”(可选)
330 所有者对象的软指针 ID/句柄
100 子类标记 (AcDbSymbolTable)
70 表中条目的最大数目
2.4 DXF BLOCKS 段

DXF 文件的 BLOCKS 段包含图形中每个块参照的条目。

2.4.1 BLOCKS 段组码 (DXF)

DXF 文件的 BLOCKS 区域包含所有的块定义,其中包括由 HATCH 命令和由关联标注生成的匿名块。每个块定义都包含在图形中使用该块时构成该块的图元。此段中的图元格式与 ENTITIES 段中的图元格式相同。BLOCKS 段中的所有图元都出现在 BLOCK 和 ENDBLK 图元之间。BLOCK 和 ENDBLK 图元仅出现在 BLOCKS 段。尽管块定义可以包含插入图元,但不允许嵌套块定义(即 BLOCK 和 ENDBLK 图元之间不允许出现另一对 BLOCK 和 ENDBLK 图元)。

外部参照被作为块定义写入 DXF 文件,除非外部参照还包含指定外部参照路径和文件名的字符串(组码 1)。

在每个块定义中,紧接着 BLOCK 记录后出现的是块表句柄和任何扩展数据以及永久反应器,BLOCK 记录包含块表记录存储的所有指定信息。

2.4.2 BLOCK (DXF)

下列组码适用于块图元。

BLOCK 组码
组码 说明
0 图元类型 (BLOCK)
5 句柄
102 应用程序定义的组的开始“{application_name”。例如,“{ACAD_REACTORS”表示 AutoCAD 永久反应器组的开始(可选)
应用程序定义的代码 102 组中的代码和值由应用程序定义(可选)
102 组的结束“}”(可选)
330 所有者对象的软指针 ID/句柄
100 子类标记 (AcDbEntity)
8 图层名
100 子类标记 (AcDbBlockBegin)
2 块名
70 块类型标志(按位编码值,可以组合使用):0 = 表示不应用下列任何标志1 = 由图案填充、关联标注、其他内部操作或应用程序生成的匿名块2 = 块具有非固定属性定义(如果块具有任何固定属性定义或根本没有属性定义,则不设定此位)4 = 块是外部参照 (xref)8 = 块是外部参照覆盖16 = 块依赖外部参照32 = 块是融入的外部参照,或者依赖外部参照(输入时被忽略)64 = 定义是被引用的外部参照(输入时被忽略)
10 基点DXF:X 值;APP:三维点
20, 30 DXF:基点的 Y 值和 Y
3 块名
1 外部参照路径名
4 块说明(可选)

创建块定义时使用的 UCS 成为块定义中所有图元的 WCS。移动这些图元的新原点以匹配为块定义而定义的基点。转换所有图元数据以适合新的 WCS。

模型空间和图纸空间块定义

BLOCKS 段中始终出现三个空定义。即 *Model_Space、*Paper_Space 和 *Paper_Space0。这些定义在内部将模型空间和图纸空间的表示显示为块定义。第一个图纸空间布局的内部名称是 *Paper_Space,第二个是 *Paper_Space0,第三个是 *Paper_Space1,依此类推。

模型空间和图纸空间图元分离

模型空间和图纸空间之间不会再出现交错现象。总是先输出所有图纸空间图元,再输出模型空间图元。区分这些图元的标志是组码 67。

2.4.3 ENDBLK (DXF)

下列组码适用于 ENDBLK 对象。

ENDBLK 组码
组码 说明
0 图元类型 (ENDBLK)
5 句柄
102 应用程序定义的组的开始“{application_name”。例如,“{ACAD_REACTORS”表示 AutoCAD 永久反应器组的开始(可选)
应用程序定义的代码 102 组中的代码和值由应用程序定义(可选)
102 组的结束“}”(可选)
330 所有者对象的软指针 ID/句柄
100 子类标记 (AcDbEntity)
8 图层名
100 子类标记 (AcDbBlockEnd)
2.5 DXF ENTITIES 段

适用于图形对象的图元组码。这些代码可以在 DXF™ 文件的 ENTITIES 区域中找到,并且由 AutoLISP ® 和 ObjectARX ® 应用程序在图元定义列表中使用。

2.5.1 通用图元组码 (DXF)

下表列出了适用于几乎所有图形对象的组码。此处显示的某些组码仅在图元特性具有非默认值时才包含在图元定义中。请记住,在按照图元类型(与特定图元关联的代码列表)参照组码时,此处显示的代码也将出现。

注: 编写程序时不要依赖这些 DXF 代码表中显示的次序。尽管这些表显示了组码通常出现的次序,但该次序在某些条件下或在 AutoCADAutoCAD 以后的版本中可能会改变。控制图元的代码应该由事例(开关)或表驱动,这样即使组未按预期的次序显示,仍可以得到正确的处理。

如果省略某个组,则使用 OPEN 输入时它的默认值显示在第三列中。如果组码值等于默认值,则使用 SAVEAS 输出时该值将被省略。

适用于所有图形对象的组码
组码 说明 如果忽略,则默认为…
-1 APP:图元名(每次打开图形时都会发生变化) 未省略
0 图元类型 未省略
5 句柄 未省略
102 应用程序定义的组的开始“{application_name”(可选) 无默认值
应用程序定义的代码 102 组中的代码和值由应用程序定义(可选) 无默认值
102 组的结束“}”(可选) 无默认值
102 “{ACAD_REACTORS”表示 AutoCAD 永久反应器组的开始。仅当将永久反应器附加到此对象时,此组才存在(可选) 无默认值
330 所有者词典的软指针 ID/句柄(可选) 无默认值
102 组的结束“}”(可选) 无默认值
102 “{ACAD_XDICTIONARY”表示扩展词典组的开始。仅当将扩展词典附加到此对象时,此组才存在(可选) 无默认值
360 所有者词典的硬所有者 ID/句柄(可选) 无默认值
102 组的结束“}”(可选) 无默认值
330 所有者 BLOCK_RECORD 对象的软指针 ID/句柄 未省略
100 子类标记 (AcDbEntity) 未省略
67 不存在或零表示图元位于模型空间中。1 表示图元位于图纸空间中(可选) 0
410 APP:布局选项卡名 未省略
8 图层名 未省略
6 线型名(如果不是“BYLAYER”,则出现)。特殊名称“BYBLOCK”表示可变的线型(可选) BYLAYER
347 材质对象的硬指针 ID/句柄(如果不是“BYLAYER”,则出现) BYLAYER
62 颜色号(如果不是“BYLAYER”,则出现);零表示“BYBLOCK”(可变的)颜色;256 表示“BYLAYER”;负值表示层已关闭(可选) BYLAYER
370 线宽枚举值。作为 16 位整数存储和移动。 未省略
48 线型比例(可选) 1.0
60 对象可见性(可选):0 = 可见1 = 不可见 0
92 后面的 310 组(二进制数据块记录)中表示的代理图元图形中的字节数(可选) 无默认值
310 代理图元图形数据(多行;每行最多 256 个字符)(可选) 无默认值
420 一个 24 位颜色值,应按照值为 0 到 255 的字节进行处理。最低字节是蓝色值,中间字节是绿色值,第三个字节是红色值。最高字节始终为 0。该组码不能用于自定义图元本身的数据,因为该组码是为 AcDbEntity 类级别颜色数据和 AcDbEntity 类级别透明度数据保留的。 无默认值
430 颜色名。该组码不能用于自定义图元本身的数据,因为该组码是为 AcDbEntity 类级别颜色数据和 AcDbEntity 类级别透明度数据保留的。 无默认值
440 透明度值。该组码不能用于自定义图元本身的数据,因为该组码是为 AcDbEntity 类级别颜色数据和 AcDbEntity 类级别透明度数据保留的。 无默认值
390 打印样式对象的硬指针 ID/句柄 无默认值
284 阴影模式0 = 投射和接收阴影1 = 投射阴影2 = 接收阴影3 = 忽略阴影注: 从基于 AutoCAD 2016 的产品开始,该特性已弃用,但是为了实现向后兼容性,该特性仍受支持。 无默认值
2.5.2 POINT (DXF)

以下组码适用于点图元。

POINT 组码
组码 说明
100 子类标记 (AcDbPoint)
10 点位置(在 WCS 中)DXF:X 值;APP:三维点
20, 30 DXF:点位置的 Y 值和 Z 值(在 WCS 中)
39 厚度(可选;默认值 = 0)
210 拉伸方向(可选;默认值 = 0, 0, 1)DXF:X 值;APP:三维矢量
220, 230 DXF:拉伸方向的 Y 值和 Z 值(可选)
50 绘制点时所使用的 UCS 的 X 轴的角度(可选;默认值 = 0);当 PDMODE 非零时使用
2.5.3 LINE (DXF)

以下组码适用于直线图元。

LINE 组码
组码 说明
100 子类标记 (AcDbLine)
39 厚度(可选;默认值 = 0)
10 起点(在 WCS 中)DXF:X 值;APP:三维点
20, 30 DXF:起点的 Y 值和 Z 值(在 WCS 中)
11 端点(在 WCS 中)DXF:X 值;APP:三维点
21, 31 DXF:端点的 Y 值和 Z 值(在 WCS 中)
210 拉伸方向(可选;默认值 = 0, 0, 1)DXF:X 值;APP:三维矢量
220, 230 DXF:拉伸方向的 Y 值和 Z 值(可选)
2.5.4 POLYLINE (DXF)

以下组码适用于多段线图元。

POLYLINE 组码
组码 说明
100 子类标记(AcDb2dPolyline 或 AcDb3dPolyline)
66 已废弃;以前是“后跟图元标志”(可选;如果存在则忽略)
10 DXF:始终为 0APP:“虚拟”点;X 值和 Y 值始终为 0,Z 值是多段线的标高(二维时在 OCS 中,三维时在 WCS 中)
20 DXF:始终为 0
30 DXF:多段线的标高(二维时在 OCS 中,三维时在 WCS 中)
39 厚度(可选;默认值 = 0)
70 多段线标志(按位编码;默认值 = 0):1 = 这是一个闭合多段线(或按 M 方向闭合的多边形网格)2 = 已添加曲线拟合顶点4 = 已添加样条曲线拟合顶点8 = 这是一条三维多段线16 = 这是一个三维多边形网格32 = 多边形网格以 N 方向闭合64 = 多段线是一个多面网格128 = 线型图案在该多段线顶点的周围连续生成
40 默认起点宽度(可选;默认值 = 0)
41 默认端点宽度(可选;默认值 = 0)
71 多边形网格 M 顶点计数(可选;默认值 = 0)
72 多边形网格 N 顶点计数(可选;默认值 = 0)
73 平滑曲面 M 密度(可选;默认值 = 0)
74 平滑曲面 N 密度(可选;默认值 = 0)
75 曲线和平滑曲面类型(可选;默认值 = 0);整数代码,非按位编码:0 = 不拟合平滑曲面5 = 二次 B 样条曲面6 = 三次 B 样条曲面8 = Bezier 曲面
210 拉伸方向(可选;默认值 = 0, 0, 1)DXF:X 值;APP:三维矢量
220, 230 DXF:拉伸方向的 Y 值和 Z 值(可选)

多段线图元后面将跟随应用程序 ID 为“AUTOCAD_POSTSCRIPT_FIGURE”的扩展数据。它包含与 PostScript 图像和 PostScript 填充信息相关的信息。

2.5.5 ARC (DXF)

以下组码适用于圆弧图元。

ARC 组码
组码 说明
100 子类标记 (AcDbCircle)
39 厚度(可选;默认值 = 0)
10 中心点(在 OCS 中)DXF:X 值;APP:三维点
20, 30 DXF:中心点的 Y 值和 Z 值(在 OCS 中)
40 半径
100 子类标记 (AcDbArc)
50 起点角度
51 端点角度
210 拉伸方向(可选;默认值 = 0, 0, 1)DXF:X 值;APP:三维矢量
220, 230 DXF:拉伸方向的 Y 值和 Z 值(可选)
2.5.6 SPLINE (DXF)

以下组码适用于样条曲线图元。

SPLINE 组码
组码 说明
100 子类标记 (AcDbSpline)
210 法向矢量(如果样条曲线为非平面型,则省略)DXF:X 值;APP:三维矢量
220, 230 DXF:法向矢量的 Y 值和 Z 值(可选)
70 样条曲线标志(按位编码):1 = 闭合样条曲线2 = 周期性样条曲线4 = 有理样条曲线8 = 平面16 = 线性(同时还设置平面位)
71 样条曲线的阶数
72 节点数
73 控制点数
74 拟合点数(如果有)
42 节点公差(默认值 = 0.0000001)
43 控制点公差(默认值 = 0.0000001)
44 拟合公差(默认值 = 0.0000000001)
12 起点切向 — 可以省略(在 WCS 中)DXF:X 值;APP:三维点
22, 32 DXF:起点切向的 Y 值和 Z 值 — 可以省略(在 WCS 中)
13 端点切向 — 可以省略(在 WCS 中)DXF:X 值;APP:三维点
23, 33 DXF:端点切向的 Y 值和 Z 值 — 可以省略(在 WCS 中)
40 节点值(每个节点一个条目)
41 权值(如果不为 1);对于多组对,如果均不为 1,则出现。
10 控制点(在 WCS 中);每个控制点一个条目DXF:X 值;APP:三维点
20, 30 DXF:控制点的 Y 值和 Z 值(在 WCS 中);每个控制点一个条目
11 拟合点(在 WCS 中);每个拟合点一个条目DXF:X 值;APP:三维点
21, 31 DXF:拟合点的 Y 值和 Z 值(在 WCS 中);每个拟合点一个条目
2.5.7 TEXT (DXF)

以下组码适用于文字图元。

TEXT 组码
组码 说明
100 子类标记 (AcDbText)
39 厚度(可选;默认值 = 0)
10 第一对齐点(在 OCS 中)DXF:X 值;APP:三维点
20, 30 DXF:第一对齐点的 Y 值和 Z 值(在 OCS 中)
40 文字高度
1 默认值(字符串本身)
50 文字旋转角度(可选;默认值 = 0)
41 相对 X 比例因子 — 宽度(可选;默认值 = 1)使用拟合类型的文字时,该值也将进行调整。
51 倾斜角(可选;默认值 = 0)
7 文字样式名(可选;默认值 = 标准)
71 文字生成标志(可选;默认值 = 0):2 = 文字反向(在 X 轴方向镜像)4 = 文字倒置(在 Y 轴方向镜像)
72 文字水平对正类型(可选;默认值 = 0)整数代码(非按位编码):0 = 左对正1 = 居中对正2 = 右对正3 = 对齐(如果垂直对齐 = 0)4 = 中间(如果垂直对齐 = 0)5 = 拟合(如果垂直对齐 = 0)详细信息请参见组 72 和 73 整数代码表
11 第二对齐点(在 OCS 中)(可选)DXF:X 值;APP:三维点只有当 72 或 73 组的值非零时,该值才有意义(如果对正不是基线对正/左对正)
21, 31 DXF:第二对齐点的 Y 值和 Z 值(在 OCS 中)(可选)
210 拉伸方向(可选;默认值 = 0, 0, 1)DXF:X 值;APP:三维矢量
220, 230 DXF:拉伸方向的 Y 值和 Z 值(可选)
100 子类标记 (AcDbText)
73 文字垂直对正类型(可选;默认值 = 0)整数代码(不是按位编码)0 = 基线对正1 = 底端对正2 = 居中对正3 = 顶端对正详细信息请参见组 72 和 73 整数代码表

下表详细说明了组码 72(水平对齐)和组码 73(垂直对齐)。

组 72 和 73 整数代码
组 73 组 720 1 2 3 4 5
3(顶端对正) 左上 中上 右上
2(居中对正) 左中 正中 右中
1(底端对正) 左下 中下 右下
0(基线对正) 中心 对齐 中间 拟合

如果组 72 和/或 73 的值非零,则第一对齐点的值将被忽略,AutoCAD 将根据第二对齐点和文字字符串的长度和高度(应用文字样式之后)计算新值。如果组 72 和 73 的值为零或缺失,第二对齐点将没有意义。
其他ENTITIES 段参考:
https://help.autodesk.com/view/OARX/2022/CHS/?guid=GUID-7D07C886-FD1D-4A0C-A7AB-B4D21F18E484

2.6 关于 OBJECT 段组码 (DXF)

对象与图元类似,唯一不同的是对象没有图形或几何意义。除图元、符号表记录以及符号表以外的所有对象都存储在此段。此段通过所有权表示了一个具有对象的拓扑次序的对象同类堆,因此所有者始终出现在它们所拥有的对象之前。

2.6.1 通用对象组码 (DXF)

下表显示了实际适用于所有非图形对象的组码。请记住,当通过对象类型参照组码表以及与特定对象关联的代码列表时,也可以显示此处所示的代码。仅当对象的组码特性具有非默认值时,对象中才可能包含某些组码。

通用对象组码
组码 说明
0 对象类型
5 句柄
102 应用程序定义的组的开始“{application_name”(可选)
应用程序定义的代码 102 组中的代码和值由应用程序定义(可选)
102 组的结束“}”(可选)
102 “{ACAD_REACTORS”表示 AutoCAD 永久反应器组的开始。仅当将永久反应器附加到此对象时,此组才存在(可选)
330 所有者词典的软指针 ID/句柄(可选)
102 组的结束“}”(可选)
102 “{ACAD_XDICTIONARY”表示扩展词典组的开始。仅当将永久反应器附加到此对象时,此组才存在(可选)
360 所有者词典的硬所有者 ID/句柄(可选)
102 组的结束“}”(可选)
330 所有者对象的软指针 ID/句柄
2.6.2 DATATABLE (DXF)

以下组码由 DATATABLE 对象使用。

DATATABLE 组码
组码 说明
0 对象名 (DATATABLE)
5 句柄
102 永久反应器组的开始,始终为“{ACAD_REACTORS”
330 所有者词典的软指针 ID/句柄
102 永久反应器组的结束,始终为“}”
330 所有者对象的软指针 ID/句柄
100 子类标记 (AcDbDataTable)
70 版本
90 列数
91 有效行数
1 表名
92, 2 列类型和名称;为每列重复
为每列中的每一行写入一个值
71 布尔值
93 整数值
40 双精度值
3 字符串值
10, 20, 30 二维点
11, 21, 31 三维点
331 对象值的软指针 ID/句柄(可选)
360 硬指针所有权 ID
350 软指针所有权 ID
340 硬指针 ID/句柄
330 软指针 ID/句柄

其他参考:
https://help.autodesk.com/view/OARX/2022/CHS/?guid=GUID-2D71EE99-A6BE-4060-9B43-808CF1E201C6

2.7 DXF THUMBNAILIMAGE 段

只有当预览图像与 DXF 文件一起保存时,DXF™ 文件的 THUMBNAILIMAGE 段才存在。

2.7.1 THUMBNAILIMAGE 段组码 (DXF)

下列组码可以在 THUMBNAILIMAGE 段找到。

THUMBNAILIMAGE 组码
组码 说明
90 图像中的字节数(以及后续二进制数据块记录)
310 预览图像数据(多行;每行最多 256 个字符)
参考地址:

https://blog.csdn.net/runing9/article/details/106326862/
https://www.cnblogs.com/MakeView660/p/12341337.html
https://help.autodesk.com/view/OARX/2022/CHS/?guid=GUID-235B22E0-A567-4CF6-92D3-38A2306D73F3

你可能感兴趣的:(遥感图像处理,DXF,dxf,CAD)