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 でも 悪夢の発生源。🐾 構造解析前の下準備
- Check Geometry を常時 ON (編集 → 設定 → Part/PartDesign) 逆に、FEM時はむしろ OFFにすべき設定(重要)以下 2つはデフォルトで ON だが、 FEM では エラーの原因になりやすい:
- (OFF推奨) Automatically refine model after boolean operation
- (OFF推奨) Automatically refine model after sketch-based operation
🐾 Boolean Fragments 多用 + 面拘束 Tie で破綻するときの回避策
接触面で計算が重い/ソルバーが落ちるとき:どれだけ Placement を精密に合わせても“境界面の曖昧判定” で構造計算が落ちるケースがある。
パーツの間に0.001 mm 程度の隙間を故意に空けると“重なり判定” を回避して計算が通ることがある。
※もちろん、0.001 mm が無視できないスケールの計算では使えない。
独自 Material の登録(FCMat ファイル)
FreeCAD の Material ファイル(FCMat)は FreeCAD 1.0 以降 YAML 形式(以前は XML)。独自 Material を作るには:
- 方法1:GUIから入力する → 手間が多い
- 方法2:既存の FCMat ファイルをコピーし値を書き換える→ 速い
注意点1 (既存のmaterial files)
AppImage のデフォルト材料は AppImage 内部の squashfs に格納→ ホスト OS 側からは直接見つからない。
ただ、ユーザー定義ファイルは以下に置けば読み込まれる:
~/.local/share/FreeCAD/Material/
注意点2 (UUID の衝突)
FreeCAD の Material DB は UUID で管理されるので、既存 FCMat をコピーして値だけ変えるとUUID が同じ → 片方しか読み込まれない。
コピーしたら必ずUUID をつけ直す。
$ uuidgen
でUUID を生成できる。