06. 【FCMD】FreeCAD: GUI操作ゼロでここまで作れる ― 関数定義だけで生成する幾何学ソリッド

tags: FreeCAD CAD 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 で公開しています。