【问题标题】:Controlling the autodesk-forge viewer with external buttons使用外部按钮控制 Autodesk-forge 查看器
【发布时间】:2020-10-02 07:50:55
【问题描述】:

目前,我正在将 forge 添加到公司内部网站,在那里我们可以查看我们已经建造或正在建造的所有机器。该网站的工作原理是这样的:用户选择一个机器编号,所有关于机器的信息都会弹出。这包括机器内的工作站,以及每个工作站内的所有单独零件。我的任务是将 autodesk-forge 添加到网站。目前我已经成功使用了autodesk-forge查看器,这样无论何时选择一台机器,用户只要按下一个按钮,就会弹出整台机器的模型进行查看。下一步是让查看器由网站上的外部按钮控制。我们希望它这样工作:

  1. 用户选择了一台机器。之后会弹出机器中每个工位内的工位、零件等所有信息(即完成)。

  2. 用户单击“查看模型”按钮,该按钮将使用伪造查看器使机器在网站上弹出(这已由我完成)。

  3. 一旦带有模型的伪造查看器出现在屏幕上,我们希望查看器能够通过站点上已有的外部按钮进行控制。

例如,如果有一台名为 MC-000 的机器,并且在该机器中有一个名为 ST010 的工位,那么在该工位内有许多零件,例如一个齿轮。当用户正在查看机器 MC-000 时,我们希望能够单击已经制作好的外部按钮(例如 ST010),查看器将自动放大并突出显示机器内的该站点。我们也希望机器内的零件也一样。当一台机器被挑选出来时,它的工位以及工位内的零件已经在我们的网站上打印出来了。我们现在希望能够单击车站或零件,并让查看器自动放大该零件#或车站#。我找到了一个类似的代码示例here。在此示例中,查看器的部分由不在查看器内的按钮控制。例如,当单击“引擎”按钮时,查看器将自动放大引擎。这个例子的问题是所有位置都被硬编码到代码中,这意味着引擎的位置已经在代码中。我不能这样做,因为我们有许多不同的机器和数千个零件,所以我不可能将它们全部硬编码。这样的事情可以用 autodesk-forge 查看器来做吗?任何帮助或指导将不胜感激。干杯!

编辑**

任何关于如何更改查看器放大位置的指导都将不胜感激,并且会很有帮助。目前,我有方法从 GET :urn/metadata/:guid http 请求中获取 dbid 和外部 objectId。再次感谢!

【问题讨论】:

    标签: autodesk-forge autodesk-viewer


    【解决方案1】:

    看来您确实有指定的引擎 dbid,并且您可以将查看器功能与外部代码链接起来。查看器的默认双击行为是选择鼠标指针碰撞的项目。然后相机放大(或缩小)该项目以使其适合视图。

    你可以使用:

    select

    fitToView

    实现模拟交互。

    例如在打字稿中:

    // Your dbid is for example 1234
    this.viewer.select(1234);
    this.viewer.fitToView([1234]);
    

    【讨论】:

    • 非常感谢@Samuel Middendorp 的帮助。我正在关注本教程:forge.autodesk.com/blog/property-based-selection-isolation。当您单击属性工具栏时,它会隔离一个零件。我想知道如何获得 dbid 的名称,因为我需要在我的代码中使用它。我知道存在一个函数名称 getNodeName(dbid) 但是我似乎无法让它工作。任何使用它的例子都将不胜感激。再次感谢!
    • 使用您描述的元数据端点也应该为您提供名称。在您的问题中,您说明了显示站点和零件的功能。所以你已经有了正确的名字?
    • 我找到了一种获取特定 dbid 名称的方法。但是,我需要能够获取特定组件或零件名称的 dbId。我怎么能这样做? @Samuel Middendorp
    • 你可以查看this,这是对所有元素的通用搜索。
    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 2017-08-22
      • 2021-07-14
      • 2021-11-12
      • 1970-01-01
      • 2021-09-19
      • 2020-10-23
      • 2017-01-07
      • 2021-09-18
      • 2018-09-26
      相关资源
      最近更新 更多