如何为每个模型制作一个单独的 window?

How to make for each model a separate window?

我希望我的模型加载到两个独立的显示区域,但我怀疑我选择的路径是否正确。我认为我需要为每个模型创建自己的单独 "viewerDiv" 并使用方法 "new Autodesk.Viewing.Private.GuiViewer3D (viewerDiv, {});" 加载它。还有另一种方法可以实现这一目标吗? 然而,在实现这个想法时,我流了很多汗,至今没有结果,因为我无法更改所需块的研磨,因为它位于 viewer3D.min.js 的文件中。我尝试下载此文件并在本地更改所需的 属性,但事实证明此文件可与我还需要下载的其他文件一起使用。不幸的是我无法下载这些文件。

请勿下载 Viewer 库或修改其代码,因为这违反了用户许可,并且在技术上难以本地化整个库及其所有动态依赖项和资源 - 始终在其 CDN 地址引用该库。

查看 this live sample 了解多个查看器实例共存 - 只需将您的查看器实例分别初始化为其相应的容器,并通过其 class 名称调整画布的大小 adsk-viewing-viewer

<style>
.adsk-viewing-viewer{width:50%!important}
</style>
<script>
var viewer1 = new Autodesk.Viewing.Private.GuiViewer3D(viewerDiv1);
var viewer2 = new Autodesk.Viewing.Private.GuiViewer3D(viewerDiv2);
...
</script>

或者,自 Viewer 6+ 以来,该库提供了一个内置的 Split Screen extension 为多个模型使用子画布:

var options = {  viewports: [
            modelId => modelId == 1,
            modelId => modelId == 2, 
            modelId => modelId == 3,  
            modelId => modelId == 4]
     };
viewer.start();
viewer.loadExtension('Autodesk.SplitScreen', options).then(()=>{
    viewer.loadModel(svf1);
    viewer.loadModel(svf2);
    ...
})