Manufacturing Data Model:ジオメトリ書き出し

Export Geometry | Manufacturing Data Model API (Beta) | Autodesk Platform Services に説明のあるとおり、Manufacturing Data Model で GraphQL を利用することで、Fusion 360 コンポーネントを STEP、OBJ、STL ファイル形式へのファイル書き出し出来るようになっています。


例えば、Manufacturing Data Model:Data Explorer での v2 利用設定 した Data Explorer で Fusion 360 のサンプルである bike frame を STEP、OBJ、STL ファイルへ出力する場合、次のような手順を踏むことになります。

Fusion 360のインターフェースに表示されたバイクフレームの3Dモデリング。赤と黒のフレーム部分が見える。

書き出すコンポーネント バージョンは、GraphQL オブジェクト同様、ID フィールドで指定します。

GraphQL schema overview in the Autodesk Manufacturing Data Model Explorer, displaying queries and component relationships with types and definitions.

コンポーネント バージョン ID は、MFG Data Explorer にプリセットされたタブ「GetHubs」➜「GetProjects」➜「GetFolders」➜「GetItems」 を使って取得することが出来ます。

Autodesk Manufacturing Data Model Explorer interface, highlighting the GetHubs, GetProjects, GetFolders, and GetItems tabs.

Fusion 360 で Hub とコンポーネントが格納されている Project を確認したら、GraphQL Data Explorer でご紹介した方法で、bike frame の Item を特定していきます。

「GetFolders」タブでは、Project 直下の Folder 情報(id、name 等)を返します。次のタスクで実行する「GetItems」タブでは、Item が格納されている Folder Id の指定が必要です。もし Item が Project 直下にある場合には、ルート フォルダの ID は返されないので、「GetFolders」の GraphQL クエリーに下記の太字を追記しておきます。

A graphical user interface displaying a bike frame model in Autodesk Fusion 360, with options for data management visible on the left side.
    # Task 3 – Pick Folder
    query GetFolders($projectId:ID!) {
      nav {
        project(projectId: $projectId) {
          folders {
            pagination {
              cursor
            }
            results {
              parentFolder{
                id
              }
              name
              id
            }
          }
        }
      }
    }

少し冗長ですが、このクエリーを実行すると、”parentFolder” スコープに Project 直下の Folder Id が返されます。

GraphQLクエリの実行画面を示すスクリーンショット。プロジェクトのフォルダ情報を取得する部分が強調表示されています。

ここまでに取得した Project Id と Folder Id を Variables  に指定して「GetItems」の  GraphQL クエリーを実行すると、レスポンス中に bike frame の tipRootComponentVersion id が得られます。この Id を使って、ファイル書き出しをおこないます。

GraphQLクエリの「GetItems」の実行画面、Fusion 360のバイクフレームコンポーネントに関連する情報が表示されている。

Data Explorer に新しいタブを用意したら、次の GraphQL クエリーを左側にクリップボード経由で貼り付けます。

    query GetComponentVersion ($componentVersionId: ID! ) {
        mfg {
        componentVersion (componentVersionId: $componentVersionId) {
              id
              name
              partNumber
              isMilestone
              materialName
              lastModifiedOn
              derivatives( derivativeInput: { generate: true, outputFormat:[STEP, STL, OBJ]}){
                 id
                 progress
                 status
                 signedUrl
                 outputFormat
                 expires
              }
           }
        }
     }

左下の Vriables 欄には、componentVersionId 変数に先に「GetItems」で取得した tipRootComponentVersion id を指定します。

    {
        "componentVersionId": "<tipRootComponentVersion id >"
    }

この GraphQL を実行すると、STEP、OBJ、STL ファイルの作成を開始されます。書き出すコンポーネントの複雑さにもよりますが、書き出しは即座に終了しないので、レスポンスの progress と status の値が 100(%)と success になるまで何回か実行を繰り返します。

progress と status の値が 100 と success になると、ファイル毎に sigendurl に書き出されたファイルをダウンロードするための SignedURL(署名付き URL)が返されます。

GraphQL query in the MFG Data Model Explorer interface, showing a code snippet with highlighted SignedURL and status information.

この URL を Web ブラウザの URL 欄に入力して実行すると、書き出されたファイルをダウンロードして Inventor 等に取り込むなどして再利用することが出来ます。

3Dモデルの自転車フレームを表示している画面。黒と灰色の構造が特徴的で、Fusion 360ソフトウェアのインターフェースが見える。

By Toshiaki Isezaki