怎样去调用forge默认的工具功能?

使用viewer = new Autodesk.Viewing.Viewer3D(myViewerDiv, config3d)以后,整个界面上是什么工具都没有,连viewcube都没有。现在我想在这个赶紧的界面上进行布局,比如加一些div进去,位置比如在右边,那么我怎样调用一些viewer自带的功能呢?。比如我想在自定义的div中加入漫游的功能,那么我怎样去把自带的漫游功能调用出来呢?再比如我想在某个位置显示viewcube,那我怎样去把这个功能调用出来呢?

clipboard.png

阅读 4.5k
1 个回答

你要改用 Autodesk.Viewing.Private.GuiViewer3D 去创建 Viewer 默认的工具列跟 ViewCube 才会出现,或者是在使用 Autodesk.Viewing.Viewer3D 的情境通过下面的代码创建 ViewCubeToolbar

// ViewCube
const viewCubeUi = new Autodesk.Viewing.Private.ViewCubeUi( viewer );
viewer.viewCubeUi = viewCubeUi;

viewCubeUi.create();

// Toolbar
const toolbar = new Autodesk.Viewing.UI.ToolBar( 'my-awesome-toolbar' );
viewer.toolbar = toolbar;

// Button
var button1 = new Autodesk.Viewing.UI.Button( 'my-orbit-button' );
button1.onClick = function(e) {
    var state = button1.getState();
    if( state === Autodesk.Viewing.UI.Button.State.INACTIVE ) {
        viewer.setActiveNavigationTool( 'orbit' );
        button1.setState(Autodesk.Viewing.UI.Button.State.ACTIVE);
    } else if( state === Autodesk.Viewing.UI.Button.State.ACTIVE ) {
        viewer.setActiveNavigationTool();
        button1.setState( Autodesk.Viewing.UI.Button.State.INACTIVE );
    }
};
button1.addClass( 'my-orbit-button' );
button1.setToolTip( 'Orbit' );

// SubToolbar
const subToolbar = new Autodesk.Viewing.UI.ControlGroup( 'my-custom-view-toolbar' );
subToolbar.addControl( button1 );

toolbar.addControl( subToolbar );

默认工具仅少数是通过扩展加载例如 Autodesk.SectionAutodesk.FirstPerson, Autodesk.BimWalk,其大多数都是编写在 GuiViewer3D 的代码内,请到 viewer3d.js 里查找 GuiViewer3D#createUI() 的执行思路。

参考:

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏