Inizio gestione cambio tavola
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
Imports EgtWPFLib5
|
||||
Imports EgtUILib
|
||||
Imports OmagOFFICE.ChangeTableVM
|
||||
|
||||
Public Class NestingTabVM
|
||||
Inherits VMBase
|
||||
@@ -2204,6 +2205,8 @@ Public Class NestingTabVM
|
||||
While nId <> GDB_ID.NULL
|
||||
' Recupero l'identificativo del pezzo cui appartiene
|
||||
Dim nPartId As Integer = EgtGetParent(EgtGetParent(nId))
|
||||
Dim sNamePartId As String = String.Empty
|
||||
EgtGetName(nPartId, sNamePartId)
|
||||
Dim bPartInTable As Boolean = (EgtGetParent(nPartId) = GetRawId())
|
||||
If EgtIsPart(nPartId) Or bPartInTable Then
|
||||
Dim nStat As Integer = GDB_ST.ON_
|
||||
@@ -2241,7 +2244,105 @@ Public Class NestingTabVM
|
||||
' Drag possibile
|
||||
m_bDrag = True
|
||||
Exit While
|
||||
End If
|
||||
|
||||
Else
|
||||
' verifico se l'elemento selezionato è il nome della tavola
|
||||
If EgtGetType(nId) = GDB_TY.EXT_TEXT AndAlso (sNamePartId = MAIN_TAB Or
|
||||
sNamePartId = SECOND_TAB Or
|
||||
sNamePartId = THIRD_TAB Or
|
||||
sNamePartId = FORTH_TAB) Then
|
||||
|
||||
' Apro la finestra per la selezione della tavola da usare
|
||||
Dim ChgTbV As New ChangeTableV
|
||||
Dim ChgTbVM As New ChangeTableVM(ChgTbV)
|
||||
ChgTbV.DataContext = ChgTbVM
|
||||
ChgTbV.ShowDialog()
|
||||
|
||||
' se non è stata eseguita nessuna scelta esco dal ciclo
|
||||
If ChgTbVM.MyDialogResult = EnumDialogResult.CANCEL Or ChgTbVM.nSelectedTable = 0 Then Exit While
|
||||
|
||||
' recupero il nome della tavola corrente
|
||||
Dim sOtherTab As String = GetTableName(ChgTbVM.nSelectedTable)
|
||||
|
||||
EgtChangeTable(sOtherTab, True)
|
||||
'm_CurrProjPage.AdjustAdditionalTable(True)
|
||||
EgtSetMachineLook(MCH_LOOK.TAB)
|
||||
' aggiorno le lavorazioni
|
||||
UpdateAllMachiningsToolpaths()
|
||||
' aggiorno i movimenti pezzi tra disposizioni
|
||||
For nI As Integer = 1 To EgtGetPhaseCount()
|
||||
EgtSetCurrPhase(nI)
|
||||
Dim nDispId As Integer = EgtGetPhaseDisposition(nI)
|
||||
SpecialApplyDisposition(nDispId, True)
|
||||
Next
|
||||
' aggiorno posizionamento ventose per lavorazioni da sotto
|
||||
UpdateVacuumsForDrip()
|
||||
'' dichiaro tutto aggiornato
|
||||
'm_CurrProjPage.SetOrderMachiningFlag()
|
||||
EgtSetCurrPhase(1)
|
||||
' aggiorno posizione pezzi in parcheggio
|
||||
Dim nPPId As Integer = EgtGetFirstPart()
|
||||
While nPPId <> GDB_ID.NULL
|
||||
PackPartInStore(nPPId)
|
||||
nPPId = EgtGetNextPart(nPPId)
|
||||
End While
|
||||
'' se prevista rotazione
|
||||
'If GetPrivateProfileInt(S_TABLE, K_CHANGETABWD, 0, m_MainWindow.GetMachIniFile()) = 2 Then
|
||||
' ' Dati tavola
|
||||
' Dim b3Tab As New BBox3d
|
||||
' EgtGetTableArea(1, b3Tab)
|
||||
' ' Box lastra
|
||||
' Dim b3OrigRaw As New BBox3d
|
||||
' GetRawBox(b3OrigRaw)
|
||||
' ' Allargo i limiti della tavola in tutte le fasi
|
||||
' Const TAB_OFFS As Double = 3000
|
||||
' For nI As Integer = 1 To EgtGetPhaseCount()
|
||||
' EgtSetCurrPhase(nI)
|
||||
' EgtSetTableAreaOffset(TAB_OFFS, TAB_OFFS, TAB_OFFS, TAB_OFFS)
|
||||
' Next
|
||||
' ' aggiorno posizionamento ventose per lavorazioni da sotto
|
||||
' UpdateVacuumsForDrip()
|
||||
' ' dichiaro tutto aggiornato
|
||||
' m_CurrProjPage.SetOrderMachiningFlag()
|
||||
' EgtSetCurrPhase(1)
|
||||
' ' Rotazione
|
||||
' Dim dAngRot As Double = If(sOtherTab = SECOND_TAB, 180, -180)
|
||||
' If Not RotateAllRawParts(dAngRot, False) Then
|
||||
' m_CurrProjPage.SetWarningMessage(EgtMsg(90339)) 'Rotazione impossibile
|
||||
' End If
|
||||
' ' Traslazione per riportare la lastra nella stessa posizione rispetto all'angolo BL che diveta TR e viceversa
|
||||
' Dim b3Raw As New BBox3d
|
||||
' GetRawBox(b3Raw)
|
||||
' Dim vtMove As Vector3d
|
||||
' If sOtherTab = SECOND_TAB Then
|
||||
' Dim vtDiffIni As Vector3d = b3OrigRaw.Min() - b3Tab.Min()
|
||||
' Dim vtDiffFin As Vector3d = b3Tab.Max() - b3Raw.Max()
|
||||
' vtMove = vtDiffFin - vtDiffIni
|
||||
' Else
|
||||
' Dim vtDiffIni As Vector3d = b3Tab.Max() - b3OrigRaw.Max()
|
||||
' Dim vtDiffFin As Vector3d = b3Raw.Min() - b3Tab.Min()
|
||||
' vtMove = -(vtDiffFin - vtDiffIni)
|
||||
' End If
|
||||
' vtMove.z = 0
|
||||
' MoveAllRawParts(vtMove)
|
||||
' ' Ripristino i limiti della tavola in tutte le fasi
|
||||
' For nI As Integer = 1 To EgtGetPhaseCount()
|
||||
' EgtSetCurrPhase(nI)
|
||||
' EgtSetTableAreaOffset(0, 0, 0, 0)
|
||||
' Next
|
||||
' EgtSetCurrPhase(1)
|
||||
' HideAllMachinings()
|
||||
'End If
|
||||
|
||||
' visualizzazione
|
||||
EgtZoom(ZM.ALL)
|
||||
' Elimino il datacontext della finsetra per la selezione della tavola
|
||||
ChgTbVM = Nothing
|
||||
Exit While
|
||||
|
||||
End If
|
||||
|
||||
End If
|
||||
nId = EgtGetNextObjInSelWin()
|
||||
End While
|
||||
' Dati per drag
|
||||
|
||||
Reference in New Issue
Block a user