09.3+2PartワークベンチとPartDesignワークベンチの基本的な違い

 FreeCADには3D形状を作成するツールとしてPartワークベンチとPartDesignワークベンチがある。技術ドキュメントによると、Partワークベンチは従来の方法を提供し、PartDesignワークベンチはパラメトリック変換によるモデリングを提供するとなっている。

 BIMワークベンチでは、Partワークベンチのツールが採用されているので、違和感なくモデリングを続けてきたが、ネットで検索できるFreeCADの説明はほとんどがPartDesignワークベンチの説明になっていて、Partワークベンチとは少し考え方が違っている。

 そこで、PartDesignワークベンチを試してみてそれぞれのモデリングの方法と違いについて考えた。モデリングにおいては、これしかないという正解はないのでいろいろな方法を知って使い分けることも必要である。

■ボディについて
PartDesignワークベンチで作成するSolidは必ずボディに含まれている。

PartDesignワークベンチで操作を始めてすぐにいくつか分からないことがあった。
 1.そもそもボディとは何か。
 2.ボディの中に複数のオブジェクトを作成できない。
 3.Face(面)を編集するツール(作成、切断)がない。

これらの疑問はボディとは何かを理解すると解決する問題である。


ボディについて技術ドキュメントには、次のようにある。
ボディはPartDesignワークベンチでSolidを作成するためのベース要素である。スケッチ、データムオブジェクト(作図の基準になる点、線、面のようなもの)、および単一の連続したソリッドを構築するためのPartDesign機能を含めることができる。
ボディは、ローカルのX、Y、Z軸、および標準平面を含むOriginオブジェクトを提供する。 

FreeCADと他のプログラムとの根本的な違いは、FreeCADでは同じPartDesignボディに複数の切断されたソリッドを含めることができないことである。つまり、新しい機能は常に前の機能の上に構築する(モデルがつながっている)必要がある。これにより、両方の機能が融合され、単一のソリッドになる。

これがボディである。

この例えが正しいかどうかはわからないが、ボディといって最初に考えるのは人間の体である。人間の体は空間の中に位置していると同時に自分の前後左右上下というローカルな座標でも物事を認識している。また、行動や思考という物体でないものも含めて人間という一つのものである。
人間をボディと考えるなら、体につながっているものはボディの一部であり、体から離れたものはボディではないと区別することができる。体から離れているものは、ボディの一部ではなく別のボディである。

PartDesignワークベンチで作成するSolidは必ずボディに含まれている。PartDesignのツールは単独のボディ内のSolidを編集するツールなので、同時に別のボディを編集することはできない。以上が1と2の答えである。
PartDesignワークベンチで分離した複数のSolidを作成したいときは、別のボディを作成しその中でSolidを構築する。

3の答えは、Face(面)関連のツールがないのは、三次元空間に厚さのない物体が存在しないように、ボディの中にも純粋なFaceは存在しないためと考えられる。3D形状を構成する要素としての面は存在するが、厚さのない面はSolidではないのでボディの中には存在しない。

Sketcherで閉じていないWireを作図するとボディの中にSketchを作成できるが、これに押出しや回転を適用してもエラーになって、面もSolidも作成することができない。PartDesignワークベンチはSolidを操作するツールなので、閉じたWireでないとSolidを作成することができない。

また、Solidを切断すると分離したSolidになるので、ボディには単一の連続したソリッドという規則に反するのでボディではなくなる。

実際に、PartDesignワークベンチで作成したSolidを、Partワークベンチの切断ツールを使って平面で切断することはできるが、できた形状はボディではなくなるので、PartDesignワークベンチのツールで編集することはできなくなる。

1.立方体のBoxを含むボディを、Partワークベンチの切断ツールパーツSliceApart.svgを使って、長方形Rectangle(Face)で切断する

2.ボディに含まれていないExploded Sliceオブジェクトができる。

3.このオブジェクトの下層にSlice.0とSlice.1というSolidオブジェクトができるが、これはボディではないので、PartDesignワークベンチのツールでは編集できない。



■FreeCADのデータについて
上の例でもわかるように、FreeCADのデータにはPartDesignワークベンチで作成したボディとPartワークベンチで作成したSolidを混在させることができる。他にDraftワークベンチで作成した2Dオブジェクトや、Sketcherで作成したSketchも同列に扱うことができる。

いろいろなツールで作成したデータをどこからでも扱えることは、FreeCADの特徴であり、長所でもあるが、ボディやSketchのような特別なオブジェクトがあることは操作を難しくする欠点にもなっている。

PartDesignワークベンチのボディに対してPartワークベンチのツールを適用すると、ボディを切断したSliceオブジェクトはPartDesignワークベンチでは扱えないが、その下層にあるBoxオブジェクトはPartワークベンチでは扱えないという笑えない状況が起こってしまう。

また、PartワークベンチとPartDesignワークベンチ、DraftワークベンチとSketcherには同じようなツールが多数あるが、操作方法や使用目的に違いがあるので、3DやCADに慣れていないとすぐに理解するのは難しいかもしれない。

Partワークベンチは、2Dと3Dオブジェクトを作成するツール
PartDesignワークベンチはボディという3Dオブジェクトを作成するツール

Draftワークベンチは2D作図ツールと移動複写ツール
Sketcherは拘束を使ってSketchという2Dオブジェクト(Wire)を作成するツール

この程度は最初に把握しておいた方がよい。


■パラメトリックなデータ構造
PartワークベンチとPartDesignワークベンチのもう一つの違いはデータ構造である。

これまでの3Dモデルは、できあがった形状だけを保存するダイレクトモデルで、形状を修正するには編集ツールで変形するしか方法がなかった。しかし、パラメトリックモデルになると、作成途中のパラメーターに戻って変更することで最終形状を変更することができるようになる。
FreeCADはこのパラメトリックモデルを作成するソフトなので、モデルタブを見るとわかるように、データに操作の履歴(ヒストリー)が記録されている。
履歴を記録するためには、すべての操作が数値化されている必要があるので、パラメトリックモデルは正確な図形を必要とするCAD系のモデリングに適した方法である。


技術ドキュメントのPartDesignワークベンチ序章で紹介されている「パーツとパーツデザイン」の中にモデリングの比較があるので、データ構造を確認してみる。

図のような形状を作成している。
・最初にL型の断面を回転してベースと縦のパイプを作成
・ベースを六角形に切抜き
・パイプにリブを追加
・ベースに穴を作成
・回転複写でリブや穴を配置



PartDesignワークベンチがわかりやすいのでデータを確認する。操作の順にデータが並んでいて、操作とそのベースになるSketchの構成になっているので、後から見ても作業の流れが理解できる。
形状は加算減算オブジェクトとして作成されるので、ブーリアン演算で合成する必要はない。


1.断面Sketchを作図
2.断面を回転
3.ベース切抜き六角形を作図
4.Pocketで切抜き
5.リブ断面を作図
6.リブ厚みを厚さ押出し
7.ベースの穴のラインを作図
8.穴を作成
9.リブと穴を回転複写


Partワークベンチでは履歴は階層構造になっており、古い操作は新しい操作の下層に移動する形で保存されている。操作の流れは下層から上層へ、同じ階層にあるものは、上から下に向かって操作している。

1.断面を作図
2.断面を回転
3.ベース切抜き六角形を作図
4.a押出しで切抜きSolidを作成
 bブーリアン演算でCut
5.リブ断面を作図
6.aリブ厚みを厚さ押出し
 b回転複写でリブを配置
 cブーリアン演算で結合Fusion
7.ベースの穴の断面を作図
8.a断面を回転して穴のSolidを作成
 b回転複写で穴Solidを配置
9.穴Solidをブーリアン演算でCut

PartDesignワークベンチでは、履歴は最初の作業から順に並んでいて、最終操作で統合された形状が表示されるようになっている。
データ構造としてはPartDesignワークベンチの方が整理されている。特にPartワークベンチでは、複数のSolidを同時に作成することもできるので、操作の過程が見えなくなることがある。
したがって、PartDesignワークベンチは複雑であるが、ひとつずつ作成していくモデリングに適している。Partワークベンチは逆に、比較的単純であるが種類が多いものを多数作成していくモデリングに適している。2D平面(自由曲面も含む)はPartワークベンチでないと操作できない。


■モデリング方法の違い
Partワークベンチの従来のモデリングとは、プリミティブという基本形状、または2D図面を3D編集ツールで立体化したソリッドをブーリアン演算で合成するモデリングである。
初期のモデリングソフトは3D編集機能が少なかったので、基本形状を組み合わせてブーリアン演算で加算減算(追加削除)していたが、3D編集機能が増えて編集機能で成形することが多くなった。

3D編集機能は大きく分けて作成(押出し、回転、ロフト、スイープ)と削除(フィレット、面取り、穴、シェル)のツールと、移動複写のツールがある。PartワークベンチやPartDesignワークベンチには移動複写のツールはないので、Draftワークベンチのツールを使うか、Placementプロパティで数値を入力して移動することになる。

削除系のツールは、部分的な修正にしか使えないので、もとの形状から大きなスペースや複雑な形状を切抜くためには、ブーリアン演算のCutツールを使うのが一般的である。

その他に、3Dモデルとしてはスプラインを使った曲面モデルやスカルプトという粘土のようなモデルもある。それを扱うソフトには専用のツールも必要になるがFreeCADはその種のモデルには対応していない。
(アドオンマネージャーでCurvesというワークベンチを導入すると、曲面モデルの作成が可能となるようである。)

Partワークベンチの特徴は次の通り。
・プリミティブPart Primitives.svgを使えば基本的な形状は、簡単に作成できる。

・ベースとなる2D形状はDraftまたはSketcherで作成することができる。
 Sketcherを使うことができるので、パラメトリックモデルも作成できる。

・点、線、面、ソリッドなどすべてのオブジェクトを扱うことができる。
 PartDesignワークベンチで作成したボディもソリッドとして扱うことができる。
 また線を編集して面(自由曲面も含む)を作成することもできる。

・複数の分離したオブジェクトをまとめて操作することもできる。
 グループ化する機能もある。

・Solidの面(Face)に対して押出しや回転ツールを使うことはできない。
(最近のソフトは、Solidの面を直接、押出しや切断ツールで操作できるソフトが増えているので、Partワークベンチはこの点が不便である。)

・Solidの面を編集するためには、FacebinderツールドラフトFacebinder.svgで抽出して別のオブジェクトを作成し、これに編集ツールを適用する。

Solidの面を切断する他の方法は、ソリッドの面に作業平面を移動し、面上に断面を作図して切断面として使うことが考えられる。(PartDesignワークベンチと同様の方法である。)

・編集ツールで作れない形状は、ソリッドを重ね合わせてブーリアン演算で加算減算する。


PartDesignワークベンチは少し特殊で、すべての操作がオブジェクト化されているので、編集ツールを使うと形状を作成しブーリアン演算で加算減算するところまでがツールの機能に含まれている。プラスとマイナスの形状を想定すればよい。

形状を作成するツールは、同じものが加算ツールと作成した形状を削除する減算ツールに分かれている。ツールで作成する形状は追加用のオブジェクトまたは削除用のオブジェクトとして作成されるので、ブーリアン演算で加算減算する必要はない。
つまり、ツールで形状を作成すると自動的にブーリアン演算で加算減算されてSolidにまとまることで、ボディに単一の連続したSolidという規則を守っている。

PartDesignワークベンチの特徴は次の通り。
・モデルは必ずボディの中にあり、単一の連続したSolidでなければならない。
 モデリングする前にボディを作成する。
 最初だけはSketch作成ツールから始めても、ボディが自動的に作成される。

・加法プリミティブPartDesign CompPrimitiveAdditive.png 減法プリミティブPartDesign CompPrimitiveSubtractive.png を使えば基本的な形状は、簡単に作成できる。
 加法プリミティブは作成した形状を加算合成する。
 減法プリミティブは作成した形状と既存の形状の重複部分を削除する。

 プリミティブを選択し、サイズを入力、Placementで位置合わせしてOKすれば、形状に反映される。

・ベースとなる2D形状はSketcherで作成する。
 Draftで作成した2Dオブジェクトはボディ内では使えない。

・厚さのないFaceオブジェクトは扱えない。
 Sketchだけは、3Dオブジェクトのベースとして使用できる。
 Sketchは閉じたWireでなければならない。

・分離したSolidを作成することはできない。
 分離したSolidを作成するときは、別のボディを作成する。

・Solidの面(Face)に対して押出しや回転を使うことができる。
(この部分はPartDesignワークベンチの優れている点である。Solidの面を操作できるとモデリングが非常に簡単になる。)
 ただし、Faceの切断はできない。

・Solidの面の切断はできないので、面を選択し、Sketcherで切断面を作図するのが簡単である。
 単純な切断ラインであれば、面を選択して、パッドPartDesign Pad.svg とポケットPartDesign Pocket.svgで形状を変更することもできる。

・複数のボディをブーリアン演算で加算減算することはできる。

最後にPartDesignワークベンチでSolidの面を直接操作する例を示す。

この方法は直感的に形状を変更していくことができるので非常に便利であるが、残念なことに面の切断ができないので、これで何でもできるということにはならない。
また、Partワークベンチでは、この方法は使えない。
ここまで手をかけて最終形状を作成するくらいなら、最初の面にSketcherで作図して、ポケットで削除した方が簡単かもしれない。

このオブジェクトの面を押したり引いたりして形状を作成する手法は20年ほど前にSketchUpというソフトが採用した操作であるが、直感的に自由に形状を組み立てていくことができるので、最近では多くのソフトに取り入れられているということを読んだことがある。

コメント

このブログの人気の投稿

はじめに FreeCADでBIMはできるのか(2022/8/8追記)

オブジェクトを着色する(3) パースのレンダリングに挑戦