LISP 圆孔标记_在AUTOCAD中如何用lisp语言新建一个标注样式

该博客介绍了如何利用LISP语言在AUTOCAD中新建一个特定的标注样式——TSSD_50_50-250,包括建立字体样式和箭头块。首先,它创建了一个名为_TSSDICK的块,然后定义了标注样式的各个参数,如箭头尺寸、文字高度和偏移量等。同时,还展示了如何创建名为TSSD_Dimension的文字样式,使用了tssdeng.shx和hztxt.shx字体文件。
摘要由CSDN通过智能技术生成

标注样式要先建立字体样式。62616964757a686964616fe78988e69d8331333337616533

如果箭头没有块的话,要建立块。

;;;主程序标注样式

(defun TextDim ()

(tssd2)

(if (null (tblsearch "DIMSTYLE" "TSSD_50_50-250"));1

(progn

(if (null (tblobjname "BLOCK" "_ARCHTICK"))

(progn

(entmake (list '(0 . "BLOCK") '(100 . "AcDbEntity") '(67 . 0) '(8 . "0") '(100 . "AcDbBlockBegin") '(70 . 0) '(10 0.0 0.0 0.0) '(2 . "_ARCHTICK") '(1 . "")))

(entmake (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(67 . 0) '(8 . "0") '(62 . 0) '(6 . "ByBlock") '(100 . "AcDbPolyline") '(90 . 2) '(43 . 0.15) '(10 -0.5 -0.5 0.0) '(10 0.5 0.5 0.0) '(210 0.0 0.0 1.0)))

(entmake (list '(0 . "ENDBLK")))

(entupd (tblobjname "Block" "_ARCHTICK"))

)

)

(entmake (list '(0 . "DIMSTYLE")

'(100 . "AcDbSymbolTableRecord")

'(100 . "AcDbDimStyleTableRecord")

'(70 . 0)

'(2 . "TSSD_50_50-250")   ; 标注样式名

'(3 . "")        ; 标注前缀

'(4 . "")

'(40 . 0.0)       ; 标注特征比例,缩放到布局

'(41 . 60)        ; 箭头尺寸

'(42 . 50)        ; 起点偏移量

'(43 . 0)         ; 基线间距

'(44 . 0)         ; 超出尺寸线

'(47 . 0.000)     ; 上偏差

'(48 . 0.000)     ; 下偏差

'(71 . 0)         ; 公差无

'(73 . 0)         ;设置对齐或水平的内部文字

'(74 . 0)         ;设置外部文字对齐或水平

'(77 . 2)         ; 文字在尺寸线外部

'(140 . 230)      ; 文字高度

'(141 . 0)        ; 圆心标记

'(142 . 0)        ;箭头斜线的大小

'(144 . 1.0)      ; 测量比例单位

'(146 . 0.5)      ; 公差高度比例

'(147 . 60)       ; 文字从尺寸线偏移

'(172 . 2)        ; 尺寸界线间连线

'(173 . 0)        ; 绘制箭头的用户定义块

'(174 . 4)        ; 限制文字在延伸线间

'(176 . 256)      ; 随层

'(177 . 256)      ; 随层

'(178 . 256)      ; 随层

'(271 . 0)        ; 尺寸标注精度

'(272 . 3)        ; 公差标注精度

'(275 . 0)        ; 角度标注制式,十进制。

'(280 . 0)        ;确定文字的水平位置

'(283 . 1)        ;DIMTOLJ 通用 设置公差文字的竖向位置

'(288 . 0)        ;手动放置尺寸

'(279 . 2)        ;文字移动;

(cons 340 (tblobjname "style" "TSSD_Dimension")) ; 文字样式名

(cons 342 (cdr (assoc 330 (entget (tblobjname "BLOCK" "_ARCHTICK")))));;;DIMBLK:

)

)

)

)

)

;建立TSSD_Dimension字体

(defun TSSD2 ( / newt)

(if (null (tblsearch "style" "TSSD_Dimension"))

(progn

(if (null vlax-dump-object) (vl-load-com) )

(setq newT (vla-add (vla-get-TextStyles (vla-get-activedocument (vlax-get-acad-object))) "TSSD_Dimension"))

(vla-put-fontfile newT "tssdeng.shx")

(vla-put-bigfontfile newT "hztxt.shx");大字体为hztxt

(vla-put-height newT 0);高度0

(vla-put-width newT 0.5);宽度因子0.6

(vla-put-obliqueAngle newT (/ (* pi 3) 180));倾斜角度3

)

)

);【注意:字体库里面必需有"tssdeng.shx""hztxt.shx"两个字体】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值