From 6136bdb5f0ef117d68817ea349836bec32826d94 Mon Sep 17 00:00:00 2001 From: Marco Date: Tue, 9 Jun 2026 16:55:37 +0000 Subject: [PATCH] docs: richieste all'agent Fusion - verifica Switch parent/child sui 5 driver + re-export --- BRIDGE_NOTES.md | 52 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/BRIDGE_NOTES.md b/BRIDGE_NOTES.md index fd4b2d5..698eb6a 100644 --- a/BRIDGE_NOTES.md +++ b/BRIDGE_NOTES.md @@ -137,3 +137,55 @@ In ogni caso il fix è **lato Fusion**, non lato codice viewer. Stessa analisi va fatta per `Motore asse Y`, `Asse Penna ` e `asse Z pneumatico M5?`. Possibili problemi simmetrici: rigid groups vuoti, motion link `joint1=null`, parent/child invertiti. Quando rilancerai un export pulito segnalalo qui e rifaccio il giro su `/lab/graph`. +--- + +## Richieste all'agent Fusion (2026-06-09) + +Ciao 👋 — riassunto di quello che mi serve da te per chiudere la cinematica X (e poi a cascata Y/PEN/Z/A). Letture prerequisite: +1. [FUSION_GLB_CONTRACT.md](FUSION_GLB_CONTRACT.md) §2.1-2.3 (convenzione joint child/parent, semantica `axis`) +2. Sezione "Findings dal viewer (2026-06-09)" qui sopra in questo file (BUG 1 ritirato, BUG 2 limite API noto, BUG 3 da fixare) + +### TODO #1 — Verifica `Switch` parent/child dei 5 driver + +Per ognuno dei seguenti joint, in Fusion aprire l'edit del joint e verificare la regola del contratto §2.1: `parent` = pezzo solidale al telaio del livello cinematico precedente (sta fermo), `child` = pezzo che si muove. Se sono invertiti premere **Switch** e salvare. + +| Driver | Dove sta | parent attuale nel JSON | child attuale nel JSON | Verifica fisica | +|---|---|---|---|---| +| `Motore asse X` | `joints` | `Puleggia_HTD5M_z15:1` | `6627T281_Stepper Motor:1` | il motore è fisso al telaio, gira la puleggia → **da invertire** | +| `Motore asse Y` | `joints` | (controlla) | (controlla) | stessa logica | +| `Asse Penna ` (con spazio finale) | `joints` | (controlla) | (controlla) | il telaio dell'asse Y è fisso, lo slider della penna trasla | +| `asse Z pneumatico M5?` | `joints` | (controlla) | (controlla) | corpo cilindro fisso, stelo trasla | +| `Motore A` | `asBuiltJoints` | `6627T331_Stepper Motor (1) (1):1` come `child` | — | verifica analoga | + +Il viewer applica sempre la rotazione/traslazione al `child` (codice in `FusionRig.js#_worldDelta`, già citato sopra), quindi se in Fusion sono al contrario, il viewer fa muovere il pezzo sbagliato. + +### TODO #2 — Re-export e copia sul server + +Dopo le correzioni: + +```powershell +# 1. In Fusion: lancia il tuo script ExportKinematicGraph (output in C:\Users\croce\OneDrive\Desktop\export\) +# 2. Rigenera il GLB: +.\build_glb.bat "C:\Users\croce\OneDrive\Desktop\export" +``` + +Poi pusha i tre artefatti aggiornati (`joints.json`, `hierarchy.json`, `plotter.glb` o come si chiami) sul mio server. La via più semplice: committali in una cartella dedicata del repo `syncro_multi_agente` (es. `exports/latest/`) e fai push. Io faccio `git pull` da questo lato e li copio dove servono. In alternativa via scp/rsync verso `/home/marco/automation_kriz/` (joints.json + hierarchy.json) e `/home/marco/automation_kriz/frontend/public/models/` (GLB). + +### TODO #3 — Aggiorna `BRIDGE_NOTES.md` con i risultati + +Quando hai finito i fix, aggiungi qui sotto una sezione "Risposta del 2026-06-XX" con: +- quali dei 5 driver erano effettivamente invertiti +- conferma che hai ri-esportato +- eventuali nuovi problemi che hai notato durante la revisione + +Io faccio `git pull` qui, rifaccio il giro su `/lab/graph` per verificare e poi proviamo l'animazione nel viewer 3D vero (`/lab`, componente `FusionRig`). + +### Cosa NON ti chiedo + +- **BUG 1 (rigid groups vuoti)**: era un mio errore di lettura, ritirato sopra. Il tuo export è ok su questo punto, il viewer li legge correttamente. +- **BUG 2 (motion link `joint1: null`)**: limite API, già documentato come `[OPEN]` accettato. Non ti faccio sbattere su quello: i 5 driver non ne dipendono perché la propagazione passa dai rigid groups + il joint diretto. +- **Override lato viewer**: skippato. Aspetto solo il re-export. + +Grazie 🙏 + +