Fusion 360 では、スケッチ、ソリッド、サーフェス、 T スプラインなど、多様なオブジェクトを扱うことになります。ここでは、API でそれらを扱うための基本的な概念をご案内します。まず最初に、パラメトリック フィーチャ ベースの 3D CAD にある概念、用語をご紹介しておきます。
ジオメトリ
Fusion 360 内で扱われる様々な形状をかたち作る幾何情報です。スケッチで考えると分かり易いと思います。具体的には、線分や円、円弧などが、その構成要素になります。
少し考えを発展させて、今度はソリッドを考えてみましょう。ソリッドとは、複数のサーフェイスで体積を取り囲む集合体と言えます。この場合、ソリッドの構成要素は、サーフェスと考えることが出来ます。さらに、個々のサーフェスは、その輪郭形状を線分や円、円弧などの構成要素として保持しています。ジオメトリとは、この構成要素の幾何形状や座標値などを指します。

トポロジ
上記のソリッドで考えた場合、体積を囲むサーフェス群には、ソリッドを形作る上で重要な情報があります。サーフェス同士が、どのように隣接し合っているかの情報です。具体的には、あるサーフェスに隣接するサーフェス同士が、どのエッジとどのエッジで接しているか、などの情報です。このような位置関係を維持する情報を、位相情報、あるいは、トポロジと呼びます。
そして、ジオメトリとトポロジの両者を扱うための概念が、B-Rep(Boundary Representation)、日本語表現では 境界表現 と呼ばれる考え方です。Fusion 360 API でジオメトリを取得する必要がある場合には、このB-Rep を用いて、必要となるジオメトリを構成要素として取得出来る階層まで、トポロジを追跡していく作業が必要になります。
ここからは、Fusion 360 API:ドキュメント構造 のブログ記事で紹介した Component オブジェクトから、どのようにトポロジを追跡していくか、また、個々の B-Rep がどのようなオブジェクトで表現されているかを見ていきます。
Bodies – ソリッドとサーフェス

BRepBody オブジェクトは、ソリッド、または、サーフェスのグループを表現しています。Component オブジェクトの bRepBodies プロパティから BRepBodies コレクションを取得できます。 さらに、BRepBodies の item プロパティで、個々の BRepBody オブジェクトを取得することが出来ます。

Lumps – ランプ

ランプ(BrepLumps)は、接続されたサーフェイス群のグループで、常に BRepBody と 1:1 になります。BRepBody の lumps プロパティで BRepLumps コレクションを、BRepLumps コレクションの item プロパティで、個々の BRepLump オブジェクトを取得することが出来ます。
Shells – シェル

BRepShells コレクションは、接続されたサーフェイス群のセットです。BRepShells コレクションの item プロパティで、個々の BRepShell オブジェクトを取得することが出来ます。シェルの内側の空間が存在する可能性もありますが、この判定は isVoid プロパティでおこなうことができます。

Faces – 面

BRepFace は、単一のサーフェスを表現します。

Loops – ループ

BRepLoop は、サーフェスの境界を表現します。

Edges – エッジ

BrepEdge は、面の外形となり、隣接する面と接するカーブです。

Verteces – 頂点

BrepVertex は、エッジの端点を表現します。

CoEdges – 共通エッジ

BRepCoEdge は、各サーフェスのエッジを表現します。ジオメトリは、サーフェイスの 2D 空間に定義されることになります。

3D CAD によって異なりますが、B-Rep を扱うためのオブジェクト(主にトポロジ) には非常に多くのオブジェクトが存在します。
次回は、ジオメトリの注意点とトポロジからジオメトリの取得ついて、ご案内しましょう。
By Toshiaki Isezaki

You must be logged in to post a comment.