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