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

Posted

技术标签:

【中文标题】在单个网页中加载 2D 和 3D 伪造查看器【英文标题】:load 2D & 3D forge viewers in single web page 【发布时间】:2021-12-01 16:45:09 【问题描述】:

我想在 2D 图纸和 3D 模型中的元素之间建立链接,因此当我从 2D 中选择元素时,它应该在 3D 中反射和选择(隔离),如果我更改颜色,它在两者上的效果相同,例如反之亦然。

所以我可以使用文档浏览器扩展在第一个查看器上打开 2d 表,在第二个查看器上打开 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(...);
 );

如果上面的例子是正确的,我仍然不知道如何链接两个查看器。 我希望有人可以帮助我解决这个问题

【问题讨论】:

【参考方案1】:

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

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

顺便说一句。关于您的代码 sn-p:

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

【讨论】:

以上是关于在单个网页中加载 2D 和 3D 伪造查看器的主要内容,如果未能解决你的问题,请参考以下文章

伪造查看器中未显示文件

如何在 Forge 查看器中聚合 2D 和 3D 文档?

在网页中嵌入 Autodesk 查看器

将模型加载到 2D/3D 查看器中 - Autodesk Forge

无法在伪造查看器中完全隐藏模型

原生 C/C++ 代码的 C++/CLI 包装器,无法在 Unity3D 中加载