diff --git a/EgtBEAMWALL.Core/Constants/ConstIni.vb b/EgtBEAMWALL.Core/Constants/ConstIni.vb index fc3788f5..c5f528c2 100644 --- a/EgtBEAMWALL.Core/Constants/ConstIni.vb +++ b/EgtBEAMWALL.Core/Constants/ConstIni.vb @@ -43,6 +43,7 @@ Public Module ConstIni Public Const K_UPDATEBTL As String = "UpdateBtl" Public Const K_DATADIR As String = "DataDir" Public Const K_ENABLEEDIT As String = "EnableEdit" + Public Const K_FASTPRODUCE As String = "FastProduce" 'Public Const S_LANGUAGES As String = "Languages" 'Public Const K_LANGUAGE As String = "Language" diff --git a/EgtBEAMWALL.ViewerOptimizer/CALCPanel/CALCPanelVM.vb b/EgtBEAMWALL.ViewerOptimizer/CALCPanel/CALCPanelVM.vb index 257857d5..af3bd317 100644 --- a/EgtBEAMWALL.ViewerOptimizer/CALCPanel/CALCPanelVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/CALCPanel/CALCPanelVM.vb @@ -8,11 +8,22 @@ Imports System.Windows.Threading Public Class CALCPanelVM Inherits VMBase + Public Enum ProduceType As Integer + NULL = 0 + PRODUCE = 1 + PRODUCEALL = 2 + End Enum + ' timer e variabile per ricaricare progetto dopo edit Private m_Waiting_Timer As New DispatcherTimer Private m_ReloadEditedFile As Boolean = False Private m_OrigSelectedMachine As Machine = Nothing + ' imposta se il calcolo e' stato lanciato dal tasto produci(1), produci tutti(2) o nessuno(0) + Private m_FromProduce As ProduceType = ProduceType.NULL + Friend Sub SetFromProduce(value As ProduceType) + m_FromProduce = value + End Sub Private m_IsMachineApplied As Boolean = False Public Property IsMachineApplied As Boolean @@ -234,6 +245,16 @@ Public Class CALCPanelVM End If Map.refProjectVM.SetCalcRunning(False) Map.refMyStatusBarVM.ResetStopProgress() + ' se lanciato dal produci, eseguo produci + If m_FromProduce <> ProduceType.NULL Then + Select Case m_FromProduce + Case ProduceType.PRODUCE + Map.refTopPanelVM.ProduceRawPart() + Case ProduceType.PRODUCEALL + Map.refTopPanelVM.ProduceAllRawPart() + End Select + m_FromProduce = ProduceType.NULL + End If End Sub Private Sub Waiting_Timer_Tick() diff --git a/EgtBEAMWALL.ViewerOptimizer/TopPanel/TopPanelVM.vb b/EgtBEAMWALL.ViewerOptimizer/TopPanel/TopPanelVM.vb index e25e0de7..2f963f95 100644 --- a/EgtBEAMWALL.ViewerOptimizer/TopPanel/TopPanelVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/TopPanel/TopPanelVM.vb @@ -227,6 +227,12 @@ Public Class TopPanelVM Public Sub ProduceRawPart() If IsNothing(Map.refProdManagerVM.CurrProd) Then Return Dim ErrorMsg As String = "" + ' se attiva opzione e non ancora calcolato + If GetMainPrivateProfileInt(S_GENERAL, K_FASTPRODUCE, 0) = 1 And Map.refMachGroupPanelVM.SelectedMachGroup.nGlobalState = CalcStates.NOTCALCULATED Then + Map.refCALCPanelVM.SetFromProduce(CALCPanelVM.ProduceType.PRODUCE) + Map.refCALCPanelVM.Verify() + Return + End If If Not Produce(Map.refMachGroupPanelVM.SelectedMachGroup, ErrorMsg) AndAlso Not String.IsNullOrWhiteSpace(ErrorMsg) Then MessageBox.Show(ErrorMsg) End If @@ -285,6 +291,12 @@ Public Class TopPanelVM ''' Public Sub ProduceAllRawPart() If IsNothing(Map.refProdManagerVM.CurrProd) Then Return + ' se attiva opzione e non ancora calcolato + If GetMainPrivateProfileInt(S_GENERAL, K_FASTPRODUCE, 0) = 1 And Map.refMachGroupPanelVM.MachGroupVMList.Any(Function(x As MyMachGroupVM) x.nGlobalState = CalcStates.NOTCALCULATED) Then + Map.refCALCPanelVM.SetFromProduce(CALCPanelVM.ProduceType.PRODUCEALL) + Map.refCALCPanelVM.VerifyAll() + Return + End If If Map.refMachGroupPanelVM.MachGroupVMList.Count > 0 Then Dim MachgroupErrorList As New List(Of MachGroupVM) For Each Machgroup In Map.refMachGroupPanelVM.MachGroupVMList