【问题标题】:Should the structure of a derived obj file coinside with the naming of the original step file?派生的 obj 文件的结构是否应该与原始步骤文件的命名一致?
【发布时间】:2017-06-06 19:38:03
【问题描述】:

使用 Model Derivative API 时,我成功地从一个步骤文件生成了一个 obj 表示。但在这个过程中有一些我不完全理解的怪癖:

  1. Post 作业有一个output.advanced.exportFileStructure 属性,可以设置为"multiple" 和一个output.advanced.objectIds 属性,可以让您指定要提取的模型的哪些部分。从文档所述的少量内容来看,我希望每个请求的 objectid 都会收到一个 obj 文件。根据我的经验,情况并非如此。那么这仅适用于.iam.ipt 等压缩文件吗?

  2. 好吧,无论如何,我为所有 objectIds 获取一个 obj 文件,每个 objectIds 一个多边形组。这些组被命名(duh!),所以我希望它们像他们的 objectId 一样命名,但它看起来像是数字是以随机方式分配的。那么我应该如何实际将 objectId 映射到其相应的 3d 部分?有什么方法可以将 GET :urn/metadata/:guid/properties 中的信息链接回它们的对象?

我希望有人能对此有所启发。如果您需要更多信息,我可以为您提供原始步骤文件、obj 和我的服务器日志。

【问题讨论】:

    标签: wavefront autodesk-forge autodesk-model-derivative


    【解决方案1】:

    您误解了派生 API 的 objectIds 属性:指定该字段允许您仅将特定组件导出到单个 obj,例如您的汽车模型有 1000 个不同的组件,但您只想导出代表引擎的组件: [34, 56, 76](我只是编造的……)。如果要将每个 objectId 导出到单独的 obj 文件,则需要触发多个作业。 “exportFileStructure”选项仅适用于复合设计(即装配体)单:为所有输入文件(装配文件)创建一个 OBJ 文件,多个:为每个对象创建一个单独的 OBJ 文件。步骤文件不是复合设计。

    正如您所注意到的,obj 组是随机命名的。据我所知,没有简单可靠的方法将 obj 文件中的组件映射到原始 objectId,因为 .obj 是一种非常基本的格式,它不支持元数据。您可以使用几何方法(查找组件在空间中的位置,使用边界框,...)来实现映射,但对于复杂的模型可能具有挑战性。

    【讨论】:

    • 好吧,这就是我害怕的答案。所以基本上,如果要提取单个对象,我基本上会立即浪费我所有的云积分。我认为在它们的 objectId 之后命名多边形组是有意义的。我想这并不难,因为对象 id 只是一个基于 1 的索引,g 行前缀之后的组名显然可以只是一个数字。您认为将来有可能实现这样的功能吗?
    • 如果没有那就太可惜了。因为这个小细节使我无法以有意义的方式将任何游戏引擎与 forge 结合使用。
    • 当然,我同意这将是比随机命名更好的方法。我已经在我们的系统中为开发团队记录了这个请求。我不能保证它迟早会实施,但你现在有机会:)
    • 谢谢。我可以关注模型衍生 API 的任何官方变更日志吗?我在 developer.autodesk.com 上找不到任何内容。
    • 这应该在“Overview/Recent Changes”部分下,比如数据 API:developer.autodesk.com/en/docs/data/v2/overview,但不幸的是它不存在于衍生品中,所以我也会提请他们注意...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-17
    • 2021-05-10
    • 2021-02-04
    相关资源
    最近更新 更多