Imports System.Collections.ObjectModel Imports System.ComponentModel Imports OmagCUT.TreeViewItem Imports EgtUILib Imports EgtWPFLib Public Class MachiningDbPageUC ' Riferimento alla MainWindow Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow) ' Lista degli utensili Dim MachiningsList As New ObservableCollection(Of CathegoryItem) ' Lista dei materiali Private m_MaterialsList As New ObservableCollection(Of MachiningMaterial) ' Proprietà Private m_bFirst As Boolean = True Private m_sMachiningName As String = String.Empty 'Array che contengono le variabili per Combobox Dim WorkSide() As String Dim HeadSide() As String Dim LeadInType() As String Dim ExtLinkType() As String Dim LeadOutType() As String Dim LeadLinkType() As String Dim LeLiFinType() As String Dim CurveUse() As String Dim StepType() As String Dim RouFinStepType() As String Dim SawTool As New ObservableCollection(Of String) Dim DrillTool As New ObservableCollection(Of String) Dim MillTool As New ObservableCollection(Of String) Dim WaterJetTool As New ObservableCollection(Of String) 'Variabile che conserva la lavorazione precedentemente selezionata, usata nel caso si selezioni annulla quando si cambia lavorazione selezionata Private m_OldItem As Object Private Sub MachiningDbPage_Initialized(sender As Object, e As EventArgs) ' Assegno la lista degli utensili come sorgente del treeview MachiningTreeView.ItemsSource = MachiningsList ' Assegno la lista dei materiali come sorgente della listbox MaterialsList.ItemsSource = m_MaterialsList ' Imposto testo delle combobox da file dei messaggi WorkSide = {EgtMsg(MSG_COMBOBOXPARAM + 21), EgtMsg(MSG_COMBOBOXPARAM + 22), EgtMsg(MSG_COMBOBOXPARAM + 23)} HeadSide = {EgtMsg(MSG_COMBOBOXPARAM + 22), EgtMsg(MSG_COMBOBOXPARAM + 23)} LeadInType = {EgtMsg(MSG_COMBOBOXPARAM + 24), EgtMsg(MSG_COMBOBOXPARAM + 25), EgtMsg(MSG_COMBOBOXPARAM + 26), EgtMsg(MSG_COMBOBOXPARAM + 27), EgtMsg(MSG_COMBOBOXPARAM + 28)} ExtLinkType = {EgtMsg(MSG_COMBOBOXPARAM + 24), EgtMsg(MSG_COMBOBOXPARAM + 29), EgtMsg(MSG_COMBOBOXPARAM + 30), EgtMsg(MSG_COMBOBOXPARAM + 31)} LeadOutType = {EgtMsg(MSG_COMBOBOXPARAM + 32), EgtMsg(MSG_COMBOBOXPARAM + 33), EgtMsg(MSG_COMBOBOXPARAM + 34)} LeadLinkType = {EgtMsg(MSG_COMBOBOXPARAM + 24), EgtMsg(MSG_COMBOBOXPARAM + 26)} LeLiFinType = {EgtMsg(MSG_COMBOBOXPARAM + 42), EgtMsg(MSG_COMBOBOXPARAM + 24), EgtMsg(MSG_COMBOBOXPARAM + 26)} CurveUse = {EgtMsg(MSG_COMBOBOXPARAM + 35), EgtMsg(MSG_COMBOBOXPARAM + 36), EgtMsg(MSG_COMBOBOXPARAM + 37), EgtMsg(MSG_COMBOBOXPARAM + 41)} StepType = {EgtMsg(MSG_COMBOBOXPARAM + 38), EgtMsg(MSG_COMBOBOXPARAM + 39), EgtMsg(MSG_COMBOBOXPARAM + 40)} RouFinStepType = {EgtMsg(MSG_COMBOBOXPARAM + 38), EgtMsg(MSG_COMBOBOXPARAM + 39)} ' Assegno array a combobox WorkSideCmBx.ItemsSource = WorkSide HeadSideCmBx.ItemsSource = HeadSide LeadInTypeCmBx.ItemsSource = LeadInType ExtLinkTypeCmBx.ItemsSource = ExtLinkType LeadOutTypeCmBx.ItemsSource = LeadOutType LeadLinkTypeCmBx.ItemsSource = LeadLinkType CurveUseCmBx.ItemsSource = CurveUse StepTypeCmBx.ItemsSource = StepType ' Imposto i messaggi letti dal file dei messaggi NewBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 16) SaveBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 17) RemoveBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 18) NameTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 1) DepthTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 2) SideAngleTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 3) InvertTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 4) AcrossTxBl.Text = EgtMsg(MSG_OMAGCUT + 861) StepTypeTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 5) WorkSideTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 6) HeadSideTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 7) StartPosTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 8) LeadInTypeTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 9) ExtLinkTypeTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 10) LeadOutTypeTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 11) LeadLinkTypeTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 10) CurveUseTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 12) ApproxTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 13) SawStepGpBx.Header = EgtMsg(MSG_MACHININGSDBPAGEUC + 14) ForwardSawStepTxBl.Text = EgtMsg(MSG_OMAGCUT + 864) BackwardSawStepTxBl.Text = EgtMsg(MSG_OMAGCUT + 865) DrillStepTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 16) SawRouStepGpBx.Header = EgtMsg(MSG_MACHININGSDBPAGEUC + 27) SawRouStepTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 28) SideStepTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 29) ForwardStepSideAngTxBl.Text = EgtMsg(MSG_OMAGCUT + 862) BackwardStepSideAngTxBl.Text = EgtMsg(MSG_OMAGCUT + 863) ArcIntTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 17) ArcExtTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 18) LowLenGpBx.Header = EgtMsg(MSG_MACHININGSDBPAGEUC + 19) StartsLowLenTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 20) EndsLowLenTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 21) ThrouAddLenTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 22) ReturnPosTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 23) ToolTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 24) SpeedTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 5) FeedGpBx.Header = EgtMsg(MSG_TOOLSDBPAGEUC + 8) FeedTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 9) TipFeedTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 10) StartFeedTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 11) EndFeedTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 12) VertFeedTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 30) BackFeedTxBl.Text = EgtMsg(MSG_OMAGCUT + 866) OffsetGpBx.Header = EgtMsg(MSG_TOOLSDBPAGEUC + 15) LonOffsetTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 16) RadOffsetTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 17) MinThicknessTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 25) MaxThicknessTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 26) ' Associo TextBox e Label Dim TempLabel1 As New Label TempLabel1.Content = SideAngleTxBl.Text SideAngleTxBx.Tag = TempLabel1 Dim TempLabel2 As New Label TempLabel2.Content = ApproxTxBl.Text ApproxTxBx.Tag = TempLabel2 End Sub Private Sub MachiningDbPage_Loaded(sender As Object, e As RoutedEventArgs) EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx()) ' Carico le liste di utensili InitializeToolLists() ' Carico elenco lavorazioni If m_bFirst Then Dim CurrMachine As CurrentMachine = m_MainWindow.m_CurrentMachine InitializeMachiningFamily(CurrMachine.bSawing, MCH_MY.SAWING, EgtMsg(MSG_MACHININGSDBPAGEUC + 31)) InitializeMachiningFamily(CurrMachine.bDrilling, MCH_MY.DRILLING, EgtMsg(MSG_MACHININGSDBPAGEUC + 32)) InitializeMachiningFamily(CurrMachine.bMilling, MCH_MY.MILLING, EgtMsg(MSG_MACHININGSDBPAGEUC + 33)) InitializeMachiningFamily(CurrMachine.bSawRoughing, MCH_MY.SAWROUGHING, EgtMsg(MSG_MACHININGSDBPAGEUC + 34)) InitializeMachiningFamily(CurrMachine.bSawFinishing, MCH_MY.SAWFINISHING, EgtMsg(MSG_MACHININGSDBPAGEUC + 35)) InitializeMachiningFamily(CurrMachine.bPocketing, MCH_MY.POCKETING, EgtMsg(MSG_MACHININGSDBPAGEUC + 36)) InitializeMachiningFamily(CurrMachine.bWaterJetting, MCH_MY.WATERJETTING, EgtMsg(MSG_MACHININGSDBPAGEUC + 37)) m_bFirst = False End If ' Imposto la prima lavorazione InitializeFirstSelectedItem() End Sub 'Funzione che permette di inizializzare le liste di utensili Private Sub InitializeToolLists() Dim sToolName As String = String.Empty Dim nType As Integer = MCH_TY.NONE SawTool.Clear() If EgtTdbGetFirstTool(MCH_TF.SAWBLADE, sToolName, nType) Then SawTool.Add(sToolName) While EgtTdbGetNextTool(MCH_TF.SAWBLADE, sToolName, nType) SawTool.Add(sToolName) End While End If DrillTool.Clear() If EgtTdbGetFirstTool(MCH_TF.DRILLBIT, sToolName, nType) Then DrillTool.Add(sToolName) While EgtTdbGetNextTool(MCH_TF.DRILLBIT, sToolName, nType) DrillTool.Add(sToolName) End While End If MillTool.Clear() If EgtTdbGetFirstTool(MCH_TF.MILL, sToolName, nType) Then MillTool.Add(sToolName) While EgtTdbGetNextTool(MCH_TF.MILL, sToolName, nType) MillTool.Add(sToolName) End While End If WaterJetTool.Clear() If EgtTdbGetFirstTool(MCH_TF.WATERJET, sToolName, nType) Then WaterJetTool.Add(sToolName) While EgtTdbGetNextTool(MCH_TF.WATERJET, sToolName, nType) WaterJetTool.Add(sToolName) End While End If End Sub 'Funzione che permette l'inizializzazione di albero e parametri all'apertura della pagina ToolsDb Private Sub InitializeFirstSelectedItem() If MachiningsList.Count > 0 Then For Each MachiningFamily In MachiningsList If MachiningFamily.Items.Count > 0 Then MachiningFamily.IsExpanded = True MachiningFamily.Items(0).IsSelected = True Dim x = EgtMdbSetCurrMachining(MachiningFamily.Items(0).Name) m_OldItem = MachiningFamily.Items(0) GetMachiningParams() ViewMachiningParams() Exit Sub End If Next MachiningsList.Item(0).IsSelected = True HideMachiningParams() End If End Sub Private Sub NewBtn_Click(sender As Object, e As RoutedEventArgs) Handles NewBtn.Click EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx()) If TypeOf MachiningTreeView.SelectedItem Is CathegoryItem Then Dim SelectedCathegory As CathegoryItem = MachiningTreeView.SelectedItem Dim NewName As String = SelectedCathegory.Name EgtMdbGetMachiningNewName(NewName) If EgtMdbAddMachining(NewName, SelectedCathegory.nFType) Then For Each MachiningFamily In MachiningsList If MachiningFamily.nFType = SelectedCathegory.nFType Then Dim NewMachiningItem As New CustomItem(NewName, SelectedCathegory.nFType) MachiningFamily.Items.Add(NewMachiningItem) NewMachiningItem.IsSelected = True MachiningFamily.IsExpanded = True m_OldItem = MachiningTreeView.SelectedItem Exit For End If Next GetMachiningParams() ViewMachiningParams() End If ElseIf TypeOf MachiningTreeView.SelectedItem Is CustomItem Then Dim SelectedCathegory As CustomItem = MachiningTreeView.SelectedItem Dim NewName As String = SelectedCathegory.Name EgtMdbGetMachiningNewName(NewName) If EgtMdbCopyMachining(SelectedCathegory.Name, NewName) Then Dim CurrType As Integer EgtMdbGetCurrMachiningParam(MCH_MP.TYPE, CurrType) For Each MachiningFamily In MachiningsList If MachiningFamily.nFType = CurrType Then Dim NewMachiningItem As New CustomItem(NewName, CurrType) MachiningFamily.Items.Add(NewMachiningItem) NewMachiningItem.IsSelected = True GetMachiningParams() m_OldItem = MachiningTreeView.SelectedItem Exit For End If Next End If End If End Sub Private Sub SaveBtn_Click(sender As Object, e As RoutedEventArgs) Handles SaveBtn.Click EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx()) SetMachiningParams() EgtMdbSaveCurrMachining() m_sMachiningName = NameTxBx.Text Dim Machining As CustomItem = TryCast(m_OldItem, CustomItem) If Machining IsNot Nothing Then Machining.Name = m_sMachiningName End If End Sub Private Sub RemoveBtn_Click(sender As Object, e As RoutedEventArgs) Handles RemoveBtn.Click If TypeOf MachiningTreeView.SelectedItem Is CustomItem Then Dim SelectedItem As CustomItem = MachiningTreeView.SelectedItem EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx()) ' Cancello la lavorazione EgtMdbRemoveMachining(SelectedItem.Name) ' Rimuovo dall'albero For Each MachiningFamily In MachiningsList If (MachiningFamily.nFType And SelectedItem.nType) <> 0 Then MachiningFamily.Items.Remove(SelectedItem) If MachiningFamily.Items.Count = 0 Then MachiningFamily.IsSelected = True HideMachiningParams() Else MachiningFamily.Items(0).IsSelected = True EgtMdbSetCurrMachining(MachiningFamily.Items(0).Name) m_OldItem = MachiningFamily.Items(0) GetMachiningParams() ViewMachiningParams() End If End If Next End If End Sub Private Sub InitializeMachiningFamily(bEnabled As Boolean, nFType As Integer, sFName As String) If Not bEnabled Then Return ' Inserisco categoria ed eventuali elementi Dim MachiningCathegory As New CathegoryItem(sFName, nFType) Dim MachiningName As String = String.Empty If EgtMdbGetFirstMachining(nFType, MachiningName) Then MachiningCathegory.Items.Add(New CustomItem(MachiningName, nFType)) While EgtMdbGetNextMachining(nFType, MachiningName) MachiningCathegory.Items.Add(New CustomItem(MachiningName, nFType)) End While End If MachiningsList.Add(MachiningCathegory) End Sub Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click ' Se necessario, chiedo se salvare ll lavorazione corrente If Not SaveCurrMachining() Then Exit Sub End If ' Salvo il DB utensili EgtMdbSave() ' Esco dalla pagina m_MainWindow.m_MachinePageUC.MachinePageGrid.Children.Remove(m_MainWindow.m_MachinePageUC.m_MachiningDbPageUC) m_MainWindow.m_MachinePageUC.MachinePageGrid.Children.Add(m_MainWindow.m_MachinePageUC.m_AlarmsPageUC) m_MainWindow.m_MachinePageUC.m_ActiveMachinePage = MachinePageUC.MachinePages.Alarms m_MainWindow.m_MachinePageUC.MachiningDBBtn.IsChecked = False m_MainWindow.m_MachinePageUC.AlarmsBtn.IsChecked = True End Sub Private Sub GetMachiningParams() EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx()) Dim nMachiningType As Integer EgtMdbGetCurrMachiningParam(MCH_MP.TYPE, nMachiningType) Dim ToolString As String = String.Empty Dim ToolInt As Integer = 0 Dim ToolDouble As Double = 0 Dim ToolBool As Boolean = False EgtMdbGetCurrMachiningParam(MCH_MP.NAME, m_sMachiningName) NameTxBx.Text = m_sMachiningName EgtMdbGetCurrMachiningParam(MCH_MP.DEPTH_STR, ToolString) DepthTxBx.Text = ExprToUIExpr(ToolString) ' Parametri Taglio EgtMdbGetCurrMachiningParam(MCH_MP.SIDEANGLE, ToolDouble) SideAngleTxBx.Text = DoubleToString(ToolDouble, 3) EgtMdbGetCurrMachiningParam(MCH_MP.INVERT, ToolBool) InvertChBx.IsChecked = ToolBool EgtMdbGetCurrMachiningParam(MCH_MP.STEPTYPE, ToolInt) StepTypeCmBx.SelectedIndex = ToolInt EgtMdbGetCurrMachiningParam(MCH_MP.WORKSIDE, ToolInt) WorkSideCmBx.SelectedIndex = ToolInt EgtMdbGetCurrMachiningParam(MCH_MP.HEADSIDE, ToolInt) HeadSideCmBx.SelectedIndex = ToolInt - 1 EgtMdbGetCurrMachiningParam(MCH_MP.LEADINTYPE, ToolInt) LeadInTypeCmBx.SelectedIndex = ToolInt EgtMdbGetCurrMachiningParam(MCH_MP.EXTLINKTYPE, ToolInt) ExtLinkTypeCmBx.SelectedIndex = ToolInt EgtMdbGetCurrMachiningParam(MCH_MP.LEADOUTTYPE, ToolInt) LeadOutTypeCmBx.SelectedIndex = ToolInt EgtMdbGetCurrMachiningParam(MCH_MP.CURVEUSE, ToolInt) CurveUseCmBx.SelectedIndex = ToolInt EgtMdbGetCurrMachiningParam(MCH_MP.APPROX, ToolDouble) ApproxTxBx.Text = LenToString(ToolDouble, 3) ' Parametri Foratura EgtMdbGetCurrMachiningParam(MCH_MP.STARTPOS, ToolDouble) StartPosTxBx.Text = LenToString(ToolDouble, 3) EgtMdbGetCurrMachiningParam(MCH_MP.STARTSLOWLEN, ToolDouble) StartsLowLenTxBx.Text = LenToString(ToolDouble, 3) EgtMdbGetCurrMachiningParam(MCH_MP.ENDSLOWLEN, ToolDouble) EndsLowLenTxBx.Text = LenToString(ToolDouble, 3) EgtMdbGetCurrMachiningParam(MCH_MP.THROUADDLEN, ToolDouble) ThrouAddLenTxBx.Text = LenToString(ToolDouble, 3) EgtMdbGetCurrMachiningParam(MCH_MP.STEP_, ToolDouble) StepTxBx.Text = LenToString(ToolDouble, 3) EgtMdbGetCurrMachiningParam(MCH_MP.STEPBACK, ToolDouble) BackwardSawStepTxBx.Text = LenToString(ToolDouble, 3) EgtMdbGetCurrMachiningParam(MCH_MP.RETURNPOS, ToolDouble) ReturnPosTxBx.Text = LenToString(ToolDouble, 3) EgtMdbGetCurrMachiningParam(MCH_MP.STEPSIDEANG, ToolDouble) ForwardStepSideAngTxBx.Text = LenToString(ToolDouble, 3) EgtMdbGetCurrMachiningParam(MCH_MP.STEPSIDEANGBACK, ToolDouble) BackwardStepSideAngTxBx.Text = LenToString(ToolDouble, 3) EgtMdbGetCurrMachiningParam(MCH_MP.STEPEXTARC, ToolDouble) ArcExtTxBx.Text = LenToString(ToolDouble, 3) EgtMdbGetCurrMachiningParam(MCH_MP.STEPINTARC, ToolDouble) ArcIntTxBx.Text = LenToString(ToolDouble, 3) ' Parametri Sgrossatura/Finitura con lama EgtMdbGetCurrMachiningParam(MCH_MP.SUBTYPE, ToolInt) AcrossChBx.IsChecked = (ToolInt = MCH_SAWFIN_SUB.ACROSS) EgtMdbGetCurrMachiningParam(MCH_MP.LEADLINKTYPE, ToolInt) LeadLinkTypeCmBx.SelectedIndex = ToolInt EgtMdbGetCurrMachiningParam(MCH_MP.SIDESTEP, ToolDouble) SideStepTxBx.Text = LenToString(ToolDouble, 3) ' Parametri utensile Select Case nMachiningType Case MCH_MY.SAWING 'Taglio ToolCmBx.ItemsSource = SawTool Case MCH_MY.MILLING 'Fresatura ToolCmBx.ItemsSource = MillTool Case MCH_MY.POCKETING 'Svuotatura ToolCmBx.ItemsSource = MillTool Case MCH_MY.DRILLING 'Foratura ToolCmBx.ItemsSource = DrillTool Case MCH_MY.SAWROUGHING 'Sgrossatura con lama ToolCmBx.ItemsSource = SawTool Case MCH_MY.SAWFINISHING 'Finitura con lama ToolCmBx.ItemsSource = SawTool Case MCH_MY.WATERJETTING 'WaterJetting ToolCmBx.ItemsSource = WaterJetTool End Select ' Recupero nome utensile tramite TUUID Dim sTuuid As String = String.Empty EgtMdbGetCurrMachiningParam(MCH_MP.TUUID, sTuuid) EgtTdbGetToolFromUUID(sTuuid, ToolString) Dim bToolExist As Boolean = False For Each CurrTool In ToolCmBx.ItemsSource If CurrTool.ToString() = ToolString Then bToolExist = True Exit For End If Next If bToolExist Then ToolCmBx.SelectedItem = ToolString Else ToolCmBx.SelectedItem = Nothing End If ' Speed e Feed EgtMdbGetCurrMachiningParam(MCH_MP.SPEED, ToolDouble) SpeedTxBx.Text = DoubleToString(ToolDouble, 3) EgtMdbGetCurrMachiningParam(MCH_MP.FEED, ToolDouble) FeedTxBx.Text = LenToString(ToolDouble, 3) EgtMdbGetCurrMachiningParam(MCH_MP.STARTFEED, ToolDouble) StartFeedTxBx.Text = LenToString(ToolDouble, 3) EgtMdbGetCurrMachiningParam(MCH_MP.ENDFEED, ToolDouble) EndFeedTxBx.Text = LenToString(ToolDouble, 3) EgtMdbGetCurrMachiningParam(MCH_MP.TIPFEED, ToolDouble) TipFeedTxBx.Text = LenToString(ToolDouble, 3) EgtMdbGetCurrMachiningParam(MCH_MP.VERTFEED, ToolDouble) VertFeedTxBx.Text = LenToString(ToolDouble, 3) EgtMdbGetCurrMachiningParam(MCH_MP.BACKFEED, ToolDouble) BackFeedTxBx.Text = LenToString(ToolDouble, 3) ' Sovramateriale EgtMdbGetCurrMachiningParam(MCH_MP.OFFSL, ToolDouble) LonOffsetTxBx.Text = LenToString(ToolDouble, 3) EgtMdbGetCurrMachiningParam(MCH_MP.OFFSR, ToolDouble) RadOffsetTxBx.Text = LenToString(ToolDouble, 3) ' Lista materiali m_MaterialsList.Clear() For Each Material In m_MainWindow.m_CurrentMachine.Materials m_MaterialsList.Add(New MachiningMaterial(Material.nId, Material.sName)) Next EgtMdbGetCurrMachiningParam(MCH_MP.SYSNOTES, ToolString) If ToolString <> String.Empty Then Dim sItems() = ToolString.Split(";".ToCharArray) Dim Index As Integer = 0 For Each Material In m_MaterialsList Dim Param() As String = sItems(Index).Split(",".ToCharArray) Dim nParId As Integer = 0 If StringToInt(Param(0), nParId) AndAlso nParId = Material.nId Then StringToDouble(Param(1), Material.dMinThickness) StringToDouble(Param(2), Material.dMaxThickness) Material.bIsActive = True Index += 1 Else Material.bIsActive = False End If Next End If If MaterialsList.Items.Count > 0 Then MaterialsList.SelectedItem = m_MaterialsList(0) End If End Sub Friend Sub SetMachiningParams() EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx()) Dim nMachiningType As Integer EgtMdbGetCurrMachiningParam(MCH_MP.TYPE, nMachiningType) Dim bTemp As Boolean Dim nTemp As Integer Dim dTemp As Double EgtMdbSetCurrMachiningParam(MCH_MP.NAME, NameTxBx.Text) EgtMdbSetCurrMachiningParam(MCH_MP.DEPTH_STR, UIExprToExpr(DepthTxBx.Text)) ' Parametri Taglio StringToDouble(SideAngleTxBx.Text, dTemp) EgtMdbSetCurrMachiningParam(MCH_MP.SIDEANGLE, dTemp) bTemp = If(InvertChBx.IsChecked(), True, False) EgtMdbSetCurrMachiningParam(MCH_MP.INVERT, bTemp) EgtMdbSetCurrMachiningParam(MCH_MP.STEPTYPE, StepTypeCmBx.SelectedIndex) EgtMdbSetCurrMachiningParam(MCH_MP.WORKSIDE, WorkSideCmBx.SelectedIndex) EgtMdbSetCurrMachiningParam(MCH_MP.HEADSIDE, HeadSideCmBx.SelectedIndex + 1) EgtMdbSetCurrMachiningParam(MCH_MP.LEADINTYPE, LeadInTypeCmBx.SelectedIndex) EgtMdbSetCurrMachiningParam(MCH_MP.EXTLINKTYPE, ExtLinkTypeCmBx.SelectedIndex) EgtMdbSetCurrMachiningParam(MCH_MP.LEADOUTTYPE, LeadOutTypeCmBx.SelectedIndex) EgtMdbSetCurrMachiningParam(MCH_MP.CURVEUSE, If(CurveUseCmBx.IsVisible, CurveUseCmBx.SelectedIndex, MCH_SAW_CU.KEEP)) StringToLen(ApproxTxBx.Text, dTemp) EgtMdbSetCurrMachiningParam(MCH_MP.APPROX, dTemp) StringToLen(ForwardStepSideAngTxBx.Text, dTemp) EgtMdbSetCurrMachiningParam(MCH_MP.STEPSIDEANG, dTemp) StringToLen(BackwardStepSideAngTxBx.Text, dTemp) EgtMdbSetCurrMachiningParam(MCH_MP.STEPSIDEANGBACK, dTemp) StringToLen(ArcExtTxBx.Text, dTemp) EgtMdbSetCurrMachiningParam(MCH_MP.STEPEXTARC, dTemp) StringToLen(ArcIntTxBx.Text, dTemp) EgtMdbSetCurrMachiningParam(MCH_MP.STEPINTARC, dTemp) ' Parametri Foratura StringToLen(StartPosTxBx.Text, dTemp) EgtMdbSetCurrMachiningParam(MCH_MP.STARTPOS, dTemp) StringToLen(StartsLowLenTxBx.Text, dTemp) EgtMdbSetCurrMachiningParam(MCH_MP.STARTSLOWLEN, dTemp) StringToLen(EndsLowLenTxBx.Text, dTemp) EgtMdbSetCurrMachiningParam(MCH_MP.ENDSLOWLEN, dTemp) StringToLen(ThrouAddLenTxBx.Text, dTemp) EgtMdbSetCurrMachiningParam(MCH_MP.THROUADDLEN, dTemp) StringToLen(StepTxBx.Text, dTemp) EgtMdbSetCurrMachiningParam(MCH_MP.STEP_, dTemp) StringToLen(BackwardSawStepTxBx.Text, dTemp) EgtMdbSetCurrMachiningParam(MCH_MP.STEPBACK, dTemp) StringToLen(ReturnPosTxBx.Text, dTemp) EgtMdbSetCurrMachiningParam(MCH_MP.RETURNPOS, dTemp) ' Parametri Sgrossatura/Finitura con lama EgtMdbSetCurrMachiningParam(MCH_MP.LEADLINKTYPE, LeadLinkTypeCmBx.SelectedIndex) StringToLen(SideStepTxBx.Text, dTemp) EgtMdbSetCurrMachiningParam(MCH_MP.SIDESTEP, dTemp) If nMachiningType = MCH_MY.SAWFINISHING Then nTemp = If(AcrossChBx.IsChecked(), MCH_SAWFIN_SUB.ACROSS, MCH_SAWFIN_SUB.ALONG) EgtMdbSetCurrMachiningParam(MCH_MP.SUBTYPE, nTemp) End If ' Parametri utensile If Not IsNothing(ToolCmBx.SelectedItem) Then EgtMdbSetCurrMachiningParam(MCH_MP.TOOL, ToolCmBx.SelectedItem.ToString) Else EgtMdbSetCurrMachiningParam(MCH_MP.TOOL, String.Empty) End If ' Speed e Feed StringToDouble(SpeedTxBx.Text, dTemp) EgtMdbSetCurrMachiningParam(MCH_MP.SPEED, dTemp) StringToLen(FeedTxBx.Text, dTemp) EgtMdbSetCurrMachiningParam(MCH_MP.FEED, dTemp) StringToLen(StartFeedTxBx.Text, dTemp) EgtMdbSetCurrMachiningParam(MCH_MP.STARTFEED, dTemp) StringToLen(EndFeedTxBx.Text, dTemp) EgtMdbSetCurrMachiningParam(MCH_MP.ENDFEED, dTemp) StringToLen(TipFeedTxBx.Text, dTemp) EgtMdbSetCurrMachiningParam(MCH_MP.TIPFEED, dTemp) StringToLen(VertFeedTxBx.Text, dTemp) EgtMdbSetCurrMachiningParam(MCH_MP.VERTFEED, dTemp) StringToLen(BackFeedTxBx.Text, dTemp) EgtMdbSetCurrMachiningParam(MCH_MP.BACKFEED, dTemp) ' Sovramateriale StringToLen(LonOffsetTxBx.Text, dTemp) EgtMdbSetCurrMachiningParam(MCH_MP.OFFSL, dTemp) StringToLen(RadOffsetTxBx.Text, dTemp) EgtMdbSetCurrMachiningParam(MCH_MP.OFFSR, dTemp) ' Scrivo stringa materiali da lista Dim sMaterialString As String = String.Empty For Each Material In m_MaterialsList If Material.bIsActive Then sMaterialString += Material.nId.ToString & "," & DoubleToString(Material.dMinThickness, 0) & "," & DoubleToString(Material.dMaxThickness, 0) & ";" End If Next EgtMdbSetCurrMachiningParam(MCH_MP.SYSNOTES, sMaterialString) End Sub Private Sub ViewMachiningParams() Dim nMachiningType As Integer EgtMdbGetCurrMachiningParam(MCH_MP.TYPE, nMachiningType) NameTxBl.Visibility = Windows.Visibility.Visible NameTxBx.Visibility = Windows.Visibility.Visible DepthTxBl.Visibility = Windows.Visibility.Visible DepthTxBx.Visibility = Windows.Visibility.Visible MaterialsBrd.Visibility = Windows.Visibility.Visible SpeedGrd.Visibility = Windows.Visibility.Visible FeedGpBx.Visibility = Windows.Visibility.Visible LonOffsetTxBl.Visibility = Windows.Visibility.Visible LonOffsetTxBx.Visibility = Windows.Visibility.Visible Select Case nMachiningType Case MCH_MY.SAWING 'Parametri Taglio SideAngleTxBl.Visibility = Windows.Visibility.Visible SideAngleTxBx.Visibility = Windows.Visibility.Visible InvertTxBl.Visibility = Windows.Visibility.Visible InvertChBx.Visibility = Windows.Visibility.Visible AcrossTxBl.Visibility = Windows.Visibility.Hidden AcrossChBx.Visibility = Windows.Visibility.Hidden StepTypeTxBl.Visibility = Windows.Visibility.Visible StepTypeCmBx.Visibility = Windows.Visibility.Visible StepTypeCmBx.ItemsSource = StepType SideBrd.Visibility = Windows.Visibility.Visible WorkSideTxBl.Visibility = Windows.Visibility.Visible WorkSideCmBx.Visibility = Windows.Visibility.Visible HeadSideTxBl.Visibility = Windows.Visibility.Visible HeadSideCmBx.Visibility = Windows.Visibility.Visible TypeBrd.Visibility = Windows.Visibility.Visible LeadInTypeTxBl.Visibility = Windows.Visibility.Visible LeadInTypeCmBx.Visibility = Windows.Visibility.Visible ExtLinkTypeTxBl.Visibility = Windows.Visibility.Visible ExtLinkTypeCmBx.Visibility = Windows.Visibility.Visible LeadOutTypeTxBl.Visibility = Windows.Visibility.Visible LeadOutTypeCmBx.Visibility = Windows.Visibility.Visible LeadLinkTypeTxBl.Visibility = Windows.Visibility.Hidden LeadLinkTypeCmBx.Visibility = Windows.Visibility.Hidden CurveBrd.Visibility = Windows.Visibility.Hidden If MachParamGrd.Children.Contains(StartPosTxBl) Then MachParamGrd.Children.Remove(StartPosTxBl) MachParamGrd.Children.Remove(StartPosTxBx) TypeGrd.Children.Add(StartPosTxBl) TypeGrd.Children.Add(StartPosTxBx) StartPosTxBl.SetValue(Grid.ColumnProperty, 0) StartPosTxBl.SetValue(Grid.RowProperty, 0) StartPosTxBx.SetValue(Grid.ColumnProperty, 1) StartPosTxBx.SetValue(Grid.RowProperty, 0) StartPosTxBl.SetValue(Grid.RowSpanProperty, 1) StartPosTxBx.SetValue(Grid.RowSpanProperty, 1) StartPosTxBx.Style = Application.Current.FindResource("OmagCut_MachLeftCalculatorTextBoxInBorder") End If StartPosTxBl.Visibility = Windows.Visibility.Visible StartPosTxBx.Visibility = Windows.Visibility.Visible LowLenGpBx.Visibility = Windows.Visibility.Hidden ThrouAddLenTxBl.Visibility = Windows.Visibility.Hidden ThrouAddLenTxBx.Visibility = Windows.Visibility.Hidden If DrillStepGrd.Children.Contains(StepTxBx) Then DrillStepGrd.Children.Remove(StepTxBx) SawStepGrd.Children.Add(StepTxBx) StepTxBx.SetValue(Grid.ColumnProperty, 1) StepTxBx.SetValue(Grid.RowProperty, 0) StepTxBx.Style = Application.Current.FindResource("OmagCut_CalculatorTextBoxInGroupBox") ElseIf SawRouStepGrd.Children.Contains(StepTxBx) Then SawRouStepGrd.Children.Remove(StepTxBx) SawStepGrd.Children.Add(StepTxBx) StepTxBx.SetValue(Grid.ColumnProperty, 1) StepTxBx.SetValue(Grid.RowProperty, 0) StepTxBx.Style = Application.Current.FindResource("OmagCut_CalculatorTextBoxInGroupBox") End If DrillStepBrd.Visibility = Windows.Visibility.Hidden SawRouStepGpBx.Visibility = Windows.Visibility.Hidden SawStepGpBx.Visibility = Windows.Visibility.Visible SawStepGpBx.SetValue(Grid.RowProperty, 18) SawStepGpBx.SetValue(Grid.RowSpanProperty, 9) BackwardSawStepTxBl.Visibility = Windows.Visibility.Visible BackwardSawStepTxBx.Visibility = Windows.Visibility.Visible ForwardStepSideAngTxBl.Visibility = Windows.Visibility.Visible ForwardStepSideAngTxBx.Visibility = Windows.Visibility.Visible BackwardStepSideAngTxBl.Visibility = Windows.Visibility.Visible BackwardStepSideAngTxBx.Visibility = Windows.Visibility.Visible ForwardSawStepTxBl.Text = EgtMsg(MSG_OMAGCUT + 864) If Not SawStepGrd.Children.Contains(ArcIntTxBl) Then Dim Row As New RowDefinition Row.Height = New GridLength(1, GridUnitType.Star) SawStepGrd.RowDefinitions.Add(Row) SawStepGrd.Children.Add(ArcIntTxBl) SawStepGrd.Children.Add(ArcIntTxBx) SawStepGrd.Children.Add(ArcExtTxBl) SawStepGrd.Children.Add(ArcExtTxBx) End If ReturnPosTxBl.Visibility = Windows.Visibility.Hidden ReturnPosTxBx.Visibility = Windows.Visibility.Hidden OffsetGpBx.Visibility = Windows.Visibility.Hidden ' Definizione di una riga della tabella con la giusta altezza Dim RowNum As Integer = FeedGrd.RowDefinitions.Count If RowNum > 4 Then For Index = RowNum - 1 To 4 Step -1 FeedGrd.RowDefinitions.RemoveAt(Index) Next End If FeedGpBx.SetValue(Grid.RowSpanProperty, 12) ' Definizione di una riga della tabella Feed RowNum = FeedGrd.RowDefinitions.Count If RowNum < 5 Then Dim Row As New RowDefinition Row.Height = New GridLength(1, GridUnitType.Star) FeedGrd.RowDefinitions.Add(Row) FeedGpBx.SetValue(Grid.RowSpanProperty, 14) BackFeedTxBl.SetValue(Grid.RowProperty, 4) BackFeedTxBx.SetValue(Grid.ColumnProperty, 1) BackFeedTxBx.SetValue(Grid.RowProperty, 4) End If VertFeedTxBl.Visibility = Windows.Visibility.Hidden VertFeedTxBx.Visibility = Windows.Visibility.Hidden BackFeedTxBl.Visibility = Windows.Visibility.Visible BackFeedTxBx.Visibility = Windows.Visibility.Visible Case MCH_MY.MILLING 'Parametri Fresatura SideAngleTxBl.Visibility = Windows.Visibility.Hidden SideAngleTxBx.Visibility = Windows.Visibility.Hidden InvertTxBl.Visibility = Windows.Visibility.Hidden InvertChBx.Visibility = Windows.Visibility.Hidden AcrossTxBl.Visibility = Windows.Visibility.Hidden AcrossChBx.Visibility = Windows.Visibility.Hidden StepTypeTxBl.Visibility = Windows.Visibility.Hidden StepTypeCmBx.Visibility = Windows.Visibility.Hidden SideBrd.Visibility = Windows.Visibility.Visible WorkSideTxBl.Visibility = Windows.Visibility.Visible WorkSideCmBx.Visibility = Windows.Visibility.Visible HeadSideTxBl.Visibility = Windows.Visibility.Hidden HeadSideCmBx.Visibility = Windows.Visibility.Hidden TypeBrd.Visibility = Windows.Visibility.Visible LeadInTypeTxBl.Visibility = Windows.Visibility.Visible LeadInTypeCmBx.Visibility = Windows.Visibility.Visible ExtLinkTypeTxBl.Visibility = Windows.Visibility.Hidden ExtLinkTypeCmBx.Visibility = Windows.Visibility.Hidden LeadOutTypeTxBl.Visibility = Windows.Visibility.Visible LeadOutTypeCmBx.Visibility = Windows.Visibility.Visible LeadLinkTypeTxBl.Visibility = Windows.Visibility.Hidden LeadLinkTypeCmBx.Visibility = Windows.Visibility.Hidden CurveBrd.Visibility = Windows.Visibility.Hidden If MachParamGrd.Children.Contains(StartPosTxBl) Then MachParamGrd.Children.Remove(StartPosTxBl) MachParamGrd.Children.Remove(StartPosTxBx) TypeGrd.Children.Add(StartPosTxBl) TypeGrd.Children.Add(StartPosTxBx) StartPosTxBl.SetValue(Grid.ColumnProperty, 0) StartPosTxBl.SetValue(Grid.RowProperty, 0) StartPosTxBx.SetValue(Grid.ColumnProperty, 1) StartPosTxBx.SetValue(Grid.RowProperty, 0) StartPosTxBl.SetValue(Grid.RowSpanProperty, 1) StartPosTxBx.SetValue(Grid.RowSpanProperty, 1) 'StartPosTxBx.Style = Application.Current.FindResource("OmagCut_LeftCalculatorTextBoxInBorder") End If StartPosTxBl.Visibility = Windows.Visibility.Visible StartPosTxBx.Visibility = Windows.Visibility.Visible LowLenGpBx.Visibility = Windows.Visibility.Hidden ThrouAddLenTxBl.Visibility = Windows.Visibility.Hidden ThrouAddLenTxBx.Visibility = Windows.Visibility.Hidden If DrillStepGrd.Children.Contains(StepTxBx) Then DrillStepGrd.Children.Remove(StepTxBx) SawStepGrd.Children.Add(StepTxBx) StepTxBx.SetValue(Grid.ColumnProperty, 1) StepTxBx.SetValue(Grid.RowProperty, 0) 'StepTxBx.Style = Application.Current.FindResource("OmagCut_CalculatorTextBoxInBorder") ElseIf SawRouStepGrd.Children.Contains(StepTxBx) Then SawRouStepGrd.Children.Remove(StepTxBx) SawStepGrd.Children.Add(StepTxBx) StepTxBx.SetValue(Grid.ColumnProperty, 1) StepTxBx.SetValue(Grid.RowProperty, 0) 'StepTxBx.Style = Application.Current.FindResource("OmagCut_CalculatorTextBoxInBorder") End If StepTxBx.Visibility = Windows.Visibility.Visible SawStepGpBx.Visibility = Windows.Visibility.Visible SawStepGpBx.SetValue(Grid.RowProperty, 21) SawStepGpBx.SetValue(Grid.RowSpanProperty, 6) BackwardSawStepTxBl.Visibility = Windows.Visibility.Hidden BackwardSawStepTxBx.Visibility = Windows.Visibility.Hidden ForwardStepSideAngTxBl.Visibility = Windows.Visibility.Hidden ForwardStepSideAngTxBx.Visibility = Windows.Visibility.Hidden BackwardStepSideAngTxBl.Visibility = Windows.Visibility.Hidden BackwardStepSideAngTxBx.Visibility = Windows.Visibility.Hidden ForwardSawStepTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 15) If SawStepGrd.Children.Contains(ArcIntTxBl) Then SawStepGrd.Children.Remove(ArcIntTxBl) SawStepGrd.Children.Remove(ArcIntTxBx) SawStepGrd.Children.Remove(ArcExtTxBl) SawStepGrd.Children.Remove(ArcExtTxBx) SawStepGrd.RowDefinitions.RemoveAt(2) End If DrillStepBrd.Visibility = Windows.Visibility.Hidden SawRouStepGpBx.Visibility = Windows.Visibility.Hidden ReturnPosTxBl.Visibility = Windows.Visibility.Hidden ReturnPosTxBx.Visibility = Windows.Visibility.Hidden OffsetGpBx.Visibility = Windows.Visibility.Hidden ' Definizione di una riga della tabella con la giusta altezza Dim RowNum As Integer = FeedGrd.RowDefinitions.Count If RowNum > 4 Then For Index = RowNum - 1 To 4 Step -1 FeedGrd.RowDefinitions.RemoveAt(Index) Next End If FeedGpBx.SetValue(Grid.RowSpanProperty, 12) VertFeedTxBl.Visibility = Windows.Visibility.Hidden VertFeedTxBx.Visibility = Windows.Visibility.Hidden BackFeedTxBl.Visibility = Windows.Visibility.Hidden BackFeedTxBx.Visibility = Windows.Visibility.Hidden Case MCH_MY.DRILLING 'Parametri Foratura SideAngleTxBl.Visibility = Windows.Visibility.Hidden SideAngleTxBx.Visibility = Windows.Visibility.Hidden InvertTxBl.Visibility = Windows.Visibility.Hidden InvertChBx.Visibility = Windows.Visibility.Hidden AcrossTxBl.Visibility = Windows.Visibility.Hidden AcrossChBx.Visibility = Windows.Visibility.Hidden StepTypeTxBl.Visibility = Windows.Visibility.Hidden StepTypeCmBx.Visibility = Windows.Visibility.Hidden SideBrd.Visibility = Windows.Visibility.Hidden TypeBrd.Visibility = Windows.Visibility.Hidden CurveBrd.Visibility = Windows.Visibility.Hidden If TypeGrd.Children.Contains(StartPosTxBl) Then TypeGrd.Children.Remove(StartPosTxBl) TypeGrd.Children.Remove(StartPosTxBx) MachParamGrd.Children.Add(StartPosTxBl) MachParamGrd.Children.Add(StartPosTxBx) StartPosTxBl.SetValue(Grid.ColumnProperty, 0) StartPosTxBl.SetValue(Grid.RowProperty, 6) StartPosTxBx.SetValue(Grid.ColumnProperty, 1) StartPosTxBx.SetValue(Grid.RowProperty, 6) StartPosTxBl.SetValue(Grid.RowSpanProperty, 3) StartPosTxBx.SetValue(Grid.RowSpanProperty, 3) StartPosTxBx.Style = Application.Current.FindResource("OmagCut_LeftCalculatorTextBoxNoBorder") End If StartPosTxBl.Visibility = Windows.Visibility.Visible StartPosTxBx.Visibility = Windows.Visibility.Visible LowLenGpBx.Visibility = Windows.Visibility.Visible ThrouAddLenTxBl.Visibility = Windows.Visibility.Visible ThrouAddLenTxBx.Visibility = Windows.Visibility.Visible If SawStepGrd.Children.Contains(StepTxBx) Then SawStepGrd.Children.Remove(StepTxBx) DrillStepGrd.Children.Add(StepTxBx) StepTxBx.SetValue(Grid.ColumnProperty, 1) StepTxBx.SetValue(Grid.RowProperty, 2) StepTxBx.Style = Application.Current.FindResource("OmagCut_MachLeftCalculatorTextBoxInBorder") ElseIf SawRouStepGrd.Children.Contains(StepTxBx) Then SawRouStepGrd.Children.Remove(StepTxBx) DrillStepGrd.Children.Add(StepTxBx) StepTxBx.SetValue(Grid.ColumnProperty, 1) StepTxBx.SetValue(Grid.RowProperty, 2) StepTxBx.Style = Application.Current.FindResource("OmagCut_MachLeftCalculatorTextBoxInBorder") End If StepTxBx.Visibility = Windows.Visibility.Visible SawStepGpBx.Visibility = Windows.Visibility.Hidden DrillStepBrd.Visibility = Windows.Visibility.Visible SawRouStepGpBx.Visibility = Windows.Visibility.Hidden ReturnPosTxBl.Visibility = Windows.Visibility.Visible ReturnPosTxBx.Visibility = Windows.Visibility.Visible OffsetGpBx.Visibility = Windows.Visibility.Hidden ' Definizione di una riga della tabella con la giusta altezza Dim RowNum As Integer = FeedGrd.RowDefinitions.Count If RowNum > 4 Then For Index = RowNum - 1 To 4 Step -1 FeedGrd.RowDefinitions.RemoveAt(Index) Next End If FeedGpBx.SetValue(Grid.RowSpanProperty, 12) VertFeedTxBl.Visibility = Windows.Visibility.Hidden VertFeedTxBx.Visibility = Windows.Visibility.Hidden BackFeedTxBl.Visibility = Windows.Visibility.Hidden BackFeedTxBx.Visibility = Windows.Visibility.Hidden Case MCH_MY.SAWROUGHING 'Parametri Sgrossatura con lama SideAngleTxBl.Visibility = Windows.Visibility.Hidden SideAngleTxBx.Visibility = Windows.Visibility.Hidden InvertTxBl.Visibility = Windows.Visibility.Hidden InvertChBx.Visibility = Windows.Visibility.Hidden AcrossTxBl.Visibility = Windows.Visibility.Hidden AcrossChBx.Visibility = Windows.Visibility.Hidden StepTypeTxBl.Visibility = Windows.Visibility.Visible StepTypeCmBx.Visibility = Windows.Visibility.Visible StepTypeCmBx.ItemsSource = RouFinStepType SideBrd.Visibility = Windows.Visibility.Visible WorkSideTxBl.Visibility = Windows.Visibility.Hidden WorkSideCmBx.Visibility = Windows.Visibility.Hidden HeadSideTxBl.Visibility = Windows.Visibility.Visible HeadSideCmBx.Visibility = Windows.Visibility.Visible TypeBrd.Visibility = Windows.Visibility.Visible LeadInTypeTxBl.Visibility = Windows.Visibility.Hidden LeadInTypeCmBx.Visibility = Windows.Visibility.Hidden ExtLinkTypeTxBl.Visibility = Windows.Visibility.Hidden ExtLinkTypeCmBx.Visibility = Windows.Visibility.Hidden LeadOutTypeTxBl.Visibility = Windows.Visibility.Hidden LeadOutTypeCmBx.Visibility = Windows.Visibility.Hidden LeadLinkTypeTxBl.Visibility = Windows.Visibility.Visible LeadLinkTypeCmBx.Visibility = Windows.Visibility.Visible LeadLinkTypeCmBx.ItemsSource = LeadLinkType CurveBrd.Visibility = Windows.Visibility.Hidden If MachParamGrd.Children.Contains(StartPosTxBl) Then MachParamGrd.Children.Remove(StartPosTxBl) MachParamGrd.Children.Remove(StartPosTxBx) TypeGrd.Children.Add(StartPosTxBl) TypeGrd.Children.Add(StartPosTxBx) StartPosTxBl.SetValue(Grid.ColumnProperty, 0) StartPosTxBl.SetValue(Grid.RowProperty, 0) StartPosTxBx.SetValue(Grid.ColumnProperty, 1) StartPosTxBx.SetValue(Grid.RowProperty, 0) StartPosTxBl.SetValue(Grid.RowSpanProperty, 1) StartPosTxBx.SetValue(Grid.RowSpanProperty, 1) StartPosTxBx.Style = Application.Current.FindResource("OmagCut_MachLeftCalculatorTextBoxInBorder") End If StartPosTxBl.Visibility = Windows.Visibility.Visible StartPosTxBx.Visibility = Windows.Visibility.Visible LowLenGpBx.Visibility = Windows.Visibility.Hidden ThrouAddLenTxBl.Visibility = Windows.Visibility.Hidden ThrouAddLenTxBx.Visibility = Windows.Visibility.Hidden If DrillStepGrd.Children.Contains(StepTxBx) Then DrillStepGrd.Children.Remove(StepTxBx) SawRouStepGrd.Children.Add(StepTxBx) StepTxBx.SetValue(Grid.ColumnProperty, 1) StepTxBx.SetValue(Grid.RowProperty, 0) StepTxBx.Style = Application.Current.FindResource("OmagCut_CalculatorTextBoxInGroupBox") ElseIf SawStepGrd.Children.Contains(StepTxBx) Then SawStepGrd.Children.Remove(StepTxBx) SawRouStepGrd.Children.Add(StepTxBx) StepTxBx.SetValue(Grid.ColumnProperty, 1) StepTxBx.SetValue(Grid.RowProperty, 0) StepTxBx.Style = Application.Current.FindResource("OmagCut_CalculatorTextBoxInGroupBox") End If StepTxBx.Visibility = Windows.Visibility.Visible DrillStepBrd.Visibility = Windows.Visibility.Hidden SawStepGpBx.Visibility = Windows.Visibility.Hidden SawRouStepGpBx.Visibility = Windows.Visibility.Visible SawRouStepTxBl.Visibility = Windows.Visibility.Visible ReturnPosTxBl.Visibility = Windows.Visibility.Hidden ReturnPosTxBx.Visibility = Windows.Visibility.Hidden OffsetGpBx.Visibility = Windows.Visibility.Visible RadOffsetTxBl.Visibility = Windows.Visibility.Visible RadOffsetTxBx.Visibility = Windows.Visibility.Visible LonOffsetTxBl.Visibility = Windows.Visibility.Visible LonOffsetTxBx.Visibility = Windows.Visibility.Visible ' Definizione di una riga della tabella con la giusta altezza Dim RowNum As Integer = FeedGrd.RowDefinitions.Count If RowNum > 4 Then For Index = RowNum - 1 To 4 Step -1 FeedGrd.RowDefinitions.RemoveAt(Index) Next End If FeedGpBx.SetValue(Grid.RowSpanProperty, 12) VertFeedTxBl.Visibility = Windows.Visibility.Hidden VertFeedTxBx.Visibility = Windows.Visibility.Hidden BackFeedTxBl.Visibility = Windows.Visibility.Hidden BackFeedTxBx.Visibility = Windows.Visibility.Hidden 'Spostamento gruppo sovramateriale OffsetGpBx.SetValue(Grid.RowProperty, 18) ' Definizione di una riga della tabella Offset RowNum = OffsetGrd.RowDefinitions.Count If RowNum < 2 Then Dim Row As New RowDefinition Row.Height = New GridLength(1, GridUnitType.Star) OffsetGrd.RowDefinitions.Add(Row) OffsetGpBx.SetValue(Grid.RowSpanProperty, 6) LonOffsetTxBl.SetValue(Grid.RowProperty, 2) LonOffsetTxBx.SetValue(Grid.ColumnProperty, 1) LonOffsetTxBx.SetValue(Grid.RowProperty, 2) End If Case MCH_MY.SAWFINISHING 'Parametri Finitura con lama SideAngleTxBl.Visibility = Windows.Visibility.Hidden SideAngleTxBx.Visibility = Windows.Visibility.Hidden InvertTxBl.Visibility = Windows.Visibility.Visible InvertChBx.Visibility = Windows.Visibility.Visible AcrossTxBl.Visibility = Windows.Visibility.Visible AcrossChBx.Visibility = Windows.Visibility.Visible StepTypeTxBl.Visibility = Windows.Visibility.Visible StepTypeCmBx.Visibility = Windows.Visibility.Visible StepTypeCmBx.ItemsSource = RouFinStepType SideBrd.Visibility = Windows.Visibility.Visible WorkSideTxBl.Visibility = Windows.Visibility.Hidden WorkSideCmBx.Visibility = Windows.Visibility.Hidden HeadSideTxBl.Visibility = Windows.Visibility.Visible HeadSideCmBx.Visibility = Windows.Visibility.Visible TypeBrd.Visibility = Windows.Visibility.Visible LeadInTypeTxBl.Visibility = Windows.Visibility.Hidden LeadInTypeCmBx.Visibility = Windows.Visibility.Hidden ExtLinkTypeTxBl.Visibility = Windows.Visibility.Hidden ExtLinkTypeCmBx.Visibility = Windows.Visibility.Hidden LeadOutTypeTxBl.Visibility = Windows.Visibility.Hidden LeadOutTypeCmBx.Visibility = Windows.Visibility.Hidden LeadLinkTypeTxBl.Visibility = Windows.Visibility.Visible LeadLinkTypeCmBx.Visibility = Windows.Visibility.Visible LeadLinkTypeCmBx.ItemsSource = LeLiFinType CurveBrd.Visibility = Windows.Visibility.Hidden If MachParamGrd.Children.Contains(StartPosTxBl) Then MachParamGrd.Children.Remove(StartPosTxBl) MachParamGrd.Children.Remove(StartPosTxBx) TypeGrd.Children.Add(StartPosTxBl) TypeGrd.Children.Add(StartPosTxBx) StartPosTxBl.SetValue(Grid.ColumnProperty, 0) StartPosTxBl.SetValue(Grid.RowProperty, 0) StartPosTxBx.SetValue(Grid.ColumnProperty, 1) StartPosTxBx.SetValue(Grid.RowProperty, 0) StartPosTxBl.SetValue(Grid.RowSpanProperty, 1) StartPosTxBx.SetValue(Grid.RowSpanProperty, 1) StartPosTxBx.Style = Application.Current.FindResource("OmagCut_MachLeftCalculatorTextBoxInBorder") End If StartPosTxBl.Visibility = Windows.Visibility.Visible StartPosTxBx.Visibility = Windows.Visibility.Visible LowLenGpBx.Visibility = Windows.Visibility.Hidden ThrouAddLenTxBl.Visibility = Windows.Visibility.Hidden ThrouAddLenTxBx.Visibility = Windows.Visibility.Hidden DrillStepBrd.Visibility = Windows.Visibility.Hidden SawStepGpBx.Visibility = Windows.Visibility.Hidden SawRouStepGpBx.Visibility = Windows.Visibility.Visible SawRouStepTxBl.Visibility = Windows.Visibility.Visible If DrillStepGrd.Children.Contains(StepTxBx) Then DrillStepGrd.Children.Remove(StepTxBx) SawRouStepGrd.Children.Add(StepTxBx) StepTxBx.SetValue(Grid.ColumnProperty, 1) StepTxBx.SetValue(Grid.RowProperty, 0) StepTxBx.Style = Application.Current.FindResource("OmagCut_CalculatorTextBoxInGroupBox") ElseIf SawStepGrd.Children.Contains(StepTxBx) Then SawStepGrd.Children.Remove(StepTxBx) SawRouStepGrd.Children.Add(StepTxBx) StepTxBx.SetValue(Grid.ColumnProperty, 1) StepTxBx.SetValue(Grid.RowProperty, 0) StepTxBx.Style = Application.Current.FindResource("OmagCut_CalculatorTextBoxInGroupBox") End If StepTxBx.Visibility = Windows.Visibility.Visible ReturnPosTxBl.Visibility = Windows.Visibility.Hidden ReturnPosTxBx.Visibility = Windows.Visibility.Hidden OffsetGpBx.Visibility = Windows.Visibility.Visible RadOffsetTxBl.Visibility = Windows.Visibility.Visible RadOffsetTxBx.Visibility = Windows.Visibility.Visible LonOffsetTxBl.Visibility = Windows.Visibility.Hidden LonOffsetTxBx.Visibility = Windows.Visibility.Hidden ' Definizione di una riga della tabella Feed Dim RowNum As Integer = FeedGrd.RowDefinitions.Count If RowNum < 5 Then Dim Row As New RowDefinition Row.Height = New GridLength(1, GridUnitType.Star) FeedGrd.RowDefinitions.Add(Row) FeedGpBx.SetValue(Grid.RowSpanProperty, 14) VertFeedTxBl.SetValue(Grid.RowProperty, 4) VertFeedTxBx.SetValue(Grid.ColumnProperty, 1) VertFeedTxBx.SetValue(Grid.RowProperty, 4) End If VertFeedTxBl.Visibility = Windows.Visibility.Visible VertFeedTxBx.Visibility = Windows.Visibility.Visible BackFeedTxBl.Visibility = Windows.Visibility.Hidden BackFeedTxBx.Visibility = Windows.Visibility.Hidden 'Spostamento gruppo sovramateriale OffsetGpBx.SetValue(Grid.RowProperty, 20) ' Eliminazione di una riga della tabella Offset RowNum = OffsetGrd.RowDefinitions.Count If RowNum > 1 Then For Index = RowNum - 1 To 1 Step -1 OffsetGrd.RowDefinitions.RemoveAt(Index) OffsetGpBx.SetValue(Grid.RowSpanProperty, 4) Next End If Case MCH_MY.POCKETING 'Parametri Svuotatura SideAngleTxBl.Visibility = Windows.Visibility.Hidden SideAngleTxBx.Visibility = Windows.Visibility.Hidden InvertTxBl.Visibility = Windows.Visibility.Hidden InvertChBx.Visibility = Windows.Visibility.Hidden AcrossTxBl.Visibility = Windows.Visibility.Hidden AcrossChBx.Visibility = Windows.Visibility.Hidden StepTypeTxBl.Visibility = Windows.Visibility.Hidden StepTypeCmBx.Visibility = Windows.Visibility.Hidden SideBrd.Visibility = Windows.Visibility.Visible WorkSideTxBl.Visibility = Windows.Visibility.Visible WorkSideCmBx.Visibility = Windows.Visibility.Visible HeadSideTxBl.Visibility = Windows.Visibility.Hidden HeadSideCmBx.Visibility = Windows.Visibility.Hidden TypeBrd.Visibility = Windows.Visibility.Visible LeadInTypeTxBl.Visibility = Windows.Visibility.Visible LeadInTypeCmBx.Visibility = Windows.Visibility.Visible ExtLinkTypeTxBl.Visibility = Windows.Visibility.Hidden ExtLinkTypeCmBx.Visibility = Windows.Visibility.Hidden LeadOutTypeTxBl.Visibility = Windows.Visibility.Visible LeadOutTypeCmBx.Visibility = Windows.Visibility.Visible LeadLinkTypeTxBl.Visibility = Windows.Visibility.Hidden LeadLinkTypeCmBx.Visibility = Windows.Visibility.Hidden CurveBrd.Visibility = Windows.Visibility.Hidden If MachParamGrd.Children.Contains(StartPosTxBl) Then MachParamGrd.Children.Remove(StartPosTxBl) MachParamGrd.Children.Remove(StartPosTxBx) TypeGrd.Children.Add(StartPosTxBl) TypeGrd.Children.Add(StartPosTxBx) StartPosTxBl.SetValue(Grid.ColumnProperty, 0) StartPosTxBl.SetValue(Grid.RowProperty, 0) StartPosTxBx.SetValue(Grid.ColumnProperty, 1) StartPosTxBx.SetValue(Grid.RowProperty, 0) StartPosTxBl.SetValue(Grid.RowSpanProperty, 1) StartPosTxBx.SetValue(Grid.RowSpanProperty, 1) 'StartPosTxBx.Style = Application.Current.FindResource("OmagCut_LeftCalculatorTextBoxInBorder") End If StartPosTxBl.Visibility = Windows.Visibility.Visible StartPosTxBx.Visibility = Windows.Visibility.Visible LowLenGpBx.Visibility = Windows.Visibility.Hidden ThrouAddLenTxBl.Visibility = Windows.Visibility.Hidden ThrouAddLenTxBx.Visibility = Windows.Visibility.Hidden If DrillStepGrd.Children.Contains(StepTxBx) Then DrillStepGrd.Children.Remove(StepTxBx) SawStepGrd.Children.Add(StepTxBx) StepTxBx.SetValue(Grid.ColumnProperty, 1) StepTxBx.SetValue(Grid.RowProperty, 0) 'StepTxBx.Style = Application.Current.FindResource("OmagCut_CalculatorTextBoxInBorder") ElseIf SawRouStepGrd.Children.Contains(StepTxBx) Then SawRouStepGrd.Children.Remove(StepTxBx) SawStepGrd.Children.Add(StepTxBx) StepTxBx.SetValue(Grid.ColumnProperty, 1) StepTxBx.SetValue(Grid.RowProperty, 0) 'StepTxBx.Style = Application.Current.FindResource("OmagCut_CalculatorTextBoxInBorder") End If StepTxBx.Visibility = Windows.Visibility.Visible SawStepGpBx.Visibility = Windows.Visibility.Visible SawStepGpBx.SetValue(Grid.RowProperty, 21) SawStepGpBx.SetValue(Grid.RowSpanProperty, 6) BackwardSawStepTxBl.Visibility = Windows.Visibility.Hidden BackwardSawStepTxBx.Visibility = Windows.Visibility.Hidden ForwardStepSideAngTxBl.Visibility = Windows.Visibility.Hidden ForwardStepSideAngTxBx.Visibility = Windows.Visibility.Hidden BackwardStepSideAngTxBl.Visibility = Windows.Visibility.Hidden BackwardStepSideAngTxBx.Visibility = Windows.Visibility.Hidden ForwardSawStepTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 15) If SawStepGrd.Children.Contains(ArcIntTxBl) Then SawStepGrd.Children.Remove(ArcIntTxBl) SawStepGrd.Children.Remove(ArcIntTxBx) SawStepGrd.Children.Remove(ArcExtTxBl) SawStepGrd.Children.Remove(ArcExtTxBx) SawStepGrd.RowDefinitions.RemoveAt(2) End If DrillStepBrd.Visibility = Windows.Visibility.Hidden SawRouStepGpBx.Visibility = Windows.Visibility.Hidden ReturnPosTxBl.Visibility = Windows.Visibility.Hidden ReturnPosTxBx.Visibility = Windows.Visibility.Hidden OffsetGpBx.Visibility = Windows.Visibility.Hidden ' Definizione di una riga della tabella con la giusta altezza Dim RowNum As Integer = FeedGrd.RowDefinitions.Count If RowNum > 4 Then For Index = RowNum - 1 To 4 Step -1 FeedGrd.RowDefinitions.RemoveAt(Index) Next End If FeedGpBx.SetValue(Grid.RowSpanProperty, 12) VertFeedTxBl.Visibility = Windows.Visibility.Hidden VertFeedTxBx.Visibility = Windows.Visibility.Hidden BackFeedTxBl.Visibility = Windows.Visibility.Hidden BackFeedTxBx.Visibility = Windows.Visibility.Hidden Case MCH_MY.WATERJETTING 'Parametri WaterJetting DepthTxBl.Visibility = Windows.Visibility.Hidden DepthTxBx.Visibility = Windows.Visibility.Hidden SideAngleTxBl.Visibility = Windows.Visibility.Hidden SideAngleTxBx.Visibility = Windows.Visibility.Hidden InvertTxBl.Visibility = Windows.Visibility.Visible InvertChBx.Visibility = Windows.Visibility.Visible AcrossTxBl.Visibility = Windows.Visibility.Hidden AcrossChBx.Visibility = Windows.Visibility.Hidden StepTypeTxBl.Visibility = Windows.Visibility.Hidden StepTypeCmBx.Visibility = Windows.Visibility.Hidden SideBrd.Visibility = Windows.Visibility.Visible WorkSideTxBl.Visibility = Windows.Visibility.Visible WorkSideCmBx.Visibility = Windows.Visibility.Visible HeadSideTxBl.Visibility = Windows.Visibility.Hidden HeadSideCmBx.Visibility = Windows.Visibility.Hidden TypeBrd.Visibility = Windows.Visibility.Visible LeadInTypeTxBl.Visibility = Windows.Visibility.Visible LeadInTypeCmBx.Visibility = Windows.Visibility.Visible ExtLinkTypeTxBl.Visibility = Windows.Visibility.Hidden ExtLinkTypeCmBx.Visibility = Windows.Visibility.Hidden LeadOutTypeTxBl.Visibility = Windows.Visibility.Visible LeadOutTypeCmBx.Visibility = Windows.Visibility.Visible LeadLinkTypeTxBl.Visibility = Windows.Visibility.Hidden LeadLinkTypeCmBx.Visibility = Windows.Visibility.Hidden CurveBrd.Visibility = Windows.Visibility.Hidden If MachParamGrd.Children.Contains(StartPosTxBl) Then MachParamGrd.Children.Remove(StartPosTxBl) MachParamGrd.Children.Remove(StartPosTxBx) TypeGrd.Children.Add(StartPosTxBl) TypeGrd.Children.Add(StartPosTxBx) StartPosTxBl.SetValue(Grid.ColumnProperty, 0) StartPosTxBl.SetValue(Grid.RowProperty, 0) StartPosTxBx.SetValue(Grid.ColumnProperty, 1) StartPosTxBx.SetValue(Grid.RowProperty, 0) StartPosTxBl.SetValue(Grid.RowSpanProperty, 1) StartPosTxBx.SetValue(Grid.RowSpanProperty, 1) 'StartPosTxBx.Style = Application.Current.FindResource("OmagCut_LeftCalculatorTextBoxInBorder") End If StartPosTxBl.Visibility = Windows.Visibility.Visible StartPosTxBx.Visibility = Windows.Visibility.Visible LowLenGpBx.Visibility = Windows.Visibility.Hidden ThrouAddLenTxBl.Visibility = Windows.Visibility.Hidden ThrouAddLenTxBx.Visibility = Windows.Visibility.Hidden If DrillStepGrd.Children.Contains(StepTxBx) Then DrillStepGrd.Children.Remove(StepTxBx) SawStepGrd.Children.Add(StepTxBx) StepTxBx.SetValue(Grid.ColumnProperty, 1) StepTxBx.SetValue(Grid.RowProperty, 0) 'StepTxBx.Style = Application.Current.FindResource("OmagCut_CalculatorTextBoxInBorder") ElseIf SawRouStepGrd.Children.Contains(StepTxBx) Then SawRouStepGrd.Children.Remove(StepTxBx) SawStepGrd.Children.Add(StepTxBx) StepTxBx.SetValue(Grid.ColumnProperty, 1) StepTxBx.SetValue(Grid.RowProperty, 0) 'StepTxBx.Style = Application.Current.FindResource("OmagCut_CalculatorTextBoxInBorder") End If StepTxBx.Visibility = Windows.Visibility.Hidden SawStepGpBx.Visibility = Windows.Visibility.Hidden SawStepGpBx.SetValue(Grid.RowProperty, 21) SawStepGpBx.SetValue(Grid.RowSpanProperty, 6) BackwardSawStepTxBl.Visibility = Windows.Visibility.Hidden BackwardSawStepTxBx.Visibility = Windows.Visibility.Hidden ForwardStepSideAngTxBl.Visibility = Windows.Visibility.Hidden ForwardStepSideAngTxBx.Visibility = Windows.Visibility.Hidden BackwardStepSideAngTxBl.Visibility = Windows.Visibility.Hidden BackwardStepSideAngTxBx.Visibility = Windows.Visibility.Hidden ForwardSawStepTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 15) If SawStepGrd.Children.Contains(ArcIntTxBl) Then SawStepGrd.Children.Remove(ArcIntTxBl) SawStepGrd.Children.Remove(ArcIntTxBx) SawStepGrd.Children.Remove(ArcExtTxBl) SawStepGrd.Children.Remove(ArcExtTxBx) SawStepGrd.RowDefinitions.RemoveAt(2) End If DrillStepBrd.Visibility = Windows.Visibility.Hidden SawRouStepGpBx.Visibility = Windows.Visibility.Hidden ReturnPosTxBl.Visibility = Windows.Visibility.Hidden ReturnPosTxBx.Visibility = Windows.Visibility.Hidden OffsetGpBx.Visibility = Windows.Visibility.Visible LonOffsetTxBl.Visibility = Windows.Visibility.Hidden LonOffsetTxBx.Visibility = Windows.Visibility.Hidden ' Definizione di una riga della tabella con la giusta altezza Dim RowNum As Integer = FeedGrd.RowDefinitions.Count If RowNum > 4 Then For Index = RowNum - 1 To 4 Step -1 FeedGrd.RowDefinitions.RemoveAt(Index) Next End If SpeedGrd.Visibility = Windows.Visibility.Hidden FeedGpBx.SetValue(Grid.RowSpanProperty, 12) VertFeedTxBl.Visibility = Windows.Visibility.Hidden VertFeedTxBx.Visibility = Windows.Visibility.Hidden BackFeedTxBl.Visibility = Windows.Visibility.Hidden BackFeedTxBx.Visibility = Windows.Visibility.Hidden End Select 'Parametri utensile ToolTxBl.Visibility = Windows.Visibility.Visible ToolCmBx.Visibility = Windows.Visibility.Visible End Sub Private Sub HideMachiningParams() 'Dim nMachiningType As Integer 'EgtMdbGetCurrMachiningParam(MCH_MP.TYPE, nMachiningType) NameTxBl.Visibility = Windows.Visibility.Hidden NameTxBx.Visibility = Windows.Visibility.Hidden DepthTxBl.Visibility = Windows.Visibility.Hidden DepthTxBx.Visibility = Windows.Visibility.Hidden MaterialsBrd.Visibility = Windows.Visibility.Hidden SpeedGrd.Visibility = Windows.Visibility.Hidden FeedGpBx.Visibility = Windows.Visibility.Hidden 'Parametri Taglio SideAngleTxBl.Visibility = Windows.Visibility.Hidden SideAngleTxBx.Visibility = Windows.Visibility.Hidden InvertTxBl.Visibility = Windows.Visibility.Hidden InvertChBx.Visibility = Windows.Visibility.Hidden StepTypeTxBl.Visibility = Windows.Visibility.Hidden StepTypeCmBx.Visibility = Windows.Visibility.Hidden SideBrd.Visibility = Windows.Visibility.Hidden TypeBrd.Visibility = Windows.Visibility.Hidden CurveBrd.Visibility = Windows.Visibility.Hidden SawStepGpBx.Visibility = Windows.Visibility.Hidden 'Parametri Foratura StartPosTxBl.Visibility = Windows.Visibility.Hidden StartPosTxBx.Visibility = Windows.Visibility.Hidden LowLenGpBx.Visibility = Windows.Visibility.Hidden ThrouAddLenTxBl.Visibility = Windows.Visibility.Hidden ThrouAddLenTxBx.Visibility = Windows.Visibility.Hidden ReturnPosTxBl.Visibility = Windows.Visibility.Hidden ReturnPosTxBx.Visibility = Windows.Visibility.Hidden DrillStepBrd.Visibility = Windows.Visibility.Hidden 'Parametri Sgrossatura con lama LeadLinkTypeTxBl.Visibility = Windows.Visibility.Hidden LeadLinkTypeCmBx.Visibility = Windows.Visibility.Hidden SawRouStepGpBx.Visibility = Windows.Visibility.Hidden ' Parametri finitura con lama AcrossTxBl.Visibility = Windows.Visibility.Hidden AcrossChBx.Visibility = Windows.Visibility.Hidden 'Parametri utensile ToolTxBl.Visibility = Windows.Visibility.Hidden ToolCmBx.Visibility = Windows.Visibility.Hidden OffsetGpBx.Visibility = Windows.Visibility.Hidden End Sub Private Sub MachiningTreeView_PreviewMouseUp(sender As Object, e As MouseButtonEventArgs) Handles MachiningTreeView.PreviewMouseUp ' Se necessario, chiedo se salvare l'utensile corrente If Not SaveCurrMachining() Then Dim PreviousMachining As CustomItem = m_OldItem PreviousMachining.IsSelected = True Exit Sub End If ' Aggiorno If TypeOf MachiningTreeView.SelectedItem Is CathegoryItem Then Dim SelectedCathegory As CathegoryItem = MachiningTreeView.SelectedItem SelectedCathegory.IsExpanded = Not SelectedCathegory.IsExpanded HideMachiningParams() ElseIf TypeOf MachiningTreeView.SelectedItem Is CustomItem Then Dim SelectedMachining As CustomItem = MachiningTreeView.SelectedItem EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx()) EgtMdbSetCurrMachining(SelectedMachining.Name) ViewMachiningParams() GetMachiningParams() End If m_OldItem = MachiningTreeView.SelectedItem End Sub Friend Function SaveCurrMachining() As Boolean SetMachiningParams() If EgtMdbIsCurrMachiningModified() Then Dim SaveCurrMachiningWnd As New EgtMsgBox(m_MainWindow, "", EgtMsg(MSG_EGTMSGBOX + 3), EgtMsgBox.Buttons.YES_NO_CANCEL, EgtMsgBox.Icons.NULL) Select Case SaveCurrMachiningWnd.m_nPressedBtn Case 0 ' Annulla Return False Case 1 ' Si EgtMdbSaveCurrMachining() Dim CurrMachining As CustomItem = TryCast(m_OldItem, CustomItem) If CurrMachining IsNot Nothing Then CurrMachining.Name = NameTxBx.Text End If Case 2 ' No EgtMdbSetCurrMachining(m_sMachiningName) GetMachiningParams() End Select End If Return True End Function Private Sub NameTxBx_EgtClosed(sender As Object, e As EventArgs) Handles NameTxBx.EgtClosed ' Elimino spazi iniziali e finali NameTxBx.Text = NameTxBx.Text.Trim() ' Se cambiato nome If NameTxBx.Text <> m_sMachiningName Then ' Imposto contesto macchina EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx()) ' Verifico se nome già esistente Dim TempName As String = NameTxBx.Text EgtMdbGetMachiningNewName(TempName) ' se già esistente, avviso e rifiuto If TempName <> NameTxBx.Text Then ' Nome già utilizzato Dim InfoBox As New EgtMsgBox(m_MainWindow, "", EgtMsg(91104), EgtMsgBox.Buttons.OK, EgtMsgBox.Icons.ESCLAMATION) ' Ripristino il precedente NameTxBx.Text = m_sMachiningName End If End If End Sub Private Sub DepthTxBx_EgtClosed(sender As Object, e As EventArgs) Handles DepthTxBx.EgtClosed ' Non devo fare alcunchè End Sub Private Sub MaterialsList_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles MaterialsList.SelectionChanged Dim Selectedmaterial As MachiningMaterial = MaterialsList.SelectedItem If Not IsNothing(Selectedmaterial) Then If Selectedmaterial.bIsActive Then MinThicknessTxBx.Text = LenToString(Selectedmaterial.dMinThickness, 3) MaxThicknessTxBx.Text = LenToString(Selectedmaterial.dMaxThickness, 3) Else MinThicknessTxBx.Text = "0" MaxThicknessTxBx.Text = "0" End If End If End Sub Private Sub MinThicknessTxBx_EgtClosed(sender As Object, e As EventArgs) Handles MinThicknessTxBx.EgtClosed Dim SelectedMaterial As MachiningMaterial = MaterialsList.SelectedItem If MinThicknessTxBx.Text = "0" And MaxThicknessTxBx.Text = "0" Then SelectedMaterial.bIsActive = False Else StringToLen(MinThicknessTxBx.Text, SelectedMaterial.dMinThickness) SelectedMaterial.bIsActive = True End If End Sub Private Sub MaxThicknessTxBx_EgtClosed(sender As Object, e As EventArgs) Handles MaxThicknessTxBx.EgtClosed Dim SelectedMaterial As MachiningMaterial = MaterialsList.SelectedItem If MinThicknessTxBx.Text = "0" And MaxThicknessTxBx.Text = "0" Then SelectedMaterial.bIsActive = False Else StringToLen(MaxThicknessTxBx.Text, SelectedMaterial.dMaxThickness) SelectedMaterial.bIsActive = True End If End Sub Private Sub ToolCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles ToolCmBx.SelectionChanged EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx()) ' Utensile selezionato If IsNothing(ToolCmBx.SelectedItem) Then Return Dim SelTool As String = ToolCmBx.SelectedItem.ToString() ' Utensile della lavorazione Dim CurrTool As String = String.Empty EgtMdbGetCurrMachiningParam(MCH_MP.TOOL, CurrTool) ' Se uguali non devo fare alcunchè If String.Compare(SelTool, CurrTool, True) = 0 Then Return ' Imposto il nuovo utensile EgtMdbSetCurrMachiningParam(MCH_MP.TOOL, SelTool) ' rendo default speed, feed e sovramateriali EgtMdbSetCurrMachiningParam(MCH_MP.SPEED, 0.0) EgtMdbSetCurrMachiningParam(MCH_MP.FEED, 0.0) EgtMdbSetCurrMachiningParam(MCH_MP.TIPFEED, 0.0) EgtMdbSetCurrMachiningParam(MCH_MP.STARTFEED, 0.0) EgtMdbSetCurrMachiningParam(MCH_MP.ENDFEED, 0.0) EgtMdbSetCurrMachiningParam(MCH_MP.OFFSR, 9999999.0) EgtMdbSetCurrMachiningParam(MCH_MP.OFFSL, 9999999.0) ' aggiorno i valori in interfaccia Dim ToolDouble As Double EgtMdbGetCurrMachiningParam(MCH_MP.SPEED, ToolDouble) SpeedTxBx.Text = DoubleToString(ToolDouble, 3) EgtMdbGetCurrMachiningParam(MCH_MP.FEED, ToolDouble) FeedTxBx.Text = LenToString(ToolDouble, 3) EgtMdbGetCurrMachiningParam(MCH_MP.STARTFEED, ToolDouble) StartFeedTxBx.Text = LenToString(ToolDouble, 3) EgtMdbGetCurrMachiningParam(MCH_MP.ENDFEED, ToolDouble) EndFeedTxBx.Text = LenToString(ToolDouble, 3) EgtMdbGetCurrMachiningParam(MCH_MP.TIPFEED, ToolDouble) TipFeedTxBx.Text = LenToString(ToolDouble, 3) EgtMdbGetCurrMachiningParam(MCH_MP.OFFSR, ToolDouble) RadOffsetTxBx.Text = LenToString(ToolDouble, 3) EgtMdbGetCurrMachiningParam(MCH_MP.OFFSL, ToolDouble) LonOffsetTxBx.Text = LenToString(ToolDouble, 3) End Sub End Class Class MachiningMaterial Implements INotifyPropertyChanged ' Riferimento alla MainWindow Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow) Private m_nId As Integer Private m_sName As String Private m_dMinThickness As Double Private m_dMaxThickness As Double Private m_bIsActive As Boolean Public ReadOnly Property nId As Integer Get Return m_nId End Get End Property Public ReadOnly Property Name As String Get Return m_sName End Get End Property Public Property dMinThickness As Double Get Return m_dMinThickness End Get Set(value As Double) m_dMinThickness = value End Set End Property Public Property dMaxThickness As Double Get Return m_dMaxThickness End Get Set(value As Double) m_dMaxThickness = value End Set End Property Public Property bIsActive As Boolean Get Return m_bIsActive End Get Set(value As Boolean) If value <> m_bIsActive Then m_bIsActive = value NotifyPropertyChanged("bIsActive") End If End Set End Property Sub New(nId As Integer, sName As String) m_nId = nId m_sName = sName m_dMinThickness = 0 m_dMaxThickness = 0 m_bIsActive = False End Sub Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged Public Sub NotifyPropertyChanged(propName As String) RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName)) End Sub End Class