只需一步,快速开始
如何在图中把一个选择集之外的图元全部删除?
如何查看一个图元处在哪个选择集中?
使用道具 举报
1、建立两个两个选择集,第一个选择集是选择图中所有的图元,第二个选择集即是LZ的选择集,图元在选择集1中,但不在选择集2种,删除。
2、我第一想法是通过句柄去判断。
关键是第二个选择集是怎么创建?
设置一个函数,如果实体在选择集1中,且不在选择集2中,删除。
选择集2就是LZ你所创建的选择集。
我家中电脑没有安装CAD,大概代码如下:
'创建一个函数,用于判断图元是否在选择集外
Public Function pOutSelSet(byval pEnt as acadentity,byval pSelSet as acadselectionset) as boolean
'初始化函数
pOutSelSet=True
dim oEnt as acadentity
for each oEnt in pSelSet
if pEnt.handle=oEnt.handle then
pOutSelSet=False
exit for
else
end if
next pEnt
end function
在程序中调用此函数即可。
此方法原理可行,我用一些小图检验可以正确反应,但当我换张大图,图元总数上万的,用这种方法对每个图元循环判断,这样一双循环,CAD立马卡死.......
而我工作中用的都是这种图元六七万的大图的。谁有更优化的解决方法的?
LZ,我对LISP的不熟悉。
我觉得可以试试LISP中的ssmemb函数试一下。
本版积分规则 发表回复 回帖后跳转到最后一页
小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 ) ©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途
GMT+8, 2024-11-26 08:34 , Processed in 0.164190 second(s), 24 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.