Java 中的 AutoCAD 库读取 .dwg 文件?

AutoCAD library in Java to read .dwg files?

是否有任何开源 Java 或 Java 脚本库可用于解析 .dwg 文件并从中获取对象。

我想从我的项目的 table 文本中提取数据。

似乎 AutoCAD 开发人员社区更喜欢 .NET 和 C/C++ 而不是 JAVA。

我发现的唯一免费替代方法是先将 .dwg 转换为 .dxf,然后使用 Kabeja 库从中读取。

Autodesk 主要使用 C++ 开发 AutoCAD,并提供对 C++、.NET、JavaScript、VBA 和 LISP 的插件支持,这就是为什么没有原生 Java支持。所有这些都需要在机器上安装 AutoCAD。

或者,您可以使用 AutoCAD I/O 网络服务,它基本上是云上的一个 运行ning 实例,用于 运行 自定义代码和提取数据或创建新图形。这将支持所有 DWG 功能。检查 http://developer.autodesk.com

来自 opendesignaliance has C++, C#, and Java 界面的 Teigha 库。 Teigha 是 RealDWG 的替代品,被许多 CAD 软件供应商广泛使用。它很稳定,可以毫无问题地 read/edit/write dwgs。我们有超过 3 年的经验,我可以说它非常好而且便宜得多。当我们要在 RealDWG 和 Teigha 之间做出选择时,我们选择了 Teigha,我很高兴我们做到了。

Leveraging SWIG to Create Teigha for Java

In 2013, ODA used the Java support provided by SWIG to create "Teigha for Java". Teigha for Java includes the following:

Java access to the full Teigha API for both .dwg and .dgn files. Support for Windows, Linux and Mac platforms. API very similar to Teigha.NET, simplifying the transition between languages.

正如您所指出的,请改用 DXF 格式,有开源 java 库,还有 YCAD,您可以使用并且非常易于使用。

感谢所有回答的人,我已经测试了你的所有提议,这是我在 2015 年发现的:

目前没有免费且可靠的解决方案来读取和操作 .dwg 和 .dxf 文件。这尤其适用于最新版本的 AutoCAD,例如:Autocad 2010、Autocad 2013 等、RF 2013、RF 2010。

可靠(且昂贵)的解决方案是 ODA 的 Teigha(每年 2000 美元)和 Autocad 的 C# 中的 RealDWG(每年 5000 美元)...

更便宜的替代品是这样的:

  • AutoCAD I/O 每月 10 美元(根据 Augusto Gonclaves 的建议),但目前功能有限。
  • 在 AutoCAD 2015/2016 的付费实例中使用 SCRIPT 文件编写 LISPS 例程并运行它们..
  • 等待更完整的 AutoCad Core Console 实现..

Kabeja 和 YCad 等开源库可能能够处理较旧的 AutoCAD 版本,但不要对它们抱有太大期望,因为这些项目自几年前就处于非活动状态。不过,值得关注 Apache Tika,因为他们开始为 .dwg 文件编写解析器,但开发速度很慢。

就我个人而言,我认为 AutoDesk 现在在 CAD 市场上拥有强大而自私的垄断地位,他们正在让其他人难以加入。.dwg 文件格式的版本经常变化,我猜开源开发人员在某些时候将不得不放弃并改用官方产品。

希望未来几年有更多的开源解决方案