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 于 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 于 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……
jt133 发表于 2024-11-20 18:53
换算单位组码是270,由于日常基本用不到所以没有深入研究
看看这里,资料比较全
非常感谢,有空我看看 感谢分享,标注文字改成宋体怎么改 mark一下,比用command适应性好 感谢分享,挺方便的 正好在你工作画个,学习下 如果当时0809 发表于 2024-11-19 11:27
mark一下,比用command适应性好
能不能提供个例子学习下{:1_1:} 学习学习,赞一个 感谢 这个可以,很好,赞赞 哇,好用,要是有换算单位的组码就更加好了,方便检查缩水量
页:
[1]
2