Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

API в разработке приложений Autodesk Inventor. Практическое руководство

Покупка
Основная коллекция
Артикул: 814547.01.99
Подробно рассматриваются этапы создания приложения от начала проектирования эскиза детали, сборки и до оформления чертежа. В среде разработки Visual Basic (VB) показано создание программы-оболочки EXE и наполнение ее рабочими примерами использования API. Рассмотрено модифицирование программы-оболочки для Add-In. Для студентов, изучающих информационные технологии. Может быть полезно широкому кругу читателей, интересующихся разработкой приложений, взаимодействующих с Autodesk Inventor (AI).
Дюймовский, П. API в разработке приложений Autodesk Inventor. Практическое руководство : учебное пособие / П. Дюймовский. - Москва ; Вологда : Инфра-Инженерия, 2023. - 376 с. - ISBN 978-5-9729-1190-5. - Текст : электронный. - URL: https://znanium.com/catalog/product/2092439 (дата обращения: 06.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Пайни Дюймовский





                API В РАЗРАБОТКЕ ПРИЛОЖЕНИЙ AUTODESK INVENTOR




ПРАКТИЧЕСКОЕ РУКОВОДСТВО
Учебное пособие












Москва Вологда «Инфра-Инженерия» 2023

УДК 004.41
ББК 32.972
      Д95



Рецензенты:

канд. техн. наук, доцент, доцент кафедры автоматики и вычислительной техники Вологодского государственного университета И. А. Андрианов; технический директор ООО «Лаборатория Поинт» А. А. Федотов



    Пайни Дюймовский
П16 API в разработке приложений Autodesk Inventor. Практическое руководство : учебное пособие / Пайни Дюймовский. - Москва ; Вологда : Инфра-Инженерия, 2023. - 376 с. : ил., табл.
          ISBN978-5-9729-1190-5


          Подробно рассматриваются этапы создания приложения от начала проектирования эскиза детали, сборки и до оформления чертежа. В среде разработки Visual Basic (VB) показано создание программы-оболочки EXE и наполнение ее рабочими примерами использования API. Рассмотрено модифицирование программы-оболочки для Add-In.
          Для студентов, изучающих информационные технологии. Может быть полезно широкому кругу читателей, интересующихся разработкой приложений, взаимодействующих с Autodesk Inventor (AI).

УДК 004.41
ББК 32.972









ISBN 978-5-9729-1190-5

© Дюймовский Пайни, 2023
        © Издательство «Инфра-Инженерия», 2023
                               © Оформление. Издательство «Инфра-Инженерия», 2023

            СОДЕРЖАНИЕ



     Введение..........................................................5

     Глава 1. Создаем скелет оболочки. Настраиваем связь с AI..........7
     1.1 Установка SDK...................................................7
1.2 Создание проекта программы-оболочки, ее настройкадля взаимодействия cAPI AI.............................................7

     Глава 2. Создание твердого тела..................................13
     2.1 Создание новой Детали........................................13
     2.2 Создание Эскиза в документе Детали и Сборки..................15
     2.3 Редактирование Эскиза........................................49
     2.4 Изменение ориентации (дислокации) Эскиза.....................58
     2.5 Добавление аннотаций в 3D-модель.............................73
     2.6 Создание Сопряжений Ребер, Фасок и Оболочки в 3D-модели.....109
     2.7 «Разбор Дерева» Детали......................................120

     Глава 3. Создание Сборки........................................121
     3.1 Создание новой Сборки.......................................121
     3.2 Добавление Деталей в Сборку.................................125
        3.2.1 Массив Деталей в Сборке................................132
     3.3 Зависимости в Сборке........................................138
        3.3.1 Прокси-объекты.........................................144
        3.3.2 Атрибуты...............................................171
        3.3.3 Ссылочные ключи........................................182
     3.4 Добавление ПодСборки и создание зависимости.................189
     3.5 «Разрезание» Сборки.........................................201
     3.6 Обход состава Сборки........................................207
        3.6.1 «Разрезание» ВСЕХДеталей в Сборке......................210

     Глава 4. Создание Чертежа.......................................221
     4.1 Создание новогоЧертежа......................................223
        4.1.1 Настройка формата чертежа..............................225
     4.2 Вставка базового вида модели и проекционных видов...........227
     4.3 Простановка размеров на видах...............................235
        4.3.1 Отображение 3D-аннотаций...............................235
        4.3.2 Извлечение размеров из 3D-модели.......................237
        4.3.3 Извлечение размеров из Эскиза 3D-модели................245
        4.3.4 Создание размеров с использованием геометрических привязок.248
        4.3.5 . Работа с рабочими элементами.........................260
     4.4 Создание сечения и выносного вида...........................267
     4.5 Создание вида с разрывом, местного разреза и обрезанного вида............................................................278
     4.6 Чертеж Сборки...............................................291
       4.6.1 Создание сечения и местного разреза на видах Чертежа Сборки................................................292
        4.6.2 Создание выносокс номерами позиций.....................295
        4.6.3 Создание списка Деталей на основе 3D-модели............315


3

Пайни Дюймовский API в разработке приложений Autodesk Inventor. Практическое руководство

О1 О1 О1 О1 К GO Ю

    Глава 5. Создание надстроекAdd-In для AI........................332
Создание проекта приложения Add-In...........................332
Отладка приложения Add-In....................................337
OформлениеAdd-In на основе шаблона...........................341
Создания дистрибутива приложения Add-In......................353
5.4.1 Инсталляция «инструмента» для создания «Установщика»................................................353
        5.4.2 Создание «Установщика»................................357
        5.4.3 Запуск созданного «Установщика».......................372

    Заключение......................................................375

4

            ВВЕДЕНИЕ



     Изложение настоящей книги будет строиться по следующей схеме:
     В среде разработки Visual Basic (VB) создадим программу-оболочку EXE и будем наполнять ее рабочими примерами использования API.
     Во второй части модифицируем программу-оболочку для Add-In, но созданные примеры будут работать точно так же (только в разы быстрее).
     Цель книги не написание учебника по программированию на VB (C# и т. п.), их написано немало и напишут еще, а максимально детальное знакомство и прикладное (практическое) применение средств API.
     Книга не претендует на освещение всех аспектов применения API, но я постарался включить в нее достаточное количество информации и изложить ее так, чтобы вы смогли начать писать собственные приложения сразу, по мере знакомства с тем или иным разделом.
     Не буду увеличивать объем книги путем многострочных листингов (только фрагменты кода, необходимо и достаточно для понимания). Все рабочие примеры, собранные в Module_Library, можно будет приобрести отдельно, отправив заявку по адресу payniinch@gmail.com.


     Используемые в книге термины (без претензии на объективность)
     Конструктивный элемент - примитив, созданный из контура, составленного из эскизных графических объектов (линия, дуга и т. п.). В качестве синонима для эскизный графический объект используется «эскизный объект», «эскизный элемент».
     Твердое тело - совокупность конструктивных элементов, может состоять и из одного конструктивного элемента.
     Компонент - синоним 30-модели.
     30-модель - общий термин, относится как к Детали, так и к Сборке.
     Объект (Entity) - применяется к любым объектам, которые можно выделить средствами пользовательского интерфейса. Это могут быть конструктивные элементы, размеры, грань твердого тела или окружность на Эскизе.


     Выделение текстом
     В тексте книги:
     -  объекты (объекта Sketch), при объяснении листинга кода (объекты Point2d);
     -  коллекции (коллекции .WorkPlanes);
     -      свойства, методы и аргументы (метод SketchLines.AddAsTwoPointRectangle, с аргументами oCoordStartl).
     Описание синтаксиса, аргументы:
StartPoint         - Объект, определяющий начальную точку линии. Это может
                      быть либо объект Point2d, определяющий точку х-y в.....
     объекты:
AddCoincident - Метод, создающий новую зависимость совмещения между двумя объектами. Одним из входных объектов должна быть точка эскиза. Другим объектом может быть точка..........................



5

Пайни Дюймовский API в разработке приложений Autodesk Inventor. Практическое руководство

     Структура «пояснений»
     1. Что делает метод и какого ОБЪЕКТА.
     2. Листинг кода.
     3. «Скрин» синтаксиса + пояснения.
     4. Пояснение листинга (что передаем в аргументы).
     Не могу не сказать теплые слова в адрес тех людей, без которых мне было бы намного труднее закончить эту книгу. Прежде всего, это относится к моей жене, которая вынуждена была считаться с тем, что я довольно долго все свободное время посвящал работе над книгой. Я выражаю благодарность художнице Марине Грауэрт за то, что она любезно согласилась оформить обложку для книги.

6

            ГЛАВА 1 СОЗДАЕМ СКЕЛЕТ ОБОЛОЧКИ. НАСТРАИВАЕМ СВЯЗЬ С AI



     Предполагается, что у Вас на ПК инсталлирован AI. На момент написания книги использовалась версия Autodesk Inventor Professional 2022.



        1.1 Установка SDK

     Для того, чтобы использовать информацию о возможности AI API «полной ложкой», установим SDK. Установочные файлы ЭОКобычно находятся в папке:
     “С:\Пользователи\Общие\Общие документы\Autodesk\Inventor 2022\SDK”
     В этой папке Вы увидите два файла: developertools.msi и usertools.msi. Файл developertools.msi устанавливает в Visual Studio шаблоны для создания AddIn, также содержит примеры на различных языках программирования, схему объектной модели Inventor и пр. Файл usertools.msi содержит дополнительные примеры для программирования. Запустите сначала developertools.msi (после инсталляции появится папка «DeveloperTools»), потом usertools.msi (соответственно, «UserTools»).
     Я надеюсь, не очень сильно Вас разочарую, но не могу об этом не предупредить: насколько бы Вы не были высокопрофессиональным программистом, Вам необходимо хотя бы работать в AI на уровне начального Пользователя, прежде чем Вы сможете осмысленно «запрограммить» (а не запустить на выполнение код, который что-то делает) то, что вы делаете «врукопашную» в AI. (Эка как завернул ©).



        1.2 Создание проекта программы-оболочки, ее настройка для взаимодействия cAPI AI

    Как я уже говорил, это не учебник по VB, поэтому здесь будет краткое описание создания скелета программы-оболочки для тестирования API. Я не буду навязывать тот или иной язык программирования и структуру программы, а уж тем более растекаться мыслью по древу, объясняя, что такое переменные, функции, классы и т. п. Каждый выберетдля себя наиболее знакомый и привычный вариант.
    Если кому-то понравится, то он остановится на предложенном варианте. И так: Скрибле-Скрабле-Бумс (или Рекс-Пекс-Фекс).
    За среду разработки возьмем MVSE 2017, создадим новый проект. В этой части книги рассматривается способ управления AI простым EXE приложением Windows Forms.



7

Пайни Дюймовский API в разработке приложений Autodesk Inventor. Практическое руководство

Назначим Имя и место Расположения проекта (на ваш выбор).

     Так вот, основным классом будет Forml с элементом ComboBoxI, для описания глобальных переменных создадим модуль Module_Value.


8

ГЛАВА 1 СОЗДАЕМ СКЕЛЕТ ОБОЛОЧКИ. НАСТРАИВАЕМ СВЯЗЬ С AI

     Для работы с Inventor API необходимо добавить в проект ссылку на интерфейсную DDL Инвентора с описанием его API - Autodesk.Inventor.Interop.dll.
     Так же, как и для создания модуля, во вкладке «Проект» находим пункт меню «Добавить ссылку...», в нижнем правом углу открывшейся формы нажимаем кнопку «Обзор...» и находим, выделяем файл Autodesk.Inventor.Interop.dll и нажимаем кнопку «ОК». Путь к файлу выглядит следующим образом, по крайне мере на моем ПК: “C:\Program Files\Autodesk\Inventor 2022\Bin\Public Assemblies”.
     В последующем, когда понадобится, вы будете подключать ссылки по этому же алгоритму (правда путь к файлам будет выглядеть иначе ©).
     После добавления к проекту сборки ссылки на Autodesk.Inventor.Interop.dll объекты Inventor API становятся доступными к просмотру в Обозревателе объектов. Обозреватель отображает иерархические связи между различными объектами. Вместе с навигацией по древовидному списку присутствует и поиск объектов по именам. Открыть Обозреватель можно следующим образом: перейти во вкладку «Просмотр», пункт меню «Обозреватель объектов».

9

Пайни Дюймовский API в разработке приложений Autodesk Inventor. Практическое руководство

Но мне больше нравится работать с интернет-ресурсом
(https://help.autodesk.com/view/INVNTOR/2022/ENU/?guid=GUID-902B2746-25C9-41A6-953E-C22C28C880AE).

     Теперь мы готовы (я бы сказал находимся в одном шаге ©) к использованию InventorAPI в коде MVSE Visual Basic.
     Продолжим настройку нашего проекта программы-оболочки для работы с AI. Добавим в него возможность создавать новый сеанс AI (при завершении работы программы сеанс AI также закроется) или подключатся к ранее запущенному сеансу AI (после завершении работы программы сеанс AI останется (не мной положено, не мной и возьмется ©)).
     Добавим в файл .vb класса Forml над строкой Public Class Form1 несколько пустых строк и на их место вставим несколько строк кода, начинаются с ключевого слова Imports.
     Ключевое слово Imports обеспечивает прямой доступ к классам, включенным в пространство имен, что избавляет от необходимости вводить полные длинные имена классов в тексте программы.


Imports System
Imports System.Type
Imports System.Activator
Imports System.Runtime.InteropServices
Imports Inventor


     Добавим в класс Forml следующие переменные:

    Dim _invApp As Inventor.Application
    Dim started As Boolean = False


10

ГЛАВА 1 СОЗДАЕМ СКЕЛЕТ ОБОЛОЧКИ. НАСТРАИВАЕМ СВЯЗЬ С AI

      Также в конструктор класса Form1.New() добавим вызов некоторых функций, назначение которых поясним ниже. (ВСЕ разлагольствования о переменных, функциях и т. п. относятся ТОЛЬКО к пониманию взаимодействия с Al API).

    Public Sub New()
        ' Этот вызов является обязательным для конструктора.
        InitializeComponent()
        ' Добавить код инициализации после вызова InitializeComponent(). Try
            _invApp = Marshal.GetActiveObject("Inventor.Application") Catch ex As Exception
            Try
                Dim invAppType As Type
                invAppType = GetTypeFromProgID("Inventor.Application")
                _invApp = CreateInstance(invAppType)
                _invApp.Visible = True
                'Примечание _started :
                'Данная логическая переменная служит индикатором, 'был ли данный сеанс Inventor создан нашей программой 'и требуется ли принудительное завершение сеанса 'по окончании работы нашего приложения.
                _started = True
            Catch ex2 As Exception
                MsgBox(ex2.ToString())
                MsgBox(,,Hе удалось ни найти, ни создать сеанс Inventor") End Try End Try End Sub

      Функция .GetActiveObject помогает найти существующий сеанс Al. Переданная в аргументе строка ''Inventor.Application" (если задержать на ней курсор «мыши», то мы увидим название аргумента, их тип и тип возвращаемого значения). Так вот, переданная в аргументе строка "Inventor.Application" известная как progID, указывает


            Try
                _invApp = Marshal.GetActiveObject(”Inventor.Application”) Catch ex As Exception
                Try
                     Dim invAppType As Ту

                   invAppType = GetType _invApp = Createlnst _invApp.Visible = Tr


ф Function Marshal.GetActiveObject(proglD As String) As Object
Obtains a running instance of the specified object from the running object table (ROT).

Исключения:
COMException

                     'Примечание _started


функции .GetActiveObject тип объекта, который следует искать.
     Рекс-Пекс-Фекс, елочка - гори! И после запуска нашей программы запустится (если не был ранее) и сеанс AI, если конечно он установлен на вашем ПК. Как в анекдоте: «Пациент со сложным переломом руки спрашивает доктора: Я смогу после снятия гипса играть на гитаре? Доктор отвечает, желая успокоить пациента: конечно сможете. Доктор, вы ВОЛШЕБНИК, - восклицает пациент, - до перелома я не умел играть на гитаре!»).
     Переменная _started как раз и показывает, сами мы запустили сеансА1 или нет.
     Тогда при получении программой-оболочкой события FormClosed, в зависимости отзначения переменной _started = True, сеансА1 завершается.


11

Пайни Дюймовский API в разработке приложений Autodesk Inventor. Практическое руководство

    Private Sub Form1_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed
        ' Закроем сеанс Inventor, если он был создан при создании формы
        If _started Then _invApp.Quit() End If _invApp = Nothing End Sub


     Ну вот, теперь настройка взаимодействия программы-оболочки с AI завершена, и можно наполнять ее содержанием.
     Еще раз повторюсь, в этой книге я никого не учу программировать на VB или каком другом языке, просто объясню, как это оформлено у меня.
     Для объяснения и понимания легче, когда разбор действия объекта AI API минимален и достаточен для того, чтобы отобразить его действие. Поэтому мы будем оформлять процедуры или функции в отдельном модуле (создадим и назовем его Module_Library. А проверять их действие - выбирая в элементе ComboBoxI.
     Активную платформу решения выберем х64 и проконтролируйте, чтобы использовалась платформа .NET Framework 4.7, иначе не все подключаемые ссылки на dll будут работать корректно.


Ну, что ж, приступим к наполнению модуля Module_Library.

12