Merge intelligente
Se nel disegno esistono già dei link, il software non li ricrea da zero ma esegue un merge intelligente. Lo scopo è preservare l’identità dei link esistenti dove possibile: se un tiro non è cambiato, il link viene mantenuto con la stessa chiave e gli stessi dati di assegnazione (codice, catena, ecc.).
Il merge funziona così:
Fase 1: Preparazione
- Legge i rami attuali dal disegno (dagli attributi TLLINK delle parti).
- Ricalcola i nuovi rami reali dalle connessioni fisiche.
- Pulisce tutti gli attributi TLLINK (verranno riscritti durante il merge anche se sono uguali).
Fase 2: Confronto dei link esistenti
Per ogni link già presente nel disegno, il software verifica:
- Ramo assente o parti mancanti: se le parti del ramo non esistono più, o sono meno del previsto, oppure sono tutte spente, il link viene eliminato.
- Corrispondenza esatta: se le parti del link esistente corrispondono esattamente a un ramo nuovo calcolato (stesse parti, stessa composizione), il link viene mantenuto. Il ramo nuovo viene marcato come “consumato” e gli attributi del link vengono ricalcolati (le dimensioni delle parti potrebbero essere cambiate).
- Corrispondenza parziale: se c’è una sovrapposizione parziale fra il vecchio link e un ramo nuovo (ad esempio un pezzo è stato aggiunto o tolto dal tiro), il vecchio link viene eliminato. Al suo posto verrà creato il nuovo ramo nella fase successiva.
- Nessuna corrispondenza: se il link esistente non ha alcuna sovrapposizione con i rami nuovi, viene conservato così com’è. Questo gestisce il caso di link storici creati manualmente o in situazioni particolari.
Fase 3: Creazione dei nuovi link
I rami nuovi che non sono stati “consumati” da un match esatto vengono creati come nuovi link, con un indice progressivo che parte dal massimo già esistente per evitare nomi duplicati.
Riepilogo del merge
Situazione |
Azione |
Risultato |
Ramo assente o vuoto |
Elimina il link |
Link rimosso |
Parti tutte spente |
Elimina il link |
Coerenza con visibilità |
Parti mancanti |
Elimina il link |
Struttura compromessa |
Match esatto |
Mantieni + ricalcola attributi |
Link preservato |
Match parziale |
Elimina vecchio |
Nuovo link verrà creato |
Nessun match |
Mantieni invariato |
Link storico conservato |