如何在 Forge Viewer 中卸载默认扩展?

How do I unload a deafult extension in Forge Viewer?

我尝试从 Autodesk 卸载查看器中的扩展,我在 Viewing.Initializer 的回调中调用扩展,但似乎这部分代码中的扩展尚未加载。

var viewer;
var options = {
    env: 'AutodeskProduction',
    api: 'derivativeV2',  // for models uploaded to EMEA change this option to 'derivativeV2_EU'

    // Function to define the method to get the token and renew it
    getAccessToken: function (onTokenReady) {
        let token = '';
        let timeInSeconds = 3600; // TODO: Use value provided by Forge Authentication (OAuth) API

        // Code to get my token and time remaining
        onTokenReady(token, timeInSeconds);

    }
};

/**
 * Initializer function, when load the viewer
 */
Autodesk.Viewing.Initializer(options, function () {
    // Extensions
    var config3d = {
        extensions: ['forgeExtension', 'EventsTutorial', 'Autodesk.DocumentBrowser'],
    };

    // The dom element, where load the viewer
    var htmlDiv = document.getElementById('forgeViewer');
    viewer = new Autodesk.Viewing.GuiViewer3D(htmlDiv, config3d);


   //
   // Here I want to unload 'Autodesk.Explode'
   let explodeExtension = viewer.getExtension('Autodesk.Explode'); // explodeExtension is null
   explodeExtension.unload();
   //
   //

    var startedCode = viewer.start();
    if (startedCode > 0) {
        console.error('Failed to create a Viewer: WebGL not supported.');
        return;
    }

    console.log('Initialization complete, loading a model next...');
});

有什么卸载默认扩展的建议吗? 我使用 V7 查看器,我在 V6 中尝试了相同的结果。

您可以使用查看器事件来确保扩展存在并且可以卸载。您的卸载代码是正确的,您只需要等待完整的几何图形加载。使用此查看器事件,您可以在加载几何体时卸载默认扩展

viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, (x) =>  {
let explodeExtension = viewer.getExtension('Autodesk.Explode'); /
explodeExtension.unload();} );

这将在加载后立即卸载扩展。

或者,您可以通过取消注册来阻止加载扩展。 Autodesk.Viewing.theExtensionManager.unregisterExtension('Autodesk.Explode'); 这会导致错误,因为查看器仍在尝试加载扩展,但查看器仍会按预期工作。