From 95cf5e21951165a43d0d2b327cd3915b9899131a Mon Sep 17 00:00:00 2001 From: RenzoL Date: Tue, 23 Nov 2021 17:41:46 +0100 Subject: [PATCH] - Aggiunta gestione "Copia grezzo" per pareti - Piccola correzione "Copia grezzo" per travi --- .../MachGroupPanel/MyMachGroupVM.vb | 62 ++++++++++++++++++- 1 file changed, 60 insertions(+), 2 deletions(-) diff --git a/EgtBEAMWALL.ViewerOptimizer/MachGroupPanel/MyMachGroupVM.vb b/EgtBEAMWALL.ViewerOptimizer/MachGroupPanel/MyMachGroupVM.vb index 4a9fd9d0..e2ba9480 100644 --- a/EgtBEAMWALL.ViewerOptimizer/MachGroupPanel/MyMachGroupVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/MachGroupPanel/MyMachGroupVM.vb @@ -124,7 +124,7 @@ Public Class MyMachGroupVM ' lo rendo std EgtSetMode(nPartDuploId, GDB_MD.STD) ' scrivo dati costruzione grezzo in gruppo di lavorazione - EgtSetInfo(nCurrMachGroup, MGR_RPT_PART & 1, nPartDuploId & "," & m_PartVMList(Index).sPOSX) + EgtSetInfo(nCurrMachGroup, MGR_RPT_PART & (Index + 1), nPartDuploId & "," & m_PartVMList(Index).sPOSX) Next Dim BeamMachGroup As MyMachGroupVM = Map.refMachGroupPanelVM.GetLastMachGroup() ' eseguo script creazione grezzo @@ -149,7 +149,65 @@ Public Class MyMachGroupVM EgtSetView(VT.ISO_SW, False) Return BeamMachGroup Else - Return Nothing + Dim sPartArray(m_PartVMList.Count - 1) As String + ' ciclo per salvare in un array di stringhe i valori di POSX e POSY prima di resettare + Dim ind As Integer = 0 + For Each Part In m_PartVMList + sPartArray(ind) = Part.sPOSX & "," & Part.sPOSY & "," & 0 & "," & 0 + ind += 1 + Next + EgtResetCurrMachGroup() + ' recupero lista dei pezzi BTL originali + Dim PartList As New List(Of BTLPartVM) + For Each Part In m_PartVMList + PartList.Add(BTLPartVM.RetrieveBTLPartFromPart(Part.nPartId)) + Next + ' verifico che nessun pezzo da copiare abbia raggiunto il numero massimo + If Not VerifyPartCount(PartList) Then Return Nothing + ' creo nuovo gruppo di lavorazione + Map.refMachGroupPanelVM.AddMachGroup() + Dim nCurrMachGroup As Integer = EgtGetCurrMachGroup() + Dim sCurrMachGroupName As String = "" + EgtGetMachGroupName(nCurrMachGroup, sCurrMachGroupName) + ' scrivo dati per variabili P di comunicazione con la macchina in gruppo di lavorazione + EgtSetInfo(nCurrMachGroup, MGR_RPT_PRODID, Map.refProdManagerVM.CurrProd.nProdId) + EgtSetInfo(nCurrMachGroup, MGR_RPT_MATERIAL, sMATERIAL) + EgtSetInfo(nCurrMachGroup, MGR_RPT_PATTID, nCurrMachGroup) + ' scrivo dati costruzione grezzo in gruppo di lavorazione + EgtSetInfo(nCurrMachGroup, MGR_RPT_PANELLEN, dL) + EgtSetInfo(nCurrMachGroup, MGR_RPT_PANELWIDTH, dW) + For Index = 0 To m_PartVMList.Count - 1 + ' creo copia del pezzo + Dim nPartDuploId As Integer = EgtDuploNew(PartList(Index).nPartId) + ' elimino valori calcolo dell'originale + MyMachGroupPanelVM.DuploRemoveProjCalc(nPartDuploId) + ' lo rendo std + EgtSetMode(nPartDuploId, GDB_MD.STD) + ' scrivo dati costruzione grezzo in gruppo di lavorazione + EgtSetInfo(nCurrMachGroup, MGR_RPT_PART & (Index + 1), nPartDuploId & "," & sPartArray(Index)) + Next + Dim WallMachGroup As MyMachGroupVM = Map.refMachGroupPanelVM.GetLastMachGroup() + ' eseguo script creazione grezzo + Dim sLogPath As String = Map.refMainWindowVM.MainWindowM.sTempDir & "\RawPartLog.txt" + If Not ExecWall(sLogPath, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdType.RAWPART, False) Then + WallMachGroup.DeleteMachGroup() + Dim LogFile As String() = File.ReadAllLines(sLogPath) + If LogFile.Count >= 2 AndAlso Not IsNothing(LogFile(1)) Then + MessageBox.Show(LogFile(1), EgtMsg(30007), MessageBoxButton.OK, MessageBoxImage.Error) + End If + Return Nothing + End If + ' aggiorno contatore pezzi usati in Prod + For Each Part In PartList + Part.RefreshPartInProd() + Next + 'aggiorno lista pezzi + WallMachGroup.MyMachGroupM.RefreshPartList() + WallMachGroup.MyMachGroupM.RefreshGroupData() + ' aggiorno dati ultilizzo barra + WallMachGroup.UpdateUsage() + EgtSetView(VT.ISO_SW, False) + Return WallMachGroup End If End Function