Autodesk Inventor API. Первые шаги/3D-эскиз

Материал из Викиучебника — открытых книг для открытого мира
(перенаправлено с «3D-эскиз»)

Объект Sketch3D[править]


Доступ ко всем 3D эскизам документа детали обеспечивает коллекция Sketches3D объекта PartComponentDefinition документа детали.


Обзор методов объекта Sketch3D[править]

Метод Выполняемое действие
Delete Удаляет 3D эскиз. Метод нельзя применять к активному эскизу и к эскизам с имеющимися зависимыми конструктивными элементами.

Прочая зависимая от эскиза геометрия (не конструктивные элементы) будет удалена (или изменена).

Edit Активирует интерактивную среду для редактирования данного эскиза.
ExitEdit Завершает сеанс редактирования данного эскиза в интерактивной среде Инвентора. Эквивалентно выполнению команды Return в пользовательском режиме. Метод имеет смысл только если данный эскиз был открыт для интерактивного редактирования (напр., методом Edit). В прочих ситуациях вызов метода последствий иметь не будет.
GetReferenceKey Возвращает ссылочный ключ (reference key) для этого элемента. Ссылочный ключ это байтовый массив для организации уникальной и неизменной ссылки на объект.

Для доступа к объекту по его ссылочному ключу используется метод BindKeyToObject объекта ReferenceKeyManager. Ссылку на ReferenceKeyManager возвращает одноименное свойство объекта Document.

Include Метод создает новый элемент 3D эскиза путем копирования в эскиз геометрии из другого эскиза.

Аргументом является объект, предназначенный для копирования в данный 3D эскиз. В контексте детали допускается копировать ребра, 2D и 3D эскизные элементы. В контексте сборки этот метод вызывается объектом Sketch3DProxy и копирует объекты из одной детали в эскиз другой детали. Допускается копировать объекты EdgeProxy, 2D и 3D эскизные прокси объекты.

SetEndOfPart Метод передвигает маркер конца детали относительно объекта, из которого вызывается. Входной аргумент определяет, где будет установлен маркер — перед или после объекта.
Solve Инициирует перевычисление эскиза.


Обзор свойств объекта Sketch3D[править]

Свойство Возвращаемое значение
Application Ссылка на объект Application.
AttributeSets Ссылка на коллекцию AttributeSets, ассоциированную с эскизом
Consumed Определяет, поглощен ли эскиз или нет.
DeferUpdates Включает или выключает режим отложенного перевычисления эскиза. По умолчанию False. После изменения значения на False эскиз заново перевычисляется автоматически.
Dependents Возвращает коллекцию объектов, зависящих от данного 3D эскиза. Примерами возвращаемых объектов могут быть профильные пути, конструктивные элементы, рабочая геометрия, другие эскизы и сборочные зависимости.
DimensionConstraints3D Возвращает коллекцию размерных ограничений, наложенных на данный 3D эскиз
DimensionsVisible Включает и выключает режим визуального отображения размеров
DisabledActionTypes Определяет типы действий, разрешенных для данного эскиза (ActionTypeEnum)
GeometricConstraints3D Возвращает коллекцию геометрических ограничений, наложенных на данный 3D эскиз
HasReferenceComponent Сообщает, имеется ли у эскиза ссылка на компонент.
HealthStatus Возвращает текущий статус эскиза. См. HealthStatusEnum
IsOwnedByFeature Если эскиз принадлежит конструктивному элементу. Если да (True), то свойство OwnedBy вернет ссылку на этот конструктивный элемент.
Name Здесь хранится имя эскиза, отображаемое в дереве построения. В пределах документа имя эскиза должно быть уникальным.
OverrideColor Позволяет изменить цвет эскиза. Значение Nothing означает использование цвета, заданного цветовой схемой по умолчанию. В режиме интерактивного редактирования в любом случае используются цвета по умолчанию.
OwnedBy Возвращает ссылку на конструктивный элемент, которому принадлежит эскиз, либо значение Nothing, если свойство IsOwnedByFeature равно False.
Parent Возвращает ссылку на родительский объект PartComponentDefinition.
Profiles3D Ссылка на коллекцию 3D профилей Profiles3D
ReferenceComponent Ссылка на компонент, от которого зависит эскиз.
ReferencedEntity Свойство должно возвращать ссылку на 3D эскиз. От которого зависит данный эскиз. Введено для использоания в будущих релизах. В настоящее время всегда возвращает 'Nothing'.
Shared Определяет, расшарен (shared) ли эскиз. Расшарить можно лишь эскиз, используемый каким-либо конструктивным элементом. В этом случае эскиз становится доступен и другим конструктивным элементам.
SketchArcs3D Ссылка на коллекцию 3D дуг SketchArcs3D.
SketchCircles3D Ссылка на коллекцию 3D окружностей
SketchEllipses3D Ссылка на коллекцию 3D эллипсов
SketchEllipticalArcs3D Ссылка на коллекцию 3D эллитических дуг.
SketchEntities3D Ссылка на коллекцию 3D эскизных элементов, независимо от их типа.
SketchFixedSplines3D Ссылка на коллекцию фиксированных сплайнов SketchFixedSplines3D
SketchLines3D Ссылка на коллекцию 3D линий.
SketchPoints3D Ссылка на коллекцию 3D точек.
SketchSplines3D Ссылка на коллекцию 3D сплайнов.
Type Возвращает ссылку на тип объекта.
Visible Включает / отключает режим визуального отображения эскиза.


Создание 3D эскиза[править]

У коллекции Sketches3D имеется один метод создания эскиза — метод Add, не имеющий аргументов, поэтому создать новый 3D эскиз очень просто:

Public Sub AddSketch3D()

   'Ссылка на определение компонентов активного документа
   Dim oPartCompDef As PartComponentDefinition
   Set oPartCompDef = ThisApplication. _  
                ActiveDocument.ComponentDefinition
   
   'Создание трёхмерного эскиза
   Dim oSketch As Sketch3D
   Set oSketch = oPartCompDef.Sketches3D.Add
   
   'Переименование эскиза
   oSketch.Name = "Мой первый 3D эскиз"
   
End Sub


Получение доступа к существующему эскизу[править]

Общее количество 3D эскизов в документе детали возвращает свойство Count коллекции Sketches3D:
N = oPartCompDef.Sketches3D.Count

Чтобы получить ссылку на уже имеющийся в детали трехмерный эскиз, следует воспользоваться свойством Item коллекции Sketches3D. Можно адресоваться к эскизу по его порядковому номеру в коллекции:
Set oSketch = oPartCompDef.Sketches3D.Item(3) ‘ третий эскиз
Если заданный порядковый номер превысит Count, выполнение программы будет прервано. Контроль за диапазоном изменения индекса возлагается на вызывающую программу.

Более элегантным является получение ссылки на эскиз по его имени:
Set oSketch = oPartCompDef.Sketches3D.Item(“Каркас В1”)

Если в документе детали эскиза с таким именем не окажется, то произойдет ошибка. Поэтому вызывающей программе в этом месте непременно следует предпринимать меры по обработке возможных ошибок.

Создание элементов в эскизе[править]

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

  • SketchPoints3D
  • SketchLines3D
  • SketchCircles3D
  • SketchArcs3D
  • SketchEllipses3D
  • SketchEllipticalArcs3D
  • SketchFixedSplines3D
  • SketchSplines3D


Проверить работу коллекции

  • SketchEntities3D


Продемонстрировать изменение цвета эскизных элементов

Наложение геометрических зависимостей[править]

Доступ ко всем геометрическим зависимостям 3D эскиза обеспечивает объект GeometricConstraints3D. Эта коллекция имеет также методы и для создания новых зависимостей.

Методы коллекции GeometricConstraints3D:

Метод Выполняемое действие
AddCollinear зависимость колинеарности
AddCustom создает новую пользовательскую зависимость
AddGround фиксирующая зависимость (ground)
AddParallel зависимость параллельности
AddPerpendicular зависимость перпендикулярности
AddSmooth зависимость гладкости (G2-непрерывности)
AddTangent зависимость касательности. Требует как минимум одной общей точки


Свойства коллекции GeometricConstraints3D:

Свойство Возвращаемое значение
Application ссылка на объект Application
Count возвращает количество элементов в коллекции
Item возвращает объект эскизной геометрической 3D зависимости по ее порядковому номеру в коллекции
Type возвращает номер типа объекта


Примеры наложения геометрических зависимостей каждого типа.

Наложение размерных зависимостей[править]

Коллекция DimensionConstraints3D обеспечивает доступ ко всем имеющимся в 3D эскизе размерным ограничениям, а также методы для наложения новых.

Методы коллекции DimensionConstraints3D

Метод Выполняемое действие
AddLineLength Задает длину эскизной 3D линии
AddPointAndPlaneDistance Задает расстояние от точки до плоскости или плоской грани
AddTwoLineAngle Задает угловой размер между двух 3D линий. Линии должны быть копланарны (лежать в одной плоскости)
AddTwoPointDistance Задает расстояние между эскизной точкой и другой эскизной точкой, вершиной или рабочей точкой
GetDimensionPlane Method that gets the transient dimension plane used to place and position the dimension text when a dimension constraint is applied to the specified input entities.


Свойства коллекции DimensionConstraints3D

Свойство Возвращаемое значение
Application ссылка на объект Application
Count возвращает количество элементов в коллекции
Item возвращает объект эскизной размерной 3D зависимости по ее порядковому номеру в коллекции
Type возвращает номер типа объекта


Примеры наложения размерных зависимостей каждого сорта.

Примеры[править]

  • Средняя точка 3D линии
  • Бисекторная плоскость двугранного угла
  • Вставка ориентированного плоского эскиза
  • Импорт точек из внешней таблицы Excel
  • Импорт геометрии из пространства модели AutoCAD
  • Вычисление угла между осями и векторами
  • Вычисления угла между плоскостями
  • Пример изменения координат 3D точек (перемещение)