mcpField
S
StructuralFEA

StructuralFEA

github.com/robdtaylorその他118 回インストール
リポジトリ

StructuralFEA について

StructuralFEAは、ダンパー部品や機械部品の構造検証向けオープンソーススキルです。CalculiX、FreeCAD FEM、Gmshなどを使う解析計算と有限要素解析の手順を備えています。

主な機能

  1. 01迅速な解析応力チェック
  2. 02部品の有限要素解析フロー
  3. 03座屈・モード解析
  4. 04疲労評価
  5. 05材料データと部品テンプレート
  6. 06メッシュ作成と結果解釈のガイド

活用シーン

  1. 01本解析の前にロッドの応力を確認
  2. 02内圧を受けるダンパーチューブを解析
  3. 03荷重下のロッド座屈を評価
  4. 04部品の疲労寿命を見積もる

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/robdtaylor/personal-ai-infrastructure --skill structuralfea

インストール後、Claude Code で/structuralfeaを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

CLAUDE.md
Workflows/
QuickStress.md
ComponentFEA.md

詳細

StructuralFEA

ダンパー部品および機械部品の構造検証に使える、オープンソースの有限要素解析スキルです。CalculiX、FreeCAD FEM、Gmsh、ParaViewを使用します。

ワークフローの振り分け

ワークフロートリガー説明
QuickStress"quick stress check", "hand calc"FEAの前に解析的に応力を計算します
ComponentFEA"analyze rod", "tube stress", "piston FEA"特定の部品を対象に完全なFEAを行います
BucklingAnalysis"buckling", "column", "stability"オイラー座屈解析と非線形座屈解析を行います
ModalAnalysis"natural frequency", "modal", "vibration"固有値を抽出します
FatigueCheck"fatigue", "endurance", "life"応力寿命法による疲労評価を行います

ツールチェーンの概要

┌─────────────────────────────────────────────────────────────────────┐
│                    OPEN SOURCE FEA STACK                            │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│   ┌─────────────┐     ┌─────────────┐     ┌─────────────┐          │
│   │  FreeCAD    │────▶│    Gmsh     │────▶│  CalculiX   │          │
│   │  (CAD/GUI)  │     │  (Meshing)  │     │  (Solver)   │          │
│   └─────────────┘     └─────────────┘     └──────┬──────┘          │
│         │                                         │                 │
│         │              ┌─────────────┐           │                 │
│         └─────────────▶│  ParaView   │◀──────────┘                 │
│                        │  (Post-proc)│                              │
│                        └─────────────┘                              │
│                                                                     │
│   Alternative paths:                                                │
│   - FreeCAD FEM Workbench (integrated GUI workflow)                │
│   - Salome-Meca (Code_Aster) for advanced nonlinear               │
│   - OpenFOAM for CFD (valve flow analysis)                         │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

インストール

macOS(Homebrew)
# FreeCAD with FEM workbench
brew install --cask freecad

# Gmsh mesher
brew install gmsh

# CalculiX solver (requires tap)
brew tap costerwi/calculix
brew install calculix-ccx     # Solver
brew install calculix-cgx     # Pre/post (optional, requires XQuartz on macOS)

# ParaView post-processor
brew install --cask paraview

# Optional: OpenFOAM for CFD
brew install openfoam
macOSの代替方法(Conda)
# If you prefer conda
conda install conda-forge::calculix
conda install conda-forge::gmsh
Linux(Ubuntu/Debian)
# FreeCAD
sudo apt install freecad

# Gmsh
sudo apt install gmsh

# CalculiX
sudo apt install calculix-ccx calculix-cgx

# ParaView
sudo apt install paraview

# Salome-Meca (alternative, more powerful)
# Download from https://www.code-aster.org/
Windows
# FreeCAD - via winget or download from freecad.org
winget install FreeCAD.FreeCAD

# Gmsh - via winget or download from gmsh.info
winget install -e --id Gmsh.Gmsh

# CalculiX - multiple options:

# Option 1: bConverged installer (recommended, includes GUI)
# Download from http://www.bconverged.com/calculix.php
# Provides ccx.exe and optional cgx.exe

# Option 2: Chocolatey (if installed)
choco install calculix

# Option 3: WSL (most reliable, identical to Linux)
# Install WSL, then: sudo apt install calculix-ccx calculix-cgx

# ParaView - via winget or download from paraview.org
winget install Kitware.ParaView

注: CalculiXはUnixネイティブのソフトウェアです。Windowsでは、bConvergedインストーラーが最も簡単な選択肢です。最大限の互換性を得るには、WSL(Windows Subsystem for Linux)でCalculiXを実行することを検討してください。これにより、ネイティブのLinuxと同じ動作が得られます。

インストールの確認
# Check versions
freecad --version
gmsh --version
ccx -v
paraview --version

材料データベース

アルミニウム合金(CalculiXの.inpファイル用)
*MATERIAL, NAME=AL6061T6
*ELASTIC
68900, 0.33
*DENSITY
2700E-12
*EXPANSION
23.6E-6

*MATERIAL, NAME=AL7075T6
*ELASTIC
71700, 0.33
*DENSITY
2810E-12
*EXPANSION
23.4E-6

*MATERIAL, NAME=AL2024T351
*ELASTIC
72400, 0.33
*DENSITY
2780E-12
*EXPANSION
23.2E-6
鋼(CalculiXの.inpファイル用)
*MATERIAL, NAME=STEEL4140
*ELASTIC
205000, 0.29
*DENSITY
7850E-12
*EXPANSION
12.3E-6
*PLASTIC
655, 0.0
860, 0.10

*MATERIAL, NAME=STEEL4340
*ELASTIC
205000, 0.29
*DENSITY
7850E-12
*EXPANSION
11.7E-6
*PLASTIC
860, 0.0
1100, 0.08

*MATERIAL, NAME=STEEL174PH
*ELASTIC
196000, 0.27
*DENSITY
7780E-12
*EXPANSION
10.8E-6
*PLASTIC
1170, 0.0
1310, 0.06
材料特性の概要
材料E (MPa)νρ (kg/m³)Sy (MPa)Su (MPa)
6061-T668,9000.332,700276310
7075-T671,7000.332,810503572
4140 QT205,0000.297,850655-860810-970
4340 QT205,0000.297,850860-1100950-1200
17-4 PH H900196,0000.277,7801,1701,310

部品テンプレート

ピストンロッド - 軸荷重+曲げ荷重
** ================================================
** PISTON ROD FEA - COMBINED LOADING
** ================================================
**
*HEADING
Damper Piston Rod - Axial Load with Side Force
**
*NODE, NSET=ALLNODES
** Node data imported from mesh file
*INCLUDE, INPUT=rod_mesh.inp
**
** ------------------------------------------------
** MATERIAL DEFINITION
** ------------------------------------------------
*MATERIAL, NAME=STEEL4140
*ELASTIC
205000, 0.29
*DENSITY
7850E-12
**
*SOLID SECTION, ELSET=EALL, MATERIAL=STEEL4140
**
** ------------------------------------------------
** BOUNDARY CONDITIONS
** ------------------------------------------------
** Fixed end (piston attachment)
*BOUNDARY
FIXED_END, 1, 3, 0.0
**
** ------------------------------------------------
** LOADING
** ------------------------------------------------
** Axial load (compression)
*CLOAD
LOAD_NODE, 3, -5000.0
**
** Side load (bending from misalignment)
*CLOAD
LOAD_NODE, 1, 500.0
**
** ------------------------------------------------
** ANALYSIS
** ------------------------------------------------
*STEP
*STATIC
**
*NODE FILE
U
*EL FILE
S, E
**
*END STEP
チューブ - 内圧
** ================================================
** DAMPER TUBE - INTERNAL PRESSURE
** ================================================
**
*HEADING
Damper Tube Hoop Stress Analysis
**
*INCLUDE, INPUT=tube_mesh.inp
**
*MATERIAL, NAME=AL6061T6
*ELASTIC
68900, 0.33
**
*SOLID SECTION, ELSET=EALL, MATERIAL=AL6061T6
**
** Fixed end cap
*BOUNDARY
END_FIXED, 1, 3, 0.0
**
** Internal pressure (20 MPa = 200 bar)
*DLOAD
INNER_SURFACE, P, 20.0
**
*STEP
*STATIC
*NODE FILE
U
*EL FILE
S, E
*END STEP
座屈解析テンプレート
** ================================================
** ROD BUCKLING ANALYSIS
** ================================================
**
*HEADING
Piston Rod Linear Buckling
**
*INCLUDE, INPUT=rod_mesh.inp
**
*MATERIAL, NAME=STEEL4340
*ELASTIC
205000, 0.29
**
*SOLID SECTION, ELSET=EALL, MATERIAL=STEEL4340
**
** Pinned bottom
*BOUNDARY
BOTTOM, 1, 2, 0.0
BOTTOM, 3, 3, 0.0
**
** Guided top (can move axially)
*BOUNDARY
TOP, 1, 2, 0.0
**
** Unit load for eigenvalue extraction
*CLOAD
TOP, 3, -1.0
**
** ------------------------------------------------
** LINEAR BUCKLING (EIGENVALUE)
** ------------------------------------------------
*STEP
*BUCKLE
5
**
*NODE FILE
U
*EL FILE
S
**
*END STEP
モーダル解析テンプレート
** ================================================
** COMPONENT MODAL ANALYSIS
** ================================================
**
*HEADING
Natural Frequency Extraction
**
*INCLUDE, INPUT=component_mesh.inp
**
*MATERIAL, NAME=STEEL4140
*ELASTIC
205000, 0.29
*DENSITY
7850E-12
**
*SOLID SECTION, ELSET=EALL, MATERIAL=STEEL4140
**
*BOUNDARY
FIXED, 1, 3, 0.0
**
*STEP
*FREQUENCY
10
**
*NODE FILE
U
*EL FILE
S
**
*END STEP

メッシュ作成のガイドライン

要素サイズの推奨値
部品全体サイズ細分化する領域要素タイプ
ロッド(Ø16-25mm)2-3mmねじ山:0.5mm、フィレット:0.5mmC3D10(四面体)
チューブ(Ø40-60mm)3-4mmねじ谷:0.5mmC3D10またはC3D20R
ピストン2-3mmバルブポート:0.3mmC3D10
アイ/クレビス2-3mm穴の縁:0.5mmC3D10
Gmshメッシュ作成スクリプト
// ================================================
// GMSH SCRIPT FOR DAMPER ROD
// ================================================

// Load geometry (STEP file from CAD)
Merge "piston_rod.step";

// Define mesh size
Mesh.CharacteristicLengthMax = 2.0;  // mm
Mesh.CharacteristicLengthMin = 0.3;  // mm

// Refine at threads (identify surfaces by number)
Field[1] = Distance;
Field[1].FacesList = {5, 6};  // Thread surfaces
Field[1].NNodesByEdge = 100;

Field[2] = Threshold;
Field[2].IField = 1;
Field[2].LcMin = 0.5;
Field[2].LcMax = 2.0;
Field[2].DistMin = 0.5;
Field[2].DistMax = 5.0;

Background Field = 2;

// Generate 3D mesh
Mesh.Algorithm3D = 1;  // Delaunay
Mesh 3;

// Save for CalculiX
Save "rod_mesh.inp";
FreeCAD FEMのワークフロー
  1. ジオメトリの作成/インポート

    • 新しいジオメトリにはPart Designワークベンチを使用します
    • 既存のCADにはSTEP/IGESをインポートします
  2. FEMワークベンチに切り替え

    • Analysis → New Analysis
    • Model → Solver CalculiX Standard
  3. 材料の割り当て

    • Model → Material for Solid
    • ライブラリから選択するか、カスタム材料を定義します
  4. 拘束条件の適用

    • Model → Constraint Fixed(支持部用)
    • Model → Constraint Force(荷重用)
    • Model → Constraint Pressure(面用)
  5. メッシュの作成

    • Mesh → FEM Mesh from Shape
    • 要素サイズと細分化を設定します
  6. 解析の実行

    • Solve → Solver Job Control
    • .inpファイルを書き出し、CalculiXを実行します
  7. 結果の表示

    • Results → Show Result
    • フィルター:Von Mises、変位など

結果の解釈

応力限度(設計許容値)
材料静的 σ_allow疲労 σ_allow注記
6061-T6165 MPa60 MPa0.6×Sy、Se=97 MPa
7075-T6300 MPa100 MPa0.6×Sy、Se=159 MPa
4140 QT400-520 MPa200-260 MPa焼戻し状態によって異なります
4340 QT520-660 MPa260-330 MPa優れた疲労特性
17-4 PH700 MPa350 MPaH900状態
安全率のガイドライン
用途静的SF疲労SF座屈SF
道路車両2.03.03.0
モータースポーツ1.52.02.5
産業用途2.54.04.0
結果のチェックリスト
## FEA Result Verification

□ Mesh convergence check (refine 2x, stress change <5%)
□ Displacement magnitude reasonable
□ Stress concentrations identified and acceptable
□ von Mises < σ_allowable everywhere
□ No yielding in critical regions
□ Buckling factor > required SF
□ Natural frequencies away from excitation frequencies
□ Reaction forces balance applied loads
□ No mesh distortion warnings

簡易応力チェック(FEAの前に)

ロッドの軸応力
σ = F / A = F / (π × d²/4)

Example:
F = 5000 N, d = 20 mm
σ = 5000 / (π × 20²/4) = 15.9 MPa

For 4140 steel (Sy = 700 MPa):
SF = 700 / 15.9 = 44 ✓ (very conservative)
ロッドの座屈
Pcr = π² × E × I / (K × L)²

I = π × d⁴ / 64

Example:
d = 20 mm, L = 200 mm, K = 0.7 (guided)
E = 205,000 MPa

I = π × 20⁴ / 64 = 7854 mm⁴
Pcr = π² × 205000 × 7854 / (0.7 × 200)²
Pcr = 809,000 N = 809 kN

For F = 5000 N:
SF = 809,000 / 5000 = 162 ✓
チューブのフープ応力
σ_hoop = P × r / t

Example:
P = 20 MPa, r = 20 mm (inner), t = 3 mm
σ_hoop = 20 × 20 / 3 = 133 MPa

For 6061-T6 (Sy = 276 MPa):
SF = 276 / 133 = 2.1 ✓

他のスキルとの連携

スキル連携内容
DamperEngineeringコンポーネントの荷重、材料選定
PlantCapability設計の機械加工の実現可能性
CuttingParams表面仕上げの要件
QuoteEstimator材料費、機械加工時間

例

例 1:ロッドの簡易チェック

User: "Check if 16mm rod can handle 4000N"
→ Run analytical calculation
→ Check axial stress vs allowable
→ Check buckling if stroke > 100mm
→ Report pass/fail with SF

例 2:FEA の完全なワークフロー

User: "Run FEA on piston rod with thread detail"
→ Generate CalculiX template
→ Provide meshing guidance
→ Define boundary conditions
→ Interpret results
→ Recommend design changes if needed

例 3:座屈解析

User: "Will this long rod buckle under max load?"
→ Euler calculation first
→ Set up CalculiX buckling analysis
→ Extract eigenvalue (buckling factor)
→ Report margin

コメント