fmfm 发表于 2004-4-27 22:52:00

选择集操作直线问题2,惭愧 谢谢

我已经用选择集选择了直线 然后用数组保存了所有的坐标


可是下面的问题更晕了。


我通过每条直线的起点终点的x坐标是否相同来判断是不是竖线,然后是竖线的放到一个数组中,后把这个数组用AddItems方法给了另一个选择集。


问题出在中间那个把竖线放到数组的环节上,因为我不知道竖线的数目没法定义数组,即使就算知道了,那要通过什么方法才能把他们塞进数组啊!!!!!!!!


       

雪山飞狐_lzh 发表于 2004-4-27 22:55:00

可以用集合做,不用数组

fmfm 发表于 2004-4-28 11:15:00

可是我想用数组啊


但不管那种方法,能具体说说吗?谢谢

雪山飞狐_lzh 发表于 2004-4-28 11:27:00

Dim a As New Collection


dim b()        as acadentity


for each i in ss


if i.startpoint(0)=i.endpoint(0) then a.add i


next i


redim b( a.count-1)        as acadentity


for j=0 to a.count-1


set b(j)=a(j+1)


next j


ss1.additems b

fmfm 发表于 2004-4-28 11:39:00

这下我服了:))))


这是我原来错的那个 哈


Public Sub CommandButton1_Click()


Dim vlinecount As Integer<BR>For i = 0 To myss.count - 1                                               `myss 为所有直线的那个选择集<BR>                       If lineco(i, 0) = lineco(i, 2) Then<BR>                       vlinecount = vlinecount + 1<BR>                       End If<BR>Next<BR>Dim ssetObj As AcadSelectionSet<BR>Set ssetObj = ThisDrawing.SelectionSets.Add("123")<BR>ReDim ssobjs(0 To vlinecount -1) As AcadLine<BR>i = 0<BR>For Each llll In myss<BR>                       If lineco(i, 0) = lineco(i, 2) Then<BR>                       Set ssobjs(i) = llll                                                               `这里有问题 <BR>                       End If<BR>                       i = i + 1<BR>Next<BR>ssetObj.AddItems ssobjs<BR>ssetObj.Delete<BR>myss.Delete<BR>End Sub
页: [1]
查看完整版本: 选择集操作直线问题2,惭愧 谢谢