abaqus-mcp
README.md
# CAD-CC-Abaqus
把「CAD 图纸 → Abaqus 有限元分析」全流程自动化的 MCP 集成管线。
让 AI(Claude Code)通过自然语言,把一张 DXF 图纸或一段文字描述,自动变成能在 Abaqus 里求解的有限元模型 —— 建模 → 材料/边界/荷载 → 网格 → 求解 → 看结果,全程无需手工点 GUI。
## 架构
```
Claude Code
├─ mcp__cad-tools__* → servers/cad_server/ (DXF 读取与几何处理)
└─ mcp__abaqus-mcp__* → servers/abaqus_server/ (Abaqus 通信)
↓ 文件 IPC
~/.abaqus-mcp/
├── commands/ (MCP → Abaqus)
├── results/ (Abaqus → MCP)
└── status.json (心跳)
↓
abaqus_plugin.py (Abaqus 内核)
```
- **`servers/cad_server/`**:读 DXF、抽几何实体、线段拼闭合轮廓、几何简化、生成 Abaqus 几何脚本
- **`servers/abaqus_server/`**:连接 Abaqus,向内核发 Python 代码、查模型信息、提交 Job、截视口
- **`servers/shared/`**:公共数据模型(几何实体/轮廓)与默认参数
核心通信机制是**文件 IPC**:MCP Server 写命令到 `~/.abaqus-mcp/commands/`,Abaqus 里的插件 `abaqus_plugin.py` 轮询执行,把结果写回 `results/`。
## 三条建模路径
| 路径 | 场景 | 流程 |
|------|------|------|
| **A** | 有 DXF 图纸 | DXF → 提取几何 → build123d 建 3D → STEP → Abaqus 导入 → 求解 |
| **B** | 无图纸,复杂几何 | 文字描述 → build123d 生成 STEP(弹簧/叶轮/曲面)→ Abaqus → 求解 |
| **C** | 简单几何 | LLM 直接写 Abaqus Python,在 Abaqus 里全做完 |
详见 [WORKFLOW.md](WORKFLOW.md)。
## 环境要求
- Python ≥ 3.10(核心 MCP server;build123d 需 Python 3.11)
- Abaqus/CAE(2024 测试过,内核跑插件)
- Node.js + npm(仅 CAD Explorer 需要)
- 依赖:`mcp[cli]`、`ezdxf`、`pydantic`、`jinja2`、`numpy`、`scipy`(见 [requirements.txt](requirements.txt))
- 可选:build123d(`.claude/skills/cad/`,复杂 3D 建模)
## 安装(克隆后一步到位)
核心管线(DXF → 几何 → Abaqus 求解)只需一步:
```bash
# Windows(PowerShell)
powershell -ExecutionPolicy Bypass -File setup.ps1
# 或 Linux / macOS
./setup.sh
```
这会创建 `.venv` 并安装 [requirements.txt](requirements.txt) 里的依赖。`.mcp.json` 已指向 `.venv` 里的 python(相对路径),Claude Code 会自动加载两个 MCP server。
可选的两条 build123d 建模路径和 CAD Explorer 浏览器,各加一步:
```bash
# build123d 复杂 3D 建模(需 Python 3.11,build123d 0.10 的二进制 wheel 只支持 cp311)
powershell -ExecutionPolicy Bypass -File setup-cad.ps1 # 或 ./setup-cad.sh
# CAD Explorer 浏览器预览(需 Node.js + npm)
powershell -ExecutionPolicy Bypass -File setup-explorer.ps1 # 或 ./setup-explorer.sh
```
## 快速开始
1. 首次克隆后跑一次上面的 setup 脚本。
2. 在 Abaqus 里加载插件(二选一):
- **File → Run Script** 选 `servers/abaqus_server/abaqus/abaqus_plugin.py`,然后在命令行跑 `mcp_coop_loop()`
- 或把 `abaqus_v6.env` 放进 Abaqus home 目录,并设 `ABQ_MCP_PLUGIN_PATH` 指向 `abaqus_plugin.py`
3. 然后就能用自然语言驱动,例如:
```
读一下 Drawing1.dxf,建一个 20mm 厚的板,材料钢,固定一端,另一端加压力,网格 2mm,求解
```
## 目录结构
```
CAD-CC-Abaqus/
├── .mcp.json MCP 服务器配置
├── WORKFLOW.md 工作流指南
├── ARCHITECTURE.md 项目架构
├── pyproject.toml 项目元数据
├── servers/ 核心代码
│ ├── abaqus_server/ Abaqus MCP 服务 + 内核插件
│ ├── cad_server/ CAD MCP 服务(DXF → 几何)
│ └── shared/ 共享数据模型与配置
└── workspace/ 工作目录(案例与输出,不入库)
```
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues