Назад в библиотеку

Исследование API САПР CATIA V5 и перспективы развития создания приложений в ней

Автор: Бондаренко Е.С., Григорьев А.В.
Источник: Материалы студенческой секции X Международной научно-технической конференции «Информатика, управляющие системы, математическое и компьютерное моделирование» (ИУСМКМ - 2019). – Донецк: ДОННТУ, 2019. –с. 105-109.

Аннотация

Бондаренко Е.С., Григорьев А.В. Исследование API САПР CATIA V5 и перспективы развития создания приложений в ней. В работе проведен сравнительный анализ геометрических ядер САПР. Выделены преимущества использования языка программирования Python для создания приложений и рассмотрены перспективы развития API САПР.

Введение

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

Тогда на помощь специалистам приходит интерфейс прикладного программирования (API), то есть некоторый набор готовых классов, процедур, функций, структур и констант, созданный для упрощения написания пользовательских программных модулей, интегрированных с САПР. Наличие в CAD-системах API позволяет осуществлять тонкую настройку системы проектирования и помогает сократить время разработки дополнительных программных компонентов к уже имеющейся на предприятии САПР.

Однако ни одна из имеющихся систем автоматизированного проектирования не обладает полным набором функциональных возможностей для ее полноценного использования специалистами.

Целью работы является исследование возможности использования языка Python в среде САПР Catia V5 для создания дополнительных модулей и приложений. Для достижения поставленной цели были выявлены следующие задачи:

API в CATIA V5 и его особенности

Зачем API в САПР?

1. Автоматизация чертежей;

2. Упрощение создания и редактирования чертежей.

API дает возможность полностью контролировать исходный код, оперативно исправлять ошибки и наращивать функционал. Это в своих системах используют разработчики CATIA, NX, Creo Elements/Pro, Solid Edge, Autodesk Inventor, think3, КОМПАС-3D.

Новая разработка, получившая кодовое имя CNext, в 1998 году стала известной всему миру под названием CATIA V5. Она имеет открытую архитектуру — в нее можно вставить собственные наработки и программы (например, тепловой расчет и т.д.), функции, необходимые для расширения возможностей специализированных модулей. Использование программирования на языках VB CATIA, Java, C++, VBA, Basic Script позволяет автоматизировать весь процесс проектирования. API для CATIA называется «CAA» - сокращение от Component Application Architecture. Этот API написан на C ++. CATIA имеет другие API, основанные на Microsoft Visual Basic и Java, но они не такие полнофункциональные и не такие гибкие, как CAA C ++ API. Вместо устаревшего Fortran в качестве языка программирования был выбран С++, а геометрическое ядро новой системы получило название CGM – CNext/CATIA Geometric Modeler.

Особенности работы с интерфейсом прикладного программирования прописываются в технической документации. Здесь же указывается, какие значения необходимо подавать на вход конкретной функции, чтобы получить на ее выходе корректные значения, согласно предназначению данной функции. Таким образом, API позволяет абстрагироваться от реализации отдельных программных блоков при разработке приложений. Наиболее явно эта концепция раскрывается на примере черного ящика (рис. 1).

pic1

Рисунок 1 – «Черный ящик»

Физически API-функции представляются в виде отдельного программного модуля, который динамически подключается извне к основному проекту в формате DLL-библиотеки.

В целом, приложения для CATIA можно писать в виде:

1. Макросов *.catvba, cкриптов *.CATScript;

2. Автономных приложений, скомпилированных в *.exe-файл. Можно использовать любой язык программирования, например VB6, C#, Delphi. При этом взаимодействие с CATIA происходит как с COM-объектом;

3. В виде приложений, плагинов, используя CAA-RADE - на С++.

Самый простой вариант - это приложения в виде макросов *.catvba. Cоздать макрос в CATIA можно так: меню Tools / Macro / Macros... Далее на кнопку Macro libraries... / выбрать Library type - VBA projects / Create new library. Потом в этом макросе *.catvba можно добавить модули - кнопкой Create в окне Macros, а также в редакторе Microsoft Visual Basic - модули, формы, классы.

Пример создания макроса для редактирования имен Part’ов.

Sub CATMain()

Dim sel As Selection

Dim i As Long

Dim iProd As Product

Set sel = CATIA.ActiveDocument.Selection

If sel.Count > 0 Then

For i = 1 To sel.Count

If sel.Item(i).Type = "Product" Then

Set iProd = sel.Item(i).Value

MsgBox iProd.Name

End If

Next

End If

End Sub.

Пакет геометрического моделирования – набор библиотек с программным интерфейсом (API), с помощью которого можно пользоваться функциями геометрического (например, твердотельного) моделирования. Многие ведущие CAD-системы (CATIA, Pro/E, NX) построены на основе собственных геометрических ядер (CGM, GRANITE, Parasolid соответственно), тогда как другие (SolidWorks, T-FLEX, ADEM и прочие) построены на основе лицензированных геометрических ядер. Популярными коммерческими ядрами являются Parasolid (от компании UGS), ACIS (Spatial Corp. – дочерней компанией Dassault Systems), GRANITE (PTC). Свободно распространяется в открытом коде ядро Open CASCADE. В таблице для сравнения приведены системы проектирования с описанием используемых ими ядер.

Таблица 1 – Системы проектирования с описанием используемых ими ядер

Ядро Доступно с Разработчик САПР, основанные на ядре
ROMULUS 1982 Shape Data HP ME30, CAM-I A
Designbase 1986 Ricoh CADRA, Helix, ICAD, GMSWorks
ACIS 1989 Spatial (Dassault Systemes) ADEM, Alibre Design, Bricscad, Creo Elements/Direct (частично), IRONCAD, KeyCreator, TurboCAD, SpaceClaim
Parasolid 1989 Siemens PLM Software IRONCAD, KeyCreator, MicroStation, NX, Solid Edge, SolidWorks, T-FLEX
SMLib 1998 Solid Modeling Solutions ?
Open CASCADE 1999 OPEN CASCADE (Areva) CAD-Schroer, FreeCAD
GRANITE 2001 PTC Creo Elements/Pro (Pro/Engineer)
SOLIDS++ 2004 IntegrityWare Rhino (частично)
CGM 2010 Dassault Systemes CATIA V5, V6, SolidWorks V6

Использование Python для работы с Catia

СATIA изначально использует Visual Basic для приложений (VBA), Однако функциональность VBA ограничена, особенно когда требуется анализ данных и построение графиков. Python - это гораздо более мощный инженерный язык, который работает со многими программами, такими как Microsoft Excel и многими другими. Этот язык программирования имеет ряд преимуществ над другими, используемыми в САПР:

1. интерпретатор Python реализован практически на всех платформах и операционных системах. Первым таким языком был C, однако его типы данных на разных машинах могли занимать разное количество памяти и это служило препятствием при написании переносимой программы. Python же таким недостатком не обладает.

2. расширяемость языка. Это означает, что имеется возможность совершенствования языка любыми программистами. Интерпретатор написан на С и исходный код доступен для любых манипуляций. Написав на C свои дополнения к Python и скомпилировав программу, можно получить "расширенный" интерпретатор с новыми возможностями.

3. наличие большого числа подключаемых к программе модулей, обеспечивающих различные дополнительные возможности:

Однако недостатком Python является сравнительно невысокая скорость выполнения Python-программы, что обусловлено ее интерпретируемостью.

Таким образом, язык Python может продвинуться в сфере программирования в САПР и стать одним из наиболее широко используемых. Этот язык с открытым исходным кодом и может быть свободно загружен без лицензионных ограничений.

Самая первая операция python - импортировать используемые модули. Затем ядро Python пытается подключиться к приложению CATIA, работающему в Windows.

#Импорт питонного модули

импорт ОС из win32com.client импорта диспетчерских

#Подключения к окнам COM

CATIA = диспетчерская ( «CATIA.Application» )

#Опции CATIA видимости

CATIA . Visible = True

Далее, Part’s Sketch создаются в инструментальной среде CATIA Part Design.

#Создать пустую деталь

partDocument1 = CATIA . Документы . Добавить ( «Часть» )

# Создать точку, на которую ссылаются плоскость и эскиз

Xcoord = 100

Ycoord = 100

Zcoord = 100

NewPoint = CATIA . ActiveDocument . Часть . HybridShapeFactory AddNewPointCoord (Xcoord , Ycoord , Zcoord )

Mainbody = CATIA . ActiveDocument . Часть . MainBody

Mainbody . InsertHybridShape ( NewPoint )

#Создать базовую плоскость для эскиза

AxisXY = CATIA . ActiveDocument. Часть . OriginElements . PlaneXY

Referenceplane = CATIA . ActiveDocument. Часть . CreateReferenceFromObject ( AxisXY )

Контрольная точка = CATIA . ActiveDocument . Часть . CreateReferenceFromObject ( NewPoint )

NewPlane = CATIA . ActiveDocument. Часть .HybridShapeFactory . AddNewPlaneOffsetPt ( эталонная плоскость, эталонная точка )

. InsertHybridShape ( NewPlane )

# создать эскизные

наброски1 = CATIA . ActiveDocument . Часть . Тел . Предмет ( "PartBody" ) . Эскизы

reference1 = partDocument1 . часть . OriginElements . PlaneXY

NewSketch = sketches1 . Добавить ( reference1 )

CATIA . ActiveDocument . Часть . InWorkObject = NewSketch

# Нарисовать эскиз

NewSketch . OpenEdition ()

# Начало (H, V) Конец (H, V)

NewLine1 = NewSketch . Factory2D . CreateLine ( 0 , 0 , 0 , 50 )

NewLine2 = NewSketch . Factory2D . CreateLine ( 0 , 50 , 50 , 50 )

NewLine3 = NewSketch . Factory2D . CreateLine ( 50 , 50 , 50 , 55 )

NewLine4 = NewSketch . Factory2D . CreateLine ( 50 , 55 , 150 , 55 )

NewLine5 = NewSketch . Factory2D . CreateLine ( 150 , 55 , 150 , - 5 )

NewLine6 = NewSketch . Factory2D . CreateLine ( 50 , - 5 , 50 , 0 )

NewLine7 = NewSketch . Factory2D . CreateLine ( 50 , - 5 , 75 , - 5 )

NewLine8 = NewSketch . Factory2D . CreateLine ( 150 , - 5 , 125 , - 5 )

NewLine9 = NewSketch . Factory2D . CreateLine ( 125 , - 5 , 125 , 25 )

NewLine10 = NewSketch . Factory2D . CreateLine ( 125 , 25 , 75 , 25 )

NewLine11 = NewSketch . Factory2D . CreateLine ( 75 , 25 , 75 , - 5 )

NewLine12 = NewSketch . Factory2D . CreateLine ( 50 , 0 , 0 , 0 )

NewSketch . CloseEdition ()

Метод, использующий CATIA CAD и язык программирования Python, представлен как метод для улучшения моделирования и анализа путем автоматизации шагов, необходимых для получения результатов моделирования.

Выводы

В работе исследованы возможности и инструменты создания API в Catia V5. Наиболее эффективным инструментом создания API является Python, т.к. в процессе разработки программного обеспечения он позволяет быстрее создавать CAD, CAM и CAE-системы. Рассмотрены примеры использования языка Python в среде САПР Catia V5 для создания дополнительных модулей и приложений.

Список использованной литературы

1. Д. Зитен . Программирование макросов CATIA V5 с помощью скрипта Visual Basic, McGraw-Hill, 2013.
2. В.Н. Малюх. Введение в современные САПР, М.: ДМК Пресс, 2010.
3. Обзор популярных систем автоматизированного проектирования (cad) [Электронный ресурс]. Режим доступа: https://www.pointcad.ru/novosti/obzor-sistemavtomatizirovannogo-proektirovaniya