Imports System.Collections.ObjectModel Imports EgtUILib ''' ''' Class that represent a FamilyMachining in the treeview. ''' It's an element in the treeview that represent a folder, but also a machining family ''' Public Class FamilyMachiningTreeViewItem Inherits InheritableTreeViewItem ' Actions Public Shared m_delIsEnabledBtns As Action(Of Boolean, Boolean, Boolean) Public Shared m_delNotifyPropertyChanged As Action(Of String) ''' ''' Property that determines if the Machining is selected or not ''' Public Overrides Property IsSelected As Boolean Get Return m_IsSelected End Get Set(value As Boolean) If (value <> m_IsSelected) Then m_IsSelected = value If value Then m_delNotifyPropertyChanged("ParamPageV") m_delIsEnabledBtns(True, False, False) End If End If End Set End Property Private m_MachiningType As MCH_MY ''' ''' Property that determines the machining type of the family ''' Public Property MachiningType As MCH_MY Get Return m_MachiningType End Get Set(value As MCH_MY) m_MachiningType = value End Set End Property ' Proprietà che permette di nascondere tutti i parametri di lavorazione grazie al binding ed al converter Public ReadOnly Property Type As Integer Get Return MCH_MY.NONE End Get End Property Public ReadOnly Property FamilyColor As Brush Get If m_HaveInvalidMachining Then Return Brushes.Red Else Return Brushes.Transparent End If End Get End Property Private m_HaveInvalidMachining As Boolean Friend ReadOnly Property HaveInvalidMachining As Boolean Get Return m_HaveInvalidMachining End Get End Property ''' ''' Constructor that receive the name of the FamilyMachiningTreeViewItem, the MachiningType, and set ''' the picture(Folder.png) ''' Sub New(Name As String, MachiningType As MCH_MY, Parent As InheritableTreeViewItem) MyBase.New(Name, Parent) Me.MachiningType = MachiningType Me.PictureString = "/Resources/TreeView/Folder.png" ' Aggiungo il gestore d'evento di modifica lista degli item per poter mettere e togliere il pallino che indica se ci sono utensili da attrezzare VerifyMachiningValidity() End Sub Public Sub VerifyMachiningValidity() m_HaveInvalidMachining = False For Index = 0 To Items.Count - 1 Dim ToolItem As MachiningTreeViewItem = DirectCast(Items(Index), MachiningTreeViewItem) If Not ToolItem.m_IsValidTool Then m_HaveInvalidMachining = True End If Next NotifyPropertyChanged("FamilyColor") End Sub End Class ''' ''' Class that represent a Machining in the treeview. ''' It's an element in the treeview that represent the child of familymachiningtreeviewitem, but also the class that read and write in the machining's database ''' Public Class MachiningTreeViewItem Inherits InheritableTreeViewItem ' Riferimento alla lista utensili Public Shared sh_SelMach As MachiningTreeViewItem ' Actions Public Shared m_delRemoveMachining As Action(Of MachiningTreeViewItem) Public Shared m_delErrorOnMachining As Action(Of Boolean) Public Shared m_delIsEnabledBtns As Action(Of Boolean, Boolean, Boolean) Public Shared m_delNotifyPropertyChanged As Action(Of String) Public Shared m_delGetSelectedMachining As Func(Of MachiningTreeViewItem) ' Events Public Event m_IsModified(bIsModified As Boolean) Public Event m_ErrorOnOperation(bErrorOnOperation As Boolean) Public Shared m_MatType As MaterialType = Nothing Public Property MatType As MaterialType Get Return m_MatType End Get Set(value As MaterialType) m_MatType = value End Set End Property ' Variabile che viene settata da EgtCAM5 per la visibilità delle SystemNotes nelle Operazioni Public Shared m_MPE_SysNotes_Visibility As Boolean ' Variabile che stabilisce se l'oggetto MachiningTreeViewItem è stato creato per il Db Lavorazioni o per le Operazioni Friend m_CurrMachTreeViewItemType As MachTreeViewItemType = MachTreeViewItemType.MACH_DB Public Enum MachTreeViewItemType As Integer MACH_DB = 0 OPERATION = 1 End Enum #Region "Parametri Expander sistemare" 'Private m_Type As Integer '''' '''' Property that read from the Machining's database the Type '''' 'Public ReadOnly Property Type As Integer ' Get ' Return m_Type ' End Get 'End Property ''ObservableCollection che contiene le variabili per il combobox WorkSide 'Private m_WorkSideList As ObservableCollection(Of Object) 'Public ReadOnly Property WorkSideList As ObservableCollection(Of Object) ' Get ' Select Case m_Type ' Case MCH_MY.MORTISING ' m_WorkSideList = New ObservableCollection(Of Object)( ' {New IdNameStruct(MCH_MORTISE_WS.LEFT, EgtMsg(MSG_MACHININGSDBPAGE + 121)), ' New IdNameStruct(MCH_MORTISE_WS.RIGHT, EgtMsg(MSG_MACHININGSDBPAGE + 122))}) ' Case MCH_MY.CHISELING ' m_WorkSideList = New ObservableCollection(Of Object)( ' {New IdNameStruct(MCH_CHISEL_WS.LEFT, EgtMsg(MSG_MACHININGSDBPAGE + 121)), ' New IdNameStruct(MCH_CHISEL_WS.RIGHT, EgtMsg(MSG_MACHININGSDBPAGE + 122))}) ' Case Else ' m_WorkSideList = New ObservableCollection(Of Object)( ' {New IdNameStruct(MCH_SAW_WS.CENTER, EgtMsg(MSG_MACHININGSDBPAGE + 120)), ' New IdNameStruct(MCH_SAW_WS.LEFT, EgtMsg(MSG_MACHININGSDBPAGE + 121)), ' New IdNameStruct(MCH_SAW_WS.RIGHT, EgtMsg(MSG_MACHININGSDBPAGE + 122))}) ' End Select ' Return m_WorkSideList ' End Get 'End Property ''ObservableCollection che contiene le variabili per il combobox HeadSide 'Private m_HeadSideList As New ObservableCollection(Of Object)( ' {New IdNameStruct(MCH_SAW_HS.LEFT, EgtMsg(MSG_MACHININGSDBPAGE + 121)), ' New IdNameStruct(MCH_SAW_HS.RIGHT, EgtMsg(MSG_MACHININGSDBPAGE + 122))}) 'Public ReadOnly Property HeadSideList As ObservableCollection(Of Object) ' Get ' Return m_HeadSideList ' End Get 'End Property ''ObservableCollection che contiene le variabili per il combobox LeadInType 'Private m_LeadInTypeList As ObservableCollection(Of Object) 'Public ReadOnly Property LeadInTypeList As ObservableCollection(Of Object) ' Get ' Select Case m_Type ' Case MCH_MY.SAWING ' m_LeadInTypeList = New ObservableCollection(Of Object)( ' {New IdNameStruct(MCH_SAW_LI.CENT, EgtMsg(MSG_MACHININGSDBPAGE + 120)), ' New IdNameStruct(MCH_SAW_LI.STRICT, EgtMsg(MSG_MACHININGSDBPAGE + 125)), ' New IdNameStruct(MCH_SAW_LI.OUT, EgtMsg(MSG_MACHININGSDBPAGE + 126)), ' New IdNameStruct(MCH_SAW_LI.EXT_CENT, EgtMsg(MSG_MACHININGSDBPAGE + 127)), ' New IdNameStruct(MCH_SAW_LI.EXT_OUT, EgtMsg(MSG_MACHININGSDBPAGE + 128))}) ' Case MCH_MY.MILLING ' m_LeadInTypeList = New ObservableCollection(Of Object)( ' {New IdNameStruct(MCH_MIL_LI.NONE, EgtMsg(MSG_MACHININGSDBPAGE + 129)), ' New IdNameStruct(MCH_MIL_LI.LINEAR, EgtMsg(MSG_MACHININGSDBPAGE + 130)), ' New IdNameStruct(MCH_MIL_LI.TANGENT, EgtMsg(MSG_MACHININGSDBPAGE + 131)), ' New IdNameStruct(MCH_MIL_LI.GLIDE, EgtMsg(MSG_MACHININGSDBPAGE + 132)), ' New IdNameStruct(MCH_MIL_LI.ZIGZAG, EgtMsg(MSG_MACHININGSDBPAGE + 142)), ' New IdNameStruct(MCH_MIL_LI.HELIX, EgtMsg(MSG_MACHININGSDBPAGE + 133))}) ' Case MCH_MY.POCKETING ' m_LeadInTypeList = New ObservableCollection(Of Object)( ' {New IdNameStruct(MCH_POCK_LI.NONE, EgtMsg(MSG_MACHININGSDBPAGE + 129)), ' New IdNameStruct(MCH_POCK_LI.GLIDE, EgtMsg(MSG_MACHININGSDBPAGE + 132)), ' New IdNameStruct(MCH_POCK_LI.ZIGZAG, EgtMsg(MSG_MACHININGSDBPAGE + 142)), ' New IdNameStruct(MCH_POCK_LI.HELIX, EgtMsg(MSG_MACHININGSDBPAGE + 133))}) ' Case MCH_MY.SURFFINISHING ' m_LeadInTypeList = New ObservableCollection(Of Object)( ' {New IdNameStruct(MCH_SURFFIN_LI.NONE, EgtMsg(MSG_MACHININGSDBPAGE + 129)), ' New IdNameStruct(MCH_SURFFIN_LI.LINEAR, EgtMsg(MSG_MACHININGSDBPAGE + 130)), ' New IdNameStruct(MCH_SURFFIN_LI.TANGENT, EgtMsg(MSG_MACHININGSDBPAGE + 131))}) ' Case MCH_MY.WATERJETTING ' m_LeadInTypeList = New ObservableCollection(Of Object)( ' {New IdNameStruct(MCH_WATERJET_LI.NONE, EgtMsg(MSG_MACHININGSDBPAGE + 129)), ' New IdNameStruct(MCH_WATERJET_LI.LINEAR, EgtMsg(MSG_MACHININGSDBPAGE + 130)), ' New IdNameStruct(MCH_WATERJET_LI.TANGENT, EgtMsg(MSG_MACHININGSDBPAGE + 131))}) ' Case Else ' m_LeadInTypeList = Nothing ' End Select ' Return m_LeadInTypeList ' End Get 'End Property ''ObservableCollection che contiene le variabili per il combobox ExtLinkType 'Private m_ExtLinkTypeList As New ObservableCollection(Of Object)( ' {New IdNameStruct(MCH_SAW_EL.CENT, EgtMsg(MSG_MACHININGSDBPAGE + 120)), ' New IdNameStruct(MCH_SAW_EL.EXT_PREV, EgtMsg(MSG_MACHININGSDBPAGE + 134)), ' New IdNameStruct(MCH_SAW_EL.EXT_NEXT, EgtMsg(MSG_MACHININGSDBPAGE + 135)), ' New IdNameStruct(MCH_SAW_EL.EXT_BOTH, EgtMsg(MSG_MACHININGSDBPAGE + 136))}) 'Public ReadOnly Property ExtLinkTypeList As ObservableCollection(Of Object) ' Get ' Return m_ExtLinkTypeList ' End Get 'End Property ''ObservableCollection che contiene le variabili per il combobox LeadOutType 'Private m_LeadOutTypeList As ObservableCollection(Of Object) 'Public ReadOnly Property LeadOutTypeList As ObservableCollection(Of Object) ' Get ' Select Case m_Type ' Case MCH_MY.SAWING ' m_LeadOutTypeList = New ObservableCollection(Of Object)( ' {New IdNameStruct(MCH_SAW_LO.CENT, EgtMsg(MSG_MACHININGSDBPAGE + 120)), ' New IdNameStruct(MCH_SAW_LO.STRICT, EgtMsg(MSG_MACHININGSDBPAGE + 125)), ' New IdNameStruct(MCH_SAW_LO.EXT_CENT, EgtMsg(MSG_MACHININGSDBPAGE + 127)), ' New IdNameStruct(MCH_SAW_LO.OUT, EgtMsg(MSG_MACHININGSDBPAGE + 126)), ' New IdNameStruct(MCH_SAW_LO.EXT_OUT, EgtMsg(MSG_MACHININGSDBPAGE + 128))}) ' Case MCH_MY.MILLING ' m_LeadOutTypeList = New ObservableCollection(Of Object)( ' {New IdNameStruct(MCH_MIL_LO.NONE, EgtMsg(MSG_MACHININGSDBPAGE + 129)), ' New IdNameStruct(MCH_MIL_LO.LINEAR, EgtMsg(MSG_MACHININGSDBPAGE + 130)), ' New IdNameStruct(MCH_MIL_LO.TANGENT, EgtMsg(MSG_MACHININGSDBPAGE + 131)), ' New IdNameStruct(MCH_MIL_LO.GLIDE, EgtMsg(MSG_MACHININGSDBPAGE + 132)), ' New IdNameStruct(MCH_MIL_LO.AS_LI, EgtMsg(MSG_MACHININGSDBPAGE + 137))}) ' Case MCH_MY.POCKETING ' m_LeadOutTypeList = New ObservableCollection(Of Object)( ' {New IdNameStruct(MCH_POCK_LO.NONE, EgtMsg(MSG_MACHININGSDBPAGE + 129)), ' New IdNameStruct(MCH_POCK_LO.GLIDE, EgtMsg(MSG_MACHININGSDBPAGE + 132))}) ' Case MCH_MY.SURFFINISHING ' m_LeadOutTypeList = New ObservableCollection(Of Object)( ' {New IdNameStruct(MCH_SURFFIN_LO.NONE, EgtMsg(MSG_MACHININGSDBPAGE + 129)), ' New IdNameStruct(MCH_SURFFIN_LO.LINEAR, EgtMsg(MSG_MACHININGSDBPAGE + 130)), ' New IdNameStruct(MCH_SURFFIN_LO.TANGENT, EgtMsg(MSG_MACHININGSDBPAGE + 131)), ' New IdNameStruct(MCH_SURFFIN_LO.AS_LI, EgtMsg(MSG_MACHININGSDBPAGE + 137))}) ' Case MCH_MY.WATERJETTING ' m_LeadOutTypeList = New ObservableCollection(Of Object)( ' {New IdNameStruct(MCH_WATERJET_LO.NONE, EgtMsg(MSG_MACHININGSDBPAGE + 129)), ' New IdNameStruct(MCH_WATERJET_LO.LINEAR, EgtMsg(MSG_MACHININGSDBPAGE + 130)), ' New IdNameStruct(MCH_WATERJET_LO.TANGENT, EgtMsg(MSG_MACHININGSDBPAGE + 131)), ' New IdNameStruct(MCH_WATERJET_LO.AS_LI, EgtMsg(MSG_MACHININGSDBPAGE + 137))}) ' Case Else ' m_LeadOutTypeList = Nothing ' End Select ' Return m_LeadOutTypeList ' End Get 'End Property ''ObservableCollection che contiene le variabili per il combobox CurveUse 'Private m_CurveUseList As ObservableCollection(Of Object) 'Public ReadOnly Property CurveUseList As ObservableCollection(Of Object) ' Get ' If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_SAWINGONARCS, 0, IniFile.m_sCurrMachIniFilePath) <> 0 Then ' m_CurveUseList = New ObservableCollection(Of Object)( ' {New IdNameStruct(MCH_SAW_CU.SKIP, EgtMsg(MSG_MACHININGSDBPAGE + 138)), ' New IdNameStruct(MCH_SAW_CU.APPROX, EgtMsg(MSG_MACHININGSDBPAGE + 139)), ' New IdNameStruct(MCH_SAW_CU.CONVEX, EgtMsg(MSG_MACHININGSDBPAGE + 140)), ' New IdNameStruct(MCH_SAW_CU.KEEP, EgtMsg(MSG_MACHININGSDBPAGE + 141))}) ' Else ' m_CurveUseList = New ObservableCollection(Of Object)( ' {New IdNameStruct(MCH_SAW_CU.SKIP, EgtMsg(MSG_MACHININGSDBPAGE + 138)), ' New IdNameStruct(MCH_SAW_CU.APPROX, EgtMsg(MSG_MACHININGSDBPAGE + 139)), ' New IdNameStruct(MCH_SAW_CU.CONVEX, EgtMsg(MSG_MACHININGSDBPAGE + 140))}) ' End If ' Return m_CurveUseList ' End Get 'End Property ''ObservableCollection che contiene le variabili per il combobox StepType 'Private m_StepTypeList As ObservableCollection(Of Object) 'Public ReadOnly Property StepTypeList As ObservableCollection(Of Object) ' Get ' Select Case m_Type ' Case MCH_MY.SAWING ' m_StepTypeList = New ObservableCollection(Of Object)({New IdNameStruct(MCH_SAW_ST.ZIGZAG, EgtMsg(MSG_MACHININGSDBPAGE + 142)), ' New IdNameStruct(MCH_SAW_ST.ONEWAY, EgtMsg(MSG_MACHININGSDBPAGE + 143)), ' New IdNameStruct(MCH_SAW_ST.TOANDFROM, EgtMsg(MSG_MACHININGSDBPAGE + 145))}) ' Case MCH_MY.MILLING ' m_StepTypeList = New ObservableCollection(Of Object)({New IdNameStruct(MCH_MIL_ST.ZIGZAG, EgtMsg(MSG_MACHININGSDBPAGE + 142)), ' New IdNameStruct(MCH_MIL_ST.ONEWAY, EgtMsg(MSG_MACHININGSDBPAGE + 143)), ' New IdNameStruct(MCH_MIL_ST.SPIRAL, EgtMsg(MSG_MACHININGSDBPAGE + 144))}) ' Case MCH_MY.MORTISING ' m_StepTypeList = New ObservableCollection(Of Object)({New IdNameStruct(MCH_MORTISE_ST.ZIGZAG, EgtMsg(MSG_MACHININGSDBPAGE + 142)), ' New IdNameStruct(MCH_MORTISE_ST.ONEWAY, EgtMsg(MSG_MACHININGSDBPAGE + 143))}) ' Case MCH_MY.SAWROUGHING, MCH_MY.SAWFINISHING ' m_StepTypeList = New ObservableCollection(Of Object)({New IdNameStruct(MCH_SAWROU_ST.ZIGZAG, EgtMsg(MSG_MACHININGSDBPAGE + 142)), ' New IdNameStruct(MCH_SAWROU_ST.ONEWAY, EgtMsg(MSG_MACHININGSDBPAGE + 143))}) ' Case Else ' m_StepTypeList = Nothing ' End Select ' Return m_StepTypeList ' End Get 'End Property ''ObservableCollection che contiene le variabili per il combobox SubType 'Private m_SubTypeList As ObservableCollection(Of Object) 'Public ReadOnly Property SubTypeList As ObservableCollection(Of Object) ' Get ' Select Case m_Type ' Case MCH_MY.POCKETING ' m_SubTypeList = New ObservableCollection(Of Object)( ' {New IdNameStruct(MCH_POCK_SUB.ZIGZAG, EgtMsg(MSG_MACHININGSDBPAGE + 142)), ' New IdNameStruct(MCH_POCK_SUB.ONEWAY, EgtMsg(MSG_MACHININGSDBPAGE + 143)), ' New IdNameStruct(MCH_POCK_SUB.SPIRALIN, EgtMsg(MSG_MACHININGSDBPAGE + 148)), ' New IdNameStruct(MCH_POCK_SUB.SPIRALOUT, EgtMsg(MSG_MACHININGSDBPAGE + 149))}) ' Case MCH_MY.SAWFINISHING ' m_SubTypeList = New ObservableCollection(Of Object)( ' {New IdNameStruct(MCH_SAWFIN_SUB.ALONG, EgtMsg(MSG_MACHININGSDBPAGE + 146)), ' New IdNameStruct(MCH_SAWFIN_SUB.ACROSS, EgtMsg(MSG_MACHININGSDBPAGE + 147))}) ' Case MCH_MY.GENMACHINING ' Dim Index = 1 ' Dim sGenScript As String = String.Empty ' m_SubTypeList = New ObservableCollection(Of Object) ' While EgtUILib.GetPrivateProfileString(S_GENMACHINING, K_GENSCRIPT & Index, "", sGenScript, IniFile.m_sCurrMachIniFilePath) > 0 ' m_SubTypeList.Add(New IdNameStruct(Index, sGenScript)) ' Index += 1 ' End While ' If m_SubTypeList.Count = 0 Then ' m_SubTypeList.Add(New IdNameStruct(0, "")) ' End If ' Case MCH_MY.SURFFINISHING ' m_SubTypeList = New ObservableCollection(Of Object)( ' {New IdNameStruct(MCH_SURFFIN_SUB.ZIGZAG, EgtMsg(MSG_MACHININGSDBPAGE + 142)), ' New IdNameStruct(MCH_SURFFIN_SUB.ONEWAY, EgtMsg(MSG_MACHININGSDBPAGE + 143)), ' New IdNameStruct(MCH_SURFFIN_SUB.SPIRALIN, EgtMsg(MSG_MACHININGSDBPAGE + 148)), ' New IdNameStruct(MCH_SURFFIN_SUB.SPIRALOUT, EgtMsg(MSG_MACHININGSDBPAGE + 149))}) ' Case Else ' m_SubTypeList = Nothing ' End Select ' Return m_SubTypeList ' End Get 'End Property ''ObservableCollection che contiene le variabili per il combobox LeadLinkType 'Private m_LeadLinkTypeList As ObservableCollection(Of Object) 'Public ReadOnly Property LeadLinkTypeList As ObservableCollection(Of Object) ' Get ' Select Case m_Type ' Case MCH_MY.SAWROUGHING ' m_LeadLinkTypeList = New ObservableCollection(Of Object)( ' {New IdNameStruct(MCH_SAWROU_LL.CENT, EgtMsg(MSG_MACHININGSDBPAGE + 120)), ' New IdNameStruct(MCH_SAWROU_LL.EXT, EgtMsg(MSG_MACHININGSDBPAGE + 123))}) ' Case MCH_MY.SAWFINISHING ' m_LeadLinkTypeList = New ObservableCollection(Of Object)( ' {New IdNameStruct(MCH_SAWFIN_LL.STD, EgtMsg(MSG_MACHININGSDBPAGE + 124)), ' New IdNameStruct(MCH_SAWFIN_LL.CENT, EgtMsg(MSG_MACHININGSDBPAGE + 120)), ' New IdNameStruct(MCH_SAWFIN_LL.EXT, EgtMsg(MSG_MACHININGSDBPAGE + 123))}) ' Case MCH_MY.SURFFINISHING ' m_LeadLinkTypeList = New ObservableCollection(Of Object)( ' {New IdNameStruct(MCH_SURFFIN_LL.STD, EgtMsg(MSG_MACHININGSDBPAGE + 124)), ' New IdNameStruct(MCH_SURFFIN_LL.CENT, EgtMsg(MSG_MACHININGSDBPAGE + 120))}) ' Case Else ' m_LeadLinkTypeList = Nothing ' End Select ' Return m_LeadLinkTypeList ' End Get 'End Property ''ObservableCollection che contiene le variabili per il combobox FaceUseType 'Private m_FaceUseTypeList As ObservableCollection(Of Object) 'Public ReadOnly Property FaceUseTypeList As ObservableCollection(Of Object) ' Get ' Select Case m_Type ' Case MCH_MY.MORTISING ' m_FaceUseTypeList = New ObservableCollection(Of Object)( ' {New IdNameStruct(MCH_MIL_FU.NONE, EgtMsg(MSG_MACHININGSDBPAGE + 153)), ' New IdNameStruct(MCH_MIL_FU.PARAL_DOWN, EgtMsg(MSG_MACHININGSDBPAGE + 157) & EgtMsg(MSG_MACHININGSDBPAGE + 154)), ' New IdNameStruct(MCH_MIL_FU.PARAL_TOP, EgtMsg(MSG_MACHININGSDBPAGE + 158) & EgtMsg(MSG_MACHININGSDBPAGE + 154)), ' New IdNameStruct(MCH_MIL_FU.PARAL_FRONT, EgtMsg(MSG_MACHININGSDBPAGE + 159) & EgtMsg(MSG_MACHININGSDBPAGE + 154)), ' New IdNameStruct(MCH_MIL_FU.PARAL_BACK, EgtMsg(MSG_MACHININGSDBPAGE + 160) & EgtMsg(MSG_MACHININGSDBPAGE + 154)), ' New IdNameStruct(MCH_MIL_FU.PARAL_LEFT, EgtMsg(MSG_MACHININGSDBPAGE + 161) & EgtMsg(MSG_MACHININGSDBPAGE + 154)), ' New IdNameStruct(MCH_MIL_FU.PARAL_RIGHT, EgtMsg(MSG_MACHININGSDBPAGE + 162) & EgtMsg(MSG_MACHININGSDBPAGE + 154))}) ' Case Else ' m_FaceUseTypeList = New ObservableCollection(Of Object)( ' {New IdNameStruct(MCH_MIL_FU.NONE, EgtMsg(MSG_MACHININGSDBPAGE + 153)), ' New IdNameStruct(MCH_MIL_FU.PARAL_DOWN, EgtMsg(MSG_MACHININGSDBPAGE + 157) & EgtMsg(MSG_MACHININGSDBPAGE + 154)), ' New IdNameStruct(MCH_MIL_FU.PARAL_TOP, EgtMsg(MSG_MACHININGSDBPAGE + 158) & EgtMsg(MSG_MACHININGSDBPAGE + 154)), ' New IdNameStruct(MCH_MIL_FU.PARAL_FRONT, EgtMsg(MSG_MACHININGSDBPAGE + 159) & EgtMsg(MSG_MACHININGSDBPAGE + 154)), ' New IdNameStruct(MCH_MIL_FU.PARAL_BACK, EgtMsg(MSG_MACHININGSDBPAGE + 160) & EgtMsg(MSG_MACHININGSDBPAGE + 154)), ' New IdNameStruct(MCH_MIL_FU.PARAL_LEFT, EgtMsg(MSG_MACHININGSDBPAGE + 161) & EgtMsg(MSG_MACHININGSDBPAGE + 154)), ' New IdNameStruct(MCH_MIL_FU.PARAL_RIGHT, EgtMsg(MSG_MACHININGSDBPAGE + 162) & EgtMsg(MSG_MACHININGSDBPAGE + 154)), ' New IdNameStruct(MCH_MIL_FU.ORTHO_DOWN, EgtMsg(MSG_MACHININGSDBPAGE + 157) & EgtMsg(MSG_MACHININGSDBPAGE + 155)), ' New IdNameStruct(MCH_MIL_FU.ORTHO_TOP, EgtMsg(MSG_MACHININGSDBPAGE + 158) & EgtMsg(MSG_MACHININGSDBPAGE + 155)), ' New IdNameStruct(MCH_MIL_FU.ORTHO_FRONT, EgtMsg(MSG_MACHININGSDBPAGE + 159) & EgtMsg(MSG_MACHININGSDBPAGE + 155)), ' New IdNameStruct(MCH_MIL_FU.ORTHO_BACK, EgtMsg(MSG_MACHININGSDBPAGE + 160) & EgtMsg(MSG_MACHININGSDBPAGE + 155)), ' New IdNameStruct(MCH_MIL_FU.ORTHO_LEFT, EgtMsg(MSG_MACHININGSDBPAGE + 161) & EgtMsg(MSG_MACHININGSDBPAGE + 155)), ' New IdNameStruct(MCH_MIL_FU.ORTHO_RIGHT, EgtMsg(MSG_MACHININGSDBPAGE + 162) & EgtMsg(MSG_MACHININGSDBPAGE + 155)), ' New IdNameStruct(MCH_MIL_FU.ORTHO_CONT, EgtMsg(MSG_MACHININGSDBPAGE + 163) & EgtMsg(MSG_MACHININGSDBPAGE + 155)), ' New IdNameStruct(MCH_MIL_FU.ORTUP_DOWN, EgtMsg(MSG_MACHININGSDBPAGE + 157) & EgtMsg(MSG_MACHININGSDBPAGE + 156)), ' New IdNameStruct(MCH_MIL_FU.ORTUP_TOP, EgtMsg(MSG_MACHININGSDBPAGE + 158) & EgtMsg(MSG_MACHININGSDBPAGE + 156)), ' New IdNameStruct(MCH_MIL_FU.ORTUP_FRONT, EgtMsg(MSG_MACHININGSDBPAGE + 159) & EgtMsg(MSG_MACHININGSDBPAGE + 156)), ' New IdNameStruct(MCH_MIL_FU.ORTUP_BACK, EgtMsg(MSG_MACHININGSDBPAGE + 160) & EgtMsg(MSG_MACHININGSDBPAGE + 156)), ' New IdNameStruct(MCH_MIL_FU.ORTUP_LEFT, EgtMsg(MSG_MACHININGSDBPAGE + 161) & EgtMsg(MSG_MACHININGSDBPAGE + 156)), ' New IdNameStruct(MCH_MIL_FU.ORTUP_RIGHT, EgtMsg(MSG_MACHININGSDBPAGE + 162) & EgtMsg(MSG_MACHININGSDBPAGE + 156)), ' New IdNameStruct(MCH_MIL_FU.ORTUP_CONT, EgtMsg(MSG_MACHININGSDBPAGE + 163) & EgtMsg(MSG_MACHININGSDBPAGE + 156))}) ' End Select ' Return m_FaceUseTypeList ' End Get 'End Property ''ObservableCollection che contiene le variabili per il combobox SolChoiceType 'Private m_SolChoiceTypeList As New ObservableCollection(Of Object)( ' {New IdNameStruct(MCH_SCC.NONE, EgtMsg(MSG_MACHININGSDBPAGE + 105)), ' New IdNameStruct(MCH_SCC.STD, EgtMsg(MSG_MACHININGSDBPAGE + 106)), ' New IdNameStruct(MCH_SCC.OPPOSITE, EgtMsg(MSG_MACHININGSDBPAGE + 107)), ' New IdNameStruct(MCH_SCC.ADIR_XP, EgtMsg(MSG_MACHININGSDBPAGE + 108)), ' New IdNameStruct(MCH_SCC.ADIR_XM, EgtMsg(MSG_MACHININGSDBPAGE + 109)), ' New IdNameStruct(MCH_SCC.ADIR_YP, EgtMsg(MSG_MACHININGSDBPAGE + 110)), ' New IdNameStruct(MCH_SCC.ADIR_YM, EgtMsg(MSG_MACHININGSDBPAGE + 111)), ' New IdNameStruct(MCH_SCC.ADIR_ZP, EgtMsg(MSG_MACHININGSDBPAGE + 112)), ' New IdNameStruct(MCH_SCC.ADIR_ZM, EgtMsg(MSG_MACHININGSDBPAGE + 113)), ' New IdNameStruct(MCH_SCC.ADIR_NEAR, EgtMsg(MSG_MACHININGSDBPAGE + 114)), ' New IdNameStruct(MCH_SCC.ADIR_FAR, EgtMsg(MSG_MACHININGSDBPAGE + 115))}) 'Public ReadOnly Property SolChoiceTypeList As ObservableCollection(Of Object) ' Get ' Return m_SolChoiceTypeList ' End Get 'End Property 'Private m_UpdateMachiningBtnIsEnabled As Boolean 'Public ReadOnly Property UpdateMachiningBtnIsEnabled As Boolean ' Get ' Return m_IsModifiedInvert OrElse m_IsModifiedSelectedWorkSide OrElse m_IsModifiedSelectedHeadSide OrElse m_IsModifiedSelectedLeadInType OrElse m_IsModifiedSelectedExtLinkType _ ' OrElse m_IsModifiedSelectedLeadOutType OrElse m_IsModifiedSelectedCurveUse OrElse m_IsModifiedSelectedStepType OrElse m_IsModifiedSelectedSubType OrElse m_IsModifiedSelectedLeadLinkType _ ' OrElse m_IsModifiedSpeed OrElse m_IsModifiedFeed OrElse m_IsModifiedStartFeed OrElse m_IsModifiedEndFeed OrElse m_IsModifiedTipFeed OrElse m_IsModifiedOffSr OrElse m_IsModifiedOffSl _ ' OrElse m_IsModifiedSideAngle OrElse m_IsModifiedApprox OrElse m_IsModifiedStartPos OrElse m_IsModifiedStartSlowLen OrElse m_IsModifiedEndSlowLen OrElse m_IsModifiedThrouAddLen _ ' OrElse m_IsModifiedStepPar OrElse m_IsModifiedReturnPos OrElse m_IsModifiedOverLap OrElse m_IsModifiedTabLen OrElse m_IsModifiedTabDist OrElse m_IsModifiedTabHeight _ ' OrElse m_IsModifiedTabAngle OrElse m_IsModifiedLiTang OrElse m_IsModifiedLiPerp OrElse m_IsModifiedLiElev OrElse m_IsModifiedLiCompLen OrElse m_IsModifiedLoTang OrElse m_IsModifiedLoPerp _ ' OrElse m_IsModifiedLoElev OrElse m_IsModifiedLoCompLen OrElse m_IsModifiedStartAddLen OrElse m_IsModifiedEndAddLen OrElse m_IsModifiedStepExtArc OrElse m_IsModifiedStepIntArc _ ' OrElse m_IsModifiedSideStep OrElse m_IsModifiedVertFeed OrElse m_IsModifiedDepthStr OrElse m_IsModifiedUserNotes OrElse m_IsModifiedBackFeed OrElse m_IsModifiedStepBack _ ' OrElse m_IsModifiedStepSideAng OrElse m_IsModifiedStepSideAngBack OrElse m_IsModifiedOscEnable OrElse m_IsModifiedOscFlatLen OrElse m_IsModifiedOscHeight OrElse m_IsModifiedOscRampLen ' End Get 'End Property Private m_bPreviewTool As Boolean = False Private m_nPtEntId As Integer = GDB_ID.NULL Public Property ViewTool As Boolean Get Return m_bPreviewTool End Get Set(value As Boolean) If value Then EgtPreparePreviewMachiningTool() m_nPtEntId = EgtPreviewMachiningTool(GDB_ID.NULL, MCH_PTM.AFTER) m_bPreviewTool = True Else EgtRemovePreviewMachiningTool() m_bPreviewTool = False End If EgtDraw() NotifyPropertyChanged("ViewTool") End Set End Property #End Region #Region "Machining Property" ' Variabile che indica quando non lanciare l'update dei parametri dell'utensile col comando automatico ' (utile per evitare di rifare l'update più volte quando vengono caricati i parametri alla selezione di un utensile) Private Shared m_SuspendAutoToolParamUpdate As Boolean = False Public Shared Property SuspendAutoToolParamUpdate As Boolean Get Return m_SuspendAutoToolParamUpdate End Get Set(value As Boolean) m_SuspendAutoToolParamUpdate = value End Set End Property ' Variabile che indica se la lavorazione è appena stata creata Dim m_NewMachining As Boolean = False Public Property NewMachining As Boolean Get Return m_NewMachining End Get Set(value As Boolean) m_NewMachining = value End Set End Property ''' ''' Property that determines if the Machining is selected or not ''' Public Overrides Property IsSelected As Boolean Get Return m_IsSelected End Get Set(value As Boolean) If (value <> m_IsSelected) Then m_IsSelected = value If value Then EgtSetCurrentContext(MachiningDbWindowVM.m_ProjectSceneContext) EgtMdbSetCurrMachining(Me.Name) ReadMachiningParam() IsModifiedReset() NotifyPropertyChanged("Type") 'm_delNotifyPropertyChanged("ParamPageV") m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) Else WriteMachiningParam() If EgtMdbIsCurrMachiningModified() Or m_IsModifiedName Or Me.NewMachining Then Select Case MsgBox(EgtMsg(MSG_MACHININGDBERRORS + 1), MsgBoxStyle.YesNo, EgtMsg(MSG_MACHININGDBERRORS + 2)) Case MsgBoxResult.Yes m_NewMachining = False m_Name = m_Name.Trim() WriteMachiningName() EgtMdbSaveCurrMachining() Case MsgBoxResult.No If m_NewMachining Then m_delRemoveMachining(Me) ElseIf m_IsModifiedName Then Dim DbName As String = String.Empty EgtMdbGetCurrMachiningParam(MCH_MP.NAME, DbName) NamePar = DbName End If End Select End If End If NotifyPropertyChanged("IsSelected") End If End Set End Property Private m_IsModifiedInvert As Boolean = False Private m_Invert As Boolean ''' ''' Property that read and write to the Machining's database the Invert ''' Public Property Invert As Boolean Get Return m_Invert End Get Set(value As Boolean) If value <> m_Invert Then m_Invert = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbInvert As Boolean = False EgtMdbGetCurrMachiningParam(MCH_MP.INVERT, DbInvert) m_IsModifiedInvert = value <> DbInvert m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged("Invert") Else Dim OrigInvert As Boolean = False EgtGetMachiningParam(MCH_MP.INVERT, OrigInvert) m_IsModifiedInvert = value <> OrigInvert RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedLeaveTab As Boolean = False Private m_LeaveTab As Boolean ''' ''' Property that read and write to the Machining's database the Leave Tab ''' Public Property LeaveTab As Boolean Get Return m_LeaveTab End Get Set(value As Boolean) If value <> m_LeaveTab Then If m_MatType = MaterialType.WOOD Then If Not IsNothing(OscEnable) AndAlso OscEnable Then ' L'abilitazione di {0} disabiliterà {1}. Procedere? - Tab - Oscillazione Dim sMsg As String = String.Format(EgtMsg(31419), EgtMsg(31252), EgtMsg(31382)) ' Chiedo autorizzazione a procedere : ATTENZIONE If MessageBox.Show(sMsg, EgtMsg(31614), MessageBoxButton.YesNo, MessageBoxImage.Question) <> MessageBoxResult.Yes Then Return Else OscEnable = Not OscEnable End If End If End If m_LeaveTab = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbLeaveTab As Boolean = False EgtMdbGetCurrMachiningParam(MCH_MP.LEAVETAB, DbLeaveTab) m_IsModifiedLeaveTab = value <> DbLeaveTab If m_LeaveTab AndAlso (Not GetValidationError("TabLen") Or GetNonNumericTextBox(m_TabLen) Or Not GetValidationError("TabDist") Or GetNonNumericTextBox(m_TabDist) Or Not GetValidationError("TabHeight") Or GetNonNumericTextBox(m_TabHeight) Or Not GetValidationError("TabAngle") Or GetNonNumericTextBox(m_TabAngle) Or Not GetValidationError("TabMin") Or GetNonNumericTextBox(m_TabMin) Or Not GetValidationError("TabMax") Or GetNonNumericTextBox(m_TabMax)) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else ' resetto gli errori presenti sui parametri Tab per poter abilitare i bottoni e la selezione di altre Lavorazioni ResetTabErrors() m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If Else Dim OrigLeaveTab As Boolean = False EgtGetMachiningParam(MCH_MP.LEAVETAB, OrigLeaveTab) m_IsModifiedLeaveTab = value <> OrigLeaveTab If m_LeaveTab AndAlso (Not GetValidationError("TabLen") Or GetNonNumericTextBox(m_TabLen) Or Not GetValidationError("TabDist") Or GetNonNumericTextBox(m_TabDist) Or Not GetValidationError("TabHeight") Or GetNonNumericTextBox(m_TabHeight) Or Not GetValidationError("TabAngle") Or GetNonNumericTextBox(m_TabAngle) Or Not GetValidationError("TabMin") Or GetNonNumericTextBox(m_TabMin) Or Not GetValidationError("TabMax") Or GetNonNumericTextBox(m_TabMax)) Then RaiseEvent m_ErrorOnOperation(True) Else ' resetto gli errori presenti sui parametri Tab per poter abilitare i bottoni e la selezione di altre Lavorazioni ResetTabErrors() RaiseEvent m_ErrorOnOperation(Not IsValid) End If RaiseEvent m_IsModified(IsModified()) End If NotifyPropertyChanged("LeaveTab") End If End Set End Property Private m_IsModifiedToolInvert As Boolean = False Private m_ToolInvert As Boolean = False ''' ''' Property that read and write to the Machining's database the Invert ''' Public Property InvertToolDir As Boolean Get Return m_ToolInvert End Get Set(value As Boolean) If value <> m_ToolInvert Then m_ToolInvert = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbToolInvert As Boolean = False EgtMdbGetCurrMachiningParam(MCH_MP.TOOLINVERT, DbToolInvert) m_IsModifiedToolInvert = value <> DbToolInvert m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged("InvertToolDir") Else Dim OrigToolInvert As Boolean = False EgtGetMachiningParam(MCH_MP.TOOLINVERT, OrigToolInvert) m_IsModifiedToolInvert = value <> OrigToolInvert RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_Type As MCH_MY ''' ''' Property that read from the Machining's database the Type ''' Public ReadOnly Property Type As Integer Get Return m_Type End Get End Property 'ObservableCollection che contiene le variabili per il combobox WorkSide Private m_WorkSideList As ObservableCollection(Of Object) Public ReadOnly Property WorkSideList As ObservableCollection(Of Object) Get Select Case m_Type Case MCH_MY.MORTISING m_WorkSideList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_MORTISE_WS.LEFT, EgtMsg(MSG_MACHININGDB + 121)), New IdNameStruct(MCH_MORTISE_WS.RIGHT, EgtMsg(MSG_MACHININGDB + 122))}) Case MCH_MY.CHISELING m_WorkSideList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_CHISEL_WS.LEFT, EgtMsg(MSG_MACHININGDB + 121)), New IdNameStruct(MCH_CHISEL_WS.RIGHT, EgtMsg(MSG_MACHININGDB + 122))}) Case Else m_WorkSideList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_SAW_WS.CENTER, EgtMsg(MSG_MACHININGDB + 120)), New IdNameStruct(MCH_SAW_WS.LEFT, EgtMsg(MSG_MACHININGDB + 121)), New IdNameStruct(MCH_SAW_WS.RIGHT, EgtMsg(MSG_MACHININGDB + 122))}) End Select Return m_WorkSideList End Get End Property Private m_IsModifiedSelectedWorkSide As Boolean = False Private m_SelectedWorkSide As Integer ' Proprietà che indica il WorkSide (MCH_SAW_WS) Public Property SelectedWorkSide As Integer Get If IsNothing(WorkSideList) Then Return Nothing Return m_SelectedWorkSide End Get Set(value As Integer) If value <> m_SelectedWorkSide Then If Not IsNothing(WorkSideList) Then m_SelectedWorkSide = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbWorkSide As Integer = 0 EgtMdbGetCurrMachiningParam(MCH_MP.WORKSIDE, DbWorkSide) DbWorkSide = IdNameStruct.IndFromId(DbWorkSide, WorkSideList) m_IsModifiedSelectedWorkSide = value <> DbWorkSide m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged("SelectedWorkSide") Else Dim OrigWorkSide As Integer = 0 EgtGetMachiningParam(MCH_MP.WORKSIDE, OrigWorkSide) OrigWorkSide = IdNameStruct.IndFromId(OrigWorkSide, WorkSideList) m_IsModifiedSelectedWorkSide = value <> OrigWorkSide RaiseEvent m_IsModified(IsModified()) End If End If End If End Set End Property 'ObservableCollection che contiene le variabili per il combobox HeadSide Private m_HeadSideList As New ObservableCollection(Of Object)({New IdNameStruct(MCH_SAW_HS.LEFT, EgtMsg(MSG_MACHININGDB + 121)), New IdNameStruct(MCH_SAW_HS.RIGHT, EgtMsg(MSG_MACHININGDB + 122))}) Public ReadOnly Property HeadSideList As ObservableCollection(Of Object) Get Return m_HeadSideList End Get End Property Private m_IsModifiedSelectedHeadSide As Boolean = False Private m_SelectedHeadSide As Integer ' Proprietà che indica il HeadSide (MCH_SAW_HS) Public Property SelectedHeadSide As Integer Get If IsNothing(HeadSideList) Then Return Nothing Return m_SelectedHeadSide End Get Set(value As Integer) If value <> m_SelectedHeadSide Then If Not IsNothing(HeadSideList) Then m_SelectedHeadSide = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbHeadSide As Integer = 0 EgtMdbGetCurrMachiningParam(MCH_MP.HEADSIDE, DbHeadSide) DbHeadSide = IdNameStruct.IndFromId(DbHeadSide, HeadSideList) m_IsModifiedSelectedHeadSide = value <> DbHeadSide m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged("SelectedHeadSide") Else Dim OrigHeadSide As Integer = 0 EgtGetMachiningParam(MCH_MP.HEADSIDE, OrigHeadSide) OrigHeadSide = IdNameStruct.IndFromId(OrigHeadSide, HeadSideList) m_IsModifiedSelectedHeadSide = value <> OrigHeadSide RaiseEvent m_IsModified(IsModified()) End If End If End If End Set End Property 'ObservableCollection che contiene le variabili per il combobox LeadInType Private m_LeadInTypeList As ObservableCollection(Of Object) Public ReadOnly Property LeadInTypeList As ObservableCollection(Of Object) Get Select Case m_Type Case MCH_MY.SAWING m_LeadInTypeList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_SAW_LI.CENT, EgtMsg(MSG_MACHININGDB + 120)), New IdNameStruct(MCH_SAW_LI.STRICT, EgtMsg(MSG_MACHININGDB + 125)), New IdNameStruct(MCH_SAW_LI.OUT, EgtMsg(MSG_MACHININGDB + 126)), New IdNameStruct(MCH_SAW_LI.EXT_CENT, EgtMsg(MSG_MACHININGDB + 127)), New IdNameStruct(MCH_SAW_LI.EXT_OUT, EgtMsg(MSG_MACHININGDB + 128))}) Case MCH_MY.MILLING If m_MatType = MaterialType.STONE Then m_LeadInTypeList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_MIL_LI.NONE, EgtMsg(MSG_MACHININGDB + 129)), New IdNameStruct(MCH_MIL_LI.GLIDE, EgtMsg(MSG_MACHININGDB + 132))}) Else m_LeadInTypeList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_MIL_LI.NONE, EgtMsg(MSG_MACHININGDB + 129)), New IdNameStruct(MCH_MIL_LI.LINEAR, EgtMsg(MSG_MACHININGDB + 130)), New IdNameStruct(MCH_MIL_LI.TANGENT, EgtMsg(MSG_MACHININGDB + 131)), New IdNameStruct(MCH_MIL_LI.GLIDE, EgtMsg(MSG_MACHININGDB + 132)), New IdNameStruct(MCH_MIL_LI.ZIGZAG, EgtMsg(MSG_MACHININGDB + 142)), New IdNameStruct(MCH_MIL_LI.HELIX, EgtMsg(MSG_MACHININGDB + 133)), New IdNameStruct(MCH_MIL_LI.TG_PERP, EgtMsg(MSG_MACHININGDB + 188))}) End If Case MCH_MY.POCKETING m_LeadInTypeList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_POCK_LI.NONE, EgtMsg(MSG_MACHININGDB + 129)), New IdNameStruct(MCH_POCK_LI.GLIDE, EgtMsg(MSG_MACHININGDB + 132)), New IdNameStruct(MCH_POCK_LI.ZIGZAG, EgtMsg(MSG_MACHININGDB + 142)), New IdNameStruct(MCH_POCK_LI.HELIX, EgtMsg(MSG_MACHININGDB + 133))}) Case MCH_MY.SURFFINISHING m_LeadInTypeList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_SURFFIN_LI.NONE, EgtMsg(MSG_MACHININGSDBPAGE + 129)), New IdNameStruct(MCH_SURFFIN_LI.LINEAR, EgtMsg(MSG_MACHININGSDBPAGE + 130)), New IdNameStruct(MCH_SURFFIN_LI.TANGENT, EgtMsg(MSG_MACHININGSDBPAGE + 131))}) Case MCH_MY.SURFROUGHING m_LeadInTypeList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_SURFROU_LI.NONE, EgtMsg(MSG_MACHININGDB + 129)), New IdNameStruct(MCH_SURFROU_LI.GLIDE, EgtMsg(MSG_MACHININGDB + 132)), New IdNameStruct(MCH_SURFROU_LI.ZIGZAG, EgtMsg(MSG_MACHININGDB + 142)), New IdNameStruct(MCH_SURFROU_LI.HELIX, EgtMsg(MSG_MACHININGDB + 133))}) Case MCH_MY.WATERJETTING m_LeadInTypeList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_MIL_LI.NONE, EgtMsg(31329)), New IdNameStruct(MCH_MIL_LI.LINEAR, EgtMsg(31330)), New IdNameStruct(MCH_MIL_LI.TANGENT, EgtMsg(31331))}) Case Else m_LeadInTypeList = Nothing End Select Return m_LeadInTypeList End Get End Property Private m_IsModifiedSelectedLeadInType As Boolean = False Private m_SelectedLeadInType As Integer ' Proprietà che indica il LeadInType Public Property SelectedLeadInType As Integer Get If IsNothing(LeadInTypeList) Then Return Nothing Return m_SelectedLeadInType End Get Set(value As Integer) If value <> m_SelectedLeadInType Then If Not IsNothing(LeadInTypeList) Then m_SelectedLeadInType = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbLeadInType As Integer = 0 EgtMdbGetCurrMachiningParam(MCH_MP.LEADINTYPE, DbLeadInType) DbLeadInType = IdNameStruct.IndFromId(DbLeadInType, LeadInTypeList) m_IsModifiedSelectedLeadInType = value <> DbLeadInType m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged("SelectedLeadInType") Else Dim OrigLeadInType As Integer = 0 EgtGetMachiningParam(MCH_MP.LEADINTYPE, OrigLeadInType) OrigLeadInType = IdNameStruct.IndFromId(OrigLeadInType, LeadInTypeList) m_IsModifiedSelectedLeadInType = value <> OrigLeadInType RaiseEvent m_IsModified(IsModified()) End If End If End If End Set End Property 'ObservableCollection che contiene le variabili per il combobox ExtLinkType Private m_ExtLinkTypeList As New ObservableCollection(Of Object)({New IdNameStruct(MCH_SAW_EL.CENT, EgtMsg(MSG_MACHININGDB + 120)), New IdNameStruct(MCH_SAW_EL.EXT_PREV, EgtMsg(MSG_MACHININGDB + 134)), New IdNameStruct(MCH_SAW_EL.EXT_NEXT, EgtMsg(MSG_MACHININGDB + 135)), New IdNameStruct(MCH_SAW_EL.EXT_BOTH, EgtMsg(MSG_MACHININGDB + 136))}) Public ReadOnly Property ExtLinkTypeList As ObservableCollection(Of Object) Get Return m_ExtLinkTypeList End Get End Property Private m_IsModifiedSelectedExtLinkType As Boolean = False Private m_SelectedExtLinkType As Integer ' Proprietà che indica il ExtLinkType (MCH_SAW_EL) Public Property SelectedExtLinkType As Integer Get If IsNothing(ExtLinkTypeList) Then Return Nothing Return m_SelectedExtLinkType End Get Set(value As Integer) If value <> m_SelectedExtLinkType Then If Not IsNothing(ExtLinkTypeList) Then m_SelectedExtLinkType = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbExtLinkType As Integer = 0 EgtMdbGetCurrMachiningParam(MCH_MP.EXTLINKTYPE, DbExtLinkType) DbExtLinkType = IdNameStruct.IndFromId(DbExtLinkType, ExtLinkTypeList) m_IsModifiedSelectedExtLinkType = value <> DbExtLinkType m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged("SelectedExtLinkType") Else Dim OrigExtLinkType As Integer = 0 EgtGetMachiningParam(MCH_MP.EXTLINKTYPE, OrigExtLinkType) OrigExtLinkType = IdNameStruct.IndFromId(OrigExtLinkType, ExtLinkTypeList) m_IsModifiedSelectedExtLinkType = value <> OrigExtLinkType RaiseEvent m_IsModified(IsModified()) End If End If End If End Set End Property 'ObservableCollection che contiene le variabili per il combobox LeadOutType Private m_LeadOutTypeList As ObservableCollection(Of Object) Public ReadOnly Property LeadOutTypeList As ObservableCollection(Of Object) Get Select Case m_Type Case MCH_MY.SAWING m_LeadOutTypeList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_SAW_LO.CENT, EgtMsg(MSG_MACHININGDB + 120)), New IdNameStruct(MCH_SAW_LO.STRICT, EgtMsg(MSG_MACHININGDB + 125)), New IdNameStruct(MCH_SAW_LO.OUT, EgtMsg(MSG_MACHININGDB + 126)), New IdNameStruct(MCH_SAW_LO.EXT_CENT, EgtMsg(MSG_MACHININGDB + 127)), New IdNameStruct(MCH_SAW_LO.EXT_OUT, EgtMsg(MSG_MACHININGDB + 128))}) Case MCH_MY.MILLING If m_MatType = MaterialType.STONE Then m_LeadOutTypeList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_MIL_LO.NONE, EgtMsg(MSG_MACHININGDB + 129)), New IdNameStruct(MCH_MIL_LO.GLIDE, EgtMsg(MSG_MACHININGDB + 132)), New IdNameStruct(MCH_MIL_LO.AS_LI, EgtMsg(MSG_MACHININGDB + 137))}) Else m_LeadOutTypeList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_MIL_LO.NONE, EgtMsg(MSG_MACHININGDB + 129)), New IdNameStruct(MCH_MIL_LO.LINEAR, EgtMsg(MSG_MACHININGDB + 130)), New IdNameStruct(MCH_MIL_LO.TANGENT, EgtMsg(MSG_MACHININGDB + 131)), New IdNameStruct(MCH_MIL_LO.GLIDE, EgtMsg(MSG_MACHININGDB + 132)), New IdNameStruct(MCH_MIL_LO.AS_LI, EgtMsg(MSG_MACHININGDB + 137)), New IdNameStruct(MCH_MIL_LO.PERP_TG, EgtMsg(MSG_MACHININGDB + 189))}) End If Case MCH_MY.POCKETING m_LeadOutTypeList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_POCK_LO.NONE, EgtMsg(MSG_MACHININGDB + 129)), New IdNameStruct(MCH_POCK_LO.GLIDE, EgtMsg(MSG_MACHININGDB + 132))}) Case MCH_MY.SURFFINISHING m_LeadOutTypeList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_SURFFIN_LO.NONE, EgtMsg(MSG_MACHININGSDBPAGE + 129)), New IdNameStruct(MCH_SURFFIN_LO.LINEAR, EgtMsg(MSG_MACHININGSDBPAGE + 130)), New IdNameStruct(MCH_SURFFIN_LO.TANGENT, EgtMsg(MSG_MACHININGSDBPAGE + 131)), New IdNameStruct(MCH_SURFFIN_LO.AS_LI, EgtMsg(MSG_MACHININGSDBPAGE + 137))}) Case MCH_MY.SURFROUGHING m_LeadOutTypeList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_SURFROU_LO.NONE, EgtMsg(MSG_MACHININGDB + 129)), New IdNameStruct(MCH_SURFROU_LO.GLIDE, EgtMsg(MSG_MACHININGDB + 132))}) Case MCH_MY.WATERJETTING m_LeadOutTypeList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_MIL_LI.NONE, EgtMsg(31329)), New IdNameStruct(MCH_MIL_LI.LINEAR, EgtMsg(31330)), New IdNameStruct(MCH_MIL_LI.TANGENT, EgtMsg(31331)), New IdNameStruct(MCH_MIL_LO.AS_LI, EgtMsg(31337))}) Case Else m_LeadOutTypeList = Nothing End Select Return m_LeadOutTypeList End Get End Property Private m_IsModifiedSelectedLeadOutType As Boolean = False Private m_SelectedLeadOutType As Integer ' Proprietà che indica il LeadOutType Public Property SelectedLeadOutType As Integer Get If IsNothing(LeadOutTypeList) Then Return Nothing Return m_SelectedLeadOutType End Get Set(value As Integer) If value <> m_SelectedLeadOutType Then If Not IsNothing(LeadOutTypeList) Then m_SelectedLeadOutType = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbLeadOutType As Integer = 0 EgtMdbGetCurrMachiningParam(MCH_MP.LEADOUTTYPE, DbLeadOutType) DbLeadOutType = IdNameStruct.IndFromId(DbLeadOutType, LeadOutTypeList) m_IsModifiedSelectedLeadOutType = value <> DbLeadOutType m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged("SelectedLeadOutType") Else Dim OrigLeadOutType As Integer = 0 EgtGetMachiningParam(MCH_MP.LEADOUTTYPE, OrigLeadOutType) OrigLeadOutType = IdNameStruct.IndFromId(OrigLeadOutType, LeadOutTypeList) m_IsModifiedSelectedLeadOutType = value <> OrigLeadOutType RaiseEvent m_IsModified(IsModified()) End If End If End If End Set End Property 'ObservableCollection che contiene le variabili per il combobox CurveUse Private m_CurveUseList As ObservableCollection(Of Object) Public ReadOnly Property CurveUseList As ObservableCollection(Of Object) Get If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_SAWINGONARCS, 0, MachiningDbWindowVM.m_sMachineIniPath) <> 0 Then m_CurveUseList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_SAW_CU.SKIP, EgtMsg(MSG_MACHININGDB + 138)), New IdNameStruct(MCH_SAW_CU.APPROX, EgtMsg(MSG_MACHININGDB + 139)), New IdNameStruct(MCH_SAW_CU.CONVEX, EgtMsg(MSG_MACHININGDB + 140)), New IdNameStruct(MCH_SAW_CU.KEEP, EgtMsg(MSG_MACHININGDB + 141))}) Else m_CurveUseList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_SAW_CU.SKIP, EgtMsg(MSG_MACHININGDB + 138)), New IdNameStruct(MCH_SAW_CU.APPROX, EgtMsg(MSG_MACHININGDB + 139)), New IdNameStruct(MCH_SAW_CU.CONVEX, EgtMsg(MSG_MACHININGDB + 140))}) End If Return m_CurveUseList End Get End Property Private m_IsModifiedSelectedCurveUse As Boolean = False Private m_SelectedCurveUse As Integer ' Proprietà che indica il CurveUse (MCH_SAW_CU) Public Property SelectedCurveUse As Integer Get If IsNothing(CurveUseList) Then Return Nothing Return m_SelectedCurveUse End Get Set(value As Integer) If value <> m_SelectedCurveUse Then If Not IsNothing(CurveUseList) Then m_SelectedCurveUse = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbCurveUse As Integer = 0 EgtMdbGetCurrMachiningParam(MCH_MP.CURVEUSE, DbCurveUse) DbCurveUse = IdNameStruct.IndFromId(DbCurveUse, CurveUseList) m_IsModifiedSelectedCurveUse = value <> DbCurveUse m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged("SelectedCurveUse") Else Dim OrigCurveUse As Integer = 0 EgtGetMachiningParam(MCH_MP.CURVEUSE, OrigCurveUse) OrigCurveUse = IdNameStruct.IndFromId(OrigCurveUse, CurveUseList) m_IsModifiedSelectedCurveUse = value <> OrigCurveUse RaiseEvent m_IsModified(IsModified()) End If End If End If End Set End Property 'ObservableCollection che contiene le variabili per il combobox StepType Private m_StepTypeList As ObservableCollection(Of Object) Public ReadOnly Property StepTypeList As ObservableCollection(Of Object) Get Select Case m_Type Case MCH_MY.SAWING m_StepTypeList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_SAW_ST.ZIGZAG, EgtMsg(MSG_MACHININGDB + 142)), New IdNameStruct(MCH_SAW_ST.ONEWAY, EgtMsg(MSG_MACHININGDB + 143)), New IdNameStruct(MCH_SAW_ST.TOANDFROM, EgtMsg(MSG_MACHININGDB + 145))}) Case MCH_MY.MILLING m_StepTypeList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_MIL_ST.ZIGZAG, EgtMsg(MSG_MACHININGDB + 142)), New IdNameStruct(MCH_MIL_ST.ONEWAY, EgtMsg(MSG_MACHININGDB + 143)), New IdNameStruct(MCH_MIL_ST.SPIRAL, EgtMsg(MSG_MACHININGDB + 144))}) Case MCH_MY.MORTISING m_StepTypeList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_MORTISE_ST.ZIGZAG, EgtMsg(MSG_MACHININGDB + 142)), New IdNameStruct(MCH_MORTISE_ST.ONEWAY, EgtMsg(MSG_MACHININGDB + 143))}) Case MCH_MY.SAWROUGHING, MCH_MY.SAWFINISHING m_StepTypeList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_SAWROU_ST.ZIGZAG, EgtMsg(MSG_MACHININGDB + 142)), New IdNameStruct(MCH_SAWROU_ST.ONEWAY, EgtMsg(MSG_MACHININGDB + 143))}) Case Else m_StepTypeList = Nothing End Select Return m_StepTypeList End Get End Property Private m_IsModifiedSelectedStepType As Boolean = False Private m_SelectedStepType As Integer ' Proprietà che indica lo StepType Public Property SelectedStepType As Integer Get If IsNothing(StepTypeList) Then Return Nothing Return m_SelectedStepType End Get Set(value As Integer) If value <> m_SelectedStepType Then If Not IsNothing(StepTypeList) Then m_SelectedStepType = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbStepType As Integer = 0 EgtMdbGetCurrMachiningParam(MCH_MP.STEPTYPE, DbStepType) DbStepType = IdNameStruct.IndFromId(DbStepType, StepTypeList) m_IsModifiedSelectedStepType = value <> DbStepType m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged("SelectedStepType") Else Dim OrigStepType As Integer = 0 EgtGetMachiningParam(MCH_MP.STEPTYPE, OrigStepType) OrigStepType = IdNameStruct.IndFromId(OrigStepType, StepTypeList) m_IsModifiedSelectedStepType = value <> OrigStepType RaiseEvent m_IsModified(IsModified()) End If End If End If End Set End Property 'ObservableCollection che contiene le variabili per il combobox SubType Private m_SubTypeList As ObservableCollection(Of Object) Public ReadOnly Property SubTypeList As ObservableCollection(Of Object) Get Select Case m_Type Case MCH_MY.POCKETING m_SubTypeList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_POCK_SUB.ZIGZAG, EgtMsg(MSG_MACHININGDB + 142)), New IdNameStruct(MCH_POCK_SUB.ONEWAY, EgtMsg(MSG_MACHININGDB + 143)), New IdNameStruct(MCH_POCK_SUB.SPIRALIN, EgtMsg(MSG_MACHININGDB + 148)), New IdNameStruct(MCH_POCK_SUB.SPIRALOUT, EgtMsg(MSG_MACHININGDB + 149))}) Case MCH_MY.SAWFINISHING m_SubTypeList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_SAWFIN_SUB.ALONG, EgtMsg(MSG_MACHININGDB + 146)), New IdNameStruct(MCH_SAWFIN_SUB.ACROSS, EgtMsg(MSG_MACHININGDB + 147))}) Case MCH_MY.GENMACHINING Dim Index = 1 Dim sGenScript As String = String.Empty m_SubTypeList = New ObservableCollection(Of Object) While EgtUILib.GetPrivateProfileString(S_GENMACHINING, K_GENSCRIPT & Index, "", sGenScript, MachiningDbWindowVM.m_sMachineIniPath) > 0 m_SubTypeList.Add(New IdNameStruct(Index, sGenScript)) Index += 1 End While If m_SubTypeList.Count = 0 Then m_SubTypeList.Add(New IdNameStruct(0, "")) End If Case MCH_MY.SURFFINISHING m_SubTypeList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_SURFFIN_SUB.ZIGZAG, EgtMsg(MSG_MACHININGSDBPAGE + 142)), New IdNameStruct(MCH_SURFFIN_SUB.ONEWAY, EgtMsg(MSG_MACHININGSDBPAGE + 143)), New IdNameStruct(MCH_SURFFIN_SUB.SPIRALIN, EgtMsg(MSG_MACHININGSDBPAGE + 148)), New IdNameStruct(MCH_SURFFIN_SUB.SPIRALOUT, EgtMsg(MSG_MACHININGSDBPAGE + 149))}) Case MCH_MY.SURFROUGHING m_SubTypeList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_SURFFIN_SUB.ZIGZAG, EgtMsg(MSG_MACHININGSDBPAGE + 142)), New IdNameStruct(MCH_SURFFIN_SUB.ONEWAY, EgtMsg(MSG_MACHININGSDBPAGE + 143)), New IdNameStruct(MCH_SURFFIN_SUB.SPIRALIN, EgtMsg(MSG_MACHININGSDBPAGE + 148)), New IdNameStruct(MCH_SURFFIN_SUB.SPIRALOUT, EgtMsg(MSG_MACHININGSDBPAGE + 149))}) Case MCH_MY.FIVEAXISMILLING Dim Index = 1 Dim s5AxScript As String = String.Empty m_SubTypeList = New ObservableCollection(Of Object) While EgtUILib.GetPrivateProfileString(S_5AXMILLING, K_5AXSCRIPT & Index, "", s5AxScript, MachiningDbWindowVM.m_sMachineIniPath) > 0 m_SubTypeList.Add(New IdNameStruct(Index, s5AxScript)) Index += 1 End While If m_SubTypeList.Count = 0 Then m_SubTypeList.Add(New IdNameStruct(0, "")) End If ' !!! Case MCH_MY.SURFROUGHING m_SubTypeList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_SURFFIN_SUB.ZIGZAG, EgtMsg(MSG_MACHININGSDBPAGE + 142)), New IdNameStruct(MCH_SURFFIN_SUB.ONEWAY, EgtMsg(MSG_MACHININGSDBPAGE + 143)), New IdNameStruct(MCH_SURFFIN_SUB.SPIRALIN, EgtMsg(MSG_MACHININGSDBPAGE + 148)), New IdNameStruct(MCH_SURFFIN_SUB.SPIRALOUT, EgtMsg(MSG_MACHININGSDBPAGE + 149))}) ' !!! Case Else m_SubTypeList = Nothing End Select Return m_SubTypeList End Get End Property Private m_IsModifiedSelectedSubType As Boolean = False Private m_SelectedSubType As Integer ' Proprietà che indica il SubType Public Property SelectedSubType As Integer Get If IsNothing(SubTypeList) Then Return Nothing Return m_SelectedSubType End Get Set(value As Integer) If value <> m_SelectedSubType Then If Not IsNothing(SubTypeList) Then m_SelectedSubType = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbSubType As Integer = 0 EgtMdbGetCurrMachiningParam(MCH_MP.SUBTYPE, DbSubType) DbSubType = IdNameStruct.IndFromId(DbSubType, SubTypeList) m_IsModifiedSelectedSubType = value <> DbSubType m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged("SelectedSubType") Else Dim OrigSubType As Integer = 0 EgtGetMachiningParam(MCH_MP.SUBTYPE, OrigSubType) OrigSubType = IdNameStruct.IndFromId(OrigSubType, SubTypeList) m_IsModifiedSelectedSubType = value <> OrigSubType RaiseEvent m_IsModified(IsModified()) End If End If End If End Set End Property 'ObservableCollection che contiene le variabili per il combobox LeadLinkType Private m_LeadLinkTypeList As ObservableCollection(Of Object) Public ReadOnly Property LeadLinkTypeList As ObservableCollection(Of Object) Get Select Case m_Type Case MCH_MY.SAWROUGHING m_LeadLinkTypeList = New ObservableCollection(Of Object)({New IdNameStruct(MCH_SAWROU_LL.CENT, EgtMsg(MSG_MACHININGDB + 120)), New IdNameStruct(MCH_SAWROU_LL.EXT, EgtMsg(MSG_MACHININGDB + 123))}) Case MCH_MY.SAWFINISHING m_LeadLinkTypeList = New ObservableCollection(Of Object)({New IdNameStruct(MCH_SAWFIN_LL.STD, EgtMsg(MSG_MACHININGDB + 124)), New IdNameStruct(MCH_SAWFIN_LL.CENT, EgtMsg(MSG_MACHININGDB + 120)), New IdNameStruct(MCH_SAWFIN_LL.EXT, EgtMsg(MSG_MACHININGDB + 123))}) Case Else m_LeadLinkTypeList = Nothing End Select Return m_LeadLinkTypeList End Get End Property Private m_IsModifiedSelectedLeadLinkType As Boolean = False Private m_SelectedLeadLinkType As Integer ' Proprietà che indica il LeadLinkType Public Property SelectedLeadLinkType As Integer Get If IsNothing(LeadLinkTypeList) Then Return Nothing Return m_SelectedLeadLinkType End Get Set(value As Integer) If value <> m_SelectedLeadLinkType Then If Not IsNothing(LeadLinkTypeList) Then m_SelectedLeadLinkType = IdNameStruct.IndFromId(value, LeadLinkTypeList) If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbLeadLinkType As Integer = 0 EgtMdbGetCurrMachiningParam(MCH_MP.LEADLINKTYPE, DbLeadLinkType) DbLeadLinkType = IdNameStruct.IndFromId(DbLeadLinkType, LeadLinkTypeList) m_IsModifiedSelectedLeadLinkType = value <> DbLeadLinkType m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged("SelectedLeadLinkType") Else Dim OrigLeadLinkType As Integer = 0 EgtGetMachiningParam(MCH_MP.LEADLINKTYPE, OrigLeadLinkType) OrigLeadLinkType = IdNameStruct.IndFromId(OrigLeadLinkType, LeadLinkTypeList) m_IsModifiedSelectedLeadLinkType = value <> OrigLeadLinkType RaiseEvent m_IsModified(IsModified()) End If End If End If End Set End Property 'ObservableCollection che contiene le variabili per il combobox FaceUseType Private m_FaceUseTypeList As ObservableCollection(Of Object) Public ReadOnly Property FaceUseTypeList As ObservableCollection(Of Object) Get Select Case m_Type Case MCH_MY.MORTISING m_FaceUseTypeList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_MIL_FU.NONE, EgtMsg(MSG_MACHININGDB + 153)), New IdNameStruct(MCH_MIL_FU.PARAL_DOWN, EgtMsg(MSG_MACHININGDB + 157) & EgtMsg(MSG_MACHININGDB + 154)), New IdNameStruct(MCH_MIL_FU.PARAL_TOP, EgtMsg(MSG_MACHININGDB + 158) & EgtMsg(MSG_MACHININGDB + 154)), New IdNameStruct(MCH_MIL_FU.PARAL_FRONT, EgtMsg(MSG_MACHININGDB + 159) & EgtMsg(MSG_MACHININGDB + 154)), New IdNameStruct(MCH_MIL_FU.PARAL_BACK, EgtMsg(MSG_MACHININGDB + 160) & EgtMsg(MSG_MACHININGDB + 154)), New IdNameStruct(MCH_MIL_FU.PARAL_LEFT, EgtMsg(MSG_MACHININGDB + 161) & EgtMsg(MSG_MACHININGDB + 154)), New IdNameStruct(MCH_MIL_FU.PARAL_RIGHT, EgtMsg(MSG_MACHININGDB + 162) & EgtMsg(MSG_MACHININGDB + 154))}) Case Else m_FaceUseTypeList = New ObservableCollection(Of Object)( {New IdNameStruct(MCH_MIL_FU.NONE, EgtMsg(MSG_MACHININGDB + 153)), New IdNameStruct(MCH_MIL_FU.PARAL_DOWN, EgtMsg(MSG_MACHININGDB + 157) & EgtMsg(MSG_MACHININGDB + 154)), New IdNameStruct(MCH_MIL_FU.PARAL_TOP, EgtMsg(MSG_MACHININGDB + 158) & EgtMsg(MSG_MACHININGDB + 154)), New IdNameStruct(MCH_MIL_FU.PARAL_FRONT, EgtMsg(MSG_MACHININGDB + 159) & EgtMsg(MSG_MACHININGDB + 154)), New IdNameStruct(MCH_MIL_FU.PARAL_BACK, EgtMsg(MSG_MACHININGDB + 160) & EgtMsg(MSG_MACHININGDB + 154)), New IdNameStruct(MCH_MIL_FU.PARAL_LEFT, EgtMsg(MSG_MACHININGDB + 161) & EgtMsg(MSG_MACHININGDB + 154)), New IdNameStruct(MCH_MIL_FU.PARAL_RIGHT, EgtMsg(MSG_MACHININGDB + 162) & EgtMsg(MSG_MACHININGDB + 154)), New IdNameStruct(MCH_MIL_FU.ORTHO_DOWN, EgtMsg(MSG_MACHININGDB + 157) & EgtMsg(MSG_MACHININGDB + 155)), New IdNameStruct(MCH_MIL_FU.ORTHO_TOP, EgtMsg(MSG_MACHININGDB + 158) & EgtMsg(MSG_MACHININGDB + 155)), New IdNameStruct(MCH_MIL_FU.ORTHO_FRONT, EgtMsg(MSG_MACHININGDB + 159) & EgtMsg(MSG_MACHININGDB + 155)), New IdNameStruct(MCH_MIL_FU.ORTHO_BACK, EgtMsg(MSG_MACHININGDB + 160) & EgtMsg(MSG_MACHININGDB + 155)), New IdNameStruct(MCH_MIL_FU.ORTHO_LEFT, EgtMsg(MSG_MACHININGDB + 161) & EgtMsg(MSG_MACHININGDB + 155)), New IdNameStruct(MCH_MIL_FU.ORTHO_RIGHT, EgtMsg(MSG_MACHININGDB + 162) & EgtMsg(MSG_MACHININGDB + 155)), New IdNameStruct(MCH_MIL_FU.ORTHO_CONT, EgtMsg(MSG_MACHININGDB + 163) & EgtMsg(MSG_MACHININGDB + 155)), New IdNameStruct(MCH_MIL_FU.ORTUP_DOWN, EgtMsg(MSG_MACHININGDB + 157) & EgtMsg(MSG_MACHININGDB + 156)), New IdNameStruct(MCH_MIL_FU.ORTUP_TOP, EgtMsg(MSG_MACHININGDB + 158) & EgtMsg(MSG_MACHININGDB + 156)), New IdNameStruct(MCH_MIL_FU.ORTUP_FRONT, EgtMsg(MSG_MACHININGDB + 159) & EgtMsg(MSG_MACHININGDB + 156)), New IdNameStruct(MCH_MIL_FU.ORTUP_BACK, EgtMsg(MSG_MACHININGDB + 160) & EgtMsg(MSG_MACHININGDB + 156)), New IdNameStruct(MCH_MIL_FU.ORTUP_LEFT, EgtMsg(MSG_MACHININGDB + 161) & EgtMsg(MSG_MACHININGDB + 156)), New IdNameStruct(MCH_MIL_FU.ORTUP_RIGHT, EgtMsg(MSG_MACHININGDB + 162) & EgtMsg(MSG_MACHININGDB + 156)), New IdNameStruct(MCH_MIL_FU.ORTUP_CONT, EgtMsg(MSG_MACHININGDB + 163) & EgtMsg(MSG_MACHININGDB + 156))}) End Select Return m_FaceUseTypeList End Get End Property Public m_IsModifiedSelectedFaceUseType As Boolean = False Private m_SelectedFaceUseType As Integer = 0 ' Proprietà che indica il FaceUseType (MCH_MIL_FU) Public Property SelectedFaceUseType As Integer Get If IsNothing(FaceUseTypeList) Then Return Nothing Return m_SelectedFaceUseType End Get Set(value As Integer) If value <> m_SelectedFaceUseType Then If Not IsNothing(FaceUseTypeList) Then m_SelectedFaceUseType = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim OrigFaceUseType As Integer = 0 EgtMdbGetCurrMachiningParam(MCH_MP.FACEUSE, OrigFaceUseType) OrigFaceUseType = IdNameStruct.IndFromId(OrigFaceUseType, FaceUseTypeList) m_IsModifiedSelectedFaceUseType = value <> OrigFaceUseType m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged("SelectedFaceUseType") Else Dim OrigFaceUseType As Integer = 0 EgtGetMachiningParam(MCH_MP.FACEUSE, OrigFaceUseType) OrigFaceUseType = IdNameStruct.IndFromId(OrigFaceUseType, FaceUseTypeList) m_IsModifiedSelectedFaceUseType = value <> OrigFaceUseType RaiseEvent m_IsModified(IsModified()) End If End If End If End Set End Property 'ObservableCollection che contiene le variabili per il combobox SolChoiceType Private m_SolChoiceTypeList As New ObservableCollection(Of Object)( {New IdNameStruct(MCH_SCC.NONE, EgtMsg(MSG_MACHININGDB + 105)), New IdNameStruct(MCH_SCC.STD, EgtMsg(MSG_MACHININGDB + 106)), New IdNameStruct(MCH_SCC.OPPOSITE, EgtMsg(MSG_MACHININGDB + 107)), New IdNameStruct(MCH_SCC.ADIR_XP, EgtMsg(MSG_MACHININGDB + 108)), New IdNameStruct(MCH_SCC.ADIR_XM, EgtMsg(MSG_MACHININGDB + 109)), New IdNameStruct(MCH_SCC.ADIR_YP, EgtMsg(MSG_MACHININGDB + 110)), New IdNameStruct(MCH_SCC.ADIR_YM, EgtMsg(MSG_MACHININGDB + 111)), New IdNameStruct(MCH_SCC.ADIR_ZP, EgtMsg(MSG_MACHININGDB + 112)), New IdNameStruct(MCH_SCC.ADIR_ZM, EgtMsg(MSG_MACHININGDB + 113)), New IdNameStruct(MCH_SCC.ADIR_NEAR, EgtMsg(MSG_MACHININGDB + 114)), New IdNameStruct(MCH_SCC.ADIR_FAR, EgtMsg(MSG_MACHININGDB + 115))}) Public ReadOnly Property SolChoiceTypeList As ObservableCollection(Of Object) Get Return m_SolChoiceTypeList End Get End Property Private m_IsModifiedSelectedSolChoiceType As Boolean = False Private m_SelectedSolChoiceType As Integer ' Proprietà che indica il SolChoiceType (MCH_SAW_EL) Public Property SelectedSolChoiceType As Integer Get If IsNothing(SolChoiceTypeList) Then Return Nothing Return m_SelectedSolChoiceType End Get Set(value As Integer) If value <> m_SelectedSolChoiceType Then If Not IsNothing(SolChoiceTypeList) Then m_SelectedSolChoiceType = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbSolChoiceType As Integer = 0 EgtMdbGetCurrMachiningParam(MCH_MP.SOLCHOICETYPE, DbSolChoiceType) DbSolChoiceType = IdNameStruct.IndFromId(DbSolChoiceType, SolChoiceTypeList) m_IsModifiedSelectedSolChoiceType = value <> DbSolChoiceType m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged("SelectedSolChoiceType") Else Dim OrigSolChoiceType As Integer = 0 EgtGetMachiningParam(MCH_MP.SOLCHOICETYPE, OrigSolChoiceType) OrigSolChoiceType = IdNameStruct.IndFromId(OrigSolChoiceType, SolChoiceTypeList) m_IsModifiedSelectedSolChoiceType = value <> OrigSolChoiceType RaiseEvent m_IsModified(IsModified()) End If End If End If End Set End Property Private m_IsModifiedSpeed As Boolean = False Private m_Speed As String ''' ''' Property that read and write to the Machining's database the Speed ''' Public Property Speed As String Get Return m_Speed End Get Set(value As String) If value <> m_Speed Then m_Speed = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbSpeed As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.SPEED, DbSpeed) StringToDouble(value, dValue) m_IsModifiedSpeed = Math.Abs(dValue - DbSpeed) > 10 * EPS_ANG_SMALL If SelectedTool >= 0 And SelectedTool < m_ToolList.Count Then ' Setto l'Utensile corrente a quello selezionato e leggo il parametro corrispondente dal Db Utensili EgtTdbSetCurrTool(m_ToolList(SelectedTool)) Dim dVal As Double = 0 EgtTdbGetCurrToolParam(MCH_TP.SPEED, dVal) ' Se il valore del parametro corrispondente è uguale a quello appena immesso setto il bottone a "premuto" altrimenti a "non premuto" SpeedChecked = Math.Abs(dVal - dValue) < 10 * EPS_ANG_SMALL End If If Not GetValidationError("Speed") Or GetNonNumericTextBox(m_Speed) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If Else Dim OrigSpeed As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.SPEED, OrigSpeed) StringToDouble(value, dValue) m_IsModifiedSpeed = Math.Abs(dValue - OrigSpeed) > 10 * EPS_ANG_SMALL If Not GetValidationError("Speed") Or GetNonNumericTextBox(m_Speed) Then RaiseEvent m_ErrorOnOperation(True) Else RaiseEvent m_ErrorOnOperation(Not IsValid) End If RaiseEvent m_IsModified(IsModified()) End If NotifyPropertyChanged("Speed") End If End Set End Property Private m_IsModifiedFeed As Boolean = False Private m_Feed As String ''' ''' Property that read and write to the Machining's database the Feed ''' Public Property Feed As String Get Return m_Feed End Get Set(value As String) If value <> m_Feed Then m_Feed = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbFeed As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.FEED, DbFeed) StringToLen(value, dValue) m_IsModifiedFeed = Math.Abs(dValue - DbFeed) > 10 * EPS_SMALL If SelectedTool >= 0 And SelectedTool < m_ToolList.Count Then ' Setto l'Utensile corrente a quello selezionato e leggo il parametro corrispondente dal Db Utensili EgtTdbSetCurrTool(m_ToolList(SelectedTool)) Dim dVal As Double = 0 EgtTdbGetCurrToolParam(MCH_TP.FEED, dVal) ' Se il valore del parametro corrispondente è uguale a quello appena immesso setto il bottone a "premuto" altrimenti a "non premuto" FeedChecked = Math.Abs(dVal - dValue) < 10 * EPS_ANG_SMALL End If m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged("Feed") Else Dim OrigFeed As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.FEED, OrigFeed) StringToLen(value, dValue) m_IsModifiedFeed = Math.Abs(dValue - OrigFeed) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If If GetNonNumericTextBox(m_Feed) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("Feed") End If End Set End Property Private m_IsModifiedStartFeed As Boolean = False Private m_StartFeed As String ''' ''' Property that read and write to the Machining's database the Start Feed ''' Public Property StartFeed As String Get Return m_StartFeed End Get Set(value As String) If value <> m_StartFeed Then m_StartFeed = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbStartFeed As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.STARTFEED, DbStartFeed) StringToLen(value, dValue) m_IsModifiedStartFeed = Math.Abs(dValue - DbStartFeed) > 10 * EPS_SMALL If SelectedTool >= 0 And SelectedTool < m_ToolList.Count Then ' Setto l'Utensile corrente a quello selezionato e leggo il parametro corrispondente dal Db Utensili EgtTdbSetCurrTool(m_ToolList(SelectedTool)) Dim dVal As Double = 0 EgtTdbGetCurrToolParam(MCH_TP.STARTFEED, dVal) ' Se il valore del parametro corrispondente è uguale a quello appena immesso setto il bottone a "premuto" altrimenti a "non premuto" StartFeedChecked = Math.Abs(dVal - dValue) < 10 * EPS_ANG_SMALL End If m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged("StartFeed") Else Dim OrigStartFeed As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.STARTFEED, OrigStartFeed) StringToLen(value, dValue) m_IsModifiedStartFeed = Math.Abs(dValue - OrigStartFeed) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If If GetNonNumericTextBox(m_StartFeed) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("StartFeed") End If End Set End Property Private m_IsModifiedEndFeed As Boolean = False Private m_EndFeed As String ''' ''' Property that read and write to the Machining's database the End Feed ''' Public Property EndFeed As String Get Return m_EndFeed End Get Set(value As String) If value <> m_EndFeed Then m_EndFeed = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbEndFeed As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.ENDFEED, DbEndFeed) StringToLen(value, dValue) m_IsModifiedEndFeed = Math.Abs(dValue - DbEndFeed) > 10 * EPS_SMALL If SelectedTool >= 0 And SelectedTool < m_ToolList.Count Then ' Setto l'Utensile corrente a quello selezionato e leggo il parametro corrispondente dal Db Utensili EgtTdbSetCurrTool(m_ToolList(SelectedTool)) Dim dVal As Double = 0 EgtTdbGetCurrToolParam(MCH_TP.ENDFEED, dVal) ' Se il valore del parametro corrispondente è uguale a quello appena immesso setto il bottone a "premuto" altrimenti a "non premuto" EndFeedChecked = Math.Abs(dVal - dValue) < 10 * EPS_ANG_SMALL End If m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged("EndFeed") Else Dim OrigEndFeed As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.ENDFEED, OrigEndFeed) StringToLen(value, dValue) m_IsModifiedEndFeed = Math.Abs(dValue - OrigEndFeed) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If If GetNonNumericTextBox(m_EndFeed) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("EndFeed") End If End Set End Property Private m_IsModifiedTipFeed As Boolean = False Private m_TipFeed As String ''' ''' Property that read and write to the Machining's database the Tip Feed ''' Public Property TipFeed As String Get Return m_TipFeed End Get Set(value As String) If value <> m_TipFeed Then m_TipFeed = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbTipFeed As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.TIPFEED, DbTipFeed) StringToLen(value, dValue) m_IsModifiedTipFeed = Math.Abs(dValue - DbTipFeed) > 10 * EPS_SMALL If SelectedTool >= 0 And SelectedTool < m_ToolList.Count Then ' Setto l'Utensile corrente a quello selezionato e leggo il parametro corrispondente dal Db Utensili EgtTdbSetCurrTool(m_ToolList(SelectedTool)) Dim dVal As Double = 0 EgtTdbGetCurrToolParam(MCH_TP.TIPFEED, dVal) ' Se il valore del parametro corrispondente è uguale a quello appena immesso setto il bottone a "premuto" altrimenti a "non premuto" TipFeedChecked = Math.Abs(dVal - dValue) < 10 * EPS_ANG_SMALL End If m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged("TipFeed") Else Dim OrigTipFeed As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.TIPFEED, OrigTipFeed) StringToLen(value, dValue) m_IsModifiedTipFeed = Math.Abs(dValue - OrigTipFeed) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If If GetNonNumericTextBox(m_TipFeed) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("TipFeed") End If End Set End Property Private m_IsModifiedBackFeed As Boolean = False Private m_BackFeed As String ''' ''' Property that read and write to the Machining's database the Tip Feed ''' Public Property BackFeed As String Get Return m_BackFeed End Get Set(value As String) If value <> m_BackFeed Then m_BackFeed = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbBackFeed As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.BACKFEED, DbBackFeed) StringToLen(value, dValue) m_IsModifiedBackFeed = Math.Abs(dValue - DbBackFeed) > 10 * EPS_SMALL If SelectedTool >= 0 And SelectedTool < m_ToolList.Count Then ' Setto l'Utensile corrente a quello selezionato e leggo il parametro corrispondente dal Db Utensili EgtTdbSetCurrTool(m_ToolList(SelectedTool)) Dim dVal As Double = 0 EgtTdbGetCurrToolParam(MCH_TP.FEED, dVal) ' Se il valore del parametro corrispondente è uguale a quello appena immesso setto il bottone a "premuto" altrimenti a "non premuto" BackFeedChecked = Math.Abs(dVal - dValue) < 10 * EPS_ANG_SMALL End If m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged("BackFeed") Else Dim OrigBackFeed As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.BACKFEED, OrigBackFeed) StringToLen(value, dValue) m_IsModifiedBackFeed = Math.Abs(dValue - OrigBackFeed) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If If GetNonNumericTextBox(m_BackFeed) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("BackFeed") End If End Set End Property Private m_IsModifiedSideAngFeed As Boolean = False Private m_SideAngFeed As String ''' ''' Property that read and write to the Machining's database the Tip Feed ''' Public Property SideAngFeed As String Get Return m_SideAngFeed End Get Set(value As String) If value <> m_SideAngFeed Then m_SideAngFeed = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbSideAngFeed As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.SIDEANGFEED, DbSideAngFeed) StringToLen(value, dValue) m_IsModifiedSideAngFeed = Math.Abs(dValue - DbSideAngFeed) > 10 * EPS_SMALL If SelectedTool >= 0 And SelectedTool < m_ToolList.Count Then ' Setto l'Utensile corrente a quello selezionato e leggo il parametro corrispondente dal Db Utensili EgtTdbSetCurrTool(m_ToolList(SelectedTool)) Dim dVal As Double = 0 EgtTdbGetCurrToolParam(MCH_TP.FEED, dVal) ' Se il valore del parametro corrispondente è uguale a quello appena immesso setto il bottone a "premuto" altrimenti a "non premuto" SideAngFeedChecked = Math.Abs(dVal - dValue) < 10 * EPS_ANG_SMALL End If m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged("SideAngFeed") Else Dim OrigSideAngFeed As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.SIDEANGFEED, OrigSideAngFeed) StringToLen(value, dValue) m_IsModifiedSideAngFeed = Math.Abs(dValue - OrigSideAngFeed) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If If GetNonNumericTextBox(m_SideAngFeed) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("SideAngFeed") End If End Set End Property Private m_IsModifiedThicknessFeed As Boolean = False Private m_ThicknessFeed As String ''' ''' Property that read and write to the Machining's database the Thickness Feed ''' Public Property ThicknessFeed As String Get Return m_ThicknessFeed End Get Set(value As String) If value <> m_ThicknessFeed Then m_ThicknessFeed = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbThicknessFeed As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.THICKREF, DbThicknessFeed) StringToLen(value, dValue) m_IsModifiedThicknessFeed = Math.Abs(dValue - DbThicknessFeed) > 10 * EPS_SMALL If GetNonNumericTextBox(m_ThicknessFeed) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If Else Dim OrigThicknessFeed As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.THICKREF, OrigThicknessFeed) StringToLen(value, dValue) m_IsModifiedThicknessFeed = Math.Abs(dValue - OrigThicknessFeed) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If NotifyPropertyChanged("ThicknessFeed") End If End Set End Property Private m_IsModifiedOffSr As Boolean = False Private m_OffSr As String ''' ''' Property that read and write to the Machining's database the Offset Sr ''' Public Property OffSr As String Get Return m_OffSr End Get Set(value As String) If value <> m_OffSr Then m_OffSr = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbOffSr As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.OFFSR, DbOffSr) StringToLen(value, dValue) m_IsModifiedOffSr = Math.Abs(dValue - DbOffSr) > 10 * EPS_SMALL If SelectedTool >= 0 And SelectedTool < m_ToolList.Count Then ' Setto l'Utensile corrente a quello selezionato e leggo il parametro corrispondente dal Db Utensili EgtTdbSetCurrTool(m_ToolList(SelectedTool)) Dim dVal As Double = 0 EgtTdbGetCurrToolParam(MCH_TP.RADOFFSET, dVal) ' Se il valore del parametro corrispondente è uguale a quello appena immesso setto il bottone a "premuto" altrimenti a "non premuto" OffSrChecked = Math.Abs(dVal - dValue) < 10 * EPS_ANG_SMALL End If m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged("OffSr") Else Dim OrigOffSr As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.OFFSR, OrigOffSr) StringToLen(value, dValue) m_IsModifiedOffSr = Math.Abs(dValue - OrigOffSr) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If If GetNonNumericTextBox(m_OffSr) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("OffSr") End If End Set End Property Private m_IsModifiedOffSl As Boolean = False Private m_OffSl As String ''' ''' Property that read and write to the Machining's database the Offset Sl ''' Public Property OffSl As String Get Return m_OffSl End Get Set(value As String) If value <> m_OffSl Then m_OffSl = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbOffSl As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.OFFSL, DbOffSl) StringToLen(value, dValue) m_IsModifiedOffSl = Math.Abs(dValue - DbOffSl) > 10 * EPS_SMALL If SelectedTool >= 0 And SelectedTool < m_ToolList.Count Then ' Setto l'Utensile corrente a quello selezionato e leggo il parametro corrispondente dal Db Utensili EgtTdbSetCurrTool(m_ToolList(SelectedTool)) Dim dVal As Double = 0 EgtTdbGetCurrToolParam(MCH_TP.LONOFFSET, dVal) ' Se il valore del parametro corrispondente è uguale a quello appena immesso setto il bottone a "premuto" altrimenti a "non premuto" OffSlChecked = Math.Abs(dVal - dValue) < 10 * EPS_ANG_SMALL End If m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged("OffSl") Else Dim OrigOffSl As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.OFFSL, OrigOffSl) StringToLen(value, dValue) m_IsModifiedOffSl = Math.Abs(dValue - OrigOffSl) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If If GetNonNumericTextBox(m_OffSl) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("OffSl") End If End Set End Property Private m_IsModifiedEpicyclesRad As Boolean = False Private m_EpicyclesRad As String ''' ''' Property that read and write to the Machining's database the Epicycles Rad ''' Public Property EpicyclesRad As String Get Return m_EpicyclesRad End Get Set(value As String) If value <> m_EpicyclesRad Then m_EpicyclesRad = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbEpicyclesRad As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.EPICYCLESRAD, DbEpicyclesRad) StringToLen(value, dValue) m_IsModifiedEpicyclesRad = Math.Abs(dValue - DbEpicyclesRad) > 10 * EPS_SMALL 'If SelectedTool >= 0 And SelectedTool < m_ToolList.Count Then ' ' Setto l'Utensile corrente a quello selezionato e leggo il parametro corrispondente dal Db Utensili ' EgtTdbSetCurrTool(m_ToolList(SelectedTool)) ' Dim dVal As Double = 0 ' EgtTdbGetCurrToolParam(MCH_TP.EPICYCLESRAD, dVal) ' ' Se il valore del parametro corrispondente è uguale a quello appena immesso setto il bottone a "premuto" altrimenti a "non premuto" ' EpicyclesRadChecked = Math.Abs(dVal - dValue) < 10 * EPS_ANG_SMALL 'End If m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged("EpicyclesRad") Else Dim OrigEpicyclesRad As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.EPICYCLESRAD, OrigEpicyclesRad) StringToLen(value, dValue) m_IsModifiedEpicyclesRad = Math.Abs(dValue - OrigEpicyclesRad) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If If GetNonNumericTextBox(m_EpicyclesRad) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("EpicyclesRad") End If End Set End Property Private m_IsModifiedEpicyclesDist As Boolean = False Private m_EpicyclesDist As String ''' ''' Property that read and write to the Machining's database the Epicycles Dist ''' Public Property EpicyclesDist As String Get Return m_EpicyclesDist End Get Set(value As String) If value <> m_EpicyclesDist Then m_EpicyclesDist = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbEpicyclesDist As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.EPICYCLESDIST, DbEpicyclesDist) StringToLen(value, dValue) m_IsModifiedEpicyclesDist = Math.Abs(dValue - DbEpicyclesDist) > 10 * EPS_SMALL 'If SelectedTool >= 0 And SelectedTool < m_ToolList.Count Then ' ' Setto l'Utensile corrente a quello selezionato e leggo il parametro corrispondente dal Db Utensili ' EgtTdbSetCurrTool(m_ToolList(SelectedTool)) ' Dim dVal As Double = 0 ' EgtTdbGetCurrToolParam(MCH_TP.EPICYCLESDIST, dVal) ' ' Se il valore del parametro corrispondente è uguale a quello appena immesso setto il bottone a "premuto" altrimenti a "non premuto" ' EpicyclesDistChecked = Math.Abs(dVal - dValue) < 10 * EPS_ANG_SMALL 'End If m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged("EpicyclesDist") Else Dim OrigEpicyclesDist As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.EPICYCLESDIST, OrigEpicyclesDist) StringToLen(value, dValue) m_IsModifiedEpicyclesDist = Math.Abs(dValue - OrigEpicyclesDist) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If If GetNonNumericTextBox(m_EpicyclesDist) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("EpicyclesDist") End If End Set End Property ''' ''' Property that read the Epicycles radius and distance visibility ''' Private m_Epicycles_Visibility As Visibility = Visibility.Collapsed Public Property Epicycles_Visibility As Visibility Get Return m_Epicycles_Visibility End Get Set(value As Visibility) m_Epicycles_Visibility = value NotifyPropertyChanged("Epicycles_Visibility") End Set End Property Private m_IsModifiedSideAngle As Boolean = False Private m_SideAngle As String ''' ''' Property that read and write to the Machining's database the Side Angle ''' Public Property SideAngle As String Get Return m_SideAngle End Get Set(value As String) If value <> m_SideAngle Then m_SideAngle = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbSideAngle As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.SIDEANGLE, DbSideAngle) StringToLen(value, dValue) m_IsModifiedSideAngle = Math.Abs(dValue - DbSideAngle) > 10 * EPS_SMALL If GetNonNumericTextBox(m_SideAngle) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("SideAngle") Else Dim OrigSideAngle As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.SIDEANGLE, OrigSideAngle) StringToLen(value, dValue) m_IsModifiedSideAngle = Math.Abs(dValue - OrigSideAngle) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedApprox As Boolean = False Private m_Approx As String ''' ''' Property that read and write to the Machining's database the Approx ''' Public Property Approx As String Get Return m_Approx End Get Set(value As String) If value <> m_Approx Then m_Approx = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbApprox As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.APPROX, DbApprox) StringToLen(value, dValue) m_IsModifiedApprox = Math.Abs(dValue - DbApprox) > 10 * EPS_SMALL If GetNonNumericTextBox(m_Approx) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("Approx") Else Dim OrigApprox As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.APPROX, OrigApprox) StringToLen(value, dValue) m_IsModifiedApprox = Math.Abs(dValue - OrigApprox) > EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedStartPos As Boolean = False Private m_StartPos As String ''' ''' Property that read and write to the Machining's database the Start Position ''' Public Property StartPos As String Get Return m_StartPos End Get Set(value As String) If value <> m_StartPos Then m_StartPos = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbStartPos As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.STARTPOS, DbStartPos) StringToLen(value, dValue) m_IsModifiedStartPos = Math.Abs(dValue - DbStartPos) > 10 * EPS_SMALL If GetNonNumericTextBox(m_StartPos) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("StartPos") Else Dim OrigStartPos As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.STARTPOS, OrigStartPos) StringToLen(value, dValue) m_IsModifiedStartPos = Math.Abs(dValue - OrigStartPos) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedStartSlowLen As Boolean = False Private m_StartSlowLen As String ''' ''' Property that read and write to the Machining's database the Start Slow Len ''' Public Property StartSlowLen As String Get Return m_StartSlowLen End Get Set(value As String) If value <> m_StartSlowLen Then m_StartSlowLen = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbStartSlowLen As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.STARTSLOWLEN, DbStartSlowLen) StringToLen(value, dValue) m_IsModifiedStartSlowLen = Math.Abs(dValue - DbStartSlowLen) > 10 * EPS_SMALL If GetNonNumericTextBox(m_StartSlowLen) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("StartSlowLen") Else Dim OrigStartSlowLen As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.STARTSLOWLEN, OrigStartSlowLen) StringToLen(value, dValue) m_IsModifiedStartSlowLen = Math.Abs(dValue - OrigStartSlowLen) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedEndSlowLen As Boolean = False Private m_EndSlowLen As String ''' ''' Property that read and write to the Machining's database the End Slow Len ''' Public Property EndSlowLen As String Get Return m_EndSlowLen End Get Set(value As String) If value <> m_EndSlowLen Then m_EndSlowLen = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbEndSlowLen As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.ENDSLOWLEN, DbEndSlowLen) StringToLen(value, dValue) m_IsModifiedEndSlowLen = Math.Abs(dValue - DbEndSlowLen) > 10 * EPS_SMALL If GetNonNumericTextBox(m_EndSlowLen) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("EndSlowLen") Else Dim OrigEndSlowLen As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.ENDSLOWLEN, OrigEndSlowLen) StringToLen(value, dValue) m_IsModifiedEndSlowLen = Math.Abs(dValue - OrigEndSlowLen) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedThrouAddLen As Boolean = False Private m_ThrouAddLen As String ''' ''' Property that read and write to the Machining's database the Throu Add Len ''' Public Property ThrouAddLen As String Get Return m_ThrouAddLen End Get Set(value As String) If value <> m_ThrouAddLen Then m_ThrouAddLen = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbThrouAddLen As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.THROUADDLEN, DbThrouAddLen) StringToLen(value, dValue) m_IsModifiedThrouAddLen = Math.Abs(dValue - DbThrouAddLen) > 10 * EPS_SMALL If GetNonNumericTextBox(m_ThrouAddLen) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("ThrouAddLen") Else Dim OrigThrouAddLen As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.THROUADDLEN, OrigThrouAddLen) StringToLen(value, dValue) m_IsModifiedThrouAddLen = Math.Abs(dValue - OrigThrouAddLen) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedStepPar As Boolean = False Private m_StepPar As String ''' ''' Property that read and write to the Machining's database the Step Par ''' Public Property StepPar As String Get Return m_StepPar End Get Set(value As String) If value <> m_StepPar Then m_StepPar = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbStepPar As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.STEP_, DbStepPar) StringToLen(value, dValue) m_IsModifiedStepPar = Math.Abs(dValue - DbStepPar) > 10 * EPS_SMALL If GetNonNumericTextBox(m_StepPar) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("StepPar") Else Dim OrigStepPar As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.STEP_, OrigStepPar) StringToLen(value, dValue) m_IsModifiedStepPar = Math.Abs(dValue - OrigStepPar) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedStepBack As Boolean = False Private m_StepBack As String ''' ''' Property that read and write to the Machining's database the Step Par ''' Public Property StepBack As String Get Return m_StepBack End Get Set(value As String) If value <> m_StepBack Then m_StepBack = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbStepBack As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.STEPBACK, DbStepBack) StringToLen(value, dValue) m_IsModifiedStepBack = Math.Abs(dValue - DbStepBack) > 10 * EPS_SMALL If GetNonNumericTextBox(m_StepBack) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("StepBack") Else Dim OrigStepBack As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.STEPBACK, OrigStepBack) StringToLen(value, dValue) m_IsModifiedStepBack = Math.Abs(dValue - OrigStepBack) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedStepLast As Boolean = False Private m_StepLast As String ''' ''' Property that read and write to the Machining's database the StepLast ''' Public Property StepLast As String Get Return m_StepLast End Get Set(value As String) If value <> m_StepLast Then m_StepLast = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbStepLast As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.STEPLAST, DbStepLast) StringToLen(value, dValue) m_IsModifiedStepLast = Math.Abs(dValue - DbStepLast) > 10 * EPS_SMALL If GetNonNumericTextBox(m_StepLast) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("StepLast") Else Dim OrigStepLast As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.STEPLAST, OrigStepLast) StringToLen(value, dValue) m_IsModifiedStepLast = Math.Abs(dValue - OrigStepLast) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedReturnPos As Boolean = False Private m_ReturnPos As String ''' ''' Property that read and write to the Machining's database the Return Position ''' Public Property ReturnPos As String Get Return m_ReturnPos End Get Set(value As String) If value <> m_ReturnPos Then m_ReturnPos = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbReturnPos As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.RETURNPOS, DbReturnPos) StringToLen(value, dValue) m_IsModifiedReturnPos = Math.Abs(dValue - DbReturnPos) > 10 * EPS_SMALL If GetNonNumericTextBox(m_ReturnPos) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("ReturnPos") Else Dim OrigReturnPos As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.RETURNPOS, OrigReturnPos) StringToLen(value, dValue) m_IsModifiedReturnPos = Math.Abs(dValue - OrigReturnPos) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedOverLap As Boolean = False Private m_OverLap As String ''' ''' Property that read and write to the Machining's database the Over Lap Str ''' Public Property OverLap As String Get Return m_OverLap End Get Set(value As String) If value = String.Empty Or value <> m_OverLap Then m_OverLap = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbOverLap As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.OVERL, DbOverLap) StringToLen(value, dValue) m_IsModifiedOverLap = Math.Abs(dValue - DbOverLap) > 10 * EPS_SMALL If GetNonNumericTextBox(m_OverLap) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("OverLap") Else Dim OrigOverLap As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.OVERL, OrigOverLap) StringToLen(value, dValue) m_IsModifiedOverLap = Math.Abs(dValue - OrigOverLap) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedTabLen As Boolean = False Private m_TabLen As String ''' ''' Property that read and write to the Machining's database the Tab Len ''' Public Property TabLen As String Get Return m_TabLen End Get Set(value As String) If value <> m_TabLen Then m_TabLen = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbTabLen As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.TABLEN, DbTabLen) StringToLen(value, dValue) m_IsModifiedTabLen = Math.Abs(dValue - DbTabLen) > 10 * EPS_SMALL If m_LeaveTab AndAlso (Not GetValidationError("TabLen") Or GetNonNumericTextBox(m_TabLen)) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("TabLen") Else Dim OrigTabLen As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.TABLEN, OrigTabLen) StringToLen(value, dValue) m_IsModifiedTabLen = Math.Abs(dValue - OrigTabLen) > 10 * EPS_SMALL If m_LeaveTab AndAlso (Not GetValidationError("TabLen") Or GetNonNumericTextBox(m_TabLen)) Then RaiseEvent m_ErrorOnOperation(True) Else RaiseEvent m_ErrorOnOperation(Not IsValid) End If RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedTabDist As Boolean = False Private m_TabDist As String ''' ''' Property that read and write to the Machining's database the Tab Dist ''' Public Property TabDist As String Get Return m_TabDist End Get Set(value As String) If value <> m_TabDist Then m_TabDist = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbTabDist As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.TABDIST, DbTabDist) StringToLen(value, dValue) m_IsModifiedTabDist = Math.Abs(dValue - DbTabDist) > 10 * EPS_SMALL If m_LeaveTab AndAlso Not (GetValidationError("TabDist") Or Not GetValidationError("TabLen") Or GetNonNumericTextBox(m_TabDist)) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("TabDist") Else Dim OrigTabDist As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.TABDIST, OrigTabDist) StringToLen(value, dValue) m_IsModifiedTabDist = Math.Abs(dValue - OrigTabDist) > 10 * EPS_SMALL If m_LeaveTab AndAlso Not (GetValidationError("TabDist") Or Not GetValidationError("TabLen") Or GetNonNumericTextBox(m_TabDist)) Then RaiseEvent m_ErrorOnOperation(True) Else RaiseEvent m_ErrorOnOperation(Not IsValid) End If RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedTabHeight As Boolean = False Private m_TabHeight As String ''' ''' Property that read and write to the Machining's database the Tab Height ''' Public Property TabHeight As String Get Return m_TabHeight End Get Set(value As String) If value <> m_TabHeight Then m_TabHeight = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbTabHeight As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.TABHEIGHT, DbTabHeight) StringToLen(value, dValue) m_IsModifiedTabHeight = Math.Abs(dValue - DbTabHeight) > 10 * EPS_SMALL If m_LeaveTab AndAlso (Not GetValidationError("TabHeight") Or GetNonNumericTextBox(m_TabHeight)) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("TabHeight") Else Dim OrigTabHeight As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.TABHEIGHT, OrigTabHeight) StringToLen(value, dValue) m_IsModifiedTabHeight = Math.Abs(dValue - OrigTabHeight) > 10 * EPS_SMALL If m_LeaveTab AndAlso (Not GetValidationError("TabHeight") Or GetNonNumericTextBox(m_TabHeight)) Then RaiseEvent m_ErrorOnOperation(True) Else RaiseEvent m_ErrorOnOperation(Not IsValid) End If RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedTabAngle As Boolean = False Private m_TabAngle As String ''' ''' Property that read and write to the Machining's database the Tab Angle ''' Public Property TabAngle As String Get Return m_TabAngle End Get Set(value As String) If value <> m_TabAngle Then m_TabAngle = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbTabAngle As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.TABANGLE, DbTabAngle) StringToDouble(value, dValue) m_IsModifiedTabAngle = Math.Abs(dValue - DbTabAngle) > 10 * EPS_ANG_SMALL If m_LeaveTab AndAlso (Not GetValidationError("TabAngle") Or GetNonNumericTextBox(m_TabAngle)) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("TabAngle") Else Dim OrigTabAngle As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.TABANGLE, OrigTabAngle) StringToLen(value, dValue) m_IsModifiedTabAngle = Math.Abs(dValue - OrigTabAngle) > 10 * EPS_ANG_SMALL If m_LeaveTab AndAlso (Not GetValidationError("TabAngle") Or GetNonNumericTextBox(m_TabAngle)) Then RaiseEvent m_ErrorOnOperation(True) Else RaiseEvent m_ErrorOnOperation(Not IsValid) End If RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedTabMax As Boolean = False Private m_TabMax As String ''' ''' Property that read and write to the Machining's database the Tab Max ''' Public Property TabMax As String Get Return m_TabMax End Get Set(value As String) If value <> m_TabMax Then m_TabMax = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbTabMax As Integer = 0 Dim nValue As Integer = 0 EgtMdbGetCurrMachiningParam(MCH_MP.TABMAX, DbTabMax) Int32.TryParse(value, nValue) m_IsModifiedTabMax = Math.Abs(nValue - DbTabMax) > 10 * EPS_ANG_SMALL If m_LeaveTab AndAlso (Not GetValidationError("TabMax") Or Not GetValidationError("TabMin") Or GetNonNumericTextBox(m_TabMax)) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If Else Dim OrigTabMax As Integer = 0 Dim nValue As Integer = 0 EgtGetMachiningParam(MCH_MP.TABMAX, OrigTabMax) Int32.TryParse(value, nValue) m_IsModifiedTabMax = Math.Abs(nValue - OrigTabMax) > 10 * EPS_SMALL If m_LeaveTab AndAlso (Not GetValidationError("TabMax") Or Not GetValidationError("TabMin") Or GetNonNumericTextBox(m_TabMax)) Then RaiseEvent m_ErrorOnOperation(True) Else RaiseEvent m_ErrorOnOperation(Not IsValid) End If RaiseEvent m_IsModified(IsModified()) End If NotifyPropertyChanged("TabMax") End If End Set End Property Private m_IsModifiedTabMin As Boolean = False Private m_TabMin As String ''' ''' Property that read and write to the Machining's database the Tab Min ''' Public Property TabMin As String Get Return m_TabMin End Get Set(value As String) If value <> m_TabMin Then m_TabMin = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbTabMin As Integer = 0 Dim nValue As Integer = 0 EgtMdbGetCurrMachiningParam(MCH_MP.TABMIN, DbTabMin) Int32.TryParse(value, nValue) m_IsModifiedTabMin = Math.Abs(nValue - DbTabMin) > 10 * EPS_ANG_SMALL If m_LeaveTab AndAlso (Not GetValidationError("TabMin") Or GetNonNumericTextBox(m_TabMin)) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If Else Dim OrigTabMin As Integer = 0 Dim nValue As Integer = 0 EgtGetMachiningParam(MCH_MP.TABMIN, OrigTabMin) Int32.TryParse(value, nValue) m_IsModifiedTabMin = Math.Abs(nValue - OrigTabMin) > 10 * EPS_SMALL If m_LeaveTab AndAlso (Not GetValidationError("TabMin") Or GetNonNumericTextBox(m_TabMin)) Then RaiseEvent m_ErrorOnOperation(True) Else RaiseEvent m_ErrorOnOperation(Not IsValid) End If RaiseEvent m_IsModified(IsModified()) End If NotifyPropertyChanged("TabMin") End If End Set End Property Private m_IsModifiedLiTang As Boolean = False Private m_LiTang As String ''' ''' Property that read and write to the Machining's database the Li Tang ''' Public Property LiTang As String Get Return m_LiTang End Get Set(value As String) If value <> m_LiTang Then m_LiTang = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbLiTang As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.LITANG, DbLiTang) StringToLen(value, dValue) m_IsModifiedLiTang = Math.Abs(dValue - DbLiTang) > 10 * EPS_SMALL If GetNonNumericTextBox(m_LiTang) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("LiTang") Else Dim OrigLiTang As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.LITANG, OrigLiTang) StringToLen(value, dValue) m_IsModifiedLiTang = Math.Abs(dValue - OrigLiTang) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedLiPerp As Boolean = False Private m_LiPerp As String ''' ''' Property that read and write to the Machining's database the Li Perp ''' Public Property LiPerp As String Get Return m_LiPerp End Get Set(value As String) If value <> m_LiPerp Then m_LiPerp = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbLiPerp As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.LIPERP, DbLiPerp) StringToLen(value, dValue) m_IsModifiedLiPerp = Math.Abs(dValue - DbLiPerp) > 10 * EPS_SMALL If GetNonNumericTextBox(m_LiPerp) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("LiPerp") Else Dim OrigLiPerp As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.LIPERP, OrigLiPerp) StringToLen(value, dValue) m_IsModifiedLiPerp = Math.Abs(dValue - OrigLiPerp) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedLiElev As Boolean = False Private m_LiElev As String ''' ''' Property that read and write to the Machining's database the Li Elev ''' Public Property LiElev As String Get Return m_LiElev End Get Set(value As String) If value <> m_LiElev Then m_LiElev = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbLiElev As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.LIELEV, DbLiElev) StringToLen(value, dValue) m_IsModifiedLiElev = Math.Abs(dValue - DbLiElev) > 10 * EPS_SMALL If GetNonNumericTextBox(m_LiElev) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("LiElev") Else Dim OrigLiElev As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.LIELEV, OrigLiElev) StringToLen(value, dValue) m_IsModifiedLiElev = Math.Abs(dValue - OrigLiElev) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedLiCompLen As Boolean = False Private m_LiCompLen As String ''' ''' Property that read and write to the Machining's database the Li Comp Len ''' Public Property LiCompLen As String Get Return m_LiCompLen End Get Set(value As String) If value <> m_LiCompLen Then m_LiCompLen = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbLiCompLen As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.LICOMPLEN, DbLiCompLen) StringToLen(value, dValue) m_IsModifiedLiCompLen = Math.Abs(dValue - DbLiCompLen) > 10 * EPS_SMALL If GetNonNumericTextBox(m_LiCompLen) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("LiCompLen") Else Dim OrigLiCompLen As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.LICOMPLEN, OrigLiCompLen) StringToLen(value, dValue) m_IsModifiedLiCompLen = Math.Abs(dValue - OrigLiCompLen) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedLoTang As Boolean = False Private m_LoTang As String ''' ''' Property that read and write to the Machining's database the Lo Tang ''' Public Property LoTang As String Get Return m_LoTang End Get Set(value As String) If value <> m_LoTang Then m_LoTang = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbLoTang As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.LOTANG, DbLoTang) StringToLen(value, dValue) m_IsModifiedLoTang = Math.Abs(dValue - DbLoTang) > 10 * EPS_SMALL If GetNonNumericTextBox(m_LoTang) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("LoTang") Else Dim OrigLoTang As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.LOTANG, OrigLoTang) StringToLen(value, dValue) m_IsModifiedLoTang = Math.Abs(dValue - OrigLoTang) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedLoPerp As Boolean = False Private m_LoPerp As String ''' ''' Property that read and write to the Machining's database the Lo Perp ''' Public Property LoPerp As String Get Return m_LoPerp End Get Set(value As String) If value <> m_LoPerp Then m_LoPerp = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbLoPerp As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.LOPERP, DbLoPerp) StringToLen(value, dValue) m_IsModifiedLoPerp = Math.Abs(dValue - DbLoPerp) > 10 * EPS_SMALL If GetNonNumericTextBox(m_LoPerp) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("LoPerp") Else Dim OrigLoPerp As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.LOPERP, OrigLoPerp) StringToLen(value, dValue) m_IsModifiedLoPerp = Math.Abs(dValue - OrigLoPerp) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedLoElev As Boolean = False Private m_LoElev As String ''' ''' Property that read and write to the Machining's database the Lo Elev ''' Public Property LoElev As String Get Return m_LoElev End Get Set(value As String) If value <> m_LoElev Then m_LoElev = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbLoElev As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.LOELEV, DbLoElev) StringToLen(value, dValue) m_IsModifiedLoElev = Math.Abs(dValue - DbLoElev) > 10 * EPS_SMALL If GetNonNumericTextBox(m_LoElev) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("LoElev") Else Dim OrigLoElev As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.LOELEV, OrigLoElev) StringToLen(value, dValue) m_IsModifiedLoElev = Math.Abs(dValue - OrigLoElev) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedLoCompLen As Boolean = False Private m_LoCompLen As String ''' ''' Property that read and write to the Machining's database the Lo Comp Len ''' Public Property LoCompLen As String Get Return m_LoCompLen End Get Set(value As String) If value <> m_LoCompLen Then m_LoCompLen = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbLoCompLen As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.LOCOMPLEN, DbLoCompLen) StringToLen(value, dValue) m_IsModifiedLoCompLen = Math.Abs(dValue - DbLoCompLen) > 10 * EPS_SMALL If GetNonNumericTextBox(m_LoCompLen) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("LoCompLen") Else Dim OrigLoCompLen As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.LOCOMPLEN, OrigLoCompLen) StringToLen(value, dValue) m_IsModifiedLoCompLen = Math.Abs(dValue - OrigLoCompLen) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedStartAddLen As Boolean = False Private m_StartAddLen As String ''' ''' Property that read and write to the Machining's database the Start Add Len ''' Public Property StartAddLen As String Get Return m_StartAddLen End Get Set(value As String) If value <> m_StartAddLen Then m_StartAddLen = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbStartAddLen As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.STARTADDLEN, DbStartAddLen) StringToLen(value, dValue) m_IsModifiedStartAddLen = Math.Abs(dValue - DbStartAddLen) > 10 * EPS_SMALL If GetNonNumericTextBox(m_StartAddLen) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("StartAddLen") Else Dim OrigStartAddLen As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.STARTADDLEN, OrigStartAddLen) StringToLen(value, dValue) m_IsModifiedStartAddLen = Math.Abs(dValue - OrigStartAddLen) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedEndAddLen As Boolean = False Private m_EndAddLen As String ''' ''' Property that read and write to the Machining's database the End Add Len ''' Public Property EndAddLen As String Get Return m_EndAddLen End Get Set(value As String) If value <> m_EndAddLen Then m_EndAddLen = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbEndAddLen As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.ENDADDLEN, DbEndAddLen) StringToLen(value, dValue) m_IsModifiedEndAddLen = Math.Abs(dValue - DbEndAddLen) > 10 * EPS_SMALL If GetNonNumericTextBox(m_EndAddLen) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("EndAddLen") Else Dim OrigEndAddLen As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.ENDADDLEN, OrigEndAddLen) StringToLen(value, dValue) m_IsModifiedEndAddLen = Math.Abs(dValue - OrigEndAddLen) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedStepExtArc As Boolean = False Private m_StepExtArc As String ''' ''' Property that read and write to the Machining's database the Step Ext Arc ''' Public Property StepExtArc As String Get Return m_StepExtArc End Get Set(value As String) If value <> m_StepExtArc Then m_StepExtArc = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbStepExtArc As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.STEPEXTARC, DbStepExtArc) StringToLen(value, dValue) m_IsModifiedStepExtArc = Math.Abs(dValue - DbStepExtArc) > 10 * EPS_SMALL If GetNonNumericTextBox(m_StepExtArc) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("StepExtArc") Else Dim OrigStepExtArc As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.STEPEXTARC, OrigStepExtArc) StringToLen(value, dValue) m_IsModifiedStepExtArc = Math.Abs(dValue - OrigStepExtArc) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedStepIntArc As Boolean = False Private m_StepIntArc As String ''' ''' Property that read and write to the Machining's database the Step Int Arc ''' Public Property StepIntArc As String Get Return m_StepIntArc End Get Set(value As String) If value <> m_StepIntArc Then m_StepIntArc = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbStepIntArc As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.STEPINTARC, DbStepIntArc) StringToLen(value, dValue) m_IsModifiedStepIntArc = Math.Abs(dValue - DbStepIntArc) > 10 * EPS_SMALL If GetNonNumericTextBox(m_StepIntArc) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("StepIntArc") Else Dim OrigStepIntArc As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.STEPINTARC, OrigStepIntArc) StringToLen(value, dValue) m_IsModifiedStepIntArc = Math.Abs(dValue - OrigStepIntArc) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedSideStep As Boolean = False Private m_SideStep As String ''' ''' Property that read and write to the Machining's database the Side Step ''' Public Property SideStep As String Get Return m_SideStep End Get Set(value As String) If value <> m_SideStep Then m_SideStep = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbSideStep As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.SIDESTEP, DbSideStep) StringToLen(value, dValue) m_IsModifiedSideStep = Math.Abs(dValue - DbSideStep) > 10 * EPS_SMALL If GetNonNumericTextBox(m_SideStep) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("SideStep") Else Dim OrigSideStep As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.SIDESTEP, OrigSideStep) StringToLen(value, dValue) m_IsModifiedSideStep = Math.Abs(dValue - OrigSideStep) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedSubStep As Boolean = False Private m_SubStep As String ''' ''' Property that read and write to the Machining's database the Sub Step ''' Public Property SubStep As String Get Return m_SubStep End Get Set(value As String) If value <> m_SubStep Then m_SubStep = value If m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB Then Dim DbSubStep As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.SUBSTEP, DbSubStep) StringToLen(value, dValue) m_IsModifiedSubStep = Math.Abs(dValue - DbSubStep) > 10 * EPS_SMALL If GetNonNumericTextBox(m_SubStep) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged(NameOf(SubStep)) Else Dim OrigSubStep As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.SUBSTEP, OrigSubStep) StringToLen(value, dValue) m_IsModifiedSubStep = Math.Abs(dValue - OrigSubStep) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedStepSideAng As Boolean = False Private m_StepSideAng As String ''' ''' Property that read and write to the Machining's database the Side Step ''' Public Property StepSideAng As String Get Return m_StepSideAng End Get Set(value As String) If value <> m_StepSideAng Then m_StepSideAng = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbStepSideAng As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.STEPSIDEANG, DbStepSideAng) StringToLen(value, dValue) m_IsModifiedStepSideAng = Math.Abs(dValue - DbStepSideAng) > 10 * EPS_SMALL If GetNonNumericTextBox(m_StepSideAng) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("StepSideAng") Else Dim OrigStepSideAng As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.STEP_, OrigStepSideAng) StringToLen(value, dValue) m_IsModifiedStepSideAng = Math.Abs(dValue - OrigStepSideAng) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedStepSideAngBack As Boolean = False Private m_StepSideAngBack As String ''' ''' Property that read and write to the Machining's database the Side Step ''' Public Property StepSideAngBack As String Get Return m_StepSideAngBack End Get Set(value As String) If value <> m_StepSideAngBack Then m_StepSideAngBack = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbStepSideAngBack As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.STEPSIDEANGBACK, DbStepSideAngBack) StringToLen(value, dValue) m_IsModifiedStepSideAngBack = Math.Abs(dValue - DbStepSideAngBack) > 10 * EPS_SMALL If GetNonNumericTextBox(m_StepSideAngBack) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("StepSideAngBack") Else Dim OrigStepSideAngBack As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.STEP_, OrigStepSideAngBack) StringToLen(value, dValue) m_IsModifiedStepSideAngBack = Math.Abs(dValue - OrigStepSideAngBack) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedVertFeed As Boolean = False Private m_VertFeed As String ''' ''' Property that read and write to the Machining's database the Vert Feed ''' Public Property VertFeed As String Get Return m_VertFeed End Get Set(value As String) If value <> m_VertFeed Then m_VertFeed = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbVertFeed As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.VERTFEED, DbVertFeed) StringToLen(value, dValue) m_IsModifiedVertFeed = Math.Abs(dValue - DbVertFeed) > 10 * EPS_SMALL If SelectedTool >= 0 And SelectedTool < m_ToolList.Count Then ' Setto l'Utensile corrente a quello selezionato e leggo il parametro corrispondente dal Db Utensili EgtTdbSetCurrTool(m_ToolList(SelectedTool)) Dim dVal As Double = 0 EgtTdbGetCurrToolParam(MCH_TP.FEED, dVal) ' Se il valore del parametro corrispondente è uguale a quello appena immesso setto il bottone a "premuto" altrimenti a "non premuto" VertFeedChecked = Math.Abs(dVal - dValue) < 10 * EPS_ANG_SMALL End If m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged("VertFeed") Else Dim OrigVertFeed As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.VERTFEED, OrigVertFeed) StringToLen(value, dValue) m_IsModifiedVertFeed = Math.Abs(dValue - OrigVertFeed) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If If GetNonNumericTextBox(m_VertFeed) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("VertFeed") End If End Set End Property Private m_IsModifiedOscEnable As Boolean = False Private m_OscEnable As Boolean ''' ''' Property that read and write to the Machining's database the Oscillation ''' Public Property OscEnable As Boolean Get Return m_OscEnable End Get Set(value As Boolean) If value <> m_OscEnable Then If m_MatType = MaterialType.WOOD Then If Not IsNothing(LeaveTab) AndAlso LeaveTab Then ' L'abilitazione di {0} disabiliterà {1}. Procedere? - Oscillazione - Tab Dim sMsg As String = String.Format(EgtMsg(31419), EgtMsg(31382), EgtMsg(31252)) ' Chiedo autorizzazione a procedere : ATTENZIONE If MessageBox.Show(sMsg, EgtMsg(31614), MessageBoxButton.YesNo, MessageBoxImage.Question) <> MessageBoxResult.Yes Then Return Else LeaveTab = Not LeaveTab End If End If m_OscEnable = value End If If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbOscEnable As Boolean = False EgtMdbGetCurrMachiningParam(MCH_MP.OSCENABLE, DbOscEnable) m_IsModifiedOscEnable = value <> DbOscEnable m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) Else Dim OrigOscEnable As Boolean = False EgtGetMachiningParam(MCH_MP.OSCENABLE, OrigOscEnable) m_IsModifiedOscEnable = value <> OrigOscEnable RaiseEvent m_IsModified(IsModified()) End If NotifyPropertyChanged("OscEnable") End If End Set End Property Private m_IsModifiedOscHeight As Boolean = False Private m_OscHeight As String ''' ''' Property that read and write to the Machining's database the Oscillation Height ''' Public Property OscHeight As String Get Return m_OscHeight End Get Set(value As String) If value <> m_OscHeight Then m_OscHeight = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim OrigOscHeight As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.OSCHEIGHT, OrigOscHeight) StringToLen(value, dValue) m_IsModifiedOscHeight = Math.Abs(dValue - OrigOscHeight) > 10 * EPS_SMALL If GetNonNumericTextBox(m_OscHeight) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("OscHeight") Else Dim OrigOscHeight As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.OSCHEIGHT, OrigOscHeight) StringToLen(value, dValue) m_IsModifiedOscHeight = Math.Abs(dValue - OrigOscHeight) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedOscRampLen As Boolean = False Private m_OscRampLen As String ''' ''' Property that read and write to the Machining's database the Oscillation Ramp Length ''' Public Property OscRampLen As String Get Return m_OscRampLen End Get Set(value As String) If value <> m_OscRampLen Then m_OscRampLen = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim OrigOscRampLen As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.OSCRAMPLEN, OrigOscRampLen) StringToLen(value, dValue) m_IsModifiedOscRampLen = Math.Abs(dValue - OrigOscRampLen) > 10 * EPS_SMALL If GetNonNumericTextBox(m_OscRampLen) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("OscRampLen") Else Dim OrigOscRampLen As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.OSCRAMPLEN, OrigOscRampLen) StringToLen(value, dValue) m_IsModifiedOscRampLen = Math.Abs(dValue - OrigOscRampLen) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedOscFlatLen As Boolean = False Private m_OscFlatLen As String ''' ''' Property that read and write to the Machining's database the Oscillation Flat Length ''' Public Property OscFlatLen As String Get Return m_OscFlatLen End Get Set(value As String) If value <> m_OscFlatLen Then m_OscFlatLen = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim OrigOscFlatLen As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.OSCFLATLEN, OrigOscFlatLen) StringToLen(value, dValue) m_IsModifiedOscFlatLen = Math.Abs(dValue - OrigOscFlatLen) > 10 * EPS_SMALL If GetNonNumericTextBox(m_OscFlatLen) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("OscFlatLen") Else Dim OrigOscFlatLen As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.OSCFLATLEN, OrigOscFlatLen) StringToLen(value, dValue) m_IsModifiedOscFlatLen = Math.Abs(dValue - OrigOscFlatLen) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property ' Variabile che indica se c'è un errore nel nome della lavorazione (ad esempio nome già utilizzato) Dim nErrorMachiningName As Integer = 0 Friend m_IsModifiedName As Boolean = False ''' ''' Property that read and write to the machining's database the Name ''' Public Property NamePar As String Get Return m_Name End Get Set(value As String) If value = String.Empty Or value <> m_Name Then nErrorMachiningName = 0 m_Name = value ' Verifico se il nome è diverso da quello nel database e imposto l'apposito flag Dim DbName As String = String.Empty EgtMdbGetCurrMachiningParam(MCH_MP.NAME, DbName) m_IsModifiedName = value <> DbName ' Verifico che il nuovo nome sia valido Dim sTempName As String = value EgtMdbGetMachiningNewName(sTempName) If m_IsModifiedName And Not value = sTempName Then nErrorMachiningName = 1 End If If Not GetValidationError("NamePar") Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If NotifyPropertyChanged("NamePar") End If End Set End Property ''' ''' ObservableCollection che contiene le variabili per il combobox Tool ''' Private m_ToolList As ObservableCollection(Of String) Public ReadOnly Property ToolList As ObservableCollection(Of String) Get Select Case m_Type Case MCH_MY.DRILLING m_ToolList = New ObservableCollection(Of String) FindToolByType(MCH_TY.DRILL_STD, m_ToolList) FindToolByType(MCH_TY.DRILL_LONG, m_ToolList) FindToolByType(MCH_TY.MILL_STD, m_ToolList) Case MCH_MY.SAWING, MCH_MY.SAWROUGHING, MCH_MY.SAWFINISHING m_ToolList = New ObservableCollection(Of String) FindToolByType(MCH_TY.SAW_STD, m_ToolList) FindToolByType(MCH_TY.SAW_FLAT, m_ToolList) Case MCH_MY.MILLING m_ToolList = New ObservableCollection(Of String) If (m_MatType <> MaterialType.STONE) Then FindToolByType(MCH_TY.SAW_STD, m_ToolList) FindToolByType(MCH_TY.SAW_FLAT, m_ToolList) FindToolByType(MCH_TY.COMPO, m_ToolList) End If FindToolByType(MCH_TY.MILL_STD, m_ToolList) FindToolByType(MCH_TY.MILL_NOTIP, m_ToolList) Case MCH_MY.POCKETING m_ToolList = New ObservableCollection(Of String) FindToolByType(MCH_TY.MILL_STD, m_ToolList) FindToolByType(MCH_TY.MILL_NOTIP, m_ToolList) If m_MatType = MaterialType.STONE Or m_MatType = MaterialType.STONE5 Then FindToolByType(MCH_TY.MILL_POLISHING, m_ToolList) End If Case MCH_MY.MORTISING m_ToolList = New ObservableCollection(Of String) FindToolByType(MCH_TY.MORTISE_STD, m_ToolList) Case MCH_MY.GENMACHINING m_ToolList = New ObservableCollection(Of String) FindToolByType(MCH_TY.DRILL_STD, m_ToolList) FindToolByType(MCH_TY.DRILL_LONG, m_ToolList) FindToolByType(MCH_TY.SAW_STD, m_ToolList) FindToolByType(MCH_TY.SAW_FLAT, m_ToolList) FindToolByType(MCH_TY.MILL_STD, m_ToolList) FindToolByType(MCH_TY.MILL_NOTIP, m_ToolList) FindToolByType(MCH_TY.COMPO, m_ToolList) Case MCH_MY.CHISELING m_ToolList = New ObservableCollection(Of String) FindToolByType(MCH_TY.CHISEL_STD, m_ToolList) Case MCH_MY.SURFFINISHING, MCH_MY.FIVEAXISMILLING, MCH_MY.SURFROUGHING m_ToolList = New ObservableCollection(Of String) FindToolByType(MCH_TY.MILL_STD, m_ToolList) FindToolByType(MCH_TY.MILL_NOTIP, m_ToolList) Case MCH_MY.WATERJETTING m_ToolList = New ObservableCollection(Of String) FindToolByType(MCH_TY.WATERJET, m_ToolList) Case Else m_ToolList = Nothing End Select Return m_ToolList End Get End Property ''' ''' Method that search all tools in Db of a specified type ''' Private Sub FindToolByType(ToolType As MCH_TY, ToolList As ObservableCollection(Of String)) Dim nType As Integer = 0 Dim ToolName As String = String.Empty If EgtTdbGetFirstTool(ToolType, ToolName, nType) Then If nType = ToolType Then ToolList.Add(ToolName) While EgtTdbGetNextTool(ToolType, ToolName, nType) If nType = ToolType Then ToolList.Add(ToolName) End While End If End Sub ' Variabile che indica quando questa variabile viene modificata dalla lettura dei parametri e non dall'utente Dim ReadTool As Boolean = False Private m_IsModifiedSelectedTool As Boolean = False Private m_SelectedTool As Integer ''' ''' Property that read and write to the Machining's database the Tool ''' Public Property SelectedTool As Integer Get Return m_SelectedTool End Get Set(value As Integer) If value <> m_SelectedTool Then m_SelectedTool = value If value <> -1 Then Dim DbSelectedTool As String = String.Empty EgtSetCurrentContext(MachiningDbWindowVM.m_ProjectSceneContext) EgtTdbGetCurrToolParam(MCH_MP.TOOL, DbSelectedTool) m_IsModifiedSelectedTool = If(m_ToolList(value) <> DbSelectedTool, True, False) If Not ReadTool Then EgtTdbSetCurrTool(m_ToolList(value)) Dim dVal As Double = 0 EgtTdbGetCurrToolParam(MCH_TP.SPEED, dVal) Speed = DoubleToString(dVal, 4) EgtTdbGetCurrToolParam(MCH_TP.FEED, dVal) Feed = LenToString(dVal, 4) EgtTdbGetCurrToolParam(MCH_TP.STARTFEED, dVal) StartFeed = LenToString(dVal, 4) EgtTdbGetCurrToolParam(MCH_TP.ENDFEED, dVal) EndFeed = LenToString(dVal, 4) EgtTdbGetCurrToolParam(MCH_TP.TIPFEED, dVal) TipFeed = LenToString(dVal, 4) EgtTdbGetCurrToolParam(MCH_TP.LONOFFSET, dVal) OffSr = LenToString(dVal, 4) EgtTdbGetCurrToolParam(MCH_TP.RADOFFSET, dVal) OffSl = LenToString(dVal, 4) End If ' se macchina di tipo Stone e lavorazione Pocketing verifico se utensile Polishing Dim FamilyTool As FamilyMachiningTreeViewItem = DirectCast(m_Parent, FamilyMachiningTreeViewItem) If FamilyTool.MachiningType = MCH_MY.POCKETING AndAlso (m_MatType = MaterialType.STONE Or m_MatType = MaterialType.STONE5) Then Dim PolishingToolList As New ObservableCollection(Of String) FindToolByType(MCH_TY.MILL_POLISHING, PolishingToolList) ' se utensile Polishing rendo visibile i campi degli Epicicli altrimenti li collasso If PolishingToolList.Contains(m_ToolList(m_SelectedTool)) Then Epicycles_Visibility = Visibility.Visible Else Epicycles_Visibility = Visibility.Collapsed End If End If End If m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged("SelectedTool") End If End Set End Property Private m_IsModifiedDepthStr As Boolean = False Private m_DepthStr As String ''' ''' Property that read and write to the Machining's database the Depth Str ''' Public Property DepthStr As String Get Return m_DepthStr End Get Set(value As String) If value = String.Empty Or value <> m_DepthStr Then m_DepthStr = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbDepthStr As String = String.Empty EgtMdbGetCurrMachiningParam(MCH_MP.DEPTH_STR, DbDepthStr) m_IsModifiedDepthStr = value <> DbDepthStr m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged("DepthStr") Else Dim DbDepthStr As String = String.Empty EgtGetMachiningParam(MCH_MP.DEPTH_STR, DbDepthStr) m_IsModifiedDepthStr = value <> DbDepthStr RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_Uuid As String ''' ''' Property that read and write to the tool's database the Uuid ''' Public ReadOnly Property Uuid As String Get Return m_Uuid End Get End Property Private m_IsModifiedUserNotes As Boolean = False Private m_UserNotes As String ''' ''' Property that read and write to the Machining's database the User Notes ''' Public Property UserNotes As String Get Return m_UserNotes End Get Set(value As String) If value = String.Empty Or value <> m_UserNotes Then m_UserNotes = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbUserNotes As String = String.Empty EgtMdbGetCurrMachiningParam(MCH_MP.USERNOTES, DbUserNotes) m_IsModifiedUserNotes = value <> DbUserNotes m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged(NameOf(UserNotes)) Else Dim OrigUserNotes As String = String.Empty EgtGetMachiningParam(MCH_MP.USERNOTES, OrigUserNotes) m_IsModifiedUserNotes = value <> OrigUserNotes RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedInitAngs As Boolean = False Private m_InitAngs As String ''' ''' Property that read and write to the Machining's database the Initial Angles ''' Public Property InitAngs As String Get Return m_InitAngs End Get Set(value As String) If value = String.Empty Or value <> m_InitAngs Then m_InitAngs = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbInitAngs As String = String.Empty EgtMdbGetCurrMachiningParam(MCH_MP.INITANGS, DbInitAngs) m_IsModifiedInitAngs = value <> DbInitAngs m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged("InitAngs") Else Dim OrigInitAngs As String = String.Empty EgtGetMachiningParam(MCH_MP.INITANGS, OrigInitAngs) m_IsModifiedInitAngs = value <> OrigInitAngs RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Private m_IsModifiedBlockedAxis As Boolean = False Private m_BlockedAxis As String ''' ''' Property that read and write to the Machining's database the Initial Angles ''' Public Property BlockedAxis As String Get Return m_BlockedAxis End Get Set(value As String) If value = String.Empty Or value <> m_BlockedAxis Then m_BlockedAxis = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbBlockedAxis As String = String.Empty EgtMdbGetCurrMachiningParam(MCH_MP.BLOCKEDAXIS, DbBlockedAxis) m_IsModifiedBlockedAxis = value <> DbBlockedAxis m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged("BlockedAxis") Else Dim OrigBlockedAxis As String = String.Empty EgtGetMachiningParam(MCH_MP.BLOCKEDAXIS, OrigBlockedAxis) m_IsModifiedBlockedAxis = value <> OrigBlockedAxis RaiseEvent m_IsModified(IsModified()) End If End If End Set End Property Public ReadOnly Property ToolColor As Brush Get If Not m_IsValidTool Then Return Brushes.Red Else Return Brushes.Transparent End If End Get End Property Friend m_IsValidTool As Boolean ''' ''' Property that read and write to the tool's database the Exit ''' Public Property IsValidTool As Boolean Get Return m_IsValidTool End Get Set(value As Boolean) If value <> m_IsValidTool Then m_IsValidTool = value NotifyPropertyChanged("ToolColor") End If End Set End Property Private m_IsModifiedForwardAngle As Boolean = False Private m_ForwardAngle As String ''' ''' Property that read and write to the Machining's database the ForwardAngle ''' Public Property ForwardAngle As String Get Return m_ForwardAngle End Get Set(value As String) If value <> m_ForwardAngle Then m_ForwardAngle = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbForwardAngle As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.FORWARDANGLE, DbForwardAngle) StringToDouble(value, dValue) m_IsModifiedForwardAngle = Math.Abs(dValue - DbForwardAngle) > 10 * EPS_SMALL If GetNonNumericTextBox(m_ForwardAngle) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If Else Dim OrigForwardAngle As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.FORWARDANGLE, OrigForwardAngle) StringToDouble(value, dValue) m_IsModifiedForwardAngle = Math.Abs(dValue - OrigForwardAngle) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If NotifyPropertyChanged("ForwardAngle") End If End Set End Property Private m_IsModifiedProbing As Boolean = False Private m_Probing As Boolean ''' ''' Property that read and write to the Machining's database the Probing ''' Public Property Probing As Boolean Get Return m_Probing End Get Set(value As Boolean) If value <> m_Probing Then m_Probing = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbProbing As Boolean = False EgtMdbGetCurrMachiningParam(MCH_MP.PROBING, DbProbing) m_IsModifiedProbing = value <> DbProbing m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) Else Dim OrigProbing As Boolean = False EgtGetMachiningParam(MCH_MP.PROBING, OrigProbing) m_IsModifiedProbing = value <> OrigProbing RaiseEvent m_IsModified(IsModified()) End If NotifyPropertyChanged("Probing") End If End Set End Property Private m_IsModifiedProbingMinDist As Boolean = False Private m_ProbingMinDist As String ''' ''' Property that read and write to the Machining's database the ProbingMinDist ''' Public Property ProbingMinDist As String Get Return m_ProbingMinDist End Get Set(value As String) If value <> m_ProbingMinDist Then m_ProbingMinDist = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbProbingMinDist As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.PROBINGMINDIST, DbProbingMinDist) StringToLen(value, dValue) m_IsModifiedProbingMinDist = Math.Abs(dValue - DbProbingMinDist) > 10 * EPS_SMALL If GetNonNumericTextBox(m_ProbingMinDist) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If Else Dim OrigProbingMinDist As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.PROBINGMINDIST, OrigProbingMinDist) StringToLen(value, dValue) m_IsModifiedProbingMinDist = Math.Abs(dValue - OrigProbingMinDist) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If NotifyPropertyChanged("ProbingMinDist") End If End Set End Property Private m_IsModifiedProbingMaxDist As Boolean = False Private m_ProbingMaxDist As String ''' ''' Property that read and write to the Machining's database the ProbingMaxDist ''' Public Property ProbingMaxDist As String Get Return m_ProbingMaxDist End Get Set(value As String) If value <> m_ProbingMaxDist Then m_ProbingMaxDist = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbProbingMaxDist As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.PROBINGMAXDIST, DbProbingMaxDist) StringToLen(value, dValue) m_IsModifiedProbingMaxDist = Math.Abs(dValue - DbProbingMaxDist) > 10 * EPS_SMALL If GetNonNumericTextBox(m_ProbingMaxDist) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If Else Dim OrigProbingMaxDist As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.PROBINGMAXDIST, OrigProbingMaxDist) StringToLen(value, dValue) m_IsModifiedProbingMaxDist = Math.Abs(dValue - OrigProbingMaxDist) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If NotifyPropertyChanged("ProbingMaxDist") End If End Set End Property 'ObservableCollection che contiene le variabili per il combobox ExtCornType Private m_ExtCornTypeList As New ObservableCollection(Of Object)({New IdNameStruct(MCH_WATERJET_EC.NONE, EgtMsg(31391)), New IdNameStruct(MCH_WATERJET_EC.SLOW, EgtMsg(31392)), New IdNameStruct(MCH_WATERJET_EC.LOOP_, EgtMsg(31393))}) Public ReadOnly Property ExtCornTypeList As ObservableCollection(Of Object) Get Return m_ExtCornTypeList End Get End Property Private m_IsModifiedSelectedExtCornType As Boolean = False Private m_SelectedExtCornType As Integer ' Proprietà che indica il ExtCornType (MCH_WATERJET_EC) Public Property SelectedExtCornType As Integer Get If IsNothing(ExtCornTypeList) Then Return Nothing Return m_SelectedExtCornType End Get Set(value As Integer) If value <> m_SelectedExtCornType Then If Not IsNothing(ExtCornTypeList) Then m_SelectedExtCornType = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbExtCornType As Integer = 0 EgtMdbGetCurrMachiningParam(MCH_MP.EXTCORNERTYPE, DbExtCornType) DbExtCornType = IdNameStruct.IndFromId(DbExtCornType, ExtCornTypeList) m_IsModifiedSelectedExtCornType = value <> DbExtCornType m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) Else Dim OrigExtCornType As Integer = 0 EgtGetMachiningParam(MCH_MP.EXTCORNERTYPE, OrigExtCornType) OrigExtCornType = IdNameStruct.IndFromId(OrigExtCornType, ExtCornTypeList) m_IsModifiedSelectedExtCornType = value <> OrigExtCornType RaiseEvent m_IsModified(IsModified()) End If NotifyPropertyChanged("SelectedExtCornType") End If End If End Set End Property 'ObservableCollection che contiene le variabili per il combobox IntCornType Private m_IntCornTypeList As New ObservableCollection(Of Object)({New IdNameStruct(MCH_WATERJET_IC.NONE, EgtMsg(31391)), New IdNameStruct(MCH_WATERJET_IC.SLOW, EgtMsg(31392)), New IdNameStruct(MCH_WATERJET_IC.SLOW_FULL, EgtMsg(31420))}) Public ReadOnly Property IntCornTypeList As ObservableCollection(Of Object) Get Return m_IntCornTypeList End Get End Property Private m_IsModifiedSelectedIntCornType As Boolean = False Private m_SelectedIntCornType As Integer ' Proprietà che indica il IntCornType (MCH_WATERJET_IC) Public Property SelectedIntCornType As Integer Get If IsNothing(IntCornTypeList) Then Return Nothing Return m_SelectedIntCornType End Get Set(value As Integer) If value <> m_SelectedIntCornType Then If Not IsNothing(IntCornTypeList) Then m_SelectedIntCornType = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbIntCornType As Integer = 0 EgtMdbGetCurrMachiningParam(MCH_MP.INTCORNERTYPE, DbIntCornType) DbIntCornType = IdNameStruct.IndFromId(DbIntCornType, IntCornTypeList) m_IsModifiedSelectedIntCornType = value <> DbIntCornType m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) NotifyPropertyChanged("SelectedIntCornType") Else Dim OrigIntCornType As Integer = 0 EgtGetMachiningParam(MCH_MP.INTCORNERTYPE, OrigIntCornType) OrigIntCornType = IdNameStruct.IndFromId(OrigIntCornType, IntCornTypeList) m_IsModifiedSelectedIntCornType = value <> OrigIntCornType RaiseEvent m_IsModified(IsModified()) End If End If End If End Set End Property Private m_IsModifiedCornSlowLen As Boolean = False Private m_CornSlowLen As String ''' ''' Property that read and write to the Machining's database the CornSlowLen ''' Public Property CornSlowLen As String Get Return m_CornSlowLen End Get Set(value As String) If value <> m_CornSlowLen Then m_CornSlowLen = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbCornSlowLen As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.CORNERSLOWLEN, DbCornSlowLen) StringToLen(value, dValue) m_IsModifiedCornSlowLen = Math.Abs(dValue - DbCornSlowLen) > 10 * EPS_SMALL If GetNonNumericTextBox(m_CornSlowLen) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If Else Dim OrigCornSlowLen As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.CORNERSLOWLEN, OrigCornSlowLen) StringToLen(value, dValue) m_IsModifiedCornSlowLen = Math.Abs(dValue - OrigCornSlowLen) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If NotifyPropertyChanged("CornSlowLen") End If End Set End Property Private m_IsModifiedCornSlowPerc As Boolean = False Private m_CornSlowPerc As String ''' ''' Property that read and write to the Machining's database the CornSlowPerc ''' Public Property CornSlowPerc As String Get Return m_CornSlowPerc End Get Set(value As String) If value <> m_CornSlowPerc Then m_CornSlowPerc = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbCornSlowPerc As Integer = 0 Dim nValue As Integer = 0 EgtMdbGetCurrMachiningParam(MCH_MP.CORNERSLOWPERC, DbCornSlowPerc) Int32.TryParse(value, nValue) m_IsModifiedCornSlowPerc = Math.Abs(nValue - DbCornSlowPerc) > 10 * EPS_SMALL If GetNonNumericTextBox(m_CornSlowPerc) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If Else Dim OrigCornSlowPerc As Integer = 0 Dim nValue As Integer = 0 EgtGetMachiningParam(MCH_MP.CORNERSLOWPERC, OrigCornSlowPerc) Int32.TryParse(value, nValue) m_IsModifiedCornSlowPerc = Math.Abs(nValue - OrigCornSlowPerc) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If NotifyPropertyChanged("CornSlowPerc") End If End Set End Property Private m_IsModifiedLiHole As Boolean = False Private m_LiHole As Boolean ''' ''' Property that read and write to the Machining's database the LiHole ''' Public Property LiHole As Boolean Get Return m_LiHole End Get Set(value As Boolean) If value <> m_LiHole Then m_LiHole = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbLiHole As Boolean = False EgtMdbGetCurrMachiningParam(MCH_MP.LIHOLE, DbLiHole) m_IsModifiedLiHole = value <> DbLiHole m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) Else Dim OrigLiHole As Boolean = False EgtGetMachiningParam(MCH_MP.LIHOLE, OrigLiHole) m_IsModifiedLiHole = value <> OrigLiHole RaiseEvent m_IsModified(IsModified()) End If NotifyPropertyChanged("LiHole") End If End Set End Property Private m_IsModifiedLiHoleRad As Boolean = False Private m_LiHoleRad As String ''' ''' Property that read and write to the Machining's database the LiHoleRad ''' Public Property LiHoleRad As String Get Return m_LiHoleRad End Get Set(value As String) If value <> m_LiHoleRad Then m_LiHoleRad = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbLiHoleRad As Double = 0 Dim dValue As Double = 0 EgtMdbGetCurrMachiningParam(MCH_MP.LIHOLERAD, DbLiHoleRad) StringToLen(value, dValue) m_IsModifiedLiHoleRad = Math.Abs(dValue - DbLiHoleRad) > 10 * EPS_SMALL If GetNonNumericTextBox(m_LiHoleRad) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If Else Dim OrigLiHoleRad As Double = 0 Dim dValue As Double = 0 EgtGetMachiningParam(MCH_MP.LIHOLERAD, OrigLiHoleRad) StringToLen(value, dValue) m_IsModifiedLiHoleRad = Math.Abs(dValue - OrigLiHoleRad) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If NotifyPropertyChanged("LiHoleRad") End If End Set End Property Private m_IsModifiedLpTurns As Boolean = False Private m_LpTurns As String ''' ''' Property that read and write to the Machining's database the LpTurns ''' Public Property LpTurns As String Get Return m_LpTurns End Get Set(value As String) If value <> m_LpTurns Then m_LpTurns = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbLpTurns As Integer = 0 Dim nValue As Integer = 0 EgtMdbGetCurrMachiningParam(MCH_MP.LPTURNS, DbLpTurns) Int32.TryParse(value, nValue) m_IsModifiedLpTurns = Math.Abs(nValue - DbLpTurns) > 10 * EPS_SMALL If GetNonNumericTextBox(m_LpTurns) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If Else Dim OrigLpTurns As Integer = 0 Dim nValue As Integer = 0 EgtGetMachiningParam(MCH_MP.LPTURNS, OrigLpTurns) Int32.TryParse(value, nValue) m_IsModifiedLpTurns = Math.Abs(nValue - OrigLpTurns) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If NotifyPropertyChanged("LpTurns") End If End Set End Property Private m_IsModifiedHpTurns As Boolean = False Private m_HpTurns As String ''' ''' Property that read and write to the Machining's database the HpTurns ''' Public Property HpTurns As String Get Return m_HpTurns End Get Set(value As String) If value <> m_HpTurns Then m_HpTurns = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then Dim DbHpTurns As Integer = 0 Dim nValue As Integer = 0 EgtMdbGetCurrMachiningParam(MCH_MP.HPTURNS, DbHpTurns) Int32.TryParse(value, nValue) m_IsModifiedHpTurns = Math.Abs(nValue - DbHpTurns) > 10 * EPS_SMALL If GetNonNumericTextBox(m_HpTurns) Then m_delErrorOnMachining(True) m_delIsEnabledBtns(False, False, True) Else m_delErrorOnMachining(Not IsValid) m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True) End If Else Dim OrigHpTurns As Integer = 0 Dim nValue As Integer = 0 EgtGetMachiningParam(MCH_MP.HPTURNS, OrigHpTurns) Int32.TryParse(value, nValue) m_IsModifiedHpTurns = Math.Abs(nValue - OrigHpTurns) > 10 * EPS_SMALL RaiseEvent m_IsModified(IsModified()) End If NotifyPropertyChanged("HpTurns") End If End Set End Property 'ObservableCollection che contiene le variabili per il combobox LeadInType Private m_MaterialList As New ObservableCollection(Of MachiningMaterial) Public Property MaterialList As ObservableCollection(Of MachiningMaterial) Get Return m_MaterialList End Get Set(value As ObservableCollection(Of MachiningMaterial)) m_MaterialList = value End Set End Property Private m_SelMaterial As MachiningMaterial Public Property SelMaterial As MachiningMaterial Get Return m_SelMaterial End Get Set(value As MachiningMaterial) m_SelMaterial = value End Set End Property Private m_SystemNotes As String ''' ''' Property that read and write to the Machining's database the System Notes ''' Public Property SystemNotes As String Get Return m_SystemNotes End Get Set(value As String) m_SystemNotes = value If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then NotifyPropertyChanged("SystemNotes") End If End Set End Property Private Sub SetSystemNotes() ' Scrivo stringa materiali da lista Dim sMaterialString As String = String.Empty For Each Material In m_MaterialList Dim dMinTh As Double = 0 StringToLen(Material.MinThickness, dMinTh) Dim dMaxTh As Double = 0 StringToLen(Material.MaxThickness, dMaxTh) If dMinTh > 0 Or dMaxTh > 0 Then If bWaterJet And bFromDBWaterJet Then sMaterialString += Material.nId.ToString & "." & Material.nSubId.ToString & "," & DoubleToString(dMinTh, 3) & "," & DoubleToString(dMaxTh, 3) & ";" Else sMaterialString += Material.nId.ToString & "," & DoubleToString(dMinTh, 3) & "," & DoubleToString(dMaxTh, 3) & ";" End If End If Next SystemNotes = sMaterialString End Sub ''' ''' Property that read the System Notes visibility ''' Public ReadOnly Property SysNotes_Visibility As Visibility Get If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then If MachiningDbWindowVM.m_bVisibleSysNotes Then Return Visibility.Visible Else Return Visibility.Collapsed End If Else If m_MPE_SysNotes_Visibility Then Return Visibility.Visible Else Return Visibility.Collapsed End If End If End Get End Property Private m_SpeedChecked As Boolean Public Property SpeedChecked As Boolean Get Return m_SpeedChecked End Get Set(value As Boolean) m_SpeedChecked = value SpeedEnabled = Not SpeedChecked ' Se il pulsante è premuto If m_SpeedChecked And Not m_SuspendAutoToolParamUpdate Then ' Setto l'Utensile corrente a quello selezionato e leggo il parametro corrispondente dal Db Utensili EgtTdbSetCurrTool(m_ToolList(SelectedTool)) Dim dVal As Double = 0 EgtTdbGetCurrToolParam(MCH_TP.SPEED, dVal) ' Aggiorno il valore immesso nella TextBox con quello letto dal Db Utensili Speed = DoubleToString(dVal, 4) End If NotifyPropertyChanged("SpeedChecked") End Set End Property Private m_FeedChecked As Boolean Public Property FeedChecked As Boolean Get Return m_FeedChecked End Get Set(value As Boolean) m_FeedChecked = value FeedEnabled = Not FeedChecked ' Se il pulsante è premuto If m_FeedChecked And Not m_SuspendAutoToolParamUpdate Then ' Setto l'Utensile corrente a quello selezionato e leggo il parametro corrispondente dal Db Utensili EgtTdbSetCurrTool(m_ToolList(SelectedTool)) Dim dVal As Double = 0 EgtTdbGetCurrToolParam(MCH_TP.FEED, dVal) ' Aggiorno il valore immesso nella TextBox con quello letto dal Db Utensili Feed = LenToString(dVal, 4) End If NotifyPropertyChanged("FeedChecked") End Set End Property Private m_StartFeedChecked As Boolean Public Property StartFeedChecked As Boolean Get Return m_StartFeedChecked End Get Set(value As Boolean) m_StartFeedChecked = value StartFeedEnabled = Not StartFeedChecked ' Se il pulsante è premuto If m_StartFeedChecked And Not m_SuspendAutoToolParamUpdate Then ' Setto l'Utensile corrente a quello selezionato e leggo il parametro corrispondente dal Db Utensili EgtTdbSetCurrTool(m_ToolList(SelectedTool)) Dim dVal As Double = 0 EgtTdbGetCurrToolParam(MCH_TP.STARTFEED, dVal) ' Aggiorno il valore immesso nella TextBox con quello letto dal Db Utensili StartFeed = LenToString(dVal, 4) End If NotifyPropertyChanged("StartFeedChecked") End Set End Property Private m_EndFeedChecked As Boolean Public Property EndFeedChecked As Boolean Get Return m_EndFeedChecked End Get Set(value As Boolean) m_EndFeedChecked = value EndFeedEnabled = Not EndFeedChecked ' Se il pulsante è premuto If m_EndFeedChecked And Not m_SuspendAutoToolParamUpdate Then ' Setto l'Utensile corrente a quello selezionato e leggo il parametro corrispondente dal Db Utensili EgtTdbSetCurrTool(m_ToolList(SelectedTool)) Dim dVal As Double = 0 EgtTdbGetCurrToolParam(MCH_TP.ENDFEED, dVal) ' Aggiorno il valore immesso nella TextBox con quello letto dal Db Utensili EndFeed = LenToString(dVal, 4) End If NotifyPropertyChanged("EndFeedChecked") End Set End Property Private m_TipFeedChecked As Boolean Public Property TipFeedChecked As Boolean Get Return m_TipFeedChecked End Get Set(value As Boolean) m_TipFeedChecked = value TipFeedEnabled = Not TipFeedChecked ' Se il pulsante è premuto If m_TipFeedChecked And Not m_SuspendAutoToolParamUpdate Then ' Setto l'Utensile corrente a quello selezionato e leggo il parametro corrispondente dal Db Utensili EgtTdbSetCurrTool(m_ToolList(SelectedTool)) Dim dVal As Double = 0 EgtTdbGetCurrToolParam(MCH_TP.TIPFEED, dVal) ' Aggiorno il valore immesso nella TextBox con quello letto dal Db Utensili TipFeed = LenToString(dVal, 4) End If NotifyPropertyChanged("TipFeedChecked") End Set End Property Private m_BackFeedChecked As Boolean Public Property BackFeedChecked As Boolean Get Return m_BackFeedChecked End Get Set(value As Boolean) m_BackFeedChecked = value BackFeedEnabled = Not BackFeedChecked ' Se il pulsante è premuto If m_BackFeedChecked And Not m_SuspendAutoToolParamUpdate Then ' Setto l'Utensile corrente a quello selezionato e leggo il parametro corrispondente dal Db Utensili EgtTdbSetCurrTool(m_ToolList(SelectedTool)) Dim dVal As Double = 0 EgtTdbGetCurrToolParam(MCH_TP.FEED, dVal) ' Aggiorno il valore immesso nella TextBox con quello letto dal Db Utensili BackFeed = LenToString(dVal, 4) End If NotifyPropertyChanged("BackFeedChecked") End Set End Property Private m_SideAngFeedChecked As Boolean Public Property SideAngFeedChecked As Boolean Get Return m_SideAngFeedChecked End Get Set(value As Boolean) m_SideAngFeedChecked = value SideAngFeedEnabled = Not SideAngFeedChecked ' Se il pulsante è premuto If m_SideAngFeedChecked And Not m_SuspendAutoToolParamUpdate Then ' Setto l'Utensile corrente a quello selezionato e leggo il parametro corrispondente dal Db Utensili EgtTdbSetCurrTool(m_ToolList(SelectedTool)) Dim dVal As Double = 0 EgtTdbGetCurrToolParam(MCH_TP.FEED, dVal) ' Aggiorno il valore immesso nella TextBox con quello letto dal Db Utensili SideAngFeed = LenToString(dVal, 4) End If NotifyPropertyChanged("SideAngFeedChecked") End Set End Property Private m_VertFeedChecked As Boolean Public Property VertFeedChecked As Boolean Get Return m_VertFeedChecked End Get Set(value As Boolean) m_VertFeedChecked = value VertFeedEnabled = Not VertFeedChecked ' Se il pulsante è premuto If m_VertFeedChecked And Not m_SuspendAutoToolParamUpdate Then ' Setto l'Utensile corrente a quello selezionato e leggo il parametro corrispondente dal Db Utensili EgtTdbSetCurrTool(m_ToolList(SelectedTool)) Dim dVal As Double = 0 EgtTdbGetCurrToolParam(MCH_TP.FEED, dVal) ' Aggiorno il valore immesso nella TextBox con quello letto dal Db Utensili VertFeed = LenToString(dVal, 4) End If NotifyPropertyChanged("VertFeedChecked") End Set End Property Private m_OffSrChecked As Boolean Public Property OffSrChecked As Boolean Get Return m_OffSrChecked End Get Set(value As Boolean) m_OffSrChecked = value OffSrEnabled = Not OffSrChecked ' Se il pulsante è premuto If m_OffSrChecked And Not m_SuspendAutoToolParamUpdate Then ' Setto l'Utensile corrente a quello selezionato e leggo il parametro corrispondente dal Db Utensili EgtTdbSetCurrTool(m_ToolList(SelectedTool)) Dim dVal As Double = 0 EgtTdbGetCurrToolParam(MCH_TP.RADOFFSET, dVal) ' Aggiorno il valore immesso nella TextBox con quello letto dal Db Utensili OffSr = LenToString(dVal, 4) End If NotifyPropertyChanged("OffSrChecked") End Set End Property Private m_OffSlChecked As Boolean Public Property OffSlChecked As Boolean Get Return m_OffSlChecked End Get Set(value As Boolean) m_OffSlChecked = value OffSlEnabled = Not OffSlChecked ' Se il pulsante è premuto If m_OffSlChecked And Not m_SuspendAutoToolParamUpdate Then ' Setto l'Utensile corrente a quello selezionato e leggo il parametro corrispondente dal Db Utensili EgtTdbSetCurrTool(m_ToolList(SelectedTool)) Dim dVal As Double = 0 EgtTdbGetCurrToolParam(MCH_TP.LONOFFSET, dVal) ' Aggiorno il valore immesso nella TextBox con quello letto dal Db Utensili OffSl = LenToString(dVal, 4) End If NotifyPropertyChanged("OffSlChecked") End Set End Property Private m_SpeedEnabled As Boolean Public Property SpeedEnabled As Boolean Get Return m_SpeedEnabled End Get Set(value As Boolean) m_SpeedEnabled = value NotifyPropertyChanged("SpeedEnabled") End Set End Property Private m_FeedEnabled As Boolean Public Property FeedEnabled As Boolean Get Return m_FeedEnabled End Get Set(value As Boolean) m_FeedEnabled = value NotifyPropertyChanged("FeedEnabled") End Set End Property Private m_StartFeedEnabled As Boolean Public Property StartFeedEnabled As Boolean Get Return m_StartFeedEnabled End Get Set(value As Boolean) m_StartFeedEnabled = value NotifyPropertyChanged("StartFeedEnabled") End Set End Property Private m_EndFeedEnabled As Boolean Public Property EndFeedEnabled As Boolean Get Return m_EndFeedEnabled End Get Set(value As Boolean) m_EndFeedEnabled = value NotifyPropertyChanged("EndFeedEnabled") End Set End Property Private m_TipFeedEnabled As Boolean Public Property TipFeedEnabled As Boolean Get Return m_TipFeedEnabled End Get Set(value As Boolean) m_TipFeedEnabled = value NotifyPropertyChanged("TipFeedEnabled") End Set End Property Private m_BackFeedEnabled As Boolean Public Property BackFeedEnabled As Boolean Get Return m_BackFeedEnabled End Get Set(value As Boolean) m_BackFeedEnabled = value NotifyPropertyChanged("BackFeedEnabled") End Set End Property Private m_SideAngFeedEnabled As Boolean Public Property SideAngFeedEnabled As Boolean Get Return m_SideAngFeedEnabled End Get Set(value As Boolean) m_SideAngFeedEnabled = value NotifyPropertyChanged("SideAngFeedEnabled") End Set End Property Private m_VertFeedEnabled As Boolean Public Property VertFeedEnabled As Boolean Get Return m_VertFeedEnabled End Get Set(value As Boolean) m_VertFeedEnabled = value NotifyPropertyChanged("VertFeedEnabled") End Set End Property Private m_OffSrEnabled As Boolean Public Property OffSrEnabled As Boolean Get Return m_OffSrEnabled End Get Set(value As Boolean) m_OffSrEnabled = value NotifyPropertyChanged("OffSrEnabled") End Set End Property Private m_OffSlEnabled As Boolean Public Property OffSlEnabled As Boolean Get Return m_OffSlEnabled End Get Set(value As Boolean) m_OffSlEnabled = value NotifyPropertyChanged("OffSlEnabled") End Set End Property 'EgtMdbGetCurrMachiningParam( MCH_MP.LIELEV, ToolDouble) 'SpecificStepTxBx.Text = LenToString(ToolDouble, 3) #End Region ' Machining Property #Region "Operation Property" Private m_Tool As String Public ReadOnly Property Tool As String Get Return m_Tool End Get End Property #End Region ' Operation Property #Region "NOTE PROPERTY" ''' ''' Lista delle Note Utente ''' Private m_NotesList As New ObservableCollection(Of NoteListBoxItem) Public Property NotesList As ObservableCollection(Of NoteListBoxItem) Get Return m_NotesList End Get Set(value As ObservableCollection(Of NoteListBoxItem)) m_NotesList = value NotifyPropertyChanged(NameOf(NotesList)) End Set End Property ''' ''' Rende visibile o non visibile la combobox ''' Private m_bComboAddVisibility As Visibility = Visibility.Collapsed Public ReadOnly Property ComboAddVisibility As Visibility Get Return m_bComboAddVisibility End Get End Property Friend Sub SetComboAddVisibility(value As Visibility) m_bComboAddVisibility = value NotifyPropertyChanged(NameOf(ComboAddVisibility)) End Sub ''' ''' Lista visualizzata nella combobox ''' Private m_NotesListCombo As New ObservableCollection(Of NoteListBoxItem) Public Property NotesListCombo As ObservableCollection(Of NoteListBoxItem) Get Return m_NotesListCombo End Get Set(value As ObservableCollection(Of NoteListBoxItem)) m_NotesListCombo = value NotifyPropertyChanged(NameOf(NotesListCombo)) NotifyPropertyChanged(NameOf(AdvancedParamIsExpander)) End Set End Property ''' ''' Valore selezionato dalla combobox ''' Private m_SelNoteItemCombo As NoteListBoxItem Public Property SelNoteItemCombo As NoteListBoxItem Get Return m_SelNoteItemCombo End Get Set(value As NoteListBoxItem) m_SelNoteItemCombo = value If Not IsNothing(m_SelNoteItemCombo) Then SetToolNoteVisibility(Visibility.Visible) ' Controllo per la visualizzazione di una textbox o checkbox If m_SelNoteItemCombo.Type.Equals("d") OrElse m_SelNoteItemCombo.Type.Equals("l") OrElse m_SelNoteItemCombo.Type.Equals("s") OrElse m_SelNoteItemCombo.Type.Equals("dr") OrElse m_SelNoteItemCombo.Type.Equals("lr") OrElse m_SelNoteItemCombo.Type.Equals("sr") Then m_SelNoteItemCombo.SelTypeValue = 0 ' Seleziona la TextBox Else m_SelNoteItemCombo.SelTypeValue = 1 ' Seleziona la CheckBox ' Trasformo il valore della checkbox da stringa a booleano m_SelNoteItemCombo.Value = If(m_SelNoteItemCombo.Value = "1", "True", "False") Boolean.Parse(m_SelNoteItemCombo.Value) End If ' Aggiunto alla lista Note il valore selezionato nella combobox For Index As Integer = 0 To m_NotesListCombo.Count - 1 ' Se il valore selezionato dalla combobox e' diverso da quello presente nella lista lo aggiungo If m_NotesList.Count <= 0 OrElse m_NotesList(Index).Description <> m_SelNoteItemCombo.Description Then m_NotesList.Add(m_SelNoteItemCombo) ' Nascondo la combobox SetComboAddVisibility(Visibility.Collapsed) ' Riabilito pulsante che mostra la combobox SetShowNoteListCombo_IsEnable(True) End If Exit For Next End If ' Rimuovo dalla lista presente nella combobox il valore selezionato m_NotesListCombo.Remove(m_SelNoteItemCombo) ' Rimuovo selezionato m_SelNoteItemCombo = Nothing ' Disabilito pulsante che mostra la combobox If m_NotesListCombo.Count <= 0 Then SetShowNoteListCombo_IsEnable(False) NotifyPropertyChanged(NameOf(NotesList)) NotifyPropertyChanged(NameOf(NotesListCombo)) NotifyPropertyChanged(NameOf(SelNoteItemCombo)) RaiseEvent m_IsModified(True) End Set End Property ''' ''' Rende attivo o disattivo il pulsabnte per visualizzare la combobox ''' Private m_ShowNoteListCombo_IsEnable As Boolean = True Public ReadOnly Property ShowNoteListCombo_IsEnable As Boolean Get Return m_ShowNoteListCombo_IsEnable End Get End Property Friend Sub SetShowNoteListCombo_IsEnable(value As Boolean) m_ShowNoteListCombo_IsEnable = value NotifyPropertyChanged(NameOf(ShowNoteListCombo_IsEnable)) End Sub ''' ''' Gestione visibilita' per pulsante visualizzazione combobox ''' Private m_ShowNoteListCombo_Visibility As Visibility = Visibility.Collapsed Public ReadOnly Property ShowNoteListCombo_Visibility As Visibility Get Return m_ShowNoteListCombo_Visibility End Get End Property Friend Sub SetShowNoteListCombo_Visibility(value As Visibility) m_ShowNoteListCombo_Visibility = value NotifyPropertyChanged(NameOf(ShowNoteListCombo_Visibility)) End Sub ''' ''' Gestione Expander AdvancedParam ''' Private m_AdvancedParamIsExpander As Boolean = False Public Property AdvancedParamIsExpander As Boolean Get Return m_AdvancedParamIsExpander End Get Set(value As Boolean) m_AdvancedParamIsExpander = value SetShowNoteListCombo_Visibility(If(m_AdvancedParamIsExpander AndAlso m_NotesListCombo.Count > 0, Visibility.Visible, Visibility.Collapsed)) NotifyPropertyChanged(NameOf(AdvancedParamIsExpander)) NotifyPropertyChanged(NameOf(NotesList)) End Set End Property Private m_bToolNoteVisibility As Visibility = Visibility.Collapsed Public ReadOnly Property ToolNoteVisibility As Visibility Get Return m_bToolNoteVisibility End Get End Property Friend Sub SetToolNoteVisibility(value As Visibility) m_bToolNoteVisibility = value NotifyPropertyChanged(NameOf(ToolNoteVisibility)) End Sub ' Comandi Private m_cmdShowNoteListCombo As ICommand #End Region ' Note Property #Region "Messages" 'Definizione dei messaggi della pagina Public ReadOnly Property InvertTxBl As String Get Return EgtMsg(MSG_MACHININGDB + 51) End Get End Property Public ReadOnly Property LeaveTabTxBl As String Get Return EgtMsg(MSG_MACHININGDB + 52) End Get End Property Public ReadOnly Property WorkSideTxBl As String Get Return EgtMsg(MSG_MACHININGDB + 54) End Get End Property Public ReadOnly Property HeadSideTxBl As String Get Return EgtMsg(MSG_MACHININGDB + 55) End Get End Property Public ReadOnly Property LeadInTypeTxBl As String Get Return EgtMsg(MSG_MACHININGDB + 56) End Get End Property Public ReadOnly Property StartAddLenTxBl As String Get If m_MatType = MaterialType.STONE And (m_Type = MCH_MY.SAWFINISHING Or m_Type = MCH_MY.SAWROUGHING) Then Return EgtMsg(31396) ' Inizio Else Return EgtMsg(MSG_MACHININGSDBPAGE + 91) End If End Get End Property Public ReadOnly Property LiTangTxBl As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 83) End Get End Property Public ReadOnly Property LiPerpTxBl As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 84) End Get End Property Public ReadOnly Property LiElevTxBl As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 85) End Get End Property Public ReadOnly Property LiCompLenTxBl As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 86) End Get End Property Public ReadOnly Property LeadOutTypeTxBl As String Get Return EgtMsg(MSG_MACHININGDB + 58) End Get End Property Public ReadOnly Property EndAddLenTxBl As String Get If m_MatType = MaterialType.STONE And (m_Type = MCH_MY.SAWFINISHING Or m_Type = MCH_MY.SAWROUGHING) Then Return EgtMsg(31397) ' Fine Else Return EgtMsg(MSG_MACHININGSDBPAGE + 92) End If End Get End Property Public ReadOnly Property LoTangTxBl As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 87) End Get End Property Public ReadOnly Property LoPerpTxBl As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 88) End Get End Property Public ReadOnly Property LoElevTxBl As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 89) End Get End Property Public ReadOnly Property LoCompLenTxBl As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 90) End Get End Property Public ReadOnly Property ExtLinkTypeTxBl As String Get Return EgtMsg(MSG_MACHININGDB + 57) End Get End Property Public ReadOnly Property CurveUseTxBl As String Get Return EgtMsg(MSG_MACHININGDB + 59) End Get End Property Public ReadOnly Property StepTypeTxBl As String Get Return EgtMsg(MSG_MACHININGDB + 60) End Get End Property Public ReadOnly Property LeadLinkTypeTxBl As String Get If m_MatType = MaterialType.STONE Then Return EgtMsg(90770) ' Collegamento Else Return EgtMsg(MSG_MACHININGDB + 62) ' Tipo approccio End If End Get End Property Public ReadOnly Property InvertToolDirTxBl As String Get Return EgtMsg(MSG_MACHININGDB + 151) End Get End Property Public ReadOnly Property FaceUseTypeTxBl As String Get Return EgtMsg(MSG_MACHININGDB + 152) End Get End Property Public ReadOnly Property InitAngsTxBl As String Get Return EgtMsg(MSG_MACHININGDB + 164) ' Angoli suggeriti End Get End Property Public ReadOnly Property BlockedAxisTxBl As String Get Return EgtMsg(MSG_MACHININGDB + 165) ' Asse bloccato End Get End Property Public ReadOnly Property SolChoiceTypeTxBl As String Get Return EgtMsg(MSG_MACHININGDB + 104) End Get End Property Public ReadOnly Property SpeedTxBl As String Get If m_MatType = MaterialType.STONE Then Return EgtMsg(90725) ' Rotazione Else Return EgtMsg(MSG_MACHININGDB + 63) ' Speed End If End Get End Property Public ReadOnly Property FeedTxBl As String Get If m_MatType = MaterialType.STONE Then Return EgtMsg(90729) ' Avanzamento Else Return EgtMsg(MSG_MACHININGDB + 64) ' Feed End If End Get End Property Public ReadOnly Property StartFeedTxBl As String Get If m_MatType = MaterialType.STONE Then Return EgtMsg(90731) ' Ingresso Else Return EgtMsg(MSG_MACHININGDB + 65) ' Feed iniziale End If End Get End Property Public ReadOnly Property EndFeedTxBl As String Get If m_MatType = MaterialType.STONE Then Return EgtMsg(90732) ' Uscita Else Return EgtMsg(MSG_MACHININGDB + 66) ' Feed finale End If End Get End Property Public ReadOnly Property BackFeedTxBl As String Get If m_MatType = MaterialType.STONE Then Return EgtMsg(90866) ' Ultimo ritorno Else Return EgtMsg(MSG_MACHININGDB + 166) ' Feed ultimo all'indietro End If End Get End Property Public ReadOnly Property SideAngFeedTxBl As String Get Return EgtMsg(90898) 'Tagli inclinati End Get End Property Public ReadOnly Property OffSrTxBl As String Get If m_MatType = MaterialType.STONE Then Return EgtMsg(90737) ' Radiale Else Return EgtMsg(MSG_MACHININGDB + 68) ' Offset radiale End If End Get End Property Public ReadOnly Property OffSlTxBl As String Get If m_MatType = MaterialType.STONE Then Return EgtMsg(90736) ' Longitudinale Else Return EgtMsg(MSG_MACHININGDB + 69) ' Offset longitudinale End If End Get End Property Public ReadOnly Property EpicyclesRadTxBl As String Get Return EgtMsg(31399) ' Raggio epicicli End Get End Property Public ReadOnly Property EpicyclesDistTxBl As String Get Return EgtMsg(31400) ' Distanza epicicli End Get End Property Public ReadOnly Property SideAngleTxBl As String Get If m_MatType = MaterialType.STONE And m_Type = MCH_MY.SAWING Then Return EgtMsg(90763) ' Angolo di sbandamento Else Return EgtMsg(MSG_MACHININGDB + 71) ' Angolo di fianco End If End Get End Property Public ReadOnly Property OffsetSrTxBl As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 68) End Get End Property Public ReadOnly Property OffsetSlTxBl As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 69) End Get End Property Public ReadOnly Property ApproxTxBl As String Get Return EgtMsg(MSG_MACHININGDB + 72) End Get End Property Public ReadOnly Property StartPosTxBl As String Get If m_MatType = MaterialType.STONE Then Return EgtMsg(90768) ' Posizione inizio Else Return EgtMsg(MSG_MACHININGDB + 73) ' Dist. di sicurezza End If End Get End Property Public ReadOnly Property StartSlowLenTxBl As String Get 'If m_MatType = MaterialType.STONE And m_Type = MCH_MY.DRILLING Then ' Return EgtMsg(90780) ' Iniziale 'Else Return EgtMsg(MSG_MACHININGDB + 74) ' Lungh. rallent. iniziale 'End If End Get End Property Public ReadOnly Property EndSlowLenTxBl As String Get 'If m_MatType = MaterialType.STONE And m_Type = MCH_MY.DRILLING Then ' Return EgtMsg(90781) ' Finale 'Else Return EgtMsg(MSG_MACHININGDB + 75) ' Lungh. rallent. finale 'End If End Get End Property Public ReadOnly Property ThrouAddLenTxBl As String Get If m_MatType = MaterialType.STONE And m_Type = MCH_MY.DRILLING Then Return EgtMsg(90782) ' Affondamento aggiuntivo Else Return EgtMsg(MSG_MACHININGDB + 76) ' Lungh. passante agg. End If End Get End Property Public ReadOnly Property StepParTxBl As String Get If m_MatType = MaterialType.STONE Then If m_Type = MCH_MY.SAWFINISHING Or m_Type = MCH_MY.SAWROUGHING Then Return EgtMsg(90788) ' In affondo ElseIf m_Type = MCH_MY.SAWING Then Return EgtMsg(90864) ' Andata ElseIf m_Type = MCH_MY.MILLING Then ' Return EgtMsg(90775) ' Normale Return EgtMsg(MSG_MACHININGDB + 77) ' Passo ElseIf m_Type = MCH_MY.DRILLING Then Return EgtMsg(90774) ' Passo di affondamento Else Return EgtMsg(MSG_MACHININGDB + 77) ' Passo End If Else Return EgtMsg(MSG_MACHININGDB + 77) ' Passo End If End Get End Property Public ReadOnly Property StepBackTxBl As String Get If m_MatType = MaterialType.STONE Then Return EgtMsg(90865) ' Ritorno Else Return EgtMsg(MSG_MACHININGDB + 167) ' Passo all'indietro End If End Get End Property Public ReadOnly Property StepLastTxBl As String Get Return EgtMsg(90897) 'Ultimo taglio End Get End Property Public ReadOnly Property ReturnPosTxBl As String Get Return EgtMsg(MSG_MACHININGDB + 78) End Get End Property Public ReadOnly Property TabLenTxBl As String Get Return EgtMsg(31279) End Get End Property Public ReadOnly Property TabDistTxBl As String Get Return EgtMsg(31282) End Get End Property Public ReadOnly Property TabHeightTxBl As String Get Return EgtMsg(31280) End Get End Property Public ReadOnly Property TabAngleTxBl As String Get Return EgtMsg(31281) End Get End Property Public ReadOnly Property TabMinTxBl As String Get Return EgtMsg(31287) End Get End Property Public ReadOnly Property TabMaxTxBl As String Get Return EgtMsg(31288) End Get End Property Public ReadOnly Property StepExtArcTxBl As String Get If m_MatType = MaterialType.STONE Then Return EgtMsg(90778) ' Esterno archi Else Return EgtMsg(MSG_MACHININGDB + 93) ' Passo su esterno arco End If End Get End Property Public ReadOnly Property StepIntArcTxBl As String Get If m_MatType = MaterialType.STONE Then Return EgtMsg(90777) ' Interno archi Else Return EgtMsg(MSG_MACHININGDB + 94) ' Passo su interno arco End If End Get End Property Public ReadOnly Property SideStepTxBl As String Get If m_MatType = MaterialType.STONE Then Return EgtMsg(90789) ' Di lato Else Return EgtMsg(MSG_MACHININGDB + 95) ' Passo di lato End If End Get End Property Public ReadOnly Property SubStepTxBl As String Get If m_MatType = MaterialType.STONE Then Return EgtMsg(90899) ' Di fine Else Return EgtMsg(6368) ' Passo di fine End If End Get End Property Public ReadOnly Property StepSideAngTxBl As String Get If m_MatType = MaterialType.STONE Then Return EgtMsg(90862) ' Inclinato Else Return EgtMsg(MSG_MACHININGDB + 168) ' Passo inclinato End If End Get End Property Public ReadOnly Property StepSideAngBackTxBl As String Get If m_MatType = MaterialType.STONE Then Return EgtMsg(90863) ' Incl. ritorno Else Return EgtMsg(MSG_MACHININGDB + 169) ' Passo all'indietro inclinato End If End Get End Property Public ReadOnly Property VertFeedTxBl As String Get If m_MatType = MaterialType.STONE Then Return EgtMsg(90790) ' In verticale Else Return EgtMsg(MSG_MACHININGDB + 96) ' Feed verticale End If End Get End Property Public ReadOnly Property NameParTxBl As String Get Return EgtMsg(MSG_MACHININGDB + 97) End Get End Property Public ReadOnly Property ToolTxBl As String Get Return EgtMsg(MSG_MACHININGDB + 98) End Get End Property Public ReadOnly Property DepthStrTxBl As String Get Return EgtMsg(MSG_MACHININGDB + 99) End Get End Property Public ReadOnly Property UserNotesTxBl As String Get Return EgtMsg(MSG_MACHININGDB + 100) End Get End Property Public ReadOnly Property OverLapTxBl As String Get Return EgtMsg(MSG_MACHININGDB + 101) End Get End Property Public ReadOnly Property SubTypeTxBl As String Get If m_Type = MCH_MY.SAWFINISHING Then Return EgtMsg(90861) ' Spatolatura Else Return EgtMsg(MSG_MACHININGDB + 103) ' Sottotipo End If End Get End Property Public ReadOnly Property ForwardAngleTxBl As String Get Return EgtMsg(31370) End Get End Property Public ReadOnly Property ProbingTxBl As String Get Return EgtMsg(90879) ' Abilitazione End Get End Property Public ReadOnly Property ProbingMinDistTxBl As String Get Return EgtMsg(31372) End Get End Property Public ReadOnly Property ProbingMaxDistTxBl As String Get Return EgtMsg(31373) End Get End Property Public ReadOnly Property ExtCornTypeTxBl As String Get Return EgtMsg(31374) End Get End Property Public ReadOnly Property IntCornTypeTxBl As String Get Return EgtMsg(31375) End Get End Property Public ReadOnly Property CornSlowLenTxBl As String Get Return EgtMsg(31376) End Get End Property Public ReadOnly Property CornSlowPercTxBl As String Get Return EgtMsg(31377) End Get End Property Public ReadOnly Property LiHoleTxBl As String Get Return EgtMsg(31378) End Get End Property Public ReadOnly Property LiHoleRadTxBl As String Get Return EgtMsg(31379) End Get End Property Public ReadOnly Property LpTurnsTxBl As String Get Return EgtMsg(31380) End Get End Property Public ReadOnly Property HpTurnsTxBl As String Get Return EgtMsg(31381) End Get End Property Public ReadOnly Property ThicknessFeedTxBl As String Get Return EgtMsg(31070) ' Spessore End Get End Property Public ReadOnly Property TipFeedTxBl As String Get If m_MatType = MaterialType.STONE Then If m_Type = MCH_MY.WATERJETTING Then Return EgtMsg(31201) ' Foratura Else Return EgtMsg(90730) ' Testa End If Else Return EgtMsg(MSG_MACHININGDB + 67) ' Feed di testa End If End Get End Property Public ReadOnly Property MaterialMsg As String Get Return EgtMsg(91451) ' Materiale End Get End Property Public ReadOnly Property MinThicknessMsg As String Get Return EgtMsg(91452) ' Spessore minimo End Get End Property Public ReadOnly Property MaxThicknessMsg As String Get Return EgtMsg(91453) ' Spessore massimo End Get End Property Public ReadOnly Property OscillationGpBxLbl As String Get Return EgtMsg(31382) ' Oscillazione End Get End Property Public ReadOnly Property OscEnableTxBl As String Get Return EgtMsg(31382) ' Oscillazione End Get End Property Public ReadOnly Property OscHeightTxBl As String Get Return EgtMsg(31383) ' Ampiezza End Get End Property Public ReadOnly Property OscRampLenTxBl As String Get Return EgtMsg(31384) ' Lungh. rampa End Get End Property Public ReadOnly Property OscFlatLenTxBl As String Get Return EgtMsg(31385) ' Lungh. cresta End Get End Property Public ReadOnly Property AcrossTxBl As String Get Return EgtMsg(90861) ' Spatolatura End Get End Property Public ReadOnly Property GenericGpBxLbl As String Get Return EgtMsg(31386) ' Generici End Get End Property Public ReadOnly Property AdvancedGpBxLbl As String Get Return EgtMsg(31387) ' Avanzati End Get End Property Public ReadOnly Property StepGpBxLbl As String Get Return EgtMsg(MSG_MACHININGDB + 77) ' Passo End Get End Property Public ReadOnly Property FeedGpBxLbl As String Get Return EgtMsg(90728) ' Feed End Get End Property Public ReadOnly Property OffsetGpBxLbl As String Get Return EgtMsg(90735) ' Sovramateriale End Get End Property Public ReadOnly Property SlowLenGpBxLbl As String Get Return EgtMsg(90779) ' Lunghezza del rallentamento End Get End Property Public ReadOnly Property OverlapGpBxLbl As String Get Return EgtMsg(90227) ' Sovrapposizione End Get End Property Public ReadOnly Property AnglesGpBxLbl As String Get Return EgtMsg(90880) ' Angoli End Get End Property Public ReadOnly Property ProbingGpBxLbl As String Get Return EgtMsg(90868) ' Tastatura End Get End Property Public ReadOnly Property LeadInTypeGpBxLbl As String Get Return EgtMsg(MSG_MACHININGDB + 56) ' Attacco End Get End Property Public ReadOnly Property LeadOutTypeGpBxLbl As String Get Return EgtMsg(MSG_MACHININGDB + 58) ' Uscita End Get End Property Public ReadOnly Property CurveUseGpBxLbl As String Get Return EgtMsg(MSG_MACHININGDB + 59) ' Uso curve End Get End Property Public ReadOnly Property AddLenGpBxLbl As String Get Return EgtMsg(31395) ' Allunga End Get End Property Public ReadOnly Property TypeTxBl As String Get Return EgtMsg(31053) ' Tipo End Get End Property Public ReadOnly Property LeadTangTxBl As String Get Return EgtMsg(31283) ' Dist. tangente End Get End Property Public ReadOnly Property LeadPerpTxBl As String Get Return EgtMsg(31284) ' Dist. perp. End Get End Property Public ReadOnly Property LeadElevTxBl As String Get Return EgtMsg(31285) ' Elevazione End Get End Property Public ReadOnly Property LeadCompLenTxBl As String Get Return EgtMsg(31286) ' Lungh. correz. End Get End Property Public ReadOnly Property AddLenTxBl As String Get Return EgtMsg(31291) ' Lungh. addiz. End Get End Property Public ReadOnly Property EnableTxBl As String Get Return EgtMsg(31394) ' Abilitazione End Get End Property Public ReadOnly Property SpecificLeadInGpBxLb As String Get Return EgtMsg(90894) ' Attacco ceramica End Get End Property Public ReadOnly Property LiTangStoneTxBl As String Get Return EgtMsg(90895) ' Lunghezza End Get End Property Public ReadOnly Property LiElevStoneTxBl As String Get Return EgtMsg(90896) ' Passo End Get End Property Public ReadOnly Property SystemNotesTxBl As String Get Return EgtMsg(31398) ' Note di sistema End Get End Property #Region "MachiningParameterExpander messages" Public ReadOnly Property InvertMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 51) End Get End Property Public ReadOnly Property DepthMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 99) End Get End Property Public ReadOnly Property HeadSideMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 55) End Get End Property Public ReadOnly Property WorkSideMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 54) End Get End Property Public ReadOnly Property UserNotesMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 100) End Get End Property Private m_UserNotesTooltip As String Public ReadOnly Property UserNotesTooltip As String Get Return UserNotes End Get End Property Public ReadOnly Property StartPosMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 73) End Get End Property Public ReadOnly Property ReturnPosMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 78) End Get End Property Public ReadOnly Property OverLapMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 101) End Get End Property Public ReadOnly Property ThrouAddLenMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 76) End Get End Property Public ReadOnly Property StepTypeMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 60) End Get End Property Public ReadOnly Property SubTypeMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 103) End Get End Property Public ReadOnly Property LeadLinkTypeMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 62) End Get End Property Public ReadOnly Property StepParMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 77) End Get End Property Public ReadOnly Property SideStepMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 95) End Get End Property Public ReadOnly Property StartSlowLenMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 74) End Get End Property Public ReadOnly Property EndSlowLenMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 75) End Get End Property Public ReadOnly Property SideAngleMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 71) End Get End Property Public ReadOnly Property OffsetSrMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 68) End Get End Property Public ReadOnly Property OffsetSlMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 69) End Get End Property Public ReadOnly Property AdvancedParamMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 150) End Get End Property Public ReadOnly Property InvertToolDirMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 151) End Get End Property Public ReadOnly Property FaceUseTypeMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 152) End Get End Property Public ReadOnly Property InitAngsMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 164) End Get End Property Public ReadOnly Property BlockedAxisMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 165) End Get End Property Public ReadOnly Property SolChoiceTypeMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 104) End Get End Property Public ReadOnly Property LeadInTypeMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 56) End Get End Property Public ReadOnly Property StartAddLenMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 91) End Get End Property Public ReadOnly Property LiTangMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 83) End Get End Property Public ReadOnly Property LiPerpMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 84) End Get End Property Public ReadOnly Property LiElevMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 85) End Get End Property Public ReadOnly Property LiCompLenMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 86) End Get End Property Public ReadOnly Property LeadOutTypeMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 58) End Get End Property Public ReadOnly Property EndAddLenMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 92) End Get End Property Public ReadOnly Property LoTangMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 87) End Get End Property Public ReadOnly Property LoPerpMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 88) End Get End Property Public ReadOnly Property LoElevMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 89) End Get End Property Public ReadOnly Property LoCompLenMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 90) End Get End Property Public ReadOnly Property ExtLinkTypeMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 57) End Get End Property Public ReadOnly Property LeaveTabMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 52) End Get End Property Public ReadOnly Property TabLenMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 79) End Get End Property Public ReadOnly Property TabHeightMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 80) End Get End Property Public ReadOnly Property TabAngleMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 81) End Get End Property Public ReadOnly Property TabDistMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 82) End Get End Property Public ReadOnly Property CurveUseMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 59) End Get End Property Public ReadOnly Property ApproxMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 72) End Get End Property Public ReadOnly Property StepExtArcMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 93) End Get End Property Public ReadOnly Property StepIntArcMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 94) End Get End Property Public ReadOnly Property SpeedMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 63) End Get End Property Public ReadOnly Property FeedMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 64) End Get End Property Public ReadOnly Property TipFeedMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 67) End Get End Property Public ReadOnly Property StartFeedMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 65) End Get End Property Public ReadOnly Property EndFeedMsg As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 66) End Get End Property Public ReadOnly Property BackFeedMsg As String Get 'If m_MatType = MaterialType.STONE Then ' Return EgtMsg(90866) ' Ultimo ritorno 'Else Return EgtMsg(MSG_MACHININGDB + 166) ' Feed ultimo all'indietro 'End If End Get End Property Public ReadOnly Property SideAngFeedMsg As String Get Return EgtMsg(90898) 'Tagli inclinati End Get End Property Public ReadOnly Property StepBackMsg As String Get 'If m_MatType = MaterialType.STONE Then ' Return EgtMsg(90865) ' Ritorno 'Else Return EgtMsg(MSG_MACHININGDB + 167) ' Passo all'indietro 'End If End Get End Property Public ReadOnly Property StepLastMsg As String Get Return EgtMsg(90897) 'Ultimo taglio End Get End Property Public ReadOnly Property StepSideAngMsg As String Get 'If m_MatType = MaterialType.STONE Then ' Return EgtMsg(90862) ' Inclinato 'Else Return EgtMsg(MSG_MACHININGDB + 168) ' Passo inclinato 'End If End Get End Property Public ReadOnly Property StepSideAngBackMsg As String Get 'If m_MatType = MaterialType.STONE Then ' Return EgtMsg(90863) ' Incl. ritorno 'Else Return EgtMsg(MSG_MACHININGDB + 169) ' Passo all'indietro inclinato 'End If End Get End Property Public ReadOnly Property OperationListHeader As String Get Return EgtMsg(MSG_OPERATION + 1) 'Lista Operazioni End Get End Property Public ReadOnly Property UpdateMachiningBtnMsg As String Get Return EgtMsg(MSG_OPERATION + 3) 'Applica Lavorazione End Get End Property Public ReadOnly Property GenericExpanderHeader As String Get Return EgtMsg(MSG_OPERATION + 7) 'Generici End Get End Property Public ReadOnly Property ToolExpanderHeader As String Get Return EgtMsg(MSG_MACHININGSDBPAGE + 98) & " (" & m_Tool & ")" End Get End Property Public ReadOnly Property ViewToolBtnMsg As String Get Return EgtMsg(MSG_OPERATION + 13) 'Anteprima Utensile End Get End Property Public ReadOnly Property NextStepToolBtnMsg As String Get Return EgtMsg(MSG_OPERATION + 14) 'Avanti End Get End Property Public ReadOnly Property PrevStepToolBtnMsg As String Get Return EgtMsg(MSG_OPERATION + 15) 'Indietro End Get End Property Public ReadOnly Property OscEnableMsg As String Get Return EgtMsg(6378) ' Oscillazione End Get End Property Public ReadOnly Property OscHeightMsg As String Get Return EgtMsg(6379) ' Ampiezza di oscillazione End Get End Property Public ReadOnly Property OscRampLenMsg As String Get Return EgtMsg(6380) ' Lunghezza rampa di oscillazione End Get End Property Public ReadOnly Property OscFlatLenMsg As String Get Return EgtMsg(6381) ' Lunghezza cresta di oscillazione End Get End Property #End Region ' MachiningParameterExpander messages #Region "NOTE MESSAGES" Public ReadOnly Property NoteExpanderName As String Get Return EgtMsg(6076) End Get End Property Public ReadOnly Property ShowNoteToolTip As String Get Return EgtMsg(5425) End Get End Property Public ReadOnly Property ToolNotesBxLbl As String Get Return EgtMsg(31706) ' Note Lavorazione End Get End Property #End Region ' Note Messages #End Region ' Messages #Region "Constructors" Sub New(Name As String, Type As MCH_MY, bIsValidTool As Boolean, Parent As InheritableTreeViewItem) MyBase.New(Name, Parent) Me.m_Type = Type Me.IsValidTool = bIsValidTool Me.m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB End Sub ' Costruttore per MachiningParameterExpanderItem in EgtCAM5 Sub New(Name As String, Type As MCH_MY) MyBase.New(Name) Me.m_Type = Type Me.m_CurrMachTreeViewItemType = MachTreeViewItemType.OPERATION End Sub #End Region ' Constructors #Region "METHODS" Public Overridable Sub ReadMachiningParam() EgtSetCurrentContext(MachiningDbWindowVM.m_ProjectSceneContext) Dim dValue As Double = 0 Dim nValue As Integer = 0 Dim sValue As String = String.Empty m_SuspendAutoToolParamUpdate = True ReadSelectedTool() m_delNotifyPropertyChanged("ParamPageV") NotifyPropertyChanged("TipFeedTxBl") EgtMdbGetCurrMachiningParam(MCH_MP.INVERT, Invert) EgtMdbGetCurrMachiningParam(MCH_MP.LEAVETAB, LeaveTab) EgtMdbGetCurrMachiningParam(MCH_MP.TOOLINVERT, InvertToolDir) EgtMdbGetCurrMachiningParam(MCH_MP.WORKSIDE, nValue) SelectedWorkSide = If(IsNothing(WorkSideList), nValue, IdNameStruct.IndFromId(nValue, WorkSideList)) EgtMdbGetCurrMachiningParam(MCH_MP.HEADSIDE, nValue) SelectedHeadSide = If(IsNothing(HeadSideList), nValue, IdNameStruct.IndFromId(nValue, HeadSideList)) EgtMdbGetCurrMachiningParam(MCH_MP.LEADINTYPE, nValue) SelectedLeadInType = If(IsNothing(LeadInTypeList), nValue, IdNameStruct.IndFromId(nValue, LeadInTypeList)) EgtMdbGetCurrMachiningParam(MCH_MP.EXTLINKTYPE, nValue) SelectedExtLinkType = If(IsNothing(ExtLinkTypeList), nValue, IdNameStruct.IndFromId(nValue, ExtLinkTypeList)) EgtMdbGetCurrMachiningParam(MCH_MP.LEADOUTTYPE, nValue) SelectedLeadOutType = If(IsNothing(LeadOutTypeList), nValue, IdNameStruct.IndFromId(nValue, LeadOutTypeList)) EgtMdbGetCurrMachiningParam(MCH_MP.CURVEUSE, nValue) SelectedCurveUse = If(IsNothing(CurveUseList), nValue, IdNameStruct.IndFromId(nValue, CurveUseList)) EgtMdbGetCurrMachiningParam(MCH_MP.STEPTYPE, nValue) SelectedStepType = If(IsNothing(StepTypeList), nValue, IdNameStruct.IndFromId(nValue, StepTypeList)) EgtMdbGetCurrMachiningParam(MCH_MP.SUBTYPE, nValue) SelectedSubType = If(IsNothing(SubTypeList), nValue, IdNameStruct.IndFromId(nValue, SubTypeList)) EgtMdbGetCurrMachiningParam(MCH_MP.LEADLINKTYPE, nValue) SelectedLeadLinkType = If(IsNothing(LeadLinkTypeList), nValue, IdNameStruct.IndFromId(nValue, LeadLinkTypeList)) EgtMdbGetCurrMachiningParam(MCH_MP.FACEUSE, nValue) SelectedFaceUseType = If(IsNothing(FaceUseTypeList), nValue, IdNameStruct.IndFromId(nValue, FaceUseTypeList)) EgtMdbGetCurrMachiningParam(MCH_MP.SOLCHOICETYPE, nValue) SelectedSolChoiceType = If(IsNothing(SolChoiceTypeList), nValue, IdNameStruct.IndFromId(nValue, SolChoiceTypeList)) EgtMdbGetCurrMachiningParam(MCH_MP.SPEED, dValue) Speed = DoubleToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.FEED, dValue) Feed = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.STARTFEED, dValue) StartFeed = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.ENDFEED, dValue) EndFeed = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.TIPFEED, dValue) TipFeed = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.BACKFEED, dValue) BackFeed = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.SIDEANGFEED, dValue) SideAngFeed = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.THICKREF, dValue) ThicknessFeed = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.OFFSR, dValue) OffSr = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.OFFSL, dValue) OffSl = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.EPICYCLESRAD, dValue) EpicyclesRad = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.EPICYCLESDIST, dValue) EpicyclesDist = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.SIDEANGLE, dValue) SideAngle = DoubleToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.APPROX, dValue) Approx = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.STARTPOS, dValue) StartPos = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.STARTSLOWLEN, dValue) StartSlowLen = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.ENDSLOWLEN, dValue) EndSlowLen = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.THROUADDLEN, dValue) ThrouAddLen = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.STEP_, dValue) StepPar = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.STEPBACK, dValue) StepBack = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.STEPLAST, dValue) StepLast = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.RETURNPOS, dValue) ReturnPos = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.OVERL, dValue) OverLap = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.TABLEN, dValue) TabLen = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.TABDIST, dValue) TabDist = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.TABHEIGHT, dValue) TabHeight = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.TABANGLE, dValue) TabAngle = DoubleToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.TABMAX, nValue) TabMax = nValue.ToString() EgtMdbGetCurrMachiningParam(MCH_MP.TABMIN, nValue) TabMin = nValue.ToString() EgtMdbGetCurrMachiningParam(MCH_MP.LITANG, dValue) LiTang = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.LIPERP, dValue) LiPerp = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.LIELEV, dValue) LiElev = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.LICOMPLEN, dValue) LiCompLen = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.LOTANG, dValue) LoTang = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.LOPERP, dValue) LoPerp = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.LOELEV, dValue) LoElev = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.LOCOMPLEN, dValue) LoCompLen = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.STARTADDLEN, dValue) StartAddLen = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.ENDADDLEN, dValue) EndAddLen = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.STEPEXTARC, dValue) StepExtArc = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.STEPINTARC, dValue) StepIntArc = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.SIDESTEP, dValue) SideStep = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.SUBSTEP, dValue) SubStep = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.STEPSIDEANG, dValue) StepSideAng = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.STEPSIDEANGBACK, dValue) StepSideAngBack = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.VERTFEED, dValue) VertFeed = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.OSCENABLE, OscEnable) EgtMdbGetCurrMachiningParam(MCH_MP.OSCHEIGHT, dValue) OscHeight = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.OSCRAMPLEN, dValue) OscRampLen = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.OSCFLATLEN, dValue) OscFlatLen = LenToString(dValue, 4) EgtMdbGetCurrMachiningParam(MCH_MP.DEPTH_STR, DepthStr) EgtMdbGetCurrMachiningParam(MCH_MP.UUID, m_Uuid) EgtMdbGetCurrMachiningParam(MCH_MP.USERNOTES, UserNotes) EgtMdbGetCurrMachiningParam(MCH_MP.INITANGS, InitAngs) EgtMdbGetCurrMachiningParam(MCH_MP.BLOCKEDAXIS, BlockedAxis) EgtMdbGetCurrMachiningParam(MCH_MP.FORWARDANGLE, dValue) ForwardAngle = DoubleToString(dValue, 3) EgtMdbGetCurrMachiningParam(MCH_MP.PROBING, Probing) ProbingMinDist = LenToString(dValue, 3) EgtMdbGetCurrMachiningParam(MCH_MP.PROBINGMINDIST, dValue) ProbingMinDist = LenToString(dValue, 3) EgtMdbGetCurrMachiningParam(MCH_MP.PROBINGMAXDIST, dValue) ProbingMaxDist = LenToString(dValue, 3) EgtMdbGetCurrMachiningParam(MCH_MP.EXTCORNERTYPE, nValue) SelectedExtCornType = If(IsNothing(ExtCornTypeList), nValue, IdNameStruct.IndFromId(nValue, ExtCornTypeList)) EgtMdbGetCurrMachiningParam(MCH_MP.INTCORNERTYPE, nValue) SelectedIntCornType = If(IsNothing(IntCornTypeList), nValue, IdNameStruct.IndFromId(nValue, IntCornTypeList)) EgtMdbGetCurrMachiningParam(MCH_MP.CORNERSLOWLEN, dValue) CornSlowLen = LenToString(dValue, 3) EgtMdbGetCurrMachiningParam(MCH_MP.CORNERSLOWPERC, nValue) CornSlowPerc = nValue.ToString() EgtMdbGetCurrMachiningParam(MCH_MP.LIHOLE, LiHole) EgtMdbGetCurrMachiningParam(MCH_MP.LIHOLERAD, dValue) LiHoleRad = LenToString(dValue, 3) EgtMdbGetCurrMachiningParam(MCH_MP.LPTURNS, nValue) LpTurns = nValue.ToString() EgtMdbGetCurrMachiningParam(MCH_MP.HPTURNS, nValue) HpTurns = nValue.ToString() EgtMdbGetCurrMachiningParam(MCH_MP.LITANG, dValue) LiTang = LenToString(dValue, 3) EgtMdbGetCurrMachiningParam(MCH_MP.LIPERP, dValue) LiPerp = LenToString(dValue, 3) EgtMdbGetCurrMachiningParam(MCH_MP.LOTANG, dValue) LoTang = LenToString(dValue, 3) EgtMdbGetCurrMachiningParam(MCH_MP.LOPERP, dValue) LoPerp = LenToString(dValue, 3) InitCurrentMachine(MachiningDbWindowVM.m_sMachineIniPath) EgtMdbGetCurrMachiningParam(MCH_MP.SYSNOTES, SystemNotes) ' Compilo lista materiali m_MaterialList.Clear() For i = 0 To Materials.Count - 1 Dim Material = Materials(i) If bWaterJet And bFromDBWaterJet Then m_MaterialList.Add(New MachiningMaterial(Material.nId, Material.sName, Material.nSubId, AddressOf SetSystemNotes)) Else m_MaterialList.Add(New MachiningMaterial(Material.nId, Material.sName, AddressOf SetSystemNotes)) End If Next If m_SystemNotes <> String.Empty Then Dim sItems() = m_SystemNotes.Split(";".ToCharArray) If bWaterJet And bFromDBWaterJet Then Dim Index As Integer = 0 For Each Material In m_MaterialList Dim Param() As String = sItems(Index).Split(",".ToCharArray) Dim CurrMatId As String = String.Empty Dim CurrMatSubId As String = String.Empty For Each Mat In CurrentMachine.Materials If Mat.sName = Material.sName Then CurrMatId = Mat.nId.ToString() CurrMatSubId = Mat.nSubId.ToString() Exit For End If Next Dim SubParam() As String = Param(0).Split(".".ToCharArray) If SubParam(0) = CurrMatId.ToString() AndAlso SubParam.Count > 1 AndAlso SubParam(1) = CurrMatSubId.ToString() Then Dim dVal As Double = 0 StringToDouble(Param(1), dVal) Material.SetMinThickness(LenToString(dVal, 2)) StringToDouble(Param(2), dVal) Material.SetMaxThickness(LenToString(dVal, 2)) 'Material.bIsActive = True Index += 1 Else 'Material.bIsActive = False End If Next Else Dim Index As Integer = 0 For Each Material In m_MaterialList Dim Param() As String = sItems(Index).Split(",".ToCharArray) Dim nParId As Integer = 0 If StringToInt(Param(0), nParId) AndAlso nParId = Material.nId Then Dim dVal As Double = 0 StringToDouble(Param(1), dVal) Material.SetMinThickness(LenToString(dVal, 2)) StringToDouble(Param(2), dVal) Material.SetMaxThickness(LenToString(dVal, 2)) 'Material.bIsActive = True Index += 1 Else 'Material.bIsActive = False End If Next End If End If ' Apro paragrafo Note m_NotesList.Clear() m_NotesListCombo.Clear() GetNoteList() GetComboNoteList() NotifyPropertyChanged("MaterialList") m_SuspendAutoToolParamUpdate = False End Sub Public Overridable Sub ReadOperationParam() Dim nValue As Integer = 0 Dim dValue As Double = 0 NotifyPropertyChanged("ParamExpanderPageV") EgtGetMachiningParam(MCH_MP.TYPE, nValue) m_Type = DirectCast(nValue, MCH_MY) NotifyPropertyChanged("Type") EgtGetMachiningParam(MCH_MP.INVERT, m_Invert) NotifyPropertyChanged("Invert") m_IsModifiedInvert = False EgtGetMachiningParam(MCH_MP.LEAVETAB, m_LeaveTab) NotifyPropertyChanged("LeaveTab") m_IsModifiedLeaveTab = False EgtGetMachiningParam(MCH_MP.TOOLINVERT, m_ToolInvert) NotifyPropertyChanged("ToolInvert") m_IsModifiedToolInvert = False EgtGetMachiningParam(MCH_MP.OSCENABLE, m_OscEnable) NotifyPropertyChanged("OscEnable") m_IsModifiedOscEnable = False NotifyPropertyChanged("WorkSideList") EgtGetMachiningParam(MCH_MP.WORKSIDE, nValue) m_SelectedWorkSide = If(IsNothing(WorkSideList), nValue, IdNameStruct.IndFromId(nValue, WorkSideList)) NotifyPropertyChanged("SelectedWorkSide") m_IsModifiedSelectedWorkSide = False NotifyPropertyChanged("HeadSideList") EgtGetMachiningParam(MCH_MP.HEADSIDE, nValue) m_SelectedHeadSide = If(IsNothing(HeadSideList), nValue, IdNameStruct.IndFromId(nValue, HeadSideList)) NotifyPropertyChanged("SelectedHeadSide") m_IsModifiedSelectedHeadSide = False NotifyPropertyChanged("LeadInTypeList") EgtGetMachiningParam(MCH_MP.LEADINTYPE, nValue) m_SelectedLeadInType = If(IsNothing(LeadInTypeList), nValue, IdNameStruct.IndFromId(nValue, LeadInTypeList)) NotifyPropertyChanged("SelectedLeadInType") m_IsModifiedSelectedLeadInType = False NotifyPropertyChanged("ExtLinkTypeList") EgtGetMachiningParam(MCH_MP.EXTLINKTYPE, nValue) m_SelectedExtLinkType = If(IsNothing(ExtLinkTypeList), nValue, IdNameStruct.IndFromId(nValue, ExtLinkTypeList)) NotifyPropertyChanged("SelectedExtLinkType") m_IsModifiedSelectedExtLinkType = False NotifyPropertyChanged("LeadOutTypeList") EgtGetMachiningParam(MCH_MP.LEADOUTTYPE, nValue) m_SelectedLeadOutType = If(IsNothing(LeadOutTypeList), nValue, IdNameStruct.IndFromId(nValue, LeadOutTypeList)) NotifyPropertyChanged("SelectedLeadOutType") m_IsModifiedSelectedLeadOutType = False NotifyPropertyChanged("CurveUseList") EgtGetMachiningParam(MCH_MP.CURVEUSE, nValue) m_SelectedCurveUse = If(IsNothing(CurveUseList), nValue, IdNameStruct.IndFromId(nValue, CurveUseList)) NotifyPropertyChanged("SelectedCurveUse") m_IsModifiedSelectedCurveUse = False NotifyPropertyChanged("StepTypeList") EgtGetMachiningParam(MCH_MP.STEPTYPE, nValue) m_SelectedStepType = If(IsNothing(StepTypeList), nValue, IdNameStruct.IndFromId(nValue, StepTypeList)) NotifyPropertyChanged("SelectedStepType") m_IsModifiedSelectedStepType = False NotifyPropertyChanged("SubTypeList") EgtGetMachiningParam(MCH_MP.SUBTYPE, nValue) m_SelectedSubType = If(IsNothing(SubTypeList), nValue, IdNameStruct.IndFromId(nValue, SubTypeList)) NotifyPropertyChanged("SelectedSubType") m_IsModifiedSelectedSubType = False NotifyPropertyChanged("LeadLinkTypeList") EgtGetMachiningParam(MCH_MP.LEADLINKTYPE, nValue) m_SelectedLeadLinkType = If(IsNothing(LeadLinkTypeList), nValue, IdNameStruct.IndFromId(nValue, LeadLinkTypeList)) NotifyPropertyChanged("SelectedLeadLinkType") m_IsModifiedSelectedLeadLinkType = False NotifyPropertyChanged("FaceUseTypeList") EgtGetMachiningParam(MCH_MP.FACEUSE, nValue) m_SelectedFaceUseType = If(IsNothing(FaceUseTypeList), nValue, IdNameStruct.IndFromId(nValue, FaceUseTypeList)) NotifyPropertyChanged("SelectedFaceUseType") m_IsModifiedSelectedFaceUseType = False NotifyPropertyChanged("SolChoiceTypeList") EgtGetMachiningParam(MCH_MP.SOLCHOICETYPE, nValue) m_SelectedSolChoiceType = If(IsNothing(SolChoiceTypeList), nValue, IdNameStruct.IndFromId(nValue, SolChoiceTypeList)) NotifyPropertyChanged("SelectedSolChoiceType") m_IsModifiedSelectedSolChoiceType = False EgtGetMachiningParam(MCH_MP.SPEED, dValue) m_Speed = DoubleToString(dValue, 4) NotifyPropertyChanged("Speed") m_IsModifiedSpeed = False EgtGetMachiningParam(MCH_MP.FEED, dValue) m_Feed = LenToString(dValue, 4) NotifyPropertyChanged("Feed") m_IsModifiedFeed = False EgtGetMachiningParam(MCH_MP.STARTFEED, dValue) m_StartFeed = LenToString(dValue, 4) NotifyPropertyChanged("StartFeed") m_IsModifiedStartFeed = False EgtGetMachiningParam(MCH_MP.ENDFEED, dValue) m_EndFeed = LenToString(dValue, 4) NotifyPropertyChanged("EndFeed") m_IsModifiedEndFeed = False EgtGetMachiningParam(MCH_MP.TIPFEED, dValue) m_TipFeed = LenToString(dValue, 4) NotifyPropertyChanged("TipFeed") m_IsModifiedTipFeed = False EgtGetMachiningParam(MCH_MP.BACKFEED, dValue) m_BackFeed = LenToString(dValue, 4) NotifyPropertyChanged("BackFeed") m_IsModifiedBackFeed = False EgtGetMachiningParam(MCH_MP.SIDEANGFEED, dValue) m_SideAngFeed = LenToString(dValue, 4) NotifyPropertyChanged("SideAngFeed") m_IsModifiedSideAngFeed = False EgtGetMachiningParam(MCH_MP.THICKREF, dValue) m_ThicknessFeed = LenToString(dValue, 4) NotifyPropertyChanged("ThicknessFeed") m_IsModifiedThicknessFeed = False EgtGetMachiningParam(MCH_MP.OFFSR, dValue) m_OffSr = LenToString(dValue, 4) NotifyPropertyChanged("OffSr") m_IsModifiedOffSr = False EgtGetMachiningParam(MCH_MP.OFFSL, dValue) m_OffSl = LenToString(dValue, 4) NotifyPropertyChanged("OffSl") m_IsModifiedOffSl = False EgtGetMachiningParam(MCH_MP.EPICYCLESRAD, dValue) m_EpicyclesRad = LenToString(dValue, 4) NotifyPropertyChanged("EpicyclesRad") m_IsModifiedEpicyclesRad = False EgtGetMachiningParam(MCH_MP.EPICYCLESDIST, dValue) m_EpicyclesDist = LenToString(dValue, 4) NotifyPropertyChanged("EpicyclesDist") m_IsModifiedEpicyclesDist = False EgtGetMachiningParam(MCH_MP.SIDEANGLE, dValue) m_SideAngle = DoubleToString(dValue, 4) NotifyPropertyChanged("SideAngle") m_IsModifiedSideAngle = False EgtGetMachiningParam(MCH_MP.APPROX, dValue) m_Approx = LenToString(dValue, 4) NotifyPropertyChanged("Approx") m_IsModifiedApprox = False EgtGetMachiningParam(MCH_MP.STARTPOS, dValue) m_StartPos = LenToString(dValue, 4) NotifyPropertyChanged("StartPos") m_IsModifiedStartPos = False EgtGetMachiningParam(MCH_MP.STARTSLOWLEN, dValue) m_StartSlowLen = LenToString(dValue, 4) NotifyPropertyChanged("StartSlowLen") m_IsModifiedStartSlowLen = False EgtGetMachiningParam(MCH_MP.ENDSLOWLEN, dValue) m_EndSlowLen = LenToString(dValue, 4) NotifyPropertyChanged("EndSlowLen") m_IsModifiedEndSlowLen = False EgtGetMachiningParam(MCH_MP.THROUADDLEN, dValue) m_ThrouAddLen = LenToString(dValue, 4) NotifyPropertyChanged("ThrouAddLen") m_IsModifiedThrouAddLen = False EgtGetMachiningParam(MCH_MP.STEP_, dValue) m_StepPar = LenToString(dValue, 4) NotifyPropertyChanged("StepPar") m_IsModifiedStepPar = False EgtGetMachiningParam(MCH_MP.STEPBACK, dValue) m_StepBack = LenToString(dValue, 4) NotifyPropertyChanged("StepBack") m_IsModifiedStepBack = False EgtGetMachiningParam(MCH_MP.STEPLAST, dValue) m_StepLast = LenToString(dValue, 4) NotifyPropertyChanged("StepLast") m_IsModifiedStepLast = False EgtGetMachiningParam(MCH_MP.STEPSIDEANG, dValue) m_StepSideAng = LenToString(dValue, 4) NotifyPropertyChanged("StepSideAng") m_IsModifiedStepSideAng = False EgtGetMachiningParam(MCH_MP.STEPSIDEANGBACK, dValue) m_StepSideAngBack = LenToString(dValue, 4) NotifyPropertyChanged("StepSideAngBack") m_IsModifiedStepSideAngBack = False EgtGetMachiningParam(MCH_MP.RETURNPOS, dValue) m_ReturnPos = LenToString(dValue, 4) NotifyPropertyChanged("ReturnPos") m_IsModifiedReturnPos = False EgtGetMachiningParam(MCH_MP.OVERL, dValue) m_OverLap = LenToString(dValue, 4) NotifyPropertyChanged("OverLap") m_IsModifiedOverLap = False EgtGetMachiningParam(MCH_MP.TABLEN, dValue) m_TabLen = LenToString(dValue, 4) NotifyPropertyChanged("TabLen") m_IsModifiedTabLen = False EgtGetMachiningParam(MCH_MP.TABDIST, dValue) m_TabDist = LenToString(dValue, 4) NotifyPropertyChanged("TabDist") m_IsModifiedTabDist = False EgtGetMachiningParam(MCH_MP.TABHEIGHT, dValue) m_TabHeight = LenToString(dValue, 4) NotifyPropertyChanged("TabHeight") m_IsModifiedTabHeight = False EgtGetMachiningParam(MCH_MP.TABANGLE, dValue) m_TabAngle = LenToString(dValue, 4) NotifyPropertyChanged("TabAngle") m_IsModifiedTabAngle = False EgtGetMachiningParam(MCH_MP.TABMAX, nValue) m_TabMax = nValue.ToString() NotifyPropertyChanged("TabMax") m_IsModifiedTabMax = False EgtGetMachiningParam(MCH_MP.TABMIN, nValue) m_TabMin = nValue.ToString() NotifyPropertyChanged("TabMin") m_IsModifiedTabMin = False EgtGetMachiningParam(MCH_MP.LITANG, dValue) m_LiTang = LenToString(dValue, 4) NotifyPropertyChanged("LiTang") m_IsModifiedLiTang = False EgtGetMachiningParam(MCH_MP.LIPERP, dValue) m_LiPerp = LenToString(dValue, 4) NotifyPropertyChanged("LiPerp") m_IsModifiedLiPerp = False EgtGetMachiningParam(MCH_MP.LIELEV, dValue) m_LiElev = LenToString(dValue, 4) NotifyPropertyChanged("LiElev") m_IsModifiedLiElev = False EgtGetMachiningParam(MCH_MP.LICOMPLEN, dValue) m_LiCompLen = LenToString(dValue, 4) NotifyPropertyChanged("LiCompLen") m_IsModifiedLiCompLen = False EgtGetMachiningParam(MCH_MP.LOTANG, dValue) m_LoTang = LenToString(dValue, 4) NotifyPropertyChanged("LoTang") m_IsModifiedLoTang = False EgtGetMachiningParam(MCH_MP.LOPERP, dValue) m_LoPerp = LenToString(dValue, 4) NotifyPropertyChanged("LoPerp") m_IsModifiedLoPerp = False EgtGetMachiningParam(MCH_MP.LOELEV, dValue) m_LoElev = LenToString(dValue, 4) NotifyPropertyChanged("LoElev") m_IsModifiedLoElev = False EgtGetMachiningParam(MCH_MP.LOCOMPLEN, dValue) m_LoCompLen = LenToString(dValue, 4) NotifyPropertyChanged("LoCompLen") m_IsModifiedLoCompLen = False EgtGetMachiningParam(MCH_MP.STARTADDLEN, dValue) m_StartAddLen = LenToString(dValue, 4) NotifyPropertyChanged("StartAddLen") m_IsModifiedStartAddLen = False EgtGetMachiningParam(MCH_MP.ENDADDLEN, dValue) m_EndAddLen = LenToString(dValue, 4) NotifyPropertyChanged("EndAddLen") m_IsModifiedEndAddLen = False EgtGetMachiningParam(MCH_MP.STEPEXTARC, dValue) m_StepExtArc = LenToString(dValue, 4) NotifyPropertyChanged("StepExtArc") m_IsModifiedStepExtArc = False EgtGetMachiningParam(MCH_MP.STEPEXTARC, dValue) m_StepExtArc = LenToString(dValue, 4) NotifyPropertyChanged("StepExtArc") m_IsModifiedStepExtArc = False EgtGetMachiningParam(MCH_MP.STEPINTARC, dValue) m_StepIntArc = LenToString(dValue, 4) NotifyPropertyChanged("StepIntArc") m_IsModifiedStepIntArc = False EgtGetMachiningParam(MCH_MP.SIDESTEP, dValue) m_SideStep = LenToString(dValue, 4) NotifyPropertyChanged("SideStep") m_IsModifiedSideStep = False EgtGetMachiningParam(MCH_MP.SUBSTEP, dValue) m_SubStep = LenToString(dValue, 4) NotifyPropertyChanged(NameOf(SubStep)) m_IsModifiedSubStep = False EgtGetMachiningParam(MCH_MP.VERTFEED, dValue) m_VertFeed = LenToString(dValue, 4) NotifyPropertyChanged("VertFeed") m_IsModifiedVertFeed = False EgtGetMachiningParam(MCH_MP.OSCHEIGHT, dValue) m_OscHeight = LenToString(dValue, 4) NotifyPropertyChanged("OscHeight") m_IsModifiedOscHeight = False EgtGetMachiningParam(MCH_MP.OSCRAMPLEN, dValue) m_OscRampLen = LenToString(dValue, 4) NotifyPropertyChanged("OscRampLen") m_IsModifiedOscRampLen = False EgtGetMachiningParam(MCH_MP.OSCFLATLEN, dValue) m_OscFlatLen = LenToString(dValue, 4) NotifyPropertyChanged("OscFlatLen") m_IsModifiedOscFlatLen = False EgtGetMachiningParam(MCH_MP.TOOL, m_Tool) NotifyPropertyChanged("ToolExpanderHeader") EgtGetMachiningParam(MCH_MP.DEPTH_STR, m_DepthStr) NotifyPropertyChanged("DepthStr") m_IsModifiedDepthStr = False EgtGetMachiningParam(MCH_MP.USERNOTES, m_UserNotes) NotifyPropertyChanged(NameOf(UserNotes)) m_IsModifiedUserNotes = False EgtGetMachiningParam(MCH_MP.SYSNOTES, m_SystemNotes) NotifyPropertyChanged("SystemNotes") EgtGetMachiningParam(MCH_MP.INITANGS, m_InitAngs) NotifyPropertyChanged("InitAngs") m_IsModifiedInitAngs = False EgtGetMachiningParam(MCH_MP.BLOCKEDAXIS, m_BlockedAxis) NotifyPropertyChanged("BlockedAxis") m_IsModifiedBlockedAxis = False EgtGetMachiningParam(MCH_MP.FORWARDANGLE, dValue) m_ForwardAngle = DoubleToString(dValue, 4) NotifyPropertyChanged("ForwardAngle") m_IsModifiedForwardAngle = False EgtGetMachiningParam(MCH_MP.PROBING, m_Probing) NotifyPropertyChanged("Probing") m_IsModifiedProbing = False EgtGetMachiningParam(MCH_MP.PROBINGMINDIST, dValue) m_ProbingMinDist = LenToString(dValue, 4) NotifyPropertyChanged("ProbingMinDist") m_IsModifiedProbingMinDist = False EgtGetMachiningParam(MCH_MP.PROBINGMAXDIST, dValue) m_ProbingMaxDist = LenToString(dValue, 4) NotifyPropertyChanged("ProbingMaxDist") m_IsModifiedProbingMaxDist = False NotifyPropertyChanged("ExtCornTypeList") EgtGetMachiningParam(MCH_MP.EXTCORNERTYPE, nValue) m_SelectedExtCornType = If(IsNothing(ExtCornTypeList), nValue, IdNameStruct.IndFromId(nValue, ExtCornTypeList)) NotifyPropertyChanged("SelectedExtCornType") m_IsModifiedSelectedExtCornType = False NotifyPropertyChanged("IntCornTypeList") EgtGetMachiningParam(MCH_MP.INTCORNERTYPE, nValue) m_SelectedIntCornType = If(IsNothing(IntCornTypeList), nValue, IdNameStruct.IndFromId(nValue, IntCornTypeList)) NotifyPropertyChanged("SelectedIntCornType") m_IsModifiedSelectedIntCornType = False EgtGetMachiningParam(MCH_MP.CORNERSLOWLEN, dValue) m_CornSlowLen = LenToString(dValue, 4) NotifyPropertyChanged("CornSlowLen") m_IsModifiedCornSlowLen = False EgtGetMachiningParam(MCH_MP.CORNERSLOWPERC, nValue) m_CornSlowPerc = nValue.ToString() NotifyPropertyChanged("CornSlowPerc") m_IsModifiedCornSlowPerc = False EgtGetMachiningParam(MCH_MP.LIHOLE, LiHole) NotifyPropertyChanged("LiHole") m_IsModifiedLiHole = False EgtGetMachiningParam(MCH_MP.LIHOLERAD, dValue) m_LiHoleRad = LenToString(dValue, 4) NotifyPropertyChanged("LiHoleRad") m_IsModifiedLiHoleRad = False EgtGetMachiningParam(MCH_MP.LPTURNS, nValue) m_LpTurns = nValue.ToString() NotifyPropertyChanged("LpTurns") m_IsModifiedLpTurns = False EgtGetMachiningParam(MCH_MP.HPTURNS, nValue) m_HpTurns = nValue.ToString() NotifyPropertyChanged("HpTurns") m_IsModifiedHpTurns = False ' Apro paragrafo Note m_NotesList.Clear() m_NotesListCombo.Clear() GetNoteList() GetComboNoteList() RaiseEvent m_IsModified(IsModified()) End Sub Friend Sub ReadMachiningName() EgtMdbGetCurrMachiningParam(MCH_MP.NAME, NamePar) End Sub Private Sub ReadSelectedTool() ReadTool = True Dim sValue As String = String.Empty EgtMdbGetCurrMachiningParam(MCH_MP.TUUID, sValue) Dim sToolName As String = String.Empty EgtTdbGetToolFromUUID(sValue, sToolName) Dim sMachToolName As String = String.Empty EgtMdbGetCurrMachiningParam(MCH_MP.TOOL, sMachToolName) If sToolName <> sMachToolName Then EgtMdbSetCurrMachiningParam(MCH_MP.TOOL, sToolName) EgtMdbSaveCurrMachining() End If If IsNothing(m_ToolList) Then Dim i As Integer = ToolList.Count() End If Dim bFound As Boolean = False For i = 0 To m_ToolList.Count - 1 If m_ToolList(i) = sToolName Then bFound = True SelectedTool = i End If Next If Not bFound Then SelectedTool = -1 End If ReadTool = False End Sub Public Overridable Sub WriteMachiningParam() EgtSetCurrentContext(MachiningDbWindowVM.m_ProjectSceneContext) Dim nValue As Integer = 0 Dim dValue As Double = 0 If SelectedTool >= 0 Then EgtMdbSetCurrMachiningParam(MCH_MP.TOOL, m_ToolList(SelectedTool)) Else EgtMdbSetCurrMachiningParam(MCH_MP.TOOL, "") End If EgtMdbSetCurrMachiningParam(MCH_MP.INVERT, Invert) EgtMdbSetCurrMachiningParam(MCH_MP.LEAVETAB, LeaveTab) EgtMdbSetCurrMachiningParam(MCH_MP.TOOLINVERT, InvertToolDir) EgtMdbSetCurrMachiningParam(MCH_MP.TYPE, Type) nValue = If(IsNothing(WorkSideList), m_SelectedWorkSide, IdNameStruct.IdFromInd(m_SelectedWorkSide, WorkSideList)) EgtMdbSetCurrMachiningParam(MCH_MP.WORKSIDE, nValue) nValue = If(IsNothing(HeadSideList), m_SelectedHeadSide, IdNameStruct.IdFromInd(m_SelectedHeadSide, HeadSideList)) EgtMdbSetCurrMachiningParam(MCH_MP.HEADSIDE, nValue) nValue = If(IsNothing(LeadInTypeList), m_SelectedLeadInType, IdNameStruct.IdFromInd(m_SelectedLeadInType, LeadInTypeList)) EgtMdbSetCurrMachiningParam(MCH_MP.LEADINTYPE, nValue) nValue = If(IsNothing(LeadInTypeList), m_SelectedExtLinkType, IdNameStruct.IdFromInd(m_SelectedExtLinkType, ExtLinkTypeList)) EgtMdbSetCurrMachiningParam(MCH_MP.EXTLINKTYPE, nValue) nValue = If(IsNothing(LeadOutTypeList), m_SelectedLeadOutType, IdNameStruct.IdFromInd(m_SelectedLeadOutType, LeadOutTypeList)) EgtMdbSetCurrMachiningParam(MCH_MP.LEADOUTTYPE, nValue) nValue = If(IsNothing(CurveUseList), m_SelectedCurveUse, IdNameStruct.IdFromInd(m_SelectedCurveUse, CurveUseList)) EgtMdbSetCurrMachiningParam(MCH_MP.CURVEUSE, nValue) nValue = If(IsNothing(StepTypeList), m_SelectedStepType, IdNameStruct.IdFromInd(m_SelectedStepType, StepTypeList)) EgtMdbSetCurrMachiningParam(MCH_MP.STEPTYPE, nValue) nValue = If(IsNothing(SubTypeList), m_SelectedSubType, IdNameStruct.IdFromInd(m_SelectedSubType, SubTypeList)) EgtMdbSetCurrMachiningParam(MCH_MP.SUBTYPE, nValue) nValue = If(IsNothing(LeadLinkTypeList), m_SelectedLeadLinkType, IdNameStruct.IdFromInd(m_SelectedLeadLinkType, LeadLinkTypeList)) EgtMdbSetCurrMachiningParam(MCH_MP.LEADLINKTYPE, nValue) nValue = If(IsNothing(FaceUseTypeList), m_SelectedFaceUseType, IdNameStruct.IdFromInd(m_SelectedFaceUseType, FaceUseTypeList)) EgtMdbSetCurrMachiningParam(MCH_MP.FACEUSE, nValue) nValue = If(IsNothing(SolChoiceTypeList), m_SelectedSolChoiceType, IdNameStruct.IdFromInd(m_SelectedSolChoiceType, SolChoiceTypeList)) EgtMdbSetCurrMachiningParam(MCH_MP.SOLCHOICETYPE, nValue) StringToDouble(Speed, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.SPEED, dValue) StringToLen(Feed, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.FEED, dValue) StringToLen(StartFeed, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.STARTFEED, dValue) StringToLen(EndFeed, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.ENDFEED, dValue) StringToLen(TipFeed, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.TIPFEED, dValue) StringToLen(BackFeed, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.BACKFEED, dValue) StringToLen(SideAngFeed, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.SIDEANGFEED, dValue) StringToLen(ThicknessFeed, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.THICKREF, dValue) StringToLen(OffSr, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.OFFSR, dValue) StringToLen(OffSl, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.OFFSL, dValue) StringToLen(EpicyclesRad, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.EPICYCLESRAD, dValue) StringToLen(EpicyclesDist, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.EPICYCLESDIST, dValue) StringToDouble(SideAngle, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.SIDEANGLE, dValue) StringToLen(Approx, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.APPROX, dValue) StringToLen(StartPos, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.STARTPOS, dValue) StringToLen(StartSlowLen, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.STARTSLOWLEN, dValue) StringToLen(EndSlowLen, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.ENDSLOWLEN, dValue) StringToLen(ThrouAddLen, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.THROUADDLEN, dValue) StringToLen(StepPar, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.STEP_, dValue) StringToLen(StepBack, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.STEPBACK, dValue) StringToLen(StepLast, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.STEPLAST, dValue) StringToLen(ReturnPos, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.RETURNPOS, dValue) StringToLen(OverLap, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.OVERL, dValue) StringToLen(TabLen, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.TABLEN, dValue) StringToLen(TabDist, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.TABDIST, dValue) StringToLen(TabHeight, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.TABHEIGHT, dValue) StringToDouble(TabAngle, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.TABANGLE, dValue) Int32.TryParse(TabMax, nValue) EgtMdbSetCurrMachiningParam(MCH_MP.TABMAX, nValue) Int32.TryParse(TabMin, nValue) EgtMdbSetCurrMachiningParam(MCH_MP.TABMIN, nValue) StringToLen(LiTang, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.LITANG, dValue) StringToLen(LiPerp, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.LIPERP, dValue) StringToLen(LiElev, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.LIELEV, dValue) StringToLen(LiCompLen, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.LICOMPLEN, dValue) StringToLen(LoTang, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.LOTANG, dValue) StringToLen(LoPerp, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.LOPERP, dValue) StringToLen(LoElev, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.LOELEV, dValue) StringToLen(LoCompLen, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.LOCOMPLEN, dValue) StringToLen(StartAddLen, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.STARTADDLEN, dValue) StringToLen(EndAddLen, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.ENDADDLEN, dValue) StringToLen(StepExtArc, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.STEPEXTARC, dValue) StringToLen(StepIntArc, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.STEPINTARC, dValue) StringToLen(SideStep, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.SIDESTEP, dValue) StringToLen(SubStep, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.SUBSTEP, dValue) StringToLen(StepSideAng, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.STEPSIDEANG, dValue) StringToLen(StepSideAngBack, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.STEPSIDEANGBACK, dValue) StringToLen(VertFeed, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.VERTFEED, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.OSCENABLE, OscEnable) StringToLen(OscHeight, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.OSCHEIGHT, dValue) StringToLen(OscRampLen, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.OSCRAMPLEN, dValue) StringToLen(OscFlatLen, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.OSCFLATLEN, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.DEPTH_STR, DepthStr) EgtMdbSetCurrMachiningParam(MCH_MP.USERNOTES, UserNotes) EgtMdbSetCurrMachiningParam(MCH_MP.INITANGS, InitAngs) EgtMdbSetCurrMachiningParam(MCH_MP.BLOCKEDAXIS, BlockedAxis) StringToDouble(ForwardAngle, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.FORWARDANGLE, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.PROBING, Probing) StringToLen(ProbingMinDist, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.PROBINGMINDIST, dValue) StringToLen(ProbingMaxDist, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.PROBINGMAXDIST, dValue) nValue = If(IsNothing(ExtCornTypeList), m_SelectedExtCornType, IdNameStruct.IdFromInd(m_SelectedExtCornType, ExtCornTypeList)) EgtMdbSetCurrMachiningParam(MCH_MP.EXTCORNERTYPE, nValue) nValue = If(IsNothing(IntCornTypeList), m_SelectedIntCornType, IdNameStruct.IdFromInd(m_SelectedIntCornType, IntCornTypeList)) EgtMdbSetCurrMachiningParam(MCH_MP.INTCORNERTYPE, nValue) StringToLen(CornSlowLen, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.CORNERSLOWLEN, dValue) Int32.TryParse(CornSlowPerc, nValue) EgtMdbSetCurrMachiningParam(MCH_MP.CORNERSLOWPERC, nValue) EgtMdbSetCurrMachiningParam(MCH_MP.LIHOLE, LiHole) StringToLen(LiHoleRad, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.LIHOLERAD, dValue) Int32.TryParse(LpTurns, nValue) EgtMdbSetCurrMachiningParam(MCH_MP.LPTURNS, nValue) Int32.TryParse(HpTurns, nValue) EgtMdbSetCurrMachiningParam(MCH_MP.HPTURNS, nValue) StringToLen(LiTang, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.LITANG, dValue) StringToLen(LiPerp, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.LIPERP, dValue) StringToLen(LoTang, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.LOTANG, dValue) StringToLen(LoPerp, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.LOPERP, dValue) EgtMdbSetCurrMachiningParam(MCH_MP.SYSNOTES, SystemNotes) ' Scrivo le note utente WriteOperationParamNote() SetComboAddVisibility(Visibility.Collapsed) ' verifico se l'utensile è valido Dim sTUUID As String = String.Empty EgtMdbGetCurrMachiningParam(MCH_MP.TUUID, sTUUID) IsValidTool = ToolDbUtility.IsToolInDb(sTUUID) Dim FamilyTool As FamilyMachiningTreeViewItem = DirectCast(m_Parent, FamilyMachiningTreeViewItem) FamilyTool.VerifyMachiningValidity() End Sub Public Overridable Sub WriteOperationParam() ' EgtSetCurrentContext(MachiningDbWindowVM.m_ProjectSceneContext) Dim nValue As Integer = 0 Dim dValue As Double = 0 If m_IsModifiedInvert Then If EgtSetMachiningParam(MCH_MP.INVERT, m_Invert) Then m_IsModifiedInvert = False End If End If If m_IsModifiedLeaveTab Then If EgtSetMachiningParam(MCH_MP.LEAVETAB, m_LeaveTab) Then m_IsModifiedLeaveTab = False End If End If If m_IsModifiedToolInvert Then If EgtSetMachiningParam(MCH_MP.TOOLINVERT, m_ToolInvert) Then m_IsModifiedToolInvert = False End If End If If m_IsModifiedOscEnable Then If EgtSetMachiningParam(MCH_MP.OSCENABLE, m_OscEnable) Then m_IsModifiedOscEnable = False End If End If If m_IsModifiedSelectedWorkSide Then nValue = If(IsNothing(WorkSideList), m_SelectedWorkSide, IdNameStruct.IdFromInd(m_SelectedWorkSide, WorkSideList)) If EgtSetMachiningParam(MCH_MP.WORKSIDE, nValue) Then m_IsModifiedSelectedWorkSide = False End If End If If m_IsModifiedSelectedHeadSide Then nValue = If(IsNothing(HeadSideList), m_SelectedHeadSide, IdNameStruct.IdFromInd(m_SelectedHeadSide, HeadSideList)) If EgtSetMachiningParam(MCH_MP.HEADSIDE, nValue) Then m_IsModifiedSelectedHeadSide = False End If End If If m_IsModifiedSelectedLeadInType Then nValue = If(IsNothing(LeadInTypeList), m_SelectedLeadInType, IdNameStruct.IdFromInd(m_SelectedLeadInType, LeadInTypeList)) If EgtSetMachiningParam(MCH_MP.LEADINTYPE, nValue) Then m_IsModifiedSelectedLeadInType = False End If End If If m_IsModifiedSelectedExtLinkType Then nValue = If(IsNothing(ExtLinkTypeList), m_SelectedExtLinkType, IdNameStruct.IdFromInd(m_SelectedExtLinkType, ExtLinkTypeList)) If EgtSetMachiningParam(MCH_MP.EXTLINKTYPE, nValue) Then m_IsModifiedSelectedExtLinkType = False End If End If If m_IsModifiedSelectedLeadOutType Then nValue = If(IsNothing(LeadOutTypeList), m_SelectedLeadOutType, IdNameStruct.IdFromInd(m_SelectedLeadOutType, LeadOutTypeList)) If EgtSetMachiningParam(MCH_MP.LEADOUTTYPE, nValue) Then m_IsModifiedSelectedLeadOutType = False End If End If If m_IsModifiedSelectedCurveUse Then nValue = If(IsNothing(CurveUseList), m_SelectedCurveUse, IdNameStruct.IdFromInd(m_SelectedCurveUse, CurveUseList)) If EgtSetMachiningParam(MCH_MP.CURVEUSE, nValue) Then m_IsModifiedSelectedCurveUse = False End If End If If m_IsModifiedSelectedStepType Then nValue = If(IsNothing(StepTypeList), m_SelectedStepType, IdNameStruct.IdFromInd(m_SelectedStepType, StepTypeList)) If EgtSetMachiningParam(MCH_MP.STEPTYPE, nValue) Then m_IsModifiedSelectedStepType = False End If End If If m_IsModifiedSelectedSubType Then nValue = If(IsNothing(SubTypeList), m_SelectedSubType, IdNameStruct.IdFromInd(m_SelectedSubType, SubTypeList)) If EgtSetMachiningParam(MCH_MP.SUBTYPE, nValue) Then m_IsModifiedSelectedSubType = False End If End If If m_IsModifiedSelectedLeadLinkType Then nValue = If(IsNothing(LeadLinkTypeList), m_SelectedLeadLinkType, IdNameStruct.IdFromInd(m_SelectedLeadLinkType, LeadLinkTypeList)) If EgtSetMachiningParam(MCH_MP.LEADLINKTYPE, nValue) Then m_IsModifiedSelectedLeadLinkType = False End If End If If m_IsModifiedSelectedFaceUseType Then nValue = If(IsNothing(FaceUseTypeList), m_SelectedFaceUseType, IdNameStruct.IdFromInd(m_SelectedFaceUseType, FaceUseTypeList)) If EgtSetMachiningParam(MCH_MP.FACEUSE, nValue) Then m_IsModifiedSelectedFaceUseType = False End If End If If m_IsModifiedSelectedSolChoiceType Then nValue = If(IsNothing(SolChoiceTypeList), m_SelectedSolChoiceType, IdNameStruct.IdFromInd(m_SelectedSolChoiceType, SolChoiceTypeList)) If EgtSetMachiningParam(MCH_MP.SOLCHOICETYPE, nValue) Then m_IsModifiedSelectedSolChoiceType = False End If End If If m_IsModifiedSpeed Then StringToDouble(m_Speed, dValue) If EgtSetMachiningParam(MCH_MP.SPEED, dValue) Then m_IsModifiedSpeed = False End If End If If m_IsModifiedFeed Then StringToLen(m_Feed, dValue) If EgtSetMachiningParam(MCH_MP.FEED, dValue) Then m_IsModifiedFeed = False End If End If If m_IsModifiedStartFeed Then StringToLen(m_StartFeed, dValue) If EgtSetMachiningParam(MCH_MP.STARTFEED, dValue) Then m_IsModifiedStartFeed = False End If End If If m_IsModifiedEndFeed Then StringToLen(m_EndFeed, dValue) If EgtSetMachiningParam(MCH_MP.ENDFEED, dValue) Then m_IsModifiedEndFeed = False End If End If If m_IsModifiedTipFeed Then StringToLen(m_TipFeed, dValue) If EgtSetMachiningParam(MCH_MP.TIPFEED, dValue) Then m_IsModifiedTipFeed = False End If End If If m_IsModifiedBackFeed Then StringToLen(m_BackFeed, dValue) If EgtSetMachiningParam(MCH_MP.BACKFEED, dValue) Then m_IsModifiedBackFeed = False End If End If If m_IsModifiedSideAngFeed Then StringToLen(m_SideAngFeed, dValue) If EgtSetMachiningParam(MCH_MP.SIDEANGFEED, dValue) Then m_IsModifiedSideAngFeed = False End If End If If m_IsModifiedThicknessFeed Then StringToLen(m_ThicknessFeed, dValue) If EgtSetMachiningParam(MCH_MP.THICKREF, dValue) Then m_IsModifiedThicknessFeed = False End If End If If m_IsModifiedOffSr Then StringToLen(m_OffSr, dValue) If EgtSetMachiningParam(MCH_MP.OFFSR, dValue) Then m_IsModifiedOffSr = False End If End If If m_IsModifiedOffSl Then StringToLen(m_OffSl, dValue) If EgtSetMachiningParam(MCH_MP.OFFSL, dValue) Then m_IsModifiedOffSl = False End If End If If m_IsModifiedEpicyclesRad Then StringToDouble(m_EpicyclesRad, dValue) If EgtSetMachiningParam(MCH_MP.EPICYCLESRAD, dValue) Then m_IsModifiedEpicyclesRad = False End If End If If m_IsModifiedEpicyclesDist Then StringToDouble(m_EpicyclesDist, dValue) If EgtSetMachiningParam(MCH_MP.EPICYCLESDIST, dValue) Then m_IsModifiedEpicyclesDist = False End If End If If m_IsModifiedSideAngle Then StringToDouble(m_SideAngle, dValue) If EgtSetMachiningParam(MCH_MP.SIDEANGLE, dValue) Then m_IsModifiedSideAngle = False End If End If If m_IsModifiedApprox Then StringToLen(m_Approx, dValue) If EgtSetMachiningParam(MCH_MP.APPROX, dValue) Then m_IsModifiedApprox = False End If End If If m_IsModifiedStartPos Then StringToLen(m_StartPos, dValue) If EgtSetMachiningParam(MCH_MP.STARTPOS, dValue) Then m_IsModifiedStartPos = False End If End If If m_IsModifiedStartSlowLen Then StringToLen(m_StartSlowLen, dValue) If EgtSetMachiningParam(MCH_MP.STARTSLOWLEN, dValue) Then m_IsModifiedStartSlowLen = False End If End If If m_IsModifiedEndSlowLen Then StringToLen(m_EndSlowLen, dValue) If EgtSetMachiningParam(MCH_MP.ENDSLOWLEN, dValue) Then m_IsModifiedEndSlowLen = False End If End If If m_IsModifiedThrouAddLen Then StringToLen(m_ThrouAddLen, dValue) If EgtSetMachiningParam(MCH_MP.THROUADDLEN, dValue) Then m_IsModifiedThrouAddLen = False End If End If If m_IsModifiedStepPar Then StringToLen(m_StepPar, dValue) If EgtSetMachiningParam(MCH_MP.STEP_, dValue) Then m_IsModifiedStepPar = False End If End If If m_IsModifiedStepBack Then StringToLen(m_StepBack, dValue) If EgtSetMachiningParam(MCH_MP.STEPBACK, dValue) Then m_IsModifiedStepBack = False End If End If If m_IsModifiedStepSideAng Then StringToLen(m_StepSideAng, dValue) If EgtSetMachiningParam(MCH_MP.STEPSIDEANG, dValue) Then m_IsModifiedStepSideAng = False End If End If If m_IsModifiedStepSideAngBack Then StringToLen(m_StepSideAngBack, dValue) If EgtSetMachiningParam(MCH_MP.STEPSIDEANGBACK, dValue) Then m_IsModifiedStepSideAngBack = False End If End If If m_IsModifiedStepLast Then StringToLen(m_StepLast, dValue) If EgtSetMachiningParam(MCH_MP.STEPLAST, dValue) Then m_IsModifiedStepLast = False End If End If If m_IsModifiedReturnPos Then StringToLen(m_ReturnPos, dValue) If EgtSetMachiningParam(MCH_MP.RETURNPOS, dValue) Then m_IsModifiedReturnPos = False End If End If If m_IsModifiedOverLap Then StringToLen(m_OverLap, dValue) If EgtSetMachiningParam(MCH_MP.OVERL, dValue) Then m_IsModifiedOverLap = False End If End If If m_IsModifiedTabLen Then StringToLen(m_TabLen, dValue) If EgtSetMachiningParam(MCH_MP.TABLEN, dValue) Then m_IsModifiedTabLen = False End If End If If m_IsModifiedTabDist Then StringToLen(m_TabDist, dValue) If EgtSetMachiningParam(MCH_MP.TABDIST, dValue) Then m_IsModifiedTabDist = False End If End If If m_IsModifiedTabHeight Then StringToLen(m_TabHeight, dValue) If EgtSetMachiningParam(MCH_MP.TABHEIGHT, dValue) Then m_IsModifiedTabHeight = False End If End If If m_IsModifiedTabAngle Then StringToLen(m_TabAngle, dValue) If EgtSetMachiningParam(MCH_MP.TABANGLE, dValue) Then m_IsModifiedTabAngle = False End If End If If m_IsModifiedTabMax Then Int32.TryParse(TabMax, nValue) If EgtSetMachiningParam(MCH_MP.TABMAX, nValue) Then m_IsModifiedTabMax = False End If End If If m_IsModifiedTabMin Then Int32.TryParse(TabMin, nValue) If EgtSetMachiningParam(MCH_MP.TABMIN, nValue) Then m_IsModifiedTabMin = False End If End If If m_IsModifiedLiTang Then StringToLen(m_LiTang, dValue) If EgtSetMachiningParam(MCH_MP.LITANG, dValue) Then m_IsModifiedLiTang = False End If End If If m_IsModifiedLiPerp Then StringToLen(m_LiPerp, dValue) If EgtSetMachiningParam(MCH_MP.LIPERP, dValue) Then m_IsModifiedLiPerp = False End If End If If m_IsModifiedLiElev Then StringToLen(m_LiElev, dValue) If EgtSetMachiningParam(MCH_MP.LIELEV, dValue) Then m_IsModifiedLiElev = False End If End If If m_IsModifiedLiCompLen Then StringToLen(m_LiCompLen, dValue) If EgtSetMachiningParam(MCH_MP.LICOMPLEN, dValue) Then m_IsModifiedLiCompLen = False End If End If If m_IsModifiedLoTang Then StringToLen(m_LoTang, dValue) If EgtSetMachiningParam(MCH_MP.LOTANG, dValue) Then m_IsModifiedLoTang = False End If End If If m_IsModifiedLoPerp Then StringToLen(m_LoPerp, dValue) If EgtSetMachiningParam(MCH_MP.LOPERP, dValue) Then m_IsModifiedLoPerp = False End If End If If m_IsModifiedLoElev Then StringToLen(m_LoElev, dValue) If EgtSetMachiningParam(MCH_MP.LOELEV, dValue) Then m_IsModifiedLoElev = False End If End If If m_IsModifiedLoCompLen Then StringToLen(m_LoCompLen, dValue) If EgtSetMachiningParam(MCH_MP.LOCOMPLEN, dValue) Then m_IsModifiedLoCompLen = False End If End If If m_IsModifiedStartAddLen Then StringToLen(m_StartAddLen, dValue) If EgtSetMachiningParam(MCH_MP.STARTADDLEN, dValue) Then m_IsModifiedStartAddLen = False End If End If If m_IsModifiedEndAddLen Then StringToLen(m_EndAddLen, dValue) If EgtSetMachiningParam(MCH_MP.ENDADDLEN, dValue) Then m_IsModifiedEndAddLen = False End If End If If m_IsModifiedStepExtArc Then StringToLen(m_StepExtArc, dValue) If EgtSetMachiningParam(MCH_MP.STEPEXTARC, dValue) Then m_IsModifiedStepExtArc = False End If End If If m_IsModifiedStepIntArc Then StringToLen(m_StepIntArc, dValue) If EgtSetMachiningParam(MCH_MP.STEPINTARC, dValue) Then m_IsModifiedStepIntArc = False End If End If If m_IsModifiedSideStep Then StringToLen(m_SideStep, dValue) If EgtSetMachiningParam(MCH_MP.SIDESTEP, dValue) Then m_IsModifiedSideStep = False End If End If If m_IsModifiedSubStep Then StringToLen(m_SubStep, dValue) If EgtSetMachiningParam(MCH_MP.SUBSTEP, dValue) Then m_IsModifiedSubStep = False End If End If If m_IsModifiedVertFeed Then StringToLen(m_VertFeed, dValue) If EgtSetMachiningParam(MCH_MP.VERTFEED, dValue) Then m_IsModifiedVertFeed = False End If End If If m_IsModifiedOscHeight Then StringToLen(m_OscHeight, dValue) If EgtSetMachiningParam(MCH_MP.OSCHEIGHT, dValue) Then m_IsModifiedOscHeight = False End If End If If m_IsModifiedOscRampLen Then StringToLen(m_OscRampLen, dValue) If EgtSetMachiningParam(MCH_MP.OSCRAMPLEN, dValue) Then m_IsModifiedOscRampLen = False End If End If If m_IsModifiedOscFlatLen Then StringToLen(m_OscFlatLen, dValue) If EgtSetMachiningParam(MCH_MP.OSCFLATLEN, dValue) Then m_IsModifiedOscFlatLen = False End If End If If m_IsModifiedDepthStr Then If EgtSetMachiningParam(MCH_MP.DEPTH_STR, m_DepthStr) Then m_IsModifiedDepthStr = False End If End If ' Scrivo le note utente WriteOperationParamNote() SetComboAddVisibility(Visibility.Collapsed) If m_IsModifiedInitAngs Then If EgtSetMachiningParam(MCH_MP.INITANGS, m_InitAngs) Then m_IsModifiedInitAngs = False End If End If If m_IsModifiedBlockedAxis Then If EgtSetMachiningParam(MCH_MP.BLOCKEDAXIS, m_BlockedAxis) Then m_IsModifiedBlockedAxis = False End If End If If m_IsModifiedForwardAngle Then StringToDouble(m_ForwardAngle, dValue) If EgtSetMachiningParam(MCH_MP.FORWARDANGLE, dValue) Then m_IsModifiedForwardAngle = False End If End If If m_IsModifiedProbing Then If EgtSetMachiningParam(MCH_MP.PROBING, m_Probing) Then m_IsModifiedProbing = False End If End If If m_IsModifiedProbingMinDist Then StringToLen(m_ProbingMinDist, dValue) If EgtSetMachiningParam(MCH_MP.PROBINGMINDIST, dValue) Then m_IsModifiedProbingMinDist = False End If End If If m_IsModifiedProbingMaxDist Then StringToLen(m_ProbingMaxDist, dValue) If EgtSetMachiningParam(MCH_MP.PROBINGMAXDIST, dValue) Then m_IsModifiedProbingMaxDist = False End If End If If m_IsModifiedSelectedExtCornType Then nValue = If(IsNothing(ExtCornTypeList), m_SelectedExtCornType, IdNameStruct.IdFromInd(m_SelectedExtCornType, ExtCornTypeList)) If EgtSetMachiningParam(MCH_MP.EXTCORNERTYPE, nValue) Then m_IsModifiedSelectedExtCornType = False End If End If If m_IsModifiedSelectedIntCornType Then nValue = If(IsNothing(IntCornTypeList), m_SelectedIntCornType, IdNameStruct.IdFromInd(m_SelectedIntCornType, IntCornTypeList)) If EgtSetMachiningParam(MCH_MP.INTCORNERTYPE, nValue) Then m_IsModifiedSelectedIntCornType = False End If End If If m_IsModifiedCornSlowLen Then StringToLen(m_CornSlowLen, dValue) If EgtSetMachiningParam(MCH_MP.CORNERSLOWLEN, dValue) Then m_IsModifiedCornSlowLen = False End If End If If m_IsModifiedCornSlowPerc Then Int32.TryParse(m_CornSlowPerc, nValue) If EgtSetMachiningParam(MCH_MP.CORNERSLOWPERC, nValue) Then m_IsModifiedCornSlowPerc = False End If End If If m_IsModifiedLiHole Then If EgtSetMachiningParam(MCH_MP.LIHOLE, m_LiHole) Then m_IsModifiedLiHole = False End If End If If m_IsModifiedLiHoleRad Then StringToLen(m_LiHoleRad, dValue) If EgtSetMachiningParam(MCH_MP.LIHOLERAD, dValue) Then m_IsModifiedLiHoleRad = False End If End If If m_IsModifiedLpTurns Then Int32.TryParse(LpTurns, nValue) If EgtSetMachiningParam(MCH_MP.LPTURNS, nValue) Then m_IsModifiedLpTurns = False End If End If If m_IsModifiedHpTurns Then Int32.TryParse(HpTurns, nValue) If EgtSetMachiningParam(MCH_MP.HPTURNS, nValue) Then m_IsModifiedHpTurns = False End If End If End Sub Public Sub WriteMachiningName() EgtMdbSetCurrMachiningParam(MCH_MP.NAME, NamePar) End Sub #Region "Methods Note" ''' ''' Recupero la lista delle Note dal file Note.ini ''' Public Sub GetNoteList() ' Recupero direttorio macchina corrente Dim sMachDir As String = "" EgtGetCurrMachineDir(sMachDir) ' Divido UserNotes in due Array di String Chiave e Valore (anche non presente) If m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB Then EgtMdbGetCurrMachiningParam(MCH_MP.USERNOTES, m_UserNotes) Else EgtGetMachiningParam(MCH_MP.USERNOTES, m_UserNotes) End If Dim tmpDsc As New List(Of String) Dim tmpVal As New List(Of String) Dim sSplitNotes() As String = m_UserNotes.TrimEnd(";"c).Split(New Char() {";"c}) For Index As Integer = 0 To sSplitNotes.Count - 1 Dim sKeyVal() As String = sSplitNotes( Index).Trim().Split(New Char() {"="c}) If sKeyVal.Count() >= 1 AndAlso Not String.IsNullOrWhiteSpace( sKeyVal(0)) Then ' Assegno chiave tmpDsc.Add(sKeyVal(0)) ' Assegno valore o indicazione sua mancanza If sKeyVal.Count() >= 2 Then tmpVal.Add( sKeyVal(1)) Else tmpVal.Add( "") End If End If Next m_UserNotes = "" ' Recupero le info dal file Notes.ini Dim tmpType As String = If( m_Type.Equals(MCH_MY.FIVEAXISMILLING), "5AxMilling", m_Type.ToString()) Dim IndexNote As Integer = 0 Dim sNoteDescription As String = "" While EgtUILib.GetPrivateProfileString(tmpType, IndexNote.ToString(), "", sNoteDescription, sMachDir & "\" & MACH_NOTES) > 0 Dim sNotes() As String = sNoteDescription.Split(","c) For Index As Integer = 0 To sNotes.Count - 1 sNotes(Index) = sNotes(Index).Trim() Next For IndexNoteUser As Integer = 0 To tmpDsc.Count - 1 ' Aggiungo alla lista NoteList le note presenti nel file ini If tmpDsc(IndexNoteUser) = sNotes(1) Then m_NotesList.Add(New NoteListBoxItem(IndexNote, sNotes(0), sNotes(1), tmpVal(IndexNoteUser))) Exit For End If Next IndexNote += 1 End While ' Assegno alla lista temporanea solo le descrizioni Dim tmpDscList As New List(Of String) For IndN As Integer = 0 To m_NotesList.Count - 1 tmpDscList.Add(m_NotesList(IndN).m_Description) Next For TmpInd As Integer = 0 To tmpDsc.Count - 1 ' Controllo se la lista contiene la stessa descrizione If tmpDscList.Contains(tmpDsc(TmpInd)) Then m_UserNotes &= "" ' Se si la text UserNote rimane vuota ElseIf Not String.IsNullOrEmpty( tmpVal(TmpInd)) Then m_UserNotes &= (tmpDsc(TmpInd) & "=" & tmpVal(TmpInd) & ";").Trim() ' Altrimenti assegno descrizione + valore a UserNote Else m_UserNotes &= (tmpDsc(TmpInd) & ";").Trim() ' Se la lista valori e' vuota assegno solo la descrizione End If Next For Each ItemNote As NoteListBoxItem In m_NotesList ' Controllo per la visualizzazione di una textbox o checkbox If ItemNote.Type.Equals("d") OrElse ItemNote.Type.Equals("l") OrElse ItemNote.Type.Equals("s") OrElse ItemNote.Type.Equals("dr") OrElse ItemNote.Type.Equals("lr") OrElse ItemNote.Type.Equals("sr") Then ItemNote.SelTypeValue = 0 ' Seleziona la TextBox Else ItemNote.SelTypeValue = 1 ' Seleziona la CheckBox ' Trasformo il valore della checkbox da stringa a booleano ItemNote.Value = If(ItemNote.Value = "1", "True", "False") Boolean.Parse(ItemNote.Value) End If Next SetToolNoteVisibility(If(m_NotesList.Count > 0, Visibility.Visible, Visibility.Collapsed)) NotifyPropertyChanged(NameOf(NotesList)) NotifyPropertyChanged(NameOf(UserNotes)) End Sub ''' ''' Recupero la lista delle Note dal file Note.ini da mostrare nella combobox ''' Public Sub GetComboNoteList() ' Recupero direttorio macchina corrente Dim sMachDir As String = "" EgtGetCurrMachineDir(sMachDir) ' Recupero le info dal file Notes.ini Dim tmpType As String = If( m_Type.Equals(MCH_MY.FIVEAXISMILLING), "5AxMilling", m_Type.ToString()) Dim IndexNote As Integer = 0 Dim sNoteDescription As String = "" Dim tmpsNotes As New ObservableCollection(Of NoteListBoxItem) Dim tmpDsc As New ObservableCollection(Of String) While EgtUILib.GetPrivateProfileString(tmpType, IndexNote.ToString(), "", sNoteDescription, sMachDir & "\" & MACH_NOTES) > 0 Dim sNotes() As String = sNoteDescription.Split(","c) For Index As Integer = 0 To sNotes.Count - 1 sNotes(Index) = sNotes(Index).Trim() Next 'Assegno valori alla lista temporanea If sNotes.Count < 3 Then tmpsNotes.Add(New NoteListBoxItem(IndexNote, sNotes(0), sNotes(1), "")) ElseIf sNotes.Count >= 5 Then tmpsNotes.Add(New NoteListBoxItem(IndexNote, sNotes(0), sNotes(1), sNotes(2) & "," & sNotes(3) & "," & sNotes(4))) Else tmpsNotes.Add(New NoteListBoxItem(IndexNote, sNotes(0), sNotes(1), sNotes(2))) End If tmpDsc.Add(sNotes(1)) IndexNote += 1 End While ' Assegno alla lista temporanea solo le descrizioni Dim tmpDscList As New ObservableCollection(Of String) For IndN As Integer = 0 To m_NotesList.Count - 1 tmpDscList.Add(m_NotesList(IndN).m_Description) Next ' Assegno alla combobox valori non presenti nella NoteList For TmpInd As Integer = 0 To tmpDsc.Count - 1 If Not tmpDscList.Contains(tmpDsc(TmpInd)) Then m_NotesListCombo.Add(tmpsNotes(TmpInd)) End If Next If Not m_AdvancedParamIsExpander AndAlso m_NotesListCombo.Count > 0 Then SetShowNoteListCombo_Visibility(Visibility.Visible) ElseIf m_NotesListCombo.Count > 0 AndAlso m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB Then SetShowNoteListCombo_Visibility(Visibility.Visible) Else SetShowNoteListCombo_Visibility(Visibility.Collapsed) End If SetShowNoteListCombo_IsEnable(If(m_NotesListCombo.Count <= 0, False, True)) NotifyPropertyChanged(NameOf(NotesList)) NotifyPropertyChanged(NameOf(NotesListCombo)) NotifyPropertyChanged(NameOf(SelNoteItemCombo)) End Sub ''' ''' Scrivo in UserNotes attraverso EgtSetMachiningParam la nota modificata ''' Public Sub WriteOperationParamNote() ' Nascondo la combobox SetComboAddVisibility(Visibility.Collapsed) ' Recupero le note con la gestione avanzata Dim sAdvNotes As String = "" For IndexNote As Integer = 0 To m_NotesList.Count - 1 ' Scrivo in MCH_MP.USERNOTES la nota modificata If m_NotesList(IndexNote).Type.Equals("b") OrElse m_NotesList(IndexNote).Type.Equals("br") Then sAdvNotes &= m_NotesList(IndexNote).Description & "=" & If(m_NotesList(IndexNote).Value.Equals("True"), "1", "0") & ";" Else sAdvNotes &= m_NotesList(IndexNote).Description & "=" & m_NotesList(IndexNote).Value & ";" End If Next ' Processo le note standard come lista di chiavi-valori Dim tmpDsc = New List(Of String) Dim tmpVal = New List(Of String) Dim sSplitNotes() As String = m_UserNotes.TrimEnd(";"c).Split(New Char() {";"c}) For Index As Integer = 0 To sSplitNotes.Count - 1 Dim sKeyVal() As String = sSplitNotes( Index).Trim().Split(New Char() {"="c}) If sKeyVal.Count() >= 1 AndAlso Not String.IsNullOrWhiteSpace( sKeyVal(0)) Then ' Assegno chiave tmpDsc.Add(sKeyVal(0)) ' Assegno valore o indicazione sua mancanza If sKeyVal.Count() >= 2 Then tmpVal.Add( sKeyVal(1)) Else tmpVal.Add( "") End If End If Next ' Assegno le note standard le cui chiavi non siano un duplicato delle descrizioni di quelle avanzate Dim sStdNotes As String = "" For NewInd As Integer = 0 To tmpDsc.Count - 1 ' Verifico se la chiave è presente nelle descrizioni avanzate Dim bAdvDesc As Boolean = False For IndexNote As Integer = 0 To m_NotesList.Count - 1 If m_NotesList(IndexNote).Description.Equals( tmpDsc(NewInd)) Then bAdvDesc = True Exit For End If Next ' Se non presente posso aggiungere If Not bAdvDesc Then If Not String.IsNullOrEmpty( tmpVal(NewInd)) Then sStdNotes &= tmpDsc(NewInd) & "=" & tmpVal(NewInd) & ";" ' Assegno a sUserNotes descrizione + valore Else sStdNotes &= tmpDsc(NewInd) & ";" ' Se non e' presente il valore solo la descrizione End If End If Next m_UserNotes = sStdNotes ' Salvo le note Dim sUserNotes As String = sAdvNotes & sStdNotes If m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB Then EgtMdbSetCurrMachiningParam(MCH_MP.USERNOTES, sUserNotes) Else EgtSetMachiningParam(MCH_MP.USERNOTES, sUserNotes) End If NotifyPropertyChanged(NameOf(UserNotes)) End Sub ''' ''' Rimuove nota dalla lista Note Utente ''' Public Sub RemoveNote(NoteItem As NoteListBoxItem) If NoteItem.Type.Equals("d") OrElse NoteItem.Type.Equals("l") OrElse NoteItem.Type.Equals("s") OrElse NoteItem.Type.Equals("dr") OrElse NoteItem.Type.Equals("lr") OrElse NoteItem.Type.Equals("sr") Then NoteItem.SelTypeValue = 0 ' Seleziona la TextBox Else NoteItem.SelTypeValue = 1 ' Seleziona la CheckBox ' Trasformo il valore della checkbox da stringa a booleano NoteItem.Value = If(NoteItem.Value = "True", "1", "0") End If ' Rimuovo la nota selezionata dalla lista note utente m_NotesList.Remove(NoteItem) ' Se il pulsante rimuovi nota viene selezionato riaggiungo la nota rimossa alla combobox m_NotesListCombo.Add(NoteItem) ' Aggiorno lista Combo m_NotesListCombo.Clear() GetComboNoteList() ' Nascondo la combobox SetComboAddVisibility(Visibility.Collapsed) ' Riabilito pulsante che mostra la combobox SetShowNoteListCombo_IsEnable(True) SetShowNoteListCombo_Visibility(If(m_NotesListCombo.Count > 0, Visibility.Visible, Visibility.Collapsed)) SetToolNoteVisibility(If(m_NotesList.Count > 0, Visibility.Visible, Visibility.Collapsed)) NotifyPropertyChanged(NameOf(NotesList)) NotifyPropertyChanged(NameOf(NotesListCombo)) NotifyPropertyChanged(NameOf(UserNotes)) RaiseEvent m_IsModified(True) End Sub '''' '''' Rimuove nota dalla lista Note Utente '''' 'Public Sub RemoveNoteDB(NoteItem As NoteListBoxItem) ' If NoteItem.Type.Equals("d") OrElse NoteItem.Type.Equals("l") OrElse NoteItem.Type.Equals("s") OrElse ' NoteItem.Type.Equals("dr") OrElse NoteItem.Type.Equals("lr") OrElse NoteItem.Type.Equals("sr") Then ' NoteItem.SelTypeValue = 0 ' Seleziona la TextBox ' Else ' NoteItem.SelTypeValue = 1 ' Seleziona la CheckBox ' ' Trasformo il valore della checkbox da stringa a booleano ' NoteItem.Value = If(NoteItem.Value = "True", "1", "0") ' End If ' ' Recupero DB selezionato ' Dim SelMachining As MachiningTreeViewItem = m_delGetSelectedMachining() ' ' Rimuovo la nota selezionata dalla lista note utente ' SelMachining.m_NotesList.Remove(NoteItem) ' ' Se il pulsante rimuovi nota viene selezionato riaggiungo la nota rimossa alla combobox ' SelMachining.m_NotesListCombo.Add(NoteItem) ' ' Aggiorno lista Combo ' SelMachining.m_NotesListCombo.Clear() ' SelMachining.GetComboNoteList() ' ' Nascondo la combobox ' SelMachining.SetComboAddVisibility(Visibility.Collapsed) ' ' Riabilito pulsante che mostra la combobox ' SelMachining.SetShowNoteListCombo_IsEnable(True) ' SelMachining.SetShowNoteListCombo_Visibility(If(SelMachining.m_NotesListCombo.Count > 0, Visibility.Visible, Visibility.Collapsed)) ' SelMachining.SetToolNoteVisibility(If(SelMachining.m_NotesList.Count > 0, Visibility.Visible, Visibility.Collapsed)) ' NotifyPropertyChanged(NameOf(SelMachining.NotesList)) ' NotifyPropertyChanged(NameOf(SelMachining.NotesListCombo)) ' NotifyPropertyChanged(NameOf(SelMachining.UserNotes)) 'End Sub ''' ''' Aggiorna il colore del pulsante Applica Lavorazioni quando la nota della lista NoteList viene modificata ''' ''' Public Sub IsModifiedNote(NoteItem As NoteListBoxItem) If NoteItem.IsModifiedValue Then RaiseEvent m_IsModified(True) End Sub #End Region ' Methods Note #End Region ' Methods #Region "Validation" Private m_NameError As String Public ReadOnly Property NameErrorMsg As String Get Return m_NameError End Get End Property Private m_SpeedError As String Public ReadOnly Property SpeedErrorMsg As String Get Return m_SpeedError End Get End Property Private m_TabLenError As String Public ReadOnly Property TabLenErrorMsg As String Get Return m_TabLenError End Get End Property Private m_TabDistError As String Public ReadOnly Property TabDistErrorMsg As String Get Return m_TabDistError End Get End Property Private m_TabHeightError As String Public ReadOnly Property TabHeightErrorMsg As String Get Return m_TabHeightError End Get End Property Private m_TabAngleError As String Public ReadOnly Property TabAngleErrorMsg As String Get Return m_TabAngleError End Get End Property Private m_TabMaxError As String Public ReadOnly Property TabMaxErrorMsg As String Get Return m_TabMaxError End Get End Property Private m_TabMinError As String Public ReadOnly Property TabMinErrorMsg As String Get Return m_TabMinError End Get End Property Private Function GetValidationError(ByVal propertyName As String) As Boolean Dim bOk As Boolean = True Select Case propertyName Case "NamePar" bOk = Me.ValidateName() Case "Speed" bOk = Me.ValidateSpeed() Case "TabLen" bOk = Me.ValidateTabLen() Case "TabDist" bOk = Me.ValidateTabDist() Case "TabHeight" bOk = Me.ValidateTabHeight() Case "TabAngle" bOk = Me.ValidateTabAngle() Case "TabMax" bOk = Me.ValidateTabMax() Case "TabMin" bOk = Me.ValidateTabMin() End Select Return bOk End Function ' Funzione che verifica se il valore immesso in una TextBox non è un numero Private Function GetNonNumericTextBox(parameterValue As String) As Boolean If IsNumeric(parameterValue) Then Return False Else Return True End If End Function Public Function GetErrorString(propertyName As String) As String Select Case propertyName Case "NamePar" Return m_NameError Case "Speed" Return m_SpeedError Case "TabLen" Return m_TabLenError Case "TabDist" Return m_TabDistError Case "TabHeight" Return m_TabHeightError Case "TabAngle" Return m_TabAngleError Case "TabMax" Return m_TabMaxError Case "TabMin" Return m_TabMinError End Select Return String.Empty End Function ''' ''' Returns true if this object has no validation errors. ''' Public ReadOnly Property IsValid() As Boolean Get For Each [property] As String In ValidatedProperties If Not String.IsNullOrEmpty(GetErrorString([property])) Then Return False End If Next [property] Return True End Get End Property Public Overridable ReadOnly Property IsModified() As Boolean Get Return m_IsModifiedInvert OrElse m_IsModifiedLeaveTab OrElse m_IsModifiedToolInvert OrElse m_IsModifiedSelectedWorkSide OrElse m_IsModifiedSelectedHeadSide OrElse m_IsModifiedSelectedLeadInType OrElse m_IsModifiedSelectedExtLinkType OrElse m_IsModifiedSelectedLeadOutType OrElse m_IsModifiedSelectedCurveUse OrElse m_IsModifiedSelectedStepType OrElse m_IsModifiedSelectedSubType OrElse m_IsModifiedSelectedLeadLinkType OrElse m_IsModifiedSelectedFaceUseType OrElse m_IsModifiedSelectedSolChoiceType OrElse m_IsModifiedSpeed OrElse m_IsModifiedFeed OrElse m_IsModifiedStartFeed OrElse m_IsModifiedEndFeed OrElse m_IsModifiedTipFeed OrElse m_IsModifiedBackFeed OrElse m_IsModifiedSideAngFeed OrElse m_IsModifiedThicknessFeed OrElse m_IsModifiedOffSr OrElse m_IsModifiedOffSl OrElse m_IsModifiedEpicyclesRad OrElse m_IsModifiedEpicyclesDist OrElse m_IsModifiedSideAngle OrElse m_IsModifiedApprox OrElse m_IsModifiedStartPos OrElse m_IsModifiedStartSlowLen OrElse m_IsModifiedEndSlowLen OrElse m_IsModifiedThrouAddLen OrElse m_IsModifiedStepPar OrElse m_IsModifiedStepBack OrElse m_IsModifiedStepLast OrElse m_IsModifiedReturnPos OrElse m_IsModifiedTabLen OrElse m_IsModifiedTabDist OrElse m_IsModifiedTabHeight OrElse m_IsModifiedTabAngle OrElse m_IsModifiedTabMin OrElse m_IsModifiedTabMax OrElse m_IsModifiedLiTang OrElse m_IsModifiedLiPerp OrElse m_IsModifiedLiElev OrElse m_IsModifiedLiCompLen OrElse m_IsModifiedLoTang OrElse m_IsModifiedLoPerp OrElse m_IsModifiedLoElev OrElse m_IsModifiedLoCompLen OrElse m_IsModifiedStartAddLen OrElse m_IsModifiedEndAddLen OrElse m_IsModifiedStepExtArc OrElse m_IsModifiedStepIntArc OrElse m_IsModifiedSideStep OrElse m_IsModifiedSubStep OrElse m_IsModifiedStepSideAng OrElse m_IsModifiedStepSideAngBack OrElse m_IsModifiedVertFeed OrElse m_IsModifiedOscEnable OrElse m_IsModifiedOscHeight OrElse m_IsModifiedOscRampLen OrElse m_IsModifiedOscFlatLen OrElse m_IsModifiedName OrElse m_IsModifiedSelectedTool OrElse m_IsModifiedDepthStr OrElse m_IsModifiedUserNotes OrElse m_IsModifiedOverLap OrElse m_IsModifiedInitAngs OrElse m_IsModifiedBlockedAxis OrElse m_IsModifiedForwardAngle OrElse m_IsModifiedProbing OrElse m_IsModifiedProbingMinDist OrElse m_IsModifiedProbingMaxDist OrElse m_IsModifiedSelectedExtCornType OrElse m_IsModifiedSelectedIntCornType OrElse m_IsModifiedCornSlowLen OrElse m_IsModifiedCornSlowPerc OrElse m_IsModifiedLiHole OrElse m_IsModifiedLiHoleRad OrElse m_IsModifiedLpTurns OrElse m_IsModifiedHpTurns End Get End Property Public Overridable Sub IsModifiedReset() m_IsModifiedInvert = False m_IsModifiedLeaveTab = False m_IsModifiedToolInvert = False m_IsModifiedSelectedWorkSide = False m_IsModifiedSelectedHeadSide = False m_IsModifiedSelectedLeadInType = False m_IsModifiedSelectedExtLinkType = False m_IsModifiedSelectedLeadOutType = False m_IsModifiedSelectedCurveUse = False m_IsModifiedSelectedStepType = False m_IsModifiedSelectedSubType = False m_IsModifiedSelectedLeadLinkType = False m_IsModifiedSelectedFaceUseType = False m_IsModifiedSelectedSolChoiceType = False m_IsModifiedSpeed = False m_IsModifiedFeed = False m_IsModifiedStartFeed = False m_IsModifiedEndFeed = False m_IsModifiedTipFeed = False m_IsModifiedBackFeed = False m_IsModifiedSideAngFeed = False m_IsModifiedThicknessFeed = False m_IsModifiedOffSr = False m_IsModifiedOffSl = False m_IsModifiedEpicyclesRad = False m_IsModifiedEpicyclesDist = False m_IsModifiedSideAngle = False m_IsModifiedApprox = False m_IsModifiedStartPos = False m_IsModifiedStartSlowLen = False m_IsModifiedEndSlowLen = False m_IsModifiedThrouAddLen = False m_IsModifiedStepPar = False m_IsModifiedStepBack = False m_IsModifiedStepLast = False m_IsModifiedReturnPos = False m_IsModifiedTabLen = False m_IsModifiedTabDist = False m_IsModifiedTabHeight = False m_IsModifiedTabAngle = False m_IsModifiedTabMin = False m_IsModifiedTabMax = False m_IsModifiedLiTang = False m_IsModifiedLiPerp = False m_IsModifiedLiElev = False m_IsModifiedLiCompLen = False m_IsModifiedLoTang = False m_IsModifiedLoPerp = False m_IsModifiedLoElev = False m_IsModifiedLoCompLen = False m_IsModifiedStartAddLen = False m_IsModifiedEndAddLen = False m_IsModifiedStepExtArc = False m_IsModifiedStepIntArc = False m_IsModifiedSideStep = False m_IsModifiedSubStep = False m_IsModifiedStepSideAng = False m_IsModifiedStepSideAngBack = False m_IsModifiedVertFeed = False m_IsModifiedOscEnable = False m_IsModifiedOscHeight = False m_IsModifiedOscRampLen = False m_IsModifiedOscFlatLen = False m_IsModifiedName = False m_IsModifiedSelectedTool = False m_IsModifiedDepthStr = False m_IsModifiedUserNotes = False m_IsModifiedOverLap = False m_IsModifiedInitAngs = False m_IsModifiedBlockedAxis = False m_IsModifiedForwardAngle = False m_IsModifiedProbing = False m_IsModifiedProbingMinDist = False m_IsModifiedProbingMaxDist = False m_IsModifiedSelectedExtCornType = False m_IsModifiedSelectedIntCornType = False m_IsModifiedCornSlowLen = False m_IsModifiedCornSlowPerc = False m_IsModifiedLiHole = False m_IsModifiedLiHoleRad = False m_IsModifiedLpTurns = False m_IsModifiedHpTurns = False End Sub Public Shared ReadOnly ValidatedProperties() As String = {"Speed", "NamePar", "TabLen", "TabDist", "TabHeight", "TabAngle", "TabMax", "TabMin"} Private Function ValidateName() As Boolean m_NameError = String.Empty Select Case nErrorMachiningName Case 1 m_NameError = EgtMsg(MSG_MACHININGDBERRORS + 3) Case 2 m_NameError = EgtMsg(MSG_MACHININGDBERRORS + 4) End Select NotifyPropertyChanged("NameErrorMsg") If String.IsNullOrEmpty(m_NameError) Then Return True Else Return False End If End Function Private Function ValidateSpeed() As Boolean m_SpeedError = String.Empty If (m_CurrMachTreeViewItemType = MachTreeViewItemType.MACH_DB) Then If SelectedTool >= 0 Then If Not IsNothing(m_Speed) And m_ToolList.Count >= SelectedTool + 1 Then Dim dSpeed As Double = 0 StringToDouble(m_Speed, dSpeed) Dim dMaxSpeed As Double = 0 EgtTdbSetCurrTool(m_ToolList(SelectedTool)) EgtTdbGetCurrToolParam(MCH_TP.MAXSPEED, dMaxSpeed) If Math.Abs(dSpeed) > dMaxSpeed + EPS_ZERO Then m_SpeedError = EgtMsg(MSG_TOOLDBERRORS + 11) End If End If End If Else If Not IsNothing(m_Speed) Then Dim dSpeed As Double = 0 StringToDouble(m_Speed, dSpeed) Dim dMaxSpeed As Double = 0 EgtTdbSetCurrTool(m_Tool) EgtTdbGetCurrToolParam(MCH_TP.MAXSPEED, dMaxSpeed) If Math.Abs(dSpeed) > dMaxSpeed + EPS_ZERO Then m_SpeedError = EgtMsg(MSG_TOOLDBERRORS + 11) End If End If End If NotifyPropertyChanged("SpeedErrorMsg") Return String.IsNullOrEmpty(m_SpeedError) End Function Private Function ValidateTabLen() As Boolean '' Se non è fresatura del legno, salto il controllo 'If m_Type <> MCH_MY.MILLING OrElse m_MatType <> MaterialType.WOOD Then Return True ' Eseguo il controllo m_TabLenError = String.Empty If Not IsNothing(m_TabLen) Then Dim dTabLen As Double = 0 StringToLen(m_TabLen, dTabLen) If dTabLen < EPS_SMALL Then m_TabLenError = EgtMsg(31411) 'La Lunghezza deve essere positiva End If End If NotifyPropertyChanged("TabLenErrorMsg") Return String.IsNullOrEmpty(m_TabLenError) End Function Private Function ValidateTabDist() As Boolean '' Se non è fresatura del legno, salto il controllo 'If m_Type <> MCH_MY.MILLING OrElse m_MatType <> MaterialType.WOOD Then Return True ' Eseguo il controllo m_TabDistError = String.Empty If Not IsNothing(m_TabDist) Then Dim dTabDist As Double = 0 StringToLen(m_TabDist, dTabDist) If dTabDist < EPS_SMALL Then m_TabDistError = EgtMsg(31412) 'La Distanza deve essere positiva End If End If NotifyPropertyChanged("TabDistErrorMsg") Return String.IsNullOrEmpty(m_TabDistError) End Function Private Function ValidateTabHeight() As Boolean '' Se non è fresatura del legno, salto il controllo 'If m_Type <> MCH_MY.MILLING OrElse m_MatType <> MaterialType.WOOD Then Return True ' Eseguo il controllo m_TabHeightError = String.Empty If Not IsNothing(m_TabHeight) Then Dim dTabHeight As Double = 0 StringToLen(m_TabHeight, dTabHeight) If dTabHeight < EPS_SMALL Then m_TabHeightError = EgtMsg(31413) 'L'Altezza deve essere positiva End If End If NotifyPropertyChanged("TabHeightErrorMsg") Return String.IsNullOrEmpty(m_TabHeightError) End Function Private Function ValidateTabAngle() As Boolean '' Se non è fresatura del legno, salto il controllo 'If m_Type <> MCH_MY.MILLING OrElse m_MatType <> MaterialType.WOOD Then Return True ' Eseguo il controllo m_TabAngleError = String.Empty If Not IsNothing(m_TabAngle) Then Const MIN_ANGLE As Double = 30 Const MAX_ANGLE As Double = 75 Dim dTabAngle As Double = 0 StringToDouble(m_TabAngle, dTabAngle) If dTabAngle < MIN_ANGLE - EPS_SMALL Or dTabAngle > MAX_ANGLE + EPS_SMALL Then m_TabAngleError = String.Format(EgtMsg(31414), "30", "75") 'L'Angolo deve essere compreso tra {0}° e {1}° End If End If NotifyPropertyChanged("TabAngleErrorMsg") Return String.IsNullOrEmpty(m_TabAngleError) End Function Private Function ValidateTabMax() As Boolean '' Se non è fresatura del legno, salto il controllo 'If m_Type <> MCH_MY.MILLING OrElse m_MatType <> MaterialType.WOOD Then Return True ' Eseguo il controllo m_TabMaxError = String.Empty If Not IsNothing(m_TabMax) Then Dim nTabMax As Integer = 0 Int32.TryParse(m_TabMax, nTabMax) If nTabMax < 0 Then m_TabMaxError = EgtMsg(31415) 'N° massimo deve essere nullo o positivo End If If Not IsNothing(m_TabMin) Then Dim nTabMin As Integer = 0 Int32.TryParse(m_TabMin, nTabMin) If nTabMax < nTabMin Then m_TabMinError = EgtMsg(31416) 'N° massimo deve essere maggiore o uguale a N° minimo End If End If End If NotifyPropertyChanged("TabMaxErrorMsg") Return String.IsNullOrEmpty(m_TabMaxError) End Function Private Function ValidateTabMin() As Boolean '' Se non è fresatura del legno, salto il controllo 'If m_Type <> MCH_MY.MILLING OrElse m_MatType <> MaterialType.WOOD Then Return True ' Eseguo il controllo m_TabMinError = String.Empty If Not IsNothing(m_TabMin) Then Dim nTabMin As Integer = 0 Int32.TryParse(m_TabMin, nTabMin) If nTabMin < 0 Then m_TabMinError = EgtMsg(31417) 'N° minimo deve essere nullo o positivo End If If Not IsNothing(m_TabMax) Then Dim nTabMax As Integer = 0 Int32.TryParse(m_TabMax, nTabMax) If nTabMin > nTabMax Then m_TabMinError = EgtMsg(31418) 'N° minimo deve essere minore o uguale a N° massimo End If End If End If NotifyPropertyChanged("TabMinErrorMsg") Return String.IsNullOrEmpty(m_TabMinError) End Function Private Sub ResetTabErrors() m_TabLenError = String.Empty m_TabDistError = String.Empty m_TabHeightError = String.Empty m_TabAngleError = String.Empty m_TabMinError = String.Empty m_TabMaxError = String.Empty NotifyPropertyChanged("TabLenErrorMsg") NotifyPropertyChanged("TabDistErrorMsg") NotifyPropertyChanged("TabHeightErrorMsg") NotifyPropertyChanged("TabAngleErrorMsg") NotifyPropertyChanged("TabMinErrorMsg") NotifyPropertyChanged("TabMaxErrorMsg") End Sub #End Region ' Validation #Region "COMMANDS" #Region "UpdateNoteCommand" ''' ''' Comando per la visualizzazione della combobox ''' ''' Public ReadOnly Property ShowNoteListComboCommand As ICommand Get If m_cmdShowNoteListCombo Is Nothing Then m_cmdShowNoteListCombo = New Command(AddressOf ShowNoteListCombo) End If Return m_cmdShowNoteListCombo End Get End Property ''' ''' Funzione per la visualizzazione della combobox ''' ''' Public Sub ShowNoteListCombo(ByVal param As Object) ' Rendo visibile la combobox If m_NotesListCombo.Count > 0 Then SetComboAddVisibility(Visibility.Visible) ' Disabilito pulsante che mostra la combobox SetShowNoteListCombo_IsEnable(False) m_AdvancedParamIsExpander = True NotifyPropertyChanged(NameOf(NotesListCombo)) NotifyPropertyChanged(NameOf(AdvancedParamIsExpander)) End Sub #End Region ' UpdateNoteCommand #End Region ' Commands End Class ''' ''' Class that represent a Converter that use machining type and param type, to set the visibility state of the param type. ''' Public Class MachiningParamVisibilityConverter Implements IValueConverter Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As System.Globalization.CultureInfo) As Object Implements IValueConverter.Convert Select Case CInt(value) Case MCH_MY.NONE Return Visibility.Hidden Case MCH_MY.DRILLING Return TMDbParamVisibility.Drilling(CInt(parameter)) Case MCH_MY.SAWING Return TMDbParamVisibility.Sawing(CInt(parameter)) Case MCH_MY.MILLING Return TMDbParamVisibility.Milling(CInt(parameter)) Case MCH_MY.POCKETING Return TMDbParamVisibility.Pocketing(CInt(parameter)) Case MCH_MY.MORTISING Return TMDbParamVisibility.Mortising(CInt(parameter)) Case MCH_MY.SAWROUGHING Return TMDbParamVisibility.Sawroughing(CInt(parameter)) Case MCH_MY.SAWFINISHING Return TMDbParamVisibility.Sawfinishing(CInt(parameter)) Case MCH_MY.GENMACHINING Return TMDbParamVisibility.GenMachining(CInt(parameter)) Case MCH_MY.CHISELING Return TMDbParamVisibility.Chiseling(CInt(parameter)) Case MCH_MY.WATERJETTING Return TMDbParamVisibility.Waterjetting(CInt(parameter)) Case MCH_MY.FIVEAXISMILLING Return TMDbParamVisibility.FiveAxMachining(CInt(parameter)) Case Else Return Visibility.Hidden End Select End Function Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As System.Globalization.CultureInfo) As Object Implements IValueConverter.ConvertBack Throw New NotImplementedException End Function End Class Public Class ErrorVisibilityConverter Implements IValueConverter Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As System.Globalization.CultureInfo) As Object Implements IValueConverter.Convert If String.IsNullOrEmpty(CStr(value)) Then Return Visibility.Collapsed Else Return Visibility.Visible End If End Function Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As System.Globalization.CultureInfo) As Object Implements IValueConverter.ConvertBack Throw New NotImplementedException End Function End Class Public Class MachiningMaterial Inherits Material Friend m_refSetSystemNotes As Action Private m_MinThickness As String Public Property MinThickness As String Get Return m_MinThickness End Get Set(value As String) m_MinThickness = value m_refSetSystemNotes() End Set End Property Friend Sub SetMinThickness(value As String) m_MinThickness = value End Sub Private m_MaxThickness As String Public Property MaxThickness As String Get Return m_MaxThickness End Get Set(value As String) ' Se Sottomateriale presente siamo nel caso Waterjet e quindi verfichiamo lo Spessore massimo If nSubId > 0 Then Dim dValue As Double = 0 Dim dMaxValue As Double = 0 Dim dOldValue As Double = 0 StringToLen(value, dValue) For Each WjParam In CurrentMachine.WjMaterialList(nId - 1).SubMaterialList(nSubId - 1).ParamList StringToLen(WjParam.Thickness, dOldValue) If dOldValue > dMaxValue Then dMaxValue = dOldValue Next If dValue > dMaxValue Then Return End If m_MaxThickness = value m_refSetSystemNotes() End Set End Property Friend Sub SetMaxThickness(value As String) m_MaxThickness = value End Sub Sub New(nId As Integer, sName As String, refSetSystemNotes As Action) MyBase.New(nId, sName) m_MinThickness = "0" m_MaxThickness = "0" m_refSetSystemNotes = refSetSystemNotes End Sub Sub New(nId As Integer, sName As String, nSubId As Integer, refSetSystemNotes As Action) MyBase.New(nId, sName, nSubId) m_MinThickness = "0" m_MaxThickness = "0" m_refSetSystemNotes = refSetSystemNotes End Sub End Class