3

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

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

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

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

4

4 回答 4

9

opendesignaliance 的Teigha库具有C++、C# 和 Java接口。Teigha 是 RealDWG 的替代品,它被许多 CAD 软件供应商广泛使用。它很稳定,可以毫无问题地读取/编辑/写入 dwg。我们有超过 3 年的经验,我可以说它非常好而且便宜很多。当我们要在 RealDWG 和 Teigha 之间进行选择时,我们选择了 Teigha,我很高兴我们做到了。

利用 SWIG 为 Java 创建 Teigha

2013 年,ODA 使用 SWIG 提供的 Java 支持创建了“Teigha for Java”。Teigha for Java 包括以下内容:

Java 访问 .dwg 和 .dgn 文件的完整 Teigha API。支持 Windows、Linux 和 Mac 平台。API 与 Teigha.NET 非常相似,简化了语言之间的转换。

于 2015-08-08T10:36:17.630 回答
8

感谢所有回答的人,我已经测试了你所有的提议,这是我发现的,截至 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 的建议),但目前功能有限。
  • 编写 LIPS 例程并在 AutoCAD 2015/2016 的付费实例中使用 SCRIPT 文件运行它们。
  • 等待更完整的 AutoCad Core Console 实现..

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

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

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

于 2015-08-21T13:50:18.360 回答
2

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

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

于 2015-08-07T11:48:49.000 回答
2

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

于 2015-08-13T08:34:48.573 回答