Files
OmagCUT/MachineButtonsUC.xaml.vb
T
Emmanuele Sassi 7a378e44f3 OmagCUT :
- Aggiunto cambio lingua in pagina opzioni.
- Sistemati tutti i testi in italiano e inglese.
2016-01-18 09:47:27 +00:00

279 lines
11 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 CommandArray(MAX_BUTTONS - 1) As String
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
' Creazione converter da String a ImageSource
Dim ImageConverter As New ImageSourceConverter
' 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 nIndex As Integer = 0
While nIndex < MAX_BUTTONS And GetPrivateProfileMachineButtons(S_MACHBUTTONS, K_BUTTON & (nIndex + 1), sButtonImage, sButtonCommand, m_MainWindow.GetMachIniFile())
CommandArray(nIndex) = sButtonCommand
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
End If
If 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
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
While nIndex < MAX_BUTTONS
GetButton(nIndex + 1).Visibility = Windows.Visibility.Hidden
nIndex += 1
End While
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 Button = 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\" & CommandArray(GetButtonIndex(CurrentBtn) - 1))
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
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
Private Function GetButton(ByVal nIndex As Integer) As Button
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 GetButtonIndex(ByVal nBtnName As Button) 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,
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)
Return True
End If
Return False
End Function
End Class