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

时间:2015-08-07 09:20:49

标签: java autocad dxf dwg

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

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

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

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

4 个答案:

答案 0 :(得分:9)

来自opendesignaliance的Teigha图书馆有C++, C#, and Java界面。 Teigha是RealDWG的替代品,它被许多CAD软件供应商广泛使用。它是稳定的,有能力读取/编辑/写入dwgs没有问题。我们有超过3年的经验,我可以说它非常好而且便宜很多。当我们在RealDWG和Teigha之间做出选择时,我们选择了Teigha,我很高兴我们做到了。

  

利用SWIG为Java创建Teigha

     

2013年,官方发展援助使用SWIG提供的Java支持来创建“Teigha”   for Java“.Teigha for Java包括以下内容:

     

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

答案 1 :(得分: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建议),但目前功能有限。
  • 编写LISPS例程并在AutoCAD 2015/2016的付费实例中使用SCRIPT文件运行它们。
  • 等待更完整的AutoCad Core Console实施..

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

从个人角度来说,我认为AutoDesk现在在CAD市场上拥有强大而自私的垄断地位,而且他们很难让其他人加入。格式的.dwg文件版本经常变化,我想开源开发人员将不得不放弃并使用官方产品。

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

答案 2 :(得分:2)

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

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

答案 3 :(得分:2)

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