dawido000

Użytkownik forum
  • Postów

    11
  • Dołączył

  • Ostatnia wizyta

Odpowiedzi opublikowane przez dawido000

  1. Wersja ZWCADA: 2011.10.30

    Testowałem na obiektach typu Polilinia, prostokąt.

    W załączniku rysunek, na którym testowałem makro:

    Sub si()
    Dim pole, pole1 As Double
    Dim i, m As Integer
    Dim sel As ZwcadSelectionSet
    Dim kwadrat As ZwcadEntity
    Dim fild As ZwcadText
    Dim ip
    Dim slajd As String
     On Error Resume Next
      Thisdocument.SelectionSets.Item("ss").Delete
       Set sel = Thisdocument.SelectionSets.Add("ss")
           sel.SelectOnScreen
           m = sel.Count
    For i = 0 To m - 1
    Set kwadrat = sel.Item(i)
    pole1 = kwadrat.Area
    pole = pole + pole1
    slajd = Thisdocument.Utility.RealToString(pole, zcDecimal, 2)
       Next
    MsgBox slajd
    ip = Thisdocument.Utility.GetPoint(, "Wstaw")
    ip(1) = ip(1) + 0.1
    Set fild = Thisdocument.ModelSpace.AddText(slajd, ip, 0.2)
    End Sub
    

    rysunek_testowy.dwg

  2. Witam w autocadzie zrobiłem sobie makro które zlicza sumę pól (fragment):

       ThisDrawing.SelectionSets.Item("ss").Delete
           Set sel = ThisDrawing.SelectionSets.Add("ss")
               sel.SelectOnScreen
               m = sel.Count
    
       For i = 0 To m - 1
        Set kwadrat = sel.Item(i)
        pole1 = kwadrat.Area
        pole = pole + pole1
        slajd = ThisDrawing.Utility.RealToString(pole, acDecimal, 2)
           Next
    

    Przerobiłem go na wersję zwcada:

       Thisdocument.SelectionSets.Item("ss").Delete
           Set sel = Thisdocument.SelectionSets.Add("ss")
               sel.SelectOnScreen
               m = sel.Count
    
       For i = -0 To m - 1
        Set kwadrat = sel.Item(i)
        pole1 = kwadrat.Area
        pole = pole + pole1
        slajd = Thisdocument.Utility.RealToString(pole, zcDecimal, 2)
       Next
    

    Wszystko działa, tylko dlaczego wywołanie pole1 = kwadrat.Area zwraca wartość zawsze zero. Tak jakby kwadrat.Area nie było takiego obiektu. Ktoś mi pomoże? Może brakuje jakiejś bibilioteki[/code]