diff --git a/Constants/ConstMsg.vb b/Constants/ConstMsg.vb
index 55cd1d1..b962750 100644
--- a/Constants/ConstMsg.vb
+++ b/Constants/ConstMsg.vb
@@ -9,31 +9,11 @@
Public Const MSG_DRAWPANEL As Integer = MSG_EGTCAM5 + 200
Public Const MSG_GRIDVIEWPANEL As Integer = MSG_EGTCAM5 + 250
Public Const MSG_SIMULATION As Integer = MSG_EGTCAM5 + 300
+ Public Const MSG_OPERATION As Integer = MSG_EGTCAM5 + 400
Public Const MSG_TOOLSDBPAGE As Integer = MSG_EGTCAM5 + 1000
Public Const MSG_TOOLSERRORS As Integer = MSG_EGTCAM5 + 1100
Public Const MSG_MACHININGSDBPAGE As Integer = MSG_EGTCAM5 + 1200
Public Const MSG_MACHININGSERRORS As Integer = MSG_EGTCAM5 + 1320
Public Const MSG_MISSINGKEYWD As Integer = 10100
- 'Public Const MSG_CADCUTPAGEUC As Integer = MSG_OMAGCUT + 300
- 'Public Const MSG_NESTPAGEUC As Integer = MSG_OMAGCUT + 330
- 'Public Const MSG_SPLITPAGEUC As Integer = MSG_OMAGCUT + 340
- 'Public Const MSG_MOVERAWPAGEUC As Integer = MSG_OMAGCUT + 360
- 'Public Const MSG_DRAWPAGEUC As Integer = MSG_OMAGCUT + 380
- 'Public Const MSG_COMPONENTPAGEUC As Integer = MSG_OMAGCUT + 400
- 'Public Const MSG_IMPORTPAGEUC As Integer = MSG_OMAGCUT + 450
- 'Public Const MSG_OPENPAGEUC As Integer = MSG_OMAGCUT + 490
- 'Public Const MSG_RAWPARTPAGEUC As Integer = MSG_OMAGCUT + 500
- 'Public Const MSG_CHOOSEMACHININGPAGEUC As Integer = MSG_OMAGCUT + 535
- 'Public Const MSG_SIMULATIONPAGEUC As Integer = MSG_OMAGCUT + 550
- 'Public Const MSG_FRAMECUTPAGEUC As Integer = MSG_OMAGCUT + 600
- 'Public Const MSG_MACHINEPAGEUC As Integer = MSG_OMAGCUT + 700
- 'Public Const MSG_TOOLSDBPAGEUC As Integer = MSG_OMAGCUT + 720
- 'Public Const MSG_MACHININGSDBPAGEUC As Integer = MSG_OMAGCUT + 760
- 'Public Const MSG_COMBOBOXPARAM As Integer = MSG_OMAGCUT + 800
- 'Public Const MSG_ALARMSPAGEUC As Integer = MSG_OMAGCUT + 900
- 'Public Const MSG_MACHINECNPAGEUC As Integer = MSG_OMAGCUT + 930
- 'Public Const MSG_OPTIONSPAGEUC As Integer = MSG_OMAGCUT + 950
- 'Public Const MSG_EGTMSGBOX As Integer = MSG_OMAGCUT + 1100
- 'Public Const MSG_CSVPAGEUC As Integer = MSG_OMAGCUT + 1200
End Module
diff --git a/EgtCAM5.vbproj b/EgtCAM5.vbproj
index 97caa1a..5c3baa3 100644
--- a/EgtCAM5.vbproj
+++ b/EgtCAM5.vbproj
@@ -129,6 +129,7 @@
+
DbPanelView.xaml
@@ -142,7 +143,6 @@
MachiningsDbView.xaml
-
diff --git a/MachiningsDbWindow/MachiningTreeView2.vb b/MachiningsDbWindow/MachiningTreeView2.vb
new file mode 100644
index 0000000..7490796
--- /dev/null
+++ b/MachiningsDbWindow/MachiningTreeView2.vb
@@ -0,0 +1,1813 @@
+Imports System.Collections.ObjectModel
+Imports System.ComponentModel
+Imports EgtUILib
+Imports EgtCAM5.Utility
+
+'''
+''' 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 ParentItem
+
+ '''
+ ''' 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
+ 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
+
+ '''
+ ''' 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)
+ MyBase.New(Name)
+ Me.MachiningType = MachiningType
+ Me.PictureString = "/Resources/TreeView/Folder.png"
+ 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 ChildItem
+ Implements IDataErrorInfo
+
+#Region "Machining Property"
+
+ Private m_ErrorOnMachining As Boolean
+ Public Property ErrorOnMachining As Boolean
+ Get
+ Return m_ErrorOnMachining
+ End Get
+ Set(value As Boolean)
+ If IsValid Then
+ m_ErrorOnMachining = False
+ Application.Msn.NotifyColleagues(Application.ERRORONMACHINING, Nothing)
+ Else
+ m_ErrorOnMachining = True
+ Application.Msn.NotifyColleagues(Application.ERRORONMACHINING, Me)
+ End If
+ 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(IniFile.m_ProjectSceneContext)
+ EgtMdbSetCurrMachining(Me.Name)
+ ReadMachiningParam()
+ IsModifiedReset()
+ NotifyPropertyChanged("Type")
+ Else
+ WriteMachiningParam()
+ If EgtMdbIsCurrMachiningModified() Or m_IsModifiedName Or Me.NewMachining Then
+ Select Case MsgBox(EgtMsg(MSG_MACHININGSERRORS + 30), MsgBoxStyle.YesNo, EgtMsg(MSG_MACHININGSERRORS + 31))
+ Case MsgBoxResult.Yes
+ m_NewMachining = False
+ m_Name = m_Name.Trim()
+ WriteMachiningName()
+ EgtMdbSaveCurrMachining()
+ 'EgtMdbSave()
+ Case MsgBoxResult.No
+ If m_NewMachining Then
+ Application.Msn.NotifyColleagues(Application.REMOVEMACHINING, 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
+ Dim DbInvert As Boolean = False
+ EgtMdbGetCurrMachiningParam(MCH_MP.INVERT, DbInvert)
+ m_IsModifiedInvert = If(value <> DbInvert, True, False)
+ NotifyPropertyChanged("Invert")
+ 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
+ m_LeaveTab = value
+ Dim DbLeaveTab As Boolean = False
+ EgtMdbGetCurrMachiningParam(MCH_MP.LEAVETAB, DbLeaveTab)
+ m_IsModifiedLeaveTab = If(value <> DbLeaveTab, True, False)
+ NotifyPropertyChanged("LeaveTab")
+ 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 New ObservableCollection(Of IdNameStruct)({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))})
+ Public ReadOnly Property WorkSideList As ObservableCollection(Of IdNameStruct)
+ Get
+ 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 IdNameStruct.SearchFromId(m_SelectedWorkSide, WorkSideList)
+ End Get
+ Set(value As Integer)
+ If value <> m_SelectedWorkSide Then
+ If Not IsNothing(WorkSideList) Then
+ m_SelectedWorkSide = IdNameStruct.SearchToId(value, WorkSideList)
+ Dim DbWorkSide As Integer = 0
+ EgtMdbGetCurrMachiningParam(MCH_MP.WORKSIDE, DbWorkSide)
+ m_IsModifiedSelectedWorkSide = If(value <> DbWorkSide, True, False)
+ NotifyPropertyChanged("SelectedWorkSide")
+ End If
+ End If
+ End Set
+ End Property
+
+ 'ObservableCollection che contiene le variabili per il combobox HeadSide
+ Private m_HeadSideList As New ObservableCollection(Of IdNameStruct)({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 IdNameStruct)
+ 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 IdNameStruct.SearchFromId(m_SelectedHeadSide, HeadSideList)
+ End Get
+ Set(value As Integer)
+ If value <> m_SelectedHeadSide Then
+ If Not IsNothing(HeadSideList) Then
+ m_SelectedHeadSide = IdNameStruct.SearchToId(value, HeadSideList)
+ Dim DbHeadSide As Integer = 0
+ EgtMdbGetCurrMachiningParam(MCH_MP.HEADSIDE, DbHeadSide)
+ m_IsModifiedSelectedHeadSide = If(value <> DbHeadSide, True, False)
+ NotifyPropertyChanged("SelectedHeadSide")
+ End If
+ End If
+ End Set
+ End Property
+
+ 'ObservableCollection che contiene le variabili per il combobox LeadInType
+ Private m_LeadInTypeList As ObservableCollection(Of IdNameStruct)
+ Public ReadOnly Property LeadInTypeList As ObservableCollection(Of IdNameStruct)
+ Get
+ Select Case m_Type
+ Case MCH_MY.SAWING
+ m_LeadInTypeList = New ObservableCollection(Of IdNameStruct)({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 IdNameStruct)({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 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 IdNameStruct.SearchFromId(m_SelectedLeadInType, LeadInTypeList)
+ End Get
+ Set(value As Integer)
+ If value <> m_SelectedLeadInType Then
+ If Not IsNothing(LeadInTypeList) Then
+ m_SelectedLeadInType = IdNameStruct.SearchToId(value, LeadInTypeList)
+ Dim DbLeadInType As Integer = 0
+ EgtMdbGetCurrMachiningParam(MCH_MP.LEADINTYPE, DbLeadInType)
+ m_IsModifiedSelectedLeadInType = If(value <> DbLeadInType, True, False)
+ NotifyPropertyChanged("SelectedLeadInType")
+ End If
+ End If
+ End Set
+ End Property
+
+ 'ObservableCollection che contiene le variabili per il combobox ExtLinkType
+ Private m_ExtLinkTypeList As New ObservableCollection(Of IdNameStruct)({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 IdNameStruct)
+ 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 IdNameStruct.SearchFromId(m_SelectedExtLinkType, ExtLinkTypeList)
+ End Get
+ Set(value As Integer)
+ If value <> m_SelectedExtLinkType Then
+ If Not IsNothing(ExtLinkTypeList) Then
+ m_SelectedExtLinkType = IdNameStruct.SearchToId(value, ExtLinkTypeList)
+ Dim DbExtLinkType As Integer = 0
+ EgtMdbGetCurrMachiningParam(MCH_MP.EXTLINKTYPE, DbExtLinkType)
+ m_IsModifiedSelectedExtLinkType = If(value <> DbExtLinkType, True, False)
+ NotifyPropertyChanged("SelectedExtLinkType")
+ End If
+ End If
+ End Set
+ End Property
+
+ 'ObservableCollection che contiene le variabili per il combobox LeadOutType
+ Private m_LeadOutTypeList As ObservableCollection(Of IdNameStruct)
+ Public ReadOnly Property LeadOutTypeList As ObservableCollection(Of IdNameStruct)
+ Get
+ Select Case m_Type
+ Case MCH_MY.SAWING
+ m_LeadOutTypeList = New ObservableCollection(Of IdNameStruct)({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, EgtMsg(MSG_MACHININGSDBPAGE + 123))})
+ Case MCH_MY.MILLING
+ m_LeadOutTypeList = New ObservableCollection(Of IdNameStruct)({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 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 IdNameStruct.SearchFromId(m_SelectedLeadOutType, LeadOutTypeList)
+ End Get
+ Set(value As Integer)
+ If value <> m_SelectedLeadOutType Then
+ If Not IsNothing(LeadOutTypeList) Then
+ m_SelectedLeadOutType = IdNameStruct.SearchToId(value, LeadOutTypeList)
+ Dim DbLeadOutType As Integer = 0
+ EgtMdbGetCurrMachiningParam(MCH_MP.LEADOUTTYPE, DbLeadOutType)
+ m_IsModifiedSelectedLeadOutType = If(value <> DbLeadOutType, True, False)
+ NotifyPropertyChanged("SelectedLeadOutType")
+ End If
+ End If
+ End Set
+ End Property
+
+ 'ObservableCollection che contiene le variabili per il combobox CurveUse
+ Private m_CurveUseList As New ObservableCollection(Of IdNameStruct)({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))})
+ Public ReadOnly Property CurveUseList As ObservableCollection(Of IdNameStruct)
+ Get
+ 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 IdNameStruct.SearchFromId(m_SelectedCurveUse, CurveUseList)
+ End Get
+ Set(value As Integer)
+ If value <> m_SelectedCurveUse Then
+ If Not IsNothing(CurveUseList) Then
+ m_SelectedCurveUse = IdNameStruct.SearchToId(value, CurveUseList)
+ Dim DbCurveUse As Integer = 0
+ EgtMdbGetCurrMachiningParam(MCH_MP.CURVEUSE, DbCurveUse)
+ m_IsModifiedSelectedCurveUse = If(value <> DbCurveUse, True, False)
+ NotifyPropertyChanged("SelectedCurveUse")
+ End If
+ End If
+ End Set
+ End Property
+
+ 'ObservableCollection che contiene le variabili per il combobox StepType
+ Private m_StepTypeList As ObservableCollection(Of IdNameStruct)
+ Public ReadOnly Property StepTypeList As ObservableCollection(Of IdNameStruct)
+ Get
+ Select Case m_Type
+ Case MCH_MY.SAWING
+ m_StepTypeList = New ObservableCollection(Of IdNameStruct)({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 IdNameStruct)({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.SAWROUGHING, MCH_MY.SAWFINISHING
+ m_StepTypeList = New ObservableCollection(Of IdNameStruct)({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
+
+ 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 IdNameStruct.SearchFromId(m_SelectedStepType, StepTypeList)
+ End Get
+ Set(value As Integer)
+ If value <> m_SelectedStepType Then
+ If Not IsNothing(StepTypeList) Then
+ m_SelectedStepType = IdNameStruct.SearchToId(value, StepTypeList)
+ Dim DbStepType As Integer = 0
+ EgtMdbGetCurrMachiningParam(MCH_MP.CURVEUSE, DbStepType)
+ m_IsModifiedSelectedStepType = If(value <> DbStepType, True, False)
+ NotifyPropertyChanged("SelectedStepType")
+ End If
+ End If
+ End Set
+ End Property
+
+ 'ObservableCollection che contiene le variabili per il combobox SubType
+ Private m_SubTypeList As ObservableCollection(Of IdNameStruct)
+ Public ReadOnly Property SubTypeList As ObservableCollection(Of IdNameStruct)
+ Get
+ Select Case m_Type
+ Case MCH_MY.SAWFINISHING
+ m_SubTypeList = New ObservableCollection(Of IdNameStruct)({New IdNameStruct(MCH_SAWFIN_SUB.ALONG, EgtMsg(MSG_MACHININGSDBPAGE + 146)), New IdNameStruct(MCH_SAWFIN_SUB.ACROSS, EgtMsg(MSG_MACHININGSDBPAGE + 147))})
+ Case MCH_MY.DRILLING
+ m_SubTypeList = New ObservableCollection(Of IdNameStruct)({New IdNameStruct(0, "Prova 1"), New IdNameStruct(1, "Prova 2")})
+ 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 IdNameStruct.SearchFromId(m_SelectedSubType, SubTypeList)
+ End Get
+ Set(value As Integer)
+ If value <> m_SelectedSubType Then
+ If Not IsNothing(SubTypeList) Then
+ m_SelectedSubType = IdNameStruct.SearchToId(value, SubTypeList)
+ Dim DbSubType As Integer = 0
+ EgtMdbGetCurrMachiningParam(MCH_MP.SUBTYPE, DbSubType)
+ m_IsModifiedSelectedSubType = If(value <> DbSubType, True, False)
+ NotifyPropertyChanged("SelectedSubType")
+ End If
+ End If
+ End Set
+ End Property
+
+ 'ObservableCollection che contiene le variabili per il combobox LeadLinkType
+ Private m_LeadLinkTypeList As ObservableCollection(Of IdNameStruct)
+ Public ReadOnly Property LeadLinkTypeList As ObservableCollection(Of IdNameStruct)
+ Get
+ Select Case m_Type
+ Case MCH_MY.SAWROUGHING
+ m_LeadLinkTypeList = New ObservableCollection(Of IdNameStruct)({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 IdNameStruct)({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 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 IdNameStruct.SearchFromId(m_SelectedLeadLinkType, LeadLinkTypeList)
+ End Get
+ Set(value As Integer)
+ If value <> m_SelectedLeadLinkType Then
+ If Not IsNothing(LeadLinkTypeList) Then
+ m_SelectedLeadLinkType = IdNameStruct.SearchToId(value, LeadLinkTypeList)
+ Dim DbLeadLinkType As Integer = 0
+ EgtMdbGetCurrMachiningParam(MCH_MP.LEADLINKTYPE, DbLeadLinkType)
+ m_IsModifiedSelectedLeadLinkType = If(value <> DbLeadLinkType, True, False)
+ NotifyPropertyChanged("SelectedLeadLinkType")
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ NotifyPropertyChanged("TipFeed")
+ 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
+ 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
+ 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
+ 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
+ NotifyPropertyChanged("OffSl")
+ End If
+ 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
+ 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
+ NotifyPropertyChanged("SideAngle")
+ 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
+ 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
+ NotifyPropertyChanged("Approx")
+ 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
+ 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
+ NotifyPropertyChanged("StartPos")
+ 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
+ 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
+ NotifyPropertyChanged("StartSlowLen")
+ 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
+ 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
+ NotifyPropertyChanged("EndSlowLen")
+ 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
+ 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
+ NotifyPropertyChanged("ThrouAddLen")
+ 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
+ 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
+ NotifyPropertyChanged("StepPar")
+ 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
+ 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
+ NotifyPropertyChanged("ReturnPos")
+ 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
+ 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
+ NotifyPropertyChanged("TabLen")
+ 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
+ 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
+ NotifyPropertyChanged("TabDist")
+ 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
+ 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
+ NotifyPropertyChanged("TabHeight")
+ 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
+ Dim DbTabAngle As Double = 0
+ Dim dValue As Double = 0
+ EgtMdbGetCurrMachiningParam(MCH_MP.TABANGLE, DbTabAngle)
+ StringToLen(value, dValue)
+ m_IsModifiedTabAngle = Math.Abs(dValue - DbTabAngle) > 10 * EPS_ANG_SMALL
+ NotifyPropertyChanged("TabAngle")
+ 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
+ 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
+ NotifyPropertyChanged("LiTang")
+ 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
+ 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
+ NotifyPropertyChanged("LiPerp")
+ 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
+ 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
+ NotifyPropertyChanged("LiElev")
+ 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
+ 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
+ NotifyPropertyChanged("LiCompLen")
+ 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
+ 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
+ NotifyPropertyChanged("LoTang")
+ 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
+ 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
+ NotifyPropertyChanged("LoPerp")
+ 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
+ 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
+ NotifyPropertyChanged("LoElev")
+ 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
+ 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
+ NotifyPropertyChanged("LoCompLen")
+ 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
+ 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
+ NotifyPropertyChanged("StartAddLen")
+ 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
+ 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
+ NotifyPropertyChanged("EndAddLen")
+ 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
+ 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
+ NotifyPropertyChanged("StepExtArc")
+ 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
+ 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
+ NotifyPropertyChanged("StepIntArc")
+ 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
+ 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
+ NotifyPropertyChanged("SideStep")
+ 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
+ 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
+ NotifyPropertyChanged("VertFeed")
+ End If
+ End Set
+ End Property
+
+ ' Variabile che indica se c'è un errore nel nome della lavorazione (ad esempio nome già utilizzato)
+ Dim bErrorMachiningName As Boolean = False
+ 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
+ bErrorMachiningName = False
+ 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 = If(value <> DbName, True, False)
+ ' Verifico che il nuovo nome sia valido
+ Dim sTempName As String = value
+ EgtMdbGetMachiningNewName(sTempName)
+ If m_IsModifiedName And Not value = sTempName Then
+ bErrorMachiningName = 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)
+ 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.POCKETING
+ m_ToolList = New ObservableCollection(Of String)
+ FindToolByType(MCH_TY.MILL_STD, m_ToolList)
+ FindToolByType(MCH_TY.MILL_NOTIP, m_ToolList)
+ Case MCH_MY.MORTISING
+ m_ToolList = New ObservableCollection(Of String)
+ FindToolByType(MCH_TY.MORTISE_STD, 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
+
+ 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(IniFile.m_ProjectSceneContext)
+ EgtTdbGetCurrToolParam(MCH_MP.TOOL, DbSelectedTool)
+ m_IsModifiedSelectedTool = If(ToolList(value) <> DbSelectedTool, True, False)
+ End If
+ NotifyPropertyChanged("SelectedTool")
+ NotifyPropertyChanged("Speed")
+ NotifyPropertyChanged("Feed")
+ NotifyPropertyChanged("StartFeed")
+ NotifyPropertyChanged("EndFeed")
+ NotifyPropertyChanged("TipFeed")
+ NotifyPropertyChanged("OffSr")
+ NotifyPropertyChanged("OffSl")
+ 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
+ Dim DbDepthStr As String = String.Empty
+ EgtMdbGetCurrMachiningParam(MCH_MP.DEPTH_STR, DbDepthStr)
+ m_IsModifiedVertFeed = If(value <> DbDepthStr, True, False)
+ NotifyPropertyChanged("DepthStr")
+ End If
+ End Set
+ 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
+ Dim DbUserNotes As String = String.Empty
+ EgtMdbGetCurrMachiningParam(MCH_MP.USERNOTES, DbUserNotes)
+ m_IsModifiedUserNotes = If(value <> DbUserNotes, True, False)
+ NotifyPropertyChanged("UserNotes")
+ End If
+ End Set
+ End Property
+
+ Private m_IsModifiedOverLapStr As Boolean = False
+ Private m_OverLapStr As String
+ '''
+ ''' Property that read and write to the Machining's database the Over Lap Str
+ '''
+ Public Property OverLapStr As String
+ Get
+ Return m_OverLapStr
+ End Get
+ Set(value As String)
+ If value = String.Empty Or value <> m_OverLapStr Then
+ m_OverLapStr = value
+ Dim DbOverLapStr As String = String.Empty
+ EgtMdbGetCurrMachiningParam(MCH_MP.OVERLAP_STR, DbOverLapStr)
+ m_IsModifiedOverLapStr = If(value <> DbOverLapStr, True, False)
+ NotifyPropertyChanged("OverLapStr")
+ End If
+ End Set
+ End Property
+
+ Private m_IsModifiedOffsetStr As Boolean = False
+ Private m_OffsetStr As String
+ '''
+ ''' Property that read and write to the Machining's database the Offset Str
+ '''
+ Public Property OffsetStr As String
+ Get
+ Return m_OffsetStr
+ End Get
+ Set(value As String)
+ If value = String.Empty Or value <> m_OffsetStr Then
+ m_OffsetStr = value
+ Dim DbOffsetStr As String = String.Empty
+ EgtMdbGetCurrMachiningParam(MCH_MP.OFFSET_STR, DbOffsetStr)
+ m_IsModifiedOffsetStr = If(value <> DbOffsetStr, True, False)
+ NotifyPropertyChanged("OffsetStr")
+ End If
+ End Set
+ End Property
+
+#End Region ' Machining Property
+
+#Region "Constructors"
+
+ Sub New(Name As String, Type As MCH_MY)
+ MyBase.New(Name)
+ Me.m_Type = Type
+ End Sub
+
+#End Region ' Constructors
+
+#Region "METHODS"
+
+ Friend Sub ReadMachiningParam()
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ Dim dValue As Double = 0
+ Dim nValue As Integer = 0
+ Dim sValue As String = String.Empty
+ EgtMdbGetCurrMachiningParam(MCH_MP.INVERT, Invert)
+ EgtMdbGetCurrMachiningParam(MCH_MP.LEAVETAB, LeaveTab)
+ EgtMdbGetCurrMachiningParam(MCH_MP.WORKSIDE, nValue)
+ SelectedWorkSide = nValue
+ EgtMdbGetCurrMachiningParam(MCH_MP.HEADSIDE, nValue)
+ SelectedHeadSide = nValue
+ EgtMdbGetCurrMachiningParam(MCH_MP.LEADINTYPE, nValue)
+ SelectedLeadInType = nValue
+ EgtMdbGetCurrMachiningParam(MCH_MP.EXTLINKTYPE, nValue)
+ SelectedExtLinkType = nValue
+ EgtMdbGetCurrMachiningParam(MCH_MP.LEADOUTTYPE, nValue)
+ SelectedLeadOutType = nValue
+ EgtMdbGetCurrMachiningParam(MCH_MP.CURVEUSE, nValue)
+ SelectedCurveUse = nValue
+ EgtMdbGetCurrMachiningParam(MCH_MP.STEPTYPE, nValue)
+ SelectedStepType = nValue
+ EgtMdbGetCurrMachiningParam(MCH_MP.SUBTYPE, nValue)
+ SelectedSubType = nValue
+ EgtMdbGetCurrMachiningParam(MCH_MP.LEADLINKTYPE, nValue)
+ SelectedLeadLinkType = nValue
+ 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.OFFSR, dValue)
+ OffSr = LenToString(dValue, 4)
+ EgtMdbGetCurrMachiningParam(MCH_MP.OFFSL, dValue)
+ OffSl = 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.RETURNPOS, dValue)
+ ReturnPos = 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 = LenToString(dValue, 4)
+ 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.VERTFEED, dValue)
+ VertFeed = LenToString(dValue, 4)
+ EgtMdbGetCurrMachiningParam(MCH_MP.DEPTH_STR, DepthStr)
+ 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
+ Dim bFound As Boolean = False
+ For i = 0 To ToolList.Count - 1
+ If ToolList(i) = sToolName Then
+ bFound = True
+ SelectedTool = i
+ End If
+ Next
+ If Not bFound Then
+ SelectedTool = -1
+ End If
+ EgtMdbGetCurrMachiningParam(MCH_MP.USERNOTES, UserNotes)
+ EgtMdbGetCurrMachiningParam(MCH_MP.OVERLAP_STR, OverLapStr)
+ EgtMdbGetCurrMachiningParam(MCH_MP.OFFSET_STR, OffsetStr)
+ End Sub
+
+ Friend Sub WriteMachiningParam()
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ Dim dValue As Double = 0
+ EgtMdbSetCurrMachiningParam(MCH_MP.INVERT, Invert)
+ EgtMdbSetCurrMachiningParam(MCH_MP.LEAVETAB, LeaveTab)
+ EgtMdbSetCurrMachiningParam(MCH_MP.TYPE, Type)
+ EgtMdbSetCurrMachiningParam(MCH_MP.WORKSIDE, SelectedWorkSide)
+ EgtMdbSetCurrMachiningParam(MCH_MP.HEADSIDE, SelectedHeadSide)
+ EgtMdbSetCurrMachiningParam(MCH_MP.LEADINTYPE, SelectedLeadInType)
+ EgtMdbSetCurrMachiningParam(MCH_MP.EXTLINKTYPE, SelectedExtLinkType)
+ EgtMdbSetCurrMachiningParam(MCH_MP.LEADOUTTYPE, SelectedLeadOutType)
+ EgtMdbSetCurrMachiningParam(MCH_MP.CURVEUSE, SelectedCurveUse)
+ EgtMdbSetCurrMachiningParam(MCH_MP.STEPTYPE, SelectedStepType)
+ EgtMdbSetCurrMachiningParam(MCH_MP.SUBTYPE, SelectedSubType)
+ EgtMdbSetCurrMachiningParam(MCH_MP.LEADLINKTYPE, SelectedLeadLinkType)
+ 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(OffSr, dValue)
+ EgtMdbSetCurrMachiningParam(MCH_MP.OFFSR, dValue)
+ StringToLen(OffSl, dValue)
+ EgtMdbSetCurrMachiningParam(MCH_MP.OFFSL, 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(ReturnPos, dValue)
+ EgtMdbSetCurrMachiningParam(MCH_MP.RETURNPOS, 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)
+ StringToLen(TabAngle, dValue)
+ EgtMdbSetCurrMachiningParam(MCH_MP.TABANGLE, dValue)
+ 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(VertFeed, dValue)
+ EgtMdbSetCurrMachiningParam(MCH_MP.VERTFEED, dValue)
+ EgtMdbSetCurrMachiningParam(MCH_MP.TOOL, ToolList(SelectedTool))
+ EgtMdbSetCurrMachiningParam(MCH_MP.DEPTH_STR, DepthStr)
+ EgtMdbSetCurrMachiningParam(MCH_MP.USERNOTES, UserNotes)
+ EgtMdbSetCurrMachiningParam(MCH_MP.OVERLAP_STR, OverLapStr)
+ EgtMdbSetCurrMachiningParam(MCH_MP.OFFSET_STR, OffsetStr)
+ End Sub
+
+ Public Sub WriteMachiningName()
+ EgtMdbSetCurrMachiningParam(MCH_MP.NAME, NamePar)
+ End Sub
+
+#End Region ' Methods
+
+#Region "IDataErrorInfo Members"
+
+ Private ReadOnly Property IDataErrorInfo_Error() As String Implements IDataErrorInfo.Error
+ Get
+ Return Nothing
+ End Get
+ End Property
+
+ Public ReadOnly Property IDataErrorInfo_Item(ByVal propertyName As String) As String Implements IDataErrorInfo.Item
+ Get
+ ErrorOnMachining = True
+ Return Me.GetValidationError(propertyName)
+ End Get
+ End Property
+
+#End Region ' IDataErrorInfo Members
+
+#Region "Validation"
+
+ '''
+ ''' Returns true if this object has no validation errors.
+ '''
+ Public ReadOnly Property IsValid() As Boolean
+ Get
+ For Each [property] As String In ValidatedProperties
+ If GetValidationError([property]) IsNot Nothing Then
+ Return False
+ End If
+ Next [property]
+
+ Return True
+ End Get
+ End Property
+
+ Public ReadOnly Property IsModified() As Boolean
+ Get
+ Return m_IsModifiedInvert OrElse m_IsModifiedLeaveTab 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_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_IsModifiedName OrElse m_IsModifiedSelectedTool _
+ OrElse m_IsModifiedDepthStr OrElse m_IsModifiedUserNotes OrElse m_IsModifiedOverLapStr OrElse m_IsModifiedOffsetStr
+ End Get
+ End Property
+
+ Public Sub IsModifiedReset()
+ m_IsModifiedInvert = False
+ m_IsModifiedLeaveTab = 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_IsModifiedSpeed = False
+ m_IsModifiedFeed = False
+ m_IsModifiedStartFeed = False
+ m_IsModifiedEndFeed = False
+ m_IsModifiedTipFeed = False
+ m_IsModifiedOffSr = False
+ m_IsModifiedOffSl = False
+ m_IsModifiedSideAngle = False
+ m_IsModifiedApprox = False
+ m_IsModifiedStartPos = False
+ m_IsModifiedStartSlowLen = False
+ m_IsModifiedEndSlowLen = False
+ m_IsModifiedThrouAddLen = False
+ m_IsModifiedStepPar = False
+ m_IsModifiedReturnPos = False
+ m_IsModifiedTabLen = False
+ m_IsModifiedTabDist = False
+ m_IsModifiedTabHeight = False
+ m_IsModifiedTabAngle = 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_IsModifiedVertFeed = False
+ m_IsModifiedName = False
+ m_IsModifiedSelectedTool = False
+ m_IsModifiedDepthStr = False
+ m_IsModifiedUserNotes = False
+ m_IsModifiedOverLapStr = False
+ m_IsModifiedOffsetStr = False
+ End Sub
+
+ Private Shared ReadOnly ValidatedProperties() As String = {"Speed", "NamePar"}
+
+ Private Function GetValidationError(ByVal propertyName As String) As String
+ If Array.IndexOf(ValidatedProperties, propertyName) < 0 Then
+ Return Nothing
+ End If
+
+ Dim [error] As String = Nothing
+
+ Select Case propertyName
+ Case "Speed"
+ [error] = Me.ValidateSpeed()
+ Case "NamePar"
+ [error] = Me.ValidateName()
+
+ Case Else
+ 'Debug.Fail("Unexpected property being validated on Tool: " & propertyName)
+ End Select
+ Return [error]
+ End Function
+
+ Private Function ValidateSpeed() As String
+ If SelectedTool >= 0 Then
+ If Not IsNothing(m_Speed) Then
+ Dim dSpeed As Double = 0
+ StringToDouble(m_Speed, dSpeed)
+ Dim dMaxSpeed As Double = 0
+ EgtTdbSetCurrTool(ToolList(SelectedTool))
+ EgtTdbGetCurrToolParam(MCH_TP.MAXSPEED, dMaxSpeed)
+ If Math.Abs(dSpeed) > dMaxSpeed + EPS_ZERO Then
+ Return EgtMsg(MSG_TOOLSERRORS + 11)
+ End If
+ End If
+ End If
+ Return Nothing
+ End Function
+
+ Private Function ValidateName() As String
+ If bErrorMachiningName Then
+ Return EgtMsg(MSG_MACHININGSERRORS + 2)
+ End If
+ Return Nothing
+ End Function
+
+#End Region ' Validation
+
+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 SharedFieldsClass.Drilling(CInt(parameter))
+ Case MCH_MY.SAWING
+ Return SharedFieldsClass.Sawing(CInt(parameter))
+ Case MCH_MY.MILLING
+ Return SharedFieldsClass.Milling(CInt(parameter))
+ Case MCH_MY.POCKETING
+ Return SharedFieldsClass.Pocketing(CInt(parameter))
+ Case MCH_MY.MORTISING
+ Return SharedFieldsClass.Mortising(CInt(parameter))
+ Case MCH_MY.SAWROUGHING
+ Return SharedFieldsClass.Sawroughing(CInt(parameter))
+ Case MCH_MY.SAWFINISHING
+ Return SharedFieldsClass.Sawfinishing(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
\ No newline at end of file
diff --git a/MachiningsDbWindow/MachiningsDbView.xaml b/MachiningsDbWindow/MachiningsDbView.xaml
index 58561fc..0aa244a 100644
--- a/MachiningsDbWindow/MachiningsDbView.xaml
+++ b/MachiningsDbWindow/MachiningsDbView.xaml
@@ -2,13 +2,17 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
+ xmlns:interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:local="clr-namespace:EgtCAM5"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
Title="{Binding Title}" Icon="/Resources/EgtCAM5.ico"
TitleBarBrush="{StaticResource EgaltechBlue1}"
BorderBrush="{StaticResource EgaltechBlue1}"
WindowStyle="None" ResizeMode="NoResize" TitleBarHeight="30" IsMovable="False" IsResizable="False"
- IsMinimizable="False" WindowStartupLocation="CenterScreen" ShowInTaskbar="False">
+ IsMinimizable="False" WindowStartupLocation="CenterScreen" ShowInTaskbar="False"
+ CloseCommand="{Binding CloseMachiningsDbCommand,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}"
+ CloseCommandParameter="{Binding Path=SelectedItem, ElementName=MachiningsTreeView}">
+
@@ -1460,6 +1464,19 @@
+
+
+
+
+
+
+
@@ -1514,15 +1531,16 @@
ConverterParameter={StaticResource Speed}}"/>
-
+ UpdateSourceTrigger=PropertyChanged}"/>
diff --git a/MachiningsDbWindow/MachiningsDbViewModel.vb b/MachiningsDbWindow/MachiningsDbViewModel.vb
index a98160b..2805f6d 100644
--- a/MachiningsDbWindow/MachiningsDbViewModel.vb
+++ b/MachiningsDbWindow/MachiningsDbViewModel.vb
@@ -30,6 +30,7 @@ Namespace EgtCAM5
Private m_cmdNew As ICommand
Private m_cmdSave As ICommand
Private m_cmdRemove As ICommand
+ Private m_cmdCloseMachiningsDb As ICommand
#Region "MESSAGES"
@@ -494,8 +495,11 @@ Namespace EgtCAM5
MachiningFamily.Items.Add(NewMachiningItem)
EgtMdbSaveCurrMachining()
NewMachiningItem.NewMachining = True
+ ' Reimposto ll lavorazione vecchia nel Db per deselezionarla e fare le verifiche correttamente
+ EgtMdbSetCurrMachining(MachiningCopied.Name)
+ MachiningCopied.IsSelected = False
+ MachiningCopied.NotifyPropertyChanged("IsSelected")
NewMachiningItem.IsSelected = True
- NewMachiningItem.NotifyPropertyChanged("IsSelected")
Exit For
End If
Next
@@ -514,7 +518,8 @@ Namespace EgtCAM5
' Verifico se sia selezionata una lavorazione
ElseIf TypeOf param Is MachiningTreeViewItem Then
' Verifico che i parametri della lavorazione siano validi
- Return DirectCast(param, MachiningTreeViewItem).IsValid
+ Dim SelectedMachining As MachiningTreeViewItem = DirectCast(param, MachiningTreeViewItem)
+ Return SelectedMachining.IsValid And Not SelectedMachining.IsModified
Else
Return False
End If
@@ -540,8 +545,14 @@ Namespace EgtCAM5
''' Saves the current machining. This method is invoked by the SaveCommand.
'''
Public Sub Save(ByVal param As Object)
+ Dim CurrMachining As MachiningTreeViewItem = DirectCast(param, MachiningTreeViewItem)
+ CurrMachining.WriteMachiningParam()
+ CurrMachining.m_Name = CurrMachining.m_Name.Trim()
+ CurrMachining.WriteMachiningName()
EgtMdbSaveCurrMachining()
- EgtMdbSave()
+ 'EgtMdbSave()
+ CurrMachining.NewMachining = False
+ CurrMachining.IsModifiedReset()
End Sub
'''
@@ -550,8 +561,9 @@ Namespace EgtCAM5
Private Function CanSave(ByVal param As Object) As Boolean
' Verifico che sia selezionata una lavorazione
If TypeOf param Is MachiningTreeViewItem Then
+ Dim Machining As MachiningTreeViewItem = DirectCast(param, MachiningTreeViewItem)
' Verifico che i parametri della lavorazione siano validi
- Return DirectCast(param, MachiningTreeViewItem).IsValid And EgtMdbIsCurrMachiningModified()
+ Return (Machining.IsValid And (Machining.IsModified Or Machining.NewMachining))
Else
Return False
End If
@@ -609,6 +621,63 @@ Namespace EgtCAM5
#End Region ' RemoveCommand
+#Region "CloseMachiningsDbCommand"
+
+ '''
+ ''' Returns a command that remove the current selected machining.
+ '''
+ Public ReadOnly Property CloseMachiningsDbCommand() As ICommand
+ Get
+ If m_cmdCloseMachiningsDb Is Nothing Then
+ m_cmdCloseMachiningsDb = New RelayCommand(AddressOf CloseMachiningsDb)
+ End If
+ Return m_cmdCloseMachiningsDb
+ End Get
+ End Property
+
+ '''
+ ''' Manage the MachiningDb closing. This method is invoked by the CloseMachiningDbCommand.
+ '''
+ Public Sub CloseMachiningsDb(param As Object)
+ ' Verifico se sia selezionata una famiglia
+ If TypeOf param Is FamilyMachiningTreeViewItem Then
+ Return
+ ' Verifico se sia selezionata una lavorazione
+ ElseIf TypeOf param Is MachiningTreeViewItem Then
+ Dim CurrMachining As MachiningTreeViewItem = DirectCast(param, MachiningTreeViewItem)
+ If CurrMachining.IsValid Then
+ CurrMachining.WriteMachiningParam()
+ If EgtMdbIsCurrMachiningModified() Or CurrMachining.m_IsModifiedName Or CurrMachining.NewMachining Then
+ Select Case MsgBox(EgtMsg(MSG_MACHININGSERRORS + 30), MsgBoxStyle.YesNo, EgtMsg(MSG_MACHININGSERRORS + 31))
+ Case MsgBoxResult.Yes
+ CurrMachining.NewMachining = False
+ CurrMachining.m_Name = CurrMachining.m_Name.Trim()
+ CurrMachining.WriteMachiningName()
+ EgtMdbSaveCurrMachining()
+ Case MsgBoxResult.No
+ If CurrMachining.NewMachining Then
+ Application.Msn.NotifyColleagues(Application.REMOVEMACHINING, Me)
+ ElseIf CurrMachining.m_IsModifiedName Then
+ Dim DbName As String = String.Empty
+ EgtMdbGetCurrMachiningParam(MCH_MP.NAME, DbName)
+ CurrMachining.NamePar = DbName
+ End If
+ End Select
+ End If
+ EgtMdbSave()
+ For Each Window In Application.Current.Windows
+ If TypeOf Window Is MachiningsDbView Then
+ Dim MachiningsDbWindow As MachiningsDbView = DirectCast(Window, MachiningsDbView)
+ MachiningsDbWindow.Close()
+ End If
+ Next
+ End If
+ End If
+
+ End Sub
+
+#End Region ' CloseMachiningDbCommand
+
End Class
End Namespace
\ No newline at end of file
diff --git a/ProjectPage/OptionPanel/DrawOptionPanel/InputExpander/InputExpanderView.xaml b/ProjectPage/OptionPanel/DrawOptionPanel/InputExpander/InputExpanderView.xaml
index b96ad48..73b05f2 100644
--- a/ProjectPage/OptionPanel/DrawOptionPanel/InputExpander/InputExpanderView.xaml
+++ b/ProjectPage/OptionPanel/DrawOptionPanel/InputExpander/InputExpanderView.xaml
@@ -17,7 +17,7 @@
-
+
-
+
m_ParametersIsExpanded Then
m_ParametersIsExpanded = value
- OnPropertyChanged("ParametersIsExpanded")
+ If value Then
+ If m_CurrExpandedExpander = MachiningOptionPanelExpander.OPERATIONLIST Then
+ ListIsExpanded = False
+ ElseIf m_CurrExpandedExpander = MachiningOptionPanelExpander.SIMULATION Then
+ m_CurrExpandedExpander = MachiningOptionPanelExpander.OPERATIONPARAMETERS
+ Application.Msn.NotifyColleagues(Application.SIMULATIONEXPANDER_SET_ISEXPANDED, False)
+ End If
+ ParametersExpanderName = m_SelectedOperation.Name
+ m_CurrExpandedExpander = MachiningOptionPanelExpander.OPERATIONPARAMETERS
+ Else
+ If m_CurrExpandedExpander = MachiningOptionPanelExpander.OPERATIONLIST Then
+ ListIsExpanded = True
+ End If
+ ParametersExpanderName = String.Empty
+ End If
+ OnPropertyChanged("ParametersIsExpanded")
End If
End Set
End Property
+ Private m_ParametersExpanderName As String
+ Public Property ParametersExpanderName As String
+ Get
+ If String.IsNullOrEmpty(m_ParametersExpanderName) Then
+ Return EgtMsg(MSG_OPERATION + 2)
+ Else
+ Return m_ParametersExpanderName
+ End If
+ End Get
+ Set(value As String)
+ If value <> m_ParametersExpanderName Then
+ m_ParametersExpanderName = value
+ End If
+ OnPropertyChanged("ParametersExpanderName")
+ End Set
+ End Property
+
Private m_IsEnabledOperationList As Boolean = True
Public Property IsEnabledOperationList As Boolean
Get
@@ -377,9 +422,13 @@ Namespace EgtCAM5
NewMachining = bValue
End Sub)
Application.Msn.Register(Application.SIMULATIONEXPANDER_GET_ISEXPANDED, Sub(bValue As Boolean)
- ListIsExpanded = Not bValue
+ If m_CurrExpandedExpander = MachiningOptionPanelExpander.SIMULATION Then
+ ListIsExpanded = True
+ End If
If bValue Then
+ ListIsExpanded = False
ParametersIsExpanded = False
+ m_CurrExpandedExpander = MachiningOptionPanelExpander.SIMULATION
End If
End Sub)
End Sub
diff --git a/ProjectPage/OptionPanel/MachiningOptionPanel/SimulationExpander/SimulationExpanderViewModel.vb b/ProjectPage/OptionPanel/MachiningOptionPanel/SimulationExpander/SimulationExpanderViewModel.vb
index 28c25cd..7773e53 100644
--- a/ProjectPage/OptionPanel/MachiningOptionPanel/SimulationExpander/SimulationExpanderViewModel.vb
+++ b/ProjectPage/OptionPanel/MachiningOptionPanel/SimulationExpander/SimulationExpanderViewModel.vb
@@ -290,7 +290,7 @@ Namespace EgtCAM5
Public ReadOnly Property StepCommand As ICommand
Get
If m_cmdStep Is Nothing Then
- m_cmdStep = New RelayCommand(AddressOf StepCmd, AddressOf CanStep)
+ m_cmdStep = New RelayCommand(AddressOf StepCmd)
End If
Return m_cmdStep
End Get
@@ -319,13 +319,6 @@ Namespace EgtCAM5
End If
End Sub
- '''
- ''' Returns true if the selected treeviewitem is valid for new tool creation.
- '''
- Private Function CanStep(ByVal param As Object) As Boolean
- Return True
- End Function
-
#End Region ' StepCommand
#Region "PlayPauseCommand"
@@ -336,7 +329,7 @@ Namespace EgtCAM5
Public ReadOnly Property PlayPauseCommand As ICommand
Get
If m_cmdPlayPause Is Nothing Then
- m_cmdPlayPause = New RelayCommand(AddressOf PlayPause, AddressOf CanPlayPause)
+ m_cmdPlayPause = New RelayCommand(AddressOf PlayPause)
End If
Return m_cmdPlayPause
End Get
@@ -373,12 +366,6 @@ Namespace EgtCAM5
End If
End Sub
- '''
- ''' Returns true if the selected treeviewitem is valid for new tool creation.
- '''
- Private Function CanPlayPause(ByVal param As Object) As Boolean
- Return True
- End Function
#End Region ' PlayPauseCommand
@@ -390,7 +377,7 @@ Namespace EgtCAM5
Public ReadOnly Property StopCommand As ICommand
Get
If m_cmdStop Is Nothing Then
- m_cmdStop = New RelayCommand(AddressOf StopCmd, AddressOf CanStop)
+ m_cmdStop = New RelayCommand(AddressOf StopCmd)
End If
Return m_cmdStop
End Get
@@ -416,12 +403,6 @@ Namespace EgtCAM5
m_nStatus = SIM_ST.ST_STOP
End Sub
- '''
- ''' Returns true if the selected treeviewitem is valid for new tool creation.
- '''
- Private Function CanStop(ByVal param As Object) As Boolean
- Return True
- End Function
#End Region ' StopCommand
diff --git a/ToolsDbWindow/ToolTreeView2.vb b/ToolsDbWindow/ToolTreeView2.vb
index 5182593..5ac6c1a 100644
--- a/ToolsDbWindow/ToolTreeView2.vb
+++ b/ToolsDbWindow/ToolTreeView2.vb
@@ -58,6 +58,8 @@ Public Class ToolTreeViewItem
Inherits InheritableTreeViewItem
Implements IDataErrorInfo
+#Region "Machining Property"
+
' Variabile che indica quando non lanciare l'update del disegno utensile
' (utile per evitare di rifare il disegno più volte quando vengono caricati i parametri alla selezione di un utensile)
Private m_SuspendToolDrawUpdate As Boolean = False
@@ -89,6 +91,9 @@ Public Class ToolTreeViewItem
End Set
End Property
+ '''
+ ''' Property that determines if the Tool is selected or not
+ '''
Public Overrides Property IsSelected As Boolean
Get
Return m_IsSelected
@@ -132,11 +137,6 @@ Public Class ToolTreeViewItem
End Set
End Property
- Sub New(Name As String)
- MyBase.New(Name)
- Me.PictureString = "/Resources/TreeView/Folder.png"
- End Sub
-
Private m_IsModifiedCorr As Boolean = False
Private m_Corr As Integer
'''
@@ -232,7 +232,7 @@ Public Class ToolTreeViewItem
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
EgtTdbGetCurrToolParam(MCH_TP.CORNRAD, DbCornRad)
StringToLen(value, dValue)
- m_IsModifiedCornRad = If(dValue <> DbCornRad, True, False)
+ m_IsModifiedCornRad = Math.Abs(dValue - DbCornRad) > 10 * EPS_ANG_SMALL
NotifyPropertyChanged("CornRad")
End If
End Set
@@ -255,7 +255,7 @@ Public Class ToolTreeViewItem
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
EgtTdbGetCurrToolParam(MCH_TP.DIAM, DbDiam)
StringToLen(value, dValue)
- m_IsModifiedDiam = If(dValue <> DbDiam, True, False)
+ m_IsModifiedDiam = Math.Abs(dValue - DbDiam) > 10 * EPS_ANG_SMALL
If Not m_SuspendToolDrawUpdate Then
UpdateSceneToolDraw(DrawUpdateSource.DIAM)
End If
@@ -281,7 +281,7 @@ Public Class ToolTreeViewItem
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
EgtTdbGetCurrToolParam(MCH_TP.TOTDIAM, DbTotDiam)
StringToLen(value, dValue)
- m_IsModifiedTotDiam = If(dValue <> DbTotDiam, True, False)
+ m_IsModifiedTotDiam = Math.Abs(dValue - DbTotDiam) > 10 * EPS_SMALL
NotifyPropertyChanged("TotDiam")
End If
End Set
@@ -304,7 +304,7 @@ Public Class ToolTreeViewItem
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
EgtTdbGetCurrToolParam(MCH_TP.FEED, DbFeed)
StringToLen(value, dValue)
- m_IsModifiedFeed = If(dValue <> DbFeed, True, False)
+ m_IsModifiedFeed = Math.Abs(dValue - DbFeed) > 10 * EPS_SMALL
NotifyPropertyChanged("Feed")
End If
End Set
@@ -327,7 +327,7 @@ Public Class ToolTreeViewItem
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
EgtTdbGetCurrToolParam(MCH_TP.ENDFEED, DbEndFeed)
StringToLen(value, dValue)
- m_IsModifiedEndFeed = If(dValue <> DbEndFeed, True, False)
+ m_IsModifiedEndFeed = Math.Abs(dValue - DbEndFeed) > 10 * EPS_SMALL
NotifyPropertyChanged("EndFeed")
End If
End Set
@@ -350,7 +350,7 @@ Public Class ToolTreeViewItem
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
EgtTdbGetCurrToolParam(MCH_TP.STARTFEED, DbStartFeed)
StringToLen(value, dValue)
- m_IsModifiedStartFeed = If(dValue <> DbStartFeed, True, False)
+ m_IsModifiedStartFeed = Math.Abs(dValue - DbStartFeed) > 10 * EPS_SMALL
NotifyPropertyChanged("StartFeed")
End If
End Set
@@ -373,7 +373,7 @@ Public Class ToolTreeViewItem
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
EgtTdbGetCurrToolParam(MCH_TP.TIPFEED, DbTipFeed)
StringToLen(value, dValue)
- m_IsModifiedTipFeed = If(dValue <> DbTipFeed, True, False)
+ m_IsModifiedTipFeed = Math.Abs(dValue - DbTipFeed) > 10 * EPS_SMALL
NotifyPropertyChanged("TipFeed")
End If
End Set
@@ -396,7 +396,7 @@ Public Class ToolTreeViewItem
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
EgtTdbGetCurrToolParam(MCH_TP.LEN, DbLen)
StringToLen(value, dValue)
- m_IsModifiedLen = If(dValue <> DbLen, True, False)
+ m_IsModifiedLen = Math.Abs(dValue - DbLen) > 10 * EPS_SMALL
If Not m_SuspendToolDrawUpdate Then
UpdateSceneToolDraw(DrawUpdateSource.LEN)
End If
@@ -422,7 +422,7 @@ Public Class ToolTreeViewItem
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
EgtTdbGetCurrToolParam(MCH_TP.TOTLEN, DbTotLen)
StringToLen(value, dValue)
- m_IsModifiedTotLen = If(dValue <> DbTotLen, True, False)
+ m_IsModifiedTotLen = Math.Abs(dValue - DbTotLen) > 10 * EPS_SMALL
If Not m_SuspendToolDrawUpdate Then
UpdateSceneToolDraw(DrawUpdateSource.TOTLEN)
End If
@@ -448,7 +448,7 @@ Public Class ToolTreeViewItem
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
EgtTdbGetCurrToolParam(MCH_TP.MAXMAT, DbMaxMat)
StringToLen(value, dValue)
- m_IsModifiedMaxMat = If(dValue <> DbMaxMat, True, False)
+ m_IsModifiedMaxMat = Math.Abs(dValue - DbMaxMat) > 10 * EPS_SMALL
If Not m_SuspendToolDrawUpdate Then
UpdateSceneToolDraw(DrawUpdateSource.MAXMAT)
End If
@@ -474,7 +474,7 @@ Public Class ToolTreeViewItem
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
EgtTdbGetCurrToolParam(MCH_TP.LONOFFSET, DbLonOffset)
StringToLen(value, dValue)
- m_IsModifiedLonOffset = If(dValue <> DbLonOffset, True, False)
+ m_IsModifiedLonOffset = Math.Abs(dValue - DbLonOffset) > 10 * EPS_SMALL
NotifyPropertyChanged("LonOffset")
End If
End Set
@@ -497,7 +497,7 @@ Public Class ToolTreeViewItem
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
EgtTdbGetCurrToolParam(MCH_TP.RADOFFSET, DbRadOffset)
StringToLen(value, dValue)
- m_IsModifiedRadOffset = If(dValue <> DbRadOffset, True, False)
+ m_IsModifiedRadOffset = Math.Abs(dValue - DbRadOffset) > 10 * EPS_SMALL
NotifyPropertyChanged("RadOffset")
End If
End Set
@@ -519,8 +519,8 @@ Public Class ToolTreeViewItem
Dim dValue As Double = 0
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
EgtTdbGetCurrToolParam(MCH_TP.SPEED, DbSpeed)
- StringToLen(value, dValue)
- m_IsModifiedSpeed = If(dValue <> DbSpeed, True, False)
+ StringToDouble(value, dValue)
+ m_IsModifiedSpeed = Math.Abs(dValue - DbSpeed) > 10 * EPS_ANG_SMALL
NotifyPropertyChanged("Speed")
NotifyPropertyChanged("MaxSpeed")
End If
@@ -544,7 +544,7 @@ Public Class ToolTreeViewItem
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
EgtTdbGetCurrToolParam(MCH_TP.SIDEANG, DbSideAng)
StringToLen(value, dValue)
- m_IsModifiedSideAng = If(dValue <> DbSideAng, True, False)
+ m_IsModifiedSideAng = Math.Abs(dValue - DbSideAng) > 10 * EPS_ANG_SMALL
NotifyPropertyChanged("SideAng")
End If
End Set
@@ -567,7 +567,7 @@ Public Class ToolTreeViewItem
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
EgtTdbGetCurrToolParam(MCH_TP.MAXSPEED, DbMaxSpeed)
StringToLen(value, dValue)
- m_IsModifiedMaxSpeed = If(dValue <> DbMaxSpeed, True, False)
+ m_IsModifiedMaxSpeed = Math.Abs(dValue - DbMaxSpeed) > 10 * EPS_ANG_SMALL
NotifyPropertyChanged("Speed")
NotifyPropertyChanged("MaxSpeed")
End If
@@ -591,7 +591,7 @@ Public Class ToolTreeViewItem
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
EgtTdbGetCurrToolParam(MCH_TP.THICK, DbThick)
StringToLen(value, dValue)
- m_IsModifiedThick = If(dValue <> DbThick, True, False)
+ m_IsModifiedThick = Math.Abs(dValue - DbThick) > 10 * EPS_SMALL
If Not m_SuspendToolDrawUpdate Then
UpdateSceneToolDraw(DrawUpdateSource.THICK)
End If
@@ -617,7 +617,7 @@ Public Class ToolTreeViewItem
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
EgtTdbGetCurrToolParam(MCH_TP.MAXABSORPTION, DbMaxAbsorption)
StringToLen(value, dValue)
- m_IsModifiedMaxAbsorption = If(dValue <> DbMaxAbsorption, True, False)
+ m_IsModifiedMaxAbsorption = Math.Abs(dValue - DbMaxAbsorption) > 10 * EPS_SMALL
NotifyPropertyChanged("MaxAbsorption")
End If
End Set
@@ -640,7 +640,7 @@ Public Class ToolTreeViewItem
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
EgtTdbGetCurrToolParam(MCH_TP.MINFEED, DbMinFeed)
StringToLen(value, dValue)
- m_IsModifiedMinFeed = If(dValue <> DbMinFeed, True, False)
+ m_IsModifiedMinFeed = Math.Abs(dValue - DbMinFeed) > 10 * EPS_SMALL
NotifyPropertyChanged("MinFeed")
End If
End Set
@@ -699,7 +699,7 @@ Public Class ToolTreeViewItem
' Variabile che indica se c'è un errore nel nome dell'utensile (ad esempio nome già utilizzato)
Dim bErrorToolName As Boolean = False
- Private m_IsModifiedName As Boolean = False
+ Friend m_IsModifiedName As Boolean = False
'''
''' Property that read and write to the tool's database the Name
'''
@@ -780,6 +780,18 @@ Public Class ToolTreeViewItem
End Get
End Property
+#End Region ' Machining Property
+
+#Region "Constructors"
+
+ Sub New(Name As String)
+ MyBase.New(Name)
+ End Sub
+
+#End Region ' Constructors
+
+#Region "METHODS"
+
Friend Sub ReadToolParam()
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
' sospendo l'aggiornamento del disegno per evitare di rifarlo al cambio di ogni parametro inerente
@@ -907,6 +919,8 @@ Public Class ToolTreeViewItem
EgtTdbSetCurrToolParam(MCH_TP.NAME, NamePar)
End Sub
+#End Region ' Methods
+
#Region "ToolSceneUpdate"
' Enum che indica le proprietà di disegno dell'utensile
@@ -1185,7 +1199,6 @@ Public Class ToolTreeViewItem
m_IsModifiedTcPos = False
End Sub
-
Private Shared ReadOnly ValidatedProperties() As String = {"Draw", "MaxMat", "Thick", "Diam", "Len", "TotLen", "Speed", "NamePar"}
Private Function GetValidationError(ByVal propertyName As String) As String
@@ -1366,7 +1379,6 @@ Public Class ToolTreeViewItem
If Math.Abs(dSpeed) > dMaxSpeed + EPS_ZERO Then
Return EgtMsg(MSG_TOOLSERRORS + 11)
End If
-
End If
Return Nothing
End Function
diff --git a/ToolsDbWindow/ToolsDbView.xaml b/ToolsDbWindow/ToolsDbView.xaml
index 7acaf8f..2d2e8b1 100644
--- a/ToolsDbWindow/ToolsDbView.xaml
+++ b/ToolsDbWindow/ToolsDbView.xaml
@@ -8,7 +8,9 @@
TitleBarBrush="{StaticResource EgaltechBlue1}"
BorderBrush="{StaticResource EgaltechBlue1}"
WindowStyle="None" ResizeMode="NoResize" TitleBarHeight="30" IsResizable="False"
- IsMinimizable="False" WindowStartupLocation="CenterScreen" ShowInTaskbar="False">
+ IsMinimizable="False" WindowStartupLocation="CenterScreen" ShowInTaskbar="False"
+ CloseCommand="{Binding CloseToolsDbCommand,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}"
+ CloseCommandParameter="{Binding Path=SelectedItem, ElementName=ToolsTreeView}">
diff --git a/ToolsDbWindow/ToolsDbViewModel.vb b/ToolsDbWindow/ToolsDbViewModel.vb
index 549618d..7de4865 100644
--- a/ToolsDbWindow/ToolsDbViewModel.vb
+++ b/ToolsDbWindow/ToolsDbViewModel.vb
@@ -57,6 +57,7 @@ Namespace EgtCAM5
Private m_cmdNew As ICommand
Private m_cmdSave As ICommand
Private m_cmdRemove As ICommand
+ Private m_cmdCloseToolsDb As ICommand
#Region "MESSAGES"
@@ -391,7 +392,6 @@ Namespace EgtCAM5
ToolCopied.IsSelected = False
ToolCopied.NotifyPropertyChanged("IsSelected")
NewToolItem.IsSelected = True
- 'NewToolItem.NotifyPropertyChanged("IsSelected")
Exit For
End If
Next
@@ -540,6 +540,63 @@ Namespace EgtCAM5
#End Region ' RemoveCommand
+#Region "CloseToolDbCommand"
+
+ '''
+ ''' Returns a command that remove the current selected machining.
+ '''
+ Public ReadOnly Property CloseToolsDbCommand() As ICommand
+ Get
+ If m_cmdCloseToolsDb Is Nothing Then
+ m_cmdCloseToolsDb = New RelayCommand(AddressOf CloseToolsDb)
+ End If
+ Return m_cmdCloseToolsDb
+ End Get
+ End Property
+
+ '''
+ ''' Manage the MachiningDb closing. This method is invoked by the CloseMachiningDbCommand.
+ '''
+ Public Sub CloseToolsDb(param As Object)
+ ' Verifico se sia selezionata una famiglia
+ If TypeOf param Is FamilyToolTreeViewItem Then
+ Return
+ ' Verifico se sia selezionata una lavorazione
+ ElseIf TypeOf param Is ToolTreeViewItem Then
+ Dim CurrTool As ToolTreeViewItem = DirectCast(param, ToolTreeViewItem)
+ If CurrTool.IsValid Then
+ CurrTool.WriteToolParam()
+ If EgtTdbIsCurrToolModified() Or CurrTool.m_IsModifiedName Or CurrTool.NewTool Then
+ Select Case MsgBox(EgtMsg(MSG_TOOLSERRORS), MsgBoxStyle.YesNo, EgtMsg(MSG_TOOLSERRORS + 1))
+ Case MsgBoxResult.Yes
+ CurrTool.NewTool = False
+ CurrTool.m_Name = CurrTool.m_Name.Trim()
+ CurrTool.WriteToolName()
+ EgtTdbSaveCurrTool()
+ Case MsgBoxResult.No
+ If CurrTool.NewTool Then
+ Application.Msn.NotifyColleagues(Application.REMOVETOOL, Me)
+ ElseIf CurrTool.m_IsModifiedName Then
+ Dim DbName As String = String.Empty
+ EgtTdbGetCurrToolParam(MCH_TP.NAME, DbName)
+ CurrTool.NamePar = DbName
+ End If
+ End Select
+ End If
+ EgtTdbSave()
+ For Each Window In Application.Current.Windows
+ If TypeOf Window Is ToolsDbView Then
+ Dim ToolsDbWindow As ToolsDbView = DirectCast(Window, ToolsDbView)
+ ToolsDbWindow.Close()
+ End If
+ Next
+ End If
+ End If
+
+ End Sub
+
+#End Region ' CloseToolsDbCommand
+
End Class
End Namespace
\ No newline at end of file