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“快速应力检查”、“手算”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-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

评论

支持 Markdown