选择集的问题,程序解释
Dim number As Integer<BR> Dim ObjSelectionSet As AcadSelectionSet<BR> i = 0<BR> <BR> '获取当前图形中选择集的个数<BR> number = ThisDrawing.SelectionSets.Count<BR> <BR> '删除当前图形中所有的选择集<BR> While i < number<BR> <FONT color=#ee1169> Set ObjSelectionSet = ThisDrawing.SelectionSets.Item(0)</FONT><BR> ObjSelectionSet.Delete<BR> i = i + 1<BR> Wend<BR> 红色部分的代码能帮我解释一下吗?特别是<FONT color=#ee1169>Item(0)</FONT><FONT color=#e66b1a>是什么意思<BR></FONT>While ObjSelectionSet.Item(0).ObjectName <> "AcDbLine"中<FONT color=#cc33ae>AcDbLine是什么意思,在VBA帮助中没有</FONT> <FONT color=#ee1169>"Set ObjSelectionSet = ThisDrawing.SelectionSets.Item(0)",指选择集集合中的第一项</FONT>
<FONT color=#ee1169>AcDBLine,是直线类型,它对应IAcadLine,这个帮助里有</FONT><BR> <FONT color=#ee1169>"Set ObjSelectionSet = ThisDrawing.SelectionSets.Item(0)",可以 改为"Set ObjSelectionSet = ThisDrawing.SelectionSets.Item(i)",吗?好象也应该删除所有的选择集</FONT> 不行,删除第一个选择集,第二个选择集就变成第一个了,只用不停的删除第一个才能达到目的,用<FONT color=#ee1169>ThisDrawing.SelectionSets.Item(i),删除到一半会报错</FONT> 楼上说的极是,还是这样好
Do While ThisDrawing.SelectionSets.Count <> 0<BR> ThisDrawing.SelectionSets.Item(0).Delete<BR>Loop 这样,代码的可读性不太好
Dim objSST as acadSelectSet
for each objSSt in Thisdrawing.SelectionSets
objSST.delete
next 楼上的写法好. 我记得我在编写选择集代码时候,好像必须先建立一个选择集,
页:
[1]