Fusion360曲面生成スクリプト の履歴(No.2)

更新


工作/歯車について勉強する

歯車について勉強するシリーズ

複数の曲線を繋いで曲面を生成したい

Fusion 360 内でボディを徐々に動かしながら要素除去法によって成形したソリッドの 表面には連続する曲面が多数存在して非常に複雑な形になってしまう。

そこで、連続する曲線を結ぶ滑らかな曲面を作ることで形状を単純化したい。

smooth_surface21.gif

これは出来上がる物の仕上がりの問題だけじゃなく、Fusion 360 の動作が重くなったり固まったりするのを防ぐ意味でもかなり重要だ。

目次

始めに手動でやる方法を説明して、最後に手順の一部を自動化するスクリプトを紹介します。

手作業でやる方法

サーフェスタブの「ロフト」と「厚み」を使うといい

  • サーフェスタブにあるロフトを使うと一連の曲線を繋いで曲面を生成可能
  • 曲面に厚みを持たせてソリッドボディを作成可能
  • プレス・プルで面をせり出して
  • 元の形状から引き算する

というのが一連の流れになります。

ロフトを使い曲面を作成

smooth_surface1.jpg smooth_surface24.jpg

これは要素除去法で切り出したクラウンギアの半ピッチ分。 上でも見た複雑な形状をしている。

そこでサーフェスタブにあるロフトを選択して、1つの曲面を定義する一連のカーブを選択します。

smooth_surface2.jpg smooth_surface3.jpg

OK を押すとサーフェスが生成されます。

「厚み」を使って押し出す & 「プレス・プル」で厚みを増す

通常の「押し出し」は平面図形にしか効かないので、このような曲面を押し出すには「厚み」を使います。

smooth_surface4.jpg smooth_surface5.jpg

押し出したらそのまま元の形状から引き算したいところなのですが、大抵の場合、元の形状とのオーバーラップが微妙すぎるというエラーが出てしまいます。

そこで押し出した形状をひっくり返して元の形状と接する面を選択。「プレス・プル」を使って 0.01 mm ~ 0.02 mm 程度押し出します。

元の形状から引き算する

これで十分な重なりができるため元の形状から引き算できます。

が、その前に、よく見ると端の部分で長さが足りておらず切り残しが発生してしまう状況にありました。

そこで端面を選択してプレス・プルで切り取りたい部分が十分隠れるまで伸ばしてやります。

smooth_surface6.jpg smooth_surface7.jpg

そうすれば切り取りを行えて、切り取った結果はきれいな曲面になってくれます・・・

smooth_surface8.jpg smooth_surface9.jpg

実は、端の部分をプレス・プルで延ばした際、大きな数値を入れるとエラーになって十分に延ばすことができなかったため、結局切り残しが発生してしまっていました。

smooth_surface10.jpg smooth_surface11.jpg

smooth_surface12.jpg

この部分はプレス・プルで押し込んで目立たなくしました。

こういう細かい修正がいろいろ必要になるあたり、面倒さが残ります・・・

次はこの部分

同様の手順で滑らかにします。

smooth_surface13.jpg smooth_surface14.jpg

そしてここ

smooth_surface15.jpg smooth_surface16.jpg

上の端が足りていないので延長してから切り取ります。

smooth_surface17.jpg smooth_surface18.jpg

最後にここ

この部分は苦労しました。

smooth_surface19.jpg

1枚の曲面が広範囲に広がっていてなおかつ結構な曲率を持っているせいで、 うかつにたくさん曲線を選んでしまうとロフトが失敗してしまいます。

さらにはロフトがうまく行っても「厚み」を付けるところで失敗したり、

「厚み」までついても「プレス・プル」で失敗したり、

散々でした。

結局大きな1枚の曲面として扱うのをあきらめて、2枚に分割してそれぞれ作業。 しかもいくつか「選んじゃダメな曲線」があったのでそれを飛ばしてやることで何とか切り取ることができました。

smooth_surface21.gif

鏡面対称&円周上に配列&結合で完成

smooth_surface25.jpg

smooth_surface27.gif

気になる部分

どうしても継ぎ目に段差が残ります。

smooth_surface22.jpg smooth_surface23.jpg

ただまあこの段差の大きさは 0.02 mm とかそのくらいなので、 3D プリンタで出力して遊ぶ分にはそれほど問題にならないのではないかと期待しています。。。

実際にはどうなのか???

スクリプト

曲線を選択すると繋いで厚みを付けるところまでを行うスクリプトです。

厚みを付けるところでエラーが出るかどうかがすぐに分かるだけでもかなり助かると思います。

本当はプレス・プルまでスクリプトでやってしまいたいところなのだけれど、 残念ながらプレス・プルはスクリプトから呼び出すことはできないのだそうで。。。

せめて「生成した面」を選択した状態でスクリプトを終了できるなら、 プレス・プルのコマンド起動まではスクリプトで可能なので便利に使えそうなのだけれど、 「生成した面」を選択した状態で終える方法もよく分からず、残念ながらそのままになっています。

厚みを持たせると「生成した面」が相手の部材側を向くことになって、 プレス・プルするときに選択しづらいので、選択だけでもできると便利なのに。

smooth_surface26.gif

ライセンス

MIT とします。

主に自分の勉強のために作っているものですのでいろいろおかしなところがあると思いますが、 利用者の責任の下、ご自由にお使いください。

ダウンロード&更新履歴

プレビューの正しい方法とかエラーハンドリングとかよくわかってないです。。。

20250220初出

コメント・質問





Counter: 81 (from 2010/06/03), today: 2, yesterday: 2