Удлинение и подрезка объектов — КиберПедия 

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Удлинение и подрезка объектов

2021-06-30 33
Удлинение и подрезка объектов 0.00 из 5.00 0 оценок
Заказать работу

Можно изменять угол дуги и длину незамкнутых линий, дуг, полилиний, сплайнов и эллиптических дуг. Удлинение и подрезка объектов выполняется изменением их соответствующих свойств. К примеру для удлинения линии просто меняются координаты в свойствах StartPoint и EndPoint, для изменения угла дуги меняются свойства StartAngle и EndAngle. Чтобы отобразить изменения есть метод Update. Пример изменения длины линии

Sub LengthenLine()Dim lineObj As AcadLine Dim startPoint(0 To 2) As Double,endPoint(0 To 2) As Double startPoint(0) = 0: startPoint(1) = 0: startPoint(2) = 0 endPoint(0) = 1: endPoint(1) = 1: endPoint(2) = 1 Set lineObj = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint)lineObj.Update ' Удлиним линию сменив конечную точку в 4, 4, 4endPoint(0) = 4: endPoint(1) = 4: endPoint(2) = 4 lineObj.endPoint = endPointlineObj.UpdateEnd Sub

Взрывание объектов

Взрывание составных объектов приводит к их конвертации в составляющие компоненты. К примеру, взрывание создает дуги и линии из полилиний, регионов или заменяет блочные ссылки на объекты, из которых состоял блок. Взорванный объект может выглядеть точно так, как и составной, однако цвет и тип линий может и меняться. Метод Explode при взрыве полилинии отбрасывает информацию о ее толщине, полученные линии и дуги проходят по срединной линии бывшей полилинии. Если блок состоял из полилиний, то его приходится взрывать дважды. Блоки, вставленные с неравными масштабами по осям, могут при взрывании создавать непредсказуемые объекты. Нельзя взорвать xref -ссылки. При взрывании блока с атрибутами последние пропадают, однако определения атрибутов остаются. Значения атрибутов и любые модификации теряются. Пример взрыва полилинии

Sub ExplodePolyline() Dim plineObj As AcadLWPolyline Dim points(0 To 11) As Double points(0) = 1: points(1) = 1: points(2) = 1: points(3) = 2 points(4) = 2: points(5) = 2: points(6) = 3: points(7) = 2 points(8) = 4: points(9) = 4: points(10) = 4: points(11) = 1 ' Рисуемполилинию Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points) ' Видоизменяем один из сегментов plineObj.SetBulge 3, -0.5plineObj.Update ZoomExtents ' Взрываем Dim explodedObjects As VariantexplodedObjects = plineObj.Explode ' Проходим по взорванному объекту, отображая ' тип каждого полученного объекта другим цветомDim I As Integer For I = 0 To UBound(explodedObjects) explodedObjects(I).Color = acRed explodedObjects(I).Update MsgBox "Типобъекта " & I & ": " & explodedObjects(I).ObjectName explodedObjects(I).Color = acByLayer explodedObjects(I).UpdateNextEnd Sub

Редактирование полилиний

Двумерные и трехмерные полилинии, прямоугольники, полигоны, являются вариантами полилинии и посему редактируются одинаково - разрывать, замыкать, добавлять, удалять вершины, утолщать отдельный сегмент, менять тип линии и т.д. возможно как для всей полилинии, так и для каждого ее сегмента. Можно присоединить линию, дугу или любую другую полилинию к незамкнутой полилинии. Если линия пересекает полилинию в форме буквы Т, то объект не может быть объединен. Если две линии встречаются с полилинией в форме буквы Y, одну из них AutoCAD может присоединить к полилинии. AutoCAD отбрасывает информацию сплайна, при присоединении его к другой полилинии. Когда объединение завершено, можно задать новый сплайн для результата.

Для редактирования полилинии используются следующие свойства и методы:

· Closed - замыкает или разрывает полилинию;

· Coordinates - задает координаты каждой вершины;

· AddVertex - добавляет вершину в LWPolyLine;

· SetBulge - задает скос для сегмента по его индексу;

· SetWidth - задает ширину в начале и конце сегмента по его индексу.

Пример редактирования полилинии.

Sub EditPolyline()Dim plineObj As AcadLWPolyline Dim points(0 To 9) As Double points(0) = 1: points(1) = 1: points(2) = 1: points(3) = 2 points(4) = 2: points(5) = 2: points(6) = 3: points(7) = 2 points(8) = 4: points(9) = 4 ' Create a light weight Polyline object Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points) ' задать скос для сегмента 3 plineObj.SetBulge 3, -0.5 ' задать новую вершинуDim newVertex(0 To 1) As Double newVertex(0) = 4: newVertex(1) = 1 plineObj.AddVertex 5, newVertex ' задатьширинусегмента 4 plineObj.SetWidth 4, 0.1, 0.5 ' замкнутьполилинию plineObj.Closed = True plineObj.Update ZoomExtentsEnd Sub

Редактированиесплайнов

Для получения более гладких сплайнов можно добавлять дополнительные точки изгиба или менять местоположение существующих. Метод SetFitPoint пригодится в последнем случае. Свойства и методы меняющие характеристик сплайна

· Closed - разрывает или замыкает сплайн;

· ControlPoints - задает контрольные точки;

· EndTangent - задает конечную касательную как направляющий вектор;

· FitPoints - задает все точки размещения сплайна;

· FitTolerance - переразмещает сплайн по существующим точкам с новым значением Tolerance;

· Knots - задает узловые векторы сплайна;

· StartTangent - задает начальную касательную сплайна;

· AddFitPoint - добавляет точку размещения сплайна с данным индексом;

· DeleteFitPoint - удаляет точку размещения сплайна с данным индексом;

· ElevateOrder - Elevates the order of the spline to the given order;

· GetFitPoint - Читает точку размещения с заданным индексом;

· Reverse - Меняет направление сплайна на противоположное;

· SetControlPoint - Устанавливает контрольную точку с заданным индексом;

· SetFitPoint - Задает одну точку размещения сплайна;

· SetWeight - задает вес контрольной точки по индексу

· Degree - возвращает степень полинома образующего сплайн;

· Area - возвращает площадь замкнутого сплайна;

· IsPeriodic - является ли сплайн периодическим;

· IsPlanar - лежит ли сплайн в одной плоскости;

· IsRational - является ли сплайн рациональным;

· NumberOfControlPoints - возвращает число контрольных точек;

· NumberOfFitPoints - возвращает число точек размещения.

· Пример изменения контрольных точек сплайна

Sub ChangeSplineControlPoint() Dim splineObj As AcadSpline Dim noOfPoints As Integer Dim startTan(0 To 2) As Double Dim endTan(0 To 2) As Double Dim fitPoints(0 To 8) As Double noOfPoints = 3 startTan(0) = 0.5: startTan(1) = 0.5: startTan(2) = 0 endTan(0) = 0.5: endTan(1) = 0.5: endTan(2) = 0 fitPoints(0) = 1: fitPoints(1) = 1: fitPoints(2) = 0 fitPoints(3) = 5: fitPoints(4) = 5: fitPoints(5) = 0 fitPoints(6) = 10: fitPoints(7) = 0: fitPoints(8) = 0 Set splineObj = ThisDrawing.ModelSpace.AddSpline(fitPoints, startTan, endTan)splineObj.Update ZoomExtents ' Изменим координаты первой контрольной точкиDim controlPoint(0 To 2) As Double controlPoint(0) = 0: controlPoint(1) = 3: controlPoint(2) = 0 splineObj.SetControlPoint 0, controlPoint splineObj.UpdateEnd Sub

Редактирование штриховки

Можно редактировать как границу штриховки так и образец ее заполнения. Если редактируется граница ассоциативной штриховки, образец обновляется только когда заданы допустимые границы. Ассоциативная штриховка обновляется даже если она находится на отключенном слое. Можно редактировать или выбрать новый образец штриховки, однако ассоциативность может быть установлена только при создании штриховки. Свойство AssociativeHatch позволяет проверить является ли штриховка ассоциированной. Чтобы увидеть изменения в штриховке есть метод Evaluate.


Поделиться с друзьями:

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.009 с.