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

时间:2019-04-26 05:25:13

标签: autodesk-viewer

我希望将模型加载到两个单独的显示区域中,但是我怀疑所选路径的正确性。我认为我需要为每个模型创建自己的单独的“ viewerDiv”,并​​使用“ new Autodesk.Viewing.Private.GuiViewer3D(viewerDiv,{});”方法将其加载到那里。还有另一种方法可以做到这一点吗? 但是,在实现该想法时,我费了很多力气,但到目前为止没有任何结果,因为我无法更改必要程序段的内容,因为它位于viewer3D.min.js的文件中。我尝试下载此文件并在本地更改所需的属性,但事实证明该文件与我也需要下载的其他文件结合使用。不幸的是,我无法下载这些文件。

1 个答案:

答案 0 :(得分:1)

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

请参阅this live sample,以了解多个同居的Viewer实例-只需将Viewer实例分别初始化为其相应的容器,并通过其类名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);
    ...
})