有没有办法使用java与CATIA V5 R20交换数据?

时间:2011-12-23 18:42:25

标签: java catia

我经常需要将3D点(x,y,z数据)导入到CAD软件CATIA中。目前,我通过使用java库创建excel电子表格,然后从excel中执行visual basic宏来将数据添加到CATIA。 现在我不是一个VB人,这就是为什么我想跳过excel步骤并直接将数据发送到CATIA。有没有办法做到这一点?也许是一个允许我调用VB代码的java库?或者也许我可以使用CATIA的java api?

亲切的问候, MHOOO

1 个答案:

答案 0 :(得分:3)

除非您有幸获得CAA许可,否则CATIA V5公开的唯一API就是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的另一种方式,您必须依赖DassaultSytèmes提供的文档。

希望这有帮助。