明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1397|回复: 7

[函数] 根据一个多边形选取里面所有元素

[复制链接]
发表于 2011-7-27 15:01 | 显示全部楼层 |阅读模式
本帖最后由 tryhi 于 2011-8-7 18:14 编辑



学了两天,这个整了一天
(defun c:xq(/ lss en enlist i len xuanze)
    (setq lss nil)
    (setq en (car (entsel)))
    (setq enlist (entget en));联合
    (setq i 0
   len (length enlist);返回列表的数目
    )
    (repeat len
       (if (= (car (nth i enlist)) 10)
   (setq lss (cons (cdr (nth i enlist)) lss))
       )
      (setq i (1+ i))
    )
  (Setq xuanze (ssget "WP" lss))
  (sssetfirst xuanze xuanze)
)
非常感谢群里面几位朋友的指导。

续:
zhynt指点之后修改如下


(defun c:xq(/ lss en enlist)
  (setq en (car (entsel)))
  (setq enlist (entget en));联合
  (setq lss (mapcar 'cdr (vl-remove-if '(lambda (x) (/= 10 (car x))) enlist)))
  (Setq xuanze (ssget "WP" lss))
  (sssetfirst xuanze xuanze)
)

另外想请教一下各位,怎样才能使它支持曲线的呢?
采用Andyhon的方法,可以支持曲线,也就是任何封闭图形
http://bbs.mjtd.com/thread-88451-1-1.html


点评

楼主你好,您的代码如何实现多选呢? 现在的只能一个框一个框选择 在有如果有何框相交的也想选中,该如何改呢 楼主有时间的话,希望您能看看  发表于 2013-1-30 21:56
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2011-7-27 15:13 | 显示全部楼层
使它支持曲线的呢?

偏方
Divide 曲线
取出 Points 串成 PtList

评分

参与人数 1金钱 +5 收起 理由
tryhi + 5 感谢关注

查看全部评分

 楼主| 发表于 2011-7-27 15:17 | 显示全部楼层
本帖最后由 tryhi 于 2011-7-27 15:18 编辑
Andyhon 发表于 2011-7-27 15:13
使它支持曲线的呢?

偏方


学习研究下
发表于 2011-7-27 15:41 | 显示全部楼层
多边形顶点列表可以用:
(setq lss (mapcar 'cdr (vl-remove-if '(lambda (x) (/= 10 (car x))) enlist)))

评分

参与人数 1金钱 +5 收起 理由
tryhi + 5 学习了

查看全部评分

 楼主| 发表于 2011-7-27 16:18 | 显示全部楼层
Andyhon 发表于 2011-7-27 15:13
使它支持曲线的呢?

偏方

只知道(setq zx(ssget "l"))取出最后一个点,可是怎么取出全部点呢?
发表于 2011-7-27 18:21 | 显示全部楼层
Command: div
DIVIDE
Select object to divide:
Enter the number of segments or [Block]: 32

Command: (setq ss (ssget"P"))
<Selection set: 4a>

Command: (sslength ss)
31

评分

参与人数 1金钱 +10 收起 理由
tryhi + 10 学习了

查看全部评分

发表于 2011-7-27 21:14 | 显示全部楼层
我有用到过,要支持曲线,我用模拟的方式
比如查找到第4个点有凸度时,测量一下第5个点 减 去第4个点的距离,得到弧的长度
当弧的长度大到你需要考虑的程度时,开始按你的精度获取节点的坐标加入到你的表中
具体是用vlax-curve相关函数,不断获取弧线上距离为第4个点+[模拟精度(比如0.03) x i]
好像是这样

评分

参与人数 1金钱 +5 收起 理由
tryhi + 5 学习了

查看全部评分

发表于 2012-4-17 14:18 | 显示全部楼层
....................
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-5 14:17 , Processed in 0.384292 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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