FreeCAD入門 その11 メッシュに線を引くCurve on Meshのご紹介 Curves workbenchとの組み合わせで色々使えます
FreeCADでメッシュを扱うと動作が重いので一般的にはおススメしませんが、今回は断面ではなくメッシュに直接曲線を引く機能のご紹介です。上手に使うときれいなサーフェスを作る下絵などにも応用出来ますし幅広く使えるのではないかと思います。
FreeCAD Ver1.0の情報、当ブログにも色々あります。
当ブログでは主にFusionユーザーに向けて、FreeCAD情報を複数発信しています。私自身も今までに複数回挫折していますが、Fusionと異なり商用利用を含めて一切の制限がない無料のCADとして、Ver1.0になり(個人的には)かなり勝手が良くなってきているFreeCAD。ぜひ他のブログもご覧いただき使ってみてくださいね!以下、いくつか当ブログリンクです。
FreeCADでメッシュ そのままではなく、下絵として利用する
まず前提として、CADでは基本的にメッシュを扱わないほうがたぶんいいです。率直にモノが違いすぎるのでお勧めしかねます。Fusionでもメッシュは基本的に断面など必要な寸法をとったり、CADの元データとして利用されている方が多いと思います。Fusionでもかなりポリゴンデータを扱うと「重い」のですが、FreeCADでも全く同様です。扱うならローポリゴンのものがいいと思います。
今回はFreeCADの機能を使って、メッシュから断面を作るのではなく、メッシュから曲線のデータを作ってサーフェスをモデリングする記事になります。私自身で色々やってみましたが、理論上はこういうことができます、というデモの要素も強いかもしれません。これを全部作る工程は正直ブログでは書けないのですが、こういう使い方がある、という引き出しとしてお読みいただければと思います。
流れとしては、objファイルを読み込んでサーフェスワークベンチのCurve on Meshでメッシュに直接カーブをひいて、大体のアタリをつけたのち、その線を利用してCurvesワークベンチできれいに線を引きなおしてサーフェスモデリングする、という流れです。




これを作るにはCurvesワークベンチという癖つよ多機能なワークベンチを利用しますので、そこについてはこちらも参考にしてください。
なお、今回の元ポリゴンはMicrosoft Copilot 3D(AI)を用いて、私が適当に書いた絵から作ったものになります。ポリゴンをそのまま使うならBlenderが良いと思いますが、サーフェスにはできないですものね。
個人的にはCADの練習として車のモデリングをすると、押し出し、サーフェス、ブーリアン等趣味で遊ぶ範囲では色々なスキル?が身につくのでお勧めです。・・・まあ、私自身がまだ全然上手ではないのですが・・・ちなみにFusionだと独特な?フォームモデリングを使うとBlenderライクな曲面が作れます。これもおススメのモデリング方法です。よかったらこちらも是非。
Curve on Meshの使い方
今回のご紹介したい一番はココです。Fusionですと3Dスケッチなどで3次元に直接スケッチを引けますが、Meshについてはおそらく断面にスケッチを描くことしか通常できないと思うんですよね。FreeCADのsurface workbenchのこの機能は重いポリゴンを元に軽い線を引くことができる有用なツールです。なお、3Dに直接線を引く作業のため視点移動は若干面倒です。先日ご紹介のSpacemouseがあるとめちゃ楽に線が引けます。本当に便利なのでPRです(笑)
obj形式のメッシュを開いたらデータタブで透明度(Transparency)等適宜変更しておきます。今回の下絵利用が済んだら非表示にしたり、下から2つ目のselectableのチェックをはずして選択できなくしておくのもいいと思いますが、今は選択できるようにしておきましょう。
surfaceワークベンチに変更して、下図のCurve on Meshを選択します。これで準備はOK。開始ボタンを押すと自由にメッシュにsnapした曲線を作ることができます。ただ法線方向によっては細かくクリックすると線がめちゃくちゃになるので、私は本当に大まかなアウトラインをとるのにとどめています。スプライン近似の値は初期値でもいいと思いますが、用途に応じて変更してみてください。




3,4枚目のように、まずは開始を押してからメッシュ状に線を引きます。この線をそのまま使うわけではないので線の引き方はなんでもいいです。曲面の流れがわかるように引いてもらえばいいと思います。真上や正面などで全体像を見ることもいいと思います。ポイントを指定していき、最後に右クリックして作成を押すと線が一本引けます。操作を繰り返して全体が把握できるようになればOKです。私はそこまで厳密に作る必要はないと思ってこの程度の線にしてしまいました。
必要な線を引いたらグループを作って線をまとめて放り込んでおくと一括で表示、非表示ができるので便利です。ちなみにこのグループ分け、ちゃんとしておかないと私の今回のようにめちゃくちゃに履歴が並んで、どの面がどこにあるのかわからなくなります(笑)ご利用は計画的に。私はやれていませんが、サーフェスを作った段階、サーフェスを結合した段階、ソリッドにした段階でどこかにまとめておくことをお勧めします。


Curvesワークベンチで線を引きなおし曲面を作成
では、この線を元にサーフェスを作っていきましょう。Curvesワークベンチに移ってGordonサーフェスを作っていきます。この時どこから始めてもよいのですが、仕様上、FreeCADには曲面同士をG2接続で接続する方法が非常に限られます。おそらく私が使用している方法である、「Curvesワークベンチで基準面を作ってそこにBlendサーフェスで面を接続する」以外の方法はないと思いますのでご留意ください。Curvesワークベンチの強さと大変さはこちらも是非。テクニック的にはこれがすべてです。
今回は側面の大きな断面を作ってしまうことにしました。後方の面と前方の面を作って、その間をBlendサーフェスでつなぎます。下図緑で囲われた部分は長い線2つはCurve on Meshで描いた線そのままです。間をつなぐカーブを2つ作ってGordonサーフェスにしています。なお、Gordonサーフェスはうまく作れないとそのままフリーズします。こまめにセーブしましょう。スケッチなどで作った線はそのまま使えませんので一度Join curveなどを用いてCurvesワークベンチが使える形に変更する必要があります。このあたりの操作は上にあるブログを参照ください。


どんな順序で作っても全く自由ですが、作りたいモデルのエッジを立たせたい(G0接続)部分と滑らかにつなげたい部分がどこなのかを考えて作るとやりやすいです。
曲面同士の接合はBlendサーフェスで接続
前方にもGordonサーフェスを作って、その間をBlendサーフェスで接続します。Gordonサーフェスを作った後、使用した曲線は非表示にして、最初の面とそのエッジ、つなぎたい面のエッジとその面の順にクリックしてBlendサーフェスでつなぎます。この辺のサーフェスの使い方も前記のブログにあるのでご覧ください。データタブを上手に使うのがコツになります。マニュアルで数字を入力することで接続の連続性を変更することが可能です。


面の構成にもよりますが、作りやすさと面の連続性を考えると大きな平面は一発で作って後から分割するのが楽です。ただ、私も全然慣れていませんのでクオリティはご容赦ください。
トリムで面を分割してつなげていきます
大きな断面では使いにくいので他の面と整合性を合わせつつトリミングを行って、その間にBlendサーフェスを貼っていきます。ちょん切る線は新たに引いてもよいですし、既に引いた線を選択して、CurvesワークベンチのCurve extendで線を伸ばしてそれを基準にしてもいいと思います。Curvesワークベンチには以前ご紹介したTrim surfaceがあるので大きな断面の残したいほうを選んでトリミングする線をCtrlで追加選択し実行するとちょん切れます。一旦ちょん切ると元のサーフェスは非表示になりますが、再度表示させて反対の面も同様にすれば分割完了です。下図1,2枚目は分割前の面を表示させていますが、こんな感じで分割して紺色のBlendサーフェスを貼りました。サイドパネルとの接続部も最終的には4枚目のように濃い水色のようにBlendサーフェスで覆います。なおこの水色のサーフェスは上部側とは滑らかなサーフェスでつながっていますが、サイドパネル側はG0接続です。
面の連続性によってBlendサーフェスの形状が大きく変わってしまうのでその辺の勘案は必要ですね・・・。これがPlasticityであれあば一発でスパッと決まるのでしょうか??XNURBS、そのうち入手して触ってみたいです。




最初は出来るだけ大きな断面で構成して、必要に応じて分割していく主義はCADで共通して使えるテクニックですし、パラメトリックであれば分割前の断面にもいつでもアクセスできます。作るごとに容量が大きくなるという欠点はありますが、今の時代特に気になることは無いのではないかと思います。
Blendサーフェスで囲まれた部分の処理
このモデルの作成方法ですと、自分で作った曲面の間をBlendサーフェスでふさぐため、チェック模様のようなサーフェスで覆われます。そうすると必然的に発生するのが四方が全てBlendサーフェスで埋まった中央の穴です。この面に対して綺麗なサーフェスを貼る方法が前述したSurfaceワークベンチのFilling(Boundries)です。
面のそれぞれの辺を選択するとそれをふさぐ面を作ることが出来るのですが、通常選択した状態では単なるG0接続になります。Blendサーフェス同士を滑らかにつなぐためにはそれぞれをクリックして、下のFaceを指定し、ContunityをG1にしてください。(G2にすると滅茶苦茶になることが多いです。)ただ、囲っている辺全てでG1接続をすると、結果としてG2接続に近い曲面になります、多分。これをやっているのが下図になります。





ちなみにFreeCAD初期設定では曲面のシェーディングは結構がたがたです。これは面が悪いのではなく面の設定の問題です。最後の2枚を見て頂けるとわかりますが、データタブで面を選択し変更すると滑らかさがわかります。ただこれ全体でやるとかなり重くなるので、確認時のみにとどめておくのがおススメです。


サーフェスからボディを作れればFreeCADでも車が作れます
ということで今回はCurve on Meshを用いて面を作っていきましたが、こうやってサーフェスが張れればそれに厚みを持たせてソリッドを作ることで車のボディを作ることが出来ます。途中で妥協したため特にルーフの部分がかなり雑になっていますが、Fusionに持って行ってソリッドをレンダリングしてみるとこんな感じになります。なかなか出来る子だと思いませんか?試しに印刷もしてみましたが面のつながりに大きな問題はありませんでした。



ただ、FreeCADの個人的に問題と思っているこういうサーフェスから簡単にソリッドを作る方法はまだ解決できていません。厚みを付けるのはうまくいかないことが多いですし、分けた面ごとにオフセットをただつけるだけでは内側に隙間が出来てしまうんですよね・・・全体を下方向に縮小しながら伸ばして、あとはブーリアンでくりぬく、等も選択肢だと思いますが、Fusionみたいにぐるっと一周、一気にサーフェスを貼る方法があまりないんですよ、FreeCAD。この辺のテクニックをお持ちの方がいたら是非ご教示頂きたいです!!ぜひよろしくお願いいたします。
とはいえ個人的にはFreeCADはPart Designから飛び出すと途端に難易度が上がって滅茶苦茶大変になるイメージだと思うのですが、このサーフェスの張り方は普通に応用が効きますし、正しく行えば途中でエラーで止まったりもせず安定しています。以前GTRを作ったときは慣れていなかったので今回よりもさらに大変でしたが、今回のものは以前のものほど試行錯誤せず作ることが出来ました。


とくに今回の方法はメッシュにダイレクトに曲線を貼れるので色々応用できると思います。是非色々試してみてください。私はコレ始めてからほかのソフトでの面貼るのも明らかに上手になりました。苦労した分は別なソフトでも活きるんですよね・・・(笑)次はPlasticityで遊びたい!有料だけど!!
ということで、あなたもFreeCADでカーモデリング、始めませんか・・・?修練し甲斐がありますよ・・・!!
本日も最後までお読みいただきありがとうございました!
ディスカッション
コメント一覧
まだ、コメントがありません