- name
- creo-jlink-mcp
- description
- 通过自然语言直接控制 PTC Creo Parametric。使用 creo-jlink-mcp MCP 服务器(基于 J-Link OTK Java API 直连 Creo)操作模型、参数、尺寸、特征、图纸、BOM、导出、族表、材料、关系式、Windchill 等所有功能。触发词:打开模型、保存文件、修改参数、修改尺寸、导出 STEP/PDF/图片、装配、族表、图纸视图、BOM、特征压制/恢复、Windchill 工作区、mapkey 等任何 Creo 操作。
# Creo J-Link MCP Skill — 自然语言直接控制 PTC Creo Parametric
## 概述
本 skill 指导智能体通过 **creo-jlink-mcp** MCP 服务器以自然语言完成对 PTC Creo Parametric 6.0+ 的所有自动化操作。
与 creoson-mcp 不同,本服务器**通过 J-Link (OTK Java Free) API 直连 Creo**,无需 CREOSON 中间件,架构更简洁、延迟更低。
```
AI Agent <── MCP (stdio) ──> creo-jlink-mcp <── J-Link API ──> Creo 6.0+
```
启动方式:`scripts/start-mcp.bat`(Windows)或 `scripts/start-mcp.sh`(开发测试)
---
## 关键原则
1. **每次会话必须先连接**:第一步始终调用 `creo_connect`(默认 localhost,Creo 必须已运行)。
2. **大多数工具的 `filename` 参数可省略**,省略时默认操作当前激活模型。
3. **错误处理**:工具返回 `{"error": "..."}` 时,向用户说明原因并建议修正方案,不要静默失败。
4. **修改后保存**:修改参数/尺寸/特征后,除非用户明确不要,否则调用 `creo_save_file`。
5. **修改尺寸后再生**:调用 `creo_set_dimension` 后需调用 `creo_regenerate` 使修改生效。
6. **自然语言 → 工具**:将用户意图拆解为最小工具调用序列,避免不必要的查询。
7. **Windchill 场景**:需要访问 PDM 时,先 `creo_wc_authorize` → `creo_wc_set_workspace`。
---
## 工具速查表(96 个工具,18 类)
### 连接管理(3 个)
| 工具 | 说明 |
|------|------|
| `creo_connect` | 连接 Creo(host, port),Creo 必须已运行 |
| `creo_disconnect` | 断开连接 |
| `creo_is_connected` | 检查连接状态 |
### 会话操作(6 个)
| 工具 | 说明 |
|------|------|
| `creo_get_working_directory` | 获取当前工作目录 |
| `creo_set_working_directory` | 切换工作目录 |
| `creo_list_files` | 列出工作目录中的文件(支持过滤,如 `*.prt`) |
| `creo_get_config_option` | 读取 Creo config.pro 配置选项 |
| `creo_set_config_option` | 设置 Creo config.pro 配置选项 |
| `creo_run_mapkey` | 执行 mapkey 键盘宏脚本 |
### 文件/模型(10 个)
| 工具 | 说明 |
|------|------|
| `creo_open_file` | 打开文件(.prt/.asm/.drw/.mfg) |
| `creo_save_file` | 保存模型 |
| `creo_close_window` | 关闭当前窗口 |
| `creo_erase_file` | 从内存中清除模型(不删除磁盘文件) |
| `creo_rename_file` | 重命名模型 |
| `creo_regenerate` | 再生模型 |
| `creo_get_active_model` | 获取当前激活模型信息 |
| `creo_list_models` | 列出所有已加载模型 |
| `creo_get_mass_properties` | 获取质量属性(体积/面积/密度/质量/重心) |
| `creo_backup_file` | 备份模型到指定目录 |
### 特征(7 个)
| 工具 | 说明 |
|------|------|
| `creo_list_features` | 列出所有特征(ID/名称/类型/状态) |
| `creo_get_feature_info` | 按 ID 或名称获取特征详情 |
| `creo_delete_feature` | 删除特征(可选级联删除子项) |
| `creo_suppress_feature` | 压制特征(不删除,仅隐含) |
| `creo_resume_feature` | 恢复被压制的特征 |
| `creo_rename_feature` | 重命名特征 |
| `creo_list_feature_params` | 列出特征的参数 |
### 参数(7 个)
| 工具 | 说明 |
|------|------|
| `creo_list_parameters` | 列出参数(支持通配符过滤 `name_pattern`) |
| `creo_get_parameter` | 获取参数值 |
| `creo_set_parameter` | 设置参数值(自动类型转换) |
| `creo_create_parameter` | 创建参数(STRING/DOUBLE/INTEGER/BOOL) |
| `creo_delete_parameter` | 删除参数 |
| `creo_parameter_exists` | 检查参数是否存在 |
| `creo_set_parameter_designated` | 设置参数的指定状态(BOM 显示) |
### 尺寸(3 个)
| 工具 | 说明 |
|------|------|
| `creo_list_dimensions` | 列出所有尺寸(名称/ID/值) |
| `creo_get_dimension` | 按名称或 ID 获取尺寸值 |
| `creo_set_dimension` | 设置尺寸值(修改后需再生) |
### 装配(3 个)
| 工具 | 说明 |
|------|------|
| `creo_assemble_component` | 将零件装入装配体 |
| `creo_get_bom` | 获取 BOM(支持递归/仅顶层) |
| `creo_list_components` | 列出装配体的直接子组件 |
### 工程图(11 个)
| 工具 | 说明 |
|------|------|
| `creo_create_drawing` | 创建图纸(指定模型和模板) |
| `creo_add_drawing_sheet` | 添加图纸页 |
| `creo_delete_drawing_sheet` | 删除图纸页 |
| `creo_set_current_drawing_sheet` | 切换当前图纸页 |
| `creo_get_drawing_info` | 获取图纸信息(页数/当前页/关联模型) |
| `creo_list_drawing_views` | 列出图纸上的所有视图 |
| `creo_create_general_view` | 创建通用视图(指定位置和比例) |
| `creo_create_projection_view` | 创建投影视图(从父视图投影) |
| `creo_set_drawing_view_scale` | 设置视图比例 |
| `creo_delete_drawing_view` | 删除视图 |
| `creo_regenerate_drawing_sheet` | 再生图纸页或整个图纸 |
### 几何(4 个)
| 工具 | 说明 |
|------|------|
| `creo_get_bounding_box` | 获取模型包围盒(min/max/size) |
| `creo_get_surfaces` | 列出所有曲面 |
| `creo_get_edges` | 列出所有边 |
| `creo_get_model_accuracy` | 获取模型精度值 |
### 导入导出(7 个)
| 工具 | 说明 |
|------|------|
| `creo_export_step` | 导出 STEP 格式 |
| `creo_export_iges` | 导出 IGES 格式 |
| `creo_export_stl` | 导出 STL 格式 |
| `creo_export_pdf` | 导出 PDF(仅图纸) |
| `creo_export_3dpdf` | 导出 3D PDF |
| `creo_export_image` | 导出图片(JPEG/PNG/TIFF/BMP,可设宽高) |
| `creo_import_file` | 导入文件(STEP/IGES/NEUTRAL/DXF) |
### 族表(6 个)
| 工具 | 说明 |
|------|------|
| `creo_list_family_instances` | 列出族表实例 |
| `creo_get_family_header` | 获取族表表头(列名/类型) |
| `creo_get_family_cell` | 读取单元格值 |
| `creo_set_family_cell` | 写入单元格值 |
| `creo_add_family_instance` | 添加实例 |
| `creo_delete_family_instance` | 删除实例 |
### 图层(4 个)
| 工具 | 说明 |
|------|------|
| `creo_list_layers` | 列出所有图层(名称/状态) |
| `creo_show_layer` | 显示图层 |
| `creo_hide_layer` | 隐藏图层 |
| `creo_delete_layer` | 删除图层 |
### 注释(4 个)
| 工具 | 说明 |
|------|------|
| `creo_list_notes` | 列出所有注释 |
| `creo_get_note` | 获取注释文本内容 |
| `creo_set_note` | 设置注释文本 |
| `creo_delete_note` | 删除注释 |
### 视图(3 个)
| 工具 | 说明 |
|------|------|
| `creo_list_model_views` | 列出已保存的模型视图 |
| `creo_activate_view` | 激活视图(FRONT/BACK/TOP/ISOMETRIC 等) |
| `creo_save_view` | 保存当前方向为命名视图 |
### 关系式(4 个)
| 工具 | 说明 |
|------|------|
| `creo_get_relations` | 读取模型关系式 |
| `creo_set_relations` | 设置(替换)关系式(修改后需再生) |
| `creo_get_post_regen_relations` | 读取再生后关系式 |
| `creo_set_post_regen_relations` | 设置再生后关系式 |
### 材料(5 个)
| 工具 | 说明 |
|------|------|
| `creo_list_materials` | 列出已加载的材料 |
| `creo_get_current_material` | 获取当前材料 |
| `creo_set_current_material` | 设置当前材料(需先加载) |
| `creo_load_material_file` | 从 .mtl 文件加载材料 |
| `creo_delete_material` | 删除材料 |
### 单位(3 个)
| 工具 | 说明 |
|------|------|
| `creo_get_units` | 获取当前单位制(名称/类型) |
| `creo_list_unit_systems` | 列出可用的单位制 |
| `creo_set_units` | 设置单位制(可选是否转换尺寸值) |
### Windchill PDM(6 个)
| 工具 | 说明 |
|------|------|
| `creo_wc_authorize` | 登录 Windchill(URL/用户名/密码) |
| `creo_wc_server_exists` | 检查 Windchill 服务器是否注册 |
| `creo_wc_get_workspace` | 获取当前活动工作区 |
| `creo_wc_set_workspace` | 设置活动工作区 |
| `creo_wc_list_workspaces` | 列出所有工作区 |
| `creo_wc_checkin` | 签入工作区到 Windchill |
---
## 典型任务示例
### 打开模型并读取参数
```
1. creo_connect()
2. creo_open_file(filename="bracket.prt", directory="C:/parts")
3. creo_list_parameters() → 列出所有参数
4. creo_set_parameter(name="MATERIAL", value="STEEL")
5. creo_save_file()
6. creo_disconnect()
```
### 修改尺寸并再生
```
1. creo_connect()
2. creo_open_file(filename="plate.prt")
3. creo_list_dimensions() → 查看尺寸名称和当前值
4. creo_set_dimension(name="d0", value=100)
5. creo_set_dimension(name="d1", value=50)
6. creo_regenerate() → 必须再生使修改生效
7. creo_save_file()
```
### 导出 STEP 文件
```
1. creo_connect()
2. creo_open_file(filename="assembly.asm")
3. creo_export_step(output_file="C:/export/assembly.stp")
```
### 图纸自动化
```
1. creo_connect()
2. creo_open_file(filename="part.prt")
3. creo_create_drawing(model_filename="part.prt", template="a4_template.drw")
4. creo_create_general_view(model_filename="part.prt", x=150, y=200, scale=0.5)
5. creo_create_projection_view(parent_view_name="View1", x=300, y=200)
6. creo_save_file()
7. creo_export_pdf(output_file="C:/output/part.pdf")
```
### 获取 BOM
```
1. creo_connect()
2. creo_open_file(filename="top_assembly.asm")
3. creo_get_bom(top_level_only=false) → 递归获取完整 BOM
```
### 批量修改族表
```
1. creo_connect()
2. creo_open_file(filename="bolt.prt")
3. creo_get_family_header() → 获取列名
4. creo_list_family_instances() → 获取所有实例名
5. creo_set_family_cell(instance_name="M8x20", column_symbol="LENGTH", value="20")
6. creo_save_file()
```
### 执行 mapkey 宏
```
1. creo_connect()
2. creo_run_mapkey(mapkey="~ Activate `main_dlg` `OK`;")
```
---
## 常见自然语言 → 工具映射
| 用户说 | 调用工具 |
|--------|---------|
| "打开 part.prt" | `creo_open_file(filename="part.prt")` |
| "保存" / "存盘" | `creo_save_file()` |
| "把宽度改成 50" | `creo_set_dimension(name="d0", value=50)` 或 `creo_set_parameter(name="WIDTH", value="50")` |
| "导出 STEP" | `creo_export_step()` |
View on GitHub