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