在 Fusion 中构建外壳
scripts/ 中的脚本是真实来源。Fusion 文档是它们的可丢弃渲染结果。修改脚本后重建。在 Fusion GUI 中进行的手动编辑在下一次构建时会丢失。
步骤
- Fusion 就绪。 使用空参数运行下面的 runner。如果没有活动设计,则创建一个设计,并将
boardmodel/ESP32-S3-Touch-AMOLED-1_75.stp导入到根节点,使用单位标识(importManager.createSTEPImportOptions+importToTarget)。当根节点中出现了 occurrenceESP32-S3-TOUCH-AMOLED-1_75_ASM:1时即就绪。 - 编辑。 参数位于
scripts/enclosure.py顶部的P字典中。由此派生的值放在derived()中。几何体放在build_shell/build_cap/build_refs中。辅助函数放在scripts/wslib.py中。 - 使用 runner 重建。
build(overrides)接受一个字典用于快速实验,例如{'lattice': False}(无格子的重建约需 1 秒;使用 v2 精细编织格子约需 12 秒)。当它打印出built in …且没有 traceback 时即完成。 - 验证,使用
fusion-inspect技能。只有当检查打印出PASS并且您已经查看了截图时,构建才算完成。
Runner(粘贴为 MCP script)
import sys, importlib
REPO = r'C:\Github\claudesk\3d-model\scripts' # 您的克隆中 3d-model/scripts 的绝对路径
if REPO not in sys.path: sys.path.insert(0, REPO)
import wslib, enclosure, checks
for m in (wslib, enclosure, checks): importlib.reload(m)
def run(_context: str):
enclosure.build() # 或 enclosure.build({'sphere_d': 90})
Fusion 的 Python 会在运行之间缓存模块。始终保留 reload 行,否则编辑不会生效。
如果 mcp__fusion__* 工具缺失
当 MCP 服务器在会话启动时连接失败(例如 Fusion 尚未运行),请检查 Fusion 是否已启动(netstat -ano | grep 27182 显示 LISTENING)。然后让用户用 /mcp 重新连接,或者直接调用端点:将 runner 保存到文件并运行 python scripts/fmcp.py script runner.py。
要截取屏幕截图,请运行 python scripts/fmcp.py shot out.png [direction]。
约定
- 通过
wslib(P()、box()、cyl_y()等)以 mm 为单位工作。只有原始的 API 调用会看到 Fusion 的 cm,通过wslib.MM转换。 - 使用临时 B-Rep 建模(
wslib.tbm()和union/cut/intersect辅助函数),然后使用add_bodies提交。这样速度快,不需要时间轴,并且在参数化和直接设计中都能工作。 - 每次构建都会删除并重新创建顶层组件
Enclosure(Shell、Cap)和Refs。Refs包含我们尚未有 CAD 的零件的鬼影体(PlugGhost、SpeakerGhost)。它们仅用于干涉检查,从不导出。当新的外购零件对装配有影响时,请为其添加鬼影体。 - 框架:导入的板级 STEP。+Y 是观察方向,玻璃前面板位于 y=2.78,USB-C 口朝向 -X,桌面位于 -Z 下方,由
base_tilt(30°)后倾,使屏幕朝上面向用户(derived()['down'])。 - 电路板数据来自测量 STEP。使用脚本测量并将结果记录在
CLAUDE.md中,而不是从 PDF 猜测。 - 让异常传播。traceback 是 MCP 返回的唯一失败信号。