我想知道是否有办法从 autocad .dxf 文件中提取必要的数据,以便我可以在 opengl 中可视化结构?
我发现了一些用 cpp 编写的 windows 旧的冷片段,但由于标准更改,我认为 15 年的旧代码有点过时了。
此外,还有一本关于 .dxf 文件标准的书,但它也是 90 年代的书,除此之外,很少有。
另一种方法可能是将其转换为其他文件格式,然后提取我需要的数据。
尝试查看 .dxf 文件也没有给出太多的见解,因为一个简单的长方体已经包含大量数据!
谁能给我提示如何解决这个问题?
参考资料是一个很好的起点,但如果您正在进行繁重的 3D 工作,则可能无法完成您正在尝试的工作。
我们最近完全基于参考用 JAVA 编写了一个 DXF 转换器。尽管许多实体相对简单,但许多其他实体(3DSOLID、BODY、REGION、SURFACE、Sweep Surface)实际上无法翻译,因为参考说明这些组主要是专有数据。其他对象(挤压曲面、旋转曲面、扫掠曲面(再次))具有大量二进制数据,其中可能包含您需要的重要信息。
这些实体对我们的工作并不重要,但如果您希望转换为 OpenGL,这些实体可能是您特别关心的实体。
Autodesk 提供了 AutoCAD 最新版本所使用的 DXF 格式的参考资料。不过,我可能会再看一下那个 15 年前的代码。即使您不能/不按原样使用它,它也可以提供一个不错的起点。DXF 规范足够大和复杂,有一些东西可以开始,只需在需要的地方添加新的零碎部分就会有很大帮助。作为一种交换格式,DXF 无论如何都必须非常保守,只包括基本上所有程序都可以合理直接解释的元素。
我可能更关心代码本身而不是 DXF 格式的变化。许多旧代码使用深度的、单一的类层次结构,这与您在现代 C++ 中所期望的完全不同。