在单个网页中加载 2D 和 3D Forge 查看器

load 2D & 3D forge viewers in single web page

我想 link 来自 2D sheet 和 3D 模型的元素,所以当我 select 来自 2D 的元素时,它应该反映并且 select ( isolate) 在 3D 中,如果我改变颜色,它也会在 3D 中做同样的事情,例如反之亦然。

所以我可以使用文档浏览器扩展程序在第一个查看器上打开 2d sheet,在第二个查看器上打开 3d 模型:

const firstModel = new Autodesk.Viewing.Private.GuiViewer3D(document.getElementById('MyViewerDiv1'));
 const secondModel = new Autodesk.Viewing.Private.GuiViewer3D(document.getElementById('MyViewerDiv2'));

 Autodesk.Viewing.Initializer(options1, function() {
  viewer1.start();
  viewer1.load(...);      
 });

 Autodesk.Viewing.Initializer(options2, function() {
  viewer2.start();
  viewer2.load(...);
 });

如果上面的例子是正确的,我仍然不知道如何 links 两个观众。 我希望有人能帮我解决这个问题

请注意,我们有一个查看器扩展程序,它可能已经为您提供了您正在寻找的内容:https://github.com/Autodesk-Forge/forge-extensions/blob/master/public/extensions/NestedViewerExtension/README.md

如果您想自己实现两个查看器实例之间的交叉selection,您可以。只需在其中一个查看器中订阅 SELECTION_CHANGED 事件,获取 selected ID,然后使用通常的 viewer.select([...]); 方法在另一个查看器中 select 获取相同的 ID。

顺便说一句。关于您的代码片段:

  • Autodesk.Viewing.Initializer整个网页只需要调用一次
  • Autodesk.Viewing.Private.GuiViewer3D 实例应该在 初始化器完成工作后
  • 创建