Fusion 360 API:ジオメトリとトポロジ ~ その1

Fusion 360 では、スケッチ、ソリッド、サーフェス、 T スプラインなど、多様なオブジェクトを扱うことになります。ここでは、API でそれらを扱うための基本的な概念をご案内します。まず最初に、パラメトリック フィーチャ ベースの 3D CAD にある概念、用語をご紹介しておきます。


ジオメトリ

Fusion 360 内で扱われる様々な形状をかたち作る幾何情報です。スケッチで考えると分かり易いと思います。具体的には、線分や円、円弧などが、その構成要素になります。

少し考えを発展させて、今度はソリッドを考えてみましょう。ソリッドとは、複数のサーフェイスで体積を取り囲む集合体と言えます。この場合、ソリッドの構成要素は、サーフェスと考えることが出来ます。さらに、個々のサーフェスは、その輪郭形状を線分や円、円弧などの構成要素として保持しています。ジオメトリとは、この構成要素の幾何形状や座標値などを指します。

Three-step illustration of a CAD design process showing a 2D sketch, a 3D solid model, and a more complex 3D object with internal features.

トポロジ

上記のソリッドで考えた場合、体積を囲むサーフェス群には、ソリッドを形作る上で重要な情報があります。サーフェス同士が、どのように隣接し合っているかの情報です。具体的には、あるサーフェスに隣接するサーフェス同士が、どのエッジとどのエッジで接しているか、などの情報です。このような位置関係を維持する情報を、位相情報、あるいは、トポロジと呼びます。

そして、ジオメトリとトポロジの両者を扱うための概念が、B-Rep(Boundary Representation)、日本語表現では 境界表現 と呼ばれる考え方です。Fusion 360 API でジオメトリを取得する必要がある場合には、このB-Rep を用いて、必要となるジオメトリを構成要素として取得出来る階層まで、トポロジを追跡していく作業が必要になります。


ここからは、Fusion 360 API:ドキュメント構造 のブログ記事で紹介した Component オブジェクトから、どのようにトポロジを追跡していくか、また、個々の B-Rep がどのようなオブジェクトで表現されているかを見ていきます。

Bodies – ソリッドとサーフェス

Fusion 360 APIの構造を示す図。Component、BRepBodies、BRepBodyの関係を表現。

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

3D CADで作成されたソリッドの形状を持つオブジェクト。円形の穴が中央に開いている、エッジが滑らかな長方形のプレート

Lumps – ランプ

階層的なオブジェクトの構造を示す図。Component、BRepBodies、BRepBody、BRepLumps、BRepLumpの関係を視覚化している。

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


Shells – シェル

階層構造を示すFusion 360のジオメトリオブジェクトに関する図。各オブジェクトはコンポーネント、BRepBodies、BRepBody、BRepLumps、BRepLump、BRepShells、BRepShellを含む。

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

3D CADソフトウェアのFusion 360におけるソリッドやサーフェスのハイアラーキーを示す図。複数のボックスが組み合わさった構造。

 Faces – 面

Component、BRepBodies、BRepBody、BRepLumps、BRepLump、BRepShells、BRepShell、BRepFaces、BRepFaceを示す階層構造の図

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

赤い面と灰色のエッジを持つ3D CADモデルの部品で、中央に丸い穴が開いている。

Loops – ループ

B-Repオブジェクトの階層構造を示す図。各レベルにはComponent、BRepBodies、BRepBody、BRepLumps、BRepLump、BRepShells、BRepShell、BRepFaces、BRepFace、BRepLoops、BRepLoopが含まれる。

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

3D CADの平面上に描かれた長方形の一部に、中央に黄色の点を持つ赤い円が描かれています。

Edges – エッジ

B-Repオブジェクトの階層を示す図。Componentから始まり、BRepBodies、BRepBody、BRepLumps、BRepLump、BRepShells、BRepShell、BRepFaces、BRepFace、BRepLoops、BRepLoop、BRepEdges、BRepEdgeへと続く。

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

3D CADモデルのソリッドオブジェクト。穴が開いた長方形の形状を持ち、表面には赤いエッジが描かれている。

Verteces – 頂点

B-Rep構造を示す階層図。Component、BRepBodies、BRepBody、BRepLumps、BRepShells、BRepFaces、BRepLoop、BRepEdge、BRepVertexを含む

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

3D CADモデルのソリッドオブジェクト。表面は滑らかで、一部に穴が開いており、赤いエッジが強調表示されている。

 CoEdges – 共通エッジ

Fusion 360 APIのBRepオブジェクトの階層構造を示す図。ComponentからBRepBodies、BRepBody、BRepLumps、BRepShells、BRepFacesなどの関係が描かれています。

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

円形の穴が空いた長方形に矢印が描かれた図

3D CAD によって異なりますが、B-Rep を扱うためのオブジェクト(主にトポロジ) には非常に多くのオブジェクトが存在します。

次回は、ジオメトリの注意点とトポロジからジオメトリの取得ついて、ご案内しましょう。

By Toshiaki Isezaki

Discover more from Autodesk Developer Blog

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

Continue reading