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

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

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

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

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

对所有已回答的人表示感谢,我已经测试了你所有的主张,这是我发现的,截至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建议),但现在function有限。
  • 编写LISPS例程并在AutoCAD 2015/2016的付费实例中使用SCRIPT文件运行它们。
  • 等待更完整的AutoCad核心控制台实施..

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

在个人方面,我认为AutoDesk现在在CAD市场上拥有强大而自私的垄断,并且他们很难让其他人加入。格式的.dwg文件版本经常变化,我想开源开发人员会必须在某个时候放弃并使用官方产品。

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

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

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

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

Interesting Posts