【问题标题】:Possibility of opening an extension within another extension in Autodesk Forge在 Autodesk Forge 的另一个扩展中打开扩展的可能性
【发布时间】:2021-02-16 04:54:57
【问题描述】:

是否可以通过另一个自定义扩展打开自定义扩展?

我尝试过,但在“Autodesk.Viewing.UI.DockingPanel.call”时遇到问题,不确定我是否做得正确或完全有可能。

我的用例:

我需要创建一个报告,其中包含一些需要在运行时输入的附加数据以及当前视图的屏幕截图。(为此我有一个扩展)。

以上扩展需要通过标记扩展打开,以便我可以添加注释并保存屏幕截图。 干杯

编辑

是否也可以将自定义扩展添加到核心扩展中?

viewer.loadExtension("Autodesk.Viewing.MarkupsGui").then(function (extension_)
{
    viewer.loadExtension('CreateNcrExtension');
});

这实际上是行不通的。没有错误,但也不会加载

【问题讨论】:

    标签: autodesk-forge autodesk-viewer autodesk


    【解决方案1】:

    从另一个扩展加载扩展是很常见的,通常在你的扩展的load 方法中完成。 loadunload 方法可以是异步的,所以你可以这样做:

    class MyAwesomeExtension extends Autodesk.Viewing.Extension {
        // ...
        async load() {
            await this.viewer.loadExtension('Autodesk.Viewing.MarkupsCore');
            return true;
        }
        // ...
    }
    

    【讨论】:

    • 是否可以将自定义扩展添加到核心扩展中?这就是我试过的 viewer.loadExtension("Autodesk.Viewing.MarkupsGui").then(function (extension_) { viewer.loadExtension('CreateNcrExtension'); });我也更新了 OP
    • 我不确定您所说的“将扩展添加到”另一个扩展是什么意思?这也将有助于提供有关CreateNcrExtension 应该做什么的更多详细信息。
    • 顺便说一句。如果您的扩展程序应该创建一种新类型的标记,我正在整理一篇关于如何完成的博客文章。我也会解决一些复杂的问题(例如,在加载 MarkupsCore 扩展之前,您不能从 MarkupsCore 类派生)。
    • 当然,我的意思是我有一个名为 CreateNcrExtension 的自定义扩展,它基本上会打开一个小对话框(使用面板和 hatml 标签)并在系统(包括快照)。所以我想要实现的是为该屏幕截图添加注释。这就是我尝试通过 MarkupsGui 加载自定义扩展的原因。我不完全确定我所做的是否正确,只是在尝试
    • 啊,我明白了。请注意,如果您只是想从 SVG 加载一些标记,则需要 Autodesk.Viewing.MarkupsCore 扩展名,而不是 Autodesk.Viewing.MarkupsGui。 GUI 扩展实际上只用于添加一些基本的 HTML UI 以创建新的标记。
    猜你喜欢
    • 2019-02-19
    • 2021-05-18
    • 2020-08-03
    • 2020-10-30
    • 2021-06-16
    • 2021-09-18
    • 2021-02-19
    • 2017-12-31
    • 2022-01-27
    相关资源
    最近更新 更多