AutoCAD - 是否可以分析 .dwg 文件?

AutoCAD - Is it possible to analyze .dwg file?

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

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

我发现 this article 解释了如何读取 autoCAD 文件。我也见过一些可以打开和查看 .dwg 文件的程序,但无法分析内容。

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

你可以,但这并不容易。

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

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

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

要解释几何(与上述任何一种),BRep API 是分析几何的最佳方法,如交点和其他关系。 blog you'll find some samples around it, but I don't believe there is something on this area. Check this and this.

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

现在如果你有 AutoCAD Architecture .DWG drawing, it might be easier as some basic objects are available as part of the APIs, like Walls and Doors. I don't believe that's the case, but if so, check at this link.

RealDWG 需要虚钱。但是你可以使用 Teigha. Its cost is less, but its capabilities are great. Also you can read DWG Specification.

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