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