明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 825|回复: 6

用多边形PL线范围窗选图元

[复制链接]
发表于 2023-8-13 15:45 | 显示全部楼层 |阅读模式
  1. ;用多边形PL线范围窗选图元(kxty).lsp
  2. (defun c:kxty (/ aa en info pt_lst ss)
  3.   (setq en (car (entsel "\n选择一个多边形:")))
  4.   (setq info(entget en))
  5.   (setq pt_lst (mapcar 'cdr
  6.                  (vl-remove-if-not '(lambda (x) (= (car x) 10) ) info )
  7.                )
  8.   )
  9.   (setq pt_lst pt_lst)
  10.   (setq ss(ssget  "cp" pt_lst ))
  11.   (sssetfirst ss ss)
  12.   (setq aa (sslength ss))
  13.   (setq aa (- aa 1))
  14.   (princ (strcat "\n多边形范围内功选择图元对象:" (rtos aa 2 2)  "个"))
  15.   (princ)
  16. )

万能的大佬们,能不能帮我优化下,总感觉有点问题~
发表于 2023-8-13 16:06 | 显示全部楼层
;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)
)

忘记在哪篇帖下看到的代码,之前保存的发给你参考下。
如果哪位朋友知道这段代码作者也麻烦帮忙署名一下,谢谢。
 楼主| 发表于 2023-8-13 17:18 | 显示全部楼层
sammy 发表于 2023-8-13 16:06
;WP 窗围选多段线内所有实体
(defun C:WP (/ lss1 en enlist)
(print "选多段线后空格确定")

非常感谢大佬热心帮助
发表于 2023-8-14 15:13 | 显示全部楼层
对的,CP和WP的区别没理解
发表于 2023-8-16 23:06 来自手机 | 显示全部楼层
这个有个问题,如果多段线发生缠绕,上面这两段代码不会选中对象的,需要对得到的顶点再做个判断,优化,然后再执行ssget
 楼主| 发表于 2023-8-17 00:11 | 显示全部楼层
花开富贵 发表于 2023-8-16 23:06
这个有个问题,如果多段线发生缠绕,上面这两段代码不会选中对象的,需要对得到的顶点再做个判断,优化,然 ...

求大佬优化下
发表于 2023-8-17 11:40 | 显示全部楼层

这个我没有写过,大致的思路是判断交点,然后判断交点和各个顶点的先后位置关系,根据这个先后关系判断分割区域,然后对每个区域做ssget
按照这个思路可以做出了的哦,加油,期待你的作品!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-28 08:43 , Processed in 0.189264 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表