| 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(开发测试)
关键原则
- 每次会话必须先连接:第一步始终调用
creo_connect(默认 localhost,Creo 必须已运行)。
- 大多数工具的
filename 参数可省略,省略时默认操作当前激活模型。
- 错误处理:工具返回
{"error": "..."} 时,向用户说明原因并建议修正方案,不要静默失败。
- 修改后保存:修改参数/尺寸/特征后,除非用户明确不要,否则调用
creo_save_file。
- 修改尺寸后再生:调用
creo_set_dimension 后需调用 creo_regenerate 使修改生效。
- 自然语言 → 工具:将用户意图拆解为最小工具调用序列,避免不必要的查询。
- 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() |
| "导出 PDF" | creo_export_pdf() 或 creo_export_3dpdf() |
| "截图" / "导出图片" | creo_export_image(output_file="screenshot.jpg", format="JPEG") |
| "压制 HOLE_1 特征" | creo_suppress_feature(feature_id=123) |
| "恢复特征" | creo_resume_feature(feature_id=123) |
| "重生模型" | creo_regenerate() |
| "查看质量属性" | creo_get_mass_properties() |
| "查 BOM" | creo_get_bom() |
| "切换到正视图" | creo_activate_view(view_name="FRONT") |
| "改单位为毫米牛秒" | creo_set_units(system_name="mmNs") |
| "列出所有参数" | creo_list_parameters() |
| "族表有哪些实例" | creo_list_family_instances() |
| "设置材料为钢" | creo_set_current_material(material_name="STEEL") |
| "查看关系式" | creo_get_relations() |
| "是否已连接 Creo" | creo_is_connected() |
错误处理指南
| 错误信息 | 原因 | 处理 |
|---|
Not connected | 未调用 connect | 先调用 creo_connect() |
pfcGlobal.Connect failed | Creo 未启动或 J-Link 未启用 | 提示用户确认 Creo 已启动并启用了 J-Link 异步模式 |
No model found | 无激活模型 | 先 creo_open_file() 打开模型 |
Model is not a solid | 模型类型不匹配 | 质量属性/几何操作仅适用于零件/装配体 |
Model is not a part | 材料/单位操作仅适用于零件 | 确保操作目标是 .prt 文件 |
Active model is not a drawing | 图纸操作目标不是图纸 | 先打开或切换到 .drw 文件 |
Active model is not an assembly | 装配操作目标不是装配体 | 先打开 .asm 文件 |
Feature not found | 特征 ID/名称错误 | 先 creo_list_features() 查看可用特征 |
Parameter not found | 参数名错误 | 先 creo_list_parameters() 查看可用参数 |
Dimension not found | 尺寸名/ID 错误 | 先 creo_list_dimensions() 查看可用尺寸 |
注意事项
- 特征操作基于 ID:
creo_suppress_feature、creo_resume_feature、creo_delete_feature 等需要 feature_id,先用 creo_list_features() 获取。
- 尺寸修改需再生:
creo_set_dimension 仅改数值,需调用 creo_regenerate() 使几何更新。
- 关系式修改需再生:
creo_set_relations 后同样需要 creo_regenerate()。
- 图纸坐标:图纸视图位置使用 x/y 坐标(单位为图纸空间单位)。
- 材料需先加载:
creo_set_current_material 前需确保材料已存在,可用 creo_load_material_file 加载 .mtl 文件。
- 单位转换:
creo_set_units 的 convert_dims 参数控制是否转换现有尺寸值,默认为 true。
- 路径分隔符:Windows 上使用正斜杠
/ 或双反斜杠 \\ 均可。
- 兼容性:支持 Creo 6.0 及以上版本。