Skip to main content
Glama
Patrick-Miles-Z

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/              工作目录(案例与输出,不入库)
```