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

Анализ инструментов создания, модификации и практического применения API в современных САПР на примере CATIA

Автор: Бондаренко Е.С., Григорьев А.В.
Источник: Материалы VI Международной научно-технической конференции «Современные информационные технологии в образовании и научных исследованиях» (СИТОНИ-2019). – Донецк: ДонНТУ, 2019. – с. 241-246.

Аннотация

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

Введение

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

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

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

Это делает актуальным задачу анализа инструментов создания и применения API в современных САПР.

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

Для достижения поставленной цели были поставлены следующие задачи:

Использование Java API

Java используют для написания приложений, дополняющих системы автоматизированного проектирования. В CATIA V5 используется API, который позволяет вызывать различные функции из приложения.

CAA - продукт Java Interactive Dashboard (JID) - компонент CAA - конфигурация разработки Java Base, который предоставляет интегрированную среду разработки для настройки продуктов ENOVIA 3dCOM и создания приложений Java на основе CAA для Windows NT и UNIX [3]. В Windows NT, в сочетании с CAA - продуктом для создания приложений для нескольких рабочих пространств, CAA - диспетчером модульных тестов Java и CAA - диспетчером исходного кода, он обеспечивает высокотехнологичную среду для поддержки крупномасштабной разработки приложений Java с высокой степенью безопасность и промышленная надежность. CAA - продукт Java Unit Test Manager (JUT) - этот продукт доступен в качестве дополнения к CAA JID.

Это облегчает тестирование и контроль качества, важные для эффективной разработки качественного, без регрессионного программного обеспечения на основе Java. Его функции включают в себя:

Существуют и библиотеки, используемые для облегчения работы программиста в САПР CATIA.

Com4j - библиотека, предназначенная для интеграции java-приложений и dll-библиотек, использующих COM-технологию (Component Object Model).

Com4j автоматически импортирует библиотеку типов и генерирует необходимые java-классы.

Можно получить данные массива с помощью CATIA с помощью API com4j для получения координаты точки. Для этого используется следующий код:

Dim p3 As Variant

Dim arrayOfCoord(2) As Variant

Set p3 = hybridShapePointCoord1 'set variant = strongly typed point object

p3.GetCoordinates arrayOfCoord

Чтобы получить объект CATIA Part с com4j для java, пишут:

Document doc = docs.open(new Holder<>("E:\\test.CATPart"));

PartDocument part = doc.queryInterface( PartDocument.class);

Язык Java состоит всего из 50 ключевых слов, но Java API имеет несколько тысяч классов - с десятками тысяч методов, которые можно использовать в ваших программах. Java можно использовать для разработки разных типов программ:

Существует способ обмена данными с CATIA V5 с использованием Java.

Часто возникает необходимость импортировать 3D-точки (данные x, y, z) в САПР CATIA.

Это можно осуществить, создавая электронную таблицу excel, используя библиотеку Java, а затем выполняя визуальный базовый макрос из excel для добавления данных в CATIA. Но можно пропустить шаг excel и напрямую отправить данные в CATIA.

Если у вас нет лицензии CAA, единственным API, открытым CATIA V5, является VB. Хорошо, что на самом деле это COM-интерфейс, который вы можете вызывать не только из VBA, но и из разных языков, поддерживающих этот протокол. (C++, Python, Java,...).

Для Java нужна библиотека для доступа к COM и, следовательно, API CATIA. Проще всего это сделать, используя Jacob.

Jacob - это мост JAVA-COM, который позволяет вызывать компоненты автоматизации COM из Java. Он использует JNI для собственных вызовов в библиотеки COM и Win32. Проект Jacob начался в 1999 году и активно используется тысячами разработчиков по всему миру.

Как проект с открытым исходным кодом, он извлек выгоду из объединенного опыта этих пользователей, многие из которых внесли изменения в код и отправили их обратно для включения в проект.

Вот пример кода с помощью Jacob для обмена данными с CATIA:

import java.net.UnknownHostException;

import com.jacob.com.Dispatch;

import com.jacob.com.Variant;

import com.jacob.activeX.ActiveXComponent;

class TestMacroInvocation

{

public static void main( String [] args ) throws Exception

{

ActiveXComponent catia = new ActiveXComponent("CATIA.Application");

catia.setProperty("Visible", new Variant(true));

Dispatch oDocuments = catia.getProperty("Documents").toDispatch();

Dispatch oDocument = Dispatch.call(oDocuments, "Open", "C:UsersMeDesktopTestRib.CATPart").toDispatch();

Dispatch.call(catia, "StartCommand", "MyMacro");

Dispatch.call(catia, "Quit");

}

Java - не единственный язык программирования, доступный для настройки продуктов V5.

CAA RADE V5 позволяет использовать VB Automation, которая использует преимущества собственной архитектуры V5 для обеспечения высочайшего уровня открытости в CATIA V5, включая инструменты как производительности, так и возможностей.

Есть несколько методов в CATIA, которые стабильно работают в CATIA VBA, а через интерфейс COM не совсем корректно. Это одна из основных функций в CATIA - открытие продукта.

Хорошим решением будет написать мини-функцию VBA в строке, а затем вызвать ее в CATIA через Python.

Приведем пример:

import random

import win32com.client

CATIA = win32com.client.GetActiveObject(CATIA.Application)

CATVBALanguage = 1

#Здесь CATIA вызывает диалоговое окно

NewProductDocument = CATIA.Documents.Add(Product)

#Дальше пишем код на VBA

CREATE_PRODUCT_VBA_CODE =

Public Function create_product(part_number as CATBSTR)

Document

Set create_product = CATIA.Documents.Add("Product")

create_product.Product.PartNumber = part_number

End Function

PART_NUMBER = test_product_{}.format(random.randint(1, 100))

NewProductDocument = CATIA.SystemService.Evaluate(

CREATE_PRODUCT_VBA_CODE,

CATVBALanguage,

create_product,

#Функция VBA для вызова и возврата результата из

[PART_NUMBER]

#Массив аргументов для функции VBA

)

print(NewProductDocument.Product.PartNumber)

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

Библиотеки, используемые в Catia

Еще одним вариантом работы с продуктами Catia является .NET [3]. Чтобы открыть Catia через .NET, нужно добавить ссылки в свою программу (проект). При этом используем Catia в VB.Net.

Чтобы добавить ссылку, выполните следующие действия:

Проект -> Добавить ссылку -> COM. Там есть список ссылок, многие из них для Catia. Теперь добавляете разные ссылки в зависимости от того, что вам необходимо сделать. Основные библиотеки:

Заключение

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

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

1. Д. Зитен. Программирование макросов CATIA V5 с помощью скрипта Visual Basic, McGraw-Hill, 2013.
2. Система автоматизированного проектирования CATIA [Электронный ресурс]. – Режим доступа: http://bourabai.ru/cm/catia.htm/graphics/graphics/dm/cad.htm
3. Development of a Modular API for the CAD-System Catia V5 TOMAS FORS Master’s Degree Project Stockholm, Sweden, 2004.