Есть ли способ обмена данными с CATIA V5 R20 с помощью Java? - PullRequest
1 голос
/ 23 декабря 2011

Мне часто приходится импортировать трехмерные точки (данные x, y, z) в программное обеспечение CAD CATIA. В настоящее время я делаю это путем создания электронной таблицы Excel с использованием библиотеки Java, а затем запускаю базовый макрос Visual Basic из Excel для добавления данных в CATIA. Теперь я не большой любитель VB, поэтому я бы хотел пропустить шаг Excel и напрямую отправить данные в CATIA. Есть ли способ сделать это? Может быть, библиотека Java, чтобы позволить мне вызывать код VB? Или, может быть, есть Java-API для CATIA, который я мог бы использовать?

С уважением, MHOOO

1 Ответ

3 голосов
/ 16 января 2012

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

Для Java вам нужна библиотека для доступа к COM и, следовательно, к CATIA API. Самым простым для меня является Джейкоб (http://danadler.com/jacob/).

Вот пример кода с использованием Джейкоба:

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:\\Users\\Me\\Desktop\\TestRib.CATPart").toDispatch();

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

Это просто другой способ использования CATIA VBA API, и вам придется полагаться на документацию, предоставленную Dassault Sytèmes.

Надеюсь, это поможет.

...