DXF 格式详解


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

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

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

2.文件结构

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

部分基本描述
Header本部分包含有关图形的常规信息。就像您手机中的“设置”功能一样,该功能包含与图形关联的不同变量及其关联的值。例如,“标题”部分将定义DXF文件使用的AutoCAD版本($ ACADVER变量)或用于测量文件角度的单位($ AUNITS变量)。
ClassesCLASSES部分保存有关应用程序定义的类的信息,这些类的实例出现在数据库的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 标题变量
变量组码说明
$ACADMAINTVER70维护版本号(应忽略)
$ACADVER1AutoCAD 图形数据库版本号:AC1006 = R10AC1009 = R11 和 R12AC1012 = R13AC1014 = R14AC1015 = AutoCAD 2000AC1018 = AutoCAD 2004AC1021 = AutoCAD 2007AC1024 = AutoCAD 2010AC1027 = AutoCAD 2013AC1032 = AutoCAD 2018
$ANGBASE500 角度方向
$ANGDIR701 = 顺时针角度0 = 逆时针角度
$ATTMODE70属性的可见性:0 = 无1 = 普通2 = 全部
$AUNITS70角度的单位格式
$AUPREC70角度的单位精度
$CECOLOR62当前图元颜色号:0 = BYBLOCK;256 = BYLAYER
$CELTSCALE40当前图元线型比例
$CELTYPE6图元线型名称、BYBLOCK 或 BYLAYER
$CELWEIGHT370新对象的线宽
$CEPSNID390新对象的打印样式句柄。如果 CEPSNTYPE 为 3,则此值代表该句柄
$CEPSNTYPE380新对象的打印样式类型:0 = “BYLAYER” 打印样式1 = BYBLOCK打印样式2 = 词典默认的打印样式3 = 随对象 ID/句柄打印样式
$CHAMFERA40第一个倒角距离
$CHAMFERB40第二个倒角距离
$CHAMFERC40倒角长度
$CHAMFERD40倒角角度
$CLAYER8当前图层名
$CMLJUST70当前多线对正:0 = 顶端对正;1 = 居中对正;2 = 底端对正
$CMLSCALE40当前多线比例
$CMLSTYLE2当前多线样式名称
$CSHADOW280三维对象的阴影模式:0 = 投射和接收阴影1 = 投射阴影2 = 接收阴影3 = 忽略阴影注: 从基于 AutoCAD 2016 的产品开始,该变量已弃用,但是为了实现向后兼容性,该变量仍受支持。
$DIMADEC70角度标注中显示的精度位的位数
$DIMALT70非零时执行的换算单位标注
$DIMALTD70换算单位小数位
$DIMALTF40换算单位比例因子
$DIMALTRND40确定换算单位的舍入值
$DIMALTTD70换算单位标注的公差值的小数位数
$DIMALTTZ70控制是否对换算公差值做消零处理:0 = 消除零英尺和零英寸1 = 包含零英尺和零英寸2 = 包含零英尺,消除零英寸3 = 包含零英寸,消除零英尺要消除前导零或后续零,请将下列值添加到上述值之一中;4 = 消除前导零8 = 消除后续零
$DIMALTU70所有标注样式族成员(角度标注除外)的换算单位的单位格式:1 = 科学2 = 小数3 = 工程4 = 建筑(堆叠)5 = 分数(堆叠)6 = 建筑7 = 分数8 = 操作系统定义小数分隔符和数字分组符号
$DIMALTZ70控制是否对换算单位标注值做消零处理:0 = 消除零英尺和零英寸1 = 包含零英尺和零英寸2 = 包含零英尺,消除零英寸3 = 包含零英寸,消除零英尺4 = 消除十进制标注中的前导零8 = 消除十进制标注中的后续零12 = 消除前导零和后续零
$DIMAPOST1换算标注后缀
$DIMASO701 = 创建关联标注0 = 绘制单独图元注: 已弃用;请参见 $DIMASSOC。
$DIMASSOC280控制标注对象的关联性0 = 创建分解标注;即标注的各元素之间没有任何关联,直线、圆弧、箭头及标注文字均作为单独的对象进行绘制1 = 创建无关联标注对象;将标注的各种元素组成单一对象,如果对象上的定义点移动,标注值将被更新2 = 创建关联标注对象;标注的各种元素组成单一对象,并且标注的一个或多个定义点与几何对象上的关联点相联结
$DIMASZ40标注箭头尺寸
$DIMATFIT70当尺寸界线的空间不足以同时放置标注文字和箭头时用来控制两者的位置:0 = 将文字和箭头均置于尺寸界线之外1 = 先移动箭头,然后移动文字2 = 先移动文字,然后移动箭头3 = 移动文字和箭头中较合适的一个如果 DIMTMOVE 设置为 1,AutoCAD 将为被移动的标注文字添加一条引线
$DIMAUNIT70角度标注的角度格式:0 = 十进制度数1 = 度/分/秒;2 = 百分度3 = 弧度4 = 勘测单位
$DIMAZIN70控制是否对角度标注做消零处理:0 = 显示所有前导零和后续零1 = 消除十进制标注中的前导零2 = 消除十进制标注中的后续零3 = 消除前导零和后续零
$DIMBLK1箭头块名称
$DIMBLK11第一箭头块名称
$DIMBLK21第二箭头块名称
$DIMCEN40中心标记/中心线的大小
$DIMCLRD70尺寸线颜色:范围是:0 = BYBLOCK;256 = BYLAYER
$DIMCLRE70尺寸界线颜色:范围是:0 = BYBLOCK;256 = BYLAYER
$DIMCLRT70标注文字的颜色:范围是:0 = BYBLOCK;256 = BYLAYER
$DIMDEC70主单位标注的公差值的小数位数
$DIMDLE40尺寸线超出尺寸界线的距离
$DIMDLI40尺寸线增量
$DIMDSEP70创建单位格式为小数的标注时使用的单字符小数分隔符
$DIMEXE40尺寸界线延伸
$DIMEXO40尺寸界线偏移
$DIMFAC40用于计算标注分数和公差的文字高度的比例因子。AutoCAD 将 DIMTFAC 与 DIMTXT 相乘,以设置分数或公差的文字高度。
$DIMGAP40尺寸线间距
$DIMJUST70水平标注文字位置:0 = 在尺寸线上方,且在尺寸界线之间居中对正1 = 在尺寸线上方,且紧邻第一条尺寸界线2 = 在尺寸线上方,且紧邻第二条尺寸界线3 = 在第一条尺寸界线上方且居中对正4 = 在第二条尺寸界线上方且居中对正
$DIMLDRBLK1引线的箭头块名
$DIMLFAC40线性测量的比例因子
$DIMLIM70非零时生成的标注界限
$DIMLUNIT70为所有标注类型(除角度标注外)设定单位:1 = 科学2 = 小数3 = 工程4 = 建筑5 = 分数6 = 操作系统
$DIMLWD70尺寸线线宽:-3 = 标准-2 = BYLAYER-1 = BYBLOCK0-211 = 表示百分之几毫米的整数
$DIMLWE70尺寸界线线宽:-3 = 标准-2 = BYLAYER-1 = BYBLOCK0-211 = 表示百分之几毫米的整数
$DIMPOST1基本标注后缀
$DIMRND40标注距离的舍入值
$DIMSAH70非零时使用单独的箭头块
$DIMSCALE40全局标注比例因子
$DIMSD170收缩第一条尺寸界线:0 = 不隐藏1 = 隐藏
$DIMSD270收缩第一条尺寸界线:0 = 不隐藏1 = 隐藏
$DIMSE170非零时抑制第一条尺寸界线
$DIMSE270非零时抑制第二条尺寸界线
$DIMSHO701 = 拖动时重计算标注0 = 拖动原始图像
$DIMSOXD70非零时抑制位于尺寸界限之外的尺寸线
$DIMSTYLE2标注样式名
$DIMTAD70非零时文字在尺寸线上方
$DIMTDEC70显示公差值的小数位数
$DIMTFAC40标注公差显示比例因子
$DIMTIH70非零时将文字水平放在内侧
$DIMTIX70非零时将文字强制放在尺寸界线的内侧
$DIMTM40下偏差
$DIMTMOVE70标注文字移动规则:0 = 尺寸线和标注文字一起移动1 = 移动标注文字时添加引线2 = 允许标注文字自由移动而不添加引线
$DIMTOFL70如果文字位于尺寸界线之外,非零时尺寸线将强制放置在尺寸界线之间。
$DIMTOH70非零时将文字水平放在外侧
$DIMTOL70非零时生成标注公差
$DIMTOLJ70公差值的垂直对正:0 = 顶端对正1 = 居中对正2 = 底端对正
$DIMTP40上偏差
$DIMTSZ40标注标记大小:0 = 绘制箭头>0 = 绘制小斜线以替代箭头
$DIMTVP40文字的垂直位置
$DIMTXSTY7标注文字样式
$DIMTXT40标注文字高度
$DIMTZIN70控制是否对公差值做消零处理:0 = 消除零英尺和零英寸1 = 包含零英尺和零英寸2 = 包含零英尺,消除零英寸3 = 包含零英寸,消除零英尺4 = 消除十进制标注中的前导零8 = 消除十进制标注中的后续零12 = 消除前导零和后续零
$DIMUPT70用户定位文字的光标功能:0 = 仅控制尺寸线的位置1 = 控制文字位置和尺寸线位置
$DIMZIN70控制是否对主单位值做消零处理:0 = 消除零英尺和零英寸1 = 包含零英尺和零英寸2 = 包含零英尺,消除零英寸3 = 包含零英寸,消除零英尺4 = 消除十进制标注中的前导零8 = 消除十进制标注中的后续零12 = 消除前导零和后续零
$DISPSILH70控制“线框”模式下体对象轮廓曲线的显示:0 = 关闭1 = 打开
$DRAGVS349创建三维实体图元时,视觉样式的硬指针 ID。默认值为 NULL
$DWGCODEPAGE3图形代码页;创建新图形时设定为系统代码页,但不再由 AutoCAD 维护
$ELEVATION40由 ELEV 命令设定的当前标高
$ENDCAPS280新对象的线宽端点封口设置:0 = 无1 = 圆形2 = 角度3 = 方形
$EXTMAX10, 20, 30XYZ 图形范围右上角(在 WCS 中)
$EXTMIN10, 20, 30XYZ 图形范围左下角(在 WCS 中)
$EXTNAMES290控制符号表命名:0 = AutoCAD Release 14 兼容性。名称最多可以包含 31 个字符。其中可以包括字母 A 到 Z、数字 0 到 9 以及特殊字符,例如,美元符号 ($)、下划线 (_) 和连字符 (-)。1 = AutoCAD 2000。名称中最多可以包含 255 个字符,可以包含字母 A 到 Z,数字 0 到 9,空格以及未被 Microsoft Windows 和 AutoCAD用于其他目的的特殊字符
$FILLETRAD40圆角半径
$FILLMODE70非零时启用填充模式
$FINGERPRINTGUID2在创建时设定,用于唯一标识特定图形
$HALOGAP280指定在某一对象被另一对象隐藏处显示的间距;该值被指定为一种单位的百分数,并且不受缩放级别的影响。使用 HIDE 或 SHADEMODE 的 Hidden 选项时,在晕圈行的隐藏点处缩短晕圈行
$HANDSEED5下一个可用的句柄
$HIDETEXT290指定 HIDETEXT 系统变量:0 = 在生成隐藏视图时 HIDE 忽略文字对象1 = HIDE 不忽略文字对象
$HYPERLINKBASE1图形中所有相对超链接的路径。如果为空,则使用图形路径
$INDEXCTL280控制是否创建图层和空间索引并保存到图形文件中:0 = 不创建索引1 = 创建图层索引2 = 创建空间索引3 = 创建图层和空间索引
$INSBASE10, 20, 30由 BASE 命令设定的插入基点(在 WCS 中)
$INSUNITS70AutoCAD 设计中心块的默认图形单位: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 = 美制测量英里
$INTERFERECOLOR62表示在执行 INTERFERE 命令期间创建的“干涉对象”的 ACI 颜色索引。默认值为 1
$INTERFEREOBJVS345干涉对象的视觉样式的硬指针 ID。默认视觉样式为“概念”。
$INTERFEREVPVS346在检查干涉期间视口的视觉样式的硬指针 ID。默认视觉样式为“三维线框”。
$INTERSECTIONCOLOR70指定相交多段线的图元颜色:1 到 255 的值可以指定 AutoCAD 颜色索引 (ACI)0 = 颜色“BYBLOCK”256 = 颜色“BYLAYER”257 = 颜色“随图元”
$INTERSECTIONDISPLAY290指定相交多段线的显示:0 = 关闭相交多段线的显示1 = 打开相交多段线的显示
$JOINSTYLE280新对象的线宽接头设置:0 = 无1 = 圆形2 = 角度3 = 平面
$LIMCHECK70如果打开了界限检查则为非零值
$LIMMAX10, 20XY 图形界限右上角(在 WCS 中)
$LIMMIN10, 20XY 图形界限左下角(在 WCS 中)
$LTSCALE40全局线型比例
$LUNITS70坐标和距离的单位格式
$LUPREC70坐标和距离的单位精度
$LWDISPLAY290控制“模型”选项卡或“布局”选项卡中线宽的显示:0 = 不显示线宽1 = 显示线宽
$MAXACTVP70设定要重生成的视口的最大数目
$MEASUREMENT70设定图形单位:0 = 英制1 = 公制
$MENU1菜单文件名
$MIRRTEXT70非零时镜像文字
$OBSCOLOR70指定遮挡线的颜色。遮挡线是通过更改颜色和线型使其可见的隐藏线,并且仅在使用 HIDE 或 SHADEMODE 命令时才可见。仅当 OBSCUREDLTYPE 的值设定为非 0,打开它时,OBSCUREDCOLOR 设置才可见。0 和 256 = 图元颜色1-255 = AutoCAD 颜色索引 (ACI)
$OBSLTYPE280指定遮挡线的线型。与标准对象线型不同,暗显直线的线型不受缩放级别的影响。默认值,即 0 值,将关闭遮挡线的显示。线型值定义如下:0 = 关闭1 = 实线2 = 虚线3 = 点4 = 短划5 = 中划6 = 长划7 = 双短划8 = 双中划9 = 双长划10 = 中长划11 = 疏点
$ORTHOMODE70非零时启用正交模式
$PDMODE70点显示模式
$PDSIZE40点显示尺寸
$PELEVATION40当前图纸空间标高
$PEXTMAX10, 20, 30图纸空间的 XYZ 的最大范围
$PEXTMIN10, 20, 30图纸空间的 XYZ 的最小范围
$PINSBASE10, 20, 30图纸空间插入基点
$PLIMCHECK70非零时图纸空间中的界限检查
$PLIMMAX10, 20图纸空间中 XY 的最大界限
$PLIMMIN10, 20图纸空间中 XY 的最小界限
$PLINEGEN70控制是否围绕二维多段线的顶点生成线型图案:1 = 围绕多段线顶点生成连续的线型图案0 = 多段线的每一段都以虚线开始和结束
$PLINEWID40默认的多段线宽度
$PROJECTNAME1为当前图形指定工程名称。在原始路径中没有找到外部参照或图像时使用。此工程名称指向注册表中的一段,其中包含每个已定义工程名称的一个或多个搜索路径。工程名称及其搜索路径可以在“选项”对话框的“文件”选项卡中设置
$PROXYGRAPHICS70控制代理对象图像的保存
$PSLTSCALE70控制图纸空间的线型比例:1 = 无特殊线型比例0 = 视口比例缩放决定线型比例缩放
$PSTYLEMODE290指示当前图形处于“颜色相关打印样式”还是“命名打印样式”模式:0 = 使用当前图形中的命名打印样式表1 = 使用当前图形中的颜色相关打印样式表
$PSVPSCALE40新视口的视图比例因子:0 = 按图纸空间缩放>0 = 比例因子(正实数值)
$PUCSBASE2定义正交 UCS 设置(仅用于图纸空间)的原点和方向的 UCS 名称。
$PUCSNAME2当前图纸空间 UCS 名称
$PUCSORG10, 20, 30当前图纸空间 UCS 原点
$PUCSORGBACK10, 20, 30将 PUCSBASE 设定为 WORLD 并将图纸空间 UCS 改为 BACK 后成为新的 UCS 原点的点
$PUCSORGBOTTOM10, 20, 30将 PUCSBASE 设定为 WORLD 并将图纸空间 UCS 改为 BOTTOM 后成为新的 UCS 原点的点
$PUCSORGFRONT10, 20, 30将 PUCSBASE 设定为 WORLD 并将图纸空间 UCS 改为 FRONT 后成为新的 UCS 原点的点
$PUCSORGLEFT10, 20, 30将 PUCSBASE 设定为 WORLD 并将图纸空间 UCS 改为 LEFT 后成为新的 UCS 原点的点
$PUCSORGRIGHT10, 20, 30将 PUCSBASE 设定为 WORLD 并将图纸空间 UCS 改为 RIGHT 后成为新的 UCS 原点的点
$PUCSORGTOP10, 20, 30将 PUCSBASE 设定为 WORLD 并将图纸空间 UCS 改为 TOP 后成为新的 UCS 原点的点
$PUCSORTHOREF2如果图纸空间 UCS 为正交(PUCSORTHOVIEW 不等于 0),该名称即为与正交 UCS 相关的 UCS 的名称。如果为空,则 UCS 与 WORLD 相关
$PUCSORTHOVIEW70图纸空间 UCS 的正交视图类型:0 = UCS 为非正交视图1 = 俯视2 = 仰视3 = 前视4 = 后视5 = 左视6 = 右视
$PUCSXDIR10, 20, 30当前图纸空间的 UCS X
$PUCSYDIR10, 20, 30当前图纸空间的 UCS Y
$QTEXTMODE70非零时启用“快速文字”模式
$REGENMODE70非零时启用 REGENAUTO 模式
$SHADEDGE70控制边的着色:0 = 表面着色,边不突出显示1 = 表面着色,边突出显示为黑色2 = 表面不填充,边以图元的颜色绘制3 = 表面为图元颜色,边为黑色
$SHADEDIF70以百分比表示的环境光/漫射光;范围从 1 到 100;默认值为 70
$SHADOWPLANELOCATION40地面阴影平面的位置。这是 Z 轴坐标。
$SKETCHINC40徒手画记录增量
$SKPOLY70确定由 SKETCH 命令创建的对象类型:0 = 生成直线1 = 生成多段线2 = 生成样条曲线
$SORTENTS280控制对象的排序方式;可从通过“选项”对话框的“用户系统配置”选项卡访问。SORTENTS 使用下列位码值:0 = 禁用 SORTENTS1 = 为选择的对象排序2 = 为捕捉的对象排序4 = 为重画的图形排序;弃用8 = 为 MSLIDE 命令创建的幻灯片排序;弃用16 = 为 REGEN 命令排序32 = 为打印的对象排序64 = 为 PostScript 输出的对象排序;弃用
$SPLINESEGS70每个样条曲线曲面的直线段数目
$SPLINETYPE70PEDIT 样条曲线的样条曲线类型
$SURFTAB170在第一个方向上的网格平移数目
$SURFTAB270在第二个方向上的网格平移数目
$SURFTYPE70PEDIT 平滑的曲面类型
$SURFU70M 方向上的曲面密度(用于 PEDIT 平滑)
$SURFV70N 方向上的曲面密度(用于 PEDIT 平滑)
$TDCREATE40创建图形的本地日期/时间(参见“日期/时间变量的特殊处理”)
$TDINDWG40此图形的累计编辑时间(参见“日期/时间变量的特殊处理”)
$TDUCREATE40创建图形的通用日期/时间(参见“日期/时间变量的特殊处理”)
$TDUPDATE40上次更新图形的本地日期/时间(参见“日期/时间变量的特殊处理”)
$TDUSRTIMER40用户消耗时间计时器
$TDUUPDATE40上次更新/保存图形的通用日期/时间(参见“日期/时间变量的特殊处理”)
$TEXTSIZE40默认文字高度
$TEXTSTYLE7当前文字样式名
$THICKNESS40由 ELEV 命令设定的当前厚度
$TILEMODE701 表示以前版本的兼容模式;0 表示其他模式
$TRACEWID40默认宽线宽度
$TREEDEPTH70指定空间索引的最大深度
$UCSBASE2定义正交 UCS 设置的原点和方向的 UCS 名称
$UCSNAME2当前 UCS 的名称
$UCSORG10, 20, 30当前 UCS 的原点(在 WCS 中)
$UCSORGBACK10, 20, 30将 UCSBASE 设定为 WORLD 并将模型空间 UCS 改为 BACK 后成为新的 UCS 原点的点
$UCSORGBOTTOM10, 20, 30将 UCSBASE 设定为 WORLD 并将模型空间 UCS 改为 BOTTOM 后成为新的 UCS 原点的点
$UCSORGFRONT10, 20, 30将 UCSBASE 设定为 WORLD 并将模型空间 UCS 改为 FRONT 后成为新的 UCS 原点的点
$UCSORGLEFT10, 20, 30将 UCSBASE 设定为 WORLD 并将模型空间 UCS 改为 LEFT 后成为新的 UCS 原点的点
$UCSORGRIGHT10, 20, 30将 UCSBASE 设定为 WORLD 并将模型空间 UCS 改为 RIGHT 后成为新的 UCS 原点的点
$UCSORGTOP10, 20, 30将 UCSBASE 设定为 WORLD 并将模型空间 UCS 改为 TOP 后成为新的 UCS 原点的点
$UCSORTHOREF2如果模型空间 UCS 为正交(UCSORTHOVIEW 不等于 0),该名称即为与正交 UCS 相关的 UCS 的名称。如果为空,则 UCS 与 WORLD 相关
$UCSORTHOVIEW70模型空间 UCS 的正交视图类型:0 = UCS 为非正交视图1 = 俯视2 = 仰视3 = 前视4 = 后视5 = 左视6 = 右视
$UCSXDIR10, 20, 30当前 UCS X 轴的方向(在 WCS 中)
$UCSYDIR10, 20, 30当前 UCS Y 轴的方向(在 WCS 中)
$UNITMODE70低位集 = 按照输入的格式显示分数、英尺-英寸和勘测角度
$USERI1 - 570供第三方开发商使用的五个整数变量
$USERR1 - 540供第三方开发商使用的五个实数变量
$USRTIMER70控制图形的用户计时器:0 = 关闭计时器1 = 打开计时器
$VERSIONGUID2唯一标识图形的特定版本。修改图形时更新
$VISRETAIN70控制外部参照相关图层的特性:0 = 不保留依赖外部参照的可见性设置1 = 保留依赖外部参照的可见性设置
$WORLDVIEW70确定响应 DVIEW 和 VPOINT 命令的输入是相对于 WCS 还是当前 UCS 进行计算:0 = 不更改 UCS1 = 在 DVIEW/VPOINT 期间将 UCS 设定为 WCS
$XCLIPFRAME290控制外部参照剪裁边界的可见性:0 = 剪裁边界不可见1 = 剪裁边界可见
$XEDIT290控制当前图形被其他图形参照时是否可以在位编辑:0 = 无法使用在位参照编辑1 = 可以进行在位参照编辑
2.2 DXF CLASSES 段

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

CLASSES 段组码 (DXF)

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

CLASSES 段组码
组码说明
0记录类型 (CLASS)。标识 CLASS 记录的开始
1类 DXF 记录名;始终唯一
2C++ 类名。用于与定义对象类行为的软件绑定;始终唯一
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块可测量性
310DXF:位图预览的二进制数据(可选)
1001扩展数据应用程序名称“ACAD”(可选)
1000扩展数据字符串数据“设计中心数据”(可选)
1002扩展数据的开始“{”(可选)
1070AutoCAD 设计中心版本号
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 文件的程序对其进行设定)
3DIMPOST
4DIMAPOST
5DIMBLK(已废弃,现在为对象 ID)
6DIMBLK1(已废弃,现在为对象 ID)
7DIMBLK2(已废弃,现在为对象 ID)
40DIMSCALE
41DIMASZ
42DIMEXO
43DIMDLI
44DIMEXE
45DIMRND
46DIMDLE
47DIMTP
48DIMTM
140DIMTXT
141DIMCEN
142DIMTSZ
143DIMALTF
144DIMLFAC
145DIMTVP
146DIMTFAC
147DIMGAP
148DIMALTRND
71DIMTOL
72DIMLIM
73DIMTIH
74DIMTOH
75DIMSE1
76DIMSE2
77DIMTAD
78DIMZIN
79DIMAZIN
170DIMALT
171DIMALTD
172DIMTOFL
173DIMSAH
174DIMTIX
175DIMSOXD
176DIMCLRD
177DIMCLRE
178DIMCLRT
179DIMADEC
270DIMUNIT(已废弃,现在使用 DIMLUNIT 和 DIMFRAC)
271DIMDEC
272DIMTDEC
273DIMALTU
274DIMALTTD
275DIMAUNIT
276DIMFRAC
277DIMLUNIT
278DIMDSEP
279DIMTMOVE
280DIMJUST
281DIMSD1
282DIMSD2
283DIMTOLJ
284DIMTZIN
285DIMALTZ
286DIMALTTZ
287DIMFIT(已废弃,现在使用 DIMATFIT 和 DIMTMOVE)
288DIMUPT
289DIMATFIT
340DIMTXSTY(参照的 STYLE 的句柄)
341DIMLDRBLK(参照的 BLOCK 的句柄)
342DIMBLK(参照的 BLOCK 的句柄)
343DIMBLK1(参照的 BLOCK 的句柄)
344DIMBLK2(参照的 BLOCK 的句柄)
371DIMLWD(线宽枚举值)
372DIMLWE(线宽枚举值)
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线宽枚举值
390PlotStyleName 对象的硬指针 ID/句柄
347Material 对象的硬指针 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,则每个元素一个指针)
46S = 比例值(可选);可存在多个条目
50R = 嵌入的形或文字的相对旋转值(以弧度为单位),A = 嵌入的形或文字的绝对旋转值(以弧度为单位);如果代码 74 指定了嵌入的形或字符串,则每个元素一个
44X = X 偏移值(可选);可存在多个条目
45Y = 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)
2UCS 名称
70标准标记值(按位编码值):16 = 如果设定了此位,则表条目外部依赖于外部参照32 = 如果同时设定了此位和位 16,则表明已成功融入了外部依赖的外部参照64 = 如果设定了此位,则表明在上次编辑图形时,图形中至少有一个图元参照了表条目。(此标志对 AutoCAD 命令很有用。大多数读取 DXF 文件的程序都可以忽略它,并且无需由写入 DXF 文件的程序对其进行设定)
10原点(在 WCS 中)DXF:X 值;APP:三维点
20, 30DXF:原点的 Y 值和 Z 值(在 WCS 中)
11X 轴方向(在 WCS 中)DXF:X 值;APP:三维矢量
21, 31DXF:X 轴方向的 Y 值和 Z 值(在 WCS 中)
12Y 轴方向(在 WCS 中)DXF:X 值;APP:三维矢量
22, 32DXF: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, 33DXF:原点的 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:二维点
20DXF:视图中心点的 Y 值(在 DCS 中)
41视图宽度(在 DCS 中)
11来自目标的观察方向(在 WCS 中)DXF:X 值;APP:三维矢量
21, 31DXF:来自目标的观察方向的 Y 值和 Z 值(在 WCS 中)
12目标点(在 WCS 中)DXF:X 值;APP:三维点
22, 32DXF:目标点的 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/句柄(可选)
361Sun 硬所有权 ID

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

包含 UCS 组码的 VIEW
组码说明
110UCS 原点(仅当将代码 72 设定为 1 时才显示)DXF:X 值;APP:三维点
120, 130DXF:UCS 原点的 Y 值和 Z
111UCS X 轴(仅当将代码 72 设定为 1 时才显示)DXF:X 值;APP:三维矢量
121, 131DXF:UCS X 轴的 Y 值和 Z
112UCS Y 轴(仅当将代码 72 设定为 1 时才显示)DXF:X 值;APP:三维矢量
122, 132DXF:UCS Y 轴的 Y 值和 Z
79UCS 的正交类型(仅当将代码 72 设定为 1 时才显示):0 = UCS 为非正交视图1 = 俯视图;2 = 仰视图3 = 主视图;4 = 后视图5 = 左视图;6 = 右视图
146UCS 标高(仅当将代码 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:二维点
20DXF:视口左下角的 Y
11视口右上角DXF:X 值;APP:二维点
21DXF:视口右上角的 Y
12视口中心点(在 DCS 中)DXF:X 值;APP:二维点
22DXF:视图中心点的 Y 值(在 DCS 中)
13捕捉基点(在 DCS 中)DXF:X 值;APP:二维点
23DXF:捕捉基点的 Y 值(在 DCS 中)
14捕捉间距 XYDXF:X 值;APP:二维点
24DXF:捕捉间距 XYY
15栅格间距 XYDXF:X 值;APP:二维点
25DXF:栅格间距 X 和 Y 的 Y
16相对于目标点的观察方向(在 WCS 中)DXF:X 值;APP:三维点
26, 36DXF:相对于目标点的观察方向的 Y 值和 Z 值(在 WCS 中)
17观察目标点(在 WCS 中)DXF:X 值;APP:三维点
27, 37DXF:观察目标点的 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 系统变量)
74UCSICON 设置
110UCS 原点DXF:X 值;APP:三维点
120, 130DXF:UCS 原点的 Y 值和 Z
111UCS X 轴DXF:X 值;APP:三维矢量
121, 131DXF:UCS X 轴的 Y 值和 Z
112UCS Y 轴DXF:X 值;APP:三维矢量
122, 132DXF:UCS Y 轴的 Y 值和 Z
345如果 UCS 是命名 UCS,则为 AcDbUCSTableRecord 的 ID/句柄。如果不存在,则为未命名 UCS
346如果 UCS 为正交 UCS,则为基准 UCS 的 AcDbUCSTableRecord 的 ID/句柄(代码 79 非零)。如果不存在,且代码 79 非零,则将基准 UCS 作为 WORLD
79UCS 的正交类型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)

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

适用于所有符号表的组码
组码说明
-1APP:图元名(每次打开图形时都会发生变化)
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, 30DXF:基点的 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 输出时该值将被省略。

适用于所有图形对象的组码
组码说明如果忽略,则默认为…
-1APP:图元名(每次打开图形时都会发生变化)未省略
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
410APP:布局选项卡名未省略
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, 30DXF:点位置的 Y 值和 Z 值(在 WCS 中)
39厚度(可选;默认值 = 0)
210拉伸方向(可选;默认值 = 0, 0, 1)DXF:X 值;APP:三维矢量
220, 230DXF:拉伸方向的 Y 值和 Z 值(可选)
50绘制点时所使用的 UCS 的 X 轴的角度(可选;默认值 = 0);当 PDMODE 非零时使用
2.5.3 LINE (DXF)

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

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

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

POLYLINE 组码
组码说明
100子类标记(AcDb2dPolyline 或 AcDb3dPolyline)
66已废弃;以前是“后跟图元标志”(可选;如果存在则忽略)
10DXF:始终为 0APP:“虚拟”点;X 值和 Y 值始终为 0,Z 值是多段线的标高(二维时在 OCS 中,三维时在 WCS 中)
20DXF:始终为 0
30DXF:多段线的标高(二维时在 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, 230DXF:拉伸方向的 Y 值和 Z 值(可选)

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

2.5.5 ARC (DXF)

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

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

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

SPLINE 组码
组码说明
100子类标记 (AcDbSpline)
210法向矢量(如果样条曲线为非平面型,则省略)DXF:X 值;APP:三维矢量
220, 230DXF:法向矢量的 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, 32DXF:起点切向的 Y 值和 Z 值 — 可以省略(在 WCS 中)
13端点切向 — 可以省略(在 WCS 中)DXF:X 值;APP:三维点
23, 33DXF:端点切向的 Y 值和 Z 值 — 可以省略(在 WCS 中)
40节点值(每个节点一个条目)
41权值(如果不为 1);对于多组对,如果均不为 1,则出现。
10控制点(在 WCS 中);每个控制点一个条目DXF:X 值;APP:三维点
20, 30DXF:控制点的 Y 值和 Z 值(在 WCS 中);每个控制点一个条目
11拟合点(在 WCS 中);每个拟合点一个条目DXF:X 值;APP:三维点
21, 31DXF:拟合点的 Y 值和 Z 值(在 WCS 中);每个拟合点一个条目
2.5.7 TEXT (DXF)

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

TEXT 组码
组码说明
100子类标记 (AcDbText)
39厚度(可选;默认值 = 0)
10第一对齐点(在 OCS 中)DXF:X 值;APP:三维点
20, 30DXF:第一对齐点的 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, 31DXF:第二对齐点的 Y 值和 Z 值(在 OCS 中)(可选)
210拉伸方向(可选;默认值 = 0, 0, 1)DXF:X 值;APP:三维矢量
220, 230DXF:拉伸方向的 Y 值和 Z 值(可选)
100子类标记 (AcDbText)
73文字垂直对正类型(可选;默认值 = 0)整数代码(不是按位编码)0 = 基线对正1 = 底端对正2 = 居中对正3 = 顶端对正详细信息请参见组 72 和 73 整数代码表

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

组 72 和 73 整数代码
组 73组 72012345
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

  • 25
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陨星落云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值