5

我想分析 dwg 文件。可能吗?

我正在尝试编写一个可以分析 .dwg 文件内容的程序。例如,程序可以判断建筑模型中的一扇门是否可以打开。

我发现这篇文章解释了如何阅读 autoCAD 文件。我还看到了一些可以打开和查看 .dwg 文件的程序,但没有分析内容。

我想知道是否有类似的东西,分析.dwg文件的内容,是否有SDK可以帮助我分析?

4

3 回答 3

6

你可以,但这并不容易。

AutoCAD .DWG 文件基本上只是几何图形(直线和圆弧)。您可能有一些带有块的组织良好的文件,比如说“门”块,但它不是 100% 有把握的:例如,您可能将“Door1”和“Out Patio Door”作为块名称。

对于这两种情况,主要问题的方式是理解几何并以某种方式解释。假设你可以,那么你有一些路径选项:

  • 在 AutoCAD 上运行进程内插件:这可以在 C++、.NET(C#、VB.NET)、LISP 或 VBA 中完成。有大量资源,例如DevCenterblogblog
  • 用作访问对象的库,如RealDWG或其他开源。这可能很棘手并且需要编程(如上)。
  • 使用AutoCAD I/O等网络服务上传 .DWG 和 .DLL (.NET) 代码,以分析您的绘图。

要解释几何图形(使用上述任何一种),BRep API 是分析几何图形的最佳方式,例如交点和其他关系。你会在博客中找到一些关于它的示例,但我不相信这方面有什么东西。检查这个这个

最后,作为总结,对于 .NET,您将需要 Autodesk.AutoCAD.DatabaseServices 命名空间以及 Line、Arc、BlockReference 和相应的 IntersectWith 方法来进行一些基本分析。

现在,如果您有AutoCAD Architecture .DWG 工程图,可能会更容易,因为一些基本对象可作为 API 的一部分使用,例如墙和门。我不相信是这样,但如果是这样,请查看此链接

于 2016-05-16T16:46:11.983 回答
1

提到的现有 SDK 将允许您检查 dwg 文件中的 AutoCAD 实体和数据。将 AutoCAD 实体(线、弧、块等)识别为您感兴趣的东西(门、窗、橱柜等)需要您将这些实体识别为此类。您可以使用嵌入在 AutoCAD 实体中的属性或隐藏数据来做到这一点。属性是 AutoCAD 中的内置功能。隐藏的嵌入式数据需要自定义编程。

于 2016-07-05T18:28:46.277 回答
1

RealDWG 花费不真实的金钱。但是你可以使用Teigha。它的成本较低,但功能强大。您也可以阅读DWG 规范

于 2016-05-23T18:52:29.093 回答