在 Fusion 中建置外殼
scripts/ 目錄中的指令碼是真實來源。Fusion 文件只是它們的一次性渲染。請修改指令碼並重建。在 Fusion GUI 中手動編輯的內容在下次建置時會遺失。
步驟
- 準備 Fusion。 使用空內容執行下方 runner。如果沒有啟用的設計,請建立一個,然後將
boardmodel/ESP32-S3-Touch-AMOLED-1_75.stp匯入根節點(使用importManager.createSTEPImportOptions+importToTarget)。當根節點出現ESP32-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 …且沒有回溯追蹤時即完成。 - 驗證 使用
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 [方向]。
慣例
- 透過
wslib(P()、box()、cyl_y()等)以公釐為單位工作。只有原始 API 呼叫才會透過wslib.MM看到 Fusion 的公分。 - 使用暫存 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 中猜測。 - 讓例外狀況傳播出去。回溯追蹤是 MCP 傳回的唯一失敗信號。