magicheno 发表于 2021-1-27 01:19:58

引线如何可以批量变垂直

本帖最后由 magicheno 于 2021-1-29 15:55 编辑

请教下大佬们,如下图片,下方的情况可以用程序直接实现上面这样的效果么,内容很多一直ST拉伸是在太浪费时间了





http://i1.fuimg.com/732699/50e38bc552631399.png

start4444 发表于 2021-1-27 01:19:59

(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:00:48

本帖最后由 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")好像还是不行额,这个可以以圆的那点为基点,然后包括文字线段一起偏过来么,文字是单行文字的,这样子可以实现么

magicheno 发表于 2021-1-29 19:57:52

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的距离

Qwer1243 发表于 2024-6-5 10:58:31

start4444 发表于 2021-1-27 01:19
(defun c:tt5 (/ en entdate i p1 p2 ptlst ss);引线端线调成垂直
(setq ss (ssget '((0 . "LEADER")))) ...

感谢分享,谢谢大佬

juliana207 发表于 2024-6-6 11:02:18

start4444 发表于 2021-1-27 01:19
(defun c:tt5 (/ en entdate i p1 p2 ptlst ss);引线端线调成垂直
(setq ss (ssget '((0 . "LEADER")))) ...

能帮忙把引线调成45度, 短线保持水平嘛?

迷失1786 发表于 2024-6-6 21:34:32

我的围观的:lol

白山茶 发表于 2024-6-7 08:05:02

start4444 发表于 2021-1-27 01:19
(defun c:tt5 (/ en entdate i p1 p2 ptlst ss);引线端线调成垂直
(setq ss (ssget '((0 . "LEADER")))) ...

请问可以以引线端为基点,成90度吗

白山茶 发表于 2024-6-9 00:05:11

白山茶 发表于 2024-6-7 08:05
请问可以以引线端为基点,成90度吗

也是您这个程序的结果一样,是90度,但您这个是移动了引线端,就是箭头端来实现90度,可不可以实现不移动箭头端来成90度呢

start4444 发表于 2024-6-10 22:27:42

白山茶 发表于 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
查看完整版本: 引线如何可以批量变垂直