armylee 发表于 2005-4-8 19:53:00

问count的用法。

能用count获得自定义的选择集中项目的个数吗?
具体怎么样实现?

王咣生 发表于 2005-4-8 21:20:00

ssetObj.Count

armylee 发表于 2005-4-8 21:47:00

Sub example_select()
                       On Error Resume Next
                       
                       Dim myss As AcadSelectionSet
                       If Not IsNull(ThisDrawing.SelectionSets.Item("myss")) Then
                                                       Set myss = ThisDrawing.SelectionSets.Item("myss")
                                                       myss.detele
                       End If
                       
                       Set myss = ThisDrawing.SelectionSets.Add("myss")
                       
                       Dim mode As Integer
                       mode = acSelectionSetAll
                       myss.Select mode
                       
                       Dim returnobj As Object
                       
                       Dim re As Variant
                       ThisDrawing.Utility.GetEntity returnobj, "Ñ¡ÔñÒ»¸öͼÏñ:"
                       
                       returnobj.color = acRed
                       returnobj.Update
                       startpoint = returnobj.startpoint
                       endpoint = returnobj.endpoint
                       re = returnobj.ObjectName
                       MsgBox "×ø±êÆðµã" & startpoint(0) & "," & startpoint(1) & "," & startpoint(2) & "       ÖÕµã       " & endpoint(0) & "," & endpoint(1) & "," & endpoint(2) & "       id       " & re
                       returnobj.color = acByLayer
                       returnobj.Update
                       myss.RemoveItems returnobj
                       
                       
       MsgBox "               ¸öÊý                       " & myss.count
                       
                       
End Sub为什么运行后是3个,难道myss.RemoveItems returnobj没有用?

mccad 发表于 2005-4-8 21:57:00

returnobj必须为图元数组,而不是图元。
程序中GetEntity中的参数缺少,这样的结果是returnobj连图元都没返回

armylee 发表于 2005-4-8 21:59:00

可以帮我改一下让我看看吗?
光看书发现好多弄不懂啊。

mccad 发表于 2005-4-8 22:27:00


Sub example_select()
       On Error Resume Next
      
       Dim myss As AcadSelectionSet
       If Not IsNull(ThisDrawing.SelectionSets.Item("myss")) Then
               Set myss = ThisDrawing.SelectionSets.Item("myss")
               myss.detele
       End If
      
       Set myss = ThisDrawing.SelectionSets.Add("myss")
      
       Dim mode As Integer
       mode = acSelectionSetAll
       myss.Select mode
   MsgBox "选择集数量" & myss.Count
      
       Dim returnobj(0) As Object
       Dim returnpnt As Variant
      
       Dim re As Variant
       ThisDrawing.Utility.GetEntity returnobj(0), returnpnt, "选择直线:"
      
       returnobj(0).color = acRed
       returnobj(0).Update
       Dim StartPoint, EndPoint
       StartPoint = returnobj(0).StartPoint
       EndPoint = returnobj(0).EndPoint
       re = returnobj(0).ObjectName
       MsgBox "起点 " & StartPoint(0) & "," & StartPoint(1) & "," & StartPoint(2) & "   终点 " & EndPoint(0) & "," & EndPoint(1) & "," & EndPoint(2) & "   id   " & re
       returnobj(0).color = acByLayer
       returnobj(0).Update
      
       myss.RemoveItems returnobj
      
      
   MsgBox "选择集数量" & myss.Count
      
      
End Sub

armylee 发表于 2005-4-8 22:30:00

真是太感谢了,学二次开发三个多星期了。
发现看书好多东西弄不懂。
以后希望能够多多向您请教。
页: [1]
查看完整版本: 问count的用法。