【FreeCAD初心者ガイド】2次元断面カーブから滑らかな流線形3Dモデルを作成できるCurvedShapesワークベンチを日本語化してみた


2022/08/03
蛸壺の中の工作室|2次元断面カーブから滑らかな流線形3Dモデルを作成できるCurvedShapesワークベンチを日本語化してみた

FreeCADであまり知られていないけれど、非常に有用な外部ワークベンチを日本語で紹介していくコーナーです。

今回取り上げるのは、2D断面カーブから流体機器のローターなどの翼形状などの流線形3Dモデリングに利用できる
「CurvedShapesワークベンチ」の使い方を日本語化してみます。

参考|CurvedShapes Workbench

CurvedShapesワークベンチの概要とFreeCADへインストール手順

改めまして、CurvedShapesワークベンチは有志の開発者の方が公開されているFreeCAD用の機能です。

以下のGitHubレポジトリで詳しいリソースなどを参照することができます。

CurvedShapes Workbench | GitHub

CurvedShapesワークベンチのデモ動画では、おおよその操作概要を見ることができます。

CurvedShapesワークベンチの利用用途としては、以前の記事において扇風機のファンを模した流線形の3Dのモデルを手動で作成したことがありましたが、

合同会社タコスキングダム|タコツボの中の工作室
【FreeCAD使い方講座】壊れた扇風機のファンロータの羽根形状を作成する手順

破損した扇風機のファンロータをFreeCADでできる限り同じような形状に復元し、3dプリンターで出力を試みます。

そちらの記事で説明した作成手順のように、パラメトリックな3次元モデリングを得意とするFreeCADにあっても、断面が自由曲線形状の流線形立体を作成するのは、なかなか難しいことが分かります。

CurvedShapesワークベンチを利用する最大のメリットとしては、このような流線形立体のモデリングの工数を飛躍的に削減することができる点にあります。

もちろん最低限、ベースとなる曲線状断面をスケッチャーワークベンチやドラフトワークベンチ等で用意する必要がありますが、一度用意してしまえば、CurvedShapesワークベンチから少ない手順で理想の流体曲面をもつモデルを作成できるようになるでしょう。

まずは導入方法から簡単に説明していきます。

インストール

CurvedShapesワークベンチは有志の方が提供している外部のワークベンチですので、利用には別途インストールが必要です。

参考|CurvedShapes Workbench - Github

まずは、FreeCADでCurvedShapesワークベンチを使えるようにします。

公式にも書いてあるように、FreeCADのv0.17.9940以降からは
Addons Manager (アドオンマネージャ)からワークベンチが追加できるようになっています。

メニューから
[ツール] > [アドオンマネージャー]からアドオンマネージャーのダイアログを開き、ワークベンチのツリーメニューから、CurvedShapesを選択します。

合同会社タコスキングダム|蛸壺の中の工作室

CurvedShapesを選択後、
[選択をインストール/実行する]を押すとインストールが始まります。

インストールが完了後にFreeCADを再起動すると、CurvedShapesワークベンチが利用可能になっているはずです。

合同会社タコスキングダム|蛸壺の中の工作室


合同会社タコスキングダム|タコツボの中の工作室

CurvedShapesワークベンチの使い方

CurvedShapesワークベンチのインストールが済んだら、早速、簡単な使い方で機能の概要を確認していきましょう。

適当なFreeCADプロジェクトを新規作成し、CurvedShapesワークベンチに切り替えると、主に以下のようなツールがあることが分かります。

合同会社タコスキングダム|蛸壺の中の工作室

このツールを個別の項目ごとに説明していきます。

曲線アレイ・モード

曲線を格納する配列(曲線アレイ)を作成し、1つまたは複数のHull曲線(=凸状にロールさせるアルゴリズムの一つ)の境界の形状に合わせて、曲線アレイの中のアイテムのサイズを調整・変更していくモードです。

内包ボディの境界を決定する「ボディ曲線(=Hull曲線)」と認識させるためには、XY平面上、XZ平面上、YZ平面上もしくは平行平面に配置する必要があります。

曲線アレイを作成する基本的な手順として、最初にBaseオブジェクトとなる曲線を選択し、次に他のボディ曲面を選択すると、その境界が適切に選択された場合、スイープおよびサイズ変更された曲線が、配列の中に自動で生成・格納されるようになります。

簡単な例として、魚のヒレのような構造を作ります。

合同会社タコスキングダム|蛸壺の中の工作室

この例では、XY平面上に、ヒレの断面となるBase曲線作成し、曲線アレイを作成するときの境界となるように、YZ平面とZX平面にHull曲線と2つ与えておきます。

なお、Base曲線やHull曲線同士は、直接的な接続する必要はありません。

自動生成された曲線アレイには、Base曲線が、2つのHull曲線の境界で再スケーリングされた曲線群が格納されていることが分かると思います。

思い通りの曲面になってたら、サーフェスやソリッド化して、他のワークベンチでも利用することができます。

より細かな曲面の調整は、CurvedArrayオブジェクトのプロパティボックスから行います。

合同会社タコスキングダム|蛸壺の中の工作室

            Base:
    配列を作成するオブジェクト => 最初に選択した曲線
Hullcurves:
    曲線アレイの中に生成される、1つまたは複数の境界曲線(のリスト)
Axis:
    Baseシェイプの軸方向
Items:
    配列アイテムのリスト数
Positions:
    各リブの位置の配列(0.0 から 1.0)。
    アイテムはオーバーライドされる
OffsetStart:
    軸方向の最初のパーツに対するオフセット
OffsetEnd:
    反対の軸方向の端からの最後の部分に対するオフセット
Twist:
    軸を中心とした回転を配列項目に適用する。
    (※Twistsが空の配列の場合にのみ使用)
Twists:
    各リブの回転角度の配列。
    (※空の場合、Twistの項目が適用される)
Surface:
    各配列アイテム上に面を作成する
Solid:
    Baseが閉じた形状の場合、ソリッドを作成する
Distribution:
    配列要素間の距離のアルゴリズム。
    Linear/parabolic/x³/sinusoidal/ellipticから選択。
    デフォルトは「linear(線形)」。
    他に「放物線(parabolic;x²)」、「x³」、
    「sinusoidal(正弦波)」、「elliptic(楕円形)」も利用可能
DistributionReverse:
    Distributionアルゴリズムの方向を逆にする
        
これらのオプションに関して、いくつかポイントを解説しておきましょう。

曲面アレイを使用してサーフェスを作成する場合、Distributionアルゴリズムを調整すると、より良い結果が得られる場合があります。

とにかく適したアルゴリズムなどがよく分からない場合は、基本は「linear(線形)」を選択します。

ポイントとしては、楕円翼を作成する場合は、「elliptic(楕円形)」が最適なソリューションです。

半円の内側に曲線配列を作成する場合は、「sinusoidal(正弦波)」が最適です。

ボディ曲線が、単純なスプライン曲線から作成されている場合などは、「放物線(parabolic;x²)」、「x³」、が最良の結果になることが多いようです。

作成したサーフェスまたはソリッドの結果が変なら、曲線アレイの最初と最後の要素に非常に小さな曲線構造が原因である可能性があります。

この場合、
Start OffsetもしくはEnd Offsetに、0より大きい値を入力します。

これにより、最初(最後)の要素の直後(手前)ではなく、それより大きな開始項目と終了項目に曲線構造が作成されます。

曲線アレイから生成した単一オブジェクトを、複合オプジェクトとして解決するには、Partワークベンチで、
[Part] > [Compound] > [Explode Compound]を選択します。

曲線パスアレイ・モード

このモードでは、「パスカーブ」の周囲で要素をスイープし、曲面アレイを作成することができます。

Base曲面以外のオプションと選択したHull曲面の境界以内で、曲面アレイの各アイテムを自動で生成・サイズ変更することで曲面が作成されます。

なお、曲面アレイの各アイテムは、スイープした「パスカーブ」に対して垂直になります。

「ツイスト・パラメータ」は、曲面アレイの各アイテムをスイープするパスカーブの周りに回転できるようにする機能です。

結局は「Hull曲面の境界」や「ツイスト」を使用しない場合、このモードは
Draft ワークベンチPath Arrayツールとほぼ同様の効果になります。

使い方は先程の曲面アレイモードと同様ですが、最初に選択した曲線がBaseアイテムになり、2番目に選択した曲線がパスカーブ、それより3番目以降の選択曲線はすべてHull曲線境界になります。

以下は一例として、多角形のベース曲面を、自由形状の曲面をパスカーブで曲線パスアレイ化して描いた形状です。

合同会社タコスキングダム|蛸壺の中の工作室

ひねりながら押し出すような造形に向いているツールとして利用できます。

CurvedPathArrayオブジェクトのプロパティオプションとしては以下の項目があります。

合同会社タコスキングダム|蛸壺の中の工作室

            Base:
    配列を作成するためのBaseオブジェクト
Path:
    パスカーブ
Hullcurves:
    1 つまたは複数のHull境界のリスト
Items:
    曲線アレイのアイテム数
OffsetStart:
    パスカーブの先頭部分からのオフセット量
OffsetEnd:
    パスカーブの末端から見た端からの部分のオフセット量
Twist:
    パスカーブを中心にした度単位での回転量
Surface:
    曲線アレイのアイテムの上に面を作成
Solid:
    Baseオブジェクトが閉じた形状のソリッドを作成
ScaleX:
    X方向のHull境界によるスケーリング
ScaleY:
    Y方向のHull境界によるスケーリング
ScaleZ:
    Z方向のHull境界によるスケーリング
        
曲線アレイモードと比べて、ScaleX、ScaleY、ScaleZというパラメータが追加されています。

通常、Hull曲線境界は2つまたは3つの空間方向をカバーしていますが、これらのオプションを細かく指定することで、曲線アレイのアイテムを特定の方向にのみに再スケーリングするなどの場合に利用できます。

曲線セグメント・モード

2つのニ次元曲線間を補間する連続曲線を生成するモードです。

このモードでも、生成された補間曲線は、いくつかのHull曲線境界でサイズ変更が可能です。

使い方は、最初に選択した曲面が
Shape1、2番目がShape2と割り振られ、3番目以降の曲線はHull曲線境界として参照されます。

曲線セグメントを実行後に、Shape1〜Shape2の二面の間に対して、指定された補間アルゴリズムで補間曲線が自動生成されます。

2面間の補間という点で、先程の曲面アレイモードや曲面パスアレイモードより直感的には分かりやすい機能と言えます。

一例として、以下のような造形が作れます。

合同会社タコスキングダム|蛸壺の中の工作室

両端のシェイプと、Hull境界の与え方、プロパティオプションの調整によっては、非常にリアルな自由形状をFreeCADでも生成することが可能となる面白いツールです。

CurvedSegmentオブジェクトのプロパティオプションとしては以下の項目があります。

合同会社タコスキングダム|蛸壺の中の工作室

            Shape1:
    セグメントの最初のオブジェクト
Shape2:
    セグメントの最後のオブジェクト
NormalShape1:
    Shape1の方向軸 (自動計算)
NormalShape2:
    Shape2の方向軸 (自動計算)
makeSurface:
    Shape1とShape2を、補間された中間上のサーフェスで接続する
makeSolid:
    Shape1とShape2が閉じた形状の場合にソリッドを作成
InterpolationPoints:
    Shape1とShape2のエッジと極の数が同じ場合は無視される。
    それ以外は、すべてのエッジがこの数のポイントに分割(離散化)される
Twist:
    Shape1とShape2の間で回転を補正する
TwistReverse:
    1つのシェイプの回転を逆にする
        

中間補間・モード

先程の曲線セグメントモードの機能をより簡素化したような機能があります。

できることが、2つの二次元曲線の中間の区間に、シンプルな曲線を補間していくだけのモードです。

シンプルが故に、鋭い角を持つ中間形状で接続されただけの立体構造になります。

逆にいうと、2つオブジェクトをブーリアンしている結果と変わらないので、特筆すべき利用法は無いかも知れません。

あえていうと、単に2つの曲線から、押し出して空間的に繋ぎたい場合に便利と言えます。

InterpolatedMiddleオブジェクトのプロパティオプションとしては以下の項目があります。

合同会社タコスキングダム|蛸壺の中の工作室

            Shape1:
    セグメントの最初のオブジェクト
Shape2:
    セグメントの最後のオブジェクト
NormalShape1:
    Shape1の方向軸 (自動計算)
NormalShape2:
    Shape2の方向軸 (自動計算)
makeSurface:
    Shape1とShape2を、補間された中間上のサーフェスで接続する
makeSolid:
    Shape1とShape2が閉じた形状の場合にソリッドを作成
InterpolationPoints:
    Shape1とShape2のエッジと極の数が同じ場合は無視する。
    それ以外の場合、すべてのエッジがこの数のポイントに分割(離散化)される
Twist:
    Shape1とShape2の間で回転を補正する
TwistReverse:
    1つのシェイプの回転を逆にする
        

断面カット

サーフェスをカットして、断面のアウトラインから曲線または面シェープを取得するツールです。

このツールは、
PartワークベンチCross-Sections機能ととても良く似ていますが、この断面カットツールの方が、よりパラメトリックな操作であり、出力される曲線の複雑さを軽減するオプション機能も備わっており、重なっているエッジを検出すると、自動で削除してくれます。

断面形状が知りたい場合には、このツールの存在があることを知っておく程度で良いかも知れません。

ノッチ接合

2つの重なり合うオブジェクトに、重複部分に自動で切り込みを入れて、オブジェクト同士をノッチ構造で接続できるようにしてくれるツールです。

使い方は、2つのオブジェクトを選択し、
[Notch Connector]を選択するだけです。

これで、2つのNotchConnectorオブジェクトが作成されます。

合同会社タコスキングダム|蛸壺の中の工作室

NotchConnectorオブジェクトのプロパティオプションとしては、

            Base:
    カットするオブジェクト
Tools:
    ベースを切るオブジェクト
CutDirection:
    カットの方向(自動計算)
CutDepth:
    カットの深さ(パーセント)
ShiftLength:
    ツールをShiftLengthだけシフトしてからカットする深さ。
    ShiftLengthがゼロでない場合は、CutDepthをオーバーライドし、
    別のアルゴリズムを使用する
        
となっています。

ノッチ構造がクリック一つで行えるので、モデリングの内容によっては非常に便利な機能です。


合同会社タコスキングダム|タコツボの中の工作室

まとめ

今回は、CurvedShapesワークベンチを一通り試してみました。

作りたい曲面の特性によって、適したツールが微妙に違いますので、ツールそれぞれの性質を理解した上で、曲面のパラメトリックなモデリングに便利にお役立てください。

記事を書いた人

記事の担当:taconocat

ナンデモ系エンジニア

電子工作を身近に知っていただけるように、材料調達からDIYのハウツーまで気になったところをできるだけ細かく記事にしてブログ配信してます。