6ae4d8f819
- aggiunta pagina parametri di lavorazione in cornici. - aggiunta possibilità in split di selezionare più lavorazioni con lo shift. - aggiunti nuovi bottoni gestione macchina divisi in pagina Controls e Vacuum.
241 lines
11 KiB
VB.net
241 lines
11 KiB
VB.net
Imports System.Collections.ObjectModel
|
|
Imports System.ComponentModel
|
|
Imports EgtUILib
|
|
|
|
Public Class FrameMachiningUC
|
|
|
|
' Riferimenti a pagine
|
|
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
|
Private WithEvents m_CurrProjPage As CurrentProjectPageUC
|
|
Friend m_ProjectMgr As ProjectMgrUC
|
|
Private m_CurrMachine As CurrentMachine
|
|
Private m_FrameCutPageUC As FrameCutPageUC
|
|
|
|
' Lista per lavorazioni di sgrossatura con lama
|
|
Private m_SawRoughingList As New ObservableCollection(Of String)
|
|
' Lista per lavorazioni di finitura con lama
|
|
Private m_SawFinishingList As New ObservableCollection(Of String)
|
|
' Lista per lavorazioni di spatolatura con lama
|
|
Private m_SawSideFinList As New ObservableCollection(Of String)
|
|
' Lista per lavorazioni singole con lama
|
|
Private m_SawSingleList As New ObservableCollection(Of String)
|
|
' Flag per disabilitare ricalcolo lavorazioni su impostazione selezione combo
|
|
Private m_DisableCalc As Boolean = False
|
|
' Trim iniziale della lavorazione
|
|
Friend m_dStartTrim As Double = 0
|
|
' Trim finale della lavorazione
|
|
Friend m_dEndTrim As Double = 0
|
|
|
|
' Costante per lavorazione non definita
|
|
Private Const NO_MACHINING As String = "-----"
|
|
|
|
Private Sub FrameCutPage_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
|
|
' Associo ComboBox e Liste
|
|
SawRoughingCmBx.ItemsSource = m_SawRoughingList
|
|
SawFinishingCmBx.ItemsSource = m_SawFinishingList
|
|
SawSideFinCmBx.ItemsSource = m_SawSideFinList
|
|
SawSingleCmBx.ItemsSource = m_SawSingleList
|
|
|
|
' Imposto accorciamenti iniziale e finale di lavorazione
|
|
m_dStartTrim = GetPrivateProfileDouble(S_FRAME, K_STARTTRIM, 0, m_MainWindow.GetIniFile())
|
|
StartTrimTxBx.Text = LenToString(m_dStartTrim, 3)
|
|
m_dEndTrim = GetPrivateProfileDouble(S_FRAME, K_ENDTRIM, 0, m_MainWindow.GetIniFile())
|
|
EndTrimTxBx.Text = LenToString(m_dEndTrim, 3)
|
|
|
|
' Imposto i messaggi letti dal file dei messaggi
|
|
SawRoughingTxBl.Text = EgtMsg(MSG_FRAMECUTPAGEUC + 4) 'Sgrossatura
|
|
SawFinishingTxBl.Text = EgtMsg(MSG_FRAMECUTPAGEUC + 5) 'Finitura
|
|
SawSideFinTxBl.Text = EgtMsg(MSG_FRAMECUTPAGEUC + 6) 'Spatolatura
|
|
StartTrimTxBl.Text = EgtMsg(MSG_FRAMECUTPAGEUC + 10) 'Accorcia inizio
|
|
EndTrimTxBl.Text = EgtMsg(MSG_FRAMECUTPAGEUC + 11) 'Accorcia fine
|
|
SawSingleTxBl.Text = EgtMsg(MSG_FRAMECUTPAGEUC + 12) 'Taglio singolo
|
|
End Sub
|
|
|
|
Private Sub FrameCutPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
|
|
m_CurrProjPage = m_MainWindow.m_CurrentProjectPageUC
|
|
m_FrameCutPageUC = m_MainWindow.m_FrameCutPageUC
|
|
m_CurrMachine = m_MainWindow.m_CurrentMachine
|
|
' Aggiorno liste lavorazioni disponibili
|
|
UpdateMachiningList(MCH_MY.SAWROUGHING, m_CurrMachine.sCurrSaw, m_SawRoughingList)
|
|
UpdateMachiningList(MCH_MY.SAWFINISHING, MCH_SAWFIN_SUB.ALONG, m_CurrMachine.sCurrSaw, m_SawFinishingList)
|
|
UpdateMachiningList(MCH_MY.SAWFINISHING, MCH_SAWFIN_SUB.ACROSS, m_CurrMachine.sCurrSaw, m_SawSideFinList)
|
|
UpdateMachiningList(MCH_MY.SAWING, m_CurrMachine.sCurrSaw, m_SawSingleList)
|
|
' Imposto lavorazioni correnti
|
|
m_DisableCalc = True
|
|
If SawRoughingCmBx.Items.Contains(m_CurrMachine.sCurrSawRoughing) Then
|
|
SawRoughingCmBx.SelectedItem = m_CurrMachine.sCurrSawRoughing
|
|
Else
|
|
SawRoughingCmBx.SelectedItem = NO_MACHINING
|
|
m_CurrMachine.sCurrSawRoughing = String.Empty
|
|
End If
|
|
If SawFinishingCmBx.Items.Contains(m_CurrMachine.sCurrSawFinishing) Then
|
|
SawFinishingCmBx.SelectedItem = m_CurrMachine.sCurrSawFinishing
|
|
Else
|
|
SawFinishingCmBx.SelectedItem = NO_MACHINING
|
|
m_CurrMachine.sCurrSawFinishing = String.Empty
|
|
End If
|
|
If SawSideFinCmBx.Items.Contains(m_CurrMachine.sCurrSawSideFinishing) Then
|
|
SawSideFinCmBx.SelectedItem = m_CurrMachine.sCurrSawSideFinishing
|
|
Else
|
|
SawSideFinCmBx.SelectedItem = NO_MACHINING
|
|
m_CurrMachine.sCurrSawSideFinishing = String.Empty
|
|
End If
|
|
If SawSingleCmBx.Items.Contains(m_CurrMachine.sCurrSawSingle) Then
|
|
SawSingleCmBx.SelectedItem = m_CurrMachine.sCurrSawSingle
|
|
Else
|
|
SawSingleCmBx.SelectedItem = NO_MACHINING
|
|
m_CurrMachine.sCurrSawSingle = String.Empty
|
|
End If
|
|
m_DisableCalc = False
|
|
End Sub
|
|
|
|
Private Sub UpdateMachiningList(MachiningType As Integer, CurrTool As String, ByRef MachiningList As ObservableCollection(Of String))
|
|
' Pulisco la lista
|
|
MachiningList.Clear()
|
|
' Cerco tutte le lavorazioni che utilizzano l'utensile corrente e le aggiungo alla lista
|
|
Dim MachiningName As String = String.Empty
|
|
Dim bFound As Boolean = EgtMdbGetFirstMachining(MachiningType, MachiningName)
|
|
While bFound
|
|
EgtMdbSetCurrMachining(MachiningName)
|
|
Dim sTuuid As String = String.Empty
|
|
Dim sTool As String = String.Empty
|
|
EgtMdbGetCurrMachiningParam(MCH_MP.TUUID, sTuuid)
|
|
EgtTdbGetToolFromUUID(sTuuid, sTool)
|
|
If sTool = CurrTool And VerifyMatThickCompatibility() Then
|
|
MachiningList.Add(MachiningName)
|
|
End If
|
|
bFound = EgtMdbGetNextMachining(MachiningType, MachiningName)
|
|
End While
|
|
' Aggiungo la lavorazione nulla
|
|
MachiningList.Add(NO_MACHINING)
|
|
End Sub
|
|
|
|
Private Sub UpdateMachiningList(MachiningType As Integer, MachiningSubType As Integer, CurrTool As String, ByRef MachiningList As ObservableCollection(Of String))
|
|
' Pulisco la lista
|
|
MachiningList.Clear()
|
|
' Cerco tutte le lavorazioni che utilizzano l'utensile corrente e le aggiungo alla lista
|
|
Dim MachiningName As String = String.Empty
|
|
Dim bFound As Boolean = EgtMdbGetFirstMachining(MachiningType, MachiningName)
|
|
While bFound
|
|
EgtMdbSetCurrMachining(MachiningName)
|
|
Dim SubType As Integer
|
|
EgtMdbGetCurrMachiningParam(MCH_MP.SUBTYPE, SubType)
|
|
Dim sTuuid As String = String.Empty
|
|
Dim sTool As String = String.Empty
|
|
EgtMdbGetCurrMachiningParam(MCH_MP.TUUID, sTuuid)
|
|
EgtTdbGetToolFromUUID(sTuuid, sTool)
|
|
If sTool = CurrTool And SubType = MachiningSubType And VerifyMatThickCompatibility() Then
|
|
MachiningList.Add(MachiningName)
|
|
End If
|
|
bFound = EgtMdbGetNextMachining(MachiningType, MachiningName)
|
|
End While
|
|
' Aggiungo la lavorazione nulla
|
|
MachiningList.Add(NO_MACHINING)
|
|
End Sub
|
|
|
|
Private Function VerifyMatThickCompatibility() As Boolean
|
|
If Not IsNothing(m_CurrMachine.CurrMat) Then
|
|
Dim SysNotes As String = String.Empty
|
|
EgtMdbGetCurrMachiningParam(MCH_MP.SYSNOTES, SysNotes)
|
|
If SysNotes <> String.Empty Then
|
|
Dim MachiningMaterials() = SysNotes.Split(";".ToCharArray)
|
|
SysNotes = String.Empty
|
|
For Each Material In MachiningMaterials
|
|
Dim Param() As String = Material.Split(",".ToCharArray)
|
|
If Param(0) = m_CurrMachine.CurrMat.nId.ToString() Then
|
|
Dim dRawHeight = GetRawHeight()
|
|
Dim MatMinH As Double = 0
|
|
StringToDouble(Param(1), MatMinH)
|
|
Dim MatMaxH As Double = 0
|
|
StringToDouble(Param(2), MatMaxH)
|
|
If dRawHeight > MatMinH - EPS_SMALL And dRawHeight < MatMaxH + EPS_SMALL Then
|
|
Return True
|
|
End If
|
|
End If
|
|
Next
|
|
Return False
|
|
Else
|
|
Return True
|
|
End If
|
|
Else
|
|
Return True
|
|
End If
|
|
End Function
|
|
|
|
Private Sub SawRoughingCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles SawRoughingCmBx.SelectionChanged
|
|
If m_DisableCalc Or IsNothing(SawRoughingCmBx.SelectedItem) Then Return
|
|
' La imposto come lavorazione corrente di sgrossatura con lama
|
|
If SawRoughingCmBx.SelectedItem.ToString() <> NO_MACHINING Then
|
|
m_CurrMachine.sCurrSawRoughing = SawRoughingCmBx.SelectedItem.ToString()
|
|
Else
|
|
m_CurrMachine.sCurrSawRoughing = String.Empty
|
|
End If
|
|
' La inserisco
|
|
AddFrameSawRoughing(m_dStartTrim, m_dEndTrim)
|
|
' Aggiorno visualizzazione
|
|
EgtDraw()
|
|
End Sub
|
|
|
|
Private Sub SawFinishingCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles SawFinishingCmBx.SelectionChanged
|
|
If m_DisableCalc Or IsNothing(SawFinishingCmBx.SelectedItem) Then Return
|
|
' La imposto come lavorazione corrente di finitura con lama
|
|
If SawFinishingCmBx.SelectedItem.ToString() <> NO_MACHINING Then
|
|
m_CurrMachine.sCurrSawFinishing = SawFinishingCmBx.SelectedItem.ToString()
|
|
Else
|
|
m_CurrMachine.sCurrSawFinishing = String.Empty
|
|
End If
|
|
' La inserisco
|
|
AddFrameSawFinishing(m_dStartTrim, m_dEndTrim)
|
|
' Aggiorno visualizzazione
|
|
EgtDraw()
|
|
End Sub
|
|
|
|
Private Sub SawSideFinCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles SawSideFinCmBx.SelectionChanged
|
|
If m_DisableCalc Or IsNothing(SawSideFinCmBx.SelectedItem) Then Return
|
|
' La imposto come lavorazione corrente di finitura con lama
|
|
If SawSideFinCmBx.SelectedItem.ToString() <> NO_MACHINING Then
|
|
m_CurrMachine.sCurrSawSideFinishing = SawSideFinCmBx.SelectedItem.ToString()
|
|
Else
|
|
m_CurrMachine.sCurrSawSideFinishing = String.Empty
|
|
End If
|
|
' La inserisco
|
|
AddFrameSawSideFinishing(m_dStartTrim, m_dEndTrim)
|
|
' Aggiorno visualizzazione
|
|
EgtDraw()
|
|
End Sub
|
|
|
|
Private Sub SawSingleCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles SawSingleCmBx.SelectionChanged
|
|
If m_DisableCalc Or IsNothing(SawSingleCmBx.SelectedItem) Then Return
|
|
' La imposto come lavorazione corrente di taglio singolo con lama
|
|
If SawSingleCmBx.SelectedItem.ToString() <> NO_MACHINING Then
|
|
m_CurrMachine.sCurrSawSingle = SawSingleCmBx.SelectedItem.ToString()
|
|
Else
|
|
m_CurrMachine.sCurrSawSingle = String.Empty
|
|
End If
|
|
' La inserisco
|
|
AddFrameSawSingle()
|
|
' Aggiorno visualizzazione
|
|
EgtDraw()
|
|
End Sub
|
|
|
|
Private Sub XXTrimTxBx_EgtClosed(sender As Object, e As EventArgs) Handles StartTrimTxBx.EgtClosed, EndTrimTxBx.EgtClosed
|
|
' Trim iniziale
|
|
Dim dStartTrim As Double = 0
|
|
If StringToLen(StartTrimTxBx.Text, dStartTrim) Then
|
|
m_dStartTrim = dStartTrim
|
|
WritePrivateProfileString(S_FRAME, K_STARTTRIM, DoubleToString(dStartTrim, 3), m_MainWindow.GetIniFile())
|
|
End If
|
|
' Trim finale
|
|
Dim dEndTrim As Double = 0
|
|
If StringToLen(EndTrimTxBx.Text, dEndTrim) Then
|
|
m_dEndTrim = dEndTrim
|
|
WritePrivateProfileString(S_FRAME, K_ENDTRIM, DoubleToString(dEndTrim, 3), m_MainWindow.GetIniFile())
|
|
End If
|
|
' Ricalcolo lavorazioni
|
|
AddFrameMachinings(m_dStartTrim, m_dEndTrim)
|
|
' Aggiorno visualizzazione
|
|
EgtDraw()
|
|
End Sub
|
|
|
|
End Class
|