Inspección del alojamiento
Pasada estándar (después de cada construcción)
- Comprobaciones. Ejecuta
checks.run_checks()con el ejecutorfusion-build. Toma entre 3 y 8 minutos con el entramado fino v2, lo que supera el tiempo de espera de la herramienta MCP. Por lo tanto, ejecuta la construcción sola a través del MCP y luego ejecuta las comprobaciones como un archivo de ejecutor separado conpython scripts/fmcp.py script <file>como una tarea Bash en segundo plano (tiene un tiempo de espera de 900 s). Si llamas al MCP mientras las comprobaciones aún se están ejecutando, simplemente se agota el tiempo de espera, así que espera a que terminen. Los scripts se ejecutan en el hilo de la interfaz de usuario de Fusion. Una llamada con tiempo de espera agotado continúa ejecutándose y las llamadas posteriores se ponen en cola detrás de ella. El 2026-10-04,pointContainmentescaneó en pasos de 0.01 mm y colgó Fusion hasta que hubo que cerrarlo. Sondea algunos puntos elegidos en lugar de escanear, y ponadsk.doEvents()en bucles largos (wslib.clashesy el corte del entramado ya lo hacen). Comprueba las interferencias entre el alojamiento y cada cuerpo de la placa más los fantasmas, la carcasa contra la tapa, el volumen congelado de la carcasa impresa y luego los espacios con nombre enchecks.GAPS. Las interferencias diseñadas (los pasadores que sujetan los separadores) están listadas enchecks.EXPECTEDy se imprimen comoexpected. Termina cuando imprimechecks PASS. En caso deCLASH/TIGHT, corrige la geometría y reconstruye. Afloja un límite de espacio solo cuando el usuario esté de acuerdo. - Observar. Toma al menos una vista exterior y una sección:
- Exterior:
wslib.view(eye=(-90, 160, 60), target=(0, -20, 0), up=(0, 0, 1)), luego la consultascreenshotdel MCP condirection: "current", 1000×900. - Sección:
wslib.section('XY')(corta en z=0 a través del conector USB) o'YZ', luegowslib.view(eye=(0, -20, 300), target=(0, -20, 0)). Llama awslib.clear_sections()después. - Trasera/tapa:
wslib.view(eye=(80, -200, 50), target=(0, -20, 0), up=(0, 0, 1)). Termina cuando hayas comparado la captura de pantalla contarget/y la intención del cambio.
- Exterior:
Herramientas en wslib
bodies_of(top_component_name): cuerpos del contexto raíz bajoEnclosure,Refso la placaESP32-S3-TOUCH-AMOLED-1_75_ASM.clashes(A, B): volúmenes de superposición en mm³. Utiliza un prefiltro de caja delimitadora (bbox) más una intersección temporal BRep. La funciónanalyzeInterferencede Fusion devuelve silenciosamenteNoneen conjuntos de cuerpos grandes, por lo que no se debe usar.min_distance(a, b): espacio en mm.bbox_mm(entity).set_visible('Refs', False)oculta los fantasmas para capturas de pantalla limpias. Ocúltalos siempre antes de juzgar si una abertura está despejada. Fusion dibuja los fantasmas con un 40% de opacidad sobre las caras opacas, y en perspectiva un fantasma situado en un agujero (por ejemplo,UsbBarrelGhost) se ve desplazado y como si bloqueara el orificio. Para verificar un agujero, mira directamente a lo largo de su eje con una cámara ortográfica, o prueba puntos conbody.pointContainment.
Para inspeccionar una característica que no está en un plano de origen (por ejemplo, las patas de enganche a 45°), agrega un plano de construcción temporal
con constructionPlanes.createInput().setByAngle(root.yConstructionAxis, '<angle> deg', root.xYConstructionPlane),
secciona en él, acerca con camera.setExtents(w_cm, h_cm), luego elimina el plano y la sección.
Para agregar un requisito de espacio libre permanente (una nueva pieza comprada, una ruta de cable), agrega un fantasma en enclosure.build_refs
y una fila en checks.GAPS, para que cada construcción posterior lo verifique.