Autodesk forge 从“锻造设置工具”工具栏中删除“工具”按钮

Autodesk forge 从“锻造设置工具”工具栏中删除“工具”按钮,autodesk-forge,autodesk-viewer,Autodesk Forge,Autodesk Viewer,我想从Forge工具栏中删除一些按钮 到目前为止,我已经使用了@Philippe at的代码,并且成功地删除了“navTools”和“modelTools”中的所有按钮。尝试使用“settingsTools”时,我只能删除ModelBrowser按钮,而不能删除Properties或Settings或Fullscreen按钮(在调试模式下,我将这些控件视为空值)。这是我的密码: var viewerDiv = document.getElementById('MyViewerDiv'); vie

我想从Forge工具栏中删除一些按钮

到目前为止,我已经使用了@Philippe at的代码,并且成功地删除了“navTools”和“modelTools”中的所有按钮。尝试使用“settingsTools”时,我只能删除ModelBrowser按钮,而不能删除Properties或Settings或Fullscreen按钮(在调试模式下,我将这些控件视为空值)。这是我的密码:

var viewerDiv = document.getElementById('MyViewerDiv');
viewer = new Autodesk.Viewing.Private.GuiViewer3D(viewerDiv);
const onExtensionLoaded = (e) => {
    if (e.extensionId === 'Autodesk.DefaultTools.NavTools') {
        const settingsTools = viewer.toolbar.getControl('settingsTools')
        settingsTools.removeControl('toolbar-modelStructureTool') //That's ok!

        settingsTools.removeControl('toolbar-propertiesTool')  //NOT FUNCTIONING          
        const settingsButton = settingsTools.getControl('toolbar-propertiesTool') //It remains as null when debugging
        settingsTools.removeControl(settingsButton)

        settingsTools.removeControl('toolbar-settingsTool') //NOT FUNCTIONING          

        settingsTools.removeControl('toolbar-fullscreenTool') //NOT FUNCTIONING          

        viewer.removeEventListener(
            Autodesk.Viewing.EXTENSION_LOADED_EVENT,
            onExtensionLoaded)
    }
} 
viewer.addEventListener(Autodesk.Viewing.EXTENSION_LOADED_EVENT, onExtensionLoaded)
viewer.start(svfUrl, modelOptions, onLoadModelSuccess, onLoadModelError);
我知道我可以隐藏整个settingsTool,但是当设置属性/设置/全屏按钮的visible to true时,我会遇到同样的问题。在调试代码时,控件似乎再次保持为空

请帮我面对“设置工具”工具栏上的最后3个按钮好吗? 本质上,我试图理解查看器的全局定制,删除UI中的所有内容不是我的目的:)


谢谢

何时删除特定按钮取决于它是否由扩展创建,如果是,则取决于哪个扩展

Philippe的回答中提到的“工具栏firstPersonTool”按钮是由“Autodesk.FirstPerson”扩展创建的,因此我们可以只收听该扩展的加载

但是,您感兴趣的按钮,如“工具栏模型结构工具”,是“内置”的,不是由扩展创建的。因此,您必须收听另一个事件,“工具栏\u创建的\u事件”,如本文所示:

非常感谢!还有一个问题:在您的博客文章的屏幕截图中打开的js文件是哪一个,其中突出显示了GuiViewer3D.prototype.initModelTools函数?了解查看器的真实行为非常有用。您可以参考,我更喜欢使用
.css
,而不是html页面中的最小版本,因为它在版本之间似乎更稳定
.adsk viewing viewer#toolbar settingsTool{display:none!important}