yingxunxue 发表于 2004-5-27 11:16:00

选择集的问题,程序解释

Dim number As Integer<BR>                       Dim ObjSelectionSet As AcadSelectionSet<BR>                       i = 0<BR>                       <BR>                       '获取当前图形中选择集的个数<BR>                       number = ThisDrawing.SelectionSets.Count<BR>                       <BR>                       '删除当前图形中所有的选择集<BR>                       While i &lt; 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 &lt;&gt; "AcDbLine"中<FONT color=#cc33ae>AcDbLine是什么意思,在VBA帮助中没有</FONT>

zzg4028061 发表于 2004-5-27 11:37:00

<FONT color=#ee1169>"Set ObjSelectionSet = ThisDrawing.SelectionSets.Item(0)",指选择集集合中的第一项</FONT>


<FONT color=#ee1169>AcDBLine,是直线类型,它对应IAcadLine,这个帮助里有</FONT><BR>

yingxunxue 发表于 2004-5-27 12:59:00

<FONT color=#ee1169>"Set ObjSelectionSet = ThisDrawing.SelectionSets.Item(0)",可以 改为"Set ObjSelectionSet = ThisDrawing.SelectionSets.Item(i)",吗?好象也应该删除所有的选择集</FONT>

雪山飞狐_lzh 发表于 2004-5-27 13:03:00

不行,删除第一个选择集,第二个选择集就变成第一个了,只用不停的删除第一个才能达到目的,用<FONT color=#ee1169>ThisDrawing.SelectionSets.Item(i),删除到一半会报错</FONT>

nxy_918 发表于 2004-5-27 14:07:00

楼上说的极是,还是这样好


Do While ThisDrawing.SelectionSets.Count &lt;&gt; 0<BR>                                                               ThisDrawing.SelectionSets.Item(0).Delete<BR>Loop

zzg4028061 发表于 2004-5-27 15:30:00

这样,代码的可读性不太好


Dim objSST as acadSelectSet


for each objSSt in Thisdrawing.SelectionSets


               objSST.delete


next

clement 发表于 2004-5-27 17:32:00

楼上的写法好.

whyer 发表于 2004-5-29 19:24:00

我记得我在编写选择集代码时候,好像必须先建立一个选择集,
页: [1]
查看完整版本: 选择集的问题,程序解释