【问题标题】:Autodesk Forge - custom viewerAutodesk Forge - 自定义查看器
【发布时间】:2018-03-23 09:19:09
【问题描述】:

我们有一个现有的 three.js 应用程序,并且正在尝试添加对 cad 设计的支持。以前,我们通过一些自定义渲染从 DXF 文件创建的 geojson 数据来管理这些,但现在我们希望使用 Autodesk Forge 来支持更多数据类型并在渲染前预处理数据。

作为序言,我们不能只使用 Forge 查看器 threejs 版本,因为这将涉及我们重写整个应用程序,以在 Forge 查看器之上构建为扩展。

所以计划是,对于 3D 文件,我正在考虑从 Forge api 下载 obj/mtl 文件,并使用他们的 OBJLoader2 示例直接在 vanilla three.js 中加载这些文件。根据我的初步测试,这似乎可行并且符合我的喜好。我可以控制网格的创建方式,并确保对其进行优化以在我的应用程序中工作。

当我尝试加载 2D 文件时出现问题,因为 forge api 只允许我下载 f2d 文件,据我所知,我无法使用 vanilla three.js 加载这些文件。有任何想法吗?是否可以导出另一种格式的 2D 设计,以便我可以独立加载?

【问题讨论】:

  • 或者,我猜是另一种选择。有没有办法通过 API 将 2D 设计转换为 3D 设计?这样我就可以下载 obj/mtl 并像渲染 3D 视图一样渲染它。

标签: three.js autodesk-forge


【解决方案1】:

目前我不知道在普通 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 查看器,即使这意味着重写您的应用程序的某些部分,查看器基于 Three.js,因此您可以相当轻松地迁移您的一些功能,所有 UI 都是只需 html/css,您就可以在其上集成任何 UI JavaScript 框架。从长远来看,这可能最终成为一个更强大和更灵活的解决方案,而不是格式之间的复杂转换管道......通过将 3d 导出到 obj,您也会丢失嵌入在 CAD 文件中的所有元数据,这可能是也可能不是发给你。

希望对你有帮助

【讨论】:

  • 确实有点帮助。谢谢 是的 - 我所说的 2D 是 DWG 和 DGN 文件,其中没有 3D 对象。想想简单的线条和一些文本元素。我会考虑伪造它以允许系统认为它是 3D 的。值得一试。我希望将整个过程自动化,因为我并不总是能够事先转换这些对象。我真的只是想要一个可以上传任何类型的文件并且我的系统会渲染它的系统。
猜你喜欢
  • 2021-07-14
  • 2021-01-10
  • 2021-09-02
  • 2021-11-12
  • 1970-01-01
  • 2021-02-08
  • 2021-09-19
  • 2020-10-23
  • 2017-01-07
相关资源
最近更新 更多