Научный журнал
Современные наукоемкие технологии
ISSN 1812-7320
"Перечень" ВАК
ИФ РИНЦ = 0,916

ПРИМЕНЕНИЕ API AUTODESK INVENTOR ДЛЯ АВТОМАТИЗИРОВАННОГО ПАРАМЕТРИЧЕСКОГО МОДЕЛИРОВАНИЯ МАШИНОСТРОИТЕЛЬНЫХ ДЕТАЛЕЙ

Джунковский А.В. 1 Холодов Д.А. 1 Чикунов И.М. 1
1 Московский политехнический университет
Рассматривается возможность применения API популярной CAD-системы Autodesk Inventor для решения задачи параметрического моделирования машиностроительных деталей на примере шкива клиноременной передачи. Задача моделирования решается с помощью разработки специализированого программного обеспечения с использованием COM-технологии в интегрированной среде разработки Microsoft Visual Studio на языке С++. Приводится программный код подключения к Autodesk Inventor как к COM-серверу. Излагается методика параметрического моделирования шкива клиноременной передачи в соответствии с ГОСТ 20889-88 с использованием твердотельных операций вращения, выдавливания, линейного копирования, вызываемых с помощью API. Даются комментарии по некоторым важным параметрам используемых API. Разработанное программное обеспечение позволяет получать различные конфигурации шкива клиноременной передачи на основании выбранных пользователем в диалоговом режиме геометрических параметров построения. В результате анализа достигнутых в работе результатов делается вывод об эффективности выбранных методов и средств решения поставленной задачи по автоматизированному параметрическому моделированию. Отмечается, что направлением развития изложенной в статье технологии может быть автоматизированное параметрическое моделирование сборочных единиц, то есть создание полноценных конфигураторов машиностроительных изделий с интерактивным пользовательским интерфейсом.
параметрическое моделирование
API
Autodesk Inventor
Microsoft Visual Studio
C++
COM
1. Фролов И. Параметрическое моделирование: описание, методы, обзор программ [Электронный ресурс]. URL: https://fb.ru/article/459680/parametricheskoe-modelirovanie-opisanie-metodyi-obzor-programm (дата обращения: 20.07.2019).
2. Притыкин Ф.Н., Шмуленкова Е.Е. Основные элементы САПР металлорежущих инструментов при использовании параметрического 3d моделирования // Омский научный вестник. 2012. № 1 (107). С. 277–282.
3. Duy Nguyen Duc. Autodesk Inventor Programming In C++. [Электронный ресурс]. URL: https://ru.scribd.com/document/362667271/Autodesk-Inventor-Programming-In-C (дата обращения: 20.07.2019).
4. ГОСТ 20889-88 Шкивы для приводных клиновых ремней нормальных сечений. Общие технические условия. М.: Издательство стандартов, 1988. 16 с.
5. Николай Свирневский. Обзор способов доступа к Inventor API. [Электронный ресурс]. URL: https://api-2d3d-cad.com/view_inventor_api (дата обращения: 20.07.2019).

Проблема параметрического трехмерного моделирования машиностроительных и не только изделий изучается достаточно активно [1, 2]. Она наиболее актуальна при разработке «семейств» типовых изделий, отличающихся друг от друга габаритами, пропорциями, наличием или отсутствием каких-либо незначительных конструктивных элементов. Характерным примером такой ситуации может служить необходимость моделирования деталей, геометрия которых описывается некоторым набором стандартизированных параметров: разнотипные муфты, шкивы, звездочки и т.д.

Зачастую разработчики современных САПР пытаются выходить из этой ситуации посредством создания специализированных библиотек компонентов, представляющих собой набор заранее смоделированных изделий, хранящийся на диске вместе с установленной САПР. Следует отметить, что создание таких библиотек практически всегда доступно пользователю, что является несомненным плюсом. Однако размер хранимой на диске информации в этом случае может достигать гигантских значений.

Еще один известный подход к решению данной задачи – параметризация модели «внутри» САПР. Суть его достаточна проста: разрабатываемой модели присваивается набор геометрических параметров или зависимостей, изменение которых приводит к видоизменению конфигурации модели. Это достаточно гибкий и эффективный метод, но все же ограниченный возможностями параметризации в конкретной САПР.

Следующий вариант решения задачи параметрического моделирования условно можно назвать параметризацией «извне» САПР. Основой этого процесса является предоставление разработчиком САПР пользователю интерфейсов программного взаимодействия – API (application programming interface), через которые программным образом возможно выполнить все действия по построению модели [3].

Приведенное в данной статье исследование было проведено с целью изучения применимости метода автоматизированного параметрического построения машиностроительных деталей с помощью API на примере реального изделия – шкива клиноременной передачи.

Материалы и методы исследования

В качестве тестовой платформы для проведения был выбран Autodesk Inventor как наиболее динамично развивающаяся на данный момент САПР. Вместе с тем следует заметить, что аналогичное решение может быть применено и к другим САПР, например SolidWorks или КОМПАС-3D. Для разработки программного кода C++ авторы использовали Microsoft Visual Studio 2017, как одну из самых мощных интегрированных сред на сегодняшний момент. Рассмотрим общие вопросы внешнего подключения к Autodesk Inventor через API. В первую очередь необходимо включить в проект библиотеку типов RxInventor.tlb, поставляемую вместе с данной САПР. После чего можно организовывать программный запуск Autodesk Inventor. Процесс запуска реализуется с помощью кода, приведенного в рис. 1.

Необходимо было выбрать некую конкретную машиностроительную деталь, параметрическое моделирование которой с помощью API можно было провести в целях исследования возможностей изучаемой технологии. Такой деталью авторами был выбран шкив клиноременной передачи как достаточно сложный объект, который в соответствии с ГОСТ 20889-88 описывается сравнительно небольшим набором параметров, приведенных на рис. 2.

На рис. 1 приняты следующие обозначения: Wp – расчетная ширина канавки шкива, b – глубина канавки над расчетной шириной, dp – расчетный диаметр шкива, h – глубина канавки ниже расчетной ширины, e – расстояние между осями канавок, f – расстояние между осью крайней канавки и ближайшим торцом шкива, α – угол канавки шкива, de – наружный диаметр шкива, r – радиус закругления верхней кромки канавки шкива, M – ширина шкива, L – ширина шкива со ступицей, d1 – диаметр посадочного отверстия, d – наружный диаметр ступицы.

dzunkov1.wmf

Рис. 1. Запуск Autodesk Inventor

dzunkov2.tif

Рис. 2. Параметры монолитного одностороннего шкива с выступающей ступицей по ГОСТ 20889-88

dzunkov3.tif

Рис. 3. Экранная форма ввода параметров

Исходя из табл. 2 из [4] очевидно, что для определения геометрии шкива и, следовательно, его построения необходимо задать следующие параметры: сечение ремня (Z, А, B, С, D, E, E0), b, e, h, α dp, N, L, d1 и d. Тогда:

dzunk01.wmf

dzunk02.wmf

Для задания пользователем перечисленных выше параметров была создана экранная форма, вид которой представлен на рис. 3.

На основе полученных из экранной формы значений по формулам рассчитываются значения М и de, остальные определяются с учетом требований табл. 2 из [4].

Начальный этап построения шкива производится через создание образующего эскиза и вращения его вокруг оси Х. При построении эскиза (объект PlanarSketch) целесообразно предварительно простроить его «характерные» точки с помощью функций MethodCreatePoint2d объекта TransientGeometry. В нашем случае такими точками являются точки пересечения образующих прямых профиля шкива. Указатель на каждую построенную точку целесообразно сохранять в объектах типа SketchPointPtr для дальнейшего использования в построении.

После расчета координат характерных точек эскиза и их построения в Autodesk Inventor можно переходить к созданию производящего контура для будущей твердотельной операции вращения. Такой контур при построении шкива создается путем соединения ранее полученных точек отрезками прямых линий (SketchLine). Для этого используется функция MethodAddByTwoPoints коллекции SketchLines. Результат построения представлен на рис. 4.

dzunkov4.tif

Рис. 4. Характерные точки эскиза, соединенные линиями

Для проверки пригодности построенного контура для использования в качестве производящего для твердотельных операций предназначена функция AddForSolid коллекции Profiles объекта PlanarSketch. В случае если возвращаемое ей значение типа HRESULT меньше нуля или происходит runtime ошибка – контур не пригоден для построения. В большинстве случаев это связано с тем, что в проверяемом контуре имеются самопересечения или он не замкнут. При положительном исходе проверки можно приступать к твердотельным операциям. Следует отметить, что API Autodesk Inventor связанные с твердотельными построениями имеют постфикс Feature, так, например, операция вращения – RevolveFeature, выдавливания ExtrudeFeature. При построении шкива мы воспользуемся операцией вращения, обратившись к методу AddFull коллекции RevolveFeatures, запомнив указатель на вновь создаваемую Feature в объекте типа RevolveFeaturePtr.

Следующим шагом построения шкива является создание сопряжений (скруглений) ребер верхней кромки наружной канавки. Для этого предназначен API FilletFeature. На этом этапе нас ждут определенные затруднения, связанные с определением параметров для вызова интерфейса FilletFeature. При работе в интерактивном режиме указание ребер и граней, по которым создается скругление, не вызывает каких-либо трудностей – пара кликов мышью, и результат готов. В случае работы через API возникает необходимость однозначной программной идентификации ребра или грани, участвующей в построении, проще говоря, нужно определить их порядковые номера в соответствующих коллекциях.

Тривиальный способ «перебора» может быть применен только в случае если деталь достаточно проста и размеры коллекций ребер и граней невелики. А что делать если деталь содержит несколько сотен, а то и тысяч ребер?

Для решения этой задачи авторами предлагается следующий метод. API Autodesk Inventor содержит объект Selection, являющийся контейнером для всех выделенных пользователем в интерактивном режиме элементов модели. При написании программ параметрического построения моделей с помощью API можно в нужный момент времени выполнения программы сделать «остановку», перейти в интерактивный режим, выделить все интересующие элементы модели, тем самым записав их в Selection. После этого простым циклическим проходом «просмотреть» коллекции граней и ребер с поиском в них объектов, одновременно находящихся в Selection. Найденные соответствия в Selection и в коллекции граней и ребер однозначно определяют искомые для построения объекты.

Итак, определив номера объектов для скругления в коллекциях и поместив их в объекты типа EdgeCollection или FaceCollection, можно приступать к построению FilletFeature. Для этого воспользуемся функцией AddSimple, указав необходимый радиус скругления.

На этом этапе мы получили шкив для передачи с одним ремнем. Нам необходимо отработать вариант с неограниченным количеством ремней. Очевидно, что возможны два пути решения этой задачи.

Во-первых, можно вносить изменения в производящий эскиз. Этот способ обладает очевидным недостатком, так как повлечет за собой излишние затраты производительности на многократные построения идентичных участков твердого тела на основании пародической структуры эскиза. Второй путь – использование операций построения твердотельных массивов, который лишен этого недостатка. Для построения шкива будем использовать прямоугольный твердотельный массив. Шаг массива нам известен и составляет e. Для создания прямоугольного массива воспользуемся объектом RectangularPatternFeature, предварительно установив ее параметры в RectangularPatternFeatureDefinition и реализовав их через AddByDefinition.

Далее нам необходимо достроить отступы первой и последней канавок шкива от торца. Для этого построим два эскиза, содержащие по одной окружности диаметром de: первый в координатной плоскости, совпадающей с торцом шкива, второй в предварительно смещенной на расстояние N*e от торца с помощью функции AddByPlaneAndOffset дополнительной рабочей плоскости. По каждому из полученных контуров произведем операции выдавливания на разнонаправленное расстояние f-e/2.

Завершающим этапом построения шкива является создание ступицы. Ее геометрия определяется параметрами L, d и d1. Построение производится через две последовательные операции выдавливания с производными эскизами, представляющими собой окружности с центром на оси вращения шкива. Первая операция выдавливания ExtrudeFeature диаметром d производится на длину L с установкой параметра kJoinOperation, что инициирует создание твердого тела. Вторая операция с диаметром d1 прорезает отверстие через все тело, требует установки параметра kCutOperation и использования функции MethodAddByThroughAllExtent.

Результаты исследования и их обсуждение

Некоторые результаты работы программы автоматизированного параметрического построения шкива клиноременной передачи представлены на рис. 5.

Очевидно, что рассмотренный метод параметрического моделирования достаточно эффективен и применим к построению моделей машиностроительных изделий. Некоторые сложности в его применении могут возникать вследствие необходимости наличия программистских компетенций у инженеров его использующих. Однако на современном этапе развития инженерной науки и образования данные компетенции уже не являются редкостью, а скорее входят в стандарт подготовки специалиста высокого класса. К тому же разработка таких программ, по крайней мере для Autodesk Inventor, возможна не только на достаточно сложном для освоения C++, но и, например, на Visual Basic [5].

dzunkov5a.tif dzunkov5b.tif dzunkov5c.tif

Рис. 5. Некоторые результаты построения

Также следует отметить, что такого рода программы с успехом могут являться частью более сложных подсистем, содержащих модули прочностного или иного расчета конструкции.

Заключение

Изложенный выше материал показывает возможность применения API Autodesk Inventor к задаче автоматизированного параметрического моделирования машиностроительных изделий. Данный метод обладает рядом преимуществ по сравнению с аналогами. Вместе с тем авторы предполагают развивать изучение использования API Autodesk Inventor в направлении автоматизированного проектирования сборочных единиц с целью создания полноценного конфигуратора.


Библиографическая ссылка

Джунковский А.В., Холодов Д.А., Чикунов И.М. ПРИМЕНЕНИЕ API AUTODESK INVENTOR ДЛЯ АВТОМАТИЗИРОВАННОГО ПАРАМЕТРИЧЕСКОГО МОДЕЛИРОВАНИЯ МАШИНОСТРОИТЕЛЬНЫХ ДЕТАЛЕЙ // Современные наукоемкие технологии. – 2019. – № 9. – С. 75-79;
URL: http://top-technologies.ru/ru/article/view?id=37669 (дата обращения: 05.04.2020).

Предлагаем вашему вниманию журналы, издающиеся в издательстве «Академия Естествознания»
(Высокий импакт-фактор РИНЦ, тематика журналов охватывает все научные направления)

«Фундаментальные исследования» список ВАК ИФ РИНЦ = 1.074