Files
OmagCUT/MachineButtonsUC.xaml.vb
T
Emmanuele Sassi 8bd01b8058 OmagCUT :
- Introduzione materiali e spessori nelle lavorazioni.
- Scelta delle lavorazioni che tiene conto di materiali e spessori impostati in Db lavorazioni.
- Bottoni macchina singoli a stati invece che doppi on/off.
- Miglioramenti vari durante prove in macchina.
2016-02-08 09:17:35 +00:00

475 lines
20 KiB
VB.net

Imports EgtUILib
Public Class MachineButtonsUC
'Riferimento alla MainWindow
Dim m_MainWindow As MainWindow = Application.Current.MainWindow
Private m_DirectCutPage As DirectCutPageUC
Friend m_CN As CN_generico
Private m_bFirst As Boolean = True
Private Const MAX_BUTTONS As Integer = 10
Private ImageArrayY(MAX_BUTTONS - 1) As String
Private ImageArrayN(MAX_BUTTONS - 1) As String
Private CommandArrayY(MAX_BUTTONS - 1) As String
Private CommandArrayN(MAX_BUTTONS - 1) As String
Private StateFlagArray(MAX_BUTTONS - 1) As String
' Creazione converter da String a ImageSource
Dim ImageConverter As New ImageSourceConverter
Private Sub MachineButtons_Loaded(sender As Object, e As RoutedEventArgs)
If m_bFirst Then
m_DirectCutPage = m_MainWindow.m_DirectCutPageUC
m_bFirst = False
End If
' Rendo invisibili bottoni 3 e 5 assi per poi attivarli solo se presenti
'ThreeAxisBtn.Visibility = Windows.Visibility.Hidden
'FiveAxisBtn.Visibility = Windows.Visibility.Hidden
Dim sButtonImage As String = String.Empty
'Dim sButtonImageSource As ImageSource
Dim sButtonCommand As String = String.Empty
Dim sButtonStateFlag As String = String.Empty
Dim nIndex As Integer = 0
While nIndex < MAX_BUTTONS 'And GetPrivateProfileMachineButtons(S_MACHBUTTONS, K_BUTTON & (nIndex + 1) & "Y", sButtonImage, sButtonCommand, sButtonStateFlag, m_MainWindow.GetMachIniFile())
If GetPrivateProfileMachineButtons(S_MACHBUTTONS, K_BUTTON & (nIndex + 1) & "Y", sButtonImage, sButtonCommand, sButtonStateFlag, m_MainWindow.GetMachIniFile()) Then
ImageArrayY(nIndex) = sButtonImage
CommandArrayY(nIndex) = sButtonCommand
StateFlagArray(nIndex) = sButtonStateFlag
End If
'If CommandArray(nIndex) = "3Axes.lua" Then
' MachineButtonsGrid.Children.Remove(GetButton(nIndex + 1))
' ThreeAxisBtn.SetValue(Grid.ColumnProperty, nIndex)
' ThreeAxisBtn.Visibility = Windows.Visibility.Visible
' Try
' Dim s As String = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & sButtonImage
' sButtonImageSource = ImageConverter.ConvertFromString(s)
' ThreeAxisImg.Source = sButtonImageSource
' Catch ex As Exception
' EgtOutLog("Error loading image " & sButtonImage)
' End Try
'ElseIf CommandArray(nIndex) = "5Axes.lua" Then
' MachineButtonsGrid.Children.Remove(GetButton(nIndex + 1))
' FiveAxisBtn.SetValue(Grid.ColumnProperty, nIndex)
' FiveAxisBtn.Visibility = Windows.Visibility.Visible
' Try
' Dim s As String = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & sButtonImage
' sButtonImageSource = ImageConverter.ConvertFromString(s)
' FiveAxisImg.Source = sButtonImageSource
' Catch ex As Exception
' EgtOutLog("Error loading image " & sButtonImage)
' End Try
'Else
'End If
'Try
' Dim s As String = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & sButtonImage
' sButtonImageSource = ImageConverter.ConvertFromString(s)
' GetImage(nIndex + 1).Source = sButtonImageSource
'Catch ex As Exception
' EgtOutLog("Error loading image " & sButtonImage)
'End Try
nIndex += 1
End While
nIndex = 0
While nIndex < MAX_BUTTONS 'And GetPrivateProfileMachineButtons(S_MACHBUTTONS, K_BUTTON & (nIndex + 1) & "N", sButtonImage, sButtonCommand, sButtonStateFlag, m_MainWindow.GetMachIniFile())
If GetPrivateProfileMachineButtons(S_MACHBUTTONS, K_BUTTON & (nIndex + 1) & "N", sButtonImage, sButtonCommand, sButtonStateFlag, m_MainWindow.GetMachIniFile()) Then
ImageArrayN(nIndex) = sButtonImage
CommandArrayN(nIndex) = sButtonCommand
End If
nIndex += 1
End While
' Nascondo bottoni inutilizzati
Dim nYNum As Integer = 0
For Each Item In CommandArrayY
If Not String.IsNullOrEmpty(Item) Then
nYNum += 1
End If
Next
Dim nNNum As Integer = 0
For Each Item In CommandArrayN
If Not String.IsNullOrEmpty(Item) Then
nNNum += 1
End If
Next
Dim nBtnNum As Integer = Math.Max(nYNum, nNNum)
nIndex = nBtnNum
While nIndex < MAX_BUTTONS
GetToggleButton(nIndex + 1).Visibility = Windows.Visibility.Hidden
nIndex += 1
End While
' Se modalità Debug metto immaginette fisse e tolgo bottoni in eccesso
If Not m_MainWindow.m_bNCLink Then
For nIndex = 0 To 2
Try
Dim s As String = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & ImageArrayN(nIndex)
Dim sButtonImageSource As ImageSource = ImageConverter.ConvertFromString(s)
GetImage(nIndex + 1).Source = sButtonImageSource
Catch ex As Exception
EgtOutLog("Error loading image " & ImageArrayN(nIndex + 1))
End Try
Next
For nIndex = 3 To 4
Try
Dim s As String = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & ImageArrayY(nIndex)
Dim sButtonImageSource As ImageSource = ImageConverter.ConvertFromString(s)
GetImage(nIndex + 1).Source = sButtonImageSource
Catch ex As Exception
EgtOutLog("Error loading image " & ImageArrayN(nIndex + 1))
End Try
Next
For I = 6 To 10
GetToggleButton(I).Visibility = Windows.Visibility.Hidden
Next
End If
End Sub
Private Sub MachineButton_Click(sender As Object, e As RoutedEventArgs) Handles MachineButton1.Click, MachineButton2.Click, MachineButton3.Click, MachineButton4.Click, MachineButton5.Click, MachineButton6.Click, MachineButton7.Click,
MachineButton8.Click, MachineButton9.Click, MachineButton10.Click
Dim CurrentBtn As Primitives.ToggleButton = e.Source
Dim nTemp As Integer = 0
Dim dTemp As Double = 0
Dim sTemp As String = String.Empty
Dim b2Start As Boolean = False
Dim CmdString As String = String.Empty
If CurrentBtn.IsChecked Then
EgtLuaExecFile(m_MainWindow.GetMachinesRootDir() & "\" & m_MainWindow.GetCurrMachine() & "\DirectCmd\" & CommandArrayY(GetToggleButtonIndex(CurrentBtn) - 1))
Else
If Not (StateFlagArray(GetToggleButtonIndex(CurrentBtn) - 1) = "ThreeAxis" Or StateFlagArray(GetToggleButtonIndex(CurrentBtn) - 1) = "FiveAxis") Then
EgtLuaExecFile(m_MainWindow.GetMachinesRootDir() & "\" & m_MainWindow.GetCurrMachine() & "\DirectCmd\" & CommandArrayN(GetToggleButtonIndex(CurrentBtn) - 1))
Else
Return
End If
End If
StringToDouble(m_DirectCutPage.m_ManualAxesMove.FeedTxBx.Text, dTemp)
EgtLuaSetGlobNumVar("CMD.F", dTemp)
StringToDouble(m_DirectCutPage.m_ManualAxesMove.SpeedTxBx.Text, dTemp)
EgtLuaSetGlobNumVar("CMD.S", dTemp)
nTemp = GetPrivateProfileInt(S_AXES, K_L1ID, 0, m_MainWindow.GetMachIniFile())
dTemp = m_CN.d_axis_position(nTemp)
EgtLuaSetGlobNumVar("CMD.L1", dTemp)
nTemp = GetPrivateProfileInt(S_AXES, K_L2ID, 1, m_MainWindow.GetMachIniFile())
dTemp = m_CN.d_axis_position(nTemp)
EgtLuaSetGlobNumVar("CMD.L2", dTemp)
nTemp = GetPrivateProfileInt(S_AXES, K_L3ID, 2, m_MainWindow.GetMachIniFile())
dTemp = m_CN.d_axis_position(nTemp)
EgtLuaSetGlobNumVar("CMD.L3", dTemp)
nTemp = GetPrivateProfileInt(S_AXES, K_R1ID, 8, m_MainWindow.GetMachIniFile())
dTemp = m_CN.d_axis_position(nTemp)
EgtLuaSetGlobNumVar("CMD.R1", dTemp)
nTemp = GetPrivateProfileInt(S_AXES, K_R2ID, 7, m_MainWindow.GetMachIniFile())
dTemp = m_CN.d_axis_position(nTemp)
EgtLuaSetGlobNumVar("CMD.R2", dTemp)
EgtLuaExecLine("CmdString()")
' Leggo variabili
EgtLuaGetGlobStringVar("CMD.CMDSTRING", CmdString)
EgtLuaGetGlobBoolVar("CMD.DOUBLESTART", b2Start)
' Reset lua
EgtLuaResetGlobVar("CmdString")
EgtLuaResetGlobVar("CMD")
Dim nResult As Short
nResult = m_CN.DGeneralFunctions_WriteCncMode(2) ' Modalità MDI
m_CN.sz_ManualDataInput = CmdString
m_CN.MDI_command()
System.Threading.Thread.Sleep(300)
m_CN.DGeneralFunctions_CycleStart()
If b2Start Then
System.Threading.Thread.Sleep(300)
m_CN.DGeneralFunctions_CycleStart()
End If
System.Threading.Thread.Sleep(300)
nResult = m_CN.DGeneralFunctions_WriteCncMode(7) ' Modalità manuale
End Sub
'Private Sub MachineToggleButton_Click(sender As Object, e As RoutedEventArgs) Handles ThreeAxisBtn.Click, FiveAxisBtn.Click
' Dim CurrentBtn As Primitives.ToggleButton = e.Source
' Dim nTemp As Integer = 0
' Dim dTemp As Double = 0
' Dim sTemp As String = String.Empty
' Dim b2Start As Boolean = False
' Dim CmdString As String = String.Empty
' EgtLuaExecFile(m_MainWindow.GetMachinesRootDir() & "\" & m_MainWindow.GetCurrMachine() & "\DirectCmd\" & GetToggleButtonIndex(CurrentBtn))
' StringToDouble(m_DirectCutPage.m_ManualAxesMove.FeedTxBx.Text, dTemp)
' EgtLuaSetGlobNumVar("CMD.F", dTemp)
' StringToDouble(m_DirectCutPage.m_ManualAxesMove.SpeedTxBx.Text, dTemp)
' EgtLuaSetGlobNumVar("CMD.S", dTemp)
' nTemp = GetPrivateProfileInt(S_AXES, K_L1ID, 0, m_MainWindow.GetMachIniFile())
' dTemp = m_CN.d_axis_position(nTemp)
' EgtLuaSetGlobNumVar("CMD.L1", dTemp)
' nTemp = GetPrivateProfileInt(S_AXES, K_L2ID, 1, m_MainWindow.GetMachIniFile())
' dTemp = m_CN.d_axis_position(nTemp)
' EgtLuaSetGlobNumVar("CMD.L2", dTemp)
' nTemp = GetPrivateProfileInt(S_AXES, K_L3ID, 2, m_MainWindow.GetMachIniFile())
' dTemp = m_CN.d_axis_position(nTemp)
' EgtLuaSetGlobNumVar("CMD.L3", dTemp)
' nTemp = GetPrivateProfileInt(S_AXES, K_R1ID, 8, m_MainWindow.GetMachIniFile())
' dTemp = m_CN.d_axis_position(nTemp)
' EgtLuaSetGlobNumVar("CMD.R1", dTemp)
' nTemp = GetPrivateProfileInt(S_AXES, K_R2ID, 7, m_MainWindow.GetMachIniFile())
' dTemp = m_CN.d_axis_position(nTemp)
' EgtLuaSetGlobNumVar("CMD.R2", dTemp)
' EgtLuaExecLine("CmdString()")
' ' Leggo variabili
' EgtLuaGetGlobStringVar("CMD.CMDSTRING", CmdString)
' EgtLuaGetGlobBoolVar("CMD.DOUBLESTART", b2Start)
' ' Reset lua
' EgtLuaResetGlobVar("CmdString")
' EgtLuaResetGlobVar("CMD")
' Dim nResult As Short
' nResult = m_CN.DGeneralFunctions_WriteCncMode(2) ' Modalità MDI
' m_CN.sz_ManualDataInput = CmdString
' m_CN.MDI_command()
' System.Threading.Thread.Sleep(150)
' m_CN.DGeneralFunctions_CycleStart()
' If b2Start Then
' System.Threading.Thread.Sleep(150)
' m_CN.DGeneralFunctions_CycleStart()
' End If
' nResult = m_CN.DGeneralFunctions_WriteCncMode(7) ' Modalità manuale
'End Sub
Friend Sub SpindleStateChanged(SpindleState As Boolean)
Dim nIndex As Integer = Array.IndexOf(StateFlagArray, "Spindle")
If SpindleState Then
GetToggleButton(nIndex + 1).IsChecked = True
Try
Dim s As String = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & ImageArrayY(nIndex)
Dim sButtonImageSource As ImageSource = ImageConverter.ConvertFromString(s)
GetImage(nIndex + 1).Source = sButtonImageSource
Catch ex As Exception
EgtOutLog("Error loading image " & ImageArrayY(nIndex + 1))
End Try
Else
GetToggleButton(nIndex + 1).IsChecked = False
Try
Dim s As String = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & ImageArrayN(nIndex)
Dim sButtonImageSource As ImageSource = ImageConverter.ConvertFromString(s)
GetImage(nIndex + 1).Source = sButtonImageSource
Catch ex As Exception
EgtOutLog("Error loading image " & ImageArrayN(nIndex + 1))
End Try
End If
End Sub
Friend Sub CoolantStateChanged(CoolantState As Boolean)
Dim nIndex As Integer = Array.IndexOf(StateFlagArray, "Coolant")
If CoolantState Then
GetToggleButton(nIndex + 1).IsChecked = True
Try
Dim s As String = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & ImageArrayY(nIndex)
Dim sButtonImageSource As ImageSource = ImageConverter.ConvertFromString(s)
GetImage(nIndex + 1).Source = sButtonImageSource
Catch ex As Exception
EgtOutLog("Error loading image " & ImageArrayY(nIndex + 1))
End Try
Else
GetToggleButton(nIndex + 1).IsChecked = False
Try
Dim s As String = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & ImageArrayN(nIndex)
Dim sButtonImageSource As ImageSource = ImageConverter.ConvertFromString(s)
GetImage(nIndex + 1).Source = sButtonImageSource
Catch ex As Exception
EgtOutLog("Error loading image " & ImageArrayN(nIndex + 1))
End Try
End If
End Sub
Friend Sub LaserStateChanged(LaserState As Boolean)
Dim nIndex As Integer = Array.IndexOf(StateFlagArray, "Laser")
If LaserState Then
GetToggleButton(nIndex + 1).IsChecked = True
Try
Dim s As String = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & ImageArrayY(nIndex)
Dim sButtonImageSource As ImageSource = ImageConverter.ConvertFromString(s)
GetImage(nIndex + 1).Source = sButtonImageSource
Catch ex As Exception
EgtOutLog("Error loading image " & ImageArrayY(nIndex + 1))
End Try
Else
GetToggleButton(nIndex + 1).IsChecked = False
Try
Dim s As String = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & ImageArrayN(nIndex)
Dim sButtonImageSource As ImageSource = ImageConverter.ConvertFromString(s)
GetImage(nIndex + 1).Source = sButtonImageSource
Catch ex As Exception
EgtOutLog("Error loading image " & ImageArrayN(nIndex + 1))
End Try
End If
End Sub
Friend Sub ThreeAxisStateChanged(ThreeAxisState As Boolean)
Dim nIndex As Integer = Array.IndexOf(StateFlagArray, "ThreeAxis")
If ThreeAxisState Then
GetToggleButton(nIndex + 1).IsChecked = True
Try
Dim s As String = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & ImageArrayY(nIndex)
Dim sButtonImageSource As ImageSource = ImageConverter.ConvertFromString(s)
GetImage(nIndex + 1).Source = sButtonImageSource
Catch ex As Exception
EgtOutLog("Error loading image " & ImageArrayY(nIndex + 1))
End Try
Else
GetToggleButton(nIndex + 1).IsChecked = False
Try
Dim s As String = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & ImageArrayY(nIndex)
Dim sButtonImageSource As ImageSource = ImageConverter.ConvertFromString(s)
GetImage(nIndex + 1).Source = sButtonImageSource
Catch ex As Exception
EgtOutLog("Error loading image " & ImageArrayN(nIndex + 1))
End Try
End If
End Sub
Friend Sub FiveAxisStateChanged(FiveAxisState As Boolean)
Dim nIndex As Integer = Array.IndexOf(StateFlagArray, "FiveAxis")
If FiveAxisState Then
GetToggleButton(nIndex + 1).IsChecked = True
Try
Dim s As String = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & ImageArrayY(nIndex)
Dim sButtonImageSource As ImageSource = ImageConverter.ConvertFromString(s)
GetImage(nIndex + 1).Source = sButtonImageSource
Catch ex As Exception
EgtOutLog("Error loading image " & ImageArrayY(nIndex + 1))
End Try
Else
GetToggleButton(nIndex + 1).IsChecked = False
Try
Dim s As String = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & ImageArrayY(nIndex)
Dim sButtonImageSource As ImageSource = ImageConverter.ConvertFromString(s)
GetImage(nIndex + 1).Source = sButtonImageSource
Catch ex As Exception
EgtOutLog("Error loading image " & ImageArrayN(nIndex + 1))
End Try
End If
End Sub
Private Function GetToggleButton(ByVal nIndex As Integer) As Primitives.ToggleButton
Select Case nIndex
Case 1
Return MachineButton1
Case 2
Return MachineButton2
Case 3
Return MachineButton3
Case 4
Return MachineButton4
Case 5
Return MachineButton5
Case 6
Return MachineButton6
Case 7
Return MachineButton7
Case 8
Return MachineButton8
Case 9
Return MachineButton9
Case Else
Return MachineButton10
End Select
End Function
Private Function GetToggleButtonIndex(ByVal nBtnName As Primitives.ToggleButton) As Integer
Select Case nBtnName.Name
Case MachineButton1.Name
Return 1
Case MachineButton2.Name
Return 2
Case MachineButton3.Name
Return 3
Case MachineButton4.Name
Return 4
Case MachineButton5.Name
Return 5
Case MachineButton6.Name
Return 6
Case MachineButton7.Name
Return 7
Case MachineButton8.Name
Return 8
Case MachineButton9.Name
Return 9
Case Else
Return 10
End Select
End Function
'Private Function GetToggleButtonIndex(ByVal nBtnName As Primitives.ToggleButton) As String
' Select Case nBtnName.Name
' Case ThreeAxisBtn.Name
' Return "3Axes.lua"
' Case Else
' Return "5Axes.lua"
' End Select
'End Function
Private Function GetImage(ByVal nInd As Integer) As Image
Select Case nInd
Case 1
Return ImageButton1
Case 2
Return ImageButton2
Case 3
Return ImageButton3
Case 4
Return ImageButton4
Case 5
Return ImageButton5
Case 6
Return ImageButton6
Case 7
Return ImageButton7
Case 8
Return ImageButton8
Case 9
Return ImageButton9
Case Else
Return ImageButton10
End Select
End Function
Public Function GetPrivateProfileMachineButtons(
ByVal lpAppName As String,
ByVal lpKeyName As String,
ByRef lpButtonImage As String,
ByRef lpCommand As String,
ByRef lpStateFlag As String,
ByVal lpFileName As String) As Boolean
Dim sVal As String = String.Empty
GetPrivateProfileString(lpAppName, lpKeyName, "", sVal, lpFileName)
Dim sItems() As String = sVal.Split(",".ToCharArray)
If sItems.Count() >= 2 Then
lpButtonImage = sItems(0)
lpCommand = sItems(1)
If sItems.Count() >= 3 Then
lpStateFlag = sItems(2)
Else
lpStateFlag = String.Empty
End If
Return True
End If
Return False
End Function
End Class