Определение объекта-контейнера — КиберПедия 

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Определение объекта-контейнера

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

Объекты создаются в коллекциях ModelSpace, PaperSpace или объекте Block. На объект можно сослаться непосредственно или через объектную переменную. Непосредственная ссылка включает всю иерархию:

Set lineObj = ThisDrawing.ModelSpace.AddLine(startPoint,endPoint)

Для ссылки на объект через объектную переменную следует создать переменную типа AcadModelSpace или AcadPaperSpace. И установить ссылку на нужное свойство активного документа. В следующем примере две объектные переменные ссылаются на Model Space и PaperSpace соответственно:

Dim moSpace As AcadModelSpaceDim paSpace As AcadPaperSpaceSet moSpace = ThisDrawing.ModelSpaceSet paSpace = ThisDrawing.PaperSpace

В следующей строке в пространство модели добавляется линия через объектную переменную:

Set lineObj = moSpace.AddLine(startPoint,endPoint)

Создание линий

Возможно создание различных типов линий - проcто линия, мультилиния, мультилиния с дуговыми сегментами. Обычно для обрисовки линий задаются координаты вершин. Тип линии по умолчанию непрерывный. Методы для создания линий:

· AddLine - создает линию по двум точкам;

· AddLightWeightPolyline - создает двумерную полилинию;

· AddMLine - создает мультилинию;

· AddPolyLine - создает двумерную или трехмерную полилинию.

Стандартные линии и мультилини создаются в плоскости XY полилинии создаются в Object Coordinat System. Примерсоздания полилини:

Sub AddLightWeightPolyline() Dim plineObj As AcadLWPolyline Dim points(0 To 5) As Double' Вершины двумерной полилини points(0) = 2: points(1) = 4 points(2) = 4: points(3) = 2 points(4) = 6: points(5) = 4 ' Создаем полилинию в пространстве моделиSet plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points) ThisDrawing.Application.ZoomExtentsEnd Sub

Созданиекриволинейныхобъектов

Все подобные объекты (эллипсы, сплайны, дуги, окружности) строятся в плоскости XY мировой системы координат. Для их создания используется один из следующих методов:

· AddArc - дуга через центр, радиус, начальная точка и конечный угол;

· AddCircle - окружность через центр и радиус;

· Addellipse - эллипс через центр, точку на главной оси и радиус кривизны;

· AddSpline - кривая.

Пример создания сплайна

Sub CreateSpline() 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) ZoomExtentsEnd Sub

Болееподробнаяинформацияосплайнахв AutoCAD ActiveX and VBA Reference.

Создание точки

Стиль создаваемой точки и ее размер можно указать в относительных единицах к размеру экрана или в абсолютных. Управление видом точек делается через системные переменные PDMODE, PDSIZE. Значения переменной PDMODE равные 0,2,3,4 представляют разные формы точки, значение равное 1 - означает невидимую точку. Добавление 32, 64 или 96 означает вокруг точки фигуру (окружность, квадрат, окружность вписанную в квадрат). Значение переменной PDSIZE равное нулю задает размер точки 5% от размера экрана, а любые положительные значения - абсолютный размер. Отрицательные же значения интерпретируются как процент от размера видового экрана. Размер всех точек пересчитывается при регенерации, т.е. изменение PDMODE, PDSIZE сразу не заметно. Для установки значений системных переменных используется метод SetVariable, ниже приведен пример его применения:

Sub CreatePoint() Dim pointObj As AcadPoint Dim location(0 To 2) As Double ' Определениеположенияточки location(0) = 5#: location(1) = 5#: location(2) = 0# ' Ставимточку Set pointObj = ThisDrawing.ModelSpace.AddPoint(location) ThisDrawing.SetVariable "PDMODE", 34 ThisDrawing.SetVariable "PDSIZE", 1ZoomExtentsEnd Sub

Создание сплошной заливки

Возможно создание треугольной и прямоугольной области со сплошной заливкой. Наиболее быстрый способ - создание области при выключенной системной переменной FILLMODE и затем включение ее. Последовательность второй и четвертой точки области определяют способ заливки (слева направо и сверху вниз - если 1,2,3,4 то прямоугольная, если 1,2,4,3 то треугольная). Первые две точки задают сторону полигона. Для создания области со сплошной заливкой есть метод AddSolid. Примеробъектасзаливкой.

Sub CreateSolid() Dim solidObj As AcadSolid Dim point1(0 To 2) As Double,point2(0 To 2) As Double Dim point3(0 To 2) As Double,point4(0 To 2) As Double' Определение сплошной заливки point1(0) = 0#: point1(1) = 0#: point1(2) = 0#point2(0) = 5#: point2(1) = 0#: point2(2) = 0# point3(0) = 5#: point3(1) = 8#: point3(2) = 0# point4(0) = 0#: point4(1) = 8#: point4(2) = 0# Set solidObj = ThisDrawing.ModelSpace.AddSolid (point1, point2, point3, point4)ZoomExtentsEnd Sub

Создание регионов

Регион представляет двухмерную замкнутую фигуру, границы которой не имеют внутренних пересечений. Может состоять из комбинации линий, окружностей, дуг, эллипсов, эллиптических дуг, сплайнов и некоторых других объектов. Весь объект должен лежать в одной плоскости. Трехмерная полилиния может быть преобразована в регион путем "взрыва". К региону применима штриховка и тень, у него есть свойства - площадь и момент инерции. Создав фигуры можно выбрав их создать регион, используя метод AddRegion. AutoCAD преобразует замкнутые двумерные и трехмерные планарные полилинии в отдельные регионы, а полилинии, линии и кривые образуют замкнутые планарные петли. Если более двух кривых разделяют конечную точку результирующий регион может быть присужден. (arbitrary) используйте Variant для хранения вновь создаваемых массивов регионов. Для подсчета количества созданных объектов Region используйте UBound(objRegions) - LBound(objRegions) + 1, где objRegions переменная Variant содержащая массив возвращенный методом AddRegion. Пример простого региона из одной окружности:

Sub CreateRegion() ' Определим массив хранящий границы региона Dim curves(0 To 0) As AcadCircle ' Создаем окружность как границу регионаDim center(0 To 2) As Double,radius As Double center(0) = 2: center(1) = 2: center(2) = 0: radius = 5# Set curves(0) = ThisDrawing.ModelSpace.AddCircle (center, radius) ' Теперьсамрегион Dim regionObj As Variant regionObj = ThisDrawing.ModelSpace.AddRegion(curves)ZoomExtentsEnd Sub

Создание составных регионов

Путем вычитания, комбинирования и нахождения пересечений регионов или 3-мерных заливок можно создать составной регион, для чего применяется метод Boolean. При вычитании регионов этот метод применяется к первому из них. Пример:

Sub CreateCompositeRegions() ' Создадим две окружности - одна комната, вторая ковер в нейDim RoomObjects(0 To 1) As AcadCircle Dim center(0 To 2) As Double Dim radius As Double center(0) = 4: center(1) = 4: center(2) = 0: radius = 2# Set RoomObjects(0) = ThisDrawing.ModelSpace.AddCircle(center, radius) radius = 1# Set RoomObjects(1) = ThisDrawing.ModelSpace.AddCircle(center, radius)' Теперь регион из двух окружностейDim regions As Variant regions = ThisDrawing.ModelSpace.AddRegion(RoomObjects)' Скопируем его в переменную для простоты использованияDim RoundRoomObj As AcadRegion,PillarObj As AcadRegion If regions(0).Area > regions(1).Area Then ' Первыйрегион - комната Set RoundRoomObj = regions(0) Set PillarObj = regions(1) Else ' Первыйрегион - ковер Set PillarObj = regions(0) Set RoundRoomObj = regions(1) End If ' Окрасимкомнатуиковерразнымицветами RoundRoomObj.Color = acRed PillarObj.Color = acCyan ZoomExtents ' Отнимемплощадьковраотплощадикомнаты RoundRoomObj.Boolean acSubtraction, PillarObj MsgBox "Площадьковра: " & RoundRoomObj.AreaEnd Sub

Для объединения регионов вызывайте метод Boolean и вводите константу acUnion, для операции вместо acSubtraction, а для пересечения acIntersection.

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

Штриховки заполняют указанную область рисунка образцом. При ее создании сначала следует создать объект Hatch методом AddHatch. Ассоциированная штриховка привязана к определенным границам и меняется вместе с ними. Привязка может быть задана только при создании штриховки, после этого штриховку можно отвязать, но нельзя привязать снова. Чтобы сделать штриховку ассоциированной следует использовать параметр Associativity=TRUE для метода AddHatch, а для разрыва связи Associativity=FALSE.


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

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...



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

0.01 с.