明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 783|回复: 17

[提问] 引线如何可以批量变垂直

[复制链接]
发表于 2021-1-27 01:19 | 显示全部楼层 |阅读模式
2明经币
本帖最后由 magicheno 于 2021-1-29 15:55 编辑

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






最佳答案

查看完整内容

(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) ...
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2021-1-27 01:19 | 显示全部楼层
(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
)
回复

使用道具 举报

 楼主| 发表于 2021-1-29 15:00 | 显示全部楼层
本帖最后由 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")好像还是不行额,这个可以以圆的那点为基点,然后包括文字线段一起偏过来么,文字是单行文字的,这样子可以实现么

点评

很难实现  发表于 2021-1-29 18:27
回复

使用道具 举报

 楼主| 发表于 2021-1-29 19:57 | 显示全部楼层
start4444 发表于 2021-1-27 01:19
(defun c:tt5 (/ en entdate i p1 p2 ptlst ss);引线端线调成垂直
  (setq ss (ssget '((0 . "LEADER")))) ...


大侠如果是这个效果可以实现吗,下面的短的线延长到距离文字左边对齐点50mm的距离
回复

使用道具 举报

发表于 2024-6-5 10:58 | 显示全部楼层
start4444 发表于 2021-1-27 01:19
(defun c:tt5 (/ en entdate i p1 p2 ptlst ss);引线端线调成垂直
  (setq ss (ssget '((0 . "LEADER")))) ...

感谢分享,谢谢大佬
回复

使用道具 举报

发表于 2024-6-6 11:02 | 显示全部楼层
start4444 发表于 2021-1-27 01:19
(defun c:tt5 (/ en entdate i p1 p2 ptlst ss);引线端线调成垂直
  (setq ss (ssget '((0 . "LEADER")))) ...

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

点评

上个示意图看看  发表于 2024-6-7 10:58
回复

使用道具 举报

发表于 2024-6-6 21:34 | 显示全部楼层
我的围观的
回复

使用道具 举报

发表于 2024-6-7 08:05 | 显示全部楼层
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 10:59
回复

使用道具 举报

发表于 2024-6-9 00:05 | 显示全部楼层
白山茶 发表于 2024-6-7 08:05
请问可以以引线端为基点,成90度吗

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

使用道具 举报

发表于 2024-6-10 22:27 | 显示全部楼层
白山茶 发表于 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
)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-6-14 22:06 , Processed in 2.514557 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表