引线如何可以批量变垂直
本帖最后由 magicheno 于 2021-1-29 15:55 编辑请教下大佬们,如下图片,下方的情况可以用程序直接实现上面这样的效果么,内容很多一直ST拉伸是在太浪费时间了
http://i1.fuimg.com/732699/50e38bc552631399.png
(defun c:tt5 (/ en entdate i p1 p2 ptlst ss);引线端线调成垂直
(setq ss (ssget '((0 . "LEADER"))))
(setq i -1)
(while (setq en (ssname ss (setq i (1+ i))))
(setq entdate (entget en) ptlst (reverse (Dptlst en)) p1 (car ptlst) p2 (cadr ptlst))
(entmod (setq entdate (subst (cons 10 (list (car p2) (cadr p1))) (cons 10 p1) entdate )))
);while
(princ)
)
(defun Dptlst (enn / ent lst)
(setq ent (entget enn))
(setq lst (list))
(foreach x ent (if (= (car x) 10) (setq lst (cons (cdr x) lst))))
lst
) 本帖最后由 magicheno 于 2021-1-29 15:23 编辑
start4444 发表于 2021-1-29 13:51
(defun c:tt5 (/ en entdate i p1 p2 ptlst ss);引线端线调成垂直
(setq ss (ssget '((0 . "LEADER")))) ...
感谢大侠又来帮助了,有点抱歉的,我没表达清楚饿,哦们的那段引线其实是0宽度的多段线的,不是CAD自带le的那个引线的,我试着按(0 . "POLYLINE")好像还是不行额,这个可以以圆的那点为基点,然后包括文字线段一起偏过来么,文字是单行文字的,这样子可以实现么 start4444 发表于 2021-1-27 01:19
(defun c:tt5 (/ en entdate i p1 p2 ptlst ss);引线端线调成垂直
(setq ss (ssget '((0 . "LEADER")))) ...
http://i1.fuimg.com/732699/8a0d92746df87820.png
大侠如果是这个效果可以实现吗,下面的短的线延长到距离文字左边对齐点50mm的距离 start4444 发表于 2021-1-27 01:19
(defun c:tt5 (/ en entdate i p1 p2 ptlst ss);引线端线调成垂直
(setq ss (ssget '((0 . "LEADER")))) ...
感谢分享,谢谢大佬 start4444 发表于 2021-1-27 01:19
(defun c:tt5 (/ en entdate i p1 p2 ptlst ss);引线端线调成垂直
(setq ss (ssget '((0 . "LEADER")))) ...
能帮忙把引线调成45度, 短线保持水平嘛? 我的围观的:lol start4444 发表于 2021-1-27 01:19
(defun c:tt5 (/ en entdate i p1 p2 ptlst ss);引线端线调成垂直
(setq ss (ssget '((0 . "LEADER")))) ...
请问可以以引线端为基点,成90度吗 白山茶 发表于 2024-6-7 08:05
请问可以以引线端为基点,成90度吗
也是您这个程序的结果一样,是90度,但您这个是移动了引线端,就是箭头端来实现90度,可不可以实现不移动箭头端来成90度呢 白山茶 发表于 2024-6-9 00:05
也是您这个程序的结果一样,是90度,但您这个是移动了引线端,就是箭头端来实现90度,可不可以实现不移动 ...
(defun c:tt5 (/ en entdate i p1 p2 ptlst ss);引线端线调成垂直
(setq ss (ssget '((0 . "LEADER"))))
(setq i -1)
(while (setq en (ssname ss (setq i (1+ i))))
(setq entdate (entget en) ptlst (reverse (Dptlst en)) p1 (car ptlst) p2 (cadr ptlst))
(entmod (setq entdate (subst (cons 10 (list (car p1) (cadr p2))) (cons 10 p2) entdate )))
);while
(princ)
)
(defun Dptlst (enn / ent lst)
(setq ent (entget enn))
(setq lst (list))
(foreach x ent (if (= (car x) 10) (setq lst (cons (cdr x) lst))))
lst
)
页:
[1]
2