【问题标题】:Cannot remove default buttons from autodesk-forge viewer panel (Autodesk.Viewing.Private.GuiViewer3D)无法从 autodesk-forge 查看器面板中删除默认按钮 (Autodesk.Viewing.Private.GuiViewer3D)
【发布时间】:2020-09-25 04:52:11
【问题描述】:

我想删除度量、文本格式和属性按钮。见图片。 我只能删除“toolbar-settingsTool”,但无法删除以上三个按钮。

   onExtensionLoaded = (e) => {

    if (e.extensionId === 'Autodesk.DefaultTools.NavTools') {

        // Remove settings tools
        const settingsTools = viewer.toolbar.getControl('settingsTools');
        settingsTools.removeControl('toolbar-settingsTool');
        //settingsTools.removeControl('toolbar-fullscreenTool');

        // Remove settings tools
        const navTools = viewer.toolbar.getControl('navTools');
        navTools.removeControl('toolbar-propertiesTool');            

        // Remove model tools
        const modelTools = viewer.toolbar.getControl('modelTools');
        modelTools.removeControl('toolbar-modelStructureTool');
    }
}

viewer.addEventListener( Autodesk.Viewing.EXTENSION_LOADED_EVENT, this.onExtensionLoaded);

你能帮帮我吗?谢谢。

viewer

这是我的代码。

【问题讨论】:

    标签: autodesk-forge viewer forge


    【解决方案1】:

    谢谢梁晓东。这样可行。我可以使用以下代码删除度量和属性图标:

    onExtensionLoaded = (e) => {
    
            // Remove "Settings" icon
            if (e.extensionId === 'Autodesk.DefaultTools.NavTools') {
    
                // Remove settings tools
                const settingsTools = viewer.toolbar.getControl('settingsTools');
                settingsTools.removeControl('toolbar-settingsTool');
                //settingsTools.removeControl('toolbar-fullscreenTool');
    
            }
            // Remove measurement icon
            else if (e.extensionId === 'Autodesk.Measure') {
    
                var ext = viewer.getExtension('Autodesk.Measure');
                ext.measurementToolbarButton.removeFromParent();
            }
            // Remove "Text" icon
            else if (e.extensionId === 'Autodesk.Hyperlink') {
    
                var ext = viewer.getExtension('Autodesk.Hyperlink');
                ext.tool.removeFromParent();
            }
            // Remove properties icon
            else if (e.extensionId === 'Autodesk.PropertiesManager') {
    
                var ext = viewer.getExtension('Autodesk.PropertiesManager');
                ext._toolbarButton.removeFromParent();
            }
        }
    

    有什么办法可以去掉“选择文本”(T)图标?以下代码不起作用:

    var ext = viewer.getExtension('Autodesk.Hyperlink');
                    ext.tool.removeFromParent();
    

    谢谢。

    【讨论】:

      【解决方案2】:

      加载相应的扩展,例如测量('Autodesk.Measure')时会初始化一些工具栏。如果您仍然需要在工作流程中使用这些功能,但只需将按钮放在自己的工具栏上,或者没有按钮,则需要检查相应的扩展是否支持仅删除按钮。例如在'Autodesk.Measure'扩展中,它具有measurementToolbarButton.removeFromParent方法,通过该方法,默认按钮将被删除,而测量功能仍然存在。代码可能是:

      ext = NOP_VIEWER.getExtension('Autodesk.Measure')
      ext.measurementToolbarButton.removeFromParent()
      

      当您需要通过自己的按钮切换到测量模式时,调用下面的方法:

       NOP_VIEWER.setActiveNavigationTool('measure')
      

      如果您根本不需要这些功能,只需卸载扩展程序即可。默认按钮也将被删除。

      【讨论】:

      • 有什么办法可以去掉“选择文本”(T)图标吗?
      猜你喜欢
      • 2020-10-13
      • 2020-09-06
      • 2021-07-14
      • 2021-11-12
      • 1970-01-01
      • 2020-10-02
      • 2021-09-19
      • 2020-10-27
      • 2020-10-23
      相关资源
      最近更新 更多