AutoCAD AutoLISP entmake函数如何深度解析创建标注样式(DIMSTYLE)的详细过程?

摘要:前言 在 AutoCAD 二次开发中,entmake 函数相比 command 命令具有三大核心优势: 高效性:直接操作图形数据库,避免交互式命令延迟 稳定性:消除命令行参数解析导致的不可控错误 精确性:支持完整 DXF 组码配置,实现像素
前言 在 AutoCAD 二次开发中,entmake 函数相比 command 命令具有三大核心优势: 高效性:直接操作图形数据库,避免交互式命令延迟 稳定性:消除命令行参数解析导致的不可控错误 精确性:支持完整 DXF 组码配置,实现像素级样式控制 本文深度解析使用 entmake 创建标注样式的关键技术细节,包含: 必须组码的最小集合与完整参数模板 未文档化组码(49/50/69 等)的实战应用 箭头样式等特殊参数的解决方案 全量 DXF 组码对照表(含类型/默认值/LISP 适配说明) 阅读本文后,您将能够: 通过代码批量生成符合企业标准的标注样式 精准修改现有标注参数配置 开发自动化标注工具插件 规避官方文档未说明的兼容性问题 基于 AutoCAD 2023/2025 实测数据,适用于需要高效定制 CAD 标注系统的开发者。 entmake 创建标注样式所需的最小组码列表 经测试必须包含以下组码,才能成功创建标注样式(未指定的组码均为默认值): (entmake (list (cons 0 "DIMSTYLE") ; 图元类型 (cons 100 "AcDbSymbolTableRecord") ; 子类标记 (cons 100 "AcDbDimStyleTableRecord") ; 子类标记 (cons 2 "my-style") ; 标注样式名称 (cons 70 0) ; 标准标记值(必须项) ) ) (*测试环境:AutoCAD 2023/2025) 实际创建标注样式时,可根据需要自行增加配置项。 包含全部 DXF 组码的代码示例 (entmake (list (cons 0 "DIMSTYLE") ; 图元类型 (cons 100 "AcDbSymbolTableRecord") ; 子类标记 (cons 100 "AcDbDimStyleTableRecord") ; 子类标记 (cons 2 "my-style") ; 标注样式名称 (cons 70 0) ; 标准标记值(必须项,和下文文字背景颜色的组码数字相同,功能不同) ;; ------------------------------- ;; DXF帮助中展示的组码,和对应的系统变量 ;; ------------------------------- (cons 3 "") ; DIMPOST—为标注测量值指定文字前缀或后缀(或两者)。 (cons 4 "") ; DIMAPOST—指定用于所有标注类型(角度标注除外)的换算标注测量值的文字前缀或后缀(或两者都指定)。 ;; (cons 5 "") ; DIMBLK—【已废弃】现在为对象 ID ;; (cons 6 "") ; DIMBLK1—【已废弃】现在为对象 ID ;; (cons 7 "") ; DIMBLK2—【已废弃】现在为对象 ID (cons 40 1) ; DIMSCALE—设置应用于标注变量(用于指定尺寸、距离或偏移量)的全局比例因子。 (cons 41 60) ; DIMASZ—控制尺寸线和引线箭头的大小。并控制基线的大小。 (cons 42 0) ; DIMEXO—指定尺寸界线偏离原点的距离。 (cons 43 200) ; DIMDLI—控制基线标注中尺寸线的间距。 (cons 44 40) ; DIMEXE—指定尺寸界线超出尺寸线的距离。 (cons 45 0) ; DIMRND—将所有标注距离舍入为指定值。 (cons 46 0) ; DIMDLE—当使用小斜线代替箭头进行标注时,设置尺寸线超出尺寸界线的距离。 (cons 47 0) ; DIMTP—为标注文字设置最大(即最高)公差限制(当 DIMTOL 或 DIMLIM 设定为开时)。 (cons 48 0) ; DIMTM—为标注文字设置最小(即最低)公差限制(当 DIMTOL 或 DIMLIM 设定为开时)。 (cons 140 70) ; DIMTXT—指定标注文字的高度(除非当前文字样式具有固定的高度)。 (cons 141 0.09) ; DIMCEN—通过 DIMCENTER、DIMDIAMETER 和 DIMRADIUS 命令控制圆或圆弧圆心标记以及中心线的绘制。 (cons 142 0) ; DIMTSZ—指定线性标注、半径标注以及直径标注中绘制的代替箭头的小斜线的尺寸。
阅读全文