kite15 发表于 2022-7-5 18:29:27

Autolisp到转换Pline t

我有一些用Leader替换的PLINE,不需要附加文本或多行文字。如何将PLINE仅转换为引线?
如果提取每个Pline顶点的xyz值并相应地绘制引线,则会发生这种情况。这里有一件事,引导头将绘制在Pline的较长一侧,较短的将绘制引导尾。这可能吗?
请帮忙:哭:

Tharwat 发表于 2022-7-5 18:41:21

欢迎来到CADTutor。
 
确保您的Qleader设置的点数等于3

(defun c:Test (/ e o ss i sn l p)
;;    Tharwat 17.10.2015    ;;
(if (setq e(entlast)
         ss (ssget "_:L" '((0 . "LWPOLYLINE") (-4 . "=") (90 . 3)))
   )
   (repeat (setq i (sslength ss))
   (setq sn (ssname ss (setq i (1- i)))
         l(mapcar
                'cdr
                (vl-remove-if-not '(lambda (p) (eq (car p) 10)) (entget sn))
            )
   )
   (if (> (distance (car l) (cadr l))
            (distance (caddr l) (cadr l))
         )
       (setq p l)
       (setq p (reverse l))
   )
   (command "_.qleader"
            "_none"
            (car p)
            "_none"
            (cadr p)
            "_none"
            (caddr p)
            ""
            ""
   )
   (if (not (eq e (setq o (entlast))))
       (progn
         (entdel sn)
         (setq e o)
       )
   )
   )
)
(princ)
)

kite15 发表于 2022-7-5 18:47:14

工作完美,
这正是我所期望的。
 
我真的很感谢你的帮助。
 
你太棒了!
 
谢谢!!:大声笑:

Tharwat 发表于 2022-7-5 18:53:50

 
非常欢迎你。

danglar 发表于 2022-7-5 18:58:57

嗨Tharwat!
它工作得很好,但我的问题是-是否可以更改您的程序,以使箭头标志在领导的右侧(我的意思是-以“敬畏”领导)。
谢谢你的努力!

Tharwat 发表于 2022-7-5 19:06:10

嗨,丹格拉,
 
如果你只是想改变程序的工作方式,只需替换以下内容,否则你需要给出一个示例或更多细节。
 

(setq p (reverse l))
(setq p l)

danglar 发表于 2022-7-5 19:14:01

嗨Tharwat!
现在它工作得更好了,但是如果你有一堆pline,你需要在转换过程中转换成qleaders,你必须多次按下“回车”键才能禁用多行文字。为了在qleader automaticaly中禁用多行文字,我在您的程序中做了一些改进,但我需要您对这些改进进行修改。您可以在附件中看到代码:
多段线到引线-P2L。lsp

Tharwat 发表于 2022-7-5 19:21:21

我的程序不是通用程序,它只是在当前qleader上进行您想要的设置,然后使用该程序。
 
但是,如果你想用同一个程序进行设置,这取决于你,我以前确实没有玩过Qleader设置的字典。

danglar 发表于 2022-7-5 19:23:11

谢谢你的合作塔尔瓦!祝您有个美好的一天!

danglar 发表于 2022-7-5 19:33:26

对其进行了一些修饰:(dubble命令和echo已禁用)
多段线到引线-P2L。lsp
页: [1]
查看完整版本: Autolisp到转换Pline t