我想分析 dwg 文件。可能吗?
我正在尝试编写一个可以分析 .dwg 文件内容的程序。例如,程序可以判断建筑模型中的一扇门是否可以打开。
我发现这篇文章解释了如何阅读 autoCAD 文件。我还看到了一些可以打开和查看 .dwg 文件的程序,但没有分析内容。
我想知道是否有类似的东西,分析.dwg文件的内容,是否有SDK可以帮助我分析?
你可以,但这并不容易。
AutoCAD .DWG 文件基本上只是几何图形(直线和圆弧)。您可能有一些带有块的组织良好的文件,比如说“门”块,但它不是 100% 有把握的:例如,您可能将“Door1”和“Out Patio Door”作为块名称。
对于这两种情况,主要问题的方式是理解几何并以某种方式解释。假设你可以,那么你有一些路径选项:
要解释几何图形(使用上述任何一种),BRep API 是分析几何图形的最佳方式,例如交点和其他关系。你会在博客中找到一些关于它的示例,但我不相信这方面有什么东西。检查这个和这个。
最后,作为总结,对于 .NET,您将需要 Autodesk.AutoCAD.DatabaseServices 命名空间以及 Line、Arc、BlockReference 和相应的 IntersectWith 方法来进行一些基本分析。
现在,如果您有AutoCAD Architecture .DWG 工程图,可能会更容易,因为一些基本对象可作为 API 的一部分使用,例如墙和门。我不相信是这样,但如果是这样,请查看此链接。
提到的现有 SDK 将允许您检查 dwg 文件中的 AutoCAD 实体和数据。将 AutoCAD 实体(线、弧、块等)识别为您感兴趣的东西(门、窗、橱柜等)需要您将这些实体识别为此类。您可以使用嵌入在 AutoCAD 实体中的属性或隐藏数据来做到这一点。属性是 AutoCAD 中的内置功能。隐藏的嵌入式数据需要自定义编程。