SetWidth Пример |
Sub Example_SetWidth() 'Следующий код запрашивает Вас выбирать легкую ломаную линию и 'затем запрашивает Вас относительно установки ширины каждой доли ломаной линии. 'Нажатие ENTER не определяя ширину эквивалентно вводу 0. 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 promptStart As String Dim promptEnd As String On Error Resume Next ThisDrawing.Utility.GetEntity returnObj, basePnt, "Select a polyline" 'Удостоверьтесь, что пользователь выбрал ломаную линию. 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 'Получите значения ширины от пользователя promptStart = vbCrLf & "Определите ширину в начале доли в " & retCoord(i) & "," & retCoord(i + 1) & " ==> " promptEnd = vbCrLf & "Теперь определите ширину в конце той доли ==> " StartWidth = ThisDrawing.Utility.GetReal(promptStart) EndWidth = ThisDrawing.Utility.GetReal(promptEnd) 'Установите ширину текущей доли returnObj.SetWidth segment, StartWidth, EndWidth 'Подготовитесь получать ширину следующей доли i = i + 2 segment = segment + 1 nbr_of_segments = nbr_of_segments - 1 Loop MsgBox "Размеры доли были установлены", , "SetWidth Пример" End Sub