需要选择lisp例程
你好我想从闭合多段线区域内选择的图层中选择对象。但最重要的是;我也要选择闭合多段线区域。
例如
首先,这是一个简单的绘图,包括简单的矩形。但逻辑是一样的。当然,我在工作中面临着更复杂的任务。这可以是一个矩形或圆形,甚至可能是一个无形的形状,但每次都会有一个闭合的多段线。我想选择1号区域内的所有红色矩形(或层名称)。如何使用lisp例程实现这一点。
感谢所有的帮助
https://image.prntscr.com/image/tEoB3WcpT0KC187AFqrjbg.png
感谢所有的帮助 又快又脏
(defun c:selobjs ( / ln enx l )
(if
(and
(setq ln (cdr (assoc 8 (entget (car (entsel "\nSelect object for source layer: "))))))
(setq enx (entget (car (entsel "\nSelect pline: "))))
(wcmatch (cdr (assoc 0 enx)) "*POLYLINE")
)
(progn
(foreach x enx
(if (= 10 (car x)) (setq l (cons (trans (cdr x) 0 1) l)))
)
(sssetfirst nil (ssget "_WP" l (list (cons 8 ln))))
)
)
)
编辑:
请勿支持pline的凸起部分。
编辑2:
增加了对ucs的支持。 谢谢你的回答。这很好ı添加我的库,如何修改这个选择层而不是选择对象?并绘制一个选框,而不是选择闭合多边形? 像这样的?
(defun c:selobjs2 ( / ln enx l )
(if
(and
(setq ln (cdr (assoc 0 (entget (car (entsel "\nSelect object for source object type: "))))))
(setq enx (entget (car (entsel "\nSelect pline: "))))
(wcmatch (cdr (assoc 0 enx)) "*POLYLINE")
)
(progn
(foreach x enx
(if (= 10 (car x)) (setq l (cons (trans (cdr x) 0 1) l)))
)
(sssetfirst nil (ssget "_WP" l (list (cons 0 ln))))
)
)
)
我不明白这个
页:
[1]