jt133 发表于 7 天前

entmake 创建标注样式

本帖最后由 jt133 于 2024-11-18 19:56 编辑

来明经学习好久了,发个学习贴也是处女贴。
依据大佬aws的“标注样式箭头的创建”这个贴
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=191018&highlight=%B1%EA%D7%A2%D1%F9%CA%BD
为蓝本,根据自己的需求来增减。感谢aws大佬,感谢明经的丰富宝藏。
(defun c:BZ(/ zgjt)
(vl-load-com)
(setvar "cmdecho" 0)
(setq zg (getdist "\n输入标注文字高度:"))
(setq jt (* zg 0.8))
(entmake (list
    '(0 . "STYLE")
    '(100 . "AcDbSymbolTableRecord")
    '(100 . "AcDbTextStyleTableRecord")
    '(2 . "标注")
    '(70 . 0)
    '(40 . 0)   
    '(41 . 0.8)
    '(50 . 0.0)
    '(71 . 0)
    '(42 . 2.5)
    '(3 . "txt.shx")
    '(4 . "gbcbig.shx")
      )
    )
;http://bbs.mjtd.com/forum.php?mod=viewthread&tid=191018&highlight=%B1%EA%D7%A2%D1%F9%CA%BD
;aws标注样式箭头的创建
   (entmake
    (list
      '(0 . "DIMSTYLE")
      '(100 . "AcDbSymbolTableRecord")
      '(100 . "AcDbDimStyleTableRecord")
      (cons 2 "我的标注");标注样式名
      '(176 . 1);尺寸线颜色
      '(46. 1);超出标记
      '(43. 5);基线间距
      '(281 . 0);线-尺寸线-隐藏:尺寸线1,0=显示,1=隐藏
      '(282 . 0);线-尺寸线-隐藏:尺寸线2,0=显示,1=隐藏
      '(177 . 1);尺寸界线颜色,界线
      '(44. 1);超出尺寸线
      '(42. 0);起点偏移量
      '(75. 0);线-延申线-隐藏:延伸线1,0=显示,1=隐藏
      '(76. 0);线-延申线-隐藏:延伸线2,0=显示,1=隐藏
      '(290 . 0);固定长度的延伸线,0=不勾选,1=勾选此项
      '(49. 1);固定长度的延伸线-长度
      '(5 . ".");符号和箭头-箭头-第一个,建筑标记="ArchTick",空心闭合="ClosedBlank",实心圆点="Dot"
      (cons 41 jt);符号和箭头-箭头-箭头大小
   ;'(41 . 15);符号和箭头-箭头-箭头大小
      '(141 . 2.5);符号和箭头-圆心标记,0=无,正数=标记,负数=直线
      (cons 340(tblobjname "style" "标注"));文字-文字外观-文字样式
      ;(cons 340(tblobjname "style" "Standard"));文字-文字外观-文字样式
      '(178 . 256);文字-文字外观-文字颜色,256=ByLayer,0=ByBlock,7=白色……
      '(69. 0);文字-文字外观-填充颜色类型,0=不填充,1=背景色,2=使用颜色编号
      '(70. 0);文字-文字外观-填充颜色,256=ByLayer,0=ByBlock,1红2黄……使用颜色编号时此项必备
       (cons 140zg);文字-文字外观-文字高度
      ;'(140 . 16);文字-文字外观-文字高度
      '(77. 0);文字-文字位置-垂直:1=上,0=居中,4=下……
      '(280 . 0);文字-文字位置-水平:0=居中,1=第一条延伸线……
      '(147 . 2);文字-文字位置-从尺寸线偏移,填入负数时,“绘制文字边框”项会被勾选
      '(73. 0);文字-文字对齐:水平=1,与尺寸线对齐=0,ISO标准=0
      '(74. 0);文字-文字对齐:水平=1,与尺寸线对齐=0,ISO标准=1
      '(174 . 0);调整-调整选项:文字始终在延伸线之间=1,文字=0,箭头=0,文字和箭头=0,文字或箭头=0
      '(289 . 0);调整-调整选项:文字始终在延伸线之间=2,文字=2,箭头=1,文字和箭头=0,文字或箭头=此项消失
      '(175 . 0);调整-调整选项-若箭头不能放在延伸线内则将其消除,不勾选=0,勾选=1
      '(279 . 0);调整-文字位置:尺寸线上方不带引线=2,尺寸线上方带引线=1,尺寸线旁边=0
      '(40. 0);调整-标注特征比例:将标注缩放到布局=0,使用全局比例>0,
      '(288 . 0);调整-优化:手动放置文字,不勾选=0,勾选=1
      '(172 . 0);调整-优化:在延伸线之间绘制尺寸线,不勾选=0,勾选=1
      '(270 . 2);主单位-线性标注-单位格式:科学=1,小数=2,工程=3……
      '(271 . 2);主单位-线性标注-精度:0=0,0.0=1,0.00=2…
      '(271 . 2);主单位-线性标注-精度:0=0,0.0=1,0.00=2…(不是我重复,组码表就是列出了2个)
      '(272 . 2);主单位-线性标注-精度:0=0,0.0=1,0.00=2…
      '(144 . 1);主单位-线性标注-测量单位比例
      '(78. 8);主单位-线性标注-消零:后续,勾选=8
      '(275 . 0);主单位-角度标注-单位格式:十进制=0
      '(79. 2);主单位-角度标注-消零:后续,勾选=2
    )
)
(vl-cmdf "_.dimstyle" "r" "我的标注");将标注样式置为当前
(setvar "DIMSAH" 0);控制尺寸线箭头块的显示。0表示使用由 DIMBLK 系统变量设置的箭头块,1表示使用由 DIMBLK1 和 DIMBLK2 系统变量设置的箭头块
(setvar "DIMBLK" ".");实心箭头
(setvar 'dimtxt zg)
(setvar 'dimasz jt)
(vl-cmdf "_.dimstyle" "s" "我的标注" "y");另存为
(setvar "cmdecho" 1)
(princ "\n★标注创建完毕!")
(princ)
)

jt133 发表于 6 天前

本帖最后由 jt133 于 2024-11-23 16:00 编辑

paulpipi 发表于 2024-11-18 23:24
感谢分享,标注文字改成宋体怎么改
只须在这段上改就行了,就是组码3改为宋体,4是大字体就用不到了


前期组码3为宋体不准确,虽然能用。但打开标注样式管理器后,字体名上有个黄色感叹号,看着不舒服。应该为"宋体.ttf"
特更正一下,具体参照陈伟的帖子
用entmake如何设置字体呢? - AutoLISP/Visual LISP 编程技术 - AutoCAD论坛 - 明经CAD社区 - Powered by Discuz! (mjtd.com)
(entmake (list
    '(0 . "STYLE")
    '(100 . "AcDbSymbolTableRecord")
    '(100 . "AcDbTextStyleTableRecord")
    '(2 . "标注")
    '(70 . 0)
    '(40 . 0)   
    '(41 . 0.7)
    '(50 . 0.0)
    '(71 . 0)
    '(42 . 2.5)
    '(3 . "宋体.ttf")
    ;'(4 . "gbcbig.shx")
      )
    )



jt133 发表于 5 天前

本帖最后由 jt133 于 2024-11-20 19:13 编辑

梨子·桃 发表于 2024-11-20 18:28
哇,好用,要是有换算单位的组码就更加好了,方便检查缩水量
换算单位组码是270,由于日常基本用不到所以没有深入研究

看看这里,资料比较全
标注样式组码,entmake创建标注样式,应该是目前最全的 - AutoLISP/Visual LISP 编程技术 - AutoCAD论坛 - 明经CAD社区 - Powered by Discuz! (mjtd.com)
'(270 . 2);线性标注-单位格式:科学=1,小数=2,工程=3……

梨子·桃 发表于 4 天前

jt133 发表于 2024-11-20 18:53
换算单位组码是270,由于日常基本用不到所以没有深入研究

看看这里,资料比较全


非常感谢,有空我看看

paulpipi 发表于 7 天前

感谢分享,标注文字改成宋体怎么改

如果当时0809 发表于 6 天前

mark一下,比用command适应性好

paulpipi 发表于 6 天前

感谢分享,挺方便的

decemc 发表于 6 天前

正好在你工作画个,学习下

jt133 发表于 6 天前

如果当时0809 发表于 2024-11-19 11:27
mark一下,比用command适应性好

能不能提供个例子学习下{:1_1:}

ma344578245 发表于 6 天前

学习学习,赞一个 感谢

chslwj521 发表于 6 天前

这个可以,很好,赞赞

梨子·桃 发表于 5 天前

哇,好用,要是有换算单位的组码就更加好了,方便检查缩水量
页: [1] 2
查看完整版本: entmake 创建标注样式