Autodesk Inventor API. Первые шаги/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 точек (перемещение)