diff --git a/Base/TreeView/TreeViewItemBase.vb b/Base/TreeView/TreeViewItemBase.vb
index 35b8930..eba277f 100644
--- a/Base/TreeView/TreeViewItemBase.vb
+++ b/Base/TreeView/TreeViewItemBase.vb
@@ -89,11 +89,72 @@ End Class
' Elemento del treeview che ha sottoelementi del suo stesso tipo
Public Class InheritableTreeViewItem
- Inherits TreeViewItemBase
+ Implements INotifyPropertyChanged
+
+ Friend m_Name As String
+ Public Property Name As String
+ Get
+ Return m_Name
+ End Get
+ Set(value As String)
+ If (value <> m_Name) Then
+ m_Name = value
+ NotifyPropertyChanged("Name")
+ End If
+ End Set
+ End Property
+
+ Friend m_IsSelected As Boolean
+ Public Overridable Property IsSelected As Boolean
+ Get
+ Return m_IsSelected
+ End Get
+ Set(value As Boolean)
+ If (value <> m_IsSelected) Then
+ m_IsSelected = value
+ NotifyPropertyChanged("IsSelected")
+ End If
+ End Set
+ End Property
+
+ Private m_isExpanded As Boolean
+ Public Property IsExpanded As Boolean
+ Get
+ Return m_isExpanded
+ End Get
+ Set(value As Boolean)
+ If (value <> m_isExpanded) Then
+ m_isExpanded = value
+ NotifyPropertyChanged("IsExpanded")
+ End If
+ End Set
+ End Property
+
+ Private m_IsActive As Boolean
+ Public Property IsActive As Boolean
+ Get
+ Return m_IsActive
+ End Get
+ Set(value As Boolean)
+ If value <> m_IsActive Then
+ m_IsActive = value
+ NotifyPropertyChanged("IsActive")
+ End If
+ End Set
+ End Property
+
+ Private m_IsEnabled As Boolean = True
+ Public Property IsEnabled As Boolean
+ Get
+ Return m_IsEnabled
+ End Get
+ Set(value As Boolean)
+ m_IsEnabled = value
+ NotifyPropertyChanged("IsEnabled")
+ End Set
+ End Property
Private m_sPictureString As String
- Private m_Items As ObservableCollection(Of InheritableTreeViewItem)
-
Public Property PictureString As String
Get
Return m_sPictureString
@@ -106,6 +167,7 @@ Public Class InheritableTreeViewItem
End Set
End Property
+ Private m_Items As ObservableCollection(Of InheritableTreeViewItem)
Public Property Items As ObservableCollection(Of InheritableTreeViewItem)
Get
Return m_Items
@@ -115,15 +177,16 @@ Public Class InheritableTreeViewItem
End Set
End Property
- Sub New(Name As String)
- MyBase.New(Name)
- Me.Items = New ObservableCollection(Of InheritableTreeViewItem)
+ Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
+
+ Public Sub NotifyPropertyChanged(propName As String)
+ RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName))
End Sub
- 'Sub New(Name As String, IsSelected As Boolean, IsExpanded As Boolean, IsActive As Boolean)
- ' MyBase.New(Name, IsSelected, IsExpanded, IsActive)
- ' Me.Items = New ObservableCollection(Of InheritableTreeViewItem)
- 'End Sub
+ Sub New(Name As String)
+ Me.Name = Name
+ Me.Items = New ObservableCollection(Of InheritableTreeViewItem)
+ End Sub
End Class
diff --git a/Constants/ConstMsg.vb b/Constants/ConstMsg.vb
index 75f01cd..96486f7 100644
--- a/Constants/ConstMsg.vb
+++ b/Constants/ConstMsg.vb
@@ -10,7 +10,7 @@
Public Const MSG_GRIDVIEWPANEL As Integer = MSG_EGTCAM5 + 250
Public Const MSG_SIMULATION As Integer = MSG_EGTCAM5 + 300
Public Const MSG_TOOLSDBPAGE As Integer = MSG_EGTCAM5 + 1000
- Public Const MSG_TOOLSERRORS As Integer = MSG_EGTCAM5 + 1085
+ Public Const MSG_TOOLSERRORS As Integer = MSG_EGTCAM5 + 1080
Public Const MSG_MACHININGSDBPAGE As Integer = MSG_EGTCAM5 + 1100
Public Const MSG_MACHININGSERRORS As Integer = MSG_EGTCAM5 + 1220
Public Const MSG_MISSINGKEYWD As Integer = 10100
diff --git a/EgtCAM5.vbproj b/EgtCAM5.vbproj
index c356b2a..c3c2371 100644
--- a/EgtCAM5.vbproj
+++ b/EgtCAM5.vbproj
@@ -191,12 +191,13 @@
ToolsDbView.xaml
-
+
TopCommandBarView.xaml
+
Designer
MSBuild:Compile
diff --git a/MachiningsDbPage/MachiningTreeView.vb b/MachiningsDbPage/MachiningTreeView.vb
index 1abe7f9..6381fae 100644
--- a/MachiningsDbPage/MachiningTreeView.vb
+++ b/MachiningsDbPage/MachiningTreeView.vb
@@ -135,11 +135,11 @@ Public Class MachiningTreeViewItem
'''
Public Overrides Property IsSelected As Boolean
Get
- Return m_isSelected
+ Return m_IsSelected
End Get
Set(value As Boolean)
- If (value <> m_isSelected) Then
- m_isSelected = value
+ If (value <> m_IsSelected) Then
+ m_IsSelected = value
' If Machining is selected, set it as current and notify all machining's property
' to refresh them values with those of the new selected machining
If value Then
@@ -1077,9 +1077,9 @@ Public Class MachiningTreeViewItem
End If
End Sub
- '''
- ''' Property that read and write to the Machining's database the Tool
- '''
+ '''
+ ''' Property that read and write to the Machining's database the Tool
+ '''
Public Property SelectedTool As Integer
Get
Dim nUUID As String = String.Empty
@@ -1318,11 +1318,11 @@ Public Class FamilyMachiningTreeViewItem
'''
Public Overrides Property IsSelected As Boolean
Get
- Return m_isSelected
+ Return m_IsSelected
End Get
Set(value As Boolean)
- If (value <> m_isSelected) Then
- m_isSelected = value
+ If (value <> m_IsSelected) Then
+ m_IsSelected = value
End If
End Set
End Property
diff --git a/ProjectPage/OptionPanel/DrawOptionPanel/ManageLayerExpander/LayerTreeView.vb b/ProjectPage/OptionPanel/DrawOptionPanel/ManageLayerExpander/LayerTreeView.vb
index bb0fbb2..4b09ca2 100644
--- a/ProjectPage/OptionPanel/DrawOptionPanel/ManageLayerExpander/LayerTreeView.vb
+++ b/ProjectPage/OptionPanel/DrawOptionPanel/ManageLayerExpander/LayerTreeView.vb
@@ -16,11 +16,11 @@ Public Class LayerTreeViewItem
'''
Public Overrides Property IsSelected As Boolean
Get
- Return m_isSelected
+ Return m_IsSelected
End Get
Set(value As Boolean)
- If (value <> m_isSelected) Then
- m_isSelected = value
+ If (value <> m_IsSelected) Then
+ m_IsSelected = value
If value Then
' recupero l'Id del nuovo oggetto selezionato
Application.Msn.NotifyColleagues(Application.UPDATEOBJINOBJTREE, Me.Id)
diff --git a/ProjectPage/OptionPanel/MachiningOptionPanel/MachiningsTreeViewExpander/MachiningTreeViewExpander.vb b/ProjectPage/OptionPanel/MachiningOptionPanel/MachiningsTreeViewExpander/MachiningTreeViewExpander.vb
index 129f9f0..2069cb9 100644
--- a/ProjectPage/OptionPanel/MachiningOptionPanel/MachiningsTreeViewExpander/MachiningTreeViewExpander.vb
+++ b/ProjectPage/OptionPanel/MachiningOptionPanel/MachiningsTreeViewExpander/MachiningTreeViewExpander.vb
@@ -21,11 +21,11 @@ Public Class MachiningTreeViewExpanderItem
'''
Public Overrides Property IsSelected As Boolean
Get
- Return m_isSelected
+ Return m_IsSelected
End Get
Set(value As Boolean)
- If (value <> m_isSelected) Then
- m_isSelected = value
+ If (value <> m_IsSelected) Then
+ m_IsSelected = value
' If Machining is selected, set it as current and notify all machining's property
' to refresh them values with those of the new selected machining
If value Then
@@ -80,11 +80,11 @@ Public Class FamilyMachiningTreeViewExpanderItem
'''
Public Overrides Property IsSelected As Boolean
Get
- Return m_isSelected
+ Return m_IsSelected
End Get
Set(value As Boolean)
- If (value <> m_isSelected) Then
- m_isSelected = value
+ If (value <> m_IsSelected) Then
+ m_IsSelected = value
End If
End Set
End Property
diff --git a/ProjectPage/OptionPanel/MachiningOptionPanel/OperationExpander/OperationExpanderView.xaml b/ProjectPage/OptionPanel/MachiningOptionPanel/OperationExpander/OperationExpanderView.xaml
index 4af0db3..457e1cd 100644
--- a/ProjectPage/OptionPanel/MachiningOptionPanel/OperationExpander/OperationExpanderView.xaml
+++ b/ProjectPage/OptionPanel/MachiningOptionPanel/OperationExpander/OperationExpanderView.xaml
@@ -52,10 +52,10 @@
-
+
diff --git a/ProjectPage/OptionPanel/MachiningOptionPanel/OperationExpander/OperationExpanderViewModel.vb b/ProjectPage/OptionPanel/MachiningOptionPanel/OperationExpander/OperationExpanderViewModel.vb
index eb58d54..a199892 100644
--- a/ProjectPage/OptionPanel/MachiningOptionPanel/OperationExpander/OperationExpanderViewModel.vb
+++ b/ProjectPage/OptionPanel/MachiningOptionPanel/OperationExpander/OperationExpanderViewModel.vb
@@ -84,44 +84,44 @@ Namespace EgtCAM5
Return m_SelectedOperation
End Get
Set(value As OperationListBoxItem)
- 'If value IsNot m_SelectedOperation Then
- If Not IsNothing(value) Then
- ' Verifico se c'è l'operazione precedente
- If m_LastMarkedOperationId <> GDB_ID.NULL Then
- ' La deevidenzio
- EgtResetMark(m_LastMarkedOperationId)
- ' Ne deseleziono la geometria
- EgtDeselectAll()
- EgtDraw()
- End If
- ' Verifico se l'operazione è una disposizione
- If EgtGetOperationType(value.Id) = MCH_OY.DISP Then
+ If value IsNot m_SelectedOperation Then
+ If Not IsNothing(value) Then
+ ' Verifico se c'è l'operazione precedente
+ If m_LastMarkedOperationId <> GDB_ID.NULL Then
+ ' La deevidenzio
+ EgtResetMark(m_LastMarkedOperationId)
+ ' Ne deseleziono la geometria
+ EgtDeselectAll()
+ EgtDraw()
+ End If
+ ' Verifico se l'operazione è una disposizione
+ If EgtGetOperationType(value.Id) = MCH_OY.DISP Then
- ' L'operazione è una lavorazione
- Else
- ' Imposto come corrente la lavorazione(operazione) selezionata
- Dim x = EgtSetCurrMachining(value.Id)
- ' Evidenzio la lavorazione(operazione) selezionata
- EgtSetMark(value.Id)
- ' Seleziono la geometria della lavorazione
- Dim CountIndex = 0
- Dim EntityIndex As Integer = 0
- Dim SubEntityIndex As Integer = 0 ' Nell'interfaccia non si usa ma devo comunque definirla perchè la funzione la restituisce obbligatoriamente
- While EgtGetMachiningGeometry(CountIndex, EntityIndex, SubEntityIndex)
- If SubEntityIndex = GDB_ID.NULL Then
- EgtSelectObj(EntityIndex)
- End If
- CountIndex += 1
- End While
- EgtDraw()
- ' La salvo come ultima operazione selezionata
- m_LastMarkedOperationId = value.Id
- ' Notifico l'operazione selezionata all'expander dei parametri operazione
- Application.Msn.NotifyColleagues(Application.SELECTEDOPERATION, value)
+ ' L'operazione è una lavorazione
+ Else
+ ' Imposto come corrente la lavorazione(operazione) selezionata
+ EgtSetCurrMachining(value.Id)
+ ' Evidenzio la lavorazione(operazione) selezionata
+ EgtSetMark(value.Id)
+ ' Seleziono la geometria della lavorazione
+ Dim CountIndex = 0
+ Dim EntityIndex As Integer = 0
+ Dim SubEntityIndex As Integer = 0 ' Nell'interfaccia non si usa ma devo comunque definirla perchè la funzione la restituisce obbligatoriamente
+ While EgtGetMachiningGeometry(CountIndex, EntityIndex, SubEntityIndex)
+ If SubEntityIndex = GDB_ID.NULL Then
+ EgtSelectObj(EntityIndex)
+ End If
+ CountIndex += 1
+ End While
+ EgtDraw()
+ ' La salvo come ultima operazione selezionata
+ m_LastMarkedOperationId = value.Id
+ ' Notifico l'operazione selezionata all'expander dei parametri operazione
+ Application.Msn.NotifyColleagues(Application.SELECTEDOPERATION, value)
+ End If
End If
+ m_SelectedOperation = value
End If
- m_SelectedOperation = value
- 'End If
OnPropertyChanged("SelectedOperation")
End Set
End Property
@@ -495,14 +495,20 @@ Namespace EgtCAM5
If SelectedIndex < 2 Then
Return
End If
- ' Recupero Id entità precedente a quella selezionata
+ ' Recupero Id entità selezionata e precedente a quella selezionata
+ Dim SelectedId As Integer = OperationList(SelectedIndex).Id
Dim PreviousId As Integer = OperationList(SelectedIndex - 1).Id
- ' Sposto l'entità selezionata
- EgtRelocate(SelectedOperation.Id, PreviousId, GDB_POS.BEFORE)
- ' Ricarico la lista delle operazioni
- Application.Msn.NotifyColleagues(Application.LOADOPERATIONLIST)
- ' Riseleziono l'entità selezionata
- Me.SelectedOperation = DirectCast(param, OperationListBoxItem)
+ ' Sposto l'operazione selezionata nell'ambiente Egt
+ If EgtRelocate(SelectedOperation.Id, PreviousId, GDB_POS.BEFORE) Then
+ ' Sposto l'operazione selezionata nella grafica
+ OperationList.Move(SelectedIndex, SelectedIndex - 1)
+ ' Ricalcolo la lavorazione selezionata e la precedente
+ EgtSetCurrMachining(PreviousId)
+ EgtApplyMachining(False)
+ EgtSetCurrMachining(SelectedId)
+ EgtApplyMachining(False)
+ EgtDraw()
+ End If
End If
End Sub
@@ -533,18 +539,29 @@ Namespace EgtCAM5
''' Execute the Point. This method is invoked by the PointCommand.
'''
Public Sub MoveDown(ByVal param As Object)
- If m_NewMachining Then
- NewMachining = False
- Else
- If Not IsNothing(SelectedOperation) Then
- ' Smarco e deseleziono la geometria selezionata
- EgtResetMark(m_LastMarkedOperationId)
- EgtDeselectAll()
+ If Not IsNothing(SelectedOperation) Then
+ ' Verifico se l'entità selezionata è una lavorazione o una disposizione,
+ ' se è una disposizione esco perchè non si possono spostare
+ If SelectedOperation.Type = MCH_OY.DISP Then Return
+ ' Trovo indice dell'entità selezionata
+ Dim SelectedIndex As Integer = OperationList.IndexOf(SelectedOperation)
+ ' Verifico che l'indice sia < della lunghezza della lista delle operazioni,altrimenti è già ultima e quindi non la posso spostare
+ If SelectedIndex > OperationList.Count - 2 Then
+ Return
+ End If
+ ' Recupero Id entitàselezionata e successiva a quella selezionata
+ Dim SelectedId As Integer = OperationList(SelectedIndex).Id
+ Dim PostId As Integer = OperationList(SelectedIndex + 1).Id
+ ' Sposto l'operazione selezionata nell'ambiente Egt
+ If EgtRelocate(SelectedOperation.Id, PostId, GDB_POS.AFTER) Then
+ ' Sposto l'operazione selezionata nella grafica
+ OperationList.Move(SelectedIndex, SelectedIndex + 1)
+ ' Ricalcolo la lavorazione selezionata e la successiva
+ EgtSetCurrMachining(SelectedId)
+ EgtApplyMachining(False)
+ EgtSetCurrMachining(PostId)
+ EgtApplyMachining(False)
EgtDraw()
- ' Rimuovo l'operazione selezionata
- EgtRemoveOperation(SelectedOperation.Id)
- ' Ricarico la lista delle operazioni
- Application.Msn.NotifyColleagues(Application.LOADOPERATIONLIST)
End If
End If
End Sub
diff --git a/ToolsDbPage/ToolTreeView.vb b/ToolsDbPage/ToolTreeView.vb
index 0c140cb..84d29b7 100644
--- a/ToolsDbPage/ToolTreeView.vb
+++ b/ToolsDbPage/ToolTreeView.vb
@@ -11,7 +11,7 @@ Imports EgtCAM5.Utility
''' It's an element in the treeview that represent the child of familytooltreeviewitem, but also the class that read and write in the tool's database
'''
Public Class ToolTreeViewItem
- Inherits ChildItem
+ Inherits InheritableTreeViewItem
Implements IDataErrorInfo
Private m_ErrorOnTool As Boolean
@@ -81,6 +81,7 @@ Public Class ToolTreeViewItem
If value Then
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
EgtTdbSetCurrTool(Me.Name)
+ 'ReadToolParam()
NotifyPropertyChanged("Corr")
NotifyPropertyChanged("ExitPar")
NotifyPropertyChanged("Type")
@@ -125,8 +126,6 @@ Public Class ToolTreeViewItem
If m_NewTool Then
Application.Msn.NotifyColleagues(Application.REMOVETOOL, Me)
End If
- 'EgtTdbRemoveTool(Me.Name)
- 'EgtTdbSave()
End Select
End If
End If
@@ -137,421 +136,374 @@ Public Class ToolTreeViewItem
End Property
+ Private m_Corr As Integer
'''
''' Property that read and write to the tool's database the Corrector
'''
Public Property Corr As Integer
Get
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim nCorr As Integer = 0
- EgtTdbGetCurrToolParam(MCH_TP.CORR, nCorr)
- Return nCorr
+ Return m_Corr
End Get
Set(value As Integer)
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- EgtTdbSetCurrToolParam(MCH_TP.CORR, value)
+ If value <> m_Corr Then
+ m_Corr = value
+ End If
End Set
End Property
+ Private m_Exit As Integer
'''
''' Property that read and write to the tool's database the Exit
'''
Public Property ExitPar As Integer
Get
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim nExitPar As Integer = 0
- EgtTdbGetCurrToolParam(MCH_TP.EXIT_, nExitPar)
- Return nExitPar
+ Return m_Exit
End Get
Set(value As Integer)
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- EgtTdbSetCurrToolParam(MCH_TP.EXIT_, value)
+ If value <> m_Exit Then
+ m_Exit = value
+ End If
End Set
End Property
- Dim m_Type As Integer
+ Private m_Type As Integer
'''
''' Property that read and write to the tool's database the Type
'''
Public Property Type As Integer
Get
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dType As Integer = 0
- Dim x = EgtTdbGetCurrToolParam(MCH_TP.TYPE, dType)
- m_Type = dType
- Return dType
+ Return m_Type
End Get
Set(value As Integer)
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- m_Type = value
- EgtTdbSetCurrToolParam(MCH_TP.TYPE, value)
+ If value <> m_Type Then
+ m_Type = value
+ End If
End Set
End Property
+ Private m_Coolant As Integer
'''
''' Property that read and write to the tool's database the Coolant
'''
Public Property Coolant As Integer
Get
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim nCoolant As Integer = 0
- EgtTdbGetCurrToolParam(MCH_TP.COOLANT, nCoolant)
- Return nCoolant
+ Return m_Coolant
End Get
Set(value As Integer)
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- EgtTdbSetCurrToolParam(MCH_TP.COOLANT, value)
+ If value <> m_Coolant Then
+ m_Coolant = value
+ End If
End Set
End Property
+ Private m_CornRad As Double
'''
''' Property that read and write to the tool's database the Corner Radius
'''
Public Property CornRad As String
Get
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dCornRad As Double = 0
- EgtTdbGetCurrToolParam(MCH_TP.CORNRAD, dCornRad)
- Return LenToString(dCornRad, 4)
+ Return LenToString(m_CornRad, 4)
End Get
Set(value As String)
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dCornRad As Double = 0
- StringToLen(value, dCornRad)
- EgtTdbSetCurrToolParam(MCH_TP.CORNRAD, dCornRad)
+ If value <> LenToString(m_CornRad, 4) Then
+ Dim dValue As Double = 0
+ StringToLen(value, dValue)
+ m_CornRad = dValue
+ End If
End Set
End Property
- Dim m_Diam As Double
+ Private m_Diam As Double
'''
''' Property that read and write to the tool's database the Diameter
'''
Public Property Diam As String
Get
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dDiam As Double = 0
- EgtTdbGetCurrToolParam(MCH_TP.DIAM, dDiam)
- m_Diam = dDiam
- Return LenToString(dDiam, 4)
+ Return LenToString(m_Diam, 4)
End Get
Set(value As String)
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dDiam As Double = 0
- StringToLen(value, dDiam)
- m_Diam = dDiam
- UpdateSceneToolDraw(DrawUpdateSource.DIAM)
- EgtTdbSetCurrToolParam(MCH_TP.DIAM, dDiam)
+ If value <> LenToString(m_Diam, 4) Then
+ Dim dValue As Double = 0
+ StringToLen(value, dValue)
+ m_Diam = dValue
+ 'UpdateSceneToolDraw(DrawUpdateSource.DIAM)
+ End If
End Set
End Property
+ Private m_TotDiam As Double
'''
''' Property that read and write to the tool's database the Total Diameter
'''
Public Property TotDiam As String
Get
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dTotDiam As Double = 0
- EgtTdbGetCurrToolParam(MCH_TP.TOTDIAM, dTotDiam)
- Return LenToString(dTotDiam, 4)
+ Return LenToString(m_TotDiam, 4)
End Get
Set(value As String)
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dTotDiam As Double = 0
- StringToLen(value, dTotDiam)
- EgtTdbSetCurrToolParam(MCH_TP.TOTDIAM, dTotDiam)
+ If value <> LenToString(m_TotDiam, 4) Then
+ Dim dValue As Double = 0
+ StringToLen(value, dValue)
+ m_TotDiam = dValue
+ End If
End Set
End Property
+ Private m_Feed As Double
'''
''' Property that read and write to the tool's database the Feed
'''
Public Property Feed As String
Get
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dFeed As Double = 0
- EgtTdbGetCurrToolParam(MCH_TP.FEED, dFeed)
- Return LenToString(dFeed, 3)
+ Return LenToString(m_Feed, 4)
End Get
Set(value As String)
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dFeed As Double = 0
- StringToLen(value, dFeed)
- EgtTdbSetCurrToolParam(MCH_TP.FEED, dFeed)
+ If value <> LenToString(m_Feed, 4) Then
+ Dim dValue As Double = 0
+ StringToLen(value, dValue)
+ m_Feed = dValue
+ End If
End Set
End Property
+ Private m_EndFeed As Double
'''
''' Property that read and write to the tool's database the End Feed
'''
Public Property EndFeed As String
Get
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dEndFeed As Double = 0
- EgtTdbGetCurrToolParam(MCH_TP.ENDFEED, dEndFeed)
- Return LenToString(dEndFeed, 3)
+ Return LenToString(m_EndFeed, 4)
End Get
Set(value As String)
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dEndFeed As Double = 0
- StringToLen(value, dEndFeed)
- EgtTdbSetCurrToolParam(MCH_TP.ENDFEED, dEndFeed)
+ If value <> LenToString(m_EndFeed, 4) Then
+ Dim dValue As Double = 0
+ StringToLen(value, dValue)
+ m_EndFeed = dValue
+ End If
End Set
End Property
+ Private m_StartFeed As Double
'''
''' Property that read and write to the tool's database the Start Feed
'''
Public Property StartFeed As String
Get
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dStartFeed As Double = 0
- EgtTdbGetCurrToolParam(MCH_TP.STARTFEED, dStartFeed)
- Return LenToString(dStartFeed, 3)
+ Return LenToString(m_StartFeed, 4)
End Get
Set(value As String)
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dStartFeed As Double = 0
- StringToLen(value, dStartFeed)
- EgtTdbSetCurrToolParam(MCH_TP.STARTFEED, dStartFeed)
+ If value <> LenToString(m_StartFeed, 4) Then
+ Dim dValue As Double = 0
+ StringToLen(value, dValue)
+ m_StartFeed = dValue
+ End If
End Set
End Property
+ Private m_TipFeed As Double
'''
''' Property that read and write to the tool's database the Tip Feed
'''
Public Property TipFeed As String
Get
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dTipFeed As Double = 0
- EgtTdbGetCurrToolParam(MCH_TP.TIPFEED, dTipFeed)
- Return LenToString(dTipFeed, 3)
+ Return LenToString(m_TipFeed, 4)
End Get
Set(value As String)
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dTipFeed As Double = 0
- StringToLen(value, dTipFeed)
- EgtTdbSetCurrToolParam(MCH_TP.TIPFEED, dTipFeed)
+ If value <> LenToString(m_TipFeed, 4) Then
+ Dim dValue As Double = 0
+ StringToLen(value, dValue)
+ m_TipFeed = dValue
+ End If
End Set
End Property
- Dim m_Len As Double
+ Private m_Len As Double
'''
''' Property that read and write to the tool's database the Len
'''
Public Property Len As String
Get
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dLen As Double = 0
- EgtTdbGetCurrToolParam(MCH_TP.LEN, dLen)
- m_Len = dLen
- Return LenToString(dLen, 4)
+ Return LenToString(m_Len, 4)
End Get
Set(value As String)
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dLen As Double = 0
- StringToLen(value, dLen)
- m_Len = dLen
- NotifyPropertyChanged("MaxMat")
- UpdateSceneToolDraw(DrawUpdateSource.LEN)
- EgtTdbSetCurrToolParam(MCH_TP.LEN, dLen)
+ If value <> LenToString(m_Len, 4) Then
+ Dim dValue As Double = 0
+ StringToLen(value, dValue)
+ m_Len = dValue
+ End If
+ 'NotifyPropertyChanged("MaxMat")
+ 'UpdateSceneToolDraw(DrawUpdateSource.LEN)
End Set
End Property
- Dim m_TotLen As Double
+ Private m_TotLen As Double
'''
''' Property that read and write to the tool's database the Total Len
'''
Public Property TotLen As String
Get
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dTotLen As Double = 0
- EgtTdbGetCurrToolParam(MCH_TP.TOTLEN, dTotLen)
- m_TotLen = dTotLen
- Return LenToString(dTotLen, 4)
+ Return LenToString(m_TotLen, 4)
End Get
Set(value As String)
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dTotLen As Double = 0
- StringToLen(value, dTotLen)
- m_TotLen = dTotLen
- UpdateSceneToolDraw(DrawUpdateSource.TOTLEN)
- EgtTdbSetCurrToolParam(MCH_TP.TOTLEN, dTotLen)
+ If value <> LenToString(m_TotLen, 4) Then
+ Dim dValue As Double = 0
+ StringToLen(value, dValue)
+ m_TotLen = dValue
+ End If
+ 'UpdateSceneToolDraw(DrawUpdateSource.TOTLEN)
End Set
End Property
- Dim m_MaxMat As Double
+ Private m_MaxMat As Double
'''
''' Property that read and write to the tool's database the Max Material
'''
Public Property MaxMat As String
Get
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dMaxMat As Double = 0
- EgtTdbGetCurrToolParam(MCH_TP.MAXMAT, dMaxMat)
- m_MaxMat = dMaxMat
- Return LenToString(dMaxMat, 4)
+ Return LenToString(m_MaxMat, 4)
End Get
Set(value As String)
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dMaxMat As Double = 0
- StringToLen(value, dMaxMat)
- m_MaxMat = dMaxMat
- UpdateSceneToolDraw(DrawUpdateSource.MAXMAT)
- EgtTdbSetCurrToolParam(MCH_TP.MAXMAT, dMaxMat)
+ If value <> LenToString(m_MaxMat, 4) Then
+ Dim dValue As Double = 0
+ StringToLen(value, dValue)
+ m_MaxMat = dValue
+ End If
+ 'UpdateSceneToolDraw(DrawUpdateSource.MAXMAT)
End Set
End Property
+ Private m_LonOffset As Double
'''
''' Property that read and write to the tool's database the Lon Offset
'''
Public Property LonOffset As String
Get
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dLonOffset As Double = 0
- EgtTdbGetCurrToolParam(MCH_TP.LONOFFSET, dLonOffset)
- Return LenToString(dLonOffset, 4)
+ Return LenToString(m_LonOffset, 4)
End Get
Set(value As String)
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dLonOffset As Double = 0
- StringToLen(value, dLonOffset)
- EgtTdbSetCurrToolParam(MCH_TP.LONOFFSET, dLonOffset)
+ If value <> LenToString(m_LonOffset, 4) Then
+ Dim dValue As Double = 0
+ StringToLen(value, dValue)
+ m_LonOffset = dValue
+ End If
End Set
End Property
+ Private m_RadOffset As Double
'''
''' Property that read and write to the tool's database the Rad Offset
'''
Public Property RadOffset As String
Get
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dRadOffset As Double = 0
- EgtTdbGetCurrToolParam(MCH_TP.RADOFFSET, dRadOffset)
- Return LenToString(dRadOffset, 4)
+ Return LenToString(m_RadOffset, 4)
End Get
Set(value As String)
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dRadOffset As Double = 0
- StringToLen(value, dRadOffset)
- EgtTdbSetCurrToolParam(MCH_TP.RADOFFSET, dRadOffset)
+ If value <> LenToString(m_RadOffset, 4) Then
+ Dim dValue As Double = 0
+ StringToLen(value, dValue)
+ m_RadOffset = dValue
+ End If
End Set
End Property
- Dim m_Speed As Double
+ Private m_Speed As Double
'''
''' Property that read and write to the tool's database the Speed
'''
Public Property Speed As String
Get
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dSpeed As Double = 0
- EgtTdbGetCurrToolParam(MCH_TP.SPEED, dSpeed)
- Return DoubleToString(dSpeed, 3)
+ Return DoubleToString(m_Speed, 4)
End Get
Set(value As String)
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dSpeed As Double = 0
- StringToDouble(value, dSpeed)
- m_Speed = dSpeed
- EgtTdbSetCurrToolParam(MCH_TP.SPEED, dSpeed)
+ If value <> LenToString(m_Speed, 4) Then
+ Dim dValue As Double = 0
+ StringToLen(value, dValue)
+ m_Speed = dValue
+ End If
End Set
End Property
+ Private m_SideAng As Double
'''
''' Property that read and write to the tool's database the Side Angle
'''
Public Property SideAng As String
Get
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dSideAng As Double = 0
- EgtTdbGetCurrToolParam(MCH_TP.SIDEANG, dSideAng)
- Return LenToString(dSideAng, 3)
+ Return LenToString(m_SideAng, 4)
End Get
Set(value As String)
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dSideAng As Double = 0
- StringToLen(value, dSideAng)
- EgtTdbSetCurrToolParam(MCH_TP.SIDEANG, dSideAng)
+ If value <> LenToString(m_SideAng, 4) Then
+ Dim dValue As Double = 0
+ StringToLen(value, dValue)
+ m_SideAng = dValue
+ End If
End Set
End Property
- Dim m_MaxSpeed As Double
+ Private m_MaxSpeed As Double
'''
''' Property that read and write to the tool's database the Max Speed
'''
Public Property MaxSpeed As String
Get
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dMaxSpeed As Double = 0
- EgtTdbGetCurrToolParam(MCH_TP.MAXSPEED, dMaxSpeed)
- m_MaxSpeed = dMaxSpeed
- Return DoubleToString(dMaxSpeed, 3)
+ Return DoubleToString(m_MaxSpeed, 4)
End Get
Set(value As String)
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dMaxSpeed As Double = 0
- StringToDouble(value, dMaxSpeed)
- m_MaxSpeed = dMaxSpeed
- NotifyPropertyChanged("Speed")
- EgtTdbSetCurrToolParam(MCH_TP.MAXSPEED, dMaxSpeed)
+ If value <> LenToString(m_MaxSpeed, 4) Then
+ Dim dValue As Double = 0
+ StringToLen(value, dValue)
+ m_MaxSpeed = dValue
+ End If
End Set
End Property
- Dim m_Thick As Double
+ Private m_Thick As Double
'''
''' Property that read and write to the tool's database the Thick
'''
Public Property Thick As String
Get
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dThick As Double = 0
- EgtTdbGetCurrToolParam(MCH_TP.THICK, dThick)
- m_Thick = dThick
- Return LenToString(dThick, 4)
+ Return LenToString(m_Thick, 4)
End Get
Set(value As String)
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dThick As Double = 0
- StringToLen(value, dThick)
- m_Thick = dThick
- UpdateSceneToolDraw(DrawUpdateSource.THICK)
- EgtTdbSetCurrToolParam(MCH_TP.THICK, dThick)
+ If value <> LenToString(m_Thick, 4) Then
+ Dim dValue As Double = 0
+ StringToLen(value, dValue)
+ m_Thick = dValue
+ End If
End Set
End Property
+ Private m_MaxAbsorption As Double
'''
''' Property that read and write to the tool's database the Max Absorption
'''
Public Property MaxAbsorption As String
Get
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dMaxAbsorption As Double = 0
- EgtTdbGetCurrToolParam(MCH_TP.MAXABSORPTION, dMaxAbsorption)
- Return LenToString(dMaxAbsorption, 3)
+ Return LenToString(m_MaxAbsorption, 3)
End Get
Set(value As String)
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dMaxAbsorption As Double = 0
- StringToLen(value, dMaxAbsorption)
- EgtTdbSetCurrToolParam(MCH_TP.MAXABSORPTION, dMaxAbsorption)
+ If value <> LenToString(m_MaxAbsorption, 4) Then
+ Dim dValue As Double = 0
+ StringToLen(value, dValue)
+ m_MaxAbsorption = dValue
+ End If
End Set
End Property
+ Private m_MinFeed As Double
'''
''' Property that read and write to the tool's database the Min Feed
'''
Public Property MinFeed As String
Get
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dMinFeed As Double = 0
- EgtTdbGetCurrToolParam(MCH_TP.MINFEED, dMinFeed)
- Return LenToString(dMinFeed, 3)
+ Return LenToString(m_MinFeed, 3)
End Get
Set(value As String)
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim dMinFeed As Double = 0
- StringToLen(value, dMinFeed)
- EgtTdbSetCurrToolParam(MCH_TP.MINFEED, dMinFeed)
+ If value <> LenToString(m_MinFeed, 4) Then
+ Dim dValue As Double = 0
+ StringToLen(value, dValue)
+ m_MinFeed = dValue
+ End If
End Set
End Property
@@ -561,91 +513,194 @@ Public Class ToolTreeViewItem
'''
Public Property Draw As String
Get
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim sDraw As String = String.Empty
- EgtTdbGetCurrToolParam(MCH_TP.DRAW, sDraw)
- m_Draw = sDraw
- Return sDraw
+ Return m_Draw
End Get
Set(value As String)
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- If value = ToolDrawUUIDName Then
- value = m_Draw
- ElseIf value = ToolDrawUUIDName.Substring(0, ToolDrawUUIDName.Length - 1) Then
- value = String.Empty
+ 'EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ 'If value = ToolDrawUUIDName Then
+ ' value = m_Draw
+ 'ElseIf value = ToolDrawUUIDName.Substring(0, ToolDrawUUIDName.Length - 1) Then
+ ' value = String.Empty
+ 'End If
+ 'm_Draw = value
+ 'UpdateSceneToolDraw(DrawUpdateSource.DRAW)
+ If value <> m_Draw Then
+ m_Draw = value
End If
- m_Draw = value
- UpdateSceneToolDraw(DrawUpdateSource.DRAW)
- EgtTdbSetCurrToolParam(MCH_TP.DRAW, value)
End Set
End Property
+ Private m_Head As String
'''
''' Property that read and write to the tool's database the Head
'''
Public Property Head As String
Get
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim sHead As String = String.Empty
- EgtTdbGetCurrToolParam(MCH_TP.HEAD, sHead)
- Return sHead
+ Return m_Head
End Get
Set(value As String)
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- EgtTdbSetCurrToolParam(MCH_TP.HEAD, value)
+ If value <> m_Head Then
+ m_Head = value
+ End If
End Set
End Property
+ Private m_UserNotes As String
'''
''' Property that read and write to the tool's database the User Notes
'''
Public Property UserNotes As String
Get
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim sUserNotes As String = String.Empty
- EgtTdbGetCurrToolParam(MCH_TP.USERNOTES, sUserNotes)
- Return sUserNotes
+ Return m_UserNotes
End Get
Set(value As String)
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- EgtTdbSetCurrToolParam(MCH_TP.USERNOTES, value)
+ If value <> m_UserNotes Then
+ m_UserNotes = value
+ End If
End Set
End Property
+ Private m_TcPos As String
'''
''' Property that read and write to the tool's database the Tc Pos
'''
Public Property TcPos As String
Get
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim sTcPos As String = String.Empty
- EgtTdbGetCurrToolParam(MCH_TP.TCPOS, sTcPos)
- Return sTcPos
+ Return m_TcPos
End Get
Set(value As String)
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- EgtTdbSetCurrToolParam(MCH_TP.TCPOS, value)
+ If value <> m_TcPos Then
+ m_TcPos = value
+ End If
End Set
End Property
+ Private m_Uuid As String
'''
''' Property that read and write to the tool's database the Uuid
'''
Public Property Uuid As String
Get
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- Dim sUuid As String = String.Empty
- EgtTdbGetCurrToolParam(MCH_TP.UUID, sUuid)
- Return sUuid
+ Return m_Uuid
End Get
Set(value As String)
- EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- EgtTdbSetCurrToolParam(MCH_TP.UUID, value)
+ If value <> m_Uuid Then
+ m_Uuid = value
+ End If
End Set
End Property
#End Region ' Tool Property
+ Private Sub ReadToolParam()
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ Dim nValue As Integer = 0
+ Dim dValue As Double = 0
+ Dim sValue As String = String.Empty
+ EgtTdbGetCurrToolParam(MCH_TP.CORR, nValue)
+ Corr = nValue
+ EgtTdbGetCurrToolParam(MCH_TP.EXIT_, nValue)
+ ExitPar = nValue
+ EgtTdbGetCurrToolParam(MCH_TP.TYPE, nValue)
+ Type = nValue
+ EgtTdbGetCurrToolParam(MCH_TP.COOLANT, nValue)
+ Coolant = nValue
+ EgtTdbGetCurrToolParam(MCH_TP.CORNRAD, dValue)
+ CornRad = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.DIAM, dValue)
+ Diam = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.TOTDIAM, dValue)
+ TotDiam = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.FEED, dValue)
+ Feed = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.ENDFEED, dValue)
+ EndFeed = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.STARTFEED, dValue)
+ StartFeed = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.TIPFEED, dValue)
+ TipFeed = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.LEN, dValue)
+ Len = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.TOTLEN, dValue)
+ TotLen = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.MAXMAT, dValue)
+ MaxMat = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.LONOFFSET, dValue)
+ LonOffset = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.RADOFFSET, dValue)
+ RadOffset = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.SPEED, dValue)
+ Speed = DoubleToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.SIDEANG, dValue)
+ SideAng = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.MAXSPEED, dValue)
+ MaxSpeed = DoubleToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.THICK, dValue)
+ Thick = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.MAXABSORPTION, dValue)
+ MaxAbsorption = DoubleToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.MINFEED, dValue)
+ MinFeed = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.DRAW, sValue)
+ Draw = sValue
+ EgtTdbGetCurrToolParam(MCH_TP.HEAD, sValue)
+ Head = sValue
+ EgtTdbGetCurrToolParam(MCH_TP.USERNOTES, sValue)
+ UserNotes = sValue
+ EgtTdbGetCurrToolParam(MCH_TP.TCPOS, sValue)
+ TcPos = sValue
+ EgtTdbGetCurrToolParam(MCH_TP.UUID, sValue)
+ Uuid = sValue
+ End Sub
+
+ Private Sub WriteToolParam()
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ Dim dValue As Double = 0
+ EgtTdbSetCurrToolParam(MCH_TP.CORR, Corr)
+ EgtTdbSetCurrToolParam(MCH_TP.EXIT_, ExitPar)
+ EgtTdbSetCurrToolParam(MCH_TP.TYPE, Type)
+ EgtTdbSetCurrToolParam(MCH_TP.COOLANT, Coolant)
+ StringToLen(CornRad, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.CORNRAD, dValue)
+ StringToLen(TotDiam, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.TOTDIAM, dValue)
+ StringToLen(Feed, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.FEED, dValue)
+ StringToLen(EndFeed, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.ENDFEED, dValue)
+ StringToLen(StartFeed, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.STARTFEED, dValue)
+ StringToLen(TipFeed, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.TIPFEED, dValue)
+ StringToLen(Len, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.LEN, dValue)
+ StringToLen(TotLen, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.TOTLEN, dValue)
+ StringToLen(MaxMat, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.MAXMAT, dValue)
+ StringToLen(LonOffset, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.LONOFFSET, dValue)
+ StringToLen(RadOffset, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.RADOFFSET, dValue)
+ StringToDouble(Speed, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.SPEED, dValue)
+ StringToLen(SideAng, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.SIDEANG, dValue)
+ StringToDouble(MaxSpeed, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.MAXSPEED, dValue)
+ StringToLen(Thick, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.THICK, dValue)
+ StringToDouble(MaxAbsorption, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.MAXABSORPTION, dValue)
+ StringToLen(MinFeed, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.MINFEED, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.DRAW, Draw)
+ EgtTdbSetCurrToolParam(MCH_TP.HEAD, Head)
+ EgtTdbSetCurrToolParam(MCH_TP.USERNOTES, UserNotes)
+ EgtTdbSetCurrToolParam(MCH_TP.TCPOS, TcPos)
+ EgtTdbSetCurrToolParam(MCH_TP.UUID, Uuid)
+ End Sub
+
#Region "Constructors"
Sub New(Name As String)
@@ -655,10 +710,6 @@ Public Class ToolTreeViewItem
End Sub)
End Sub
- Sub New(Name As String, IsSelected As Boolean, IsExpanded As Boolean, IsActive As Boolean)
- MyBase.New(Name, IsSelected, IsExpanded, IsActive)
- End Sub
-
#End Region ' Constructors
#Region "ToolSceneUpdate"
@@ -1036,7 +1087,7 @@ End Class
''' It's an element in the treeview that represent a folder, but also a tool family
'''
Public Class FamilyToolTreeViewItem
- Inherits ParentItem
+ Inherits InheritableTreeViewItem
Private m_ToolType As MCH_TF
'''
@@ -1093,10 +1144,6 @@ Public Class FamilyToolTreeViewItem
Me.PictureString = PicturePath
End Sub
- Sub New(Name As String, IsSelected As Boolean, IsExpanded As Boolean, IsActive As Boolean)
- MyBase.New(Name, IsSelected, IsExpanded, IsActive)
- End Sub
-
End Class
'''
diff --git a/ToolsDbPage/ToolTreeView2.vb b/ToolsDbPage/ToolTreeView2.vb
new file mode 100644
index 0000000..9bfe3b7
--- /dev/null
+++ b/ToolsDbPage/ToolTreeView2.vb
@@ -0,0 +1,1389 @@
+Imports System.ComponentModel
+Imports System.IO
+Imports System.Text.RegularExpressions
+Imports EgtUILib
+
+Public Class FamilyToolTreeViewItem
+ Inherits InheritableTreeViewItem
+
+ 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
+ ' The function that I want to call When Parent item is selected in the tree
+ End If
+ NotifyPropertyChanged("IsSelected")
+ End If
+ End Set
+ End Property
+
+ Private m_ToolType As MCH_TF
+ '''
+ ''' Property that determines the tool type of the family
+ '''
+ Public Property ToolType As MCH_TF
+ Get
+ Return m_ToolType
+ End Get
+ Set(value As MCH_TF)
+ m_ToolType = value
+ End Set
+ End Property
+
+ ' Proprietà che permette di nascondere tutti i parametri utensile grazie al binding ed al converter
+ Public ReadOnly Property Type As Integer
+ Get
+ Return MCH_TY.NONE
+ End Get
+ End Property
+
+ Sub New(Name As String)
+ MyBase.New(Name)
+ Me.PictureString = "/Resources/TreeView/Folder.png"
+ End Sub
+
+End Class
+
+Public Class ToolTreeViewItem
+ Inherits InheritableTreeViewItem
+ Implements IDataErrorInfo
+
+ ' 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
+
+ Private m_ErrorOnTool As Boolean
+ Public Property ErrorOnTool As Boolean
+ Get
+ Return m_ErrorOnTool
+ End Get
+ Set(value As Boolean)
+ If IsValid Then
+ m_ErrorOnTool = False
+ Application.Msn.NotifyColleagues(Application.ERRORONTOOL, Nothing)
+ Else
+ m_ErrorOnTool = True
+ Application.Msn.NotifyColleagues(Application.ERRORONTOOL, Me)
+ End If
+ End Set
+ End Property
+
+ ' Variabile che indica se l'utensile è appena stato creato
+ Dim m_NewTool As Boolean = False
+ Public Property NewTool As Boolean
+ Get
+ Return m_NewTool
+ End Get
+ Set(value As Boolean)
+ m_NewTool = value
+ End Set
+ End Property
+
+ 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)
+ EgtTdbSetCurrTool(Me.Name)
+ ReadToolParam()
+ NotifyPropertyChanged("Type")
+ Else
+ WriteToolParam()
+ If EgtTdbIsCurrToolModified() Then ' And Me.IsValid) Or Me.NewTool Then
+
+ Select Case MsgBox(EgtMsg(MSG_TOOLSERRORS), MsgBoxStyle.YesNo, EgtMsg(MSG_TOOLSERRORS + 1))
+ Case MsgBoxResult.Yes
+ 'm_NewTool = False
+ EgtTdbSaveCurrTool()
+ 'SaveToolDraw()
+ EgtTdbSave()
+ Case MsgBoxResult.No
+ 'If m_NewTool Then
+ ' Application.Msn.NotifyColleagues(Application.REMOVETOOL, Me)
+ 'End If
+ End Select
+ End If
+
+ End If
+ NotifyPropertyChanged("IsSelected")
+ End If
+ 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
+ '''
+ ''' Property that read and write to the tool's database the Corrector
+ '''
+ Public Property Corr As Integer
+ Get
+ Return m_Corr
+ End Get
+ Set(value As Integer)
+ If value <> m_Corr Then
+ m_Corr = value
+ Dim DbCorr As Integer = 0
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbGetCurrToolParam(MCH_TP.CORR, DbCorr)
+ m_IsModifiedCorr = If(value <> DbCorr, True, False)
+ NotifyPropertyChanged("Corr")
+ End If
+ End Set
+ End Property
+
+ Private m_IsModifiedExit As Boolean = False
+ Private m_Exit As Integer
+ '''
+ ''' Property that read and write to the tool's database the Exit
+ '''
+ Public Property ExitPar As Integer
+ Get
+ Return m_Exit
+ End Get
+ Set(value As Integer)
+ If value <> m_Exit Then
+ m_Exit = value
+ Dim DbExit As Integer = 0
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbGetCurrToolParam(MCH_TP.EXIT_, DbExit)
+ m_IsModifiedExit = If(value <> DbExit, True, False)
+ NotifyPropertyChanged("ExitPar")
+ End If
+ End Set
+ End Property
+
+ Private m_Type As Integer
+ '''
+ ''' Property that read and write to the tool's database the Type
+ '''
+ Public Property Type As Integer
+ Get
+ Return m_Type
+ End Get
+ Set(value As Integer)
+ If value <> m_Type Then
+ m_Type = value
+ End If
+ End Set
+ End Property
+
+ Private m_IsModifiedCoolant As Boolean = False
+ Private m_Coolant As Integer
+ '''
+ ''' Property that read and write to the tool's database the Coolant
+ '''
+ Public Property Coolant As Integer
+ Get
+ Return m_Coolant
+ End Get
+ Set(value As Integer)
+ If value <> m_Coolant Then
+ m_Coolant = value
+ Dim DbCoolant As Integer = 0
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbGetCurrToolParam(MCH_TP.COOLANT, DbCoolant)
+ m_IsModifiedCoolant = If(value <> DbCoolant, True, False)
+ NotifyPropertyChanged("Coolant")
+ End If
+ End Set
+ End Property
+
+ Private m_IsModifiedCornRad As Boolean = False
+ Private m_CornRad As String
+ '''
+ ''' Property that read and write to the tool's database the Corner Radius
+ '''
+ Public Property CornRad As String
+ Get
+ Return m_CornRad
+ End Get
+ Set(value As String)
+ If value <> m_CornRad Then
+ m_CornRad = value
+ Dim DbCornRad As Double = 0
+ Dim dValue As Double = 0
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbGetCurrToolParam(MCH_TP.CORNRAD, DbCornRad)
+ StringToLen(value, dValue)
+ m_IsModifiedCornRad = If(dValue <> DbCornRad, True, False)
+ NotifyPropertyChanged("CornRad")
+ End If
+ End Set
+ End Property
+
+ Private m_IsModifiedDiam As Boolean = False
+ Private m_Diam As String
+ '''
+ ''' Property that read and write to the tool's database the Diameter
+ '''
+ Public Property Diam As String
+ Get
+ Return m_Diam
+ End Get
+ Set(value As String)
+ If value <> m_Diam Then
+ m_Diam = value
+ Dim DbDiam As Double = 0
+ Dim dValue As Double = 0
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbGetCurrToolParam(MCH_TP.DIAM, DbDiam)
+ StringToLen(value, dValue)
+ m_IsModifiedDiam = If(dValue <> DbDiam, True, False)
+ If Not m_SuspendToolDrawUpdate Then
+ UpdateSceneToolDraw(DrawUpdateSource.DIAM)
+ End If
+ NotifyPropertyChanged("Diam")
+ End If
+ End Set
+ End Property
+
+ Private m_IsModifiedTotDiam As Boolean = False
+ Private m_TotDiam As String
+ '''
+ ''' Property that read and write to the tool's database the Total Diameter
+ '''
+ Public Property TotDiam As String
+ Get
+ Return m_TotDiam
+ End Get
+ Set(value As String)
+ If value <> m_TotDiam Then
+ m_TotDiam = value
+ Dim DbTotDiam As Double = 0
+ Dim dValue As Double = 0
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbGetCurrToolParam(MCH_TP.TOTDIAM, DbTotDiam)
+ StringToLen(value, dValue)
+ m_IsModifiedTotDiam = If(dValue <> DbTotDiam, True, False)
+ NotifyPropertyChanged("TotDiam")
+ End If
+ End Set
+ End Property
+
+ Private m_IsModifiedFeed As Boolean = False
+ Private m_Feed As String
+ '''
+ ''' Property that read and write to the tool'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
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbGetCurrToolParam(MCH_TP.FEED, DbFeed)
+ StringToLen(value, dValue)
+ m_IsModifiedFeed = If(dValue <> DbFeed, True, False)
+ NotifyPropertyChanged("Feed")
+ End If
+ End Set
+ End Property
+
+ Private m_IsModifiedEndFeed As Boolean = False
+ Private m_EndFeed As String
+ '''
+ ''' Property that read and write to the tool'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
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbGetCurrToolParam(MCH_TP.ENDFEED, DbEndFeed)
+ StringToLen(value, dValue)
+ m_IsModifiedEndFeed = If(dValue <> DbEndFeed, True, False)
+ NotifyPropertyChanged("EndFeed")
+ End If
+ End Set
+ End Property
+
+ Private m_IsModifiedStartFeed As Boolean = False
+ Private m_StartFeed As String
+ '''
+ ''' Property that read and write to the tool'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
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbGetCurrToolParam(MCH_TP.STARTFEED, DbStartFeed)
+ StringToLen(value, dValue)
+ m_IsModifiedStartFeed = If(dValue <> DbStartFeed, True, False)
+ NotifyPropertyChanged("StartFeed")
+ End If
+ End Set
+ End Property
+
+ Private m_IsModifiedTipFeed As Boolean = False
+ Private m_TipFeed As String
+ '''
+ ''' Property that read and write to the tool'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
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbGetCurrToolParam(MCH_TP.TIPFEED, DbTipFeed)
+ StringToLen(value, dValue)
+ m_IsModifiedTipFeed = If(dValue <> DbTipFeed, True, False)
+ NotifyPropertyChanged("TipFeed")
+ End If
+ End Set
+ End Property
+
+ Private m_IsModifiedLen As Boolean = False
+ Private m_Len As String
+ '''
+ ''' Property that read and write to the tool's database the Len
+ '''
+ Public Property Len As String
+ Get
+ Return m_Len
+ End Get
+ Set(value As String)
+ If value <> m_Len Then
+ m_Len = value
+ Dim DbLen As Double = 0
+ Dim dValue As Double = 0
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbGetCurrToolParam(MCH_TP.LEN, DbLen)
+ StringToLen(value, dValue)
+ m_IsModifiedLen = If(dValue <> DbLen, True, False)
+ If Not m_SuspendToolDrawUpdate Then
+ UpdateSceneToolDraw(DrawUpdateSource.LEN)
+ End If
+ NotifyPropertyChanged("Len")
+ End If
+ End Set
+ End Property
+
+ Private m_IsModifiedTotLen As Boolean = False
+ Private m_TotLen As String
+ '''
+ ''' Property that read and write to the tool's database the Total Len
+ '''
+ Public Property TotLen As String
+ Get
+ Return m_TotLen
+ End Get
+ Set(value As String)
+ If value <> m_TotLen Then
+ m_TotLen = value
+ Dim DbTotLen As Double = 0
+ Dim dValue As Double = 0
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbGetCurrToolParam(MCH_TP.TOTLEN, DbTotLen)
+ StringToLen(value, dValue)
+ m_IsModifiedTotLen = If(dValue <> DbTotLen, True, False)
+ If Not m_SuspendToolDrawUpdate Then
+ UpdateSceneToolDraw(DrawUpdateSource.TOTLEN)
+ End If
+ NotifyPropertyChanged("TotLen")
+ End If
+ End Set
+ End Property
+
+ Private m_IsModifiedMaxMat As Boolean = False
+ Private m_MaxMat As String
+ '''
+ ''' Property that read and write to the tool's database the Max Material
+ '''
+ Public Property MaxMat As String
+ Get
+ Return m_MaxMat
+ End Get
+ Set(value As String)
+ If value <> m_MaxMat Then
+ m_MaxMat = value
+ Dim DbMaxMat As Double = 0
+ Dim dValue As Double = 0
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbGetCurrToolParam(MCH_TP.MAXMAT, DbMaxMat)
+ StringToLen(value, dValue)
+ m_IsModifiedMaxMat = If(dValue <> DbMaxMat, True, False)
+ If Not m_SuspendToolDrawUpdate Then
+ UpdateSceneToolDraw(DrawUpdateSource.MAXMAT)
+ End If
+ NotifyPropertyChanged("MaxMat")
+ End If
+ End Set
+ End Property
+
+ Private m_IsModifiedLonOffset As Boolean = False
+ Private m_LonOffset As String
+ '''
+ ''' Property that read and write to the tool's database the Lon Offset
+ '''
+ Public Property LonOffset As String
+ Get
+ Return m_LonOffset
+ End Get
+ Set(value As String)
+ If value <> m_LonOffset Then
+ m_LonOffset = value
+ Dim DbLonOffset As Double = 0
+ Dim dValue As Double = 0
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbGetCurrToolParam(MCH_TP.LONOFFSET, DbLonOffset)
+ StringToLen(value, dValue)
+ m_IsModifiedLonOffset = If(dValue <> DbLonOffset, True, False)
+ NotifyPropertyChanged("LonOffset")
+ End If
+ End Set
+ End Property
+
+ Private m_IsModifiedRadOffset As Boolean = False
+ Private m_RadOffset As String
+ '''
+ ''' Property that read and write to the tool's database the Rad Offset
+ '''
+ Public Property RadOffset As String
+ Get
+ Return m_RadOffset
+ End Get
+ Set(value As String)
+ If value <> m_RadOffset Then
+ m_RadOffset = value
+ Dim DbRadOffset As Double = 0
+ Dim dValue As Double = 0
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbGetCurrToolParam(MCH_TP.RADOFFSET, DbRadOffset)
+ StringToLen(value, dValue)
+ m_IsModifiedRadOffset = If(dValue <> DbRadOffset, True, False)
+ NotifyPropertyChanged("RadOffset")
+ End If
+ End Set
+ End Property
+
+ Private m_IsModifiedSpeed As Boolean = False
+ Private m_Speed As String
+ '''
+ ''' Property that read and write to the tool'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
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbGetCurrToolParam(MCH_TP.SPEED, DbSpeed)
+ StringToLen(value, dValue)
+ m_IsModifiedSpeed = If(dValue <> DbSpeed, True, False)
+ NotifyPropertyChanged("Speed")
+ NotifyPropertyChanged("MaxSpeed")
+ End If
+ End Set
+ End Property
+
+ Private m_IsModifiedSideAng As Boolean = False
+ Private m_SideAng As String
+ '''
+ ''' Property that read and write to the tool's database the Side Angle
+ '''
+ Public Property SideAng As String
+ Get
+ Return m_SideAng
+ End Get
+ Set(value As String)
+ If value <> m_SideAng Then
+ m_SideAng = value
+ Dim DbSideAng As Double = 0
+ Dim dValue As Double = 0
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbGetCurrToolParam(MCH_TP.SIDEANG, DbSideAng)
+ StringToLen(value, dValue)
+ m_IsModifiedSideAng = If(dValue <> DbSideAng, True, False)
+ NotifyPropertyChanged("SideAng")
+ End If
+ End Set
+ End Property
+
+ Private m_IsModifiedMaxSpeed As Boolean = False
+ Private m_MaxSpeed As String
+ '''
+ ''' Property that read and write to the tool's database the Max Speed
+ '''
+ Public Property MaxSpeed As String
+ Get
+ Return m_MaxSpeed
+ End Get
+ Set(value As String)
+ If value <> m_MaxSpeed Then
+ m_MaxSpeed = value
+ Dim DbMaxSpeed As Double = 0
+ Dim dValue As Double = 0
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbGetCurrToolParam(MCH_TP.MAXSPEED, DbMaxSpeed)
+ StringToLen(value, dValue)
+ m_IsModifiedMaxSpeed = If(dValue <> DbMaxSpeed, True, False)
+ NotifyPropertyChanged("Speed")
+ NotifyPropertyChanged("MaxSpeed")
+ End If
+ End Set
+ End Property
+
+ Private m_IsModifiedThick As Boolean = False
+ Private m_Thick As String
+ '''
+ ''' Property that read and write to the tool's database the Thick
+ '''
+ Public Property Thick As String
+ Get
+ Return m_Thick
+ End Get
+ Set(value As String)
+ If value <> m_Thick Then
+ m_Thick = value
+ Dim DbThick As Double = 0
+ Dim dValue As Double = 0
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbGetCurrToolParam(MCH_TP.THICK, DbThick)
+ StringToLen(value, dValue)
+ m_IsModifiedThick = If(dValue <> DbThick, True, False)
+ If Not m_SuspendToolDrawUpdate Then
+ UpdateSceneToolDraw(DrawUpdateSource.THICK)
+ End If
+ NotifyPropertyChanged("Thick")
+ End If
+ End Set
+ End Property
+
+ Private m_IsModifiedMaxAbsorption As Boolean = False
+ Private m_MaxAbsorption As String
+ '''
+ ''' Property that read and write to the tool's database the Max Absorption
+ '''
+ Public Property MaxAbsorption As String
+ Get
+ Return m_MaxAbsorption
+ End Get
+ Set(value As String)
+ If value <> m_MaxAbsorption Then
+ m_MaxAbsorption = value
+ Dim DbMaxAbsorption As Double = 0
+ Dim dValue As Double = 0
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbGetCurrToolParam(MCH_TP.MAXABSORPTION, DbMaxAbsorption)
+ StringToLen(value, dValue)
+ m_IsModifiedMaxAbsorption = If(dValue <> DbMaxAbsorption, True, False)
+ NotifyPropertyChanged("MaxAbsorption")
+ End If
+ End Set
+ End Property
+
+ Private m_IsModifiedMinFeed As Boolean = False
+ Private m_MinFeed As String
+ '''
+ ''' Property that read and write to the tool's database the Min Feed
+ '''
+ Public Property MinFeed As String
+ Get
+ Return m_MinFeed
+ End Get
+ Set(value As String)
+ If value <> m_MinFeed Then
+ m_MinFeed = value
+ Dim DbMinFeed As Double = 0
+ Dim dValue As Double = 0
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbGetCurrToolParam(MCH_TP.MINFEED, DbMinFeed)
+ StringToLen(value, dValue)
+ m_IsModifiedMinFeed = If(dValue <> DbMinFeed, True, False)
+ NotifyPropertyChanged("MinFeed")
+ End If
+ End Set
+ End Property
+
+ Private m_IsModifiedDraw As Boolean = False
+ Private m_Draw As String
+ '''
+ ''' Property that read and write to the tool's database the Draw
+ '''
+ Public Property Draw As String
+ Get
+ Return m_Draw
+ End Get
+ Set(value As String)
+ If value = String.Empty Or value <> m_Draw Then
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ If value = ToolDrawUUIDName Then
+ value = m_Draw
+ ElseIf value = ToolDrawUUIDName.Substring(0, ToolDrawUUIDName.Length - 1) Then
+ value = String.Empty
+ End If
+ m_Draw = value
+ Dim DbDraw As String = String.Empty
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbGetCurrToolParam(MCH_TP.DRAW, DbDraw)
+ m_IsModifiedDraw = If(value <> DbDraw, True, False)
+ If Not m_SuspendToolDrawUpdate Then
+ UpdateSceneToolDraw(DrawUpdateSource.DRAW)
+ End If
+ NotifyPropertyChanged("Draw")
+ End If
+ End Set
+ End Property
+
+ Private m_IsModifiedHead As Boolean = False
+ Private m_Head As String
+ '''
+ ''' Property that read and write to the tool's database the Head
+ '''
+ Public Property Head As String
+ Get
+ Return m_Head
+ End Get
+ Set(value As String)
+ If value = String.Empty Or value <> m_Head Then
+ m_Head = value
+ Dim DbHead As String = String.Empty
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbGetCurrToolParam(MCH_TP.HEAD, DbHead)
+ m_IsModifiedHead = If(value <> DbHead, True, False)
+ NotifyPropertyChanged("Head")
+ End If
+ End Set
+ End Property
+
+ ' 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
+ '''
+ ''' Property that read and write to the tool'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
+ bErrorToolName = False
+ m_Name = value
+ ' Verifico che il nuovo nome sia valido
+ Dim sTempName As String = value
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbGetToolNewName(sTempName)
+ If Not value = sTempName Then
+ bErrorToolName = True
+ End If
+ Dim DbName As String = String.Empty
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbGetCurrToolParam(MCH_TP.NAME, DbName)
+ m_IsModifiedName = If(value <> DbName, True, False)
+ NotifyPropertyChanged("NamePar")
+ End If
+ End Set
+ End Property
+
+ Private m_IsModifiedUserNotes As Boolean = False
+ Private m_UserNotes As String
+ '''
+ ''' Property that read and write to the tool'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
+ Dim DbUserNotes As String = String.Empty
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbGetCurrToolParam(MCH_TP.USERNOTES, DbUserNotes)
+ m_IsModifiedUserNotes = If(value <> DbUserNotes, True, False)
+ m_UserNotes = value
+ NotifyPropertyChanged("UserNotes")
+ End If
+ End Set
+ End Property
+
+ Private m_IsModifiedTcPos As Boolean = False
+ Private m_TcPos As String
+ '''
+ ''' Property that read and write to the tool's database the Tc Pos
+ '''
+ Public Property TcPos As String
+ Get
+ Return m_TcPos
+ End Get
+ Set(value As String)
+ If value = String.Empty Or value <> m_TcPos Then
+ Dim DbTcPos As String = String.Empty
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbGetCurrToolParam(MCH_TP.USERNOTES, DbTcPos)
+ m_IsModifiedTcPos = If(value <> DbTcPos, True, False)
+ m_TcPos = value
+ NotifyPropertyChanged("TcPos")
+ 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
+
+ Friend Sub ReadToolParam()
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ ' sospendo l'aggiornamento del disegno per evitare di rifarlo al cambio di ogni parametro inerente
+ m_SuspendToolDrawUpdate = True
+ Dim nValue As Integer = 0
+ Dim dValue As Double = 0
+ Dim sValue As String = String.Empty
+ EgtTdbGetCurrToolParam(MCH_TP.CORR, nValue)
+ Corr = nValue
+ EgtTdbGetCurrToolParam(MCH_TP.EXIT_, nValue)
+ ExitPar = nValue
+ EgtTdbGetCurrToolParam(MCH_TP.TYPE, nValue)
+ Type = nValue
+ EgtTdbGetCurrToolParam(MCH_TP.COOLANT, nValue)
+ Coolant = nValue
+ EgtTdbGetCurrToolParam(MCH_TP.CORNRAD, dValue)
+ CornRad = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.DIAM, dValue)
+ Diam = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.TOTDIAM, dValue)
+ TotDiam = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.FEED, dValue)
+ Feed = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.ENDFEED, dValue)
+ EndFeed = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.STARTFEED, dValue)
+ StartFeed = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.TIPFEED, dValue)
+ TipFeed = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.LEN, dValue)
+ Len = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.TOTLEN, dValue)
+ TotLen = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.MAXMAT, dValue)
+ MaxMat = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.LONOFFSET, dValue)
+ LonOffset = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.RADOFFSET, dValue)
+ RadOffset = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.SPEED, dValue)
+ Speed = DoubleToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.SIDEANG, dValue)
+ SideAng = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.MAXSPEED, dValue)
+ MaxSpeed = DoubleToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.THICK, dValue)
+ Thick = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.MAXABSORPTION, dValue)
+ MaxAbsorption = DoubleToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.MINFEED, dValue)
+ MinFeed = LenToString(dValue, 4)
+ EgtTdbGetCurrToolParam(MCH_TP.DRAW, sValue)
+ Draw = sValue
+ EgtTdbGetCurrToolParam(MCH_TP.HEAD, sValue)
+ Head = sValue
+ EgtTdbGetCurrToolParam(MCH_TP.NAME, sValue)
+ NamePar = sValue
+ EgtTdbGetCurrToolParam(MCH_TP.USERNOTES, sValue)
+ UserNotes = sValue
+ EgtTdbGetCurrToolParam(MCH_TP.TCPOS, sValue)
+ TcPos = sValue
+ EgtTdbGetCurrToolParam(MCH_TP.UUID, sValue)
+ m_Uuid = sValue
+ ' Ora che tutti i parametri sono aggiornati, aggiorno il disegno
+ m_SuspendToolDrawUpdate = False
+ UpdateSceneToolDraw(DrawUpdateSource.LEN)
+ NotifyPropertyChanged("Draw")
+ NotifyPropertyChanged("MaxMat")
+ NotifyPropertyChanged("Thick")
+ NotifyPropertyChanged("Diam")
+ NotifyPropertyChanged("Len")
+ NotifyPropertyChanged("TotLen")
+ End Sub
+
+ Friend Sub WriteToolParam()
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ Dim dValue As Double = 0
+ EgtTdbSetCurrToolParam(MCH_TP.CORR, Corr)
+ EgtTdbSetCurrToolParam(MCH_TP.EXIT_, ExitPar)
+ EgtTdbSetCurrToolParam(MCH_TP.TYPE, Type)
+ EgtTdbSetCurrToolParam(MCH_TP.COOLANT, Coolant)
+ StringToLen(CornRad, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.CORNRAD, dValue)
+ StringToLen(Diam, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.DIAM, dValue)
+ StringToLen(TotDiam, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.TOTDIAM, dValue)
+ StringToLen(Feed, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.FEED, dValue)
+ StringToLen(EndFeed, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.ENDFEED, dValue)
+ StringToLen(StartFeed, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.STARTFEED, dValue)
+ StringToLen(TipFeed, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.TIPFEED, dValue)
+ StringToLen(Len, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.LEN, dValue)
+ StringToLen(TotLen, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.TOTLEN, dValue)
+ StringToLen(MaxMat, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.MAXMAT, dValue)
+ StringToLen(LonOffset, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.LONOFFSET, dValue)
+ StringToLen(RadOffset, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.RADOFFSET, dValue)
+ StringToDouble(Speed, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.SPEED, dValue)
+ StringToLen(SideAng, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.SIDEANG, dValue)
+ StringToDouble(MaxSpeed, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.MAXSPEED, dValue)
+ StringToLen(Thick, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.THICK, dValue)
+ StringToDouble(MaxAbsorption, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.MAXABSORPTION, dValue)
+ StringToLen(MinFeed, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.MINFEED, dValue)
+ EgtTdbSetCurrToolParam(MCH_TP.DRAW, Draw)
+ EgtTdbSetCurrToolParam(MCH_TP.HEAD, Head)
+ EgtTdbSetCurrToolParam(MCH_TP.NAME, NamePar)
+ EgtTdbSetCurrToolParam(MCH_TP.USERNOTES, UserNotes)
+ EgtTdbSetCurrToolParam(MCH_TP.TCPOS, TcPos)
+ End Sub
+
+#Region "ToolSceneUpdate"
+
+ ' Enum che indica le proprietà di disegno dell'utensile
+ Friend Enum DrawUpdateSource
+ DIAM = 0
+ LEN = 1
+ MAXMAT = 2
+ THICK = 3
+ DRAW = 4
+ TOTLEN = 5
+ End Enum
+
+ ' Variabili che segnalano errori nel disegno dell'utensile
+ Dim bToolMakerError As Boolean = False
+ Dim bDrawNameExistError As Boolean = False
+ Dim bDrawNameError As Boolean = False
+ Dim bDrawingError As Boolean = False
+
+ Private Sub UpdateSceneToolDraw(UpdateSource As DrawUpdateSource)
+ ' Azzero errori
+ bToolMakerError = False
+ bDrawNameError = False
+ bDrawNameExistError = False
+ bDrawingError = False
+
+ ' Verifico proprietà draw
+ If m_Draw = String.Empty OrElse IsUUID(Path.GetFileNameWithoutExtension(m_Draw)) Then
+ CreateToolDraw(UpdateSource)
+ Else
+ EgtSetCurrentContext(IniFile.m_ToolsDbSceneContext)
+ If IsNgeFile(m_Draw) Then
+ If EgtOpenFile(IniFile.m_sTdbCurrMachToolsDirPath & "\" & m_Draw) Then
+ EgtSetView(VT.TOP, False)
+ EgtZoom(ZM.ALL)
+ Else
+ ' Errore
+ bDrawNameExistError = True
+ EgtNewFile()
+ EgtSetView(VT.TOP, False)
+ EgtZoom(ZM.ALL)
+ End If
+ Else
+ ' Errore
+ bDrawNameError = True
+ EgtNewFile()
+ EgtSetView(VT.TOP, False)
+ EgtZoom(ZM.ALL)
+ End If
+ End If
+ NotifyPropertyChanged("Draw")
+ If UpdateSource = DrawUpdateSource.TOTLEN Or UpdateSource = DrawUpdateSource.LEN Or UpdateSource = DrawUpdateSource.MAXMAT Then
+ NotifyPropertyChanged("TotLen")
+ NotifyPropertyChanged("Len")
+ NotifyPropertyChanged("MaxMat")
+ End If
+
+ End Sub
+
+ Private Sub CreateToolDraw(UpdateSource As DrawUpdateSource)
+ ' Carico il relativo ToolHolder
+ Dim ToolHolder As String = String.Empty
+ ToolHolder = LoadToolHolder()
+ If Not LoadToolMaker() OrElse Not CreateToolDraw(ToolHolder, UpdateSource) Then
+ EgtSetCurrentContext(IniFile.m_ToolsDbSceneContext)
+ EgtNewFile()
+ End If
+ EgtSetCurrentContext(IniFile.m_ToolsDbSceneContext)
+ ' Aggiorno visualizzazione
+ EgtSetView(VT.TOP, False)
+ EgtZoom(ZM.ALL)
+ End Sub
+
+ '''
+ ''' Mathod that load the toolholder for the current tool (based on his head), or return an empty string
+ '''
+ Private Function LoadToolHolder() As String
+ Dim sHolder As String = String.Empty
+ EgtUILib.GetPrivateProfileString(S_TOOLHOLDER, Head & "." & ExitPar.ToString(), "", sHolder, IniFile.m_sDbsCurrMachIniFilePath)
+ If String.IsNullOrWhiteSpace(sHolder) Then
+ Return String.Empty
+ Else
+ Dim sHolderPath As String = String.Empty
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbGetToolHolderDir(sHolderPath)
+ sHolderPath += "\" & sHolder
+ Return sHolderPath
+ End If
+ End Function
+
+ Private Function LoadToolMaker() As Boolean
+ Dim sMaker As String = String.Empty
+ EgtUILib.GetPrivateProfileString(S_TOOLS, ConvertTypeToString(Type), "", sMaker, IniFile.m_sDbsCurrMachIniFilePath)
+ If String.IsNullOrWhiteSpace(sMaker) Then bToolMakerError = True
+ ' Acquisisce solo il file lua, ma meglio impostare contesto disegno utensili (se ci sono chiamate...)
+ EgtSetCurrentContext(IniFile.m_ToolsDbSceneContext)
+ Return EgtLuaExecFile(IniFile.m_sToolMakersDir & "\" & sMaker)
+ End Function
+
+ Private Function ConvertTypeToString(Type As Integer) As String
+ Select Case Type
+ Case MCH_TY.DRILL_STD, MCH_TY.DRILL_LONG
+ Return "StandardDrillMaker"
+ Case MCH_TY.SAW_STD, MCH_TY.SAW_FLAT
+ Return "StandardSawMaker"
+ Case MCH_TY.MILL_STD, MCH_TY.MILL_NOTIP
+ Return "StandardMillMaker"
+ Case MCH_TY.MORTISE_STD
+ Return "StandardMortiseMaker"
+ Case MCH_TY.COMPO
+ Return "StandardCompoMaker"
+ End Select
+ Return Nothing
+ End Function
+
+ Private Function CreateToolDraw(ToolHolder As String, UpdateSource As DrawUpdateSource) As Boolean
+ Dim dTotLen As Double = 0
+ Dim dLen As Double = 0
+ Dim dDiam As Double = 0
+ Dim dThick As Double = 0
+ Dim dMaxMat As Double = 0
+ StringToLen(m_TotLen, dTotLen)
+ StringToLen(m_Len, dLen)
+ StringToLen(m_Diam, dDiam)
+ StringToLen(m_Thick, dThick)
+ StringToLen(m_MaxMat, dMaxMat)
+ Select Case Type
+ Case MCH_TY.DRILL_STD
+ ' imposto dati utensile
+ EgtLuaSetGlobStringVar("TOOL.TOOLHOLDER", ToolHolder)
+ EgtLuaSetGlobNumVar("TOOL.TOTLEN", dTotLen)
+ EgtLuaSetGlobNumVar("TOOL.LEN", dLen)
+ EgtLuaSetGlobNumVar("TOOL.DIAM", dDiam)
+ EgtLuaSetGlobNumVar("TOOL.MAXMAT", dMaxMat)
+ Case MCH_TY.SAW_STD
+ ' imposto dati utensile
+ EgtLuaSetGlobStringVar("TOOL.TOOLHOLDER", ToolHolder)
+ EgtLuaSetGlobNumVar("TOOL.LEN", dLen)
+ EgtLuaSetGlobNumVar("TOOL.DIAM", dDiam)
+ Dim dCore As Double = If(dLen >= dThick, dThick - 1, 2 * dLen - dThick)
+ EgtLuaSetGlobNumVar("TOOL.CORE", dCore)
+ EgtLuaSetGlobNumVar("TOOL.THICK", dThick)
+ EgtLuaSetGlobNumVar("TOOL.MAXMAT", dMaxMat)
+ Case MCH_TY.MILL_STD
+ ' imposto dati utensile
+ EgtLuaSetGlobStringVar("TOOL.TOOLHOLDER", ToolHolder)
+ EgtLuaSetGlobNumVar("TOOL.LEN", dLen)
+ EgtLuaSetGlobNumVar("TOOL.DIAM", dDiam)
+ EgtLuaSetGlobNumVar("TOOL.MAXMAT", dMaxMat)
+ Case Else
+ bDrawingError = True
+ Draw = String.Empty
+ Return False
+ End Select
+ ' passo all'ambiente di disegno dell'utensile
+ EgtSetCurrentContext(IniFile.m_ToolsDbSceneContext)
+ ' eseguo creazione utensile
+ EgtLuaExecLine("CreateTool()")
+ ' recupero errore
+ Dim nErr As Integer = 999
+ EgtLuaGetGlobIntVar("TOOL.ERR", nErr)
+ bDrawingError = Not (nErr = 0)
+ If bDrawingError And UpdateSource <> DrawUpdateSource.DRAW Then Draw = String.Empty
+ If Not bDrawingError Then m_Draw = m_Uuid & ".nge"
+ Return (nErr = 0)
+ End Function
+
+ Private Function SaveToolDraw() As Boolean
+ If m_Type = MCH_TY.DRILL_STD Or m_Type = MCH_TY.SAW_STD Or m_Type = MCH_TY.MILL_STD Then
+ Dim x = EgtGetCurrentContext()
+ ' nome e direttorio del file da salvare
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ Dim sDrawName As String = Uuid
+ sDrawName = sDrawName & ".nge"
+ Dim sPath As String = String.Empty
+ EgtTdbGetToolDir(sPath)
+ sPath = sPath & "\" & sDrawName
+ ' passo all'ambiente di disegno dell'utensile
+ Dim r = EgtSetCurrentContext(IniFile.m_ToolsDbSceneContext)
+ Dim y = EgtGetCurrentContext()
+ ' nascondo layer ausiliario
+ Dim nAuxId As Integer = GDB_ID.NULL
+ nAuxId = EgtGetFirstNameInGroup(EgtGetFirstGroupInGroup(GDB_ID.ROOT), "AUX")
+ EgtSetStatus(nAuxId, GDB_ST.OFF)
+ ' se lama devo ruotare -90 deg attorno a Z+
+ If m_Type = MCH_TY.SAW_STD Then
+ EgtRotate(EgtGetFirstGroupInGroup(GDB_ID.ROOT), Point3d.ORIG(), Vector3d.Z_AX(), -90, GDB_RT.GLOB)
+ End If
+ ' salvo il modello
+ Dim z = EgtGetCurrentContext()
+ Dim bOk As Boolean = EgtSaveFile(sPath, NGE.CMPTEXT)
+ Dim e = EgtGetCurrentContext()
+ ' eseguo controrotazione per lama
+ If m_Type = MCH_TY.SAW_STD Then
+ EgtRotate(EgtGetFirstGroupInGroup(GDB_ID.ROOT), Point3d.ORIG(), Vector3d.Z_AX(), 90, GDB_RT.GLOB)
+ End If
+ ' ripristino visualizzazione layer aux
+ EgtSetStatus(nAuxId, GDB_ST.ON_)
+ ' salvo nome del disegno utensile
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbSetCurrToolParam(MCH_TP.DRAW, sDrawName)
+ EgtTdbSaveCurrTool()
+ Return bOk
+ End If
+ Return False
+ End Function
+
+#End Region ' ToolSceneUpdate
+
+#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
+ ErrorOnTool = 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_IsModifiedCorr OrElse m_IsModifiedExit OrElse m_IsModifiedCornRad OrElse m_IsModifiedDiam OrElse m_IsModifiedFeed OrElse m_IsModifiedEndFeed _
+ OrElse m_IsModifiedStartFeed OrElse m_IsModifiedTipFeed OrElse m_IsModifiedLen OrElse m_IsModifiedTotLen OrElse m_IsModifiedMaxMat OrElse m_IsModifiedLonOffset _
+ OrElse m_IsModifiedRadOffset OrElse m_IsModifiedSpeed OrElse m_IsModifiedSideAng OrElse m_IsModifiedMaxSpeed OrElse m_IsModifiedThick OrElse m_IsModifiedMaxAbsorption _
+ OrElse m_IsModifiedMinFeed OrElse m_IsModifiedDraw OrElse m_IsModifiedHead OrElse m_IsModifiedName OrElse m_IsModifiedUserNotes OrElse m_IsModifiedTcPos
+ End Get
+ End Property
+
+ Private Shared ReadOnly ValidatedProperties() As String = {"Draw", "MaxMat", "Thick", "Diam", "Len", "TotLen", "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 "Draw"
+ [error] = Me.ValidateDraw()
+ Case "MaxMat"
+ [error] = Me.ValidateMaxMat()
+ Case "Diam"
+ [error] = Me.ValidateDiam()
+ Case "Thick"
+ [error] = Me.ValidateThick()
+ Case "Len"
+ [error] = Me.ValidateLen()
+ Case "TotLen"
+ [error] = Me.ValidateTotLen()
+ 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 ValidateDraw() As String
+ If bDrawNameError Then
+ Return EgtMsg(MSG_TOOLSERRORS + 2)
+ End If
+ If bDrawNameExistError Then
+ Return EgtMsg(MSG_TOOLSERRORS + 3)
+ End If
+ If bToolMakerError Then
+ Return EgtMsg(MSG_TOOLSERRORS + 4)
+ End If
+ If bDrawingError Then
+ Return EgtMsg(MSG_TOOLSERRORS + 5)
+ End If
+ Return Nothing
+ End Function
+
+ Private Function ValidateMaxMat() As String
+ If Not IsNothing(m_MaxMat) Then
+ Dim dMaxMat As Double = 0
+ StringToLen(m_MaxMat, dMaxMat)
+ If dMaxMat < EPS_SMALL Then
+ Return EgtMsg(MSG_TOOLSERRORS + 6)
+ End If
+ If Not IsNothing(m_Len) Then
+ Dim dLen As Double = 0
+ StringToLen(m_Len, dLen)
+ If dMaxMat > dLen + EPS_SMALL Then
+ Return EgtMsg(MSG_TOOLSERRORS + 7)
+ End If
+ End If
+ End If
+ Return Nothing
+ End Function
+
+ Private Function ValidateThick() As String
+ If Not IsNothing(m_Thick) Then
+ Dim dThick As Double = 0
+ StringToLen(m_Thick, dThick)
+ If (m_Type = MCH_TY.SAW_FLAT Or m_Type = MCH_TY.SAW_STD Or m_Type = MCH_TY.MORTISE_STD) And dThick < EPS_SMALL Then
+ Return EgtMsg(MSG_TOOLSERRORS + 8)
+ End If
+ End If
+ Return Nothing
+ End Function
+
+ Private Function ValidateDiam() As String
+ If Not IsNothing(m_Diam) Then
+ Dim dDiam As Double = 0
+ StringToLen(m_Diam, dDiam)
+ If dDiam < EPS_SMALL Then
+ Return EgtMsg(MSG_TOOLSERRORS + 9)
+ End If
+ If Not IsNothing(m_TotDiam) Then
+ Dim dTotDiam As Double = 0
+ StringToLen(m_TotDiam, dTotDiam)
+ If dDiam > dTotDiam + EPS_SMALL Then
+ Return "Il diametro non può essere maggiore del diametro totale"
+ End If
+ End If
+
+ End If
+ Return Nothing
+ End Function
+
+ Private Function ValidateTotDiam() As String
+ If Not IsNothing(m_TotDiam) Then
+ Dim dTotDiam As Double = 0
+ StringToLen(m_TotDiam, dTotDiam)
+ If dTotDiam < EPS_SMALL Then
+ Return "Il diametro totale deve essere maggiore di zero"
+ End If
+ End If
+ Return Nothing
+ End Function
+
+ Private Function ValidateLen() As String
+ If Not IsNothing(m_Len) Then
+ Dim dLen As Double = 0
+ StringToLen(m_Len, dLen)
+ If dLen < EPS_SMALL Then
+ Return EgtMsg(MSG_TOOLSERRORS + 10)
+ End If
+ If Not IsNothing(m_TotLen) Then
+ Dim dTotLen As Double = 0
+ StringToLen(m_TotLen, dTotLen)
+ If dLen > dTotLen + EPS_SMALL Then
+ Return "La lunghezza non può essere maggiore della lunghezza totale"
+ End If
+ End If
+ If Not IsNothing(m_MaxMat) Then
+ Dim dMaxMat As Double = 0
+ StringToLen(m_MaxMat, dMaxMat)
+ If dLen < dMaxMat Then
+ Return "La lunghezza non può essere minore del massimo materiale"
+ End If
+ End If
+ End If
+ Return Nothing
+ End Function
+
+ Private Function ValidateTotLen() As String
+ If Not IsNothing(m_TotLen) Then
+ Dim dTotLen As Double = 0
+ StringToLen(m_TotLen, dTotLen)
+ If dTotLen < EPS_SMALL Then
+ Return "La lunghezza totale deve essere maggiore di zero"
+ End If
+ If Not IsNothing(m_Len) Then
+ Dim dLen As Double = 0
+ StringToLen(m_Len, dLen)
+ If dTotLen < dLen - EPS_SMALL Then
+ Return "La lunghezza totale non può essere minore della lunghezza"
+ End If
+ End If
+ End If
+ Return Nothing
+ End Function
+
+ Private Function ValidateSpeed() As String
+ If Not IsNothing(m_Speed) And Not IsNothing(m_MaxSpeed) Then
+ Dim dSpeed As Double = 0
+ StringToDouble(m_Speed, dSpeed)
+ Dim dMaxSpeed As Double = 0
+ StringToDouble(m_MaxSpeed, dMaxSpeed)
+ If Math.Abs(dSpeed) > dMaxSpeed + EPS_ZERO Then
+ Return EgtMsg(MSG_TOOLSERRORS + 11)
+ End If
+
+ End If
+ Return Nothing
+ End Function
+
+ Private Function ValidateName() As String
+ If bErrorToolName Then
+ Return EgtMsg(MSG_TOOLSERRORS + 12)
+ End If
+ Return Nothing
+ End Function
+
+ Private Shared Function IsStringMissing(ByVal value As String) As Boolean
+ Return String.IsNullOrEmpty(value) OrElse value.Trim() = String.Empty
+ End Function
+
+ Private Shared Function IsNgeFile(FileName As String) As Boolean
+ If IsStringMissing(FileName) Then
+ Return False
+ End If
+
+ Dim pattern As String = "^.+\.(?:[nN][gG][eE])$"
+
+ Return Regex.IsMatch(FileName, pattern, RegexOptions.IgnoreCase)
+ End Function
+
+#End Region ' Validation
+
+End Class
+
+'''
+''' Class that represent a Converter that use tool type and param type, to set the visibility state of the param type.
+'''
+Public Class ToolParamVisibilityConverter
+ 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_TY.NONE
+ Return Visibility.Hidden
+ Case MCH_TY.DRILL_STD
+ Return SharedFieldsClass.Drill_Std(CInt(parameter))
+ Case MCH_TY.DRILL_LONG
+ Return SharedFieldsClass.Drill_Long(CInt(parameter))
+ Case MCH_TY.SAW_STD
+ Return SharedFieldsClass.Saw_Std(CInt(parameter))
+ Case MCH_TY.SAW_FLAT
+ Return SharedFieldsClass.Saw_Flat(CInt(parameter))
+ Case MCH_TY.MILL_STD
+ Return SharedFieldsClass.Mill_Std(CInt(parameter))
+ Case MCH_TY.MILL_NOTIP
+ Return SharedFieldsClass.Mill_NoTip(CInt(parameter))
+ Case MCH_TY.MORTISE_STD
+ Return SharedFieldsClass.Mortise_Std(CInt(parameter))
+ Case MCH_TY.COMPO
+ Return SharedFieldsClass.Compo(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
+
+'''
+''' Class that represent a Converter that convert UUID to ***** in Draw param
+'''
+Public Class ToolDrawUUIDConverter
+ 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 Not IsNothing(value) Then
+ If IsUUID(Path.GetFileNameWithoutExtension(value.ToString)) Then
+ Return ToolDrawUUIDName
+ Else
+ Return value.ToString
+ End If
+ 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
+ Return value.ToString
+ End Function
+End Class
diff --git a/ToolsDbPage/ToolsDbView.xaml b/ToolsDbPage/ToolsDbView.xaml
index ef847cb..e9f9447 100644
--- a/ToolsDbPage/ToolsDbView.xaml
+++ b/ToolsDbPage/ToolsDbView.xaml
@@ -38,7 +38,6 @@
23
24
25
-
@@ -64,96 +63,83 @@
-
-
-
-
+ ItemsSource="{Binding ToolsList}">
-
-
-
-
-
+
+
+
-
-
+
+
-
+
+
+
+
+
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
-
-
+
-
-
-
+
+
+
+
+
+
-
-
-
-
-
+
+
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
-
-
+
+
@@ -186,14 +172,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+ UpdateSourceTrigger=PropertyChanged}"/>
@@ -894,6 +880,7 @@
+
diff --git a/ToolsDbPage/ToolsDbViewModel.vb b/ToolsDbPage/ToolsDbViewModel.vb
index 265eaf0..8bb9f40 100644
--- a/ToolsDbPage/ToolsDbViewModel.vb
+++ b/ToolsDbPage/ToolsDbViewModel.vb
@@ -39,7 +39,6 @@ Namespace EgtCAM5
IniFile.m_ToolsDbSceneContext = m_ToolScene.GetCtx()
' inibisco selezione diretta da Scene
m_ToolScene.SetStatusNull()
- 'EgtOpenFile("c:\EgtData\Varie\Temp\Fiera02.Nge")
'OnPropertyChanged("SelectedMachine")
m_bfirst = False
End If
@@ -286,7 +285,7 @@ Namespace EgtCAM5
Private Sub LoadSelectedMachineTools()
Dim ActiveToolsFamilies() As ToolsFamily = ReadActiveToolsFamilies()
For Each ToolsFamily In ActiveToolsFamilies
- Dim FamilyTreeView As New FamilyToolTreeViewItem(ToolsFamily.FamilyName, ToolsFamily.FamilyId)
+ Dim FamilyTreeView As New FamilyToolTreeViewItem(ToolsFamily.FamilyName) ', ToolsFamily.FamilyId)
ToolsList.Add(FamilyTreeView)
Dim nType As Integer = 0
Dim ToolName As String = String.Empty
@@ -450,7 +449,7 @@ Namespace EgtCAM5
If TypeOf param Is ToolTreeViewItem Then
Dim Tool As ToolTreeViewItem = DirectCast(param, ToolTreeViewItem)
' Verifico che i parametri dell'utensile siano validi
- Return (Tool.IsValid And EgtTdbIsCurrToolModified()) Or Tool.NewTool
+ Return (Tool.IsValid And Tool.IsModified) Or Tool.NewTool
Else
Return False
End If
@@ -486,9 +485,9 @@ Namespace EgtCAM5
EgtTdbRemoveTool(ToolToRemove.Name)
' Rimuovo il nome dell'albero
For Each ToolFamily In ToolsList
- If (ToolFamily.ToolType And ToolType) <> 0 Then
- ToolFamily.Items.Remove(ToolToRemove)
- End If
+ 'If (ToolFamily.ToolType And ToolType) <> 0 Then
+ ' ToolFamily.Items.Remove(ToolToRemove)
+ 'End If
Next
Application.Msn.NotifyColleagues(Application.ERRORONTOOL, Nothing)
End Sub
diff --git a/ValidationGroup.vb b/ValidationGroup.vb
new file mode 100644
index 0000000..f55f5eb
--- /dev/null
+++ b/ValidationGroup.vb
@@ -0,0 +1,42 @@
+Imports System.ComponentModel
+
+Module ValidationGroup
+
+ Public Delegate Function ValidationDelegate(propertyName As String) As String
+ Public Delegate Sub PropertyChangedDelegate(propertyName As String)
+
+ _
+ Public Sub AddValidationGroup(Of T As {INotifyPropertyChanged, INotifyPropertyChanging})(obj As T, validationGroup As List(Of String), validationFlag As Boolean, validationDelegate As ValidationDelegate, propertyChangedDelegate As PropertyChangedDelegate)
+
+ ' This delegate runs before a PropertyChanged event. If the property
+ ' being changed exists within the Validation Group, check for validation
+ ' errors on the other fields in the group. If there is an error with one
+ ' of them, set a flag to true.
+ AddHandler obj.PropertyChanging, Sub(sender As Object, e As PropertyChangingEventArgs)
+ If validationGroup.Contains(e.PropertyName) Then
+ For Each [property] As String In validationGroup
+ If validationDelegate([property]) IsNot Nothing Then
+ validationFlag = True
+ Exit For
+ End If
+ Next
+ End If
+ End Sub
+
+ ' After the Property gets changed, if another field in this group was
+ ' invalid prior to the change, then raise the PropertyChanged event for
+ ' all other fields in the Validation Group to update them.
+ ' Also turn flag off so it doesn't get stuck in an infinite loop
+ AddHandler obj.PropertyChanged, Sub(sender As Object, e As PropertyChangedEventArgs)
+ If validationGroup.Contains(e.PropertyName) Then
+ If validationFlag AndAlso validationDelegate(e.PropertyName) Is Nothing Then
+ validationFlag = False
+ For Each [property] As String In validationGroup
+ propertyChangedDelegate([property])
+ Next
+ End If
+ End If
+ End Sub
+ End Sub
+
+End Module
\ No newline at end of file