删除/擦除多段I的部分
大家好,有没有一种方法可以用lisp以最短的方式删除或删除多段线的一部分,如附图所示。。您可以使用TRIM命令删除线段。 谢谢你,LM。修剪命令在左边的图中效果很好,但右边的图不会擦除,只会修剪部分。
右图是具有两个顶点的多段线。这是否可能使lisp例程,如果选择两个顶点的多段线,它将删除,合并到修剪。
上图只是我工作的一部分,有时许多多段线相互交叉,仅使用TRIM命令无法解决我的问题。
谢谢你的帮助! 试试这个:
(defun c:Test(/ s o a b c)
;;; Tharwat 27.4.2015 ;;;
(if
(and (setq s (entsel "\n Select a Polyline to trim segment :"))
(wcmatch (cdr (assoc 0 (entget (setq o (car s))))) "*POLYLINE")
)
(cond ((= (cdr (assoc 90 (entget o))) 2) (entdel o))
(t
(setq a (fix (vlax-curve-getparamatpointo(vlax-curve-getclosestpointto o (cadr s))))
b (vlax-curve-getpointatparam o a)
c (vlax-curve-getpointatparam o (1+ a))
)
(command "_.Break" o "_none" b "_none" c "")
)
)
)
(princ)
)
太棒了!!塔尔瓦特。
这对我帮助很大。。一次只能使用命令,您可以使其继续,直到退出,或者选择多个,然后修剪/擦除选定的段。
谢谢Tharwat!!它解决了我的问题。。哈哈哈。。
很好,很高兴听到
不,您不能在此任务中使用多项选择,但如果您希望在按下enter键之前保持程序运行,只需将if函数替换为while。
除非您没有办法,否则不要对任何命令使用“退出”按钮,所以按enter键可以避免错误消息并安全地退出命令(通常)。
祝你好运 谢谢你的建议和你的时间这段代码,它节省了我很多时间。
棒 极 了一切都很好。
谢谢Tharwat!
随时欢迎你。 你好,塔尔瓦特。
当我带着这个Lisp程序在BCS时,我会有问题。
在那里,它不起作用。你能再看一眼吗?这里可能缺少什么?
马丁
嗨,马丁,很高兴看到你再次发帖
是的,我想这个程序只适用于WCS。你能上传一张样品图让我用那个系统试试吗?
页:
[1]
2