我们有一个现有的three.js应用程序,正在尝试添加对cad设计的支持。以前我们使用我们从DXF文件创建的geojson数据的自定义渲染来管理这些,但现在我们希望使用Autodesk Forge来支持更多数据类型并在渲染之前预处理数据。
作为序言,我们不能简单地使用Forge viewer threejs版本,因为这将涉及我们将整个应用程序重写为Forge查看器顶部的扩展。
所以计划是,对于3D文件,我正在寻找从Forge api下载obj / mtl文件并使用他们的OBJLoader2示例直接在vanilla three.js中加载它们。根据我的初步测试,这似乎工作和呈现我喜欢。我可以控制网格的创建方式,并确保它在我的应用程序中进行优化。
问题来自于我正在尝试加载2D文件,因为forge api只允许我下载f2d文件,据我所知,我无法使用vanilla three.js加载这些文件。有任何想法吗?是否有其他格式的2D设计将导出为我可能能够独立加载?
答案 0 :(得分:2)
目前我还不知道在简单的Three.js中加载2D的简单管道。到2d我猜你的意思是dwg / dxf,如果不是这种情况更明确...... Forge Model Derivatives REST API并没有提供另一种来自dwg的输出格式而不是svf(f2d)。
例如,你可以通过添加一个3d实体来将2d dwg转换为3d实体,但是我不知道obj导出是什么,可能不是很有趣但是你可能想要给它一试。
另一种选择是将Design Automation API用于AutoCAD,您可以上传dwg并运行一些自定义dll,将图形转换为您可以在查看器中加载的自定义格式,这将需要AutoCAD ObjectARX或.Net API的专业知识以及您计划处理的图纸的复杂程度可能是一项公平的工作。
最后你可能想考虑使用Forge Viewer,即使这意味着重写应用程序的部分,查看器基于Three.js,这样你就可以轻松地迁移一些功能,所有UI都是只需html / css,您就可以在其上集成任何UI JavaScript框架。从长远来看,这可能最终成为一个更加强大和灵活的解决方案,而不是格式之间翻译的复杂管道......通过将3d导出到obj,您也丢失了嵌入在CAD文件中的所有元数据,这可能是也可能不是问题给你。
我希望有帮助