Открыть сервис

Объектная модель Inventor

Объектная модель Inventor — это иерархическая структура программных объектов, интерфейсов и их взаимосвязей, которая лежит в основе программного интерфейса приложений (API) системы автоматизированного проектирования (САПР) Autodesk Inventor. Данная модель предоставляет разработчикам доступ к геометрическим, параметрическим, документным и пользовательским элементам программы, позволяя автоматизировать процессы трёхмерного моделирования, создания чертежей, сборок и расчётов. Объектная модель является фундаментом для написания макросов, модулей и внешних приложений на языках VBA, C++ (через Native API) и .NET (C#, VB.NET).

Архитектура и иерархия

Объектная модель Inventor построена по принципу «родитель-потомок», где каждый объект (кроме корневого) имеет ровно один родительский объект. Корнем иерархии является объект Application, который представляет собой запущенный экземпляр программы.

Основные уровни

  1. Application (Приложение) — верхний уровень. Управляет глобальными настройками, коллекцией открытых документов, пользовательским интерфейсом, событиями и лицензированием.
  2. Documents (Документы) — коллекция всех открытых документов. Каждый документ относится к одному из типов: PartDocument (деталь), AssemblyDocument (сборка), DrawingDocument (чертёж), PresentationDocument (презентация) и другие.
  3. Document (Документ) — конкретный файл. Содержит ссылки на свои компоненты: сборки (ComponentDefinition), детали (PartComponentDefinition), чертежи (Sheet) и т.д.
  4. ComponentDefinition (Определение компонента) — логическое описание геометрии и свойств детали или сборки. Для детали это PartComponentDefinition, для сборки — AssemblyComponentDefinition.
  5. Geometric Elements (Геометрические элементы) — объекты, представляющие трёхмерную геометрию: вершины (Vertex), рёбра (Edge), грани (Face), поверхности (Surface), кривые (Curve) и тела (Body).
  6. Features (Конструктивные элементы) — операции, формирующие геометрию: выдавливания (Extrude), вращения (Revolve), отверстия (Hole), фаски (Chamfer), скругления (Fillet) и прочие.
  7. Sketches (Эскизы) — двумерные профили, на основе которых создаются конструктивные элементы. Содержат точки, линии, дуги, окружности и размерные зависимости.
  8. Parameters (Параметры) — числовые величины, управляющие размерами, положениями и свойствами модели. Бывают пользовательские, модельные и ссылочные.
  9. 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 →