首页 文章

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

提问于
浏览
1

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

亲切的问候,MHOOO

1 回答

  • 3

    除非您有幸获得CAA许可,否则CATIA V5公开的唯一API就是VB . 好的是,这实际上是一个COM接口,您不仅可以从VBA调用,还可以从支持该协议的各种语言调用它 . (C,Python,Java,...) .

    对于Java,您需要一个用于访问COM的库,因此需要CATIA API . 对我来说最简单的是雅各布(http://danadler.com/jacob/) .

    以下是使用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提供的文档 .

    希望这可以帮助 .

相关问题