diff --git a/OptionPanel/NestingTab/NestingTabVM.vb b/OptionPanel/NestingTab/NestingTabVM.vb index af279bb..53622d4 100644 --- a/OptionPanel/NestingTab/NestingTabVM.vb +++ b/OptionPanel/NestingTab/NestingTabVM.vb @@ -1744,6 +1744,8 @@ Public Class NestingTabVM ' Ciclo di cancellazione dei pezzi selezionati nId = EgtGetFirstSelectedObj() While nId <> GDB_ID.NULL + ' elimino eventuali ponticelli associati al pezzo + DeleteBridgeAssociated(nId) ' Recupero indice del successivo Dim nNextId = EgtGetNextSelectedObj() ' Se abilitata cancellazione in ogni caso o pezzo non da Csv @@ -1785,6 +1787,47 @@ Public Class NestingTabVM VeinMatching.Draw() End Sub + Private Sub DeleteBridgeAssociated(nMyId As Integer) + ' verifico se esistono dei ponticelli associati al pezzo indicato + ' recuoero il gruppo di lavorazione corrente + Dim nIdCurrMachGroup As Integer = EgtGetCurrMachGroup() + ' creo il gruppo per i ponticelli + Dim sNameGroup As String = NAME_BRIDGES + Dim nIdBridgesGroup As Integer = EgtGetFirstNameInGroup(nIdCurrMachGroup, sNameGroup) + If nIdBridgesGroup <> GDB_ID.NULL Then + ' carico la prima entità del gruppo BRIDGES + Dim nIdBridgeLine As Integer = GDB_ID.NULL + nIdBridgeLine = EgtGetFirstNameInGroup(nIdBridgesGroup, NAME_BRIDGESLINE) + ' ciclo su tutte le entità + While nIdBridgeLine <> GDB_ID.NULL + Dim nNextBridgeLine As Integer = GDB_ID.NULL + Dim nIdPart As Integer = GDB_ID.NULL + If EgtGetInfo(nIdBridgeLine, "PartStart", nIdPart) Then + If nIdPart = nMyId Then + nNextBridgeLine = EgtGetNext(nIdBridgeLine) + ' il ponticello deve essere eliminato + EgtErase(nIdBridgeLine) + nIdBridgeLine = nNextBridgeLine + ' riparto dall'inizio del ciclo + Continue While + End If + End If + If EgtGetInfo(nIdBridgeLine, "PartEnd", nIdPart) Then + If nIdPart = nMyId Then + nNextBridgeLine = EgtGetNext(nIdBridgeLine) + ' il ponticello deve essere eliminato + EgtErase(nIdBridgeLine) + nIdBridgeLine = nNextBridgeLine + ' riparto dall'inizio del ciclo + Continue While + End If + End If + ' il BridgeLine corrente non contiene riferimeti al pezzo da eliminare + nIdBridgeLine = EgtGetNext(nIdBridgeLine) + End While + End If + End Sub + #End Region ' RemovePartCommand #Region "SelectAllCommand" @@ -2156,7 +2199,8 @@ Public Class NestingTabVM ' Terminata esecuzione di drag m_bDragging = False ' se è stato eseguito il Drag allora cancello tutti i ponticelli - ResetAllBridges() + 'ResetAllBridges() + DeleteBridgeAssociated(nMoveId) End Sub Friend Sub OnMouseUpScene(sender As Object, e As System.Windows.Forms.MouseEventArgs)