所有线路到一条线路
你好我在这个令人惊叹的论坛中发现了这个lisp:JOIN-LINES-J.LSP
我需要完成这个lisp,因为这个lisp没有将线与普林线连接起来,所以我必须将所有普林线分解为线,然后我可以使用这个lisp,所以我需要在这个lisp中添加这个“分解”动作。请帮忙!
线不能分解,尽管普林斯可以。但是,可以使用Pedit命令将线“连接”到PLINE,反之亦然。 我知道这个命令,但这是一个长期的行动。。我需要选择所有行并键入lisp。。只需两步。。 如果可以使用Pedit将直线连接到多段线,并将多段线连接到直线,那么除非存在块,否则需要分解什么? 看这张照片。。我有一条线。。我需要一个pline(使用pedit命令。对我来说“播放”太长了)。。我想选择所有的线(线和普林斯在一起。我不在乎)键入lisp命令并完成它。只需两个步骤。。我添加了Lisp程序。。这个可以做到这一点,但只是用线条。。如果我想使用添加的lisp(试试看),我必须有所有的行。。所以我必须将多行分解成多行,然后我可以使用这个lisp ant将所有行连接到一个多行。。我觉得现在更清楚了。。我对我的英语很抱歉 我的显示器有问题,所以我看不懂你发布的图像。如果你说的是真的,那么我想原来的lisp例程使用“fillet”命令使线在更改为pline并连接之前相交。是这样吗? 不需要引爆任何东西。如果端点相距在0.01个单位内,则会将其连接起来
(defun c:pj ()
(setq pa (getvar "peditaccept"))
(setvar "peditaccept" 1)
(setq ssj (ssget ))
(command "pedit" "m" ssj """j" "0.01" "")
(setvar "peditaccept" pa)
(princ)
)
此代码将连接选定的线以创建一条pline。但是,它不适用于三维多边形。
(defun c:jn ()
(setvar "cmdecho" 0)
(setq lines (ssget (list (cons 0 "LINE,ARC,LWPOLYLINE,POLYLINE")))) ;POLYLINE added 300910 - will crash with 3D POLYLINES
(if lines
(progn
(while (> (sslength lines) 0)
(if (= (cdr (assoc 0 (entget (ssname lines 0)))) "LWPOLYLINE")
(progn
(command "pedit" (ssname lines 0) "j" lines "" "X")
(ssdel (ssname lines 0) lines)
)
(command "pedit" (ssname lines 0) "y" "j" lines "" "X")
)
(setq lines2 (ssadd))
(setq cnt 0 len (sslength lines))
(while (< cnt len)
(if (entget (ssname lines cnt))
(setq lines2 (ssadd (ssname lines cnt) lines2))
)
(setq cnt (1+ cnt))
)
(setq lines lines2)
)
(princ "\n......Tada!!")
)
(princ "\n....Doh!!")
)
(setvar "cmdecho" 1)
(princ)
)
Demesne和lpseifert,谢谢你们。。这是工作!! 在图中,只需圆角,然后直线和多段线将连接为一条多段线。
页:
[1]
2