Communitygithub.com

shadowtor/fusion-studio

与用户在 Autodesk Fusion 中通过本地 MCP 服务器(http://127.0.0.1:27182/mcp)共同设计 3D 模型。自动询问项目类型(3D 打印件、展示品或服装品牌样机),然后根据测量数据构建参数化模型,检查、截图并导出。

fusion-studio 是什么?

这是一个针对 Autodesk Fusion 的 AI 代理技能,通过 Fusion 的 MCP 服务器(http://127.0.0.1:27182/mcp)发送 Python 脚本,实现与用户的协作式 3D 建模。该技能支持三种模式:**打印模式**(针对 3D 打印零件,如支架、外壳、钥匙扣,使用 Bambu Lab H2C 默认打印机,适配 PLA/PETG/ASA 等耗材)、**展示模式**(用于视频或众筹页面的非打印项目,如亚克力钥匙扣、分解视图)和**服装模式**(用于服装品牌样机,如吊牌、标签、纽扣、拉链等)。工作流程包括:连接 MCP 服务器、选择模式、收集尺寸和参考照片、定义参数化模型、分小脚本构建、截图验证、切片检查(可选)、最终导出为 3MF、STEP、PNG 等格式。该技能遵循严格的规则以保护用户工作:不编辑已打开的文档、不自动保存覆盖、每次建模前创建新设计。它利用 `fx_lib.py` 和 `fx_print.py` 库提供参数管理、草图、特征创建、外观、检查、导出等 API,并通过 `fusion_mcp.py` 脚本执行操作。用户提供照片、测量值和偏好,AI 负责构建模型、检查并修复问题,最终交付参数化文件列表和测试打印建议。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/shadowtor/fusion-studio/tree/HEAD/skills/fusion-studio

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

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. 完成前进行验证

  1. health() 报告 0 个问题。
  2. 参数化测试: 更改主要测量参数,再次检查 health() 和 report(),然后将其恢复。在此步骤中崩溃的模型尚未完成。
  3. 至少从等轴测、正面以及一个截面或底面视图截取截图,并由您查看。
  4. 打印模式:运行 print_check("PETG")(检查薄壁和悬垂、长桥接、小孔或水平孔、床面贴合度),然后说明方向、支撑和首层边缘。修复每个 WARN 或说明为何可以接受。对于任何重要的配合,请先运行 fit_coupon() 并打印:它只需几分钟,即可为该耗材和打印机设定实际间隙。
  5. 打印模式:导出 3MF 并运行 python <skill>/scripts/slicer_check.py exports/part.3mf --material PETG。它会在 H2C 配置文件上无头驱动 OrcaSlicer,并报告模型是否水密、打印时间、耗材、是否需要支撑以及您的方向是否为切片器的最佳方向。将结果反馈回模型。GUI 和可选的 orcaslicer-mcp 服务器是替代方案:references/slicer.md。
  6. 说明尚未验证的内容。看起来正确的模型尚未经过测试打印。命名第一个测试打印件以及打印后需要调整的参数。

6. 导出与交付

打印:为每个零件导出 export(body, path, "3mf"),外加 step。展示:每个角度的透明 PNG(shot 在要求时使用透明背景)、用于视频工具的 OBJ。服装:PNG 视图和 STEP。然后向用户提供:文件、参数列表、假设、第一个要运行的测试。

该技能不做什么

  • 它不会向打印机发送作业,也不会选择温度和速度。它仅通过切片来检查模型(支撑需求、时间、方向),并将支撑选择作为起点说明。
  • 它不能替代测试打印。间隙是针对 0.4 毫米喷嘴的起始值,并非保证。
  • 除非用户分享照片,否则它看不到用户的照片。要求提供尺寸,而不是通过图片估算。
  • 它不会对布料建模。服装模式涵盖装饰件、标签、吊牌、五金件和包装。

相关技能