Michiko Ohishi's (大石 理子) website, Under rennovation 改装工事中🛠️

  

Technical logs - invisible yet indispensable -

FreeCAD + FEM workbenchでの構造計算のハマりどころ (2025-11-27)

FreeCAD + FEM Workbench を触り始めて数日で、驚くほど多くの「落とし穴」に遭遇した。 恥を忍んで記録しておく。
これは “トラブル症状と対応を詳細に記録するのは、観測者/実験屋としての Good Practice” が染みついている結果だと考えることにした。

FreeCAD の使用バージョンは必ず確認せよ

FreeCAD は開発途上の OSS ソフトウェアなので、 バージョンにより UI・配置・仕様が大きく変わる。 そのためネットに落ちている対処例を見ても、
「え?そのメニューがない」
「同じ操作なのに別のエラーが出る」
は 平常運転。
対処法が効かない場合は、まず バージョン違いを疑う。 自分の環境に合った事例を探すのが最短経路。

現在の Workbench を必ず確認せよ

FreeCAD は Workbench 切り替えによって上部メニュー、ツールバー、アイコンが丸ごと入れ替わる。
保存した FCStd を再度開いたとき、前回作業時の Workbench は記録されていない。
「あれ?昨日あったメニューがない?」と焦るのは典型的ハマり方
→ 落ち着いて、今どの Workbench にいるか確認すること。

Placement の鉄則: “回転してから移動せよ” (逆は地獄)

パーツの “Placement” では回転の中心は「パーツ自身のローカル原点」 である。 つまり:
回転 → ローカル原点の周りに回る
移動 → 回転後のパーツを任意位置へ置く
逆パターン:
「とりあえず置いてから回転」→ 位置がズレて再調整が地獄
正しい手順:
必要なら回転で「傾ける」
その後で「移動」で所定位置に置く

システム全体を傾けたいときは、 全パーツを Compound 等でまとめて、グループに対して回転をかける。

パーツの“まとめ方”:用途別の正しい選択

FreeCAD には複数の「まとめる」手段があり、用途によって使い分けが必須。

🐾Assembly

構造物の組み立て確認用。 FEM用途には使わない。

🐾Boolean Fusion(和演算・完全融合)

2つ以上の物体を完全融合し 1つのソリッドにする。 マテリアルは 1 種類しか割り当て不可。 精密モデリング向け。

🐾Compound(パーツを束ねる“束”)

複数パーツを グループとしてまとめる。 各パーツは独立したまま。
全体に対して1つの FEM メッシュを生成できる → FEM の基本手段。非常に重要。
※「Part」は Compound に似ているが、FEMメッシュは各パーツに別々に作る必要があるため構造解析用途には向かない。

🐾 Boolean Fragments(分割と接触判定を同時解決)

利点:
2つの接触面を “自動 Tie” のように扱える。
それぞれのパーツに異なるマテリアルを割り当て可能。
重複部分を検出し「分割した 3 パーツ」として扱う
欠点:
乱用すると CalculiX がメッシュ生成で爆死しやすい(“Mesh self-intersection” / “negative Jacobian”多発)
→ 便利すぎて依存しがちだが、連発は危険。

Material の割り当て:解析ツリーの下に置かねば無効

Material をパーツ直下に置くと単に見た目(色・ツヤ)の情報のみ反映される。
Elasticity(ヤング率・ポアソン比)・Density など 物理量として有効になるのはAnalysis ツリーの下に Material を置いた場合のみ。

“パーツに Material を割り当てる”のではなく “Material にパーツを割り当てる”

直感と逆なので初心者が混乱しやすいポイント。
FreeCAD FEM の流れは:
Material を解析ツリーに登録する
→その Material を使うパーツを選択する

完全に「材料→部品」の順になっているので注意。

Analysis ツリー下の FEM Mesh は 1つだけ

FreeCAD 1.0.2 (AppImage) では:
Analysis 配下に複数 FEM Mesh があるとCalculiX Solver が動かない 。
→ 全パーツを Compound または Boolean Fragments でまとめ、 共通メッシュを1つだけ生成すること。

境界面判定は地獄:予防策を徹底せよ

境界判定の問題は、宇宙線シミュレーションでも FEM でも 悪夢の発生源。

🐾 構造解析前の下準備

🐾 Boolean Fragments 多用 + 面拘束 Tie で破綻するときの回避策

接触面で計算が重い/ソルバーが落ちるとき:
どれだけ Placement を精密に合わせても“境界面の曖昧判定” で構造計算が落ちるケースがある。
パーツの間に0.001 mm 程度の隙間を故意に空けると“重なり判定” を回避して計算が通ることがある。
※もちろん、0.001 mm が無視できないスケールの計算では使えない。

独自 Material の登録(FCMat ファイル)

FreeCAD の Material ファイル(FCMat)は FreeCAD 1.0 以降 YAML 形式(以前は XML)。
独自 Material を作るには:

注意点1 (既存のmaterial files)

AppImage のデフォルト材料は AppImage 内部の squashfs に格納
→ ホスト OS 側からは直接見つからない。
ただ、ユーザー定義ファイルは以下に置けば読み込まれる:
~/.local/share/FreeCAD/Material/

注意点2 (UUID の衝突)

FreeCAD の Material DB は UUID で管理されるので、
既存 FCMat をコピーして値だけ変えるとUUID が同じ → 片方しか読み込まれない。
コピーしたら必ずUUID をつけ直す。
$ uuidgen
でUUID を生成できる。

More in this category