fusion-studio 是做什么的?
您通过向 Fusion 的 MCP 服务器发送 Python 脚本进行建模。用户提供照片、测量值和喜好。您构建模型,查看它,然后修复它。
0. 连接(始终第一步)
python <skill>/scripts/fusion_mcp.py ping
打印 Fusion 版本和打开的文档。如果已加载 fusion_mcp_* MCP 工具,请使用它们(fusion_mcp_execute 配合 featureType: "script",fusion_mcp_read 用于截图和 API 文档,fusion_mcp_update 用于撤销)。否则,客户端从 shell 中执行相同操作。如果 ping 无法连接,请告知用户启动 Fusion 并启用其 MCP 服务器。不要猜测。
保护用户工作的规则:
- 切勿编辑已打开的文档。
fx_lib.py中的new_design()会打开一个新文档。仅使用--ro读取已打开的文档。 - 除非要求,切勿保存、关闭或覆盖。 导出内容放在项目文件夹中。
- 不要将
run()包裹在 try/except 中。抛出的错误是您了解失败原因的方式。 - 当命令对话框打开时,脚本无法修改。请要求用户关闭它,或使用
--ro进行检查。
1. 选择模式(选择器)
用一个问题询问,推荐打印模式,除非需求说明有其他要求。在回答此问题之前,不要开始建模。
| 模式 | 用途 | 构建方式 | 输出格式 |
|---|---|---|---|
| 打印 | 在用户打印机上打印的零件:支架、托架、外壳、钥匙扣 | 配合公差、壁面规则、方向,每个打印零件一个组件 | 每个零件的 3MF + STEP |
| 展示 | 展示但不打印的项目:用于众筹页面的亚克力钥匙扣、用于视频的分解视图 | 外观优先:分层零件、真实材料厚度、分解布局 | 透明背景的 PNG、OBJ、STEP |
| 服装 | 服装品牌样机:吊牌、标签、装饰件、纽扣、拉链头、包装、展示件 | 3D 装饰件上的平面艺术品、真实材料厚度 | PNG 视图、STEP、艺术品放置说明 |
详细信息:references/modes.md。对于打印模式,还要询问耗材(PLA、PETG、ABS、ASA、TPU、尼龙、PC 或含碳版本),并使用 Bambu Lab H2C,除非另有说明。耗材决定了配合度以及壁厚、悬垂角度和桥接长度的极限:references/materials.md、references/print-rules.md。
然后运行 python <skill>/scripts/new_project.py <名称> --mode print|showcase|apparel [--material PETG] 创建项目文件夹(project.json、build/、shots/、exports/)。
2. 需求说明和尺寸测量
询问您无法推测的信息:模型必须适配的物品的实际尺寸(罐子、手机、钥匙)、材料、壁面样式以及参考照片。说明哪些数字是假设的,并将其放入 project.json 的 assumptions 下。缺失的尺寸将成为一个命名参数,并带有明显的默认值,绝不能是埋藏的数字。
3. 先定义参数
所有可测量的内容都成为带有注释的用户参数,分为三组:测量值(罐子直径)、配合值(间隙、壁面)和派生值(基于其他值构建的表达式)。在打印模式下,首先调用 print_profile("PETG"):它会创建该材料的 fit_press、fit_close、fit_free、min_wall、min_feature 和 hole_comp 参数,配合度是直径方向的(两侧总计)。使用它们,而不是自行设想间隙。参数名称不少于 3 个字符并带下划线(can_dia):单个字母如 w、h、t 会与单位名称冲突,Fusion 会拒绝它们。草图尺寸和拉伸距离采用参数表达式,因此更改一个数字即可更改整个模型。在编写第一个脚本之前,请阅读 references/fusion-api.md。
4. 用小脚本分步构建
使用 --lib 预加载辅助库:
python <skill>/scripts/fusion_mcp.py run build/01_body.py --lib
python <skill>/scripts/fusion_mcp.py shot shots/01.png --dir iso-top-right
fx_lib.py 提供 new_design, param, component, sketch, rect, circle, extrude, box, fillet, chamfer, edges_where, appearance, view, health, report, export,对于打印模式(fx_print.py)还提供 print_profile, print_check, fit_coupon。每个物理零件对应一个组件,命名为 <零件名称> - PRINT 或 - SHOWCASE。圆角最后添加。在继续之前查看每个截图。 如果图片和数字不一致,请相信图片并找出错误。
未知 API?fusion_mcp.py api "ExtrudeFeatures" --filter adsk.fusion 返回实时文档。优先使用它,而不是依赖记忆。
5. 完成前进行验证
health()报告 0 个问题。- 参数化测试: 更改主要测量参数,再次检查
health()和report(),然后将其恢复。在此步骤中崩溃的模型尚未完成。 - 至少从等轴测、正面以及一个截面或底面视图截取截图,并由您查看。
- 打印模式:运行
print_check("PETG")(检查薄壁和悬垂、长桥接、小孔或水平孔、床面贴合度),然后说明方向、支撑和首层边缘。修复每个 WARN 或说明为何可以接受。对于任何重要的配合,请先运行fit_coupon()并打印:它只需几分钟,即可为该耗材和打印机设定实际间隙。 - 打印模式:导出 3MF 并运行
python <skill>/scripts/slicer_check.py exports/part.3mf --material PETG。它会在 H2C 配置文件上无头驱动 OrcaSlicer,并报告模型是否水密、打印时间、耗材、是否需要支撑以及您的方向是否为切片器的最佳方向。将结果反馈回模型。GUI 和可选的 orcaslicer-mcp 服务器是替代方案:references/slicer.md。 - 说明尚未验证的内容。看起来正确的模型尚未经过测试打印。命名第一个测试打印件以及打印后需要调整的参数。
6. 导出与交付
打印:为每个零件导出 export(body, path, "3mf"),外加 step。展示:每个角度的透明 PNG(shot 在要求时使用透明背景)、用于视频工具的 OBJ。服装:PNG 视图和 STEP。然后向用户提供:文件、参数列表、假设、第一个要运行的测试。
该技能不做什么
- 它不会向打印机发送作业,也不会选择温度和速度。它仅通过切片来检查模型(支撑需求、时间、方向),并将支撑选择作为起点说明。
- 它不能替代测试打印。间隙是针对 0.4 毫米喷嘴的起始值,并非保证。
- 除非用户分享照片,否则它看不到用户的照片。要求提供尺寸,而不是通过图片估算。
- 它不会对布料建模。服装模式涵盖装饰件、标签、吊牌、五金件和包装。