4277434fce
- aggiunta gestione parametri generali per WaterJet (ottimizza e lavora interni) - sistemazione nomi costanti, variabili e funzioni - semplificazione in Wj gestione scelta punto iniziale e separazione lato.
233 lines
12 KiB
VB.net
233 lines
12 KiB
VB.net
Imports EgtUILib
|
|
Imports EgtWPFLib5
|
|
|
|
Public Class Alarms2PageUC
|
|
|
|
' Riferimento alla MainWindow
|
|
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
|
Private m_CurrentMachine As CurrentMachine
|
|
|
|
' Properties
|
|
Private m_bFirst As Boolean = True
|
|
|
|
Private Sub Alarms2Page_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
|
|
' Variabile che accorcia il riferimento alla macchina corrente
|
|
m_CurrentMachine = m_MainWindow.m_CurrentMachine
|
|
|
|
SawGpBx.Header = EgtMsg(90925) ' Parametri lama
|
|
HolesGpBx.Header = EgtMsg(90917) ' Parametri fori
|
|
WjsParamGpBx.Header = EgtMsg(91058) ' Parametri waterjet
|
|
MillingsParamGpBx.Header = EgtMsg(90929) ' Parametri fresature
|
|
|
|
HolesOffsetTxBl.Text = EgtMsg(90909) ' Offset fori
|
|
HolesOverlapTxBl.Text = EgtMsg(90910) ' Sovrapp. fori
|
|
HolesToleranceTxBl.Text = EgtMsg(90911) ' Tolleranza fori
|
|
OneHoleInCornerTxBl.Text = EgtMsg(90926) ' Un solo foro in angolo
|
|
CutExtraLenTxBl.Text = EgtMsg(90906) ' Sicurezza tagli
|
|
AngleCutExtraLenTxBl.Text = EgtMsg(90907) ' Sicur. angoli
|
|
ExtArcMinRadTxBl.Text = EgtMsg(90918) ' Rmin archi est.
|
|
IntArcMaxSideAngTxBl.Text = EgtMsg(90924) ' Amax archi int.
|
|
PreCutExitTxBl.Text = EgtMsg(91065) ' PreTaglio uscite
|
|
WjOptimizeTxBl.Text = EgtMsg(91043) ' Ottimizza
|
|
WjIntCutsTxBl.Text = EgtMsg(90930) ' Sempre sugli interni
|
|
CornerCutsTxBl.Text = EgtMsg(90944) ' Sempre sugli angoli
|
|
InternalCutsTxBl.Text = EgtMsg(90930) ' Sempre sugli interni
|
|
ShortTxBl.Text = EgtMsg(90949) ' Accorciamento
|
|
End Sub
|
|
|
|
Private Sub Alarms2Page_Loaded() Handles Me.Loaded
|
|
If m_bFirst Then
|
|
' Se non previsti tagli di lama, nascondo i relativi parametri
|
|
If Not m_CurrentMachine.bSawing Then
|
|
SawGpBx.Visibility = Visibility.Hidden
|
|
End If
|
|
|
|
' Verifico la configurazione della macchina per creare i combobox
|
|
Select Case m_CurrentMachine.MountedToolConfig
|
|
Case CurrentMachine.MountedToolConfigs.SAW
|
|
' Disattivo il gruppo dei parametri fori
|
|
HolesGpBx.Visibility = Windows.Visibility.Hidden
|
|
Case CurrentMachine.MountedToolConfigs.SAWANDAUXTOOL
|
|
' Non faccio alcunchè
|
|
Case CurrentMachine.MountedToolConfigs.MANUALTOOLCHANGER, CurrentMachine.MountedToolConfigs.TOOLCHANGER, CurrentMachine.MountedToolConfigs.TOOLCHANGERWITHSAW
|
|
' Da implementare
|
|
End Select
|
|
|
|
' Se non previste forature, nascondo relativo box
|
|
If Not m_CurrentMachine.bDrilling Then
|
|
HolesGpBx.Visibility = Visibility.Hidden
|
|
End If
|
|
|
|
' Se non previste fresature, nascondo relativo box e uso fresa con incisione
|
|
If Not m_CurrentMachine.bMilling Then
|
|
MillingsParamGpBx.Visibility = Visibility.Hidden
|
|
End If
|
|
|
|
' Se non previsto taglio ad acqua (waterjet), nascondo relativo box
|
|
If Not m_CurrentMachine.bWaterJet Then
|
|
WjsParamGpBx.Visibility = Visibility.Hidden
|
|
' se altrimenti non c'è lama, nascondo il check e lo considero sempre vero
|
|
ElseIf Not m_CurrentMachine.bSawing Then
|
|
WjIntCutsTxBl.Visibility = Visibility.Hidden
|
|
WjIntCutsChBx.Visibility = Visibility.Hidden
|
|
End If
|
|
|
|
m_bFirst = False
|
|
End If
|
|
|
|
Dim dVal As Double
|
|
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_HOLES_OFFSET, 0, m_MainWindow.GetMachIniFile())
|
|
EgtMdbSetGeneralParam(MCH_GP.EXTRARONDRIREG, dVal)
|
|
HolesOffsetTxBx.Text = LenToString(dVal, 2)
|
|
' Leggo sovrapposizione fori
|
|
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_HOLES_OVERLAP, 0, m_MainWindow.GetMachIniFile())
|
|
HolesOverlapTxBx.Text = LenToString(dVal, 2)
|
|
' Leggo tolleranza diametro fori
|
|
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_HOLES_DIAMTOLER, 0, m_MainWindow.GetMachIniFile())
|
|
EgtMdbSetGeneralParam(MCH_GP.HOLEDIAMTOLER, dVal)
|
|
HolesToleranceTxBx.Text = LenToString(dVal, 2)
|
|
' Leggo un solo foro in corner
|
|
OneHoleInCornerChBx.IsChecked = (GetPrivateProfileInt(S_MACH_NEST, K_MACH_ONEHOLE_INTCORNER, 0, m_MainWindow.GetMachIniFile()) <> 0)
|
|
' Leggo sicurezza su tagli
|
|
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_CUT, 0, m_MainWindow.GetMachIniFile())
|
|
EgtMdbSetGeneralParam(MCH_GP.EXTRALONCUTREG, dVal)
|
|
CutExtraLenTxBx.Text = LenToString(dVal, 2)
|
|
' Leggo sicurezza su tagli in angoli interni
|
|
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_INTCORNER, 0, m_MainWindow.GetMachIniFile())
|
|
AngleCutExtraLenTxBx.Text = LenToString(dVal, 2)
|
|
' Leggo raggio minimo arco esterno
|
|
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_EXTARCMINRAD, 200, m_MainWindow.GetMachIniFile())
|
|
If Not EgtMdbSetGeneralParam(MCH_GP.EXTSAWARCMINRAD, dVal) Then
|
|
EgtMdbGetGeneralParam(MCH_GP.EXTSAWARCMINRAD, dVal)
|
|
End If
|
|
ExtArcMinRadTxBx.Text = LenToString(dVal, 2)
|
|
' Leggo angolo di fianco massimo arco interno
|
|
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_INTARCMAXSIDEANG, 45, m_MainWindow.GetMachIniFile())
|
|
if Not EgtMdbSetGeneralParam(MCH_GP.INTSAWARCMAXSIDEANG, dVal) Then
|
|
EgtMdbGetGeneralParam(MCH_GP.INTSAWARCMAXSIDEANG, dVal)
|
|
End If
|
|
IntArcMaxSideAngTxBx.Text = DoubleToString(dVal, 2)
|
|
' Leggo se PreCutExit attivo (per taglio ceramico)
|
|
Dim nPreCutExit As Integer = GetPrivateProfileInt(S_MACH_NEST, K_MACH_PRECUTEXIT, -1, m_MainWindow.GetMachIniFile())
|
|
If nPreCutExit = -1 Then
|
|
PreCutExitTxBl.Visibility = Visibility.Hidden
|
|
PreCutExitChBx.Visibility = Visibility.Hidden
|
|
Else
|
|
PreCutExitChBx.IsChecked = (nPreCutExit <> 0)
|
|
End If
|
|
' Salvo DB lavorazioni con aggiornamenti parametri generali
|
|
EgtMdbSave()
|
|
' Leggo lavorazione angoli con fresa
|
|
CornerCutsChBx.IsChecked = (GetPrivateProfileInt(S_MACH_NEST, K_MACH_MILLING_ON_CORNERS, 1, m_MainWindow.GetMachIniFile()) <> 0)
|
|
' Leggo lavorazione interni con fresa
|
|
InternalCutsChBx.IsChecked = (GetPrivateProfileInt(S_MACH_NEST, K_MACH_MILLING_ON_SINKS, 0, m_MainWindow.GetMachIniFile()) <> 0)
|
|
' Leggo accorciamento angoli con fresa
|
|
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_MILLING_SHORTENING, 0, m_MainWindow.GetMachIniFile())
|
|
ShortTxBx.Text = LenToString(dVal, 2)
|
|
' Leggo ottimizzazione lavorazione waterjet
|
|
WjOptimizeChBx.IsChecked = (GetPrivateProfileInt(S_MACH_NEST, K_MACH_WATERJET_OPTIMIZE, 0, m_MainWindow.GetMachIniFile()) <> 0)
|
|
' Leggo lavorazione interni con waterjet
|
|
WjIntCutsChBx.IsChecked = (GetPrivateProfileInt(S_MACH_NEST, K_MACH_WATERJET_ON_SINKS, 0, m_MainWindow.GetMachIniFile()) <> 0)
|
|
End Sub
|
|
|
|
Private Sub CutExtraLenTxBx_EgtClosed(sender As Object, e As EventArgs) Handles CutExtraLenTxBx.EgtClosed
|
|
Dim dVal As Double = 0
|
|
StringToLen(CutExtraLenTxBx.Text, dVal)
|
|
WritePrivateProfileString(S_MACH_NEST, K_MACH_SAFE_LEN_CUT, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
|
|
EgtMdbSetGeneralParam(MCH_GP.EXTRALONCUTREG, dVal)
|
|
EgtMdbSave()
|
|
End Sub
|
|
|
|
Private Sub AngleCutExtraLenTxBx_EgtClosed(sender As Object, e As EventArgs) Handles AngleCutExtraLenTxBx.EgtClosed
|
|
Dim dVal As Double = 0
|
|
StringToLen(AngleCutExtraLenTxBx.Text, dVal)
|
|
WritePrivateProfileString(S_MACH_NEST, K_MACH_SAFE_LEN_INTCORNER, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
|
|
End Sub
|
|
|
|
Private Sub ExtArcMinRadTxBx_EgtClosed(sender As Object, e As EventArgs) Handles ExtArcMinRadTxBx.EgtClosed
|
|
Dim dVal As Double = 0
|
|
StringToLen(ExtArcMinRadTxBx.Text, dVal)
|
|
If EgtMdbSetGeneralParam(MCH_GP.EXTSAWARCMINRAD, dVal) Then
|
|
EgtMdbSave()
|
|
Else
|
|
EgtMdbGetGeneralParam(MCH_GP.EXTSAWARCMINRAD, dVal)
|
|
ExtArcMinRadTxBx.Text = LenToString(dVal, 2)
|
|
End If
|
|
WritePrivateProfileString(S_MACH_NEST, K_MACH_EXTARCMINRAD, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
|
|
End Sub
|
|
|
|
Private Sub IntArcMaxSideAngTxBx_EgtClosed(sender As Object, e As EventArgs) Handles IntArcMaxSideAngTxBx.EgtClosed
|
|
Dim dVal As Double = 0
|
|
StringToDouble(IntArcMaxSideAngTxBx.Text, dVal)
|
|
If EgtMdbSetGeneralParam(MCH_GP.INTSAWARCMAXSIDEANG, dVal) Then
|
|
EgtMdbSave()
|
|
Else
|
|
EgtMdbGetGeneralParam(MCH_GP.INTSAWARCMAXSIDEANG, dVal)
|
|
IntArcMaxSideAngTxBx.Text = DoubleToString(dVal, 2)
|
|
End If
|
|
WritePrivateProfileString(S_MACH_NEST, K_MACH_INTARCMAXSIDEANG, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
|
|
End Sub
|
|
|
|
Private Sub PreCutExitChBx_Click(sender As Object, e As RoutedEventArgs) Handles PreCutExitChBx.Click
|
|
If PreCutExitChBx.IsChecked Then
|
|
WritePrivateProfileString(S_MACH_NEST, K_MACH_PRECUTEXIT, "1", m_MainWindow.GetMachIniFile())
|
|
Else
|
|
WritePrivateProfileString(S_MACH_NEST, K_MACH_PRECUTEXIT, "0", m_MainWindow.GetMachIniFile())
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub HolesOffsetTxBx_EgtClosed(sender As Object, e As EventArgs) Handles HolesOffsetTxBx.EgtClosed
|
|
Dim dVal As Double = 0
|
|
StringToLen(HolesOffsetTxBx.Text, dVal)
|
|
WritePrivateProfileString(S_MACH_NEST, K_MACH_HOLES_OFFSET, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
|
|
EgtMdbSetGeneralParam(MCH_GP.EXTRARONDRIREG, dVal)
|
|
EgtMdbSave()
|
|
End Sub
|
|
|
|
Private Sub HolesOverlapTxBx_EgtClosed(sender As Object, e As EventArgs) Handles HolesOverlapTxBx.EgtClosed
|
|
Dim dVal As Double = 0
|
|
StringToLen(HolesOverlapTxBx.Text, dVal)
|
|
WritePrivateProfileString(S_MACH_NEST, K_MACH_HOLES_OVERLAP, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
|
|
End Sub
|
|
|
|
Private Sub HolesToleranceTxBx_EgtClosed(sender As Object, e As EventArgs) Handles HolesToleranceTxBx.EgtClosed
|
|
Dim dVal As Double = 0
|
|
StringToLen(HolesToleranceTxBx.Text, dVal)
|
|
WritePrivateProfileString(S_MACH_NEST, K_MACH_HOLES_DIAMTOLER, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
|
|
EgtMdbSetGeneralParam(MCH_GP.HOLEDIAMTOLER, dVal)
|
|
EgtMdbSave()
|
|
End Sub
|
|
|
|
Private Sub OneHoleInCornerChBx_Click(sender As Object, e As RoutedEventArgs) Handles OneHoleInCornerChBx.Click
|
|
Dim sVal As String = If( OneHoleInCornerChBx.IsChecked(), "1", "0")
|
|
WritePrivateProfileString(S_MACH_NEST, K_MACH_ONEHOLE_INTCORNER, sVal, m_MainWindow.GetMachIniFile())
|
|
End Sub
|
|
|
|
Private Sub CornerCutsChBx_Click(sender As Object, e As RoutedEventArgs) Handles CornerCutsChBx.Click
|
|
Dim sVal As String = If( CornerCutsChBx.IsChecked(), "1", "0")
|
|
WritePrivateProfileString(S_MACH_NEST, K_MACH_MILLING_ON_CORNERS, sVal, m_MainWindow.GetMachIniFile())
|
|
End Sub
|
|
|
|
Private Sub ShortTxBx_EgtClosed(sender As Object, e As EventArgs) Handles ShortTxBx.EgtClosed
|
|
Dim dVal As Double = 0
|
|
StringToLen(ShortTxBx.Text, dVal)
|
|
WritePrivateProfileString(S_MACH_NEST, K_MACH_MILLING_SHORTENING, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
|
|
End Sub
|
|
|
|
Private Sub InternalCutsChBx_Click(sender As Object, e As RoutedEventArgs) Handles InternalCutsChBx.Click
|
|
Dim sVal As String = If( InternalCutsChBx.IsChecked(), "1", "0")
|
|
WritePrivateProfileString(S_MACH_NEST, K_MACH_MILLING_ON_SINKS, sVal, m_MainWindow.GetMachIniFile())
|
|
End Sub
|
|
|
|
Private Sub WjOptimizeChBx_Click(sender As Object, e As RoutedEventArgs) Handles WjOptimizeChBx.Click
|
|
Dim sVal As String = If( WjOptimizeChBx.IsChecked(), "1", "0")
|
|
WritePrivateProfileString(S_MACH_NEST, K_MACH_WATERJET_OPTIMIZE, sVal, m_MainWindow.GetMachIniFile())
|
|
End Sub
|
|
|
|
Private Sub WjIntCutsChBx_Click(sender As Object, e As RoutedEventArgs) Handles WjIntCutsChBx.Click
|
|
Dim sVal As String = If( WjIntCutsChBx.IsChecked(), "1", "0")
|
|
WritePrivateProfileString(S_MACH_NEST, K_MACH_WATERJET_ON_SINKS, sVal, m_MainWindow.GetMachIniFile())
|
|
End Sub
|
|
|
|
End Class
|