diff --git a/Machine/AlarmsPageUC.xaml.vb b/Machine/AlarmsPageUC.xaml.vb index f09059e..c4d6462 100644 --- a/Machine/AlarmsPageUC.xaml.vb +++ b/Machine/AlarmsPageUC.xaml.vb @@ -578,6 +578,33 @@ Public Class AlarmsPageUC String.Compare(sMchTool, m_CurrentMachine.sCurrSaw, True) <> 0 Then m_CurrentMachine.sCurrSawing = String.Empty End If + + 'Dim sVal As String = String.Empty + 'Dim dVal As Double = 0 + 'If m_CurrentMachine.GetUserNote("FsevLength", sVal, m_CurrentMachine.sCurrSawing, false) Then + ' StringToDouble(sVal, dVal) + ' m_CurrentMachine.SetFsevLength(dVal) + 'End If + 'If m_CurrentMachine.GetUserNote("FsevPerc", sVal, m_CurrentMachine.sCurrSawing, false) Then + ' StringToDouble(sVal, dVal) + ' m_CurrentMachine.SetFsevPerc(dVal) + 'End If + + Dim sVal As String = String.Empty + Dim dVal As Double = 0 + If m_CurrentMachine.GetUserNote("FsevLength", sVal, m_CurrentMachine.sCurrSaw) Then + StringToDouble(sVal, dVal) + m_CurrentMachine.SetFsevLength(dVal) + End If + If m_CurrentMachine.GetUserNote("FsevPerc", sVal, m_CurrentMachine.sCurrSaw) Then + StringToDouble(sVal, dVal) + m_CurrentMachine.SetFsevPerc(dVal) + End If + + ' Leggo parametri per variazione feed in tagli aggiornati in funzione della lama + CfrLenTxBx.Text = LenToString(m_CurrentMachine.dFsevLength, 3) + CfrPercTxBx.Text = DoubleToString(m_CurrentMachine.dFsevPerc, 0) + ' Aggiorno utensili per lavoro in corso m_MainWindow.m_WorkInProgressPageUC.UpdateTools() ' aggiorno la lista delle lavorazioni diff --git a/Machine/CurrentMachine.vb b/Machine/CurrentMachine.vb index cfad857..f20ab12 100644 --- a/Machine/CurrentMachine.vb +++ b/Machine/CurrentMachine.vb @@ -609,6 +609,18 @@ Public Class CurrentMachine If WritePrivateProfileString(S_MACH_MACH, K_CURRSAWING, value, sMachIniFile) Then m_sCurrSawing = value m_MainWindow.m_CurrentProjectPageUC.MachiningTxBx.Text = value + '' aggiorno il file ini della macchina con i valori correnti della lavorazione + 'Dim sVal As String = String.Empty + 'Dim dVal As Double = m_dFsevLength + 'If GetUserNote("FsevLength", sVal, m_sCurrSawing, False) Then + ' StringToDouble(sVal, dVal) + ' SetFsevLength(dVal) + 'End If + 'dVal = m_dFsevPerc + 'If GetUserNote("FsevPerc", sVal, m_sCurrSawing, False) Then + ' StringToDouble(sVal, m_dFsevPerc) + ' SetFsevPerc(dVal) + 'End If End If End Set End Property @@ -861,9 +873,18 @@ Public Class CurrentMachine Set(value As Double) If WritePrivateProfileString(S_NEST, K_MACH_CUTFSEVLEN, DoubleToString(value, 3), sMachIniFile) Then m_dFsevLength = value + ' salvo il dato nelle UserNote della lavorazione + 'MdbSetCurrMachiningUserNote("FsevLength", m_dFsevLength.ToString, sCurrSawing, false) + ' salvo il dato nelle UserNote dell'utensile + TdbSetCurrToolUserNote("FsevLength", m_dFsevLength.ToString, sCurrSaw) End If End Set End Property + Friend Sub SetFsevLength(value As Double) + If WritePrivateProfileString(S_NEST, K_MACH_CUTFSEVLEN, DoubleToString(value, 3), sMachIniFile) Then + m_dFsevLength = value + End If + End Sub Friend Property dFsevPerc As Double Get @@ -872,9 +893,18 @@ Public Class CurrentMachine Set(value As Double) If WritePrivateProfileString(S_NEST, K_MACH_CUTFSEVPERC, DoubleToString(value, 3), sMachIniFile) Then m_dFsevPerc = value + '' salvo il dato nelle UserNote della lavorazione + 'MdbSetCurrMachiningUserNote("FsevPerc", m_dFsevPerc.ToString, sCurrSawing) + ' salvo il dato nelle UserNote dell'utensile + TdbSetCurrToolUserNote("FsevPerc", m_dFsevPerc.ToString, sCurrSaw) End If End Set End Property + Friend Sub SetFsevPerc(value As Double) + If WritePrivateProfileString(S_NEST, K_MACH_CUTFSEVPERC, DoubleToString(value, 3), sMachIniFile) Then + m_dFsevPerc = value + End If + End Sub Friend ReadOnly Property ToolChangerNbr As Integer Get @@ -1265,6 +1295,7 @@ Public Class CurrentMachine ' Leggo dati per feed ridotta all'inizio/fine dei tagli m_bFsevEnable = (GetPrivateProfileInt(S_NEST, K_MACH_CUTFSEVENABLE, 0, sMachIniFile) <> 0) + ' sposto la lettura nel DB delle lavorazioni della lama corrente! m_dFsevLength = GetPrivateProfileDouble(S_NEST, K_MACH_CUTFSEVLEN, 0, sMachIniFile) m_dFsevPerc = GetPrivateProfileDouble(S_NEST, K_MACH_CUTFSEVPERC, 0, sMachIniFile) @@ -1386,6 +1417,142 @@ Public Class CurrentMachine Return dMaxThick End Function +#Region "USERNOTE" + + ' recupero le note UserNote associate alla LAVORAZIONE Machining + Friend Function MdbGetCurrMachiningUserNote(Machining As String) As String + Dim UserNotes As String = String.Empty + ' lavorazione corrente + Dim CurrMach As String = String.Empty + EgtMdbGetCurrMachiningParam(MCH_MP.NAME, CurrMach) + ' Imposto utensile lama corrente + If Not String.IsNullOrWhiteSpace(Machining) AndAlso EgtMdbSetCurrMachining(Machining) Then + ' leggo nel db corrente della lavorazione questa info + EgtMdbGetCurrMachiningParam(MCH_MP.USERNOTES, UserNotes) + ' reimposto lavorazione corrente + EgtMdbSetCurrMachining(CurrMach) + End If + Return UserNotes + End Function + + ' recupero le note UserNote associate all'UTENSILE Tool + Friend Function TdbGetCurrToolUserNote(Tool As String) As String + Dim UserNotes As String = String.Empty + ' lavorazione corrente + Dim CurrTool As String = String.Empty + EgtTdbGetCurrToolParam(MCH_TP.NAME, CurrTool) + ' Imposto utensile lama corrente + If Not String.IsNullOrWhiteSpace(Tool) AndAlso EgtTdbSetCurrTool(Tool) Then + ' leggo nel db corrente della lavorazione questa info + EgtTdbGetCurrToolParam(MCH_TP.USERNOTES, UserNotes) + ' reimposto lavorazione corrente + EgtTdbSetCurrTool(CurrTool) + End If + Return UserNotes + End Function + + ' imposta il nuovo valore in UserNote della LAVORAZIONE Machining + Friend Sub MdbSetCurrMachiningUserNote(sKeyUserNote As String, sValUserNote As String, Machining As String) + ' lavorazione corrente + Dim CurrMach As String = String.Empty + EgtMdbGetCurrMachiningParam(MCH_MP.NAME, CurrMach) + ' Imposto utensile lama corrente + If Not String.IsNullOrWhiteSpace(Machining) AndAlso EgtMdbSetCurrMachining(Machining) Then + Dim UserNotes As String = String.Empty + ' salvo nel db corrente della lavorazione questa info → devo gestire l'inserimento: sovrascrivo NON ESEGUE un APPEND delle info + EgtMdbSetCurrMachiningParam(MCH_MP.USERNOTES, AssembUserNote(sKeyUserNote, sValUserNote, Machining)) + EgtMdbSaveCurrMachining() + EgtMdbSave() + ' reimposto lavorazione corrente + EgtMdbSetCurrMachining(CurrMach) + End If + End Sub + + ' imposta il nuovo valore in UserNote dell'UTENSILE Tool + Friend Sub TdbSetCurrToolUserNote(sKeyUserNote As String, sValUserNote As String, Tool As String) + ' lavorazione corrente + Dim CurrTool As String = String.Empty + EgtTdbGetCurrToolParam(MCH_TP.NAME, CurrTool) + ' Imposto utensile lama corrente + If Not String.IsNullOrWhiteSpace(Tool) AndAlso EgtTdbSetCurrTool(Tool) Then + Dim UserNotes As String = String.Empty + ' salvo nel db corrente della lavorazione questa info → devo gestire l'inserimento: sovrascrivo NON ESEGUE un APPEND delle info + EgtTdbSetCurrToolParam(MCH_TP.USERNOTES, AssembUserNote(sKeyUserNote, sValUserNote, Tool)) + EgtTdbSaveCurrTool() + EgtTdbSave() + ' reimposto lavorazione corrente + EgtTdbSetCurrTool(Tool) + End If + End Sub + + ' separa la le note UserNote della LAVORAZIONE + Private Function SplitUserNoteMachinig(Machining As String) As String() + Dim sUserNotes As String = MdbGetCurrMachiningUserNote(Machining) + If String.IsNullOrEmpty(sUserNotes) Then Return Nothing + Dim sItems As String() = sUserNotes.Split(";"c) + Return sItems + End Function + + ' separa la le note UserNote della LAVORAZIONE + Private Function SplitUserNoteTool(Tool As String) As String() + Dim sUserNotes As String = TdbGetCurrToolUserNote(Tool) + If String.IsNullOrEmpty(sUserNotes) Then Return Nothing + Dim sItems As String() = sUserNotes.Split(";"c) + Return sItems + End Function + + ' recupera il valore della associato alla chiave per la lavorazione oppure utensile (bIsToolNote) + Friend Function GetUserNote(sKeyUserNote As String, ByRef sValUserNote As String, sName As String, Optional bIsToolNote As Boolean = True) As Boolean + Dim sUserNotesList As String() = Nothing + If bIsToolNote Then + sUserNotesList = SplitUserNoteTool(sName) + Else + sUserNotesList = SplitUserNoteMachinig(sName) + End If + If IsNothing(sUserNotesList) Then Return False + For Index As Integer = 0 To sUserNotesList.Count - 1 + Dim sNote As String() = sUserNotesList(Index).Split("="c) + If sNote.Count = 2 AndAlso sNote(0).Trim = sKeyUserNote Then + sValUserNote = sNote(1).Trim + End If + Next + Return True + End Function + + ' ricostruisce la stringa UserNote da salvare + Friend Function AssembUserNote(sKeyUserNote As String, sValUserNote As String, sName As String, Optional bIsToolNote As Boolean = True) As String + Dim sUserNotes As String = String.Empty + Dim sUserNotesList As String() = Nothing + If bIsToolNote Then + sUserNotesList = SplitUserNoteTool(sName) + Else + sUserNotesList = SplitUserNoteMachinig(sName) + End If + Dim bExists As Boolean = False + If Not IsNothing(sUserNotesList) Then + For Index As Integer = 0 To sUserNotesList.Count - 1 + Dim sNote As String() = sUserNotesList(Index).Split("="c) + If sNote.Count = 2 AndAlso sNote(0).Trim = sKeyUserNote Then + sUserNotesList(Index) = sKeyUserNote & "=" & sValUserNote + bExists = True + Exit For + End If + Next + ' riassemblo la stringa + For Each Item As String In sUserNotesList + If Not String.IsNullOrWhiteSpace(Item) Then + sUserNotes &= Item & ";" + End If + Next + End If + If Not bExists Then + sUserNotes &= sKeyUserNote & "=" & sValUserNote & ";" + End If + Return sUserNotes + End Function + +#End Region ' USERNOTE + Friend Function IsVacuumMovePossible() As Boolean ' Recupero diametro lama corrente EgtTdbSetCurrTool(sCurrSaw) diff --git a/MainWindow.xaml.vb b/MainWindow.xaml.vb index 390ddd7..9fca1a7 100644 --- a/MainWindow.xaml.vb +++ b/MainWindow.xaml.vb @@ -605,6 +605,16 @@ Class MainWindow m_WorkInProgressPageUC.Prepare() m_WorkInProgressPageUC.UpdateTools() + Dim sVal As String = String.Empty + If m_CurrentMachine.GetUserNote("FsevLength", sVal, m_CurrentMachine.sCurrSaw) Then + StringToDouble(sVal, m_CurrentMachine.dFsevLength) + m_CurrentMachine.SetFsevLength(m_CurrentMachine.dFsevLength) + End If + If m_CurrentMachine.GetUserNote("FsevPerc", sVal, m_CurrentMachine.sCurrSaw) Then + StringToDouble(sVal, m_CurrentMachine.dFsevPerc) + m_CurrentMachine.SetFsevPerc(m_CurrentMachine.dFsevPerc) + End If + ' Se macchina fotografica abilitata, ne inizializzo il gestore #If Not TRIAL Then If GetKeyOption(MainWindow.KEY_OPT.MAN_PHOTO) Then