CATIA V5 MCP服务器
通过模型上下文协议(MCP)将Claude AI连接到达索系统CATIA V5。
CATIA V5的第一个开源MCP服务器。使用自然语言从Claude Desktop或Claude Code驱动CATIA V5 CAD建模。
它做什么
此MCP服务器公开 50+工具 这让克劳德:
- 创建和管理文档 --新零件、产品(组件)、打开、保存、关闭
- 二维草图 --直线、矩形、圆、圆弧、样条曲线、点、约束
- 零件设计 --衬垫、口袋、轴、凹槽、圆角、倒角、孔、外壳、拔模斜度、厚度、图案(矩形/圆形)、镜子
- 装配 --添加组件、固定/重合/偏移/角度约束、移动/旋转
- 测量 --距离、惯性、边界框、参数
- 出口 --STEP、IGES、STL、3DXML、VRML、截图
- 视图控制 --设置标准视图,适合所有人,捕捉屏幕截图
需求
- 视窗 (COM自动化仅适用于Windows)
- CATIA V5 已安装并获得许可(R2016+)
- Python 3.10+
- 克劳德桌面版 或 克劳德代码
快速安装(推荐)
git clone https://github.com/daiemon12/catia-v5-mcp-server.git
cd catia-v5-mcp-server
bash setup.sh该脚本处理一切:依赖关系、Claude Desktop配置和验证。
手动安装
1.克隆存储库
git clone https://github.com/daiemon12/catia-v5-mcp-server.git
cd catia-v5-mcp-server2.安装依赖项
pip install -e .或手动:
pip install mcp pywin323.配置克劳德桌面
编辑您的Claude Desktop配置文件:
- 窗户:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
添加服务器:
{
"mcpServers": {
"catia-v5": {
"command": "python",
"args": ["-m", "catia_mcp"]
}
}
}或者使用绝对路径:
{
"mcpServers": {
"catia-v5": {
"command": "python",
"args": ["C:/path/to/catia-v5-mcp-server/catia_mcp/server.py"]
}
}
}4.克劳德代码
claude mcp add catia-v5 python -- -m catia_mcp5.启动CATIA V5
在要求Claude与CATIA V5交互之前,请确保CATIA V5正在运行。服务器将自动连接到正在运行的实例。
如果CATIA V5未运行,服务器将尝试启动它(要求CATIA注册为COM服务器: cnext.exe /regserver).
用法示例
配置后,只需与Claude交谈:
创建一个简单的零件
创建一个新的CATIA零件。在XY平面上以原点为中心绘制一个100x60mm的矩形,然后将其拉伸40mm
设计支架
“设计一个安装支架:从一个120x80mm厚的5mm底板开始。在拐角处添加4个M6安装孔,边缘距离为10mm。然后添加两个30mm高的垂直肋。”
参数修改
“显示活动部件的所有参数。然后将焊盘高度更改为60mm。”
出口制造业
“将当前零件导出为C:/Export/packets.tp中的STEP格式,并对等轴测视图进行截图。”
装配
创建一个新部件。添加C:\\parts/bracket.CATPart中的括号和C:\\parts/base.CATPart中的基座。修复基座,然后在两者之间创建重合约束
建筑
catia-v5-mcp-server/
├── catia_mcp/
│ ├── __init__.py
│ ├── __main__.py # python -m catia_mcp entry point
│ ├── server.py # MCP Server — tool registration & routing
│ ├── connection.py # COM connection manager (win32com)
│ └── tools/
│ ├── __init__.py
│ ├── document.py # Document management (9 tools)
│ ├── sketcher.py # 2D Sketch tools (11 tools)
│ ├── part_design.py # 3D Part Design features (15 tools)
│ ├── assembly.py # Assembly/Product tools (9 tools)
│ ├── measurement.py # Measurement & analysis (6 tools)
│ └── export.py # Export & view control (4 tools)
├── pyproject.toml
├── requirements.txt
└── README.md运作原理
Claude (Desktop/Code)
│
│ stdio (MCP JSON-RPC)
▼
catia_mcp/server.py (MCP Server)
│
│ Tool routing
▼
catia_mcp/tools/*.py (Tool modules)
│
│ win32com.client (COM Automation)
▼
CATIA V5 Application- Claude通过stdio发送MCP工具调用
- 服务器将每次调用路由到相应的工具模块
- 每个工具模块使用
win32com.client通过COM驱动CATIA V5 - 结果(JSON,文本)返回给Claude
工具参考
文档工具(9)
| 工具 | 说明 |
|---|---|
catia_connect | 连接到CATIA V5 |
catia_disconnect | 断开与CATIA V5的连接 |
catia_new_part | 创建新的零件文档 |
catia_new_product | 创建新产品(组件) |
catia_open_document | 打开现有文档 |
catia_save_document | 保存/另存为 |
catia_close_document | 关闭活动文档 |
catia_list_documents | 列出所有打开的文档 |
catia_get_active_document_info | 获取活动文档的详细信息 |
素描工具(11)
| 工具 | 说明 |
|---|---|
catia_create_sketch | 在XY/YZ/ZX平面上创建草图 |
catia_close_sketch | 关闭草图,返回零件设计 |
catia_sketch_line | 画一条线 |
catia_sketch_rectangle | 绘制一个矩形(2个角) |
catia_sketch_centered_rectangle | 绘制一个居中的矩形 |
catia_sketch_circle | 画一个圆 |
catia_sketch_arc | 画一个弧线 |
catia_sketch_spline | 通过点绘制样条曲线 |
catia_sketch_point | 创建一个点 |
catia_sketch_constraint | 添加尺寸/几何约束 |
catia_sketch_get_geometry | 列出草图几何图元元素 |
零件设计工具(15)
| 工具 | 说明 |
|---|---|
catia_pad | 衬垫(挤压) |
catia_pocket | 口袋(切割挤压) |
catia_shaft | 轴(转数) |
catia_groove | 凹槽(旋转切割) |
catia_fillet | 圆角(边缘圆角) |
catia_chamfer | 倒角(边缘斜面) |
catia_hole | 孔(简单、沉孔、沉头) |
catia_rect_pattern | 矩形图案 |
catia_circ_pattern | 圆形图案 |
catia_mirror | 飞机上的镜子 |
catia_shell | 外壳(空心) |
catia_draft | 拔模斜度 |
catia_thickness | 厚度偏移 |
catia_list_features | 列出车身特征 |
catia_list_edges | 列出圆角/倒角的边缘 |
装配工具(9)
| 工具 | 说明 |
|---|---|
catia_add_component | 将现有零件添加到部件中 |
catia_add_new_part | 在部件中创建新零件 |
catia_fix_constraint | 将组件固定到位 |
catia_coincidence_constraint | 巧合约束 |
catia_offset_constraint | 偏移约束 |
catia_angle_constraint | 角度约束 |
catia_move_component | 移动/旋转组件 |
catia_list_components | 列出装配部件 |
catia_list_constraints | 列出装配约束 |
测量工具(6)
| 工具 | 说明 |
|---|---|
catia_measure_distance | 测量元件之间的距离 |
catia_get_inertia | 体积、面积、质量、重心 |
catia_get_bounding_box | 边界框尺寸 |
catia_get_parameters | 列出所有参数 |
catia_set_parameter | 修改参数值 |
catia_update_part | 部队重建 |
导出工具(4)
| 工具 | 说明 |
|---|---|
catia_export | 导出到STEP/IGES/STL/3DXML/VRML |
catia_screenshot | 将3D视图捕获为图像 |
catia_set_view | 设置视图方向 |
catia_fit_all | 将所有内容都纳入视野 |
故障排除
“未安装pywin32”
pip install pywin32此服务器需要Windows。它无法在macOS或Linux上运行。
“无法连接到CATIA V5”
- 确保CATIA V5正在运行
- 将CATIA注册为COM服务器:导航到
C:\Program Files\Dassault Systemes\B\\code\bin\然后跑cnext.exe /regserver - 检查是否没有模态对话框阻塞CATIA
“没有活动文档”
首先使用创建或打开文档 catia_new_part 或 catia_open_document.
COM ByRef数组限制
某些测量方法可能不适用于后期绑定。如果遇到问题,请尝试使用 pycatia 作为替代后端(欢迎贡献)。
贡献
这个项目是开源的。欢迎捐款:
- 线框和曲面(GSD) 工具
- 绘图 工具(二维绘图)
- 智件 (公式、规则、检查)
- pycatia后端 作为原始win32com的替代品
- 测试 COM模拟
- 3d体验 CATIA支持
许可证
麻省理工学院
学分
灵感来源:
