Autodesk forge 使用Forge API从第三方文件以编程方式重新计算精确零件体积

Autodesk forge 使用Forge API从第三方文件以编程方式重新计算精确零件体积,autodesk-forge,autodesk-viewer,autodesk,autodesk-model-derivative,autodesk-inventor,Autodesk Forge,Autodesk Viewer,Autodesk,Autodesk Model Derivative,Autodesk Inventor,我正在寻找最佳实践和性能指导建议,以便在源文件中缺少模型卷时重新计算模型卷。这是在我正在构建的web应用程序的上下文中实现的: 以各种文件格式上载三维模型 使用AutoDesk Viewer与这些模型交互 在查看器旁边显示质量属性,如体积和表面积(本文主题) 背景 某些文件格式具有非常可靠的卷信息,由编写应用程序计算并写入文件。对于这些文件,我们可以通过AutoDesk Viewer作为特性访问卷 但是,其他格式不携带卷信息——至少不能使用创作应用程序以外的工具公开访问卷信息(这里的主要示例是

我正在寻找最佳实践和性能指导建议,以便在源文件中缺少模型卷时重新计算模型卷。这是在我正在构建的web应用程序的上下文中实现的:

  • 以各种文件格式上载三维模型
  • 使用AutoDesk Viewer与这些模型交互
  • 在查看器旁边显示质量属性,如体积和表面积(本文主题
  • 背景 某些文件格式具有非常可靠的卷信息,由编写应用程序计算并写入文件。对于这些文件,我们可以通过AutoDesk Viewer作为特性访问卷

    但是,其他格式不携带卷信息——至少不能使用创作应用程序以外的工具公开访问卷信息(这里的主要示例是SolidWorks)。这给我们留下了一个巨大的缺口-我们需要使用文件中的内容重新计算模型的体积。

    已知的解决方法和选项 AutoDesk发布了一篇博客文章,详细介绍了解决此问题的方法。我认为它是一个理想的解决方案,适用于那些可以用准确性换取性能提升的用例,并且它将一切都集中在查看器中,从而简化开发和后续维护但是,此应用程序不能依赖于此类近似值。我正在查看如何利用:

  • 加载模型文件
  • 依靠iLogic触发模型零件特性的重新计算(可能)
  • 将这些数据推回到我的web应用程序
  • 我需要帮助的地方 我的理解是,and是提前定义的,然后每个上传的模型都会被定义

    我希望得到以下方面的指导:

    • 这是唯一的方法还是有其他选择值得考虑
    • 从操作顺序/工作流程的角度来最大化性能
    当前思维 例如,我认为上传源文件后的第一步是立即初始化两个并行进程:第一个是为查看器翻译源文件,第二个是启动Inventor并触发相关的下游进程以获取卷

    我正在考虑的另一个选项是处理Inventor中的所有工作,并将一个SVF文件推送到包含体积数据的查看器。这种方法的优点是,我的前端只有一个卷数据源(无论是否在原始文件中提供,它都将位于丰富的SVF中)


    在理想情况下,我只能在源文件中缺少卷数据时调用Design Automation API,但只有在转换文件并将其返回到查看器后,我才知道这一点。考虑到我们的许多文件都是在SolidWorks和其他高端专有CAD平台上创建的,我的工作假设是,我们将需要更频繁地填补体积缺口。

    您的理解是正确的:

    • appbundle只是封装特定Inventor/Revit/3dsMax/AutoCad插件的文件(二进制文件、数据)的集合
    • 活动是一种作业模板,指定应调用哪个应用程序、应将哪个appbundle加载到应用程序中、将向作业提供哪些输入以及将生成哪些输出
    • 然后,工作项是作业的特定实例,将活动输入和输出绑定到特定URL
    除了使用这3种类型的实体之外,目前没有其他方法可以访问设计自动化功能

    我建议如下:

    • 如果可能,请使用Inventor的Design Automation计算精确的面积/体积
    • 对于无法导入Inventor或任何其他设计自动化引擎的文件格式,可以使用以下工具解析SVF并从三角形网格计算(非常粗略的估计)面积/曲面;然而,这将是相当昂贵的计算和不精确的

    感谢Petr的反馈。我想知道你是否有任何建议来避免我所担心的性能问题。我们看到的大多数用户并不真正理解幕后的繁重工作,甚至在浏览器中渲染模型。您是否认为启动Inventor、排队请求、打开文件、重新计算并将其返回浏览器的过程类似于“感觉很长时间,但我们可以摆脱它”类型的延迟?或者你认为我们看到的不是15-20秒?恐怕是后者。设计自动化服务需要找到可用的实例,使用自定义插件启动Inventor,从某处下载Inventor模型,运行逻辑,然后上载结果。即使逻辑本身很快(我不确定),其余的工作仍然需要一些时间。。。