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()<BR>                       On Error Resume Next<BR>                       <BR>                       Dim myss As AcadSelectionSet<BR>                       If Not IsNull(ThisDrawing.SelectionSets.Item("myss")) Then<BR>                                                       Set myss = ThisDrawing.SelectionSets.Item("myss")<BR>                                                       myss.detele<BR>                       End If<BR>                       <BR>                       Set myss = ThisDrawing.SelectionSets.Add("myss")<BR>                       <BR>                       Dim mode As Integer<BR>                       mode = acSelectionSetAll<BR>                       myss.Select mode<BR>                       <BR>                       Dim returnobj As Object<BR>                       <BR>                       Dim re As Variant<BR>                       ThisDrawing.Utility.GetEntity returnobj, "&Ntilde;&iexcl;&Ocirc;&ntilde;&Ograve;&raquo;&cedil;&ouml;&Iacute;&frac14;&Iuml;&ntilde;:"<BR>                       <BR>                       returnobj.color = acRed<BR>                       returnobj.Update<BR>                       startpoint = returnobj.startpoint<BR>                       endpoint = returnobj.endpoint<BR>                       re = returnobj.ObjectName<BR>                       MsgBox "×&oslash;±ê&AElig;&eth;&micro;&atilde;" &amp; startpoint(0) &amp; "," &amp; startpoint(1) &amp; "," &amp; startpoint(2) &amp; "       &Ouml;&Otilde;&micro;&atilde;       " &amp; endpoint(0) &amp; "," &amp; endpoint(1) &amp; "," &amp; endpoint(2) &amp; "       id       " &amp; re<BR>                       returnobj.color = acByLayer<BR>                       returnobj.Update<BR>                       myss.RemoveItems returnobj<BR>                       <BR>                       <BR>       MsgBox "               &cedil;&ouml;&Ecirc;&yacute;                       " &amp; myss.count<BR>                       <BR>                       <BR>End Sub



为什么运行后是3个,难道myss.RemoveItems returnobj没有用?

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

returnobj必须为图元数组,而不是图元。<BR>程序中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的用法。