From 5d2299a0b2977a3c99c8ca2d0459c3df311049d2 Mon Sep 17 00:00:00 2001 From: Emmanuele Sassi Date: Tue, 26 Jan 2016 14:59:03 +0000 Subject: [PATCH] OmagCUT : - Migliorata gestione attrezzaggio e scelta lavorazioni. --- AlarmsPageUC.xaml | 31 +- AlarmsPageUC.xaml.vb | 7 +- CNCommunication.vb | 14 + CN_generico.vb | 26 +- ChooseMachining.xaml.vb | 129 +++++- ConstMachIni.vb | 8 + CurrentMachine.vb | 132 ++++++ Keyboard.xaml.vb | 427 ------------------- M_Num.vb | 6 + MachineButtonsUC.xaml | 40 +- MachineButtonsUC.xaml.vb | 245 ++++++----- MainWindow.xaml.vb | 9 +- OmagCUT.vbproj | 31 +- OmagCUTDictionary.xaml | 4 +- OmagCUTDictionary.xaml.vb | 193 +++++++-- Resources/ToolChangerPos.png | Bin 0 -> 857 bytes SetUpPage.xaml | 462 +++++++++++++++++++-- SetUpPage.xaml.vb | 774 ++++++++++++++++++++++++++++++++++- ToolChangerPosUC.xaml | 31 ++ ToolChangerPosUC.xaml.vb | 10 + ToolsDbPageUC.xaml.vb | 212 +++++----- WorkInProgressPageUC.xaml.vb | 8 +- 22 files changed, 1998 insertions(+), 801 deletions(-) delete mode 100644 Keyboard.xaml.vb create mode 100644 Resources/ToolChangerPos.png create mode 100644 ToolChangerPosUC.xaml create mode 100644 ToolChangerPosUC.xaml.vb diff --git a/AlarmsPageUC.xaml b/AlarmsPageUC.xaml index 871347d..60b80dd 100644 --- a/AlarmsPageUC.xaml +++ b/AlarmsPageUC.xaml @@ -26,14 +26,15 @@ - + - + + @@ -109,26 +110,36 @@ - - - - + + + + + + - + - - diff --git a/AlarmsPageUC.xaml.vb b/AlarmsPageUC.xaml.vb index 7b74314..5c6aeb6 100644 --- a/AlarmsPageUC.xaml.vb +++ b/AlarmsPageUC.xaml.vb @@ -36,6 +36,8 @@ Public Class AlarmsPageUC CutExtraLenTxBl.Text = EgtMsg(MSG_ALARMSPAGEUC + 6) AngleCutExtraLenTxBl.Text = EgtMsg(MSG_ALARMSPAGEUC + 7) CompleteCutsTxBl.Text = EgtMsg(MSG_ALARMSPAGEUC + 8) + HolesOffsetTxBl.Text = EgtMsg(MSG_ALARMSPAGEUC + 9) + HolesOverlapTxBl.Text = EgtMsg(MSG_ALARMSPAGEUC + 10) End Sub @@ -207,6 +209,10 @@ Public Class AlarmsPageUC End If End Sub + Private Sub SetUpBtn_Click(sender As Object, e As RoutedEventArgs) Handles SetUpBtn.Click + m_MainWindow.m_MachinePageUC.MachinePageGrid.Children.Remove(Me) + m_MainWindow.m_MachinePageUC.MachinePageGrid.Children.Add(New SetUpPage) + End Sub Private Sub SafeZTxBx_EgtClosed(sender As Object, e As EventArgs) Handles SafeZTxBx.EgtClosed Dim dSafeZ As Double = 0 @@ -234,7 +240,6 @@ Public Class AlarmsPageUC End If End Sub - Friend Sub NcError() If m_CN.sz_NC_error_messages.Count > 0 Then NCErrorMessages.Text = m_CN.sz_NC_error_messages(0) diff --git a/CNCommunication.vb b/CNCommunication.vb index fc9ece6..605b33e 100644 --- a/CNCommunication.vb +++ b/CNCommunication.vb @@ -150,6 +150,13 @@ Public Class CNCommunication m_CN.SetCnDataVar(CN_generico.CnData.SpeedOvr, sVal) GetPrivateProfileString(S_NCDATA, K_POWER, "", sVal, m_MainWindow.GetMachIniFile()) m_CN.SetCnDataVar(CN_generico.CnData.Power, sVal) + GetPrivateProfileString(S_NCDATA, "Spindle", "", sVal, m_MainWindow.GetMachIniFile()) + m_CN.SetCnDataVar(CN_generico.CnData.Spindle, sVal) + GetPrivateProfileString(S_NCDATA, "Coolant", "", sVal, m_MainWindow.GetMachIniFile()) + m_CN.SetCnDataVar(CN_generico.CnData.Coolant, sVal) + GetPrivateProfileString(S_NCDATA, "Laser", "", sVal, m_MainWindow.GetMachIniFile()) + m_CN.SetCnDataVar(CN_generico.CnData.Laser, sVal) + ' Inizializzo la comunicazione m_CN.Init() Catch ex As Exception @@ -265,6 +272,13 @@ Public Class CNCommunication m_MainWindow.m_DirectCutPageUC.m_MachineButtons.FiveAxisBtn.IsChecked = False End If + If m_CN.bLaserState Then + m_MainWindow.m_DirectCutPageUC.m_MachineButtons.LaserStateChanged(True) + Else + + End If + + End Sub Friend Function SendProgram(ByVal sCncPath As String, ByVal nNumProg As Integer) As Boolean diff --git a/CN_generico.vb b/CN_generico.vb index cb5d09f..c6c6f9a 100644 --- a/CN_generico.vb +++ b/CN_generico.vb @@ -8,15 +8,18 @@ Public MustInherit Class CN_generico Public Const MAX_VAR As Short = 100 Public Const MAX_VALUES As Short = 9 ' Max. index to read the data from the FXServer array Public Const MAX_TOOLS As Short = 100 - Public Const NUM_DATA = 7 ' Numero di dati del CN (Speed,Feed,...) + Public Const NUM_DATA = 10 ' Numero di dati del CN (Speed,Feed,...) Public Enum CnData - Mode = 0 - JogIncr = 1 - Feed = 2 - FeedOvr = 3 - Speed = 4 - SpeedOvr = 5 - Power = 6 + Mode = 0 + JogIncr = 1 + Feed = 2 + FeedOvr = 3 + Speed = 4 + SpeedOvr = 5 + Power = 6 + Spindle = 7 + Coolant = 8 + Laser = 9 End Enum #End Region @@ -88,7 +91,11 @@ Public MustInherit Class CN_generico Public sz_NC_error_messages As ObservableCollection(Of String) Public b_PLC_error As Boolean Public b_NC_error As Boolean - Public bIsErrorMessage As Boolean = True + Public bIsErrorMessage As Boolean = True + + Public bSpindleState As Boolean + Public bCoolantState As Boolean + Public bLaserState As Boolean Public m_szCnDataVar(NUM_DATA - 1) As String @@ -96,7 +103,6 @@ Public MustInherit Class CN_generico Public Event NewPosDeltaData(ByVal sender As Object) Public Event NewVarChanged(ByVal sender As Object) - Protected Overridable Sub OnNewPositionData() RaiseEvent NewPositionData(0) End Sub diff --git a/ChooseMachining.xaml.vb b/ChooseMachining.xaml.vb index a21176c..72a89d9 100644 --- a/ChooseMachining.xaml.vb +++ b/ChooseMachining.xaml.vb @@ -49,7 +49,15 @@ Public Class ChooseMachining ChooseMachiningGrid.Children.Remove(AuxiliaryMachiningTxBl) ChooseMachiningGrid.Children.Remove(AuxiliaryMachiningCmBx) Case CurrentMachine.MountedToolConfigs.SAWANDAUXTOOL, CurrentMachine.MountedToolConfigs.MANUALTOOLCHANGER, CurrentMachine.MountedToolConfigs.TOOLCHANGER - ' Definizione di due riga della tabella con la giusta altezza + 'Creo lista lavorazioni froretto e fresa + If m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.SAWANDAUXTOOL Then + CreateMachiningList(MCH_MY.DRILLING, m_CurrentMachine.sCurrDrill, m_DrillingList) + CreateMachiningList(MCH_MY.MILLING, m_CurrentMachine.sCurrMill, m_MillingList) + ElseIf m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.MANUALTOOLCHANGER Or m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.TOOLCHANGER Then + CreateMachiningList(MCH_MY.DRILLING, m_DrillingList) + CreateMachiningList(MCH_MY.MILLING, m_MillingList) + End If + ' Definizione di due righe della tabella con la giusta altezza For Index = 0 To 1 Dim Row As New RowDefinition Row.Height = New GridLength(0.5, GridUnitType.Star) @@ -65,26 +73,40 @@ Public Class ChooseMachining End Select CurrSawingCmBx.SelectedItem = If(Not IsNothing(m_SawingList(0)), m_SawingList(0), Nothing) - m_AuxiliaryMachiningTypeList.Add("Nessuna") - If m_CurrentMachine.bDrilling Then - m_AuxiliaryMachiningTypeList.Add("Fresatura") - If m_CurrentMachine.bMilling Then - m_AuxiliaryMachiningTypeList.Add("Foratura") - If m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.MANUALTOOLCHANGER Or m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.TOOLCHANGER Then - m_AuxiliaryMachiningTypeList.Add("Entrambe") + If Not m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.SAW Then + m_AuxiliaryMachiningTypeList.Add("Nessuna") + If m_CurrentMachine.bDrilling Then + m_AuxiliaryMachiningTypeList.Add("Fresatura") + If m_CurrentMachine.bMilling Then + m_AuxiliaryMachiningTypeList.Add("Foratura") + If m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.MANUALTOOLCHANGER Or m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.TOOLCHANGER Then + m_AuxiliaryMachiningTypeList.Add("Entrambe") + End If + End If + Else + If m_CurrentMachine.bMilling Then + m_AuxiliaryMachiningTypeList.Add("Foratura") End If End If - Else - If m_CurrentMachine.bMilling Then - m_AuxiliaryMachiningTypeList.Add("Foratura") + If m_CurrentMachine.sCurrDrilling <> String.Empty Then + If m_CurrentMachine.sCurrMilling <> String.Empty Then + AuxiliaryMachiningCmBx.SelectedItem = "Entrambe" + Else + AuxiliaryMachiningCmBx.SelectedItem = "Foratura" + End If + Else + If m_CurrentMachine.sCurrMilling <> String.Empty Then + AuxiliaryMachiningCmBx.SelectedItem = "Fresatura" + Else + AuxiliaryMachiningCmBx.SelectedItem = "Nessuna" + End If End If End If - AuxiliaryMachiningCmBx.SelectedItem = "Nessuna" End Sub Private Sub CreateMachiningList(MachiningType As Integer, CurrTool As String, MachiningList As List(Of String)) - 'Cerco tutte le lavorazioni che utilizzano l'utensile corrente le aggiungo alla lista + 'Cerco tutte le lavorazioni che utilizzano l'utensile corrente e le aggiungo alla lista Dim MachiningTool As String = String.Empty Dim MachiningName As String = String.Empty If EgtMdbGetFirstMachining(MachiningType, MachiningName) Then @@ -104,6 +126,53 @@ Public Class ChooseMachining End Sub + Private Sub CreateMachiningList(MachiningType As Integer, MachiningList As List(Of String)) + 'Cerco tutte le lavorazioni che utilizzano un utensile presente nel portautensile e le aggiungo alla lista + Dim MachiningTool As String = String.Empty + Dim MachiningName As String = String.Empty + Dim ToolFound As Boolean = False + If EgtMdbGetFirstMachining(MachiningType, MachiningName) Then + EgtMdbSetCurrMachining(MachiningName) + EgtMdbGetCurrMachiningParam(MCH_MP.TOOL, MachiningTool) + For Each ToolChangerPos In m_CurrentMachine.ToolChanger + If MachiningTool = ToolChangerPos.sTool Then + MachiningList.Add(MachiningName) + ToolFound = True + Exit For + End If + Next + If Not ToolFound Then + For Each ToolChangerPos In m_CurrentMachine.ManualToolChanger + If MachiningTool = ToolChangerPos.sTool Then + MachiningList.Add(MachiningName) + Exit For + End If + Next + End If + While EgtMdbGetNextMachining(MachiningType, MachiningName) + ToolFound = False + EgtMdbSetCurrMachining(MachiningName) + EgtMdbGetCurrMachiningParam(MCH_MP.TOOL, MachiningTool) + For Each ToolChangerPos In m_CurrentMachine.ToolChanger + If MachiningTool = ToolChangerPos.sTool Then + MachiningList.Add(MachiningName) + ToolFound = True + Exit For + End If + Next + If Not ToolFound Then + For Each ToolChangerPos In m_CurrentMachine.ManualToolChanger + If MachiningTool = ToolChangerPos.sTool Then + MachiningList.Add(MachiningName) + Exit For + End If + Next + End If + End While + End If + + End Sub + Private Sub AuxiliaryMachiningCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles AuxiliaryMachiningCmBx.SelectionChanged Select Case AuxiliaryMachiningCmBx.SelectedItem Case "Nessuna" @@ -114,13 +183,15 @@ Public Class ChooseMachining m_RowNumber = 8 End If ButtonsGrid.SetValue(Grid.RowProperty, 5) + m_MainWindow.m_CurrentMachine.sCurrDrilling = String.Empty + m_MainWindow.m_CurrentMachine.sCurrMilling = String.Empty CurrDrillingTxBl.Visibility = Windows.Visibility.Hidden CurrDrillingCmBx.Visibility = Windows.Visibility.Hidden CurrMillingTxBl.Visibility = Windows.Visibility.Hidden CurrMillingCmBx.Visibility = Windows.Visibility.Hidden Me.Height = 341.2 Case "Foratura" - ' Definizione di due riga della tabella con la giusta altezza + ' Definizione di due righe della tabella con la giusta altezza If m_RowNumber < 10 Then For Index = 1 To 10 - m_RowNumber Dim Row As New RowDefinition @@ -132,14 +203,17 @@ Public Class ChooseMachining CurrDrillingTxBl.SetValue(Grid.RowProperty, 4) CurrDrillingCmBx.SetValue(Grid.RowProperty, 5) ButtonsGrid.SetValue(Grid.RowProperty, 7) - CreateMachiningList(MCH_MY.DRILLING, m_CurrentMachine.sCurrDrill, m_DrillingList) + If m_CurrentMachine.sCurrDrilling <> String.Empty Then + CurrDrillingCmBx.SelectedItem = m_CurrentMachine.sCurrDrilling + End If + m_MainWindow.m_CurrentMachine.sCurrMilling = String.Empty CurrDrillingTxBl.Visibility = Windows.Visibility.Visible CurrDrillingCmBx.Visibility = Windows.Visibility.Visible CurrMillingTxBl.Visibility = Windows.Visibility.Hidden CurrMillingCmBx.Visibility = Windows.Visibility.Hidden Me.Height = 426.5 Case "Fresatura" - ' Definizione di due riga della tabella con la giusta altezza + ' Definizione di due righe della tabella con la giusta altezza If m_RowNumber < 10 Then For Index = 1 To 10 - m_RowNumber Dim Row As New RowDefinition @@ -151,14 +225,17 @@ Public Class ChooseMachining CurrMillingTxBl.SetValue(Grid.RowProperty, 4) CurrMillingCmBx.SetValue(Grid.RowProperty, 5) ButtonsGrid.SetValue(Grid.RowProperty, 7) - CreateMachiningList(MCH_MY.MILLING, m_CurrentMachine.sCurrMill, m_MillingList) + If m_CurrentMachine.sCurrMilling <> String.Empty Then + CurrMillingCmBx.SelectedItem = m_CurrentMachine.sCurrMilling + End If + m_MainWindow.m_CurrentMachine.sCurrDrilling = String.Empty CurrDrillingTxBl.Visibility = Windows.Visibility.Hidden CurrDrillingCmBx.Visibility = Windows.Visibility.Hidden CurrMillingTxBl.Visibility = Windows.Visibility.Visible CurrMillingCmBx.Visibility = Windows.Visibility.Visible Me.Height = 426.5 Case "Entrambe" - ' Definizione di quattro riga della tabella con la giusta altezza + ' Definizione di quattro righe della tabella con la giusta altezza If m_RowNumber < 12 Then For Index = 1 To 12 - m_RowNumber Dim Row As New RowDefinition @@ -167,13 +244,17 @@ Public Class ChooseMachining Next m_RowNumber = 12 End If + If m_CurrentMachine.sCurrDrilling <> String.Empty Then + CurrDrillingCmBx.SelectedItem = m_CurrentMachine.sCurrDrilling + End If + If m_CurrentMachine.sCurrMilling <> String.Empty Then + CurrMillingCmBx.SelectedItem = m_CurrentMachine.sCurrMilling + End If CurrDrillingTxBl.SetValue(Grid.RowProperty, 4) CurrDrillingCmBx.SetValue(Grid.RowProperty, 5) CurrMillingTxBl.SetValue(Grid.RowProperty, 6) CurrMillingCmBx.SetValue(Grid.RowProperty, 7) ButtonsGrid.SetValue(Grid.RowProperty, 9) - CreateMachiningList(MCH_MY.DRILLING, m_CurrentMachine.sCurrDrill, m_DrillingList) - CreateMachiningList(MCH_MY.MILLING, m_CurrentMachine.sCurrMill, m_MillingList) CurrDrillingTxBl.Visibility = Windows.Visibility.Visible CurrDrillingCmBx.Visibility = Windows.Visibility.Visible CurrMillingTxBl.Visibility = Windows.Visibility.Visible @@ -186,6 +267,14 @@ Public Class ChooseMachining m_MainWindow.m_CurrentMachine.sCurrSawing = CurrSawingCmBx.SelectedItem End Sub + Private Sub CurrDrillingCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles CurrDrillingCmBx.SelectionChanged + m_MainWindow.m_CurrentMachine.sCurrDrilling = CurrDrillingCmBx.SelectedItem + End Sub + + Private Sub CurrMillingCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles CurrMillingCmBx.SelectionChanged + m_MainWindow.m_CurrentMachine.sCurrMilling = CurrMillingCmBx.SelectedItem + End Sub + Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click DialogResult = True End Sub diff --git a/ConstMachIni.vb b/ConstMachIni.vb index df38e40..ca9153d 100644 --- a/ConstMachIni.vb +++ b/ConstMachIni.vb @@ -51,6 +51,14 @@ Public Const S_MACH_NEST As String = "Nest" Public Const K_MACH_REDUCEDCUT As String = "ReducedCut" + Public Const S_TOOLCHANGER As String = "ToolChanger" + Public Const K_NUMBER As String = "Number" + Public Const K_POS As String = "Pos" + Public Const K_NAME As String = "Name" + Public Const K_MANUALNUMBER As String = "ManualNumber" + Public Const K_MANUALPOS As String = "ManualPos" + Public Const K_MANUALNAME As String = "ManualName" + Public Const S_MACHBUTTONS As String = "MachButtons" Public Const K_BUTTON As String = "Button" diff --git a/CurrentMachine.vb b/CurrentMachine.vb index 285dc94..b8ced7c 100644 --- a/CurrentMachine.vb +++ b/CurrentMachine.vb @@ -42,6 +42,18 @@ Public Class CurrentMachine ' Spessore sottopezzo Private m_dAdditionalTable As Double + ' Numero portautensili presenti + Private m_ToolChangerNum As Double + + ' Lista portautensili + Private m_ToolChanger As New List(Of ToolChangerPos) + + ' Numero portautensili manuali + Private m_ManualToolChangerNum As Double + + ' Lista portautensili + Private m_ManualToolChanger As New List(Of ToolChangerPos) + Friend Enum MountedToolConfigs As Integer SAW = 0 SAWANDAUXTOOL = 1 @@ -199,6 +211,68 @@ Public Class CurrentMachine End Set End Property + Friend ReadOnly Property dToolChangerNum As Double + Get + Return m_ToolChangerNum + End Get + End Property + + Friend ReadOnly Property ToolChanger As List(Of ToolChangerPos) + Get + Return m_ToolChanger + End Get + End Property + + Friend ReadOnly Property ToolChangerName(Index As Integer) As String + Get + If Index >= 0 And Index < m_ToolChanger.Count Then + Return m_ToolChanger(Index).sName + Else + Return String.Empty + End If + End Get + End Property + + Friend WriteOnly Property ToolPos(Index As Integer) As String + Set(value As String) + If value <> m_ToolChanger(Index).sTool Then + m_ToolChanger(Index).sTool = value + WritePrivateProfileString(S_TOOLCHANGER, K_POS & Index + 1, value, sMachIniFile) + End If + End Set + End Property + + Friend ReadOnly Property dManualToolChangerNum As Double + Get + Return m_ManualToolChangerNum + End Get + End Property + + Friend ReadOnly Property ManualToolChanger As List(Of ToolChangerPos) + Get + Return m_ManualToolChanger + End Get + End Property + + Friend ReadOnly Property ManualToolChangerName(Index As Integer) As String + Get + If Index >= 0 And Index < m_ManualToolChanger.Count Then + Return m_ManualToolChanger(Index).sName + Else + Return String.Empty + End If + End Get + End Property + + Friend WriteOnly Property ManualToolPos(Index As Integer) As String + Set(value As String) + If value <> m_ManualToolChanger(Index).sTool Then + m_ManualToolChanger(Index).sTool = value + WritePrivateProfileString(S_TOOLCHANGER, K_MANUALPOS & Index + 1, value, sMachIniFile) + End If + End Set + End Property + #End Region Sub New() @@ -264,6 +338,64 @@ Public Class CurrentMachine ' fresa GetPrivateProfileString(S_MACH, K_CURRMILLING, Nothing, m_sCurrMilling, m_MainWindow.GetIniFile()) + ' Leggo numero di portautensili + m_ToolChangerNum = GetPrivateProfileInt(S_TOOLCHANGER, K_NUMBER, 0, sMachIniFile) + + ' Leggo da file ini nomi e utensili presenti in portautensili + For Index = 1 To m_ToolChangerNum + Dim sName As String = String.Empty + Dim sTool As String = String.Empty + GetPrivateProfileString(S_TOOLCHANGER, K_NAME & Index, Nothing, sName, sMachIniFile) + GetPrivateProfileString(S_TOOLCHANGER, K_POS & Index, Nothing, sTool, sMachIniFile) + m_ToolChanger.Add(New ToolChangerPos(Index, sName, sTool)) + Next + ' Leggo numero portautensili manuali + m_ManualToolChangerNum = GetPrivateProfileInt(S_TOOLCHANGER, K_MANUALNUMBER, 0, sMachIniFile) + + ' Leggo da file ini nomi e utensili manuali presenti + For Index = 1 To m_ManualToolChangerNum + Dim sName As String = String.Empty + Dim sTool As String = String.Empty + GetPrivateProfileString(S_TOOLCHANGER, K_MANUALNAME & Index, Nothing, sName, sMachIniFile) + GetPrivateProfileString(S_TOOLCHANGER, K_MANUALPOS & Index, Nothing, sTool, sMachIniFile) + m_ManualToolChanger.Add(New ToolChangerPos(Index, sName, sTool)) + Next + End Sub End Class + +Class ToolChangerPos + + Private m_sPosition As Integer + Private m_sName As String = String.Empty + Private m_sTool As String = String.Empty + + Public ReadOnly Property sPosition As Integer + Get + Return m_sPosition + End Get + End Property + + Public ReadOnly Property sName As String + Get + Return m_sName + End Get + End Property + + Public Property sTool As String + Get + Return m_sTool + End Get + Set(value As String) + m_sTool = value + End Set + End Property + + Sub New(sPosition As Integer, sName As String, sTool As String) + m_sPosition = sPosition + m_sName = sName + m_sTool = sTool + End Sub + +End Class \ No newline at end of file diff --git a/Keyboard.xaml.vb b/Keyboard.xaml.vb deleted file mode 100644 index 2ae0322..0000000 --- a/Keyboard.xaml.vb +++ /dev/null @@ -1,427 +0,0 @@ -Imports System.Windows.Interop - -Public Class Keyboard - - ' '' Codice che permette di mantenere le proporzioni(Aspect Ratio) della finestra dopo l'ingrondimento o rimpicciolimento della stessa - - ''Public Const ASPECTRATIO As Double = 12 / 5 - - ''Protected Overrides Sub OnSourceInitialized(e As EventArgs) - '' MyBase.OnSourceInitialized(e) - '' Dim source As HwndSource = TryCast(HwndSource.FromVisual(Me), HwndSource) - '' If source IsNot Nothing Then - '' source.AddHook(New HwndSourceHook(AddressOf WinProc)) - '' End If - ''End Sub - - ''Public Const WM_EXITSIZEMOVE As Integer = &H232 - - ''Private Function WinProc(hwnd As IntPtr, msg As Int32, wParam As IntPtr, lParam As IntPtr, ByRef handled As [Boolean]) As IntPtr - '' Dim result As IntPtr = IntPtr.Zero - '' Select Case msg - '' Case WM_EXITSIZEMOVE - '' If True Then - '' Me.Width = Me.Height * ASPECTRATIO - '' Exit Select - '' End If - '' End Select - - '' Return result - ''End Function - - Private m_MainWindow As MainWindow = Application.Current.MainWindow - Friend m_StringResult As String = String.Empty - Friend m_CurrTxBx As TextBox - Friend m_CurrentLbl As String = String.Empty - - ' Variabili che contengono lo stato dei tasti Shift, Alt, Caps Lock - Private m_bShift As Boolean = False - Private m_bAlt As Boolean = False - Private m_CapsLock As Boolean = False - - Sub New() - ' This call is required by the designer. - InitializeComponent() - ' Altre inizializzazioni - Owner = m_MainWindow - ' Imposto Dimensioni e posizione della tastiera - Top = m_MainWindow.Top + (m_MainWindow.Height / 2 - Height / 2) - Left = m_MainWindow.Left + (m_MainWindow.Width / 2 - Width / 2) - End Sub - - Sub New(ByVal sTitle As String, ByVal sValue As String, Optional ByVal CurrentTxBx As TextBox = Nothing) - ' This call is required by the designer. - InitializeComponent() - ' Altre inizializzazioni - Owner = m_MainWindow - CurrNameTxBl.Text = sTitle - CurrTextTxBx.Text = sValue - ' Text box per valore di ritorno - m_CurrTxBx = CurrentTxBx - ' Imposto Dimensioni e posizione della tastiera - Top = m_MainWindow.Top + (m_MainWindow.Height / 2 - Height / 2) - Left = m_MainWindow.Left + (m_MainWindow.Width / 2 - Width / 2) - End Sub - - 'Evita che venga selezionato il testo all'interno della textbox - Private Sub CurrTextTxBx_PreviewMouseDown(sender As Object, e As MouseButtonEventArgs) Handles CurrTextTxBx.PreviewMouseDown - e.Handled = True - CurrTextTxBx.SelectedText = String.Empty - End Sub - - Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click - m_StringResult = CurrTextTxBx.Text - If Not IsNothing(m_CurrTxBx) Then - m_CurrTxBx.Text = CurrTextTxBx.Text - End If - Me.DialogResult = True - Me.Close() - End Sub - - Private Sub ExitBtn_Click(sender As Object, e As RoutedEventArgs) Handles ExitBtn.Click - m_StringResult = String.Empty - Me.DialogResult = False - Me.Close() - End Sub - - Private Sub UpperLowerCase(Value As Boolean) - If Value Then - qBtn.Content = "Q" - wBtn.Content = "W" - eBtn.Content = "E" - rBtn.Content = "R" - tBtn.Content = "T" - yBtn.Content = "Y" - uBtn.Content = "U" - iBtn.Content = "I" - oBtn.Content = "O" - pBtn.Content = "P" - aBtn.Content = "A" - sBtn.Content = "S" - dBtn.Content = "D" - fBtn.Content = "F" - gBtn.Content = "G" - hBtn.Content = "H" - jBtn.Content = "J" - kBtn.Content = "K" - lBtn.Content = "L" - zBtn.Content = "Z" - xBtn.Content = "X" - cBtn.Content = "C" - vBtn.Content = "V" - bBtn.Content = "B" - nBtn.Content = "N" - mBtn.Content = "M" - Else - qBtn.Content = "q" - wBtn.Content = "w" - eBtn.Content = "e" - rBtn.Content = "r" - tBtn.Content = "t" - yBtn.Content = "y" - uBtn.Content = "u" - iBtn.Content = "i" - oBtn.Content = "o" - pBtn.Content = "p" - aBtn.Content = "a" - sBtn.Content = "s" - dBtn.Content = "d" - fBtn.Content = "f" - gBtn.Content = "g" - hBtn.Content = "h" - jBtn.Content = "j" - kBtn.Content = "k" - lBtn.Content = "l" - zBtn.Content = "z" - xBtn.Content = "x" - cBtn.Content = "c" - vBtn.Content = "v" - bBtn.Content = "b" - nBtn.Content = "n" - mBtn.Content = "m" - End If - End Sub - - ' Tasti azione - Private Sub ShiftBtn_Click(sender As Object, e As RoutedEventArgs) Handles Shift1Btn.Click, Shift2Btn.Click - If m_bShift Then - m_bShift = False - UpperLowerCase(False) - Shift1Btn.IsChecked = False - Shift2Btn.IsChecked = False - Else - m_bShift = True - If m_CapsLock Then - UpperLowerCase(False) - Else - UpperLowerCase(True) - End If - Shift1Btn.IsChecked = True - Shift2Btn.IsChecked = True - End If - End Sub - - Private Sub CapsLockBtn_Click(sender As Object, e As RoutedEventArgs) Handles CapsLockBtn.Click - If m_CapsLock Then - If m_bShift Then - UpperLowerCase(True) - Else - UpperLowerCase(False) - End If - m_CapsLock = False - CapsLockBtn.IsChecked = False - Else - If m_bShift Then - m_bShift = False - Shift1Btn.IsChecked = False - Shift2Btn.IsChecked = False - End If - m_CapsLock = True - UpperLowerCase(True) - CapsLockBtn.IsChecked = True - End If - End Sub - - Private Sub AltBtn_Click(sender As Object, e As RoutedEventArgs) Handles AltBtn.Click, AltGrBtn.Click - 'Per il momento non fa' nulla - End Sub - - ' Funzione che gestisce il click di una lettera - Private Sub LetterClick(Uppercase As Char, Lowercase As Char) - If m_CapsLock Then - If m_bShift Then - CurrTextTxBx.Text &= Lowercase - m_bShift = False - UpperLowerCase(True) - Shift1Btn.IsChecked = False - Shift2Btn.IsChecked = False - Else - CurrTextTxBx.Text &= Uppercase - End If - Else - If m_bShift Then - CurrTextTxBx.Text &= Uppercase - m_bShift = False - UpperLowerCase(False) - Shift1Btn.IsChecked = False - Shift2Btn.IsChecked = False - Else - CurrTextTxBx.Text &= Lowercase - End If - End If - End Sub - - ' Funzione che gestisce il click di numeri e simboli - Private Sub NumberClick(Uppercase As Char, Lowercase As Char) - If m_bShift Then - If m_CapsLock Then - UpperLowerCase(True) - Else - UpperLowerCase(False) - End If - CurrTextTxBx.Text &= Uppercase - m_bShift = False - Shift1Btn.IsChecked = False - Shift2Btn.IsChecked = False - Else - CurrTextTxBx.Text &= Lowercase - End If - End Sub - - Private Sub BackslashBtn_Click(sender As Object, e As RoutedEventArgs) Handles BackslashBtn.Click - NumberClick("|", "\") - End Sub - - Private Sub OneBtn_Click(sender As Object, e As RoutedEventArgs) Handles OneBtn.Click - NumberClick("!", "1") - End Sub - - Private Sub TwoBtn_Click(sender As Object, e As RoutedEventArgs) Handles TwoBtn.Click - NumberClick("""", "2") - End Sub - - Private Sub ThreeBtn_Click(sender As Object, e As RoutedEventArgs) Handles ThreeBtn.Click - NumberClick("£", "3") - End Sub - - Private Sub FourBtn_Click(sender As Object, e As RoutedEventArgs) Handles FourBtn.Click - NumberClick("$", "4") - End Sub - - Private Sub FiveBtn_Click(sender As Object, e As RoutedEventArgs) Handles FiveBtn.Click - NumberClick("%", "5") - End Sub - - Private Sub SixBtn_Click(sender As Object, e As RoutedEventArgs) Handles SixBtn.Click - NumberClick("&", "6") - End Sub - - Private Sub SevenBtn_Click(sender As Object, e As RoutedEventArgs) Handles SevenBtn.Click - NumberClick("/", "7") - End Sub - - Private Sub EightBtn_Click(sender As Object, e As RoutedEventArgs) Handles EightBtn.Click - NumberClick("(", "8") - End Sub - - Private Sub NineBtn_Click(sender As Object, e As RoutedEventArgs) Handles NineBtn.Click - NumberClick(")", "9") - End Sub - - Private Sub ZeroBtn_Click(sender As Object, e As RoutedEventArgs) Handles ZeroBtn.Click - NumberClick("=", "0") - End Sub - - Private Sub BackspaceBtn_Click(sender As Object, e As RoutedEventArgs) Handles BackspaceBtn.Click - If CurrTextTxBx.Text = String.Empty Then - Return - Else - CurrTextTxBx.Text = CurrTextTxBx.Text.Substring(0, CurrTextTxBx.Text.Length - 1) - End If - End Sub - - Private Sub TabBtn_Click(sender As Object, e As RoutedEventArgs) Handles TabBtn.Click - - End Sub - - Private Sub qBtn_Click(sender As Object, e As RoutedEventArgs) Handles qBtn.Click - LetterClick("Q", "q") - End Sub - - Private Sub wBtn_Click(sender As Object, e As RoutedEventArgs) Handles wBtn.Click - LetterClick("W", "w") - End Sub - - Private Sub eBtn_Click(sender As Object, e As RoutedEventArgs) Handles eBtn.Click - LetterClick("E", "e") - End Sub - - Private Sub rBtn_Click(sender As Object, e As RoutedEventArgs) Handles rBtn.Click - LetterClick("R", "r") - End Sub - - Private Sub tBtn_Click(sender As Object, e As RoutedEventArgs) Handles tBtn.Click - LetterClick("T", "t") - End Sub - - Private Sub yBtn_Click(sender As Object, e As RoutedEventArgs) Handles yBtn.Click - LetterClick("Y", "y") - End Sub - - Private Sub uBtn_Click(sender As Object, e As RoutedEventArgs) Handles uBtn.Click - LetterClick("U", "u") - End Sub - - Private Sub iBtn_Click(sender As Object, e As RoutedEventArgs) Handles iBtn.Click - LetterClick("I", "i") - End Sub - - Private Sub oBtn_Click(sender As Object, e As RoutedEventArgs) Handles oBtn.Click - LetterClick("O", "o") - End Sub - - Private Sub pBtn_Click(sender As Object, e As RoutedEventArgs) Handles pBtn.Click - LetterClick("P", "p") - End Sub - - Private Sub Enter1Btn_Click(sender As Object, e As RoutedEventArgs) Handles Enter1Btn.Click - - End Sub - - Private Sub aBtn_Click(sender As Object, e As RoutedEventArgs) - LetterClick("A", "a") - End Sub - - Private Sub sBtn_Click(sender As Object, e As RoutedEventArgs) Handles sBtn.Click - LetterClick("S", "s") - End Sub - - Private Sub dBtn_Click(sender As Object, e As RoutedEventArgs) Handles dBtn.Click - LetterClick("D", "d") - End Sub - - Private Sub fBtn_Click(sender As Object, e As RoutedEventArgs) Handles fBtn.Click - LetterClick("F", "f") - End Sub - - Private Sub gBtn_Click(sender As Object, e As RoutedEventArgs) Handles gBtn.Click - LetterClick("G", "g") - End Sub - - Private Sub hBtn_Click(sender As Object, e As RoutedEventArgs) Handles hBtn.Click - LetterClick("H", "h") - End Sub - - Private Sub jBtn_Click(sender As Object, e As RoutedEventArgs) Handles jBtn.Click - LetterClick("J", "j") - End Sub - - Private Sub kBtn_Click(sender As Object, e As RoutedEventArgs) Handles kBtn.Click - LetterClick("K", "k") - End Sub - - Private Sub lBtn_Click(sender As Object, e As RoutedEventArgs) Handles lBtn.Click - LetterClick("L", "l") - End Sub - - Private Sub PlusBtn_Click(sender As Object, e As RoutedEventArgs) Handles PlusBtn.Click - NumberClick("*", "+") - End Sub - - Private Sub Enter2Btn_Click(sender As Object, e As RoutedEventArgs) Handles Enter2Btn.Click - - End Sub - - Private Sub MinorBtn_Click(sender As Object, e As RoutedEventArgs) Handles MinorBtn.Click - NumberClick(">", "<") - End Sub - - Private Sub zBtn_Click(sender As Object, e As RoutedEventArgs) Handles zBtn.Click - LetterClick("Z", "z") - End Sub - - Private Sub xBtn_Click(sender As Object, e As RoutedEventArgs) Handles xBtn.Click - LetterClick("X", "x") - End Sub - - Private Sub cBtn_Click(sender As Object, e As RoutedEventArgs) Handles cBtn.Click - LetterClick("C", "c") - End Sub - - Private Sub vBtn_Click(sender As Object, e As RoutedEventArgs) Handles vBtn.Click - LetterClick("V", "v") - End Sub - - Private Sub bBtn_Click(sender As Object, e As RoutedEventArgs) Handles bBtn.Click - LetterClick("B", "b") - End Sub - - Private Sub nBtn_Click(sender As Object, e As RoutedEventArgs) Handles nBtn.Click - LetterClick("N", "n") - End Sub - - Private Sub mBtn_Click(sender As Object, e As RoutedEventArgs) Handles mBtn.Click - LetterClick("M", "m") - End Sub - - Private Sub MinusBtn_Click(sender As Object, e As RoutedEventArgs) Handles MinusBtn.Click - NumberClick("_", "-") - End Sub - - Private Sub DotBtn_Click(sender As Object, e As RoutedEventArgs) Handles DotBtn.Click - NumberClick(":", ".") - End Sub - - Private Sub CommaBtn_Click(sender As Object, e As RoutedEventArgs) Handles CommaBtn.Click - NumberClick(";", ",") - End Sub - - Private Sub SpaceBtn_Click(sender As Object, e As RoutedEventArgs) Handles SpaceBtn.Click - CurrTextTxBx.Text &= " " - End Sub - - Private Sub ClearBtn_Click(sender As Object, e As RoutedEventArgs) Handles ClearBtn.Click - CurrTextTxBx.Text = String.Empty - End Sub - -End Class diff --git a/M_Num.vb b/M_Num.vb index 5c058e9..48702db 100644 --- a/M_Num.vb +++ b/M_Num.vb @@ -985,6 +985,12 @@ Namespace Num Case CnData.Power ' (6) Ampère = * 0.01 d_spindle_power = CDbl(CLng(values(n))) * 0.01 b_spindle_power_changed = True + Case CnData.Spindle ' (7) Stato rotazione mandrino + bSpindleState = CBool(values(n)) + Case CnData.Coolant ' (8) Stato acqua + bCoolantState = CBool(values(n)) + Case CnData.Laser ' (9) Stato laser + bLaserState = CBool(values(n)) End Select Next diff --git a/MachineButtonsUC.xaml b/MachineButtonsUC.xaml index 7478f84..b698f6e 100644 --- a/MachineButtonsUC.xaml +++ b/MachineButtonsUC.xaml @@ -26,9 +26,9 @@ - + @@ -38,41 +38,41 @@ - + - + - + - + - + - + - + - + - + diff --git a/MachineButtonsUC.xaml.vb b/MachineButtonsUC.xaml.vb index d96464e..754eacf 100644 --- a/MachineButtonsUC.xaml.vb +++ b/MachineButtonsUC.xaml.vb @@ -10,7 +10,14 @@ Public Class MachineButtonsUC Private m_bFirst As Boolean = True Private Const MAX_BUTTONS As Integer = 10 - Private CommandArray(MAX_BUTTONS - 1) As String + 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) @@ -18,8 +25,6 @@ Public Class MachineButtonsUC 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 @@ -28,107 +33,73 @@ Public Class MachineButtonsUC 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), 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 + While nIndex < MAX_BUTTONS And GetPrivateProfileMachineButtons(S_MACHBUTTONS, K_BUTTON & (nIndex + 1) & "Y", sButtonImage, sButtonCommand, sButtonStateFlag, m_MainWindow.GetMachIniFile()) + ImageArrayY(nIndex) = sButtonImage + CommandArrayY(nIndex) = sButtonCommand + StateFlagArray(nIndex) = sButtonStateFlag + '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 - While nIndex < MAX_BUTTONS - GetButton(nIndex + 1).Visibility = Windows.Visibility.Hidden + nIndex = 0 + While nIndex < MAX_BUTTONS And GetPrivateProfileMachineButtons(S_MACHBUTTONS, K_BUTTON & (nIndex + 1) & "N", sButtonImage, sButtonCommand, sButtonStateFlag, m_MainWindow.GetMachIniFile()) + ImageArrayN(nIndex) = sButtonImage + CommandArrayN(nIndex) = sButtonCommand 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)) + If CurrentBtn.IsChecked Then + EgtLuaExecFile(m_MainWindow.GetMachinesRootDir() & "\" & m_MainWindow.GetCurrMachine() & "\DirectCmd\" & CommandArrayY(GetToggleButtonIndex(CurrentBtn) - 1)) + Else + EgtLuaExecFile(m_MainWindow.GetMachinesRootDir() & "\" & m_MainWindow.GetCurrMachine() & "\DirectCmd\" & CommandArrayN(GetToggleButtonIndex(CurrentBtn) - 1)) + End If StringToDouble(m_DirectCutPage.m_ManualAxesMove.FeedTxBx.Text, dTemp) EgtLuaSetGlobNumVar("CMD.F", dTemp) StringToDouble(m_DirectCutPage.m_ManualAxesMove.SpeedTxBx.Text, dTemp) @@ -170,8 +141,80 @@ Public Class MachineButtonsUC 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") - Private Function GetButton(ByVal nIndex As Integer) As Button + ' 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 LaserStateChanged(LaserState As Boolean) + Dim nIndex As Integer = Array.IndexOf(StateFlagArray, "Laser") + If LaserState Then + GetToggleButton(nIndex).IsChecked = True + Try + Dim s As String = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & ImageArrayY(nIndex + 1) + 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).IsChecked = False + Try + Dim s As String = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & ImageArrayN(nIndex + 1) + 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 @@ -196,7 +239,7 @@ Public Class MachineButtonsUC End Select End Function - Private Function GetButtonIndex(ByVal nBtnName As Button) As Integer + Private Function GetToggleButtonIndex(ByVal nBtnName As Primitives.ToggleButton) As Integer Select Case nBtnName.Name Case MachineButton1.Name Return 1 @@ -221,14 +264,14 @@ Public Class MachineButtonsUC 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 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 @@ -261,6 +304,7 @@ Public Class MachineButtonsUC 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 @@ -269,6 +313,11 @@ Public Class MachineButtonsUC 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 diff --git a/MainWindow.xaml.vb b/MainWindow.xaml.vb index d3a94f6..09bf00a 100644 --- a/MainWindow.xaml.vb +++ b/MainWindow.xaml.vb @@ -34,7 +34,7 @@ Class MainWindow Friend m_OptionsPageUC As OptionsPageUC ' Riferimento alla NumericKeyboard necessario per poter impedire il click fuori da essa quando attiva - Friend m_NumericKeyboardWD As NumericKeyboardWD + 'Friend m_NumericKeyboardWD As NumericKeyboardWD ' Dichiarazione variabili direttori Private m_sDataRoot As String = String.Empty @@ -725,13 +725,6 @@ Class MainWindow If m_CurrentProjectPageUC.OutMessageBrd.IsMouseOver Then m_CurrentProjectPageUC.ClearMessage() End If - ' Impedisce di clickare fuori dal NumericKeyboard finchè questo è aperto - If Not m_NumericKeyboardWD Is Nothing Then - If (m_NumericKeyboardWD.IsVisible And Not m_NumericKeyboardWD.IsMouseOver) Then - e.Handled = True - Return - End If - End If End Sub Private Sub MainWindow_KeyDown(sender As Object, e As KeyEventArgs) diff --git a/OmagCUT.vbproj b/OmagCUT.vbproj index f850008..42273c9 100644 --- a/OmagCUT.vbproj +++ b/OmagCUT.vbproj @@ -197,21 +197,12 @@ MainComponentPageUC.xaml - - MissingKeyWD.xaml - - - NumericKeyboardWD.xaml - OmagCUTDictionary.xaml OptionsPageUC.xaml - - SaveCurrProjWD.xaml - SceneButtonsUC.xaml @@ -233,6 +224,9 @@ TestingPageUC.xaml + + ToolChangerPosUC.xaml + ToolsDbPageUC.xaml @@ -342,14 +336,6 @@ MainWindow.xaml Code - - MSBuild:Compile - Designer - - - Designer - MSBuild:Compile - Designer MSBuild:Compile @@ -358,10 +344,6 @@ Designer MSBuild:Compile - - Designer - MSBuild:Compile - MSBuild:Compile Designer @@ -390,6 +372,10 @@ Designer MSBuild:Compile + + MSBuild:Compile + Designer + Designer MSBuild:Compile @@ -527,6 +513,9 @@ + + + IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\OmagCUT\OmagCUTR32.exe diff --git a/OmagCUTDictionary.xaml b/OmagCUTDictionary.xaml index ca202f4..497b1d6 100644 --- a/OmagCUTDictionary.xaml +++ b/OmagCUTDictionary.xaml @@ -881,11 +881,11 @@ - + --> diff --git a/OmagCUTDictionary.xaml.vb b/OmagCUTDictionary.xaml.vb index eea6462..c99e4fe 100644 --- a/OmagCUTDictionary.xaml.vb +++ b/OmagCUTDictionary.xaml.vb @@ -1,43 +1,176 @@ -Partial Class OmagCUTDictionary +Imports System.Collections.ObjectModel +Imports System.ComponentModel + +Partial Class OmagCUTDictionary Inherits ResourceDictionary Dim m_MainWindow As MainWindow = Application.Current.MainWindow ' Evento della TextBox con Style che permette di aprire in automatico la calcolatrice - Friend Sub NumericKeyboard_PreviewMouseDown(sender As Object, e As MouseButtonEventArgs) - ' Recupero dati da sorgente - Dim sTitle As String = String.Empty - Dim sText As String = String.Empty - Dim TxBx As TextBox = CType(e.Source, TextBox) - If Not IsNothing(TxBx) Then - sText = TxBx.Text - Dim AssocLabel As Label = TxBx.Tag - If Not IsNothing(AssocLabel) Then - sTitle = AssocLabel.Content - End If - End If - ' Creo calcolatrice - Dim NumericKeyboardWD As New NumericKeyboardWD(sTitle, sText, e.Source) - ' La visualizzo - NumericKeyboardWD.ShowDialog() - End Sub + 'Friend Sub NumericKeyboard_PreviewMouseDown(sender As Object, e As MouseButtonEventArgs) + ' ' Recupero dati da sorgente + ' Dim sTitle As String = String.Empty + ' Dim sText As String = String.Empty + ' Dim TxBx As TextBox = CType(e.Source, TextBox) + ' If Not IsNothing(TxBx) Then + ' sText = TxBx.Text + ' Dim AssocLabel As Label = TxBx.Tag + ' If Not IsNothing(AssocLabel) Then + ' sTitle = AssocLabel.Content + ' End If + ' End If + ' ' Creo calcolatrice + ' Dim NumericKeyboardWD As New NumericKeyboardWD(sTitle, sText, e.Source) + ' ' La visualizzo + ' NumericKeyboardWD.ShowDialog() + 'End Sub ' Evento della TextBox con Style che permette di aggiornare in automatico il componente con il nuovo valore - Private Sub NumericKeyboard_TextChanged(sender As Object, e As TextChangedEventArgs) - Select Case m_MainWindow.m_ActivePage - Case MainWindow.Pages.Draw - If Not m_MainWindow.m_DrawPageUC.m_bShowVar Then - m_MainWindow.m_DrawPageUC.UpdateView() - End If - Case MainWindow.Pages.RawPart - If Not m_MainWindow.m_RawPartPage.m_bShowVar Then - m_MainWindow.m_RawPartPage.UpdateRawPart() - End If - End Select - End Sub + 'Private Sub NumericKeyboard_TextChanged(sender As Object, e As TextChangedEventArgs) + ' Select Case m_MainWindow.m_ActivePage + ' Case MainWindow.Pages.Draw + ' If Not m_MainWindow.m_DrawPageUC.m_bShowVar Then + ' m_MainWindow.m_DrawPageUC.UpdateView() + ' End If + ' Case MainWindow.Pages.RawPart + ' If Not m_MainWindow.m_RawPartPage.m_bShowVar Then + ' m_MainWindow.m_RawPartPage.UpdateRawPart() + ' End If + ' End Select + 'End Sub End Class +Namespace TreeViewItem + + Public Class CathegoryItem + Inherits TreeViewItemBase + + 'Private m_sTitle As String + Private m_sPictureString As String + Private m_nFType As Integer + Private m_Items As ObservableCollection(Of CustomItem) + + 'Public Property Name As String + ' Get + ' Return m_sTitle + ' End Get + ' Set(value As String) + ' m_sTitle = value + ' End Set + 'End Property + + Public ReadOnly Property PictureString As String + Get + Return "/Resources/ToolsTreeViewImages/Lama.png" + End Get + End Property + + Public ReadOnly Property nFType As Integer + Get + Return m_nFType + End Get + End Property + + Public Property Items As ObservableCollection(Of CustomItem) + Get + Return m_Items + End Get + Set(value As ObservableCollection(Of CustomItem)) + m_Items = value + End Set + End Property + + Sub New(sName As String, nType As Integer) + Name = sName + m_nFType = nType + Me.Items = New ObservableCollection(Of CustomItem) + End Sub + + End Class + + Public Class CustomItem + Inherits TreeViewItemBase + + 'Private m_sTitle As String + Private m_nType As Integer + + 'Public Property Name As String + ' Get + ' Return m_sTitle + ' End Get + ' Set(value As String) + ' m_sTitle = value + ' End Set + 'End Property + + Public ReadOnly Property nType As Integer + Get + Return m_nType + End Get + End Property + + Sub New(Title As String, nType As Integer) + Me.Name = Title + m_nType = nType + End Sub + + End Class + + Public Class TreeViewItemBase + Implements INotifyPropertyChanged + + Private m_Name As String + Public Property Name As String + Get + Return m_Name + End Get + Set(value As String) + If (value <> m_Name) Then + m_Name = value + NotifyPropertyChanged("Name") + End If + End Set + End Property + + Private m_isSelected As Boolean + Public Property IsSelected As Boolean + Get + Return m_isSelected + End Get + Set(value As Boolean) + If (value <> m_isSelected) Then + m_isSelected = value + NotifyPropertyChanged("IsSelected") + End If + End Set + End Property + + Private m_isExpanded As Boolean + Public Property IsExpanded As Boolean + Get + Return m_isExpanded + End Get + Set(value As Boolean) + If (value <> m_isExpanded) Then + m_isExpanded = value + NotifyPropertyChanged("IsExpanded") + End If + End Set + End Property + + Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged + + + Public Sub NotifyPropertyChanged(propName As String) + RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName)) + End Sub + + End Class + +End Namespace + + Namespace ArithmeticConverterNameSpace Public Class CheckboxConverter diff --git a/Resources/ToolChangerPos.png b/Resources/ToolChangerPos.png new file mode 100644 index 0000000000000000000000000000000000000000..32314182dd558bebfc4096cb572888a1c149307c GIT binary patch literal 857 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBufiR<}hF1dv1JgTC7srr_xVLv7_RTgBV0ifC-v7C`i?2=< zXnHWi^v0Q*pc4C8-3P1-ovMQF)z|Hv^6YQj|KB$^tx2!je)atS`AtR)7R(LC14(56 zySCv+oAzDh*Rzk_VSM2Co*`0omEX5ryO|G2GR$E-Fqdz^9<`&spFQs~@+8`wWvrN;%vh3l#NYBhFmYC5e2GSIcj=j^ z)q2(krWGA1y#07x!QRtM5vzC)O8naWM)iTm*$wQLSE7$vrLH|{z^Eg8^g`8%>VE6s zhzB z=oT~U4MW~eo-;vWih0%hB3FE^&1Rl`^9rL*ZtI7$ADmCWKl8?rv4ul1dxHOcRylD8 zwo7^m3GXC1D8SB>HG z6L;YGdpY5Hv-Ph3*Y*e7aaWwFXV0H|?Be@3l9is1=4|RKd}YtE((+5bvP9*NqmP+a zNJhL?d~f^hg>!sW4ugC1{7etqRQ7_`vkw#*72Xc^yYldRu{Xn3=kgDKW4{S~$b8Ux zc%AU;8C&CG%Nr_|UAMVi+ONlWh41dc`}(>J^WPR*eU*D~c|$YvdC}~7Ti2bnb~tN% z_hG;OSK9{X`R89U)NDJy_H<~&vqY%J&dz7PQp2{OZqvOIV07|+7kAuj{n<12+wvMy lU{v!koMRw?c>DDixBd3y!}i@be*?1vgQu&X%Q~loCIDREVAB8q literal 0 HcmV?d00001 diff --git a/SetUpPage.xaml b/SetUpPage.xaml index bade387..da4b37a 100644 --- a/SetUpPage.xaml +++ b/SetUpPage.xaml @@ -1,13 +1,15 @@  - + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:self="clr-namespace:OmagCUT.TreeViewItem" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:OmagCUT="clr-namespace:OmagCUT" + mc:Ignorable="d" + d:DesignHeight="768" d:DesignWidth="1280"> + - + @@ -17,50 +19,424 @@ - - - - - - - - - - - - - - - - - - - + + + + + - + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SetUpPage.xaml.vb b/SetUpPage.xaml.vb index 9ad1a49..ee4e270 100644 --- a/SetUpPage.xaml.vb +++ b/SetUpPage.xaml.vb @@ -1,3 +1,775 @@ -Public Class SetUpPage +Imports System.Collections.ObjectModel +Imports System.ComponentModel +Imports OmagCUT.TreeViewItem +Imports EgtUILib + +Public Class SetUpPage + + ' Riferimento alla MainWindow + Private m_MainWindow As MainWindow = Application.Current.MainWindow + + Private m_ToolTreeList As New ObservableCollection(Of CathegoryItem) + Private m_DrillbitsList As CathegoryItem + Private m_MillsList As CathegoryItem + Private m_SetUpToolsList As New CathegoryItem(String.Empty, 0) + + Private Sub SetUpPage_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized + ' Posiziono la pagina + Me.SetValue(Grid.RowProperty, 1) + + ' Assegno la lista utensili come sorgente dell'albero + ToolTree.ItemsSource = m_ToolTreeList + + ' Modifico numero colonne della griglia in base al numero di porta utensili disponibili sulla macchina per cambio utensile macchina + Dim ColNum As Integer = Math.Ceiling(m_MainWindow.m_CurrentMachine.dToolChangerNum / 5) + For Index = 5 To ColNum + 1 Step -1 + For Index2 = Index * 5 To (Index - 1) * 5 + 1 Step -1 + TlChGrid.Children.Remove(GetTlChPosFromIndex(Index2)) + TlChGrid.Children.Remove(GetTxBxFromIndex(Index2)) + Next + TlChGrid.ColumnDefinitions.RemoveAt(Index * 2 - 1) + TlChGrid.ColumnDefinitions.RemoveAt(Index * 2 - 2) + Next + + ' Modifico numero colonne della griglia in base al numero di porta utensili disponibili sulla macchina per cambio utensile manuale + Dim ManColNum As Integer = Math.Ceiling(m_MainWindow.m_CurrentMachine.dManualToolChangerNum / 5) + For Index = 12 To ManColNum + 1 Step -1 + For Index2 = Index * 5 To (Index - 1) * 5 + 1 Step -1 + ManTlChGrid.Children.Remove(GetManTlChPosFromIndex(Index2)) + ManTlChGrid.Children.Remove(GetManTxBxFromIndex(Index2)) + Next + ManTlChGrid.ColumnDefinitions.RemoveAt(Index * 2 - 1) + ManTlChGrid.ColumnDefinitions.RemoveAt(Index * 2 - 2) + Next + + ' Modifico il numero di elementi presenti sull'ultima colonna sia macchina che manuale + For Index = ColNum * 5 To m_MainWindow.m_CurrentMachine.dToolChangerNum + 1 Step -1 + TlChGrid.Children.Remove(GetTlChPosFromIndex(Index)) + TlChGrid.Children.Remove(GetTxBxFromIndex(Index)) + Next + For Index = ManColNum * 5 To m_MainWindow.m_CurrentMachine.dManualToolChangerNum + 1 Step -1 + ManTlChGrid.Children.Remove(GetManTlChPosFromIndex(Index)) + ManTlChGrid.Children.Remove(GetManTxBxFromIndex(Index)) + Next + + ' Assegno lunghezza alle scrollviewer + TlChGrid.Width = m_MainWindow.ActualWidth / 15 * 1.6 * ColNum * 2 + ManTlChGrid.Width = m_MainWindow.ActualWidth / 15 * 1.6 * ManColNum * 2 + + ' Visualizzo il portautensile della macchina + TlChScVw.Visibility = Windows.Visibility.Visible + ToolChangerBtn.IsChecked = True + + ' Carico tutti i nomi dei portautensili + For Index = 1 To m_MainWindow.m_CurrentMachine.dToolChangerNum + GetTlChPosFromIndex(Index).PositionNameTxBl.Text = m_MainWindow.m_CurrentMachine.ToolChangerName(Index - 1) + Next + For Index = 1 To m_MainWindow.m_CurrentMachine.dManualToolChangerNum + GetManTlChPosFromIndex(Index).PositionNameTxBl.Text = m_MainWindow.m_CurrentMachine.ManualToolChangerName(Index - 1) + Next + End Sub + + Private Sub SetUpPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded + ' Inizializzo le famiglie di utensili nell'albero + EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx()) + InitializeToolFamily(K_DRILLBIT, MCH_TF.DRILLBIT, EgtMsg(MSG_TOOLSDBPAGEUC + 32), m_DrillbitsList) + InitializeToolFamily(K_MILL, MCH_TF.MILL, EgtMsg(MSG_TOOLSDBPAGEUC + 33), m_MillsList) + + ' Posiziono utensili già posizionati sul portautensili + For Each ToolPosition In m_MainWindow.m_CurrentMachine.ToolChanger + If ToolPosition.sTool <> String.Empty Then + For Each Item In m_DrillbitsList.Items + If Item.Name = ToolPosition.sTool Then + m_SetUpToolsList.Items.Add(Item) + m_DrillbitsList.Items.Remove(Item) + Exit For + End If + Next + For Each Item In m_MillsList.Items + If Item.Name = ToolPosition.sTool Then + m_SetUpToolsList.Items.Add(Item) + m_MillsList.Items.Remove(Item) + Exit For + End If + Next + GetTlChPosFromIndex(ToolPosition.sPosition).Tool.IsChecked = True + GetTxBxFromIndex(ToolPosition.sPosition).Text = ToolPosition.sTool + End If + Next + + ' Posiziono utensili già posizionati sul portautensili manuale + For Each ToolPosition In m_MainWindow.m_CurrentMachine.ManualToolChanger + If ToolPosition.sTool <> String.Empty Then + For Each Item In m_DrillbitsList.Items + If Item.Name = ToolPosition.sTool Then + m_SetUpToolsList.Items.Add(Item) + m_DrillbitsList.Items.Remove(Item) + Exit For + End If + Next + For Each Item In m_MillsList.Items + If Item.Name = ToolPosition.sTool Then + m_SetUpToolsList.Items.Add(Item) + m_MillsList.Items.Remove(Item) + Exit For + End If + Next + GetManTlChPosFromIndex(ToolPosition.sPosition).Tool.IsChecked = True + GetManTxBxFromIndex(ToolPosition.sPosition).Text = ToolPosition.sTool + End If + Next + + End Sub + + Private Function GetTlChPosFromIndex(nIndex As Integer) As ToolChangerPosUC + Select Case nIndex + Case 1 + Return TlChPos1 + Case 2 + Return TlChPos2 + Case 3 + Return TlChPos3 + Case 4 + Return TlChPos4 + Case 5 + Return TlChPos5 + Case 6 + Return TlChPos6 + Case 7 + Return TlChPos7 + Case 8 + Return TlChPos8 + Case 9 + Return TlChPos9 + Case 10 + Return TlChPos10 + Case 11 + Return TlChPos11 + Case 12 + Return TlChPos12 + Case 13 + Return TlChPos13 + Case 14 + Return TlChPos14 + Case 15 + Return TlChPos15 + Case 16 + Return TlChPos16 + Case 17 + Return TlChPos17 + Case 18 + Return TlChPos18 + Case 19 + Return TlChPos19 + Case 20 + Return TlChPos20 + Case 21 + Return TlChPos21 + Case 22 + Return TlChPos22 + Case 23 + Return TlChPos23 + Case 24 + Return TlChPos24 + Case 25 + Return TlChPos25 + End Select + End Function + + Private Function GetManTlChPosFromIndex(nIndex As Integer) As ToolChangerPosUC + Select Case nIndex + Case 1 + Return ManTlChPos1 + Case 2 + Return ManTlChPos2 + Case 3 + Return ManTlChPos3 + Case 4 + Return ManTlChPos4 + Case 5 + Return ManTlChPos5 + Case 6 + Return ManTlChPos6 + Case 7 + Return ManTlChPos7 + Case 8 + Return ManTlChPos8 + Case 9 + Return ManTlChPos9 + Case 10 + Return ManTlChPos10 + Case 11 + Return ManTlChPos11 + Case 12 + Return ManTlChPos12 + Case 13 + Return ManTlChPos13 + Case 14 + Return ManTlChPos14 + Case 15 + Return ManTlChPos15 + Case 16 + Return ManTlChPos16 + Case 17 + Return ManTlChPos17 + Case 18 + Return ManTlChPos18 + Case 19 + Return ManTlChPos19 + Case 20 + Return ManTlChPos20 + Case 21 + Return ManTlChPos21 + Case 22 + Return ManTlChPos22 + Case 23 + Return ManTlChPos23 + Case 24 + Return ManTlChPos24 + Case 25 + Return ManTlChPos25 + Case 26 + Return ManTlChPos26 + Case 27 + Return ManTlChPos27 + Case 28 + Return ManTlChPos28 + Case 29 + Return ManTlChPos29 + Case 30 + Return ManTlChPos30 + Case 31 + Return ManTlChPos31 + Case 32 + Return ManTlChPos32 + Case 33 + Return ManTlChPos33 + Case 34 + Return ManTlChPos34 + Case 35 + Return ManTlChPos35 + Case 36 + Return ManTlChPos36 + Case 37 + Return ManTlChPos37 + Case 38 + Return ManTlChPos38 + Case 39 + Return ManTlChPos39 + Case 40 + Return ManTlChPos40 + Case 41 + Return ManTlChPos41 + Case 42 + Return ManTlChPos42 + Case 43 + Return ManTlChPos43 + Case 44 + Return ManTlChPos44 + Case 45 + Return ManTlChPos45 + Case 46 + Return ManTlChPos46 + Case 47 + Return ManTlChPos47 + Case 48 + Return ManTlChPos48 + Case 49 + Return ManTlChPos49 + Case 50 + Return ManTlChPos50 + Case 51 + Return ManTlChPos51 + Case 52 + Return ManTlChPos52 + Case 53 + Return ManTlChPos53 + Case 54 + Return ManTlChPos54 + Case 55 + Return ManTlChPos55 + Case 56 + Return ManTlChPos56 + Case 57 + Return ManTlChPos57 + Case 58 + Return ManTlChPos58 + Case 59 + Return ManTlChPos59 + Case 60 + Return ManTlChPos60 + End Select + End Function + + Private Function GetTxBxFromIndex(nIndex As Integer) As TextBox + Select Case nIndex + Case 1 + Return TxBx1 + Case 2 + Return TxBx2 + Case 3 + Return TxBx3 + Case 4 + Return TxBx4 + Case 5 + Return TxBx5 + Case 6 + Return TxBx6 + Case 7 + Return TxBx7 + Case 8 + Return TxBx8 + Case 9 + Return TxBx9 + Case 10 + Return TxBx10 + Case 11 + Return TxBx11 + Case 12 + Return TxBx12 + Case 13 + Return TxBx13 + Case 14 + Return TxBx14 + Case 15 + Return TxBx15 + Case 16 + Return TxBx16 + Case 17 + Return TxBx17 + Case 18 + Return TxBx18 + Case 19 + Return TxBx19 + Case 20 + Return TxBx20 + Case 21 + Return TxBx21 + Case 22 + Return TxBx22 + Case 23 + Return TxBx23 + Case 24 + Return TxBx24 + Case 25 + Return TxBx25 + End Select + End Function + + Private Function GetManTxBxFromIndex(nIndex As Integer) As TextBox + Select Case nIndex + Case 1 + Return ManTxBx1 + Case 2 + Return ManTxBx2 + Case 3 + Return ManTxBx3 + Case 4 + Return ManTxBx4 + Case 5 + Return ManTxBx5 + Case 6 + Return ManTxBx6 + Case 7 + Return ManTxBx7 + Case 8 + Return ManTxBx8 + Case 9 + Return ManTxBx9 + Case 10 + Return ManTxBx10 + Case 11 + Return ManTxBx11 + Case 12 + Return ManTxBx12 + Case 13 + Return ManTxBx13 + Case 14 + Return ManTxBx14 + Case 15 + Return ManTxBx15 + Case 16 + Return ManTxBx16 + Case 17 + Return ManTxBx17 + Case 18 + Return ManTxBx18 + Case 19 + Return ManTxBx19 + Case 20 + Return ManTxBx20 + Case 21 + Return ManTxBx21 + Case 22 + Return ManTxBx22 + Case 23 + Return ManTxBx23 + Case 24 + Return ManTxBx24 + Case 25 + Return ManTxBx25 + Case 26 + Return ManTxBx26 + Case 27 + Return ManTxBx27 + Case 28 + Return ManTxBx28 + Case 29 + Return ManTxBx29 + Case 30 + Return ManTxBx30 + Case 31 + Return ManTxBx31 + Case 32 + Return ManTxBx32 + Case 33 + Return ManTxBx33 + Case 34 + Return ManTxBx34 + Case 35 + Return ManTxBx35 + Case 36 + Return ManTxBx36 + Case 37 + Return ManTxBx37 + Case 38 + Return ManTxBx38 + Case 39 + Return ManTxBx39 + Case 40 + Return ManTxBx40 + Case 41 + Return ManTxBx41 + Case 42 + Return ManTxBx42 + Case 43 + Return ManTxBx43 + Case 44 + Return ManTxBx44 + Case 45 + Return ManTxBx45 + Case 46 + Return ManTxBx46 + Case 47 + Return ManTxBx47 + Case 48 + Return ManTxBx48 + Case 49 + Return ManTxBx49 + Case 50 + Return ManTxBx50 + Case 51 + Return ManTxBx51 + Case 52 + Return ManTxBx52 + Case 53 + Return ManTxBx53 + Case 54 + Return ManTxBx54 + Case 55 + Return ManTxBx55 + Case 56 + Return ManTxBx56 + Case 57 + Return ManTxBx57 + Case 58 + Return ManTxBx58 + Case 59 + Return ManTxBx59 + Case 60 + Return ManTxBx60 + End Select + End Function + + + ' Funzione che carica gli utensili del Db nell'albero + Friend Sub InitializeToolFamily(sFIniConst As String, nFType As Integer, sFName As String, ByRef ToolCathegory As CathegoryItem) + If GetPrivateProfileInt(S_TOOLS, sFIniConst, 0, m_MainWindow.GetMachIniFile()) = 1 Then + ToolCathegory = New CathegoryItem(sFName, nFType) + Dim nType As Integer = 0 + Dim ToolName As String = String.Empty + If EgtTdbGetFirstTool(nFType, ToolName, nType) Then + ToolCathegory.Items.Add(New CustomItem(ToolName, nType)) + While EgtTdbGetNextTool(nFType, ToolName, nType) + ToolCathegory.Items.Add(New CustomItem(ToolName, nType)) + End While + End If + m_ToolTreeList.Add(ToolCathegory) + End If + End Sub + + ' Funzione che attrezza l'utensile quando viene clickato il portautensile + Private Sub ToolHolder_ToolClick(sender As Object, e As RoutedEventArgs) Handles TlChPos1.ToolClick, TlChPos2.ToolClick, TlChPos3.ToolClick, TlChPos4.ToolClick, TlChPos5.ToolClick, TlChPos6.ToolClick, TlChPos7.ToolClick, TlChPos8.ToolClick, + TlChPos9.ToolClick, TlChPos10.ToolClick, TlChPos11.ToolClick, TlChPos12.ToolClick, TlChPos13.ToolClick, TlChPos14.ToolClick, TlChPos15.ToolClick, TlChPos16.ToolClick, + TlChPos17.ToolClick, TlChPos18.ToolClick, TlChPos19.ToolClick, TlChPos20.ToolClick, TlChPos21.ToolClick, TlChPos22.ToolClick, TlChPos23.ToolClick, TlChPos24.ToolClick, + TlChPos25.ToolClick, + ManTlChPos1.ToolClick, ManTlChPos2.ToolClick, ManTlChPos3.ToolClick, ManTlChPos4.ToolClick, ManTlChPos5.ToolClick, ManTlChPos6.ToolClick, ManTlChPos7.ToolClick, + ManTlChPos8.ToolClick, ManTlChPos9.ToolClick, ManTlChPos10.ToolClick, ManTlChPos11.ToolClick, ManTlChPos12.ToolClick, ManTlChPos13.ToolClick, ManTlChPos14.ToolClick, + ManTlChPos15.ToolClick, ManTlChPos16.ToolClick, ManTlChPos17.ToolClick, ManTlChPos18.ToolClick, ManTlChPos19.ToolClick, ManTlChPos20.ToolClick, ManTlChPos21.ToolClick, + ManTlChPos22.ToolClick, ManTlChPos23.ToolClick, ManTlChPos24.ToolClick, ManTlChPos25.ToolClick, ManTlChPos26.ToolClick, ManTlChPos27.ToolClick, ManTlChPos28.ToolClick, + ManTlChPos29.ToolClick, ManTlChPos30.ToolClick, ManTlChPos31.ToolClick, ManTlChPos32.ToolClick, ManTlChPos33.ToolClick, ManTlChPos34.ToolClick, ManTlChPos35.ToolClick, + ManTlChPos36.ToolClick, ManTlChPos37.ToolClick, ManTlChPos38.ToolClick, ManTlChPos39.ToolClick, ManTlChPos40.ToolClick, ManTlChPos41.ToolClick, ManTlChPos42.ToolClick, + ManTlChPos43.ToolClick, ManTlChPos44.ToolClick, ManTlChPos45.ToolClick, ManTlChPos46.ToolClick, ManTlChPos47.ToolClick, ManTlChPos48.ToolClick, ManTlChPos49.ToolClick, + ManTlChPos50.ToolClick, ManTlChPos51.ToolClick, ManTlChPos52.ToolClick, ManTlChPos53.ToolClick, ManTlChPos54.ToolClick, ManTlChPos55.ToolClick, ManTlChPos56.ToolClick, + ManTlChPos57.ToolClick, ManTlChPos58.ToolClick, ManTlChPos59.ToolClick, ManTlChPos60.ToolClick + Dim ToolHolderClicked As ToolChangerPosUC = e.Source + If ToolHolderClicked.Tool.IsChecked Then + If Not IsNothing(ToolTree.SelectedItem) And TypeOf ToolTree.SelectedItem Is CustomItem Then + Dim Tool As CustomItem = ToolTree.SelectedItem + m_SetUpToolsList.Items.Add(Tool) + GetTxBxFromTlChPos(ToolHolderClicked.Name).Text = Tool.Name + RemoveToolFromList() + Else + ToolHolderClicked.Tool.IsChecked = False + GetTxBxFromTlChPos(ToolHolderClicked.Name).Text = String.Empty + End If + Else + RestoreToolInList(GetTxBxFromTlChPos(ToolHolderClicked.Name).Text) + GetTxBxFromTlChPos(ToolHolderClicked.Name).Text = String.Empty + End If + + End Sub + + ' Funzione che rimuove l'utensile selezionato dall'albero + Private Sub RemoveToolFromList() + If m_DrillbitsList.Items.Contains(ToolTree.SelectedItem) Then + m_DrillbitsList.Items.Remove(ToolTree.SelectedItem) + ElseIf m_MillsList.Items.Contains(ToolTree.SelectedItem) Then + m_MillsList.Items.Remove(ToolTree.SelectedItem) + End If + End Sub + + ' Funzione che rimette un utensile nell'albero + Private Sub RestoreToolInList(sToolName As String) + For Each Tool In m_SetUpToolsList.Items + If Tool.Name = sToolName Then + If Tool.nType = 256 Then + m_DrillbitsList.Items.Add(Tool) + ElseIf Tool.nType = 1024 Then + m_MillsList.Items.Add(Tool) + End If + m_SetUpToolsList.Items.Remove(Tool) + Return + End If + Next + End Sub + + Private Function GetTxBxFromTlChPos(TlChPos As String) As TextBox + Select Case TlChPos + Case "TlChPos1" + Return TxBx1 + Case "TlChPos2" + Return TxBx2 + Case "TlChPos3" + Return TxBx3 + Case "TlChPos4" + Return TxBx4 + Case "TlChPos5" + Return TxBx5 + Case "TlChPos6" + Return TxBx6 + Case "TlChPos7" + Return TxBx7 + Case "TlChPos8" + Return TxBx8 + Case "TlChPos9" + Return TxBx9 + Case "TlChPos10" + Return TxBx10 + Case "TlChPos11" + Return TxBx11 + Case "TlChPos12" + Return TxBx12 + Case "TlChPos13" + Return TxBx13 + Case "TlChPos14" + Return TxBx14 + Case "TlChPos15" + Return TxBx15 + Case "TlChPos16" + Return TxBx16 + Case "TlChPos17" + Return TxBx17 + Case "TlChPos18" + Return TxBx18 + Case "TlChPos19" + Return TxBx19 + Case "TlChPos20" + Return TxBx20 + Case "TlChPos21" + Return TxBx21 + Case "TlChPos22" + Return TxBx22 + Case "TlChPos23" + Return TxBx23 + Case "TlChPos24" + Return TxBx24 + Case "TlChPos25" + Return TxBx25 + Case "ManTlChPos1" + Return ManTxBx1 + Case "ManTlChPos2" + Return ManTxBx2 + Case "ManTlChPos3" + Return ManTxBx3 + Case "ManTlChPos4" + Return ManTxBx4 + Case "ManTlChPos5" + Return ManTxBx5 + Case "ManTlChPos6" + Return ManTxBx6 + Case "ManTlChPos7" + Return ManTxBx7 + Case "ManTlChPos8" + Return ManTxBx8 + Case "ManTlChPos9" + Return ManTxBx9 + Case "ManTlChPos10" + Return ManTxBx10 + Case "ManTlChPos11" + Return ManTxBx11 + Case "ManTlChPos12" + Return ManTxBx12 + Case "ManTlChPos13" + Return ManTxBx13 + Case "ManTlChPos14" + Return ManTxBx14 + Case "ManTlChPos15" + Return ManTxBx15 + Case "ManTlChPos16" + Return ManTxBx16 + Case "ManTlChPos17" + Return ManTxBx17 + Case "ManTlChPos18" + Return ManTxBx18 + Case "ManTlChPos19" + Return ManTxBx19 + Case "ManTlChPos20" + Return ManTxBx20 + Case "ManTlChPos21" + Return ManTxBx21 + Case "ManTlChPos22" + Return ManTxBx22 + Case "ManTlChPos23" + Return ManTxBx23 + Case "ManTlChPos24" + Return ManTxBx24 + Case "ManTlChPos25" + Return ManTxBx25 + Case "ManTlChPos26" + Return ManTxBx26 + Case "ManTlChPos27" + Return ManTxBx27 + Case "ManTlChPos28" + Return ManTxBx28 + Case "ManTlChPos29" + Return ManTxBx29 + Case "ManTlChPos30" + Return ManTxBx30 + Case "ManTlChPos31" + Return ManTxBx31 + Case "ManTlChPos32" + Return ManTxBx32 + Case "ManTlChPos33" + Return ManTxBx33 + Case "ManTlChPos34" + Return ManTxBx34 + Case "ManTlChPos35" + Return ManTxBx35 + Case "ManTlChPos36" + Return ManTxBx36 + Case "ManTlChPos37" + Return ManTxBx37 + Case "ManTlChPos38" + Return ManTxBx38 + Case "ManTlChPos39" + Return ManTxBx39 + Case "ManTlChPos40" + Return ManTxBx40 + Case "ManTlChPos41" + Return ManTxBx41 + Case "ManTlChPos42" + Return ManTxBx42 + Case "ManTlChPos43" + Return ManTxBx43 + Case "ManTlChPos44" + Return ManTxBx44 + Case "ManTlChPos45" + Return ManTxBx45 + Case "ManTlChPos46" + Return ManTxBx46 + Case "ManTlChPos47" + Return ManTxBx47 + Case "ManTlChPos48" + Return ManTxBx48 + Case "ManTlChPos49" + Return ManTxBx49 + Case "ManTlChPos50" + Return ManTxBx50 + Case "ManTlChPos51" + Return ManTxBx51 + Case "ManTlChPos52" + Return ManTxBx52 + Case "ManTlChPos53" + Return ManTxBx53 + Case "ManTlChPos54" + Return ManTxBx54 + Case "ManTlChPos55" + Return ManTxBx55 + Case "ManTlChPos56" + Return ManTxBx56 + Case "ManTlChPos57" + Return ManTxBx57 + Case "ManTlChPos58" + Return ManTxBx58 + Case "ManTlChPos59" + Return ManTxBx59 + Case "ManTlChPos60" + Return ManTxBx60 + End Select + End Function + + Private Sub AutomaticToolChangerBtn_Click(sender As Object, e As RoutedEventArgs) Handles ToolChangerBtn.Click + If ToolChangerBtn.IsChecked Then + ManualToolChangerBtn.IsChecked = False + TlChScVw.Visibility = Windows.Visibility.Visible + ManTlChScVw.Visibility = Windows.Visibility.Hidden + Else + ToolChangerBtn.IsChecked = True + ManualToolChangerBtn.IsChecked = False + End If + End Sub + + Private Sub ManualToolChangerBtn_Click(sender As Object, e As RoutedEventArgs) Handles ManualToolChangerBtn.Click + If ManualToolChangerBtn.IsChecked Then + ToolChangerBtn.IsChecked = False + ManTlChScVw.Visibility = Windows.Visibility.Visible + TlChScVw.Visibility = Windows.Visibility.Hidden + Else + ToolChangerBtn.IsChecked = False + ManualToolChangerBtn.IsChecked = True + End If + End Sub + + ' Funzione che salva lo stato dei portautensili + Private Sub SaveToolChangerStatus() + For Index = 1 To m_MainWindow.m_CurrentMachine.dToolChangerNum + m_MainWindow.m_CurrentMachine.ToolPos(Index - 1) = GetTxBxFromIndex(Index).Text + Next + For Index = 1 To m_MainWindow.m_CurrentMachine.dManualToolChangerNum + m_MainWindow.m_CurrentMachine.ManualToolPos(Index - 1) = GetManTxBxFromIndex(Index).Text + Next + End Sub + + Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click + SaveToolChangerStatus() + m_MainWindow.m_MachinePageUC.MachinePageGrid.Children.Add(m_MainWindow.m_MachinePageUC.m_AlarmsPageUC) + m_MainWindow.m_MachinePageUC.MachinePageGrid.Children.Remove(Me) + End Sub + + Private Sub ExitBtn_Click(sender As Object, e As RoutedEventArgs) Handles ExitBtn.Click + m_MainWindow.m_MachinePageUC.MachinePageGrid.Children.Add(m_MainWindow.m_MachinePageUC.m_AlarmsPageUC) + m_MainWindow.m_MachinePageUC.MachinePageGrid.Children.Remove(Me) + End Sub End Class diff --git a/ToolChangerPosUC.xaml b/ToolChangerPosUC.xaml new file mode 100644 index 0000000..2238835 --- /dev/null +++ b/ToolChangerPosUC.xaml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ToolChangerPosUC.xaml.vb b/ToolChangerPosUC.xaml.vb new file mode 100644 index 0000000..f84f689 --- /dev/null +++ b/ToolChangerPosUC.xaml.vb @@ -0,0 +1,10 @@ +Public Class ToolChangerPosUC + + Friend Event ToolClick As RoutedEventHandler + + Private Sub Tool_Click(sender As Object, e As RoutedEventArgs) Handles Tool.Click + e.Source = Me + RaiseEvent ToolClick(sender, e) + End Sub + +End Class diff --git a/ToolsDbPageUC.xaml.vb b/ToolsDbPageUC.xaml.vb index eec0a6a..085c069 100644 --- a/ToolsDbPageUC.xaml.vb +++ b/ToolsDbPageUC.xaml.vb @@ -325,7 +325,7 @@ Public Class ToolsDbPageUC m_MainWindow.m_MachinePageUC.AlarmsBtn.IsChecked = True End Sub - Private Sub InitializeToolFamily(sFIniConst As String, nFType As Integer, sFName As String) + Friend Sub InitializeToolFamily(sFIniConst As String, nFType As Integer, sFName As String) If GetPrivateProfileInt(S_TOOLS, sFIniConst, 0, m_MainWindow.GetMachIniFile()) = 1 Then Dim ToolCathegory As New CathegoryItem(sFName, nFType) Dim nType As Integer = 0 @@ -895,132 +895,132 @@ Public Class ToolsDbPageUC End Class -Namespace TreeViewItem +'Namespace TreeViewItem - Public Class CathegoryItem - Inherits TreeViewItemBase +' Public Class CathegoryItem +' Inherits TreeViewItemBase - 'Private m_sTitle As String - Private m_sPictureString As String - Private m_nFType As Integer - Private m_Items As ObservableCollection(Of CustomItem) +' 'Private m_sTitle As String +' Private m_sPictureString As String +' Private m_nFType As Integer +' Private m_Items As ObservableCollection(Of CustomItem) - 'Public Property Name As String - ' Get - ' Return m_sTitle - ' End Get - ' Set(value As String) - ' m_sTitle = value - ' End Set - 'End Property +' 'Public Property Name As String +' ' Get +' ' Return m_sTitle +' ' End Get +' ' Set(value As String) +' ' m_sTitle = value +' ' End Set +' 'End Property - Public ReadOnly Property PictureString As String - Get - Return "/Resources/ToolsTreeViewImages/Lama.png" - End Get - End Property +' Public ReadOnly Property PictureString As String +' Get +' Return "/Resources/ToolsTreeViewImages/Lama.png" +' End Get +' End Property - Public ReadOnly Property nFType As Integer - Get - Return m_nFType - End Get - End Property +' Public ReadOnly Property nFType As Integer +' Get +' Return m_nFType +' End Get +' End Property - Public Property Items As ObservableCollection(Of CustomItem) - Get - Return m_Items - End Get - Set(value As ObservableCollection(Of CustomItem)) - m_Items = value - End Set - End Property +' Public Property Items As ObservableCollection(Of CustomItem) +' Get +' Return m_Items +' End Get +' Set(value As ObservableCollection(Of CustomItem)) +' m_Items = value +' End Set +' End Property - Sub New(sName As String, nType As Integer) - Name = sName - m_nFType = nType - Me.Items = New ObservableCollection(Of CustomItem) - End Sub +' Sub New(sName As String, nType As Integer) +' Name = sName +' m_nFType = nType +' Me.Items = New ObservableCollection(Of CustomItem) +' End Sub - End Class +' End Class - Public Class CustomItem - Inherits TreeViewItemBase +' Public Class CustomItem +' Inherits TreeViewItemBase - 'Private m_sTitle As String - Private m_nType As Integer +' 'Private m_sTitle As String +' Private m_nType As Integer - 'Public Property Name As String - ' Get - ' Return m_sTitle - ' End Get - ' Set(value As String) - ' m_sTitle = value - ' End Set - 'End Property +' 'Public Property Name As String +' ' Get +' ' Return m_sTitle +' ' End Get +' ' Set(value As String) +' ' m_sTitle = value +' ' End Set +' 'End Property - Public ReadOnly Property nType As Integer - Get - Return m_nType - End Get - End Property +' Public ReadOnly Property nType As Integer +' Get +' Return m_nType +' End Get +' End Property - Sub New(Title As String, nType As Integer) - Me.Name = Title - m_nType = nType - End Sub +' Sub New(Title As String, nType As Integer) +' Me.Name = Title +' m_nType = nType +' End Sub - End Class +' End Class - Public Class TreeViewItemBase - Implements INotifyPropertyChanged +' Public Class TreeViewItemBase +' Implements INotifyPropertyChanged - Private m_Name As String - Public Property Name As String - Get - Return m_Name - End Get - Set(value As String) - If (value <> m_Name) Then - m_Name = value - NotifyPropertyChanged("Name") - End If - End Set - End Property +' Private m_Name As String +' Public Property Name As String +' Get +' Return m_Name +' End Get +' Set(value As String) +' If (value <> m_Name) Then +' m_Name = value +' NotifyPropertyChanged("Name") +' End If +' End Set +' End Property - Private m_isSelected As Boolean - Public Property IsSelected As Boolean - Get - Return m_isSelected - End Get - Set(value As Boolean) - If (value <> m_isSelected) Then - m_isSelected = value - NotifyPropertyChanged("IsSelected") - End If - End Set - End Property +' Private m_isSelected As Boolean +' Public Property IsSelected As Boolean +' Get +' Return m_isSelected +' End Get +' Set(value As Boolean) +' If (value <> m_isSelected) Then +' m_isSelected = value +' NotifyPropertyChanged("IsSelected") +' End If +' End Set +' End Property - Private m_isExpanded As Boolean - Public Property IsExpanded As Boolean - Get - Return m_isExpanded - End Get - Set(value As Boolean) - If (value <> m_isExpanded) Then - m_isExpanded = value - NotifyPropertyChanged("IsExpanded") - End If - End Set - End Property +' Private m_isExpanded As Boolean +' Public Property IsExpanded As Boolean +' Get +' Return m_isExpanded +' End Get +' Set(value As Boolean) +' If (value <> m_isExpanded) Then +' m_isExpanded = value +' NotifyPropertyChanged("IsExpanded") +' End If +' End Set +' End Property - Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged +' Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged - Public Sub NotifyPropertyChanged(propName As String) - RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName)) - End Sub +' Public Sub NotifyPropertyChanged(propName As String) +' RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName)) +' End Sub - End Class +' End Class -End Namespace +'End Namespace diff --git a/WorkInProgressPageUC.xaml.vb b/WorkInProgressPageUC.xaml.vb index 4ff1583..e54b801 100644 --- a/WorkInProgressPageUC.xaml.vb +++ b/WorkInProgressPageUC.xaml.vb @@ -1,6 +1,7 @@ Imports System.Windows.Threading Imports System.Threading Imports EgtUILib +Imports EgtWPFLib Public Class WorkInProgressPageUC @@ -89,11 +90,10 @@ Public Class WorkInProgressPageUC WorkInProgressScene.SetViewAttributes(nDriver, b2Buff, nColorBits, nDepthBits) ' inizializzo la scena (DB geometrico + visualizzazione) e verifico presenza chiave If Not WorkInProgressScene.Init() Then - Dim m_MissingKeyWindow As New MissingKeyWD - m_MissingKeyWindow.Top = m_MainWindow.Top + (m_MainWindow.Height / 2 - m_MissingKeyWindow.Height / 2) - m_MissingKeyWindow.Left = m_MainWindow.Left + (m_MainWindow.Width / 2 - m_MissingKeyWindow.Width / 2) + ' Rimuovo l'host della scena perchè altrimenti rimarrebbe il buco!! + Me.WorkInProgressPageGrid.Children.Remove(WorkInProgressSceneHost) + Dim MissingKeyWnd As New EgtMsgBox(m_MainWindow, EgtMsg(MSG_MISSINGKEYWD + 1), EgtMsg(MSG_MISSINGKEYWD + 2) & " " & EgtMsg(MSG_MISSINGKEYWD + 3), EgtMsgBox.Buttons.OK, EgtMsgBox.Icons.NULL) m_MainWindow.Close() - m_MissingKeyWindow.Show() End If ' Inizializzo gestore lavorazioni EgtInitMachMgr(m_MainWindow.GetMachinesRootDir())