API в разработке приложений Autodesk Inventor. Практическое руководство
Покупка
Основная коллекция
Тематика:
Программы-оболочки
Издательство:
Инфра-Инженерия
Автор:
Дюймовский Пайни
Год издания: 2023
Кол-во страниц: 376
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-9729-1190-5
Артикул: 814547.01.99
Подробно рассматриваются этапы создания приложения от начала проектирования эскиза детали, сборки и до оформления чертежа. В среде разработки Visual Basic (VB) показано создание программы-оболочки EXE и наполнение ее рабочими примерами использования API. Рассмотрено модифицирование программы-оболочки для Add-In. Для студентов, изучающих информационные технологии. Может быть полезно широкому кругу читателей, интересующихся разработкой приложений, взаимодействующих с Autodesk Inventor (AI).
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов.
Для полноценной работы с документом, пожалуйста, перейдите в
ридер.
Пайни Дюймовский 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