autodesk-viewer - 如何为每个模型制作一个单独的窗口?
问题描述
我希望将我的模型加载到两个单独的显示区域,但我怀疑我选择的路径的正确性。我认为我需要为每个模型创建自己的单独“viewerDiv”,并使用“new Autodesk.Viewing.Private.GuiViewer3D (viewerDiv, {});”方法将其加载到那里。还有另一种方法可以实现这一目标吗?但是,在实现这个想法时,我费了很大的劲,到目前为止还没有结果,因为我无法更改必要块的研磨,因为它位于viewer3D.min.js的文件中。我尝试下载此文件并在本地更改所需的属性,但结果证明此文件与我还需要下载的其他文件一起使用。不幸的是,我无法下载这些文件。
解决方案
不要下载 Viewer 库或修改其代码,因为这违反了用户许可,并且在技术上难以将库及其所有动态依赖项和资源全部本地化 - 始终在其 CDN 地址引用库。
查看此实时示例以了解多个共同居住的 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+ 以来,该库提供了一个内置的分屏扩展,使用多个模型的子画布:
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);
...
})
推荐阅读
- python - 如何在python中根据grafana json格式动态地将键映射到列和值到行
- android - 如何从 PreferenceScreen 为我的 Android 应用启动设备通知设置
- java - 使用java查找并替换docx中每个部分的不同标题中的文本
- sql-server - 插入唯一的非重复值 T-SQL 时出现重复错误
- npm - “npm 卸载”与“npm 卸载 --save”
- spring - 在 Spring data JPA 中,如何从没有实体存储库的表中查询数据
- java - spark mlib ALS 算法的 Maven 依赖地狱
- c - 如何为“猜对的数字”编写“Makefile”!C语言游戏?
- udp - 在 UDP P2P 协议中,服务器实例没有响应
- android - Dagger-2“lateinit 属性应用程序尚未初始化”