leewsimpson/claudesk

Verifique o alojamento no Fusion 360 com verificações de interferência, folgas, vistas de corte e capturas de tela. Use após cada construção, ao verificar ajuste ou folga, ou quando solicitado a mostrar ou capturar a tela do modelo.

O que é claudesk?

Esta habilidade para o Claude Code automatiza a inspeção de modelos no Fusion 360, executando verificações de interferência, medição de folgas mínimas e geração de vistas e capturas de tela para garantir que o alojamento (enclosure) de um projeto eletrônico esteja correto. É especialmente útil após cada alteração de modelo, antes da impressão 3D, ou quando o usuário precisa de uma validação visual ou dimensional. A habilidade oferece funções no módulo `wslib` para listar corpos, medir interferências e distâncias mínimas, controlar visibilidade de componentes e criar seções e vistas personalizadas. Suporta o Fusion 360 (via scripts Python) e conta com um runner de verificação (`checks.run_checks()`) com timeout de 900 segundos, que deve ser executado separadamente do MCP para evitar timeouts. Inclui também orientações para lidar com geometrias complexas, como pinos de encaixe e planos de construção não ortogonais, e para adicionar novos requisitos de folga permanentemente no modelo.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/leewsimpson/claudesk/tree/HEAD/3d-model/.claude/skills/fusion-inspect

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Inspecionando o alojamento

Passo padrão (após cada construção)

  1. Verificações. Execute checks.run_checks() com o runner fusion-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 com python 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, pointContainment escaneando em passos de 0,01 mm travou o Fusion até que precisou ser encerrado. Escolha alguns pontos em vez de escanear, e coloque adsk.doEvents() em loops longos (wslib.clashes e 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 em checks.GAPS. A interferência projetada (os pinos prendendo os suportes) está listada em checks.EXPECTED e imprime como expected. Concluído quando imprime checks PASS. Em caso de CLASH/TIGHT, corrija a geometria e reconstrua. Afrouxe um limite de folga apenas com a concordância do usuário.
  2. 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 consulta screenshot do MCP com direction: "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)). Chame wslib.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 com target/ e a intenção da alteração.

Ferramentas em wslib

  • bodies_of(top_component_name): corpos do contexto raiz sob Enclosure, Refs ou a placa ESP32-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. O analyzeInterference do Fusion retorna silenciosamente None em 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 com body.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.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Habilidades Relacionadas