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



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

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

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

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

来自opendesignalliance的Teigha库具有c++, c#和Java接口。Teigha是RealDWG的替代品,被许多CAD软件供应商广泛使用。它是稳定的,并且可以毫无问题地读取/编辑/写入dwgs。我们有超过3年的经验,我可以说它是优秀的,而且便宜得多。当我们在RealDWG和Teigha之间选择时,我们选择了Teigha,我很高兴我们选择了Teigha。

利用SWIG为Java创建Teigha

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

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

感谢所有回答的人,我已经测试了你所有的命题,以下是我在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的建议),但目前功能有限。
  • 编写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 webservice,它基本上是一个在云上运行的实例,运行自定义代码并提取数据或创建新图纸。它将支持所有DWG特性。检查http://developer.autodesk.com

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

最新更新