You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Forge Viewer:如何保存/加载ViewCubeUI的配置设置

关于ViewCubeUI视图配置的两个问题解答

1. 能否提取视图配置并在下次加载时重新导入?

可以直接通过ViewCubeUI扩展的API提取自定义的主视图、前视图和顶视图配置,将配置存储后(比如用浏览器的localStorage),下次加载模型时再调用对应方法恢复。

具体操作示例:

  • 获取ViewCubeUI扩展实例:
    const viewCubeExt = viewer.getExtension('Autodesk.ViewCubeUi');
    
  • 提取各视图的配置(每个配置包含相机位置、目标点、上方向向量):
    const homeViewConfig = viewCubeExt.homeView;
    const frontViewConfig = viewCubeExt.frontView;
    const topViewConfig = viewCubeExt.topView;
    
  • 存储配置到本地:
    localStorage.setItem('viewCubeConfigs', JSON.stringify({
      home: homeViewConfig,
      front: frontViewConfig,
      top: topViewConfig
    }));
    
  • 下次加载时恢复配置:
    viewer.addEventListener('GEOMETRY_LOADED_EVENT', () => {
      const savedConfigs = JSON.parse(localStorage.getItem('viewCubeConfigs'));
      if (savedConfigs) {
        const viewCubeExt = viewer.getExtension('Autodesk.ViewCubeUi');
        viewCubeExt.setHomeView(savedConfigs.home);
        viewCubeExt.setFrontView(savedConfigs.front);
        viewCubeExt.setTopView(savedConfigs.top);
      }
    });
    

2. 能否借助viewer.getState()的state设置ViewCubeUI的视图?

viewer.getState()返回的state对象包含当前视图的相机状态,但它不能直接用来设置ViewCubeUI的预设视图(主/前/顶),不过可以从state中提取相机参数,再通过ViewCubeUI的方法手动设置这些视图。

示例操作:

  • 获取当前状态并提取相机信息:
    const currentState = viewer.getState();
    const cameraParams = {
      position: currentState.viewport.camera.position,
      target: currentState.viewport.camera.target,
      up: currentState.viewport.camera.up
    };
    
  • 用提取的参数设置主视图(同理可设置前/顶视图):
    const viewCubeExt = viewer.getExtension('Autodesk.ViewCubeUi');
    viewCubeExt.setHomeView(cameraParams);
    

内容的提问来源于stack exchange,提问作者Bandu W

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 17:54:56