Fusion 360 API:ドキュメント構造

今回は Fusion 360 で扱うことになるドキュメントの構造について、主要な項目に分けてご紹介しておきたいと思います。用語が幾分抽象的になりますが、ご容赦ください。アルファベット表記の場合は Fusion 360 API のクラス、カタカナ表記の場合は、一般的なフィーチャ ベースの 3D CAD の概念に合致するはずです。

Docuemnt(ドキュメント)

Fusion 360 で扱うことになるファイルを、API では「ドキュメント」として表現しています。ドキュメントには、さまざまなデータを格納するコンテナとしての役割があります。この考え方は、Fusion 360 に限らず、Inventor や AutoCAD などの CAD データも含め、オフィス系ソフトが作成するデータにも当てはめることが出来るはずです。

さて、Fusion 360 で扱うドキュメントは、API 上 Document という基本クラスで表現されています。実際に Fusion 360 が扱うデータの種類によって、次の派生クラス名で表現される 2 種類のドキュメントが存在しています。

  • FusionDocument
    デザインや CAM、シミュレーションで利用される 3D モデルを含みます。
  • DrawingDocument
    3D モデルから生成される 2D 図面を含みます。

現時点では Fusion 360 API では図面をサポート出来ていないので、DrawingDocument クラスにアクセスすることは出来ません。なので、ここでは FusionDocument に特化して話を進めていくことにします。

Product(プロダクト)

FusionDocument には、格納されるデータタイプによって Product クラスで表現されるデータが格納されています。

  • Design
    すべての Fusion データで、常にドキュメント内で 1 つだけ存在します。
  • CAM
    デザインデータを利用して作成された CAM 用データです。ドキュメント内には、CAM データが必ずしも含まれるものではなく、また、定義されている場合でも、存在する CAM  データはドキュメント内に  1つのみです。
  • SIMStudy
    デザインデータを利用して作成されたシミュレーション スタディ  データです。ドキュメント内には、シミュレーション スタディデータが必ずしも含まれるものではなく、また、定義されている場合でも、存在するシミュレーション スタディ データはドキュメント内に  1つのみです。
  • SIMCase
    個々に作成したシミュレーション スタディ です。ドキュメント内に全く存在しない場合も、複数存在する場合もあり得ます。

Design(デザイン)

FusionDocument に  1  対 1 で対応するオブジェクトで、実際のデータ要素であるコンポーネントにアクセスする窓口となります。

Component(コンポーネント)

Design に 1 対 1 で対応するルート コンポーネントがあり、このルート コンポーネントが、パーツやサブアセンブリなどの各種コンポーネントへのアクセスを提供します。

Fusion 360のAPIの構造を示すダイアグラム。主要なクラスやオプションがリスト化されている。

ユーザ インタフェースを使って新しいコンポーネントを追加する際には、常にアクティブ コンポーネントに新しく作成したコンポーネントが追加されます。API でのコンポーネント追加の場合には、追加対象するコンテナとなるコレクション オブジェクトにコンポーネントを追加することが出来ます。いずれの場合も、コンポーネントはワールド座標系に沿って配置されます。

Occurrence(オカレンス)

Occurrence は、ブラウザ上では “コンポーネント” として表示され、Occurrence が他の Occurrence を含むことが出来ます。また、 Occurrence 再配置が可能です。

Fusion 360のブラウザインターフェースを表示し、EMERB_ASSEMBLY v1の構造を示す左側のツリーと、右側にコンポーネントやオカレンスを示した階層図

複数の Occurrence が同時に別の 1 つの Occurrence を参照することも出来ます。

もし、この Occurrence が、別ドキュメントにある Occurence を参照する場合、つまり、アセンブリとパーツの関係がドキュメントをまたいでいる場合を想定してみます。アセンブリ上で、アセンブリが参照するパーツ(Occurrence )のジオメトリにアクセスしようとした場合に問題が起こります。形状の実態であるジオメトリは、パーツ ファイルとして定義されたコンポーネント内にしか存在しません。にもかかわらず、アセンブリ上に配置されたコンポーネントとして、そのジオメトリを個々に取得する必要があるという場合です。

Proxy(プロキシ)

このようば場面では、アセンブリ上に配置されている Occurrence を Proxy として扱うことで、個々の独自性を維持することが出来ます。Proxy からは、参照元の別ドキュメントの Occurrence へのアクセスが提供されます。もし、同一ドキュメント内にジオメトリが存在する場合には、実際にジオメトリに直接アクセスすることが出来ます。 

Fusion 360 のユーザーインターフェースにおけるコンポーネントの操作を示す画像。左側にはコンポーネントのバージョンと構造、右側には3Dモデルの表示がある。

By Toshiaki Isezaki

Discover more from Autodesk Developer Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading