gx627410095 发表于 2022-1-4 15:29:12

请问怎么把多行文字下面的线自动裁剪并和文字对齐

横线是多段线,想让横线的长度和文字相匹配

烟盒迷唇 发表于 2022-1-30 13:12:36

求出多行文字的真实包围盒,就知道需要多长的长度了

qazxswk 发表于 2022-1-30 17:42:31

我也在研究这个,我一直想用动态块来解决,可没有找到解决办法。

xyp1964 发表于 2022-2-3 21:50:28

本帖最后由 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)
)




qazxswk 发表于 2022-2-8 15:49:06

xyp1964 发表于 2022-2-3 21:50


还需要加载你的函数?

xyp1964 发表于 2022-2-10 21:00:57

qazxswk 发表于 2022-2-8 15:49
还需要加载你的函数?

不需要添加其他函数

iszc 发表于 2022-2-11 09:09:22

xyp1964 发表于 2022-2-3 21:50


问下这个可以拖拽使用,但是怎样改成用命令执行代码

qazxswk 发表于 2022-3-20 01:14:41

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]
查看完整版本: 请问怎么把多行文字下面的线自动裁剪并和文字对齐