我经常需要将3D点(x,y,z数据)导入到CAD软件CATIA中 . 目前,我通过使用java库创建excel电子表格,然后从excel中执行visual basic宏来将数据添加到CATIA . 现在我不是一个VB人,这就是为什么我想跳过excel步骤并直接将数据发送到CATIA . 有没有办法做到这一点?也许是一个允许我调用VB代码的java库?或者也许有一个我可以用的CATIA java api?
亲切的问候,MHOOO
除非您有幸获得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提供的文档 .
希望这可以帮助 .
1 回答
除非您有幸获得CAA许可,否则CATIA V5公开的唯一API就是VB . 好的是,这实际上是一个COM接口,您不仅可以从VBA调用,还可以从支持该协议的各种语言调用它 . (C,Python,Java,...) .
对于Java,您需要一个用于访问COM的库,因此需要CATIA API . 对我来说最简单的是雅各布(http://danadler.com/jacob/) .
以下是使用Jacob的一些示例代码:
这只是使用CATIA VBA API的另一种方式,您必须依赖DassaultSytèmes提供的文档 .
希望这可以帮助 .