关于 StructuralFEA
StructuralFEA 是用于减振器部件和机械零件结构验证的开源技能,结合解析检查与有限元分析流程,使用 CalculiX、FreeCAD FEM 和 Gmsh 等工具。
主要功能
- 01快速解析应力检查
- 02部件有限元分析流程
- 03屈曲与模态分析
- 04疲劳评估
- 05材料数据与部件模板
- 06网格划分和结果解读指引
适用场景
- 01在完整分析前检查杆件应力
- 02分析内部受压的减振器管
- 03评估杆件受载时的屈曲
- 04估算部件疲劳寿命
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ robdtaylor/ personal-ai-infrastructure --skill structuralfea安装后在 Claude Code 中输入/structuralfea确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
CLAUDE.mdWorkflows/QuickStress.mdComponentFEA.md详细介绍
StructuralFEA
用于减振器组件和机械零件结构验证的开源有限元分析技能。使用 CalculiX、FreeCAD FEM、Gmsh 和 ParaView。
工作流路由
| 工作流 | 触发词 | 描述 |
|---|---|---|
| QuickStress | “快速应力检查”、“手算” | FEA 前的解析应力计算 |
| ComponentFEA | “分析杆件”、“管件应力”、“活塞 FEA” | 对特定组件进行完整 FEA |
| BucklingAnalysis | “屈曲”、“柱”、“稳定性” | 欧拉屈曲和非线性屈曲 |
| ModalAnalysis | “固有频率”、“模态”、“振动” | 特征值提取 |
| FatigueCheck | “疲劳”、“耐久性”、“寿命” | 应力-寿命疲劳评估 |
工具链概览
┌─────────────────────────────────────────────────────────────────────┐
│ 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 软件。bConverged 安装程序是最简单的 Windows 选项。为获得最佳兼容性,可考虑在 WSL(适用于 Linux 的 Windows 子系统)中运行 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-T6 | 68,900 | 0.33 | 2,700 | 276 | 310 |
| 7075-T6 | 71,700 | 0.33 | 2,810 | 503 | 572 |
| 4140 QT | 205,000 | 0.29 | 7,850 | 655-860 | 810-970 |
| 4340 QT | 205,000 | 0.29 | 7,850 | 860-1100 | 950-1200 |
| 17-4 PH H900 | 196,000 | 0.27 | 7,780 | 1,170 | 1,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.5mm | C3D10(四面体) |
| 管件(Ø40-60mm) | 3-4mm | 螺纹根部:0.5mm | C3D10 或 C3D20R |
| 活塞 | 2-3mm | 阀孔:0.3mm | C3D10 |
| 吊耳/叉耳 | 2-3mm | 孔边缘:0.5mm | C3D10 |
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 工作流
-
创建/导入几何体
- 使用 Part Design 工作台创建新几何体
- 为现有 CAD 导入 STEP/IGES
-
切换到 FEM 工作台
- Analysis → New Analysis
- Model → Solver CalculiX Standard
-
指定材料
- Model → Material for Solid
- 从库中选择或定义自定义材料
-
应用约束
- Model → Constraint Fixed(用于支撑)
- Model → Constraint Force(用于载荷)
- Model → Constraint Pressure(用于表面)
-
创建网格
- Mesh → FEM Mesh from Shape
- 设置单元尺寸和细化程度
-
求解
- Solve → Solver Job Control
- 写入 .inp 文件,运行 CalculiX
-
查看结果
- Results → Show Result
- 筛选:Von Mises、位移等
结果解读
应力限值(设计许用值)
| 材料 | 静态 σ_allow | 疲劳 σ_allow | 备注 |
|---|---|---|---|
| 6061-T6 | 165 MPa | 60 MPa | 0.6×Sy,Se=97 MPa |
| 7075-T6 | 300 MPa | 100 MPa | 0.6×Sy,Se=159 MPa |
| 4140 QT | 400-520 MPa | 200-260 MPa | 取决于回火状态 |
| 4340 QT | 520-660 MPa | 260-330 MPa | 优异的疲劳性能 |
| 17-4 PH | 700 MPa | 350 MPa | H900 状态 |
安全系数指南
| 应用 | 静态 SF | 疲劳 SF | 屈曲 SF |
|---|---|---|---|
| 道路车辆 | 2.0 | 3.0 | 3.0 |
| 赛车运动 | 1.5 | 2.0 | 2.5 |
| 工业用途 | 2.5 | 4.0 | 4.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
评论
支持 Markdown