wholin 发表于 2006-8-25 18:23:00

选择集的图元能不能按框选的方向排序?

<P>图形里有三根并排直线,我从右向左框选加到一个选择集,能不能使ent.item(0)是右边的一根线,ent.item(1)是中间的,ent.item(2)是右向左第三根直线?</P>
<P>我现在做的效果是,每次执行宏之后,它们在选择集的位置是不确定的,并不是我由右向左框选的顺序来定的</P>
<P>好像一根根的点选又可以,便我现在是要的是框选多根,一根根的去选太慢了</P>

雪山飞狐_lzh 发表于 2006-8-30 11:19:00

<P>自己按点排序吧</P>

wy_26 发表于 2006-9-2 14:40:00

<P>版主帮我看看,我也是同样的问题。</P>
<P>怎么把选择集里的对象交换位置</P>
<P>'排序选择集<BR>Function Sort(SSet As AcadSelectionSet)<BR>&nbsp;&nbsp;&nbsp; Dim i As Variant<BR>&nbsp;&nbsp;&nbsp; Dim tmp As AcadEntity<BR>&nbsp;&nbsp;&nbsp; Dim counter As Variant<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; counter = SSet.Count - 1<BR>&nbsp;&nbsp;&nbsp; i = 0<BR>nextLoop:<BR>&nbsp;&nbsp;&nbsp; While (i &lt; counter)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If SSet(i).ObjectID &gt; SSet(i + 1).ObjectID Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tmp = SSet(i)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SSet(i) = SSet(i + 1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SSet(i + 1) = tmp<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i = 0<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GoTo nextLoop<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i = i + 1<BR>&nbsp;&nbsp;&nbsp; Wend<BR>End Function</P>

雪山飞狐_lzh 发表于 2006-9-2 17:40:00

<P>把图元放在数组里吧</P>
页: [1]
查看完整版本: 选择集的图元能不能按框选的方向排序?