Fusion에서 인클로저 빌드
scripts/ 디렉토리의 스크립트가 진정한 소스입니다. Fusion 문서는 이 스크립트를 일회성으로 렌더링한 결과물입니다. 스크립트를 변경한 후 재빌드하세요. Fusion GUI에서 수동 편집한 내용은 다음 빌드 시 사라집니다.
단계
- Fusion 준비. 아래 러너를 빈 본문으로 실행합니다. 활성 디자인이 없으면 새로 만들고
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에 있습니다. - 재빌드 러너로 실행합니다.
build(overrides)는 빠른 실험을 위해 딕셔너리를 받습니다(예:{'lattice': False}). 격자 없이 재빌드하면 약 1초, v2 미세 니트 격자 포함 시 약 12초가 소요됩니다. 추적 없이built in …메시지가 출력되면 완료입니다. - 검증
fusion-inspect스킬을 사용합니다. 검사 항목이PASS로 출력되고 스크린샷을 확인했을 때만 빌드가 완료된 것입니다.
러너 (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로 재연결을 요청하거나, 러너를 파일로 저장하고 python scripts/fmcp.py script runner.py를 실행하여 엔드포인트를 직접 호출하세요. 스크린샷은 python scripts/fmcp.py shot out.png [direction]으로 가져옵니다.
규칙
- mm 단위로 작업하며,
wslib(P(),box(),cyl_y(), …)를 사용합니다. raw API 호출만wslib.MM을 통해 Fusion의 cm 단위를 사용합니다. - 임시 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 파일 측정 결과에서 얻습니다. PDF에서 추측하지 말고 스크립트로 측정하여
CLAUDE.md에 기록하세요. - 예외는 전파되도록 두세요. 추적(traceback)이 MCP가 반환하는 유일한 실패 신호입니다.