用多边形PL线范围窗选图元
;用多边形PL线范围窗选图元(kxty).lsp(defun c:kxty (/ aa en info pt_lst ss)
(setq en (car (entsel "\n选择一个多边形:")))
(setq info(entget en))
(setq pt_lst (mapcar 'cdr
(vl-remove-if-not '(lambda (x) (= (car x) 10) ) info )
)
)
(setq pt_lst pt_lst)
(setq ss(ssget"cp" pt_lst ))
(sssetfirst ss ss)
(setq aa (sslength ss))
(setq aa (- aa 1))
(princ (strcat "\n多边形范围内功选择图元对象:" (rtos aa 2 2)"个"))
(princ)
)
万能的大佬们,能不能帮我优化下,总感觉有点问题~:loveliness:
;WP 窗围选多段线内所有实体
(defun C:WP (/ lss1 en enlist)
(print "选多段线后空格确定")
(setvar "cmdecho" 0)
(while (setq en (car (entsel)))
(setq enlist (entget en))
(setq lss1 (mapcar 'cdr (vl-remove-if '(lambda (x) (/= 10 (car x))) enlist)))
(Setq xuanze1 (ssget "WP" lss1))
(sssetfirst nil xuanze1)
)
(princ)
)
忘记在哪篇帖下看到的代码,之前保存的发给你参考下。
如果哪位朋友知道这段代码作者也麻烦帮忙署名一下,谢谢。 sammy 发表于 2023-8-13 16:06
;WP 窗围选多段线内所有实体
(defun C:WP (/ lss1 en enlist)
(print "选多段线后空格确定")
非常感谢大佬热心帮助 对的,CP和WP的区别没理解 这个有个问题,如果多段线发生缠绕,上面这两段代码不会选中对象的,需要对得到的顶点再做个判断,优化,然后再执行ssget 花开富贵 发表于 2023-8-16 23:06
这个有个问题,如果多段线发生缠绕,上面这两段代码不会选中对象的,需要对得到的顶点再做个判断,优化,然 ...
求大佬优化下 czb203 发表于 2023-8-17 00:11
求大佬优化下
这个我没有写过,大致的思路是判断交点,然后判断交点和各个顶点的先后位置关系,根据这个先后关系判断分割区域,然后对每个区域做ssget
按照这个思路可以做出了的哦,加油,期待你的作品!
页:
[1]