leewsimpson/claudesk

Vérifiez le boîtier dans Fusion 360 avec des contrôles d'interférence, des jeux de dégagement, des vues en coupe et des captures d'écran. À utiliser après chaque construction, lors de la vérification de l'ajustement ou du dégagement, ou lorsqu'on vous demande de montrer ou de capturer le modèle.

Qu'est-ce que claudesk ?

Cette compétence est conçue pour les agents d'IA travaillant avec Fusion 360 afin d'inspecter et de valider la conception d'un boîtier d'enceinte. Elle guide l'agent à travers un processus standardisé de vérification des interférences, de mesure des jeux de dégagement et de capture de vues extérieures et en coupe. La compétence exploite le runner `fusion-build` pour les contrôles automatisés, exécuté via un script Bash en arrière-plan pour éviter les dépassements de délai d'attente MCP, et utilise les outils `wslib` pour la détection des collisions, les mesures de distance et la gestion de la visibilité. Elle s'appuie sur l'API `checks` avec des interférences attendues et des jeux de dégagement nommés, et fournit des instructions précises pour la configuration des caméras, la mise en place de sections temporaires et l'ajout de nouvelles exigences de dégagement. Cette compétence est utile pour les tâches de CAO itératives où l'ajustement mécanique et l'intégrité de l'assemblage sont critiques, et prend en charge les plateformes utilisant l'API MCP de Fusion 360 et les scripts Python.

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

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Inspection du boîtier

Passage standard (après chaque construction)

  1. Contrôles. Exécutez checks.run_checks() avec le runner fusion-build. Cela prend 3 à 8 minutes avec le treillis fin v2, ce qui dépasse le délai d'attente de l'outil MCP. Exécutez donc la construction seule via le MCP, puis exécutez les contrôles comme un fichier runner séparé avec python scripts/fmcp.py script <file> en tant que tâche Bash d'arrière-plan (avec un délai de 900 s). Si vous appelez le MCP alors que les contrôles sont encore en cours, il y a juste un dépassement de délai, alors attendez qu'ils se terminent. Les scripts s'exécutent sur le thread UI de Fusion. Un appel qui a expiré continue de s'exécuter et les appels ultérieurs s'empilent derrière lui. Le 2026-10-04, pointContainment analysant par pas de 0,01 mm a bloqué Fusion jusqu'à ce qu'il doive être tué. Sondez quelques points choisis au lieu d'analyser, et mettez adsk.doEvents() dans les boucles longues (wslib.clashes et la découpe du treillis le font déjà). Cela vérifie les interférences entre l'enceinte et chaque corps de carte plus les fantômes, la coque vs le capuchon, le volume gelé de la coque imprimée, puis les jeux nommés dans checks.GAPS. Les interférences conçues (les broches saisissant les entretoises) sont listées dans checks.EXPECTED et s'affichent comme expected. Terminé lorsqu'il affiche checks PASS. En cas de CLASH/TIGHT, corrigez la géométrie et reconstruisez. Relâchez une limite de jeu uniquement lorsque l'utilisateur est d'accord.
  2. Regarder. Prenez au moins une vue extérieure et une coupe :
    • Extérieur : wslib.view(eye=(-90, 160, 60), target=(0, -20, 0), up=(0, 0, 1)), puis la requête de screenshot MCP avec direction: "current", 1000×900.
    • Coupe : wslib.section('XY') (coupe à z=0 à travers la fiche USB) ou 'YZ', puis wslib.view(eye=(0, -20, 300), target=(0, -20, 0)). Appelez wslib.clear_sections() ensuite.
    • Arrière/capuchon : wslib.view(eye=(80, -200, 50), target=(0, -20, 0), up=(0, 0, 1)). Terminé lorsque vous avez comparé la capture d'écran avec target/ et l'intention du changement.

Outils dans wslib

  • bodies_of(top_component_name) : corps du contexte racine sous Enclosure, Refs ou la carte ESP32-S3-TOUCH-AMOLED-1_75_ASM.
  • clashes(A, B) : volumes de chevauchement en mm³. Utilise un préfiltre par boîte englobante plus une intersection BRep temporaire. La fonction analyzeInterference de Fusion renvoie silencieusement None sur de grands ensembles de corps, alors ne l'utilisez pas.
  • min_distance(a, b) : jeu en mm. bbox_mm(entity).
  • set_visible('Refs', False) cache les fantômes pour des captures d'écran propres. Cachez-les toujours avant de juger si une ouverture est dégagée. Fusion dessine les fantômes à 40 % d'opacité sur les faces opaques, et en perspective, un fantôme situé dans un alésage (par exemple UsbBarrelGhost) semble décalé et comme s'il bloquait le trou. Pour vérifier un alésage, regardez droit le long de son axe avec une caméra orthographique, ou testez des points avec body.pointContainment.

Pour inspecter une fonctionnalité qui n'est pas sur un plan d'origine (par exemple les doigts d'encliquetage à 45°), ajoutez un plan de construction temporaire avec constructionPlanes.createInput().setByAngle(root.yConstructionAxis, '<angle> deg', root.xYConstructionPlane), coupez dessus, zoomez avec camera.setExtents(w_cm, h_cm), puis supprimez le plan et la coupe.

Pour ajouter une exigence de dégagement permanent (une nouvelle pièce achetée, un chemin de câble), ajoutez un fantôme dans enclosure.build_refs et une ligne dans checks.GAPS, afin que chaque construction ultérieure la vérifie.

Individual skills in this repo

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

Skills associés