GetWidth Пример

Sub Example_GetWidth()
    ' Следующий код запрашивает Вас выбирать легкую ломаную линию,
    ' затем показывает ширину каждой доли выбранной ломаной линии. 
   
    Dim returnObj As AcadObject
    Dim basePnt As Variant
    Dim retCoord As Variant
    Dim StartWidth As Double
    Dim EndWidth As Double
    Dim i, j As Long
    Dim nbr_of_segments As Long
    Dim nbr_of_vertices As Long
    Dim segment As Long
    Dim message_string
              
    On Error Resume Next
   
    ThisDrawing.Utility.GetEntity returnObj, basePnt, "Выберите ломаную линию"
       
    ' Удостоверьтесь, что пользователь выбрал ломаную линию.
    If Err <> 0 Then
        If returnObj.EntityName <> "AcDbPolyline" Then
            MsgBox "Вы не выбирали ломаную линию"
        End If
        Exit Sub
    End If
    
    ' Получите координаты каждой вершины выбранной ломаной линии.
    ' Координаты возвращены в массиве точек.
    retCoord = returnObj.Coordinates
    
    segment = 0
    i = LBound(retCoord)                 ' Индекс начала массива координат
    j = UBound(retCoord)                 ' Конечный индекс массива координат
    nbr_of_vertices = ((j - i) \ 2) + 1  ' Число вершины в ломаной линии
    
    ' Определите число долей в ломаной линии.
    ' Закрытая ломаная линия имеет столько долей, сколько вершин.
    ' Открытая ломаная линия имеет на одину долю меньше, чем вершин.
    ' Проверьте свойство Closed, чтобы определить, закрыта ли ломаная линия.
    
    If returnObj.Closed Then
        nbr_of_segments = nbr_of_vertices
    Else
        nbr_of_segments = nbr_of_vertices - 1
    End If
    
    ' Получите ширину каждой доли ломаной линии
    Do While nbr_of_segments > 0
          
        ' Получите ширину текущей доли
        returnObj.GetWidth segment, StartWidth, EndWidth
        
        message_string = "Доля, которая начинается в " & retCoord(i) & "," & retCoord(i + 1) _
            & " имеет ширину начала " & StartWidth & " и конечную ширину " & EndWidth
        MsgBox message_string, , "GetWidth Пример"
     
        ' Подготовитесь получить ширину следующей доли
        i = i + 2
        segment = segment + 1
        nbr_of_segments = nbr_of_segments - 1
    Loop
      
End Sub
Сайт управляется системой uCoz