Files
OmagCUT/Machine/Alarms2PageUC.xaml.vb
Dario Sassi 4277434fce OmagCUT :
- 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.
2026-03-15 18:37:10 +01:00

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