Inspecionando o alojamento
Passo padrão (após cada construção)
- Verificações. Execute
checks.run_checks()com o runnerfusion-build. Leva de 3 a 8 minutos com a treliça fina v2, o que é maior que o timeout da ferramenta MCP. Portanto, execute a construção sozinha através do MCP e depois execute as verificações como um arquivo de runner separado compython scripts/fmcp.py script <file>como uma tarefa Bash em segundo plano (ela tem um timeout de 900 s). Se você chamar o MCP enquanto as verificações ainda estão em execução, ele simplesmente atinge o timeout, então aguarde a conclusão. Os scripts são executados na thread da interface do Fusion. Uma chamada que atingiu o timeout continua sendo executada e chamadas posteriores enfileiram atrás dela. Em 04/10/2026,pointContainmentescaneando em passos de 0,01 mm travou o Fusion até que precisou ser encerrado. Escolha alguns pontos em vez de escanear, e coloqueadsk.doEvents()em loops longos (wslib.clashese o corte da treliça já o fazem). Ele verifica interferências entre o Alojamento e cada corpo da placa mais os fantasmas, Tampa vs Carcaça, o volume da carcaça impressa congelada e, em seguida, as folgas nomeadas emchecks.GAPS. A interferência projetada (os pinos prendendo os suportes) está listada emchecks.EXPECTEDe imprime comoexpected. Concluído quando imprimechecks PASS. Em caso deCLASH/TIGHT, corrija a geometria e reconstrua. Afrouxe um limite de folga apenas com a concordância do usuário. - Observar. Tire pelo menos uma vista externa e um corte:
- Externa:
wslib.view(eye=(-90, 160, 60), target=(0, -20, 0), up=(0, 0, 1)), em seguida, a consultascreenshotdo MCP comdirection: "current", 1000×900. - Corte:
wslib.section('XY')(corta em z=0 através do plugue USB) ou'YZ', em seguida,wslib.view(eye=(0, -20, 300), target=(0, -20, 0)). Chamewslib.clear_sections()depois. - Traseira/tampa:
wslib.view(eye=(80, -200, 50), target=(0, -20, 0), up=(0, 0, 1)). Concluído quando você comparou a captura de tela comtarget/e a intenção da alteração.
- Externa:
Ferramentas em wslib
bodies_of(top_component_name): corpos do contexto raiz sobEnclosure,Refsou a placaESP32-S3-TOUCH-AMOLED-1_75_ASM.clashes(A, B): volumes de sobreposição em mm³. Usa um pré-filtro de bbox mais interseção de BRep temporária. OanalyzeInterferencedo Fusion retorna silenciosamenteNoneem conjuntos grandes de corpos, portanto não o use.min_distance(a, b): folga em mm.bbox_mm(entity).set_visible('Refs', False)esconde os fantasmas para capturas de tela limpas. Sempre esconda-os antes de julgar se uma abertura está desobstruída. O Fusion desenha os fantasmas com opacidade de 40% sobre faces opacas, e em perspectiva um fantasma em um furo (por exemplo,UsbBarrelGhost) parece deslocado e como se estivesse bloqueando o buraco. Para verificar um furo, olhe diretamente ao longo de seu eixo com uma câmera ortográfica ou teste pontos combody.pointContainment.
Para inspecionar uma característica que não está em um plano de origem (por exemplo, os dedos de encaixe a 45°), adicione um plano de construção temporário
com constructionPlanes.createInput().setByAngle(root.yConstructionAxis, '<angle> deg', root.xYConstructionPlane),
faça o corte nele, aplique zoom com camera.setExtents(w_cm, h_cm), em seguida, exclua o plano e o corte.
Para adicionar um requisito de folga permanente (uma nova peça comprada, um caminho de cabo), adicione um fantasma em enclosure.build_refs
e uma linha em checks.GAPS, para que todas as construções futuras o verifiquem.