Inspektion des Gehäuses
Standarddurchlauf (nach jedem Bau)
- Prüfungen. Führe
checks.run_checks()mit dem Runnerfusion-buildaus. Dies dauert 3–8 Minuten mit dem v2-Feinstgitter, länger als das Timeout des MCP-Tools. Führe daher den Bau allein über den MCP aus und führe die Prüfungen dann als separate Runner-Datei mitpython scripts/fmcp.py script <datei>als Hintergrund-Bash-Task aus (es hat ein 900 s Timeout). Wenn du den MCP aufrufst, während die Prüfungen noch laufen, tritt ein Timeout auf. Warte also, bis sie abgeschlossen sind. Skripte werden im UI-Thread von Fusion ausgeführt. Ein aufgerufener Aufruf mit Timeout bleibt aktiv, und spätere Aufrufe werden dahinter in die Warteschlange gestellt. Am 2026-10-04 hing Fusion beipointContainment-Scans in 0,01-mm-Schritten fest, bis es beendet werden musste. Scanne ein paar ausgewählte Punkte anstelle eines Rasterscans und fügeadsk.doEvents()in langen Schleifen ein (inwslib.clashesund dem Gitterschnitt ist dies bereits der Fall). Es wird auf Kollisionen zwischen dem Gehäuse und jedem Platinenkörper sowie den Geistern, Schale vs. Deckel, dem gefrorenen, gedruckten Schalenvolumen und dann den benannten Abständen inchecks.GAPSgeprüft. Konstruktionsbedingte Überschneidungen (die Stifte, die in die Abstandshalter greifen) sind inchecks.EXPECTEDaufgeführt und werden alsexpectedausgegeben. Abschluss, wennchecks PASSausgegeben wird. BeiCLASH/TIGHTdie Geometrie korrigieren und neu bauen. Lockere eine Abstandsgrenze nur, wenn der Benutzer zustimmt. - Ansehen. Nimm mindestens eine Außenansicht und einen Schnitt auf:
- Außenansicht:
wslib.view(eye=(-90, 160, 60), target=(0, -20, 0), up=(0, 0, 1)), dann die MCP-Abfragescreenshotmitdirection: "current", 1000×900. - Schnitt:
wslib.section('XY')(schneidet bei z=0 durch den USB-Stecker) oder'YZ', dannwslib.view(eye=(0, -20, 300), target=(0, -20, 0)). Führe danachwslib.clear_sections()aus. - Rückseite/Deckel:
wslib.view(eye=(80, -200, 50), target=(0, -20, 0), up=(0, 0, 1)). Abschluss, wenn du den Screenshot mittarget/und der Absicht der Änderung verglichen hast.
- Außenansicht:
Werkzeuge in wslib
bodies_of(top_component_name): Körper im Stammkontext unterEnclosure,Refsoder der PlatineESP32-S3-TOUCH-AMOLED-1_75_ASM.clashes(A, B): Überlappungsvolumen in mm³. Verwendet einen Bounding-Box-Vorfilter plus temporäre BRep-Überschneidung. FusionsanalyzeInterferencegibt bei großen Körpergruppen stillschweigendNonezurück – daher nicht verwenden.min_distance(a, b): Abstand in mm.bbox_mm(entity).set_visible('Refs', False): Blendet die Geister für saubere Screenshots aus. Blende sie immer aus, bevor du beurteilst, ob eine Öffnung frei ist. Fusion zeichnet die Geister mit 40% Deckkraft über undurchsichtige Flächen, und in der Perspektive sieht ein Geist, der in einer Bohrung sitzt (z. B.UsbBarrelGhost), verschoben aus, als ob er das Loch blockieren würde. Um eine Bohrung zu prüfen, schaue mit einer orthografischen Kamera direkt entlang ihrer Achse oder teste Punkte mitbody.pointContainment.
Um ein Merkmal zu inspizieren, das nicht auf einer Ursprungsebene liegt (z. B. die Schnappfinger bei 45°), füge mit constructionPlanes.createInput().setByAngle(root.yConstructionAxis, '<winkel> deg', root.xYConstructionPlane) eine temporäre Konstruktionsebene hinzu, führe darauf einen Schnitt durch, zoome mit camera.setExtents(w_cm, h_cm) und lösche dann die Ebene und den Schnitt.
Um eine dauerhafte Abstandsanforderung hinzuzufügen (ein neues gekauftes Teil, ein Kabelweg), füge einen Geist in enclosure.build_refs und eine Zeile in checks.GAPS hinzu, sodass jeder spätere Bau diese überprüft.