5

关于通过 JAVA 程序与 AutoCAD 交互的任何想法。我正在寻找一种可以直接与 AutoCAD 会话(甚至启动一个)交互的解决方案,它与 AutoCAD 的 .NET 扩展一起工作的方式。或者通过 JAVA 使用 ObjectARX 的任何方式,绝对不会在其上编写完整的 JNI 包装器。

补充:我们正在寻找开源的东西。如果没有,我们准备在开源中创建一个,如果有人可以伸出援助之手解释如何做到这一点。我们已经了解了 JNA 和 JaWin。JNA 与 JNI 结合可能会有所帮助,但太丑陋了。另一方面,JaWin 在过去 4 年没有更新,所以对使用它持怀疑态度。

4

4 回答 4

2

我唯一能想到的就是使用像JNBridge这样的 Java <-> .Net 网桥。我在其他场景中使用过它,它工作正常。从来没有用 Java 和 AutoCad 做过任何工作,所以可能有其他更便宜的解决方案。

于 2009-05-13T09:42:36.327 回答
2

如果您尝试与 AutoCAD 应用程序交互,您将遇到困难。如果您想与 dwg 文件本身进行交互,可以使用 Open Design Alliance,它的库允许在没有 AutoCAD 的情况下使用 dwg 文件。

于 2009-05-19T18:20:12.007 回答
2

您可以尝试使用 JavaBeans ActiveX 桥和 COM 自动化来打开 AutoCAD 并对其进行操作。

也就是说,JavaBeans ActiveX 桥已经有一段时间没有发展了(我早在 2003 年就使用过它),Autodesk 正在认真投资 .Net,用于与 AutoCAD 中的扩展和自动化相关的所有内容。

于 2009-07-22T22:40:22.473 回答
1

我们正在做一个类似的项目。我们正在做的是用 C# 编写集成代码,并用 Java 为我们的项目编写业务逻辑。

我们正在使用一个 C++ 桥接器,该桥接器利用 JNI 将 Java 调用向下传递到 C++,然后将它们转换回 C#,反之亦然。每个需要从 C# 到 Java 的函数都必须在桥代码中实现。这是相当复杂的,让非托管 C++ 代码与 C# 一起工作存在一些问题,以及将 Jstrings 转换为 C# Strings 等的标准开销。结果相对较快,在我们进行了一些优化以确保我们不会在每次调用 Java 层时启动和停止 JVM。

我们之前使用了由 AutoCAD 插件调用的 COM 对象,因此这是另一种方法。

于 2010-01-15T20:27:34.633 回答