Imports EgtUILib Imports EgtWPFLib Public Class DirectCutPageUC ' Dichiarazione delle Page UserControl Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow) Friend m_MachineButtons As MachineButtonsUC Friend m_ManualAxesMove As ManualAxesMoveUC Friend m_SingleCut As SingleCutUC Friend m_SingleDrill As SingleDrillUC ' nuova finestra per i comandi per il taglio manuale nuovo Friend m_SingleCutAuto As SingleCutAuto Friend m_MultipleCut As MultipleCut Friend m_GridCut As GridCut Friend m_FlatteningCut As FlatteningCut Friend m_Polishing As Polishing Friend m_CopyTemplate As CopyTemplateUC Friend m_SawTest As SawTestUC Friend m_ControlsMachineButton As ControlsMachineButtonUC Friend m_VacuumMachineButton As VacuumMachineButtonUC ' Stato di visualizzazione della macchina Friend m_bShowMachine As Boolean = False Friend m_nMachLook As Integer = MCH_LOOK.ALL ' Dati generali CN Friend m_CN As CN_generico Private m_bFirst As Boolean = True ' Riferimento alla pagina correntemente attiva Friend m_ActiveDirectCutPage As DirectCutPages = DirectCutPages.DirectCut ' Variabili che indicano attivazione paginette con bottoni macchina Private m_ControlsBtn_IsActive As Boolean Public Shared m_dZSafe As Double = 52 ' Variabile che indica se sono attivi i bottoni macchina nuovi o vecchi Friend m_NewMachineButtonsType As Boolean ' Indica che la finestra del talio Singolo deve essere di tipo manuale Friend m_bManulaCut As Boolean = False ' elenco dei nuovi bottoni Private m_ButtonJogList As New List(Of MachineButton) Enum DirectCutPages DirectCut ManualAxesMove SingleCut MultipleCut GridCut FlatteningCut Polishing CopyTemplate SawTest SingleCutAuto SingleDrill End Enum Private Sub DirectCutPage_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized ' leggo la configurazione del programma per i nuovi tagli manuali m_bManulaCut = GetPrivateProfileInt(S_GENERAL, K_MANUAL_CUT, 0, m_MainWindow.GetIniFile()) <> 0 'Creazione delle Page UserControl m_MachineButtons = New MachineButtonsUC m_ManualAxesMove = New ManualAxesMoveUC m_SingleCut = New SingleCutUC m_SingleDrill = New SingleDrillUC m_MultipleCut = New MultipleCut m_GridCut = New GridCut m_FlatteningCut = New FlatteningCut m_Polishing = New Polishing m_CopyTemplate = New CopyTemplateUC m_SawTest = New SawTestUC m_ControlsMachineButton = New ControlsMachineButtonUC m_VacuumMachineButton = New VacuumMachineButtonUC ' Costruisco la finestra per il nuovo tipo di taglio manuale m_SingleCutAuto = New SingleCutAuto 'Posizionemento nella griglia delle Page UserControl m_MachineButtons.SetValue(Grid.RowProperty, 2) m_MachineButtons.SetValue(Grid.ColumnSpanProperty, 7) m_ManualAxesMove.SetValue(Grid.RowProperty, 1) If m_bManulaCut Then m_SingleCutAuto.SetValue(Grid.RowProperty, 1) Else m_SingleCut.SetValue(Grid.RowProperty, 1) End If m_SingleDrill.SetValue(Grid.RowProperty, 1) m_MultipleCut.SetValue(Grid.RowProperty, 1) m_GridCut.SetValue(Grid.RowProperty, 1) m_FlatteningCut.SetValue(Grid.RowProperty, 1) m_Polishing.SetValue(Grid.RowProperty, 1) m_CopyTemplate.SetValue(Grid.RowProperty, 1) m_SawTest.SetValue(Grid.RowProperty, 1) m_ControlsMachineButton.SetValue(Grid.RowProperty, 1) m_VacuumMachineButton.SetValue(Grid.RowProperty, 1) ' verifico che sia presente almeno uno dei bottoni della nuova console (SOLO PER MACCHINA CON paragrafo [ControlMachButtons]) Dim bCollapsedNewBottonsConsole As Boolean = Not m_ControlsMachineButton.GetPrivateProfileMachineButtons("JogButtons", "Button1", Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, m_MainWindow.GetMachIniFile()) m_NewMachineButtonsType = m_ControlsMachineButton.GetPrivateProfileMachineButtons(S_CONTROLMACHBUTTONS, "Button1", Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, m_MainWindow.GetMachIniFile()) If Not m_NewMachineButtonsType Then 'Assegno MachineButtons alla pagina LowerButtonGrid.Children.Add(m_MachineButtons) ControlsMachineBtn.Visibility = Windows.Visibility.Collapsed VacuumMachineBtn.Visibility = Windows.Visibility.Collapsed End If If GetPrivateProfileInt(S_NUMERICALCONTROL, K_TYPE, 0, m_MainWindow.GetMachIniFile()) = 0 Then ManualBtn.IsEnabled = False ManualModeBtn.Visibility = Windows.Visibility.Hidden End If ' ManualBtn.Content = EgtMsg(90201) ManualTxt.Text = EgtMsg(90201) 'SingleCutBtn.Content = EgtMsg(90202) SingleCutTxt.Text = EgtMsg(90202) 'SingleDrillBtn.Content = "Foro singolo" SingleDrillTxt.Text = EgtMsg(90258) 'MultipleCutBtn.Content = EgtMsg(90203) MultipleCutTxt.Text = EgtMsg(90203) 'GridCutBtn.Content = EgtMsg(90204) GridCutTxt.Text = EgtMsg(90204) 'FlatteningCutBtn.Content = EgtMsg(90206) FlatteningCutTxt.Text = EgtMsg(90206) 'PolishingBtn.Content = EgtMsg(90231) PolishingTxt.Text = EgtMsg(90231) 'CopyTemplateBtn.Content = EgtMsg(90209) CopyTemplateTxt.Text = EgtMsg(90209) 'SawTestBtn.Content = EgtMsg(90207) SawTestTxt.text = EgtMsg(90207) ' nuovi bottoni 20/05/2021 - modifica specifiche 04/08/2021 ' leggo il numero di assi attivi nella macchina Dim AxesNumber = GetPrivateProfileInt(S_AXES, K_AXESNUM, 5, m_MainWindow.GetMachIniFile()) '' leggo se è stata configurata la nuova conole 'If GetPrivateProfileInt(S_NCDATA, K_NEWCONSOLE, 0, m_MainWindow.GetMachIniFile()) = 1 And Not bCollapsedNewBottonsConsole Then ' XYBtn.Content = "X - Y" ' XYBtn.Foreground = Brushes.White ' ZCBtn.Content = "Z - C" ' ZCBtn.Foreground = Brushes.White ' If AxesNumber < 5 Then ' ZBBtn.Visibility = Windows.Visibility.Collapsed ' End If ' ZBBtn.Content = "Z - B" ' ZBBtn.Foreground = Brushes.White ' RemoteBtn.Content = "Remote" ' RemoteBtn.Foreground = Brushes.White 'Else ' XYBtn.Visibility = Windows.Visibility.Collapsed ' ZCBtn.Visibility = Windows.Visibility.Collapsed ' ZBBtn.Visibility = Windows.Visibility.Collapsed 'End If End Sub Private Sub DirectCutPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded '------ INIZIO NUOVI BOTTONI ---------- ' Lettura configurazione bottoni (per impostare l'uso del Joystick) da Ini di macchina m_ButtonJogList.Clear() Dim m_nCount As Integer = 1 Dim bFoundBtn As Boolean = True While bFoundBtn Dim sNameBtn As String = K_BUTTON & (m_nCount).ToString() Dim sMachineButtonType As String = String.Empty Dim sTImageName As String = String.Empty Dim sTLuaScriptName As String = String.Empty Dim sFImageName As String = String.Empty Dim sFLuaScriptName As String = String.Empty Dim sStateFlag As String = String.Empty bFoundBtn = m_ControlsMachineButton.GetPrivateProfileMachineButtons("JogButtons", sNameBtn, sMachineButtonType, sTImageName, sTLuaScriptName, sFImageName, sFLuaScriptName, sStateFlag, m_MainWindow.GetMachIniFile()) If bFoundBtn Then m_nCount += 1 Dim ButtonToAdd As MachineButton = Nothing ' la selezione dei comandi si trova nella pagina m_ControlsMachineButton.MachineButtonType (tipo Enum) Select Case sMachineButtonType Case 1 ButtonToAdd = New NoStateButton(sTImageName, sTLuaScriptName, sFImageName, sFLuaScriptName, sStateFlag) Case 2 ButtonToAdd = New TwoStateButton(sTImageName, sTLuaScriptName, sFImageName, sFLuaScriptName, sStateFlag) Case 3 ButtonToAdd = New ThreeStateButton(sTImageName, sTLuaScriptName, sFImageName, sFLuaScriptName, sStateFlag) Case 4 ButtonToAdd = New DoubleCommandButton(sTImageName, sTLuaScriptName, sFImageName, sFLuaScriptName, sStateFlag) Case 5 ButtonToAdd = New PressedCommandButton(sTImageName, sTLuaScriptName, sFImageName, sFLuaScriptName, sStateFlag) End Select If Not IsNothing(ButtonToAdd) Then m_ButtonJogList.Add(ButtonToAdd) End If End If End While ' attivo la visualizzazione dei comandi SetVisibilityJogButtuns() ' lo stato di questi comandi vieni carico dalla lettura del PLC (refresh) '----------- FINE NUOVI BOTTONI------------ ' Se rientro da simulazione If m_ActiveDirectCutPage = DirectCutPages.SingleCut Then LeftButtonGrid.Children.Add(m_SingleCut) Return ElseIf m_ActiveDirectCutPage = DirectCutPages.SingleCutAuto Then LeftButtonGrid.Children.Add(m_SingleCutAuto) Return ElseIf m_ActiveDirectCutPage = DirectCutPages.MultipleCut Then LeftButtonGrid.Children.Add(m_MultipleCut) Return ElseIf m_ActiveDirectCutPage = DirectCutPages.GridCut Then LeftButtonGrid.Children.Add(m_GridCut) Return ElseIf m_ActiveDirectCutPage = DirectCutPages.FlatteningCut Then LeftButtonGrid.Children.Add(m_FlatteningCut) Return ElseIf m_ActiveDirectCutPage = DirectCutPages.Polishing Then LeftButtonGrid.Children.Add(m_Polishing) Return ElseIf m_ActiveDirectCutPage = DirectCutPages.SawTest Then LeftButtonGrid.Children.Add(m_SawTest) Return ElseIf m_ActiveDirectCutPage = DirectCutPages.SingleDrill Then LeftButtonGrid.Children.Add(m_SingleDrill) Return End If ' Caso standard m_ActiveDirectCutPage = DirectCutPages.DirectCut ' Se macchina fotografica abilitata PhotoBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.MAN_PHOTO) ' Attivo le lavorazioni solo se esiste il grezzo Dim bRawOk As Boolean = (GetRawHeight() > EPS_SMALL) If m_bManulaCut Then ' anche se non è presente un grezzo mantengo abilitato il bottone SingleCutBtn.IsEnabled = True Else SingleCutBtn.IsEnabled = bRawOk End If MultipleCutBtn.IsEnabled = bRawOk GridCutBtn.IsEnabled = bRawOk SingleDrillBtn.IsEnabled = bRawOk FlatteningCutBtn.IsEnabled = bRawOk PolishingBtn.IsEnabled = (bRawOk And m_MainWindow.m_CurrentMachine.bPolishing) SawTestBtn.IsEnabled = bRawOk ' Nascondo i pezzi in parcheggio HideParkedParts() EgtZoom(ZM.ALL) End Sub Private Sub SetVisibilityJogButtuns() XYBtn.Visibility = Visibility.Collapsed ZCBtn.Visibility = Visibility.Collapsed ZBBtn.Visibility = Visibility.Collapsed RemoteBtn.Visibility = Visibility.Collapsed Dim Item As MachineButton = Nothing For Each Item In m_ButtonJogList Select Case Item.StateFlag.Trim Case K_XYJOG XYBtn.Visibility = Visibility.Visible XYBtn.Foreground = Brushes.White XYBtn.ToolTip = "X - Y" Case K_ZCJOG ZCBtn.Visibility = Visibility.Visible ZCBtn.Foreground = Brushes.White ZCBtn.ToolTip = "Z - C" Case K_ZBJOG ZBBtn.Visibility = Visibility.Visible ZBBtn.Foreground = Brushes.White ZBBtn.ToolTip = "Z - B" Case K_REMOTE RemoteBtn.Visibility = Visibility.Visible RemoteBtn.Foreground = Brushes.White RemoteBtn.Content = "Remote" End Select Next End Sub Private Sub PhotoBtn_Click(sender As Object, e As RoutedEventArgs) Handles PhotoBtn.Click EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx()) ' Se macchina fotografica collegata, faccio una foto If m_MainWindow.m_Camera.GetCameraLink() Then If Not m_MainWindow.m_Camera.CameraClick() Then m_MainWindow.m_CurrentProjectPageUC.SetErrorMessage(EgtMsg(90313)) 'Fotografia non riuscita End If ' Altrimenti lancio browser di immagini Else m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_CurrentProjectPageUC) m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_PhotoPage) m_MainWindow.m_ActivePage = MainWindow.Pages.Photo m_MainWindow.m_PrevActivePage = MainWindow.Pages.DirectCut End If End Sub Private Sub RawPartBtn_Click(sender As Object, e As RoutedEventArgs) Handles RawPartBtn.Click m_MainWindow.m_CurrentProjectPageUC.CurrProjGrid.Visibility = Windows.Visibility.Hidden m_MainWindow.m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(Me) m_MainWindow.m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_MainWindow.m_RawPartPage) m_MainWindow.m_ActivePage = MainWindow.Pages.RawPart m_MainWindow.m_PrevActivePage = MainWindow.Pages.DirectCut End Sub Private Sub ManualBtn_Click(sender As Object, e As RoutedEventArgs) Handles ManualBtn.Click LeftButtonGrid.Children.Add(m_ManualAxesMove) m_ActiveDirectCutPage = DirectCutPages.ManualAxesMove End Sub Private Sub SingleCutBtn_Click(sender As Object, e As RoutedEventArgs) Handles SingleCutBtn.Click If m_bManulaCut Then LeftButtonGrid.Children.Add(m_SingleCutAuto) m_ActiveDirectCutPage = DirectCutPages.SingleCutAuto Else LeftButtonGrid.Children.Add(m_SingleCut) m_ActiveDirectCutPage = DirectCutPages.SingleCut End If End Sub Private Sub MultipleCutBtn_Click(sender As Object, e As RoutedEventArgs) Handles MultipleCutBtn.Click LeftButtonGrid.Children.Add(m_MultipleCut) m_ActiveDirectCutPage = DirectCutPages.MultipleCut End Sub Private Sub GridCutBtn_Click(sender As Object, e As RoutedEventArgs) Handles GridCutBtn.Click LeftButtonGrid.Children.Add(m_GridCut) m_ActiveDirectCutPage = DirectCutPages.GridCut End Sub Private Sub FlatteningCutBtn_Click(sender As Object, e As RoutedEventArgs) Handles FlatteningCutBtn.Click LeftButtonGrid.Children.Add(m_FlatteningCut) m_ActiveDirectCutPage = DirectCutPages.FlatteningCut End Sub Private Sub PolishingBtn_Click(sender As Object, e As RoutedEventArgs) Handles PolishingBtn.Click LeftButtonGrid.Children.Add(m_Polishing) m_ActiveDirectCutPage = DirectCutPages.Polishing End Sub Private Sub CopyTemplateBtn_Click(sender As Object, e As RoutedEventArgs) Handles CopyTemplateBtn.Click LeftButtonGrid.Children.Add(m_CopyTemplate) m_ActiveDirectCutPage = DirectCutPages.CopyTemplate End Sub Private Sub SawTestBtn_Click(sender As Object, e As RoutedEventArgs) Handles SawTestBtn.Click LeftButtonGrid.Children.Add(m_SawTest) m_ActiveDirectCutPage = DirectCutPages.SawTest End Sub Private Sub SingleDrillBtn_Click(sender As Object, e As RoutedEventArgs) Handles SingleDrillBtn.Click LeftButtonGrid.Children.Add(m_SingleDrill) m_ActiveDirectCutPage = DirectCutPages.SingleDrill End Sub Private Sub ControlsMachineBtn_Click(sender As Object, e As RoutedEventArgs) Handles ControlsMachineBtn.Click If ControlsMachineBtn.IsChecked Then m_ControlsMachineButton = New ControlsMachineButtonUC m_ControlsMachineButton.SetValue(Grid.RowProperty, 1) m_NewMachineButtonsType = m_ControlsMachineButton.GetPrivateProfileMachineButtons(S_CONTROLMACHBUTTONS, "Button1", Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, m_MainWindow.GetMachIniFile()) MachineButtonGrid.Children.Add(m_ControlsMachineButton) If VacuumMachineBtn.IsChecked Then MachineButtonGrid.Children.Remove(m_VacuumMachineButton) VacuumMachineBtn.IsChecked = False End If Else MachineButtonGrid.Children.Remove(m_ControlsMachineButton) End If End Sub Private Sub VacuumMachineBtn_Click(sender As Object, e As RoutedEventArgs) Handles VacuumMachineBtn.Click If VacuumMachineBtn.IsChecked Then MachineButtonGrid.Children.Add(m_VacuumMachineButton) If ControlsMachineBtn.IsChecked Then MachineButtonGrid.Children.Remove(m_ControlsMachineButton) ControlsMachineBtn.IsChecked = False End If Else MachineButtonGrid.Children.Remove(m_VacuumMachineButton) End If End Sub '------------------NUOVI BOTTONI PER GESTIONE JOYSTICK------------------------------------------------- Private Sub XYBtn_Click(sender As Object, e As RoutedEventArgs) Handles XYBtn.Click ' riverco in elenco il bottone XYJog Dim XYJogButton As MachineButton = Nothing Dim ItemButton As MachineButton = Nothing For Each ItemButton In m_ButtonJogList If ItemButton.StateFlag = K_XYJOG Then XYJogButton = ItemButton Exit For End If Next If IsNothing(XYJogButton) Then Return ' eseguo lo script lua associato XYJogButton.ExecuteMDICommand(XYJogButton.TLuaScriptName) ' che comunica al PLC di cambiare lo stato, la modifica dello stato è intercettata dalla funzione Refresh che avvia il metodo Changed End Sub Friend Sub XYJogChanged(bXYAxes As Boolean) ' devo decodificare il tipo di pulsante, quindi eseguire la conversione... Dim XYJogButton As TwoStateButton = Nothing For Each MachineButton As MachineButton In m_ButtonJogList ' elimino gli spazi ad inizio e fine della stringa If MachineButton.StateFlag.Trim = K_XYJOG Then XYJogButton = MachineButton Exit For End If Next If Not IsNothing(XYJogButton) Then XYJogButton.SetIsChecked(bXYAxes) XYBtn.IsChecked = bXYAxes End If End Sub Private Sub ZCBtn_Click(sender As Object, e As RoutedEventArgs) Handles ZCBtn.Click ' riverco in elenco il bottone ZCYJog Dim ZJogButton As MachineButton = Nothing Dim ItemButton As MachineButton = Nothing For Each ItemButton In m_ButtonJogList If ItemButton.StateFlag = K_ZCJOG Then ZJogButton = ItemButton Exit For End If Next If IsNothing(ZJogButton) Then Return ' eseguo lo script lua associato ZJogButton.ExecuteMDICommand(ZJogButton.TLuaScriptName) End Sub Friend Sub ZCJogChanged(bZAxes As Boolean) ' devo decodificare il tipo di pulsante, quindi eseguire la conversione... Dim ZJogButton As TwoStateButton = Nothing For Each MachineButton As MachineButton In m_ButtonJogList If MachineButton.StateFlag.Trim = K_ZCJOG Then ZJogButton = MachineButton Exit For End If Next If Not IsNothing(ZJogButton) Then ZJogButton.SetIsChecked(bZAxes) ZCBtn.IsChecked = bZAxes End If End Sub Private Sub ZBBtn_Click(sender As Object, e As RoutedEventArgs) Handles ZBBtn.Click ' riverco in elenco il bottone ZCYJog Dim ZBJogButton As MachineButton = Nothing Dim ItemButton As MachineButton = Nothing For Each ItemButton In m_ButtonJogList If ItemButton.StateFlag = K_ZBJOG Then ZBJogButton = ItemButton Exit For End If Next If IsNothing(ZBJogButton) Then Return ' eseguo lo script lua associato ZBJogButton.ExecuteMDICommand(ZBJogButton.TLuaScriptName) End Sub Friend Sub ZBJogChanged(bBCAxes As Boolean) ' devo decodificare il tipo di pulsante, quindi eseguire la conversione... Dim BCJogButton As TwoStateButton = Nothing For Each MachineButton As MachineButton In m_ButtonJogList If MachineButton.StateFlag.Trim = K_ZBJOG Then BCJogButton = MachineButton Exit For End If Next If Not IsNothing(BCJogButton) Then BCJogButton.SetIsChecked(bBCAxes) ZBBtn.IsChecked = bBCAxes End If End Sub Private Sub RemoteBtn_Click(sender As Object, e As RoutedEventArgs) Handles RemoteBtn.Click Dim RemoteButton As MachineButton = Nothing Dim ItemButton As MachineButton = Nothing For Each ItemButton In m_ButtonJogList If ItemButton.StateFlag = K_REMOTE Then RemoteButton = ItemButton Exit For End If Next If IsNothing(RemoteButton) Then Return ' eseguo lo script lua associato Dim CurrentBtn As Primitives.ToggleButton = e.Source Dim sLuaFileName As String = String.Empty ' verifico lo stato del bottone per avviare il giusto script If CurrentBtn.IsChecked() Then sLuaFileName = RemoteButton.TLuaScriptName Else sLuaFileName = RemoteButton.FLuaScriptName End If RemoteButton.ExecuteMDICommand(sLuaFileName) End Sub Friend Sub RemoteChanged(bRemote As Boolean) ' devo decodificare il tipo di pulsante, quindi eseguire la conversione... Dim RemoteButton As TwoStateButton = Nothing For Each MachineButton As MachineButton In m_ButtonJogList If MachineButton.StateFlag.Trim = K_REMOTE Then RemoteButton = MachineButton Exit For End If Next If Not IsNothing(RemoteButton) Then RemoteButton.SetIsChecked(bRemote) RemoteBtn.IsChecked = bRemote End If End Sub '------------------NUOVI BOTTONI PER GESTIONE JOYSTICK------------------------------------------------- Private Sub MachViewModeBtn_Click(sender As Object, e As RoutedEventArgs) Handles MachViewModeBtn.Click If m_bShowMachine Then ' aggiorno lo stato Select Case m_nMachLook Case MCH_LOOK.ALL m_nMachLook = MCH_LOOK.TAB_HEAD Case MCH_LOOK.TAB_HEAD m_nMachLook = MCH_LOOK.TAB_TOOL Case Else m_nMachLook = MCH_LOOK.ALL End Select ' aggiorno lo stato della macchina e la sua visualizzazione EgtSetMachineLook(m_nMachLook) EgtDraw() End If End Sub Friend Sub DirectCutPage_Unloaded(sender As Object, e As RoutedEventArgs) Handles Me.Unloaded Select Case m_ActiveDirectCutPage Case DirectCutPages.DirectCut Or DirectCutPages.ManualAxesMove ' Non è necessario fare alcunché Case DirectCutPages.SingleCut LeftButtonGrid.Children.Remove(m_SingleCut) Case DirectCutPages.SingleCutAuto LeftButtonGrid.Children.Remove(m_SingleCutAuto) Case DirectCutPages.MultipleCut LeftButtonGrid.Children.Remove(m_MultipleCut) Case DirectCutPages.GridCut LeftButtonGrid.Children.Remove(m_GridCut) Case DirectCutPages.FlatteningCut LeftButtonGrid.Children.Remove(m_FlatteningCut) Case DirectCutPages.Polishing LeftButtonGrid.Children.Remove(m_Polishing) Case DirectCutPages.CopyTemplate LeftButtonGrid.Children.Remove(m_CopyTemplate) Case DirectCutPages.SawTest LeftButtonGrid.Children.Remove(m_SawTest) Case DirectCutPages.SingleDrill LeftButtonGrid.Children.Remove(m_SingleDrill) End Select If ControlsMachineBtn.IsChecked Then MachineButtonGrid.Children.Remove(m_ControlsMachineButton) ControlsMachineBtn.IsChecked = False End If If VacuumMachineBtn.IsChecked Then MachineButtonGrid.Children.Remove(m_VacuumMachineButton) VacuumMachineBtn.IsChecked = False End If End Sub Private Sub ManualModeBtn_Click(sender As Object, e As RoutedEventArgs) Handles ManualModeBtn.Click ' Imposto modalità manuale della macchina Dim nResult As Short = m_CN.DGeneralFunctions_WriteCncMode(7) ' Modalità manuale End Sub '' ------------------------ GESTIONE SECONDA PAGINA ------------------------ 'Private Sub ClearButton(nCount As Integer) ' Dim nEndIndex As Integer ' If m_bIsFirstPage Then ' nEndIndex = If(nCount < 8, nCount, 8) ' Else ' nEndIndex = If(nCount < 16, nCount - 8, 8) ' End If ' For index As Integer = 1 To nEndIndex ' GetLabel(index).Text = String.Empty ' GetImage(index).Source = Nothing ' GetButton(index).Visibility = Windows.Visibility.Visible ' Next ' For index As Integer = nEndIndex + 1 To 8 ' GetLabel(index).Text = String.Empty ' GetImage(index).Source = Nothing ' GetButton(index).Visibility = Windows.Visibility.Hidden ' Next 'End Sub 'Private Sub LoadPage() ' Dim nDeltaSecondPage As Integer = 8 ' ' Leggo numero di componenti presenti ' Dim nCompoNumber As Integer = GetPrivateProfileInt("Compo", "Count", 0, m_MainWindow.GetIniFile()) ' ' Calcolo indici a seconda della pagina in cui sono ' If m_bIsFirstPage Then ' ClearButton(nCompoNumber) ' nDeltaSecondPage = 0 ' Else ' ClearButton(nCompoNumber) ' nDeltaSecondPage = 8 ' End If ' ' Creazione converter da String a ImageSource ' Dim ImageConverter As New ImageSourceConverter ' Dim ThicknessConverter As New ThicknessConverter ' 'Assegnazione immagine e testo ai Button ' For index As Integer = 1 To 8 ' Dim CustomThickness As New Thickness(0) ' Dim nCompoName As Integer = GetPrivateProfileInt("Compo" & index + nDeltaSecondPage, "Name", 0, m_MainWindow.GetIniFile()) ' Dim sCompoImage As String = "" ' Dim sCompoImageSource As ImageSource ' 'verifico presenza immagine e la aggiungo ' If GetPrivateProfileString("Compo" & index + nDeltaSecondPage, "Image", "", sCompoImage, m_MainWindow.GetIniFile()) <> 0 Then ' Try ' sCompoImageSource = ImageConverter.ConvertFromString(m_MainWindow.GetResourcesDir() & "\" & sCompoImage) ' GetImage(index).Height = 65 ' GetImage(index).Width = 65 ' GetImage(index).Source = sCompoImageSource ' Catch ex As Exception ' EgtOutLog("Error loading image " & sCompoImage) ' sCompoImage = String.Empty ' GetImage(index).Height = 0 ' GetImage(index).Width = 0 ' CustomThickness.Right = 0 ' GetImage(index).Margin = CustomThickness ' End Try ' Else ' 'Se non c'è l'immagine azzero la distanza tra testo e immagine ' CustomThickness.Right = 0 ' GetImage(index).Margin = CustomThickness ' End If ' 'verifico presenza testo ' If nCompoName > 0 Then ' Dim sCompoName As String = EgtMsg(MSG_COMPONENTPAGEUC + nCompoName) ' 'verifico presenza immagine ' If sCompoImage.Length > 0 Then ' 'se la lunghezza del testo è maggiore di 15 lo taglio ' If sCompoName.Length > 15 Then ' sCompoName = sCompoName.Substring(0, 15) ' End If ' GetLabel(index).Text = sCompoName ' 'Se ci sono sia testo che immagine imposto un margine di 10 ' CustomThickness.Right = 10 ' GetImage(index).Margin = CustomThickness ' Else ' 'se l'immagine non c'è e il testo è maggiore di 20 lo taglio ' If sCompoName.Length > 20 Then ' sCompoName = sCompoName.Substring(0, 20) ' End If ' GetLabel(index).Text = sCompoName ' End If ' Else ' 'Se non c'è testo azzero la distanza tra testo e immagine ' CustomThickness.Right = 0 ' GetImage(index).Margin = CustomThickness ' End If ' Next 'End Sub '' Gestione bottone altri componenti 'Private Sub Compo9_Click(sender As Object, e As RoutedEventArgs) Handles Compo9.Click ' If m_bIsFirstPage Then ' m_bIsFirstPage = False ' LoadPage() ' 'Compo9.SetValue(Grid.ColumnProperty, 1) ' 'Compo9.SetValue(Grid.ColumnSpanProperty, 1) ' 'ImageCompo9.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("/Resources/NumericKeyboardArrow.png", UriKind.Relative)) ' 'ImageCompo9.Visibility = Windows.Visibility.Visible ' 'LabelCompo9.Visibility = Windows.Visibility.Hidden ' Compo9.SetValue(Grid.ColumnProperty, 0) ' Compo9.SetValue(Grid.ColumnSpanProperty, 2) ' ImageCompo9.Visibility = Windows.Visibility.Hidden ' LabelCompo9.Visibility = Windows.Visibility.Visible ' Else ' m_bIsFirstPage = True ' LoadPage() ' Compo9.SetValue(Grid.ColumnProperty, 0) ' Compo9.SetValue(Grid.ColumnSpanProperty, 2) ' ImageCompo9.Visibility = Windows.Visibility.Hidden ' LabelCompo9.Visibility = Windows.Visibility.Visible ' End If 'End Sub End Class