请问怎么把多行文字下面的线自动裁剪并和文字对齐
横线是多段线,想让横线的长度和文字相匹配求出多行文字的真实包围盒,就知道需要多长的长度了 我也在研究这个,我一直想用动态块来解决,可没有找到解决办法。 本帖最后由 xyp1964 于 2022-2-3 21:53 编辑
;; 下划线 ;; (xhx (setq s1(car(entsel"\n选择: "))) 100 60)
;; (xhx ename文本实体 dd字线距离 ww线宽)
(defun xhx (ename dd ww / p1 p2 p9 ptn)
(defun 9pt19 (ent / p1 p9)
(vla-getboundingbox (vlax-ename->vla-object ent) 'p1 'p9)
(mapcar 'vlax-safearray->list (list p1 p9))
)
(setq ptn (9pt19 ename)
p1(car ptn)
p9(cadr ptn)
p2(list (car p9) (cadr p1))
p1(polar p1 (* pi 1.5) dd)
p2(polar p2 (* pi 1.5) dd)
)
(command "pline" "non" p1 "w" ww ww "non" p2 "")
(entlast)
)
xyp1964 发表于 2022-2-3 21:50
还需要加载你的函数? qazxswk 发表于 2022-2-8 15:49
还需要加载你的函数?
不需要添加其他函数 xyp1964 发表于 2022-2-3 21:50
问下这个可以拖拽使用,但是怎样改成用命令执行代码 iszc 发表于 2022-2-11 09:09
问下这个可以拖拽使用,但是怎样改成用命令执行代码
(defun c:11 (/ s1)
(xhx (setq s1(car(entsel "\n选择: "))) 100 60)
)(princ)
;(xhx ename文本实体 dd字线距离 ww线宽)
(defun xhx (ename dd ww / p1 p2 p9 ptn)
(defun 9pt19 (ent / p1 p9)
(vla-getboundingbox (vlax-ename->vla-object ent) 'p1 'p9)
(mapcar 'vlax-safearray->list (list p1 p9))
)
(setq ptn (9pt19 ename)
p1(car ptn)
p9(cadr ptn)
p2(list (car p9) (cadr p1))
p1(polar p1 (* pi 1.5) dd)
p2(polar p2 (* pi 1.5) dd)
)
(command "pline" "non" p1 "w" ww ww "non" p2 "")
(entlast)
)
页:
[1]