自定义 Autodesk GuiViewer3D 工具栏

Customizing Autodesk GuiViewer3D toolbar

我正在使用 Autodesk 查看器 v7

const script = document.createElement('script')
script.src = 'https://developer.api.autodesk.com/modelderivative/v2/viewers/7.*/viewer3D.min.js'
script.async = true
script.onload = () => setDeskLoaded(true)
document.body.appendChild(script)

我正在按照有关创建扩展来修改工具栏的文档进行操作,但它无法检测到 .onToolbarCreated,我需要向现有工具栏添加一些按钮。

如果您没有收到该事件,这肯定是因为您的扩展是在工具栏已创建的时候加载的。仅当查看器创建其工具栏时才会引发此事件。您看到的示例可能假设您在初始化时加载扩展。

在您的代码中,您必须检查查看器状态以决定是否需要创建事件处理程序或直接转到工具栏代码。我通常会做以下事情:

if ( this.viewer.getToolbar(true) )
  this.onToolbarCreated();
else
  this.viewer.addEventListener(
    Autodesk.Viewing.TOOLBAR_CREATED_EVENT,
    this.onToolbarCreated.bind(this)
  );