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