添加 Autodesk forge 扩展

Posted

技术标签:

【中文标题】添加 Autodesk forge 扩展【英文标题】:Adding a Autodesk forge extension 【发布时间】:2020-08-03 21:59:16 【问题描述】:

您好,我正在尝试在查看器中添加 forge 扩展,但我不知道我错过了什么。

我关注了这篇文章:https://forge.autodesk.com/blog/loading-external-extensions-forge-viewer

这是我的代码:

 <body>

  <div id="MyViewerDiv"></div>


  <script>
      var myViewerDiv = document.getElementById('MyViewerDiv');
      var viewer = new Autodesk.Viewing.Private.GuiViewer3D(myViewerDiv);
      var options = 
          'env' : 'Local',
          'document' : './modelV4/hahahah/4/output.svf',

      ;
      Autodesk.Viewing.Initializer(options, function() 
        viewer.start(options.document, options);
      );
      Autodesk.Viewing.theExtensionManager.registerExternalExtension(
  'MyExternal.Extension.Id',
  'http://localhost:3000/js/external.js')
  viewer.addEventListener(
  Autodesk.Viewing.GEOMETRY_LOADED_EVENT, () => 

    viewer.loadExtension('MyExternal.Extension.Id').then(
      function(externalExtension) 

        externalExtension.sayHello('Bob')
      )
  )
  </script>

</body>

这是我的道路:

【问题讨论】:

【参考方案1】:

对于更新版本的查看器,该文章中描述的方法不再有效 - 您需要直接传递扩展类/函数而不是扩展脚本的链接:

  /**
     * Registers a new extension with the given id.
     *
     * @param string extensionId - The string id of the extension.
     * @param Extension extension - The Extension-derived class representing the extension.
     * @returns boolean - True if the extension was successfully registered.
     * @alias Autodesk.Viewing.ExtensionManager#registerExtension
     */
    function registerExtension(extensionId, extension) 

按照本教程here 开始...

如果您想将扩展代码包装在另一个脚本中,只需在查看器库之后使用脚本标记加载它...:

<script src='https://developer.api.autodesk.com/modelderivative/v2/viewers/viewer3D.min.js'></script>
<script src='path/to/your/extension.js'></script>

【讨论】:

以上是关于添加 Autodesk forge 扩展的主要内容,如果未能解决你的问题,请参考以下文章

Autodesk Forge 设计自动化

Autodesk Forge:集群扩展

如何将 Autodesk Forge 查看器扩展添加到 React?

Autodesk Forge 数据管理 API

Dashboard.js Autodesk Forge

Forge 查看器:Autodesk.BoxSelection 扩展错误