🛠 【機械設計:06】FreeCADでGUI操作ゼロ ― 関数定義だけで生成する幾何学ソリッド

topics: [“機械設計”, “cad”, “freecad”, “python”, “数学”]


🧭 はじめに

FreeCAD は「パラメトリック CAD」として知られていますが、
GUI のスケッチや拘束を一切使わず、

Python コードだけで
ここまで幾何学的な形状を生成できる

ことは、あまり知られていません。

この記事では、

で生成した 純コード駆動のソリッド形状 を紹介します。


👀 まずは完成形を見てほしい

関数定義ロフト+ねじりソリッド

function_loft

この形状は、

という手順で、
すべて Python コードのみ で生成しています。

スケッチも拘束も使っていません。


🌀 もう一つ:分岐するスパイラル形状

次は、さらに「GUIで作る気がしない」系です。

branched_spiral

こちらは、

という構成になっています。

途中で形状の性質が変わるため、
GUI ベースの履歴設計ではかなり厄介なタイプです。


🔍 何がポイントなのか

重要なのは「形が奇抜なこと」ではありません。

形状が ルールの結果 になっている

これらの形状は、

といった 設計条件
Python の変数・関数として定義しています。

つまり、

形状 = 操作の結果
ではなく
形状 = ルールの実行結果

になっています。


⚔️ GUI CAD との決定的な違い

GUI CAD で同じことをやろうとすると:

一方、コード設計では:

def r(z):
    return base + amp * math.sin(freq * z)

のように、
設計意図そのものがコードとして残ります。

数値を変えれば再実行するだけです。


🧰 実務で何が嬉しいか

この手法はアート用途だけではありません。

など、
形状をルールで振りたい場面 では非常に強力です。

また、コードなので:

といった利点もあります。


🧾 まとめ

FreeCAD は、

として使うこともできます。

GUI を否定する必要はありませんが、
「設計ルールをコードで書く」という選択肢を持つだけで、
CAD の使い方は大きく広がります。


💻 使用したコード

本記事で生成した形状のコードは、以下のリポジトリで公開しています。


📜 ライセンス

本記事で使用しているコードは MIT License で公開しています。