今回は 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 で対応するルート コンポーネントがあり、このルート コンポーネントが、パーツやサブアセンブリなどの各種コンポーネントへのアクセスを提供します。

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

複数の Occurrence が同時に別の 1 つの Occurrence を参照することも出来ます。
もし、この Occurrence が、別ドキュメントにある Occurence を参照する場合、つまり、アセンブリとパーツの関係がドキュメントをまたいでいる場合を想定してみます。アセンブリ上で、アセンブリが参照するパーツ(Occurrence )のジオメトリにアクセスしようとした場合に問題が起こります。形状の実態であるジオメトリは、パーツ ファイルとして定義されたコンポーネント内にしか存在しません。にもかかわらず、アセンブリ上に配置されたコンポーネントとして、そのジオメトリを個々に取得する必要があるという場合です。
Proxy(プロキシ)
このようば場面では、アセンブリ上に配置されている Occurrence を Proxy として扱うことで、個々の独自性を維持することが出来ます。Proxy からは、参照元の別ドキュメントの Occurrence へのアクセスが提供されます。もし、同一ドキュメント内にジオメトリが存在する場合には、実際にジオメトリに直接アクセスすることが出来ます。

By Toshiaki Isezaki

You must be logged in to post a comment.