CommunityProgramación y desarrollogithub.com

leewsimpson/claudesk

Verificar el alojamiento en Fusion 360 con comprobaciones de interferencias, espacios libres, vistas en sección y capturas de pantalla. Utilizar después de cada construcción, al comprobar ajustes o espacios libres, o cuando se solicite mostrar o capturar el modelo.

¿Qué es claudesk?

Esta habilidad está diseñada para que un agente de IA, como Claude Code, inspeccione y verifique el diseño de un alojamiento (enclosure) en Fusion 360 después de cada modificación. Su propósito principal es detectar interferencias, verificar espacios libres (gaps) y tomar capturas de pantalla de vistas exteriores y en sección. La habilidad automatiza la ejecución de scripts de Python en Fusion 360 para comprobar colisiones entre cuerpos (como la carcasa, las placas electrónicas, los elementos fantasma y las piezas impresas), utilizando una herramienta personalizada (`wslib`) que ofrece funciones de análisis geométrico robustas, evitando los límites y fallos de la API estándar de Fusion. Además, guía al agente para modificar el flujo de trabajo de MCP (Model Context Protocol) a fin de evitar timeouts, y proporciona instrucciones concretas para posicionar la cámara, crear secciones y ocultar elementos fantasma que puedan confundir la inspección visual. También incluye documentación sobre cómo añadir nuevos requisitos de espacio libre mediante fantasmas y filas en la tabla de gaps.

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

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Inspección del alojamiento

Pasada estándar (después de cada construcción)

  1. Comprobaciones. Ejecuta checks.run_checks() con el ejecutor fusion-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 con python 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, pointContainment escaneó en pasos de 0.01 mm y colgó Fusion hasta que hubo que cerrarlo. Sondea algunos puntos elegidos en lugar de escanear, y pon adsk.doEvents() en bucles largos (wslib.clashes y 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 en checks.GAPS. Las interferencias diseñadas (los pasadores que sujetan los separadores) están listadas en checks.EXPECTED y se imprimen como expected. Termina cuando imprime checks PASS. En caso de CLASH/TIGHT, corrige la geometría y reconstruye. Afloja un límite de espacio solo cuando el usuario esté de acuerdo.
  2. 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 consulta screenshot del MCP con direction: "current", 1000×900.
    • Sección: wslib.section('XY') (corta en z=0 a través del conector USB) o 'YZ', luego wslib.view(eye=(0, -20, 300), target=(0, -20, 0)). Llama a wslib.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 con target/ y la intención del cambio.

Herramientas en wslib

  • bodies_of(top_component_name): cuerpos del contexto raíz bajo Enclosure, Refs o la placa ESP32-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ón analyzeInterference de Fusion devuelve silenciosamente None en 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 con body.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.

Individual skills in this repo

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

Skills relacionados