Fusion使っている人向けFreeCAD ver1.0 入門 自由曲面 前編 クセが強すぎるが強力なCurvesワークベンチ
Fusion360お使いの方は、自由曲面どうやって作っていますか?私は3Dスケッチを利用することが多いのですが意外と難しいですよね。FreeCADには3Dスケッチはありませんが、Curvesワークベンチを利用することで色々な自由曲面を作成できます。自転車の泥除けを作る記事ですが、長くなり過ぎたので前後編とさせていただきます。
まずはじめに 過去の記事もぜひどうぞ
当ブログのFreeCAD関連記事はいくつかありますが、いずれもTwitter(X)でお世話になっている方々のご支援や教えが活きています。皆さんに感謝を!たまたまこの記事が最初だった方は是非過去記事からご覧ください。特にFusionを使っていると戸惑う部分など、一般的なソリッドについて書いてあります。
なお前回記事はこちらになります。
なお、今回次回で紹介する泥除けを作るのに3Dスキャナを使用していますが、サイズと形状を参考にしているだけでスキャンデータそのものをモデリングに使っているわけではないのでご安心下さい。
FreeCADでサーフェスを使った自由曲面を扱う
FreeCADを使っていらっしゃる方も扱っているwebサイトも、私が観測する狭い範囲ではあまり自由曲面をゴリゴリ使っている方は多くなさそうです。まあ、とっつきにくかったり、不便だったりはあると思うのですが実は色々できます。私も試行錯誤で色々FreeCADを扱っている身ですが、その中でも一番難渋したのがこの自由曲面です。
まず情報が少ない。動画なんかもあるけれど最後まで出来上がっているものがあまりない。また、G0接続ならともかく、曲面と曲面を滑らかにG1以上(できればG2)で繋いで作っていく方法がよくわからないなど、相当苦労しました。
最終的には右にあるようなカーモデルだってFreeCADで実現可能なことがわかりましたが、ここまでくると酔狂な趣味以外のなにものでもないですね(笑)。ただ、最後まで作ったのでポテンシャルとしては可能だ、とお分かりいただけると思います。
Fusionをお使いの方は、おそらく元の形状を利用したり、3Dスケッチを併用してロフトやパッチでサーフェスをつないでいると思います。今回の方法はその代替になるものです。
最初から複雑なものを作るのは本当に大変(笑)なので、今回は自転車の泥除けを作りつつ、ちょっと機能紹介をしていこうと思います。よろしくお願いいたします。
やってみようFreeCAD!

Fusionでのサーフェスモデリングとの違いについて
まずはじめに、今回は主に自由曲面の話なので、Fusionでそもそもサーフェスを扱っていない場合は先入観が逆に少ないかもしれません。Fusionだと、フォームモデリング使う方も多いと思うんですよね・・・。Fusionでサーフェス作る場合はソリッドやサーフェスの押し出しや3Dスケッチを使って線を引いて、ロフトで面貼って、必要に応じてトリミングして、最後は面全て作ってパッチでソリッドに、というのが基本的な流れかなと思います。




Fusionだと面同士をロフトで繋いで、面同士の接続を指定して面を貼れるのですが、FreeCADだとPartワークベンチでのロフトが使えません。FusionとFreeCADではロフトの概念は大きく異なっているんですよ。FreeCADにおけるロフトはあくまでスケッチ同士をつなぐもので、既に出来ている面との関係性を持ったサーフェスを作る機能がないのです。多分ここが一番の挫折ポイントになるのではないかと思います。
Partワークベンチで2つのエッジ同士に上のFusion1枚目のように面を貼ることは出来るのですが、2枚目のような面と接続を持ったサーフェスを作る機能が標準では入っていないのです。そのため今回のCurvesワークベンチをPartワークベンチやSurfaceワークベンチと組み合わせて使用する必要があります。


一方で、Fusionの下のような、サーフェスをトリムするツールはPartワークベンチにもあります。これは自由曲面でなくてもサーフェスを切り取る作業が発生するからです。(カーブを元に切り取る、下の1枚目のようなツールはCurvesワークベンチにもあります)なので自由曲面で色々やろうとすると、ワークベンチを行ったり来たりすることになります。上のクルマはそのようにして作られました。大変でした(笑)


Curvesワークベンチについて インストールしておこう
ではまず、FreeCADで今回の作業を行うにあたり絶対に必要なのがCurvesワークベンチについてです。公式ドキュメント(英語)はこちら。これは外部ワークベンチという、FreeCADの拡張機能として有志が開発しているモノになります。ドキュメントや動画等もありますが英語です。
恐るべきことに、このワークベンチは@Chris_Gさんという方が個人で?作られています。すごすぎる・・・。
まずは拡張機能の管理からアドオンマネージャを開いてこのワークベンチをインストールしておきましょう。インストール後は再起動が必要です。


基本的にはこのワークベンチと、元々搭載されているPartワークベンチ、またSurfaceワークベンチを行き来して曲面を作っていきます。ツールがあちこちに飛んでいてかつ使い勝手が統一されていないのはFreeCAD最大の欠点で、とっつきにくさの原因ではあるのですが、こうした便利ツールをそれぞれが開発してくれているため自由にモデリングが出来るという都合上慣れるしかない思います。Part Designワークベンチから離れた場合は、ワークベンチを横断してツールを使いこなしていくのがFreeCADの使い方です。
機能が多すぎるので今回使うものを主に紹介 先ずは線引きツール
なお、このCurvesワークベンチは今回主に紹介するスプライン曲線をベースにサーフェスを作る機能のほか、便利な機能がいっぱいです。まずは今回主に使う基本機能です。一番左端は頂点同士を結ぶ直線を作るシンプルな機能になります。
そのとなりのもの、スクリーンショット1枚目のFreehand BSplineがCurvesワークベンチのメインです。これ、使い方がちょっと難しいんですよね。使い方が書いてありますが、キーボードでカーブの途中に制御点を追加したり(i)、他の物体のエッジに沿わしたり(s)します。視点は上下左右前後で固定しつつ、xyzで移動を固定したりできます。操作終了後は必ずqで終了することは忘れないように!これ、使い方わかりにくいのですが、始点と途中沿わしたいエッジ、終点をCtrlを押しながら順番にクリックしていくとそこに拘束されたカーブを描くことが出来ます。編集中はsでunset出来るので拘束を外すことが出来ます。
フリーハンドなので寸法的なことは一切できません。寸法的な部分は参照するソリッドや、あらかじめ書いたスケッチを利用してください。後述のjoin curvesを使えば利用できます。
ベースとなったソリッドに沿わせてカーブを書いたり、ほかのサーフェスと組み合わせて使うなど様々に利用できます。FreeCADで自由曲面を作るのに欠かせないツールなのでぜひ使ってみて下さい。






他には作ったカーブを延長するCurve extend。これは後述のサーフェスを切り取るときに便利です。延長する量などはFreeCADお得意の左下のデータで設定も出来ます。
あとはJoin Curves。これは複数のカーブを一つとして扱うためのツールですが、エラーも起きやすくなるので注意が必要です。別に複数のカーブである必要は実はなくて、ソリッドのエッジやスケッチで作った線をそのままCurvesワークベンチで使用するときに一つだけ選択してjoinすることでCuevesワークベンチで自由に使うことが出来る優れものです。Join Curvesはカーブをまとめた後、近似曲線で新たな面を作ることが出来るなど使い方は多いのですが、近似した時点で既存の面とステッチできなくなってしまう(位置ずれが発生するため)ので全く新たな面を作る際に使う機能だと思います。今回は割愛します。
いずれにせよこれらを使用してサーフェスを構成する線を作っていきます。今回は使用していませんが、ひな形となる適当なソリッドがあるとそれをパッチワークのひな型として線が引けるためより便利に使えます。
頻用するGordonサーフェスとBlendサーフェス
続いて面を作るツールです。基本となるのはGordonサーフェスです。Gordonサーフェスは基本的に上で描いたカーブで網の目のように囲まれた自由曲面のサーフェスを作るツールになります。必要なカーブは最低で4本です。3本では実行できませんのでご注意ください。基本的には布のような感じで面を作ります。Gordonサーフェスももちろんパラメトリックなので、サーフェスを作るのに利用したカーブの形を変更すると、Gordonサーフェスの形状が変わります。とりあえず面を作って微調整、というやり方が出来るサーフェスです。



これを次に紹介するBlendサーフェスと組み合わせることで面同士をつなぐことが出来ます。無理につなぐと面がねじれたりしてしまいますが、カーブを変えるとその時点で性状が変わるので面のコントロールも後からできます。下の3枚目は面をトリムするカーブを変更したことでBlendサーフェスの形状が変わっています。もっとも、あとから面の整合性を作るのはそれなりに大変なので、車のような大きなサーフェスをつなぐ場合はあらかじめ大きなカーブ1つから複数の面を作ったり、1つのカーブから切り取るとつなぎ合わせがしやすいと思います。




また、G1接続やG2接続の曲面を作るのに不可欠になるのがBlendサーフェスです。これによってGordonサーフェス同士をつなぐことが出来ます。Gordonサーフェス同士で自由曲面を作る場合には全てG0接続(面同士で角が出来るもの)になりますが、これの間をあけて置きBlendサーフェスで接続することで自由度の高い曲面を作ることが出来ます。複雑なので今回は割愛しますが、GordonとBlendサーフェスで繋いだ後残った穴はSurfaceワークベンチのFillingでそれぞれをG1接続で埋めれば滑らかなサーフェスが出来上がります。下で言えば、オレンジラインで囲まれたところがGordonサーフェスでそれぞれをつないで、中央に見えている部分が穴を埋めています。正直かなり大変ですが・・・。


なお、Blendサーフェスは左下のパラメータを調整することで曲面の性状の調整が可能です。基本は接続をG0,G1,G2で変更するところです。また、スケールを変更して接続性を数字入力することも出来ます。4枚目のようにスケールをマニュアルにして数字を変更すると、それに合わせて面の性状が変わるのがわかります。標準でコントロールできるスケールポイントは3つですが、コレは変更して増やすことも出来ます。Regularで指定された値から変更するのがおススメです。




この数字入力を使うと、車のボディ等で使うようなエッジのコントロールが可能になります。下のように1枚目ではG0-G2までが全長で変化するのでエッジが半ばまでしっかり残りますが、2枚目では途中でエッジは消滅して以後はなだらかな面が続いています。こういうコントロールが数字で出来るのは良い点です。これ、Fusionでどうやったら出来るのか、実は分からない機能です。多分、ロフト時にガイドを引いて行うのだと思いますがそれなりに面倒そう・・・分かる方いらっしゃったらぜひ教えて下さい。


3Dスケッチの代替にもなる便利機能もあります
今回は利用していませんが、実は便利なのがmixed Curveの機能です。この機能は2つ曲線を合算した曲線を描いてくれるツールです。たとえばスケッチで2方向から線をひくとこの2つのベクトルを持った3次元的な曲線を作ってくれます。これはFusionの3Dスケッチと非常に近くて、Fusionが直接本体の曲線を操作するのに対して、2方向から操作するものになります。3面図などを使ってモデリングする際にはすごく便利です。平面の曲線を2本引けば、合算された3次元曲線が引けます。マウスみたいな曲面で構成されたもの等や、コレを元にさらに別なサーフェスを作るときなど重宝するんじゃないかなと思います。これもやはり大きめに面を貼っておくのが楽だと思いますね。








ほかにもカーブをサーフェス上に投影する機能や、後日また紹介する予定ですがサーフェスを平面展開してそこに直接スケッチを描くSketch on surfaceも色々使い道があります。しかも簡単にソリッドにできたりします。とにかく盛沢山なんですよ、Curvesワークベンチ。
クセは強いです 曲線が吹っ飛ぶ エラーで停止など様々(笑)
そんな強力なCurvesワークベンチですが、やはり癖が強いです。まずは前述の通りのキーボード操作。iで点を追加したりなど慣れる必要があります。説明が出ているので操作に慣れておきましょう。また、個人的には点や線の選択が非常に難しいです。他の要素が近くにあるとマウスカーソルが持っていかれたり、移動を終了できなかったりします。私は止めるところで右クリックでメニューを出し、その後カーソルを選択部分からかなり遠くに持っていって移動終了したりしています。
制御点の移動はXY YZなど基準面で行ったほうが見やすいですが、それとxyzのキーボードを押して方向を制限するのが上手に扱うコツになります。ただ、Xだけは上手く制限が出来ないことも多く(環境による?)xではなくshift+xで方向の制限が可能だったりします。また、重要なのがカーブを描いている途中ではアンドゥが出来ません。直前に行った別の操作が消されてしまいトラブルになります。
最後に忘れやすいのが、線の編集後にqを押して編集を終了することです。これを終えないまま別な作業を行うとエラーが頻発します。
またGordonサーフェスなどは適切な曲線や面で行わないとpythonスクリプトが上手く終了できずエラーでFreeCADごと停止します。Curvesワークベンチ内であればエラーは生じませんが他で作ったソリッドなどから形状を抽出するとエラー率が高まりヘタすると応答がなくなる感じです。FreeCADのオートセーブは結構優秀なのですが、こまめに保存するようにしましょう。初期設定は15分置きの保存になっていますがものによっては5分とかにしても良いんじゃないかと思います。



後編は実践編 お付き合いください
長くなったので前半をここまでとし、後編は実際の作業を例にしながら見ていきます。Curvesワークベンチの他の機能の紹介も一緒に行う予定なのでぜひまた見に来てください。
今回も最後までお読みいただきありがとうございました!
ディスカッション
コメント一覧
まだ、コメントがありません