Объектная модель Inventor
Объектная модель Inventor — это иерархическая структура программных объектов, интерфейсов и их взаимосвязей, которая лежит в основе программного интерфейса приложений (API) системы автоматизированного проектирования (САПР) Autodesk Inventor. Данная модель предоставляет разработчикам доступ к геометрическим, параметрическим, документным и пользовательским элементам программы, позволяя автоматизировать процессы трёхмерного моделирования, создания чертежей, сборок и расчётов. Объектная модель является фундаментом для написания макросов, модулей и внешних приложений на языках VBA, C++ (через Native API) и .NET (C#, VB.NET).
Архитектура и иерархия
Объектная модель Inventor построена по принципу «родитель-потомок», где каждый объект (кроме корневого) имеет ровно один родительский объект. Корнем иерархии является объект Application, который представляет собой запущенный экземпляр программы.
Основные уровни
- Application (Приложение) — верхний уровень. Управляет глобальными настройками, коллекцией открытых документов, пользовательским интерфейсом, событиями и лицензированием.
- Documents (Документы) — коллекция всех открытых документов. Каждый документ относится к одному из типов: PartDocument (деталь), AssemblyDocument (сборка), DrawingDocument (чертёж), PresentationDocument (презентация) и другие.
- Document (Документ) — конкретный файл. Содержит ссылки на свои компоненты: сборки (ComponentDefinition), детали (PartComponentDefinition), чертежи (Sheet) и т.д.
- ComponentDefinition (Определение компонента) — логическое описание геометрии и свойств детали или сборки. Для детали это PartComponentDefinition, для сборки — AssemblyComponentDefinition.
- Geometric Elements (Геометрические элементы) — объекты, представляющие трёхмерную геометрию: вершины (Vertex), рёбра (Edge), грани (Face), поверхности (Surface), кривые (Curve) и тела (Body).
- Features (Конструктивные элементы) — операции, формирующие геометрию: выдавливания (Extrude), вращения (Revolve), отверстия (Hole), фаски (Chamfer), скругления (Fillet) и прочие.
- Sketches (Эскизы) — двумерные профили, на основе которых создаются конструктивные элементы. Содержат точки, линии, дуги, окружности и размерные зависимости.
- Parameters (Параметры) — числовые величины, управляющие размерами, положениями и свойствами модели. Бывают пользовательские, модельные и ссылочные.
- User Interface (Пользовательский интерфейс) — объекты для управления лентой, панелями инструментов, меню, диалоговыми окнами и командной строкой.
Ключевые объекты и интерфейсы
Application
Объект Application является единственной точкой входа в API. Через него можно получить доступ к:
- Documents — коллекция открытых документов.
- CommandManager — управление выполнением команд.
- UserInterfaceManager — настройка интерфейса.
- Events — подписка на события (открытие/закрытие документа, изменение параметров, завершение команды).
- VBAProjects — доступ к проектам VBA внутри документа.
Document и его типы
Каждый документ имеет свой набор методов и свойств. Например:
- PartDocument — содержит PartComponentDefinition, который включает коллекции тел (SurfaceBodies), конструктивных элементов (Features) и эскизов (Sketches).
- AssemblyDocument — содержит AssemblyComponentDefinition, который управляет коллекцией компонентов (Occurrences), связями (Constraints) и представлениями (Representations).
- DrawingDocument — содержит коллекцию листов (Sheets), каждый из которых включает виды (DrawingView), размеры (Dimension) и аннотации.
ComponentDefinition
Этот объект является центральным для работы с геометрией. Для детали:
- SurfaceBodies — коллекция трёхмерных тел.
- Features — коллекция конструктивных элементов.
- Sketches — коллекция эскизов.
- WorkPoints, WorkAxes, WorkPlanes — вспомогательные геометрические объекты.
Для сборки:
- Occurrences — коллекция экземпляров компонентов (деталей или подсборок).
- Constraints — коллекция сопряжений (сборок).
- Representations — представления (позиционные, видовые, уровни детализации).
Parameters
Параметры делятся на три категории:
- ModelParameters — параметры, создаваемые конструктивными элементами (например, глубина выдавливания).
- UserParameters — пользовательские переменные, задаваемые вручную.
- ReferenceParameters — параметры, ссылающиеся на другие параметры или выражения.
Параметры могут быть связаны математическими выражениями, что позволяет создавать параметрические модели.
Применение объектной модели
Объектная модель Inventor используется для решения широкого круга задач автоматизации:
Автоматизация проектирования (CAD Automation)
- Генерация типовых деталей — создание параметрических моделей с изменяемыми размерами (например, болты, валы, корпуса).
- Сборка изделий — автоматическая расстановка компонентов и наложение сопряжений на основе данных из Excel или базы данных.
- Создание чертежей — автоматическое размещение видов, простановка размеров и создание спецификаций.
Интеграция с другими системами
- PLM/PDM — синхронизация данных между Inventor и системами управления жизненным циклом изделия (например, Autodesk Vault, Teamcenter).
- ERP — передача геометрических и технологических параметров в корпоративные системы планирования.
- CAE — экспорт моделей для конечно-элементного анализа (Ansys, Abaqus).
Расчёт и анализ
- Извлечение масс-инерционных характеристик — получение массы, центра масс, моментов инерции для сборок.
- Проверка коллизий — анализ пересечений компонентов в сборке.
- Оптимизация — изменение параметров для поиска наилучшего решения (например, минимальная масса при заданной прочности).
Примеры использования
Пример 1: Создание детали через VBA
```vba Sub CreateBracket() Dim invApp As Inventor.Application Set invApp = GetObject(, "Inventor.Application")
Dim partDoc As PartDocument Set partDoc = invApp.Documents.Add(kPartDocumentObject, , True)
Dim partDef As PartComponentDefinition Set partDef = partDoc.ComponentDefinition
' Создание эскиза Dim sketch As PlanarSketch Set sketch = partDef.Sketches.Add(partDef.WorkPlanes(3))
' Рисование прямоугольника Dim lines As Lines2d Set lines = sketch.SketchLines Call lines.AddAsTwoPointRectangle( _ invApp.TransientGeometry.CreatePoint2d(0, 0), _ invApp.TransientGeometry.CreatePoint2d(100, 50))
' Выдавливание Dim ext As ExtrudeFeature Set ext = partDef.Features.ExtrudeFeatures.Add( _ sketch.Profiles.AddForSolid, _ kPositiveExtentDirection, _ invApp.TransientGeometry.CreatePoint(0, 0, 0), _ 20) End Sub ```
Пример 2: Извлечение параметров сборки
```csharp // C# с использованием Inventor.Interop Inventor.Application app = (Inventor.Application)Marshal.GetActiveObject("Inventor.Application"); Inventor.Document doc = app.ActiveDocument;
if (doc.DocumentType == Inventor.DocumentTypeEnum.kAssemblyDocumentObject) { Inventor.AssemblyDocument asmDoc = (Inventor.AssemblyDocument)doc; Inventor.AssemblyComponentDefinition asmDef = asmDoc.ComponentDefinition;
foreach (Inventor.ComponentOccurrence occ in asmDef.Occurrences) { Console.WriteLine($"Компонент: {occ.Name}, Масса: {occ.MassProperties.Mass}"); } } ```
Инструменты разработки
Для работы с объектной моделью Inventor используются следующие инструменты:
- VBA (Visual Basic for Applications) — встроенный макроязык, доступный непосредственно в Inventor. Позволяет создавать макросы и формы.
- Inventor API (C++ Native API) — низкоуровневый интерфейс на C++, предоставляющий максимальную производительность и полный доступ к функциям.
- Inventor .NET API — управляемая обёртка для языков .NET (C#, VB.NET). Рекомендуется для создания внешних приложений и плагинов.
- iLogic — встроенный язык правил, основанный на VB.NET, предназначенный для автоматизации без глубокого программирования.
- Object Browser — встроенный в VBA-редактор инструмент для просмотра иерархии объектов, методов и свойств.
Ограничения и особенности
- Однопоточность — API Inventor не является потокобезопасным. Все вызовы должны выполняться из основного потока приложения.
- Производительность — при работе с большими сборками (тысячи компонентов) операции могут выполняться медленно. Рекомендуется использовать пакетную обработку и отключать обновление экрана (
Application.ScreenUpdating = False). - Версионность — объектная модель может меняться между версиями Inventor. Некоторые методы и свойства помечены как устаревшие (deprecated) и могут быть удалены в будущих версиях.
- Лицензирование — для разработки и распространения коммерческих приложений требуется лицензия на Autodesk Inventor и, возможно, заключение партнёрского соглашения с Autodesk.
Интересные факты
- Объектная модель Inventor насчитывает более 1000 классов и интерфейсов.
- Первая версия API для Inventor (R1) была выпущена в 1999 году вместе с самой программой.
- iLogic, появившийся в Inventor 2009, стал одним из самых популярных инструментов автоматизации среди инженеров, не имеющих навыков программирования.
- С помощью объектной модели можно автоматически создавать анимации разнесения сборок (Presentation) и экспортировать их в видеофайлы.
Источники
- Autodesk Inventor API Developer's Guide (официальная документация Autodesk)
- Autodesk Inventor 2024 API Reference Manual
- Книга: «Autodesk Inventor 2023: A Tutorial Introduction» by L. Scott Hansen
- Статья: «Automating Inventor with VBA and .NET» на портале Autodesk University
- Справочник по объектной модели Inventor в составе SDK (Software Development Kit)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →