明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1298|回复: 7

选择集的问题,程序解释

[复制链接]
发表于 2004-5-27 11:16:00 | 显示全部楼层 |阅读模式
Dim number As Integer
Dim ObjSelectionSet As AcadSelectionSet
i = 0

'获取当前图形中选择集的个数
number = ThisDrawing.SelectionSets.Count

'删除当前图形中所有的选择集
While i < number
Set ObjSelectionSet = ThisDrawing.SelectionSets.Item(0)
ObjSelectionSet.Delete
i = i + 1
Wend
红色部分的代码能帮我解释一下吗?特别是Item(0)是什么意思
While ObjSelectionSet.Item(0).ObjectName <> "AcDbLine"中AcDbLine是什么意思,在VBA帮助中没有
发表于 2004-5-27 11:37:00 | 显示全部楼层
"Set ObjSelectionSet = ThisDrawing.SelectionSets.Item(0)",指选择集集合中的第一项 AcDBLine,是直线类型,它对应IAcadLine,这个帮助里有
 楼主| 发表于 2004-5-27 12:59:00 | 显示全部楼层
"Set ObjSelectionSet = ThisDrawing.SelectionSets.Item(0)",可以 改为"Set ObjSelectionSet = ThisDrawing.SelectionSets.Item(i)",吗?好象也应该删除所有的选择集
发表于 2004-5-27 13:03:00 | 显示全部楼层
不行,删除第一个选择集,第二个选择集就变成第一个了,只用不停的删除第一个才能达到目的,用ThisDrawing.SelectionSets.Item(i),删除到一半会报错
发表于 2004-5-27 14:07:00 | 显示全部楼层
楼上说的极是,还是这样好 Do While ThisDrawing.SelectionSets.Count <> 0
ThisDrawing.SelectionSets.Item(0).Delete
Loop
发表于 2004-5-27 15:30:00 | 显示全部楼层
这样,代码的可读性不太好


Dim objSST as acadSelectSet


for each objSSt in Thisdrawing.SelectionSets


                 objSST.delete


next
发表于 2004-5-27 17:32:00 | 显示全部楼层
楼上的写法好.
发表于 2004-5-29 19:24:00 | 显示全部楼层
我记得我在编写选择集代码时候,好像必须先建立一个选择集,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 05:42 , Processed in 0.159625 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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