Scientific journal
Modern high technologies
ISSN 1812-7320
"Перечень" ВАК
ИФ РИНЦ = 0,940

USAGE OF AUTODESK INVENTOR API FOR AUTOMATIC PARAMETRIC MODELLING OF ENGINEERING PARTS

Dzhunkovskiy A.V. 1 Kholodov D.A. 1 Chikunov I.M. 1
1 Moscow State Technical University
The possibility of using the API of the popular CAD system Autodesk Inventor to solve the problem of parametric modeling of machine parts on the example of a V-belt pulley is considered. The problem of modeling is solved by developing specialized software using COM-technology in the integrated development environment of Microsoft Visual Studio in C++. The program code of connection to Autodesk Inventor as to COM-server is given. The technique of parametric modeling of the V-belt drive pulley in accordance with GOST 20889-88 with the use of solid-state operations of rotation, extrusion, linear copying, called using the API. Comments are given on some important parameters of the API used. The developed software allows to obtain different configurations of the V-belt pulley on the basis of the geometric parameters selected by the user in the dialog mode. As a result of the analysis of the results achieved in the work, the conclusion is made about the effectiveness of the selected methods and means of solving the problem of automated parametric modeling. It is noted that the direction of development of the technology described in the article can be automated parametric modeling of Assembly units, that is, the creation of full-fledged configurators of engineering products with an interactive user interface.
parametric modelling
API
Autodesk Inventor
Microsoft Visual Studio
C++
COM

Проблема параметрического трехмерного моделирования машиностроительных и не только изделий изучается достаточно активно [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 в направлении автоматизированного проектирования сборочных единиц с целью создания полноценного конфигуратора.