ABAQUS MCP插件V4.0
一个插件,可以实现之间的通信 Abaqus/CAE 以及通过基于文件的IPC连接外部AI助手(或任何MCP客户端)。
v4.0的新增功能
- 作业管理 --远程列出并提交Abaqus作业
- ODB检查 --以只读方式打开ODB文件并查询步骤、框架、实例
- 视口捕捉 --将任何Abaqus视口截图为base64图像
- 更丰富的车型信息 --现在包括负载、BC、交互和装配实例
- MCP资源 —
abaqus://status实时插件状态资源 - 陈旧的命令清理 --自动删除超过2分钟的命令
- 日志记录 --记录到的所有操作
~/.abaqus-mcp/mcp.log - 版本跟踪 --status.json和ping响应包括插件版本
- GUI状态按钮 --从插件菜单中检查插件状态
建筑
┌─────────────┐ MCP protocol ┌───────────────┐ file IPC ┌──────────────┐
│ MCP Client │ ──────────────> │ mcp_server.py │ ─────────> │ Abaqus/CAE │
│ (Cursor AI) │ (plugin reads & deletes)
results/*.json "$env:USERPROFILE\.abaqus-mcp\stop.flag"选项4--运行 stop_mcp.py 任何Python环境。
MCP工具
这些工具通过以下方式暴露给MCP客户端 mcp_server.py:
| 工具 | 说明 |
|---|---|
check_abaqus_connection | 验证Abaqus是否正在运行,插件是否正在响应 |
execute_script | 在Abaqus/CAE中执行Python脚本 |
get_model_info | 获取模型详细信息(零件、材料、步骤、载荷、BC等) |
list_jobs | 列出会话中的所有分析作业 |
submit_job | 按名称提交作业并等待完成 |
get_odb_info | 以只读方式打开ODB文件并返回元数据 |
get_viewport_image | 以base64格式捕获视口屏幕截图 |
ping | 测试连接(返回版本信息) |
MCP资源
| URI | 描述 |
|---|---|
abaqus://status | 实时插件状态(运行/停止、版本、正常运行时间) |
基于文件的IPC协议
将JSON命令文件写入 ~/.abaqus-mcp/commands/:
import json, os, time
command = {
'id': 'my_command',
'type': 'execute_script',
'script': 'print("Hello from Abaqus!")',
'timestamp': time.time(),
}
cmd_path = os.path.expanduser('~/.abaqus-mcp/commands/cmd_my_command.json')
with open(cmd_path, 'w') as f:
json.dump(command, f)结果将显示在 ~/.abaqus-mcp/results/my_command.json.
命令类型
| 类型 | 参数 | 描述 |
|---|---|---|
execute_script | script (str) | 在Abaqus中执行Python脚本 |
get_model_info | -- | 获取当前型号信息 |
list_jobs | -- | 列出所有已定义的作业 |
submit_job | job_name (str) | 提交并等待作业 |
get_odb_info | odb_path (str) | 读取ODB元数据 |
get_viewport_image | viewport_name, format | 捕获视口屏幕截图 |
ping | -- | 测试连接 |
stop | -- | 请求循环停止 |
目录结构
~/.abaqus-mcp/
├── abaqus_mcp_plugin.py # Abaqus-side plugin (runs inside CAE)
├── mcp_server.py # MCP server (runs externally)
├── stop_mcp.py # Helper to send stop signal
├── abaqus_v6.env.example # Auto-load config template
├── .mcp.json # MCP client config example
├── abaqus_plugins/
│ └── mcp_control/
│ ├── __init__.py
│ └── mcp_control_plugin.py
├── commands/ # Incoming command files
├── results/ # Outgoing result files
├── scripts/ # Temporary script files
├── screenshots/ # Temporary viewport captures
├── status.json # Heartbeat status (updated every 2s)
├── mcp.log # Operation log
└── stop.flag # Stop signal file故障排除
- 插件显示“正在运行”,但未使用任何命令:
1. 跑 mcp_stop() 然后 mcp_start() 再次 1. 检查 ~/.abaqus-mcp/status.json --时间戳应每2秒更新一次 1. 检查 ~/.abaqus-mcp/mcp.log 对于错误
- Abaqus使用不同的主目录:
import os; os.environ['ABAQUS_MCP_HOME'] = r'C:\Users\YourName\.abaqus-mcp'在加载插件之前设置此选项。
- 命令超时:
- 过期命令(>2分钟)会自动清除 - 确保插件在 running 国家via mcp_status()
- GUI插件未显示:
- 验证 ~/abaqus_plugins/mcp_control/ 存在并包含 mcp_control_plugin.py - 重启Abaqus/CAE
许可证
MIT许可证
