dc5eec309f
- corretta ValidateMaxMat per Probe (prima non si abilitava Salva su nuovo probe).
3856 lines
141 KiB
VB.net
3856 lines
141 KiB
VB.net
Imports System.IO
|
|
Imports System.Collections.ObjectModel
|
|
Imports EgtUILib
|
|
|
|
Public Class FamilyToolTreeViewItem
|
|
Inherits InheritableTreeViewItem
|
|
|
|
' Actions
|
|
Friend Shared m_delIsEnabledBtns As Action(Of Boolean, Boolean, Boolean)
|
|
Public Shared m_delNotifyPropertyChanged As Action(Of String)
|
|
Friend Shared m_delErrorOnTool As Action(Of Boolean)
|
|
Dim x As Integer = MCH_TF.MILL
|
|
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
|
|
If EgtSetCurrentContext(ToolDbWindowVM.m_ToolDbSceneContext) Then
|
|
EgtNewFile()
|
|
EgtSetView(VT.TOP, False)
|
|
EgtZoom(ZM.ALL)
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
End If
|
|
If value Then
|
|
m_delNotifyPropertyChanged("ParamPageV")
|
|
m_delErrorOnTool(False)
|
|
m_delIsEnabledBtns(True, False, False)
|
|
End If
|
|
End If
|
|
NotifyPropertyChanged(NameOf(IsSelected))
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_ToolType As MCH_TF
|
|
''' <summary>
|
|
''' Property that determines the tool type of the family
|
|
''' </summary>
|
|
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, ToolFamily As MCH_TF)
|
|
MyBase.New(Name)
|
|
Me.PictureString = "/Resources/TreeView/Folder.png"
|
|
Me.m_ToolType = ToolFamily
|
|
End Sub
|
|
|
|
End Class
|
|
|
|
Public Class ToolTreeViewItem
|
|
Inherits InheritableTreeViewItem
|
|
|
|
' Actions
|
|
Friend Shared m_delRemoveTool As Action(Of ToolTreeViewItem)
|
|
Friend Shared m_delErrorOnTool As Action(Of Boolean)
|
|
Friend Shared m_delIsEnabledBtns As Action(Of Boolean, Boolean, Boolean)
|
|
Friend Shared m_delGetSelectedTool As Func(Of ToolTreeViewItem)
|
|
Public Shared m_delNotifyPropertyChanged As Action(Of String)
|
|
|
|
' Constants
|
|
Public Const K_STEPPAR As String = "STEP"
|
|
Public Const K_SIDESTEP As String = "SIDESTEP"
|
|
|
|
#Region "Tool 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 Shared m_SuspendToolDrawUpdate As Boolean = False
|
|
Public Shared Property SuspendToolDrawUpdate As Boolean
|
|
Get
|
|
Return m_SuspendToolDrawUpdate
|
|
End Get
|
|
Set(value As Boolean)
|
|
m_SuspendToolDrawUpdate = value
|
|
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
|
|
|
|
''' <summary>
|
|
''' Property that determines if the Tool is selected or not
|
|
''' </summary>
|
|
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(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbSetCurrTool(Me.Name)
|
|
ReadToolParam()
|
|
IsModifiedReset()
|
|
NotifyPropertyChanged(NameOf(Type))
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
Else
|
|
WriteToolParam()
|
|
If EgtTdbIsCurrToolModified() Or m_IsModifiedName Or Me.NewTool Then
|
|
Select Case MsgBox(EgtMsg(31100), MsgBoxStyle.YesNo, EgtMsg(31101))
|
|
'Select Case EgtMessageBoxV.Show(Application.Current.MainWindow, EgtMsg(31100), EgtMsg(31101), MessageBoxButton.YesNo) ' Salvare l'utensile modificato ? - SALVA
|
|
Case MsgBoxResult.Yes
|
|
m_NewTool = False
|
|
m_Name = m_Name.Trim()
|
|
WriteToolName()
|
|
EgtTdbSaveCurrTool()
|
|
Case MsgBoxResult.No
|
|
If m_NewTool Then
|
|
m_delRemoveTool(Me)
|
|
ElseIf m_IsModifiedName Then
|
|
Dim DbName As String = String.Empty
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetCurrToolParam(MCH_TP.NAME, DbName)
|
|
NamePar = DbName
|
|
End If
|
|
End Select
|
|
End If
|
|
End If
|
|
' ricarico utensile per avere valore Active e ricaricarlo
|
|
EgtTdbSetCurrTool(Me.Name)
|
|
NotifyPropertyChanged(NameOf(Active))
|
|
NotifyPropertyChanged(NameOf(IsSelected))
|
|
End If
|
|
End Set
|
|
End Property
|
|
Friend Sub ResetSelected()
|
|
m_IsSelected = False
|
|
NotifyPropertyChanged(NameOf(IsSelected))
|
|
End Sub
|
|
|
|
Private m_IsModifiedCorr As Boolean = False
|
|
Private m_Corr As String
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the Corrector
|
|
''' </summary>
|
|
Public Property Corr As String
|
|
Get
|
|
Return m_Corr
|
|
End Get
|
|
Set(value As String)
|
|
If value <> m_Corr Then
|
|
m_Corr = value
|
|
Dim DbCorr As Integer = 0
|
|
Dim nValue As Integer = 0
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetCurrToolParam(MCH_TP.CORR, DbCorr)
|
|
Int32.TryParse(value, nValue)
|
|
m_IsModifiedCorr = If(nValue <> DbCorr, True, False)
|
|
If GetNonNumericTextBox(m_Corr) Then
|
|
m_delErrorOnTool(True)
|
|
m_delIsEnabledBtns(False, False, True)
|
|
Else
|
|
m_delErrorOnTool(Not IsValid)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
End If
|
|
NotifyPropertyChanged(NameOf(Corr))
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Friend m_ExitList As New ObservableCollection(Of Object)
|
|
Public ReadOnly Property ExitList As ObservableCollection(Of Object)
|
|
Get
|
|
Return m_ExitList
|
|
End Get
|
|
End Property
|
|
|
|
Private m_IsModifiedSelectedExit As Boolean = False
|
|
Private m_SelectedExit As Integer = -1
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the Exit
|
|
''' </summary>
|
|
Public Property SelectedExit As Integer
|
|
Get
|
|
Return m_SelectedExit
|
|
End Get
|
|
Set(value As Integer)
|
|
If value <> m_SelectedExit Then
|
|
If Not IsNothing(ExitList) AndAlso ExitList.Count() > 0 Then
|
|
m_SelectedExit = value
|
|
If SelectedExit <> -1 Then
|
|
Dim DbExit As Integer = 0
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetCurrToolParam(MCH_TP.EXIT_, DbExit)
|
|
DbExit = IdNameStruct.IndFromId(DbExit, ExitList)
|
|
m_IsModifiedSelectedExit = If(value <> DbExit, True, False)
|
|
' se modificato disattivo l'utensile
|
|
If m_IsModifiedSelectedExit And Not m_SuspendToolDrawUpdate Then EgtTdbSetCurrToolParam(MCH_TP.ACTIVE, False)
|
|
If Not GetValidationError("SelectedExit") Then
|
|
m_delErrorOnTool(True)
|
|
m_delIsEnabledBtns(False, False, True)
|
|
Else
|
|
m_delErrorOnTool(Not IsValid)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
End If
|
|
If Not m_SuspendToolDrawUpdate Then
|
|
UpdateSceneToolDraw()
|
|
End If
|
|
NotifyPropertyChanged(NameOf(SelectedExit))
|
|
End If
|
|
End If
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
' Per Note Utensile
|
|
Private m_TypeM As MCH_TY
|
|
|
|
Private m_Type As Integer
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the Type
|
|
''' </summary>
|
|
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
|
|
|
|
'ObservableCollection che contiene le variabili per il combobox WorkSide
|
|
Private m_CoolantList As ObservableCollection(Of Object)
|
|
Public ReadOnly Property CoolantList As ObservableCollection(Of Object)
|
|
Get
|
|
Return m_CoolantList
|
|
End Get
|
|
End Property
|
|
|
|
Private m_IsModifiedSelCoolant As Boolean = False
|
|
Private m_SelCoolant As Integer
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the Coolant
|
|
''' </summary>
|
|
Public Property SelCoolant As Integer
|
|
Get
|
|
If IsNothing(CoolantList) Then Return Nothing
|
|
Return m_SelCoolant
|
|
End Get
|
|
Set(value As Integer)
|
|
If value <> m_SelCoolant Then
|
|
If Not IsNothing(CoolantList) Then
|
|
m_SelCoolant = value
|
|
Dim DbCoolant As Integer = 0
|
|
EgtTdbGetCurrToolParam(MCH_TP.COOLANT, DbCoolant)
|
|
DbCoolant = IdNameStruct.IndFromId(DbCoolant, CoolantList)
|
|
m_IsModifiedSelCoolant = If(value <> DbCoolant, True, False)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
NotifyPropertyChanged(NameOf(SelCoolant))
|
|
End If
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_IsModifiedCornRad As Boolean = False
|
|
Private m_CornRad As String
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the Corner Radius
|
|
''' </summary>
|
|
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(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetCurrToolParam(MCH_TP.CORNRAD, DbCornRad)
|
|
StringToLen(value, dValue)
|
|
m_IsModifiedCornRad = Math.Abs(dValue - DbCornRad) > 10 * EPS_ANG_SMALL
|
|
If Not GetValidationError("CornRad") Or GetNonNumericTextBox(m_CornRad) Then
|
|
m_delErrorOnTool(True)
|
|
m_delIsEnabledBtns(False, False, True)
|
|
Else
|
|
m_delErrorOnTool(Not IsValid)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
End If
|
|
If Not m_SuspendToolDrawUpdate Then
|
|
UpdateSceneToolDraw()
|
|
End If
|
|
NotifyPropertyChanged(NameOf(CornRad))
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_IsModifiedDiam As Boolean = False
|
|
Private m_Diam As String
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the Diameter
|
|
''' </summary>
|
|
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(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetCurrToolParam(MCH_TP.DIAM, DbDiam)
|
|
StringToLen(value, dValue)
|
|
m_IsModifiedDiam = Math.Abs(dValue - DbDiam) > 10 * EPS_ANG_SMALL
|
|
If Not GetValidationError("Diam") Or GetNonNumericTextBox(m_Diam) Then
|
|
m_delErrorOnTool(True)
|
|
m_delIsEnabledBtns(False, False, True)
|
|
Else
|
|
m_delErrorOnTool(Not IsValid)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
End If
|
|
If Not m_SuspendToolDrawUpdate Then
|
|
UpdateSceneToolDraw()
|
|
End If
|
|
NotifyPropertyChanged(NameOf(Diam))
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_IsModifiedTotDiam As Boolean = False
|
|
Private m_TotDiam As String
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the Total Diameter
|
|
''' </summary>
|
|
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(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetCurrToolParam(MCH_TP.TOTDIAM, DbTotDiam)
|
|
StringToLen(value, dValue)
|
|
m_IsModifiedTotDiam = Math.Abs(dValue - DbTotDiam) > 5 * EPS_SMALL
|
|
If Not m_SuspendToolDrawUpdate Then
|
|
UpdateSceneToolDraw()
|
|
End If
|
|
If Not GetValidationError("Diam") Or Not GetValidationError("TotDiam") Or GetNonNumericTextBox(m_TotDiam) Then
|
|
m_delErrorOnTool(True)
|
|
m_delIsEnabledBtns(False, False, True)
|
|
Else
|
|
m_delErrorOnTool(Not IsValid)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
End If
|
|
NotifyPropertyChanged(NameOf(TotDiam))
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_IsModifiedFeed As Boolean = False
|
|
Private m_Feed As String
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the Feed
|
|
''' </summary>
|
|
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(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetCurrToolParam(MCH_TP.FEED, DbFeed)
|
|
StringToLen(value, dValue)
|
|
m_IsModifiedFeed = Math.Abs(dValue - DbFeed) > 5 * EPS_SMALL
|
|
If GetNonNumericTextBox(m_Feed) Then
|
|
m_delErrorOnTool(True)
|
|
m_delIsEnabledBtns(False, False, True)
|
|
Else
|
|
m_delErrorOnTool(Not IsValid)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
End If
|
|
NotifyPropertyChanged(NameOf(Feed))
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_IsModifiedEndFeed As Boolean = False
|
|
Private m_EndFeed As String
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the End Feed
|
|
''' </summary>
|
|
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(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetCurrToolParam(MCH_TP.ENDFEED, DbEndFeed)
|
|
StringToLen(value, dValue)
|
|
m_IsModifiedEndFeed = Math.Abs(dValue - DbEndFeed) > 5 * EPS_SMALL
|
|
If GetNonNumericTextBox(m_EndFeed) Then
|
|
m_delErrorOnTool(True)
|
|
m_delIsEnabledBtns(False, False, True)
|
|
Else
|
|
m_delErrorOnTool(Not IsValid)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
End If
|
|
NotifyPropertyChanged(NameOf(EndFeed))
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_IsModifiedStartFeed As Boolean = False
|
|
Private m_StartFeed As String
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the Start Feed
|
|
''' </summary>
|
|
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(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetCurrToolParam(MCH_TP.STARTFEED, DbStartFeed)
|
|
StringToLen(value, dValue)
|
|
m_IsModifiedStartFeed = Math.Abs(dValue - DbStartFeed) > 5 * EPS_SMALL
|
|
If GetNonNumericTextBox(m_StartFeed) Then
|
|
m_delErrorOnTool(True)
|
|
m_delIsEnabledBtns(False, False, True)
|
|
Else
|
|
m_delErrorOnTool(Not IsValid)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
End If
|
|
NotifyPropertyChanged(NameOf(StartFeed))
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_IsModifiedTipFeed As Boolean = False
|
|
Private m_TipFeed As String
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the Tip Feed
|
|
''' </summary>
|
|
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(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetCurrToolParam(MCH_TP.TIPFEED, DbTipFeed)
|
|
StringToLen(value, dValue)
|
|
m_IsModifiedTipFeed = Math.Abs(dValue - DbTipFeed) > 5 * EPS_SMALL
|
|
If GetNonNumericTextBox(m_TipFeed) Then
|
|
m_delErrorOnTool(True)
|
|
m_delIsEnabledBtns(False, False, True)
|
|
Else
|
|
m_delErrorOnTool(Not IsValid)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
End If
|
|
NotifyPropertyChanged(NameOf(TipFeed))
|
|
' Se fresa e 0 non può lavorare di testa
|
|
If (Type And MCH_TF.MILL) <> 0 Then
|
|
If dValue > EPS_SMALL Then
|
|
Type = MCH_TY.MILL_STD
|
|
Else
|
|
Type = MCH_TY.MILL_NOTIP
|
|
End If
|
|
End If
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_IsModifiedLen As Boolean = False
|
|
Private m_Len As String
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the Len
|
|
''' </summary>
|
|
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(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetCurrToolParam(MCH_TP.LEN, DbLen)
|
|
StringToLen(value, dValue)
|
|
m_IsModifiedLen = Math.Abs(dValue - DbLen) > 5 * EPS_SMALL
|
|
If Not GetValidationError("Len") Or Not GetValidationError("MaxMat") Then
|
|
m_delErrorOnTool(True)
|
|
m_delIsEnabledBtns(False, False, True)
|
|
Else
|
|
m_delErrorOnTool(Not IsValid)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
End If
|
|
NotifyPropertyChanged(NameOf(Len))
|
|
' Se lama
|
|
If (Type And MCH_TF.SAWBLADE) <> 0 Then
|
|
Dim CurrTotLen As Double = 0
|
|
If Not IsNothing(TotLen) Then
|
|
StringToLen(TotLen, CurrTotLen)
|
|
' se len e totlen coincidono tipo piatto
|
|
If (CurrTotLen - dValue) > 10 * EPS_SMALL Then
|
|
Type = MCH_TY.SAW_STD
|
|
Else
|
|
Type = MCH_TY.SAW_FLAT
|
|
End If
|
|
End If
|
|
End If
|
|
If Not m_SuspendToolDrawUpdate Then
|
|
UpdateSceneToolDraw()
|
|
End If
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_IsModifiedTotLen As Boolean = False
|
|
Private m_TotLen As String
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the Total Len
|
|
''' </summary>
|
|
Public Property TotLen As String
|
|
Get
|
|
Return m_TotLen
|
|
End Get
|
|
Set(value As String)
|
|
If value <> m_TotLen Then
|
|
m_TotLen = value
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
Dim DbTotLen As Double = 0
|
|
EgtTdbGetCurrToolParam(MCH_TP.TOTLEN, DbTotLen)
|
|
Dim dValue As Double = 0
|
|
StringToLen(value, dValue)
|
|
m_IsModifiedTotLen = Math.Abs(dValue - DbTotLen) > 5 * EPS_SMALL
|
|
If Not GetValidationError("TotLen") Or Not GetValidationError("Len") Then
|
|
m_delErrorOnTool(True)
|
|
m_delIsEnabledBtns(False, False, True)
|
|
Else
|
|
m_delErrorOnTool(Not IsValid)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
End If
|
|
NotifyPropertyChanged(NameOf(TotLen))
|
|
' Se lama e len e totlen coincidono tipo piatto
|
|
If (Type And MCH_TF.SAWBLADE) <> 0 Then
|
|
If Not IsNothing(Len) Then
|
|
Dim CurrLen As Double = 0
|
|
StringToLen(Len, CurrLen)
|
|
If (dValue - CurrLen) > 10 * EPS_SMALL Then
|
|
Type = MCH_TY.SAW_STD
|
|
Else
|
|
Type = MCH_TY.SAW_FLAT
|
|
End If
|
|
End If
|
|
End If
|
|
If Not m_SuspendToolDrawUpdate Then
|
|
UpdateSceneToolDraw()
|
|
End If
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_IsModifiedDist As Boolean = False
|
|
Private m_Dist As String
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the Len
|
|
''' </summary>
|
|
Public Property Dist As String
|
|
Get
|
|
Return m_Dist
|
|
End Get
|
|
Set(value As String)
|
|
If value <> m_Dist Then
|
|
m_Dist = value
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
Dim DbDist As Double = 0
|
|
EgtTdbGetCurrToolParam(MCH_TP.DIST, DbDist)
|
|
Dim dValue As Double = 0
|
|
StringToLen(value, dValue)
|
|
If Not m_SuspendToolDrawUpdate Then UpdateSceneToolDraw()
|
|
If Not GetValidationError("Dist") Then
|
|
m_delErrorOnTool(True)
|
|
m_delIsEnabledBtns(False, False, True)
|
|
Else
|
|
m_IsModifiedLen = Math.Abs(dValue - DbDist) > 5 * EPS_SMALL
|
|
m_delErrorOnTool(Not IsValid)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
End If
|
|
NotifyPropertyChanged(NameOf(Dist))
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_IsModifiedMaxMat As Boolean = False
|
|
Private m_MaxMat As String
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the Max Material
|
|
''' </summary>
|
|
Public Property MaxMat As String
|
|
Get
|
|
Return m_MaxMat
|
|
End Get
|
|
Set(value As String)
|
|
If value <> m_MaxMat Then
|
|
m_MaxMat = value
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
Dim DbMaxMat As Double = 0
|
|
EgtTdbGetCurrToolParam(MCH_TP.MAXMAT, DbMaxMat)
|
|
Dim dValue As Double = 0
|
|
StringToLen(value, dValue)
|
|
If Not m_SuspendToolDrawUpdate Then UpdateSceneToolDraw()
|
|
If Not GetValidationError("MaxMat") Then
|
|
m_delErrorOnTool(True)
|
|
m_delIsEnabledBtns(False, False, True)
|
|
Else
|
|
m_IsModifiedMaxMat = Math.Abs(dValue - DbMaxMat) > 5 * EPS_SMALL
|
|
m_delErrorOnTool(Not IsValid)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
End If
|
|
NotifyPropertyChanged(NameOf(MaxMat))
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_IsModifiedLonOffset As Boolean = False
|
|
Private m_LonOffset As String
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the Lon Offset
|
|
''' </summary>
|
|
Public Property LonOffset As String
|
|
Get
|
|
Return m_LonOffset
|
|
End Get
|
|
Set(value As String)
|
|
If value <> m_LonOffset Then
|
|
m_LonOffset = value
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
Dim DbLonOffset As Double = 0
|
|
EgtTdbGetCurrToolParam(MCH_TP.LONOFFSET, DbLonOffset)
|
|
Dim dValue As Double = 0
|
|
If Not StringToLen(value, dValue) Then
|
|
m_delErrorOnTool(True)
|
|
m_delIsEnabledBtns(False, False, True)
|
|
Else
|
|
m_IsModifiedLonOffset = Math.Abs(dValue - DbLonOffset) > 5 * EPS_SMALL
|
|
m_delErrorOnTool(Not IsValid)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
End If
|
|
NotifyPropertyChanged(NameOf(LonOffset))
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_IsModifiedRadOffset As Boolean = False
|
|
Private m_RadOffset As String
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the Rad Offset
|
|
''' </summary>
|
|
Public Property RadOffset As String
|
|
Get
|
|
Return m_RadOffset
|
|
End Get
|
|
Set(value As String)
|
|
If value <> m_RadOffset Then
|
|
m_RadOffset = value
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
Dim DbRadOffset As Double = 0
|
|
EgtTdbGetCurrToolParam(MCH_TP.RADOFFSET, DbRadOffset)
|
|
Dim dValue As Double = 0
|
|
If Not StringToLen(value, dValue) Then
|
|
m_delErrorOnTool(True)
|
|
m_delIsEnabledBtns(False, False, True)
|
|
Else
|
|
m_IsModifiedRadOffset = Math.Abs(dValue - DbRadOffset) > 5 * EPS_SMALL
|
|
m_delErrorOnTool(Not IsValid)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
End If
|
|
NotifyPropertyChanged(NameOf(RadOffset))
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_IsModifiedStepPar As Boolean = False
|
|
Private m_StepPar As String
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the Step Par
|
|
''' </summary>
|
|
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
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetCurrToolValInNotes(MCH_TP.SYSNOTES, K_STEPPAR, DbStepPar)
|
|
StringToLen(value, dValue)
|
|
m_IsModifiedStepPar = Math.Abs(dValue - DbStepPar) > 5 * EPS_SMALL
|
|
If GetNonNumericTextBox(m_StepPar) Then
|
|
m_delErrorOnTool(True)
|
|
m_delIsEnabledBtns(False, False, True)
|
|
Else
|
|
m_delErrorOnTool(Not IsValid)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
End If
|
|
NotifyPropertyChanged(NameOf(StepPar))
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_IsModifiedSideStep As Boolean = False
|
|
Private m_SideStep As String
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the Side Step
|
|
''' </summary>
|
|
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
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetCurrToolValInNotes(MCH_TP.SYSNOTES, K_SIDESTEP, DbSideStep)
|
|
StringToLen(value, dValue)
|
|
m_IsModifiedSideStep = Math.Abs(dValue - DbSideStep) > 5 * EPS_SMALL
|
|
If GetNonNumericTextBox(m_SideStep) Then
|
|
m_delErrorOnTool(True)
|
|
m_delIsEnabledBtns(False, False, True)
|
|
Else
|
|
m_delErrorOnTool(Not IsValid)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
End If
|
|
NotifyPropertyChanged(NameOf(SideStep))
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_IsModifiedSpeed As Boolean = False
|
|
Private m_Speed As String
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the Speed
|
|
''' </summary>
|
|
Public Property Speed As String
|
|
Get
|
|
Return m_Speed
|
|
End Get
|
|
Set(value As String)
|
|
m_Speed = value
|
|
If Not value.Contains("-"c) Then
|
|
m_CW_IsChecked = True
|
|
Else
|
|
m_CCW_IsChecked = True
|
|
End If
|
|
' richiamo funzione che indica il verso di rotazione
|
|
'GetModifySpeed(m_Speed)
|
|
NotifyPropertyChanged(NameOf(CW_IsChecked))
|
|
NotifyPropertyChanged(NameOf(CCW_IsChecked))
|
|
End Set
|
|
End Property
|
|
|
|
' RadioButton per la rotazione positiva
|
|
Private m_CW_IsChecked As Boolean = False
|
|
Public Property CW_IsChecked As Boolean
|
|
Get
|
|
Return m_CW_IsChecked
|
|
End Get
|
|
Set(value As Boolean)
|
|
' metto il radiobutton ccw non selezionato
|
|
m_CCW_IsChecked = False
|
|
m_CW_IsChecked = value
|
|
' controllo se speed contiene il segno '-' se si elimina il il segno '-'
|
|
If m_CW_IsChecked Then
|
|
If m_Speed.Contains("-"c) Then
|
|
Dim m_SpeedTmp As String = m_Speed.Substring(1)
|
|
m_Speed = m_SpeedTmp
|
|
NotifyPropertyChanged(NameOf(Speed))
|
|
End If
|
|
Else
|
|
m_CCW_IsChecked = True
|
|
End If
|
|
' richiamo funzione che indica il verso di rotazione
|
|
GetModifySpeed(m_Speed)
|
|
NotifyPropertyChanged(NameOf(CW_IsChecked))
|
|
NotifyPropertyChanged(NameOf(CCW_IsChecked))
|
|
End Set
|
|
End Property
|
|
|
|
' RadioButton per la rotazione negativa
|
|
Private m_CCW_IsChecked As Boolean = False
|
|
Public Property CCW_IsChecked As Boolean
|
|
Get
|
|
Return m_CCW_IsChecked
|
|
End Get
|
|
Set(value As Boolean)
|
|
' metto il radiobutton cw non selezionato
|
|
m_CW_IsChecked = False
|
|
m_CCW_IsChecked = value
|
|
' controllo se speed non contiene il segno '-' se si aggiunge il il segno '-'
|
|
If m_CCW_IsChecked Then
|
|
If Not m_Speed.Contains("-"c) Then
|
|
Dim m_SpeedTmp As String = "-" & m_Speed
|
|
m_Speed = m_SpeedTmp
|
|
NotifyPropertyChanged(NameOf(Speed))
|
|
End If
|
|
Else
|
|
m_CW_IsChecked = True
|
|
End If
|
|
' richiamo funzione che indica il verso di rotazione
|
|
GetModifySpeed(m_Speed)
|
|
NotifyPropertyChanged(NameOf(CCW_IsChecked))
|
|
NotifyPropertyChanged(NameOf(CW_IsChecked))
|
|
End Set
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Metodo che controlla se la rotazione è stata modificata
|
|
''' </summary>
|
|
''' <param name="value">rotazione</param>
|
|
Private Sub GetModifySpeed(value As String)
|
|
Dim DbSpeed As Double = 0
|
|
Dim dValue As Double = 0
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetCurrToolParam(MCH_TP.SPEED, DbSpeed)
|
|
StringToDouble(value, dValue)
|
|
m_IsModifiedSpeed = Math.Abs(dValue - DbSpeed) > 10 * EPS_ANG_SMALL
|
|
If Not GetValidationError("Speed") Or GetNonNumericTextBox(m_Speed) Then
|
|
m_delErrorOnTool(True)
|
|
m_delIsEnabledBtns(False, False, True)
|
|
Else
|
|
m_delErrorOnTool(Not IsValid)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
End If
|
|
If Not m_SuspendToolDrawUpdate Then
|
|
UpdateSceneToolDraw()
|
|
End If
|
|
End Sub
|
|
|
|
Private m_IsModifiedSideAng As Boolean = False
|
|
Private m_SideAng As String
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the Side Angle
|
|
''' </summary>
|
|
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(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetCurrToolParam(MCH_TP.SIDEANG, DbSideAng)
|
|
StringToDouble(value, dValue)
|
|
m_IsModifiedSideAng = Math.Abs(dValue - DbSideAng) > 10 * EPS_ANG_SMALL
|
|
If GetNonNumericTextBox(m_SideAng) Then
|
|
m_delErrorOnTool(True)
|
|
m_delIsEnabledBtns(False, False, True)
|
|
Else
|
|
m_delErrorOnTool(Not IsValid)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
End If
|
|
If Not m_SuspendToolDrawUpdate Then
|
|
UpdateSceneToolDraw()
|
|
End If
|
|
NotifyPropertyChanged(NameOf(SideAng))
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_IsModifiedMaxSpeed As Boolean = False
|
|
Private m_MaxSpeed As String
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the Max Speed
|
|
''' </summary>
|
|
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(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetCurrToolParam(MCH_TP.MAXSPEED, DbMaxSpeed)
|
|
StringToLen(value, dValue)
|
|
m_IsModifiedMaxSpeed = Math.Abs(dValue - DbMaxSpeed) > 10 * EPS_ANG_SMALL
|
|
If Not GetValidationError("Speed") Or GetNonNumericTextBox(m_MaxSpeed) Then
|
|
m_delErrorOnTool(True)
|
|
m_delIsEnabledBtns(False, False, True)
|
|
Else
|
|
m_delErrorOnTool(Not IsValid)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
End If
|
|
NotifyPropertyChanged(NameOf(MaxSpeed))
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_IsModifiedThick As Boolean = False
|
|
Private m_Thick As String
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the Thick
|
|
''' </summary>
|
|
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(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetCurrToolParam(MCH_TP.THICK, DbThick)
|
|
StringToLen(value, dValue)
|
|
m_IsModifiedThick = Math.Abs(dValue - DbThick) > 5 * EPS_SMALL
|
|
If Not m_SuspendToolDrawUpdate Then
|
|
UpdateSceneToolDraw()
|
|
End If
|
|
If Not GetValidationError("Thick") Or Not GetValidationError("CornRad") Or GetNonNumericTextBox(m_Thick) Then
|
|
m_delErrorOnTool(True)
|
|
m_delIsEnabledBtns(False, False, True)
|
|
Else
|
|
m_delErrorOnTool(Not IsValid)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
End If
|
|
NotifyPropertyChanged(NameOf(Thick))
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_IsModifiedStemDiam As Boolean = False
|
|
Private m_StemDiam As String
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the StemDiam
|
|
''' </summary>
|
|
Public Property StemDiam As String
|
|
Get
|
|
Return m_StemDiam
|
|
End Get
|
|
Set(value As String)
|
|
If value <> m_StemDiam Then
|
|
m_StemDiam = value
|
|
Dim DbStemDiam As Double = 0
|
|
Dim dValue As Double = 0
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetCurrToolParam(MCH_TP.STEMDIAM, DbStemDiam)
|
|
StringToLen(value, dValue)
|
|
m_IsModifiedStemDiam = Math.Abs(dValue - DbStemDiam) > 5 * EPS_SMALL
|
|
If Not m_SuspendToolDrawUpdate Then
|
|
UpdateSceneToolDraw()
|
|
End If
|
|
If Not GetValidationError("StemDiam") Or GetNonNumericTextBox(m_StemDiam) Then
|
|
m_delErrorOnTool(True)
|
|
m_delIsEnabledBtns(False, False, True)
|
|
Else
|
|
m_delErrorOnTool(Not IsValid)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
End If
|
|
NotifyPropertyChanged(NameOf(StemDiam))
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_IsModifiedMaxAbsorption As Boolean = False
|
|
Private m_MaxAbsorption As String
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the Max Absorption
|
|
''' </summary>
|
|
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(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetCurrToolParam(MCH_TP.MAXABSORPTION, DbMaxAbsorption)
|
|
StringToLen(value, dValue)
|
|
m_IsModifiedMaxAbsorption = Math.Abs(dValue - DbMaxAbsorption) > 5 * EPS_SMALL
|
|
If GetNonNumericTextBox(m_MaxAbsorption) Then
|
|
m_delErrorOnTool(True)
|
|
m_delIsEnabledBtns(False, False, True)
|
|
Else
|
|
m_delErrorOnTool(Not IsValid)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
End If
|
|
NotifyPropertyChanged(NameOf(MaxAbsorption))
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_IsModifiedMinFeed As Boolean = False
|
|
Private m_MinFeed As String
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the Min Feed
|
|
''' </summary>
|
|
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(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetCurrToolParam(MCH_TP.MINFEED, DbMinFeed)
|
|
StringToLen(value, dValue)
|
|
m_IsModifiedMinFeed = Math.Abs(dValue - DbMinFeed) > 5 * EPS_SMALL
|
|
If GetNonNumericTextBox(m_MinFeed) Then
|
|
m_delErrorOnTool(True)
|
|
m_delIsEnabledBtns(False, False, True)
|
|
Else
|
|
m_delErrorOnTool(Not IsValid)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
End If
|
|
NotifyPropertyChanged(NameOf(MinFeed))
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_IsModifiedDraw As Boolean = False
|
|
Friend m_Draw As String
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the Draw
|
|
''' </summary>
|
|
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(ToolDbWindowVM.m_ProjectSceneContext)
|
|
m_Draw = value
|
|
Dim DbDraw As String = String.Empty
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetCurrToolParam(MCH_TP.DRAW, DbDraw)
|
|
m_IsModifiedDraw = value <> DbDraw
|
|
NotifyPropertyChanged(NameOf(Draw))
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Friend Shared m_OrigHeadList As New List(Of Object)
|
|
Public ReadOnly Property OrigHeadList As List(Of Object)
|
|
Get
|
|
Return m_OrigHeadList
|
|
End Get
|
|
End Property
|
|
|
|
Friend m_HeadList As New ObservableCollection(Of Object)
|
|
Public ReadOnly Property HeadList As ObservableCollection(Of Object)
|
|
Get
|
|
Return m_HeadList
|
|
End Get
|
|
End Property
|
|
|
|
Private m_IsModifiedSelectedHead As Boolean = False
|
|
Private m_SelectedHead As Integer = -1
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the Head
|
|
''' </summary>
|
|
Public Property SelectedHead As Integer
|
|
Get
|
|
Return m_SelectedHead
|
|
End Get
|
|
Set(value As Integer)
|
|
If value <> m_SelectedHead Then
|
|
m_SelectedHead = value
|
|
If m_SelectedHead <> -1 Then
|
|
Dim DbHead As String = String.Empty
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetCurrToolParam(MCH_TP.HEAD, DbHead)
|
|
m_IsModifiedSelectedHead = ((value < 0 Or value >= m_HeadList.Count) OrElse m_HeadList(value).HName <> DbHead)
|
|
' se modificato disattivo l'utensile
|
|
If m_IsModifiedSelectedHead And Not m_SuspendToolDrawUpdate Then EgtTdbSetCurrToolParam(MCH_TP.ACTIVE, False)
|
|
If Not m_SuspendToolDrawUpdate Then
|
|
UpdateSceneToolDraw()
|
|
End If
|
|
If Not GetValidationError("SelectedHead") Then
|
|
m_delErrorOnTool(True)
|
|
m_delIsEnabledBtns(False, False, True)
|
|
Else
|
|
m_delErrorOnTool(Not IsValid)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
End If
|
|
NotifyPropertyChanged(NameOf(SelectedHead))
|
|
' verifico se le uscite sono cambiate
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
Dim nExitNum As Integer = EgtGetHeadExitCount(m_HeadList(m_SelectedHead).HName)
|
|
' ricalcolo la lista uscite
|
|
Dim nErr As Integer = 0
|
|
Dim bIsValid As Boolean = False
|
|
|
|
If nExitNum > m_ExitList.Count Then
|
|
For ExitIndex = m_ExitList.Count To nExitNum - 1
|
|
EgtLuaSetGlobStringVar("STU.HEAD", CStr(m_HeadList(m_SelectedHead).HName))
|
|
EgtLuaSetGlobIntVar("STU.EXIT", ExitIndex + 1)
|
|
EgtLuaSetGlobIntVar("STU.TYPE", m_Type)
|
|
If EgtLuaExistsFunction("STU.IsValidExit") AndAlso EgtLuaCallFunction("STU.IsValidExit") Then
|
|
'Leggo variabili
|
|
EgtLuaGetGlobBoolVar("STU.ISVALID", bIsValid)
|
|
If Not EgtLuaGetGlobIntVar("STU.ERR", nErr) Then nErr = 999
|
|
If nErr = 0 AndAlso bIsValid Then
|
|
m_ExitList.Add(New IdNameStruct(ExitIndex + 1, (ExitIndex + 1).ToString))
|
|
End If
|
|
Else
|
|
m_ExitList.Add(New IdNameStruct(ExitIndex + 1, (ExitIndex + 1).ToString))
|
|
End If
|
|
Next
|
|
ElseIf nExitNum < m_ExitList.Count Then
|
|
For Index = m_ExitList.Count - 1 To nExitNum Step -1
|
|
m_ExitList.RemoveAt(Index)
|
|
Next
|
|
End If
|
|
' verifico se l'uscita selezionata è nella lista
|
|
If Not m_ExitList.Count > m_SelectedExit AndAlso m_ExitList.Count > 0 Then
|
|
SelectedExit = 0 ' m_ExitList(0)
|
|
End If
|
|
' ricalcolo la lista di posizioni valide
|
|
nErr = 0
|
|
bIsValid = False
|
|
Dim TcPosIndex As Integer = 0
|
|
For OrigTcPosIndex = 0 To m_OrigTcPosList.Count - 1
|
|
Dim CurrTcPos As String = m_OrigTcPosList(OrigTcPosIndex)
|
|
bIsValid = False
|
|
EgtLuaSetGlobStringVar("STU.TCPOS", CurrTcPos)
|
|
EgtLuaSetGlobStringVar("STU.HEAD", CStr(m_HeadList(m_SelectedHead).HName))
|
|
EgtLuaSetGlobIntVar("STU.TYPE", m_Type)
|
|
If Not EgtLuaCallFunction("STU.IsValidTcPosFromHead") Then nErr = 999
|
|
' Leggo variabili
|
|
EgtLuaGetGlobBoolVar("STU.ISVALID", bIsValid)
|
|
If Not EgtLuaGetGlobIntVar("STU.ERR", nErr) Then nErr = 999
|
|
If nErr = 0 AndAlso bIsValid Then
|
|
If m_TcPosList.Count - 1 >= TcPosIndex AndAlso String.Compare(m_TcPosList(TcPosIndex).Name, CurrTcPos) = 0 Then
|
|
TcPosIndex += 1
|
|
Else
|
|
m_TcPosList.Insert(TcPosIndex, New IdNameStruct(TcPosIndex, CurrTcPos))
|
|
TcPosIndex += 1
|
|
End If
|
|
Else
|
|
If m_TcPosList.Count - 1 >= TcPosIndex AndAlso String.Compare(m_TcPosList(TcPosIndex).Name, CurrTcPos) = 0 Then
|
|
m_TcPosList.RemoveAt(TcPosIndex)
|
|
End If
|
|
End If
|
|
Next
|
|
' quando la lista di posizioni valide è ricaricata non va selezionato nessun TcPos di default
|
|
SelectedTcPos = -1
|
|
NotifyPropertyChanged(NameOf(ExitList))
|
|
NotifyPropertyChanged(NameOf(TcPosList))
|
|
End If
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
' Variabile che indica se c'è un errore nel nome dell'utensile (ad esempio nome già utilizzato)
|
|
Dim nErrorToolName As Integer = 0
|
|
Friend m_IsModifiedName As Boolean = False
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the Name
|
|
''' </summary>
|
|
Public Property NamePar As String
|
|
Get
|
|
Return m_Name
|
|
End Get
|
|
Set(value As String)
|
|
If value = String.Empty Or value <> m_Name Then
|
|
nErrorToolName = 0
|
|
m_Name = value
|
|
' Verifico se il nome è diverso da quello nel database e imposto l'apposito flag
|
|
Dim DbName As String = String.Empty
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetCurrToolParam(MCH_TP.NAME, DbName)
|
|
m_IsModifiedName = If(value <> DbName, True, False)
|
|
' Verifico che il nuovo nome sia valido
|
|
Dim sTempName As String = value
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetToolNewName(sTempName)
|
|
If m_IsModifiedName And Not value = sTempName Then
|
|
nErrorToolName = 1
|
|
End If
|
|
If Not GetValidationError("NamePar") Then
|
|
m_delErrorOnTool(True)
|
|
m_delIsEnabledBtns(False, False, True)
|
|
Else
|
|
m_delErrorOnTool(Not IsValid)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
End If
|
|
NotifyPropertyChanged(NameOf(NamePar))
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_IsModifiedUserNotes As Boolean = False
|
|
Private m_UserNotes As String
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the User Notes
|
|
''' </summary>
|
|
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
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetCurrToolParam(MCH_TP.USERNOTES, DbUserNotes)
|
|
m_IsModifiedUserNotes = If(value <> DbUserNotes, True, False)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
' Aggiorno il disegno
|
|
If Not m_SuspendToolDrawUpdate AndAlso value.Equals(DbUserNotes) Then UpdateSceneToolDraw()
|
|
NotifyPropertyChanged(NameOf(UserNotes))
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Friend Shared m_OrigTcPosList As New List(Of String)
|
|
Public ReadOnly Property OrigTcPosList As List(Of String)
|
|
Get
|
|
Return m_OrigTcPosList
|
|
End Get
|
|
End Property
|
|
|
|
Friend m_TcPosList As New ObservableCollection(Of Object)
|
|
Public ReadOnly Property TcPosList As ObservableCollection(Of Object)
|
|
Get
|
|
Return m_TcPosList
|
|
End Get
|
|
End Property
|
|
|
|
Private m_IsModifiedSelectedTcPos As Boolean = False
|
|
Private m_SelectedTcPos As Integer = -1
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the Tc Pos
|
|
''' </summary>
|
|
Public Property SelectedTcPos As Integer
|
|
Get
|
|
Return m_SelectedTcPos
|
|
End Get
|
|
Set(value As Integer)
|
|
If value <> m_SelectedTcPos Then
|
|
If Not IsNothing(TcPosList) Then
|
|
m_SelectedTcPos = value
|
|
Dim sDbTcPos As String = String.Empty
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetCurrToolParam(MCH_TP.TCPOS, sDbTcPos)
|
|
' DbTcPos = IdNameStruct.IndFromId(DbTcPos, TcPosList)
|
|
m_IsModifiedSelectedTcPos = ((value < 0 Or value >= m_TcPosList.Count) OrElse m_TcPosList(value).Name <> sDbTcPos)
|
|
' se modificato disattivo l'utensile
|
|
If m_IsModifiedSelectedTcPos And Not m_SuspendToolDrawUpdate Then
|
|
EgtTdbSetCurrToolParam(MCH_TP.ACTIVE, False)
|
|
NotifyPropertyChanged("Active")
|
|
End If
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
NotifyPropertyChanged(NameOf(SelectedTcPos))
|
|
End If
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_Uuid As String
|
|
''' <summary>
|
|
''' Property that read and write to the tool's database the Uuid
|
|
''' </summary>
|
|
Public ReadOnly Property Uuid As String
|
|
Get
|
|
Return m_Uuid
|
|
End Get
|
|
End Property
|
|
|
|
Public Property Active As Boolean
|
|
Get
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
' salvo utensile corrente precedente
|
|
Dim PreviousCurrentTool As String = String.Empty
|
|
EgtTdbGetCurrToolParam(MCH_TP.NAME, PreviousCurrentTool)
|
|
Dim bChangeTool As Boolean = PreviousCurrentTool <> Me.Name
|
|
If bChangeTool Then EgtTdbSetCurrTool(Me.Name)
|
|
Dim bActive As Boolean = False
|
|
EgtTdbGetCurrToolParam(MCH_TP.ACTIVE, bActive)
|
|
' ripristino utensile corrente
|
|
If bChangeTool Then EgtTdbSetCurrTool(PreviousCurrentTool)
|
|
Return bActive
|
|
End Get
|
|
Set(value As Boolean)
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
' verifico se l'utensile selezionato è modificato
|
|
Dim SelTool As ToolTreeViewItem = m_delGetSelectedTool()
|
|
If Not IsNothing(SelTool) AndAlso SelTool.IsModified Then
|
|
' chiedo di salvare
|
|
If MessageBox.Show(String.Format(EgtMsg(6144), SelTool.Name), EgtMsg(6143), MessageBoxButton.YesNo, MessageBoxImage.Question) <> MessageBoxResult.Yes Then
|
|
'If EgtMessageBoxV.Show(Application.Current.MainWindow, String.Format(EgtMsg(6144), SelTool.Name), EgtMsg(6143), MessageBoxButton.YesNo, MessageBoxImage.Question) <> MessageBoxResult.Yes Then ' Utensile modificato! Tutti gli utensili devono essere salvati prima di cambiare le attivazioni. Salvare l'utensile {0}? Salvataggio utensile
|
|
Return
|
|
Else
|
|
SelTool.WriteToolParam()
|
|
SelTool.m_Name = SelTool.m_Name.Trim()
|
|
SelTool.WriteToolName()
|
|
EgtTdbSaveCurrTool()
|
|
SelTool.NewTool = False
|
|
SelTool.IsModifiedReset()
|
|
m_delIsEnabledBtns(SelTool.IsValid And Not SelTool.IsModified, SelTool.IsValid, True)
|
|
End If
|
|
End If
|
|
' salvo utensile corrente precedente
|
|
Dim PreviousCurrentTool As String = String.Empty
|
|
EgtTdbGetCurrToolParam(MCH_TP.NAME, PreviousCurrentTool)
|
|
' se attivato, verifico definizione TcPos e che non sia in conflitto con altri utensili
|
|
If value Then
|
|
' verifico che la posizione sia definita
|
|
EgtTdbSetCurrTool(Me.Name)
|
|
Dim sTcPos As String = String.Empty
|
|
EgtTdbGetCurrToolParam(MCH_TP.TCPOS, sTcPos)
|
|
If String.IsNullOrWhiteSpace(sTcPos) Then
|
|
' Posizione non definita!
|
|
MessageBox.Show(EgtMsg(6146), EgtMsg(6126), MessageBoxButton.OK, MessageBoxImage.Exclamation)
|
|
'EgtMessageBoxV.Show(Application.Current.MainWindow, EgtMsg(6146), EgtMsg(6126), MessageBoxButton.OK, MessageBoxImage.Exclamation) ' Posizione non definita! - Errore
|
|
' ripristino utensile corrente
|
|
EgtTdbSetCurrTool(PreviousCurrentTool)
|
|
Return
|
|
End If
|
|
' verifico se c'è un utensile con la stessa posizione
|
|
If Not VerifyAllPositions() Then
|
|
' Posizione già occupata!
|
|
MessageBox.Show(EgtMsg(6145), EgtMsg(6126), MessageBoxButton.OK, MessageBoxImage.Exclamation)
|
|
'EgtMessageBoxV.Show(Application.Current.MainWindow, EgtMsg(6145), EgtMsg(6126), MessageBoxButton.OK, MessageBoxImage.Exclamation) ' Posizione già occupata! - Errore
|
|
' ripristino utensile corrente
|
|
EgtTdbSetCurrTool(PreviousCurrentTool)
|
|
Return
|
|
End If
|
|
End If
|
|
' lo scrivo nel Db
|
|
EgtTdbSetCurrTool(Me.Name)
|
|
EgtTdbSetCurrToolParam(MCH_TP.ACTIVE, value)
|
|
EgtTdbSaveCurrTool()
|
|
NotifyPropertyChanged(NameOf(Active))
|
|
' ripristino utensile corrente
|
|
EgtTdbSetCurrTool(PreviousCurrentTool)
|
|
End Set
|
|
End Property
|
|
|
|
Private m_SystemNotes As String
|
|
''' <summary>
|
|
''' Property that read and write to the Tool's database the System Notes
|
|
''' </summary>
|
|
Public Property SystemNotes As String
|
|
Get
|
|
Return m_SystemNotes
|
|
End Get
|
|
Set(value As String)
|
|
m_SystemNotes = value
|
|
NotifyPropertyChanged(NameOf(SystemNotes))
|
|
End Set
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Property that read the System Notes visibility
|
|
''' </summary>
|
|
Public ReadOnly Property SysNotes_Visibility As Visibility
|
|
Get
|
|
If ToolDbWindowVM.m_bVisibleSysNotes Then
|
|
Return Visibility.Visible
|
|
Else
|
|
Return Visibility.Collapsed
|
|
End If
|
|
End Get
|
|
End Property
|
|
|
|
#End Region ' Tool Property
|
|
|
|
#Region "NOTE PROPERTY"
|
|
|
|
''' <summary>
|
|
''' Lista delle Note Utente
|
|
''' </summary>
|
|
Private m_NotesList As New ObservableCollection(Of NoteListBoxItem)
|
|
Public Property NotesList As ObservableCollection(Of NoteListBoxItem)
|
|
Get
|
|
Return m_NotesList
|
|
End Get
|
|
Set(value As ObservableCollection(Of NoteListBoxItem))
|
|
m_NotesList = value
|
|
NotifyPropertyChanged(NameOf(NotesList))
|
|
End Set
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Rende visibile o non visibile la combobox
|
|
''' </summary>
|
|
Private m_bComboAddVisibility As Visibility = Visibility.Collapsed
|
|
Public ReadOnly Property ComboAddVisibility As Visibility
|
|
Get
|
|
Return m_bComboAddVisibility
|
|
End Get
|
|
End Property
|
|
Friend Sub SetComboAddVisibility(value As Visibility)
|
|
m_bComboAddVisibility = value
|
|
NotifyPropertyChanged(NameOf(ComboAddVisibility))
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Rende visibile o non visibile la groupbox note
|
|
''' </summary>
|
|
Private m_bToolNoteVisibility As Visibility = Visibility.Collapsed
|
|
Public ReadOnly Property ToolNoteVisibility As Visibility
|
|
Get
|
|
Return m_bToolNoteVisibility
|
|
End Get
|
|
End Property
|
|
Friend Sub SetToolNoteVisibility(value As Visibility)
|
|
m_bToolNoteVisibility = value
|
|
NotifyPropertyChanged(NameOf(ToolNoteVisibility))
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Lista visualizzata nella combobox
|
|
''' </summary>
|
|
Private m_NotesListCombo As New ObservableCollection(Of NoteListBoxItem)
|
|
Public Property NotesListCombo As ObservableCollection(Of NoteListBoxItem)
|
|
Get
|
|
Return m_NotesListCombo
|
|
End Get
|
|
Set(value As ObservableCollection(Of NoteListBoxItem))
|
|
m_NotesListCombo = value
|
|
NotifyPropertyChanged(NameOf(NotesListCombo))
|
|
End Set
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Valore selezionato dalla combobox
|
|
''' </summary>
|
|
Private m_SelNoteItemCombo As NoteListBoxItem
|
|
Public Property SelNoteItemCombo As NoteListBoxItem
|
|
Get
|
|
Return m_SelNoteItemCombo
|
|
End Get
|
|
Set(value As NoteListBoxItem)
|
|
m_SelNoteItemCombo = value
|
|
' Recupero Tool selezionato
|
|
Dim SelTool As ToolTreeViewItem = m_delGetSelectedTool()
|
|
SetToolNoteVisibility(Visibility.Visible)
|
|
If Not IsNothing(m_SelNoteItemCombo) Then
|
|
' Controllo per la visualizzazione di una textbox o checkbox
|
|
If m_SelNoteItemCombo.Type.Equals("d") OrElse m_SelNoteItemCombo.Type.Equals("l") OrElse m_SelNoteItemCombo.Type.Equals("s") OrElse
|
|
m_SelNoteItemCombo.Type.Equals("dr") OrElse m_SelNoteItemCombo.Type.Equals("lr") OrElse m_SelNoteItemCombo.Type.Equals("sr") Then
|
|
m_SelNoteItemCombo.SelTypeValue = 0 ' Seleziona la TextBox
|
|
ElseIf m_SelNoteItemCombo.Type.Equals("th") OrElse m_SelNoteItemCombo.Type.Equals("tl") Then
|
|
m_SelNoteItemCombo.SelTypeValue = 2 ' Seleziona la ComboBox
|
|
Else
|
|
m_SelNoteItemCombo.SelTypeValue = 1 ' Seleziona la CheckBox
|
|
' Trasformo il valore della checkbox da stringa a booleano
|
|
m_SelNoteItemCombo.Value = If(m_SelNoteItemCombo.Value = "1", "True", "False")
|
|
Boolean.Parse(m_SelNoteItemCombo.Value)
|
|
End If
|
|
' Aggiunto alla lista Note il valore selezionato nella combobox
|
|
For Index As Integer = 0 To m_NotesListCombo.Count - 1
|
|
' Se il valore selezionato dalla combobox e' diverso da quello presente nella lista lo aggiungo
|
|
If m_NotesList.Count <= 0 OrElse m_NotesList(Index).Description <> m_SelNoteItemCombo.Description Then
|
|
m_NotesList.Add(m_SelNoteItemCombo)
|
|
' Aggiorno il disegno
|
|
If Not m_SuspendToolDrawUpdate AndAlso m_SelNoteItemCombo.Type.Equals("dr") OrElse
|
|
m_SelNoteItemCombo.Type.Equals("lr") OrElse
|
|
m_SelNoteItemCombo.Type.Equals("sr") OrElse
|
|
m_SelNoteItemCombo.Type.Equals("br") OrElse
|
|
m_SelNoteItemCombo.Type.Equals("tl") OrElse
|
|
m_SelNoteItemCombo.Type.Equals("th") Then SelTool.UpdateSceneToolDraw()
|
|
|
|
' Nascondo la combobox
|
|
SetComboAddVisibility(Visibility.Collapsed)
|
|
' Riabilito pulsante che mostra la combobox
|
|
SetShowNoteListCombo_IsEnable(True)
|
|
End If
|
|
Exit For
|
|
Next
|
|
End If
|
|
' Rimuovo dalla lista presente nella combobox il valore selezionato
|
|
m_NotesListCombo.Remove(m_SelNoteItemCombo)
|
|
' Rimuovo selezionato
|
|
m_SelNoteItemCombo = Nothing
|
|
' Disabilito pulsante che mostra la combobox
|
|
If m_NotesListCombo.Count <= 0 Then SetShowNoteListCombo_IsEnable(False)
|
|
|
|
NotifyPropertyChanged(NameOf(NotesList))
|
|
NotifyPropertyChanged(NameOf(NotesListCombo))
|
|
NotifyPropertyChanged(NameOf(ComboAddVisibility))
|
|
NotifyPropertyChanged(NameOf(ToolNoteVisibility))
|
|
NotifyPropertyChanged(NameOf(ShowNoteListCombo_IsEnable))
|
|
End Set
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Rende attivo o disattivo il pulsante per visualizzare la combobox
|
|
''' </summary>
|
|
Private m_ShowNoteListCombo_IsEnable As Boolean = False
|
|
Public ReadOnly Property ShowNoteListCombo_IsEnable As Boolean
|
|
Get
|
|
Return m_ShowNoteListCombo_IsEnable
|
|
End Get
|
|
End Property
|
|
Friend Sub SetShowNoteListCombo_IsEnable(value As Boolean)
|
|
m_ShowNoteListCombo_IsEnable = value
|
|
NotifyPropertyChanged(NameOf(ShowNoteListCombo_IsEnable))
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Gestione visibilita' per pulsante visualizzazione combobox
|
|
''' </summary>
|
|
Private m_ShowNoteListCombo_Visibility As Visibility = Visibility.Collapsed
|
|
Public ReadOnly Property ShowNoteListCombo_Visibility As Visibility
|
|
Get
|
|
Return m_ShowNoteListCombo_Visibility
|
|
End Get
|
|
End Property
|
|
Friend Sub SetShowNoteListCombo_Visibility(value As Visibility)
|
|
m_ShowNoteListCombo_Visibility = value
|
|
NotifyPropertyChanged(NameOf(ShowNoteListCombo_Visibility))
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Lista THolders
|
|
''' </summary>
|
|
Private m_THolders As New ObservableCollection(Of String)
|
|
Public Property THolders As ObservableCollection(Of String)
|
|
Get
|
|
Return m_THolders
|
|
End Get
|
|
Set(value As ObservableCollection(Of String))
|
|
m_THolders = value
|
|
NotifyPropertyChanged(NameOf(THolders))
|
|
End Set
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Utensile Selezionato
|
|
''' </summary>
|
|
Private m_ToolItem As FamilyToolTreeViewItem
|
|
Private Property ToolItem As FamilyToolTreeViewItem
|
|
Get
|
|
Return m_ToolItem
|
|
End Get
|
|
Set(value As FamilyToolTreeViewItem)
|
|
m_ToolItem = value
|
|
NotifyPropertyChanged(NameOf(ToolItem))
|
|
End Set
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Lista Utensili
|
|
''' </summary>
|
|
Private m_ToolItemNameList As New ObservableCollection(Of String)
|
|
Public Property ToolItemNameList As ObservableCollection(Of String)
|
|
Get
|
|
Return m_ToolItemNameList
|
|
End Get
|
|
Set(value As ObservableCollection(Of String))
|
|
m_ToolItemNameList = value
|
|
NotifyPropertyChanged(NameOf(ToolItemNameList))
|
|
End Set
|
|
End Property
|
|
|
|
|
|
' Comandi
|
|
Private m_cmdShowNoteListCombo As ICommand
|
|
|
|
#End Region ' Note Property
|
|
|
|
#Region "Messages"
|
|
|
|
'Definizione dei messaggi della pagina
|
|
Public ReadOnly Property CorrTxBl As String
|
|
Get
|
|
Return EgtMsg(6051) ' Correttore
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property ExitParTxBl As String
|
|
Get
|
|
Return EgtMsg(6052) ' Uscita
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property TypeTxBl As String
|
|
Get
|
|
Return EgtMsg(6053) ' Tipo
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property CoolantTxBl As String
|
|
Get
|
|
Return EgtMsg(6054) ' Refrigerante
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property CornRadTxBl As String
|
|
Get
|
|
Return EgtMsg(6055) ' Raggio Corner
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property DiamTxBl As String
|
|
Get
|
|
Return EgtMsg(6056) ' Diametro
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property TotDiamTxBl As String
|
|
Get
|
|
Return EgtMsg(6057) ' Diametro Totale
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property FeedTxBl As String
|
|
Get
|
|
Return EgtMsg(6058) ' Avanzamento
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property EndFeedTxBl As String
|
|
Get
|
|
Return EgtMsg(6059) ' Avanzamento Finale
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property StartFeedTxBl As String
|
|
Get
|
|
Return EgtMsg(6060) ' Avanzamento Iniziale
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property LenTxBl As String
|
|
Get
|
|
Return EgtMsg(6062) ' Lunghezza
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property TotLenTxBl As String
|
|
Get
|
|
Return EgtMsg(6063) ' Lunghezza Totale
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property DistTxBl As String
|
|
Get
|
|
Return EgtMsg(6079) ' Distanza
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property MaxMatTxBl As String
|
|
Get
|
|
If ToolDbWindowVM.m_MatType = MaterialType.BEAM And (Type And MCH_TF.MILL) <> 0 Then
|
|
Return EgtMsg(31080) ' Tagliente
|
|
Else
|
|
Return EgtMsg(6064) ' Massimo materiale
|
|
End If
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property LonOffsetTxBl As String
|
|
Get
|
|
Return EgtMsg(6065) ' Offset Longitudinale
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property RadOffsetTxBl As String
|
|
Get
|
|
Return EgtMsg(6066) ' Offset Radiale
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property SpeedTxBl As String
|
|
Get
|
|
Return EgtMsg(6067) ' Rotazione
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property SideAngTxBl As String
|
|
Get
|
|
Return EgtMsg(6068) ' Angolo di Lato
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property MaxSpeedTxBl As String
|
|
Get
|
|
Return EgtMsg(6069) ' Rotazione Massima
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property ThickTxBl As String
|
|
Get
|
|
Return EgtMsg(6070) ' Spessore
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property StemDiamTxBl As String
|
|
Get
|
|
Return EgtMsg(6081) ' Diametro del Gambo
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property MaxAbsorptionTxBl As String
|
|
Get
|
|
Return EgtMsg(6071) ' Assorbimento Massimo
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property MinFeedTxBl As String
|
|
Get
|
|
Return EgtMsg(6072) ' Avanzamento Minimo
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property DrawTxBl As String
|
|
Get
|
|
Return EgtMsg(6073) ' Disegno
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property HeadTxBl As String
|
|
Get
|
|
Return EgtMsg(6074) ' Testa
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property NameParTxBl As String
|
|
Get
|
|
Return EgtMsg(6075) ' Nome
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property UserNotesTxBl As String
|
|
Get
|
|
Return EgtMsg(6076) ' Note
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property TcPosTxBl As String
|
|
Get
|
|
Return EgtMsg(6077) ' Posiz. Cambio Utensile
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property InvertTxBl As String
|
|
Get
|
|
Return EgtMsg(31251) ' Inverti
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property LeaveTabTxBl As String
|
|
Get
|
|
Return EgtMsg(31252) ' Tab
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property WorkSideTxBl As String
|
|
Get
|
|
Return EgtMsg(31254) ' Lato di lavoro
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property HeadSideTxBl As String
|
|
Get
|
|
Return EgtMsg(31255) ' Lato della testa
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property LeadInTypeTxBl As String
|
|
Get
|
|
Return EgtMsg(31256) ' Attacco
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property ExtLinkTypeTxBl As String
|
|
Get
|
|
Return EgtMsg(31257) ' Collegamento
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property LeadOutTypeTxBl As String
|
|
Get
|
|
Return EgtMsg(31258) ' Uscita
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property CurveUseTxBl As String
|
|
Get
|
|
Return EgtMsg(31259) ' Uso curve
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property StepTypeTxBl As String
|
|
Get
|
|
Return EgtMsg(31260) ' Tipo di Step
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property LeadLinkTypeTxBl As String
|
|
Get
|
|
If ToolDbWindowVM.m_MatType = MaterialType.STONE Then
|
|
Return EgtMsg(90770) ' Collegamento
|
|
Else
|
|
Return EgtMsg(31262) ' Tipo approccio
|
|
End If
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property InvertToolDirTxBl As String
|
|
Get
|
|
Return EgtMsg(31351) ' Inverti direz. utensile
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property FaceUseTypeTxBl As String
|
|
Get
|
|
Return EgtMsg(31352) ' Lavorazione faccia
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property InitAngsTxBl As String
|
|
Get
|
|
Return EgtMsg(31364) ' Angoli suggeriti
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property BlockedAxisTxBl As String
|
|
Get
|
|
Return EgtMsg(31365) ' Asse bloccato
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property SolChoiceTypeTxBl As String
|
|
Get
|
|
Return EgtMsg(31304) ' SCC
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property OffSrTxBl As String
|
|
Get
|
|
If ToolDbWindowVM.m_MatType = MaterialType.STONE Then
|
|
Return EgtMsg(90737) ' Radiale
|
|
Else
|
|
Return EgtMsg(31268) ' Offset radiale
|
|
End If
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property OffSlTxBl As String
|
|
Get
|
|
If ToolDbWindowVM.m_MatType = MaterialType.STONE Then
|
|
Return EgtMsg(90736) ' Longitudinale
|
|
Else
|
|
Return EgtMsg(31269) ' Offset longitudinale
|
|
End If
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property SideAngleTxBl As String
|
|
Get
|
|
If ToolDbWindowVM.m_MatType = MaterialType.STONE And m_Type = MCH_MY.SAWING Then
|
|
Return EgtMsg(90763) ' Angolo di sbandamento
|
|
Else
|
|
Return EgtMsg(31271) ' Angolo di fianco
|
|
End If
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property ApproxTxBl As String
|
|
Get
|
|
Return EgtMsg(31272) ' Approssimazione
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property StartPosTxBl As String
|
|
Get
|
|
If ToolDbWindowVM.m_MatType = MaterialType.STONE Then
|
|
Return EgtMsg(90768) ' Posizione inizio
|
|
Else
|
|
Return EgtMsg(31273) ' Dist. di sicurezza
|
|
End If
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property StartSlowLenTxBl As String
|
|
Get
|
|
If ToolDbWindowVM.m_MatType = MaterialType.STONE And m_Type = MCH_MY.DRILLING Then
|
|
Return EgtMsg(90780) ' Iniziale
|
|
Else
|
|
Return EgtMsg(31274) ' Lungh. rallent. iniziale
|
|
End If
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property EndSlowLenTxBl As String
|
|
Get
|
|
If ToolDbWindowVM.m_MatType = MaterialType.STONE And m_Type = MCH_MY.DRILLING Then
|
|
Return EgtMsg(90781) ' Finale
|
|
Else
|
|
Return EgtMsg(31275) ' Lungh. rallent. finale
|
|
End If
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property ThrouAddLenTxBl As String
|
|
Get
|
|
If ToolDbWindowVM.m_MatType = MaterialType.STONE And m_Type = MCH_MY.DRILLING Then
|
|
Return EgtMsg(90782) ' Affondamento aggiuntivo
|
|
Else
|
|
Return EgtMsg(31276) ' Lungh. passante agg.
|
|
End If
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property StepParTxBl As String
|
|
Get
|
|
Return EgtMsg(31277) ' Passo
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property StepBackTxBl As String
|
|
Get
|
|
If ToolDbWindowVM.m_MatType = MaterialType.STONE Then
|
|
Return EgtMsg(90865) ' Ritorno
|
|
Else
|
|
Return EgtMsg(31367) ' Passo all'indietro
|
|
End If
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property ReturnPosTxBl As String
|
|
Get
|
|
Return EgtMsg(31278) ' Posizione di ritorno
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property TabLenTxBl As String
|
|
Get
|
|
Return EgtMsg(31279) ' Lunghezza
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property TabDistTxBl As String
|
|
Get
|
|
Return EgtMsg(31280) ' Altezza
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property TabHeightTxBl As String
|
|
Get
|
|
Return EgtMsg(31281) ' Angolo
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property TabAngleTxBl As String
|
|
Get
|
|
Return EgtMsg(31282) ' Distanza
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property StepExtArcTxBl As String
|
|
Get
|
|
If ToolDbWindowVM.m_MatType = MaterialType.STONE Then
|
|
Return EgtMsg(90778) ' Esterno archi
|
|
Else
|
|
Return EgtMsg(31293) ' Passo su esterno arco
|
|
End If
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property StepIntArcTxBl As String
|
|
Get
|
|
If ToolDbWindowVM.m_MatType = MaterialType.STONE Then
|
|
Return EgtMsg(90777) ' Interno archi
|
|
Else
|
|
Return EgtMsg(31294) ' Passo su interno arco
|
|
End If
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property SideStepTxBl As String
|
|
Get
|
|
Return EgtMsg(31295) ' Passo di lato
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property StepSideAngTxBl As String
|
|
Get
|
|
If ToolDbWindowVM.m_MatType = MaterialType.STONE Then
|
|
Return EgtMsg(90862) ' Inclinato
|
|
Else
|
|
Return EgtMsg(31368) ' Passo inclinato
|
|
End If
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property StepSideAngBackTxBl As String
|
|
Get
|
|
If ToolDbWindowVM.m_MatType = MaterialType.STONE Then
|
|
Return EgtMsg(90863) ' Incl. ritorno
|
|
Else
|
|
Return EgtMsg(31369) ' Passo all'indietro inclinato
|
|
End If
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property VertFeedTxBl As String
|
|
Get
|
|
If ToolDbWindowVM.m_MatType = MaterialType.STONE Then
|
|
Return EgtMsg(90790) ' In verticale
|
|
Else
|
|
Return EgtMsg(31296) ' Feed verticale
|
|
End If
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property ToolTxBl As String
|
|
Get
|
|
Return EgtMsg(31298) ' Utensile
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property DepthStrTxBl As String
|
|
Get
|
|
Return EgtMsg(31299) ' Affondamento
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property OverLapTxBl As String
|
|
Get
|
|
Return EgtMsg(31301) ' Sovrapposizione
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property SubTypeTxBl As String
|
|
Get
|
|
If m_Type = MCH_MY.SAWFINISHING Then
|
|
Return EgtMsg(90861) ' Spatolatura
|
|
Else
|
|
Return EgtMsg(31303) ' Sottotipo
|
|
End If
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property ForwardAngleTxBl As String
|
|
Get
|
|
Return EgtMsg(31370) ' Inclinazione in avanti
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property ProbingTxBl As String
|
|
Get
|
|
Return EgtMsg(90879) ' Abilitazione
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property ProbingMinDistTxBl As String
|
|
Get
|
|
Return EgtMsg(31372) ' Min dist. punti
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property ProbingMaxDistTxBl As String
|
|
Get
|
|
Return EgtMsg(31373) ' Max dist. punti
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property ExtCornTypeTxBl As String
|
|
Get
|
|
Return EgtMsg(31374) ' Esterni
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property IntCornTypeTxBl As String
|
|
Get
|
|
Return EgtMsg(31375) ' Interni
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property CornSlowLenTxBl As String
|
|
Get
|
|
Return EgtMsg(31376) ' Lungh. rall.
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property CornSlowPercTxBl As String
|
|
Get
|
|
Return EgtMsg(31377) ' Rallentam. %
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property LiHoleTxBl As String
|
|
Get
|
|
Return EgtMsg(31378) ' Foro di attacco
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property LiHoleRadTxBl As String
|
|
Get
|
|
Return EgtMsg(31379) ' Raggio
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property LpTurnsTxBl As String
|
|
Get
|
|
Return EgtMsg(31380) ' Num. giri in LP
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property HpTurnsTxBl As String
|
|
Get
|
|
Return EgtMsg(31381) ' Num. giri in HP
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property ThicknessFeedTxBl As String
|
|
Get
|
|
Return EgtMsg(31070) ' Spessore
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property TipFeedTxBl As String
|
|
Get
|
|
If m_Type = MCH_TY.WATERJET Then
|
|
Return EgtMsg(31079) ' Foratura
|
|
Else
|
|
Return EgtMsg(31061) ' Avanzamento di Punta
|
|
End If
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property MaterialMsg As String
|
|
Get
|
|
Return EgtMsg(91451) ' Materiale
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property MinThicknessMsg As String
|
|
Get
|
|
Return EgtMsg(91452) ' Spessore minimo
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property MaxThicknessMsg As String
|
|
Get
|
|
Return EgtMsg(91453) ' Spessore massimo
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property OscillationGpBxLbl As String
|
|
Get
|
|
Return EgtMsg(31382) ' Oscillazione
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property OscHeightTxBl As String
|
|
Get
|
|
Return EgtMsg(31383) ' Ampiezza
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property OscRampLenTxBl As String
|
|
Get
|
|
Return EgtMsg(31384) ' Lungh. rampa
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property OscFlatLenTxBl As String
|
|
Get
|
|
Return EgtMsg(31385) ' Lungh. cresta
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property AcrossTxBl As String
|
|
Get
|
|
Return EgtMsg(90861) ' Spatolatura
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property GenericGpBxLbl As String
|
|
Get
|
|
Return EgtMsg(31386) ' Generici
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property AdvancedGpBxLbl As String
|
|
Get
|
|
Return EgtMsg(31387) ' Avanzati
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property StepGpBxLbl As String
|
|
Get
|
|
Return EgtMsg(31277) ' Passo
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property FeedGpBxLbl As String
|
|
Get
|
|
Return EgtMsg(90728) ' Feed
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property OffsetGpBxLbl As String
|
|
Get
|
|
Return EgtMsg(90735) ' Sovramateriale
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property SlowLenGpBxLbl As String
|
|
Get
|
|
Return EgtMsg(90779) ' Lunghezza del rallentamento
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property OverlapGpBxLbl As String
|
|
Get
|
|
Return EgtMsg(90227) ' Sovrapposizione
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property AnglesGpBxLbl As String
|
|
Get
|
|
Return EgtMsg(90880) ' Angoli
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property ProbingGpBxLbl As String
|
|
Get
|
|
Return EgtMsg(90868) ' Tastatura
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property LeadInTypeGpBxLbl As String
|
|
Get
|
|
Return EgtMsg(31256) ' Attacco
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property LeadOutTypeGpBxLbl As String
|
|
Get
|
|
Return EgtMsg(31258) ' Uscita
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property CurveUseGpBxLbl As String
|
|
Get
|
|
Return EgtMsg(31259) ' Uso curve
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property SpeedGpBxLbl As String
|
|
Get
|
|
Return EgtMsg(6067) ' Rotazione
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property OvertableGpBxLbl As String
|
|
Get
|
|
Return EgtMsg(6080) ' Sovratavola
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property LeadTangTxBl As String
|
|
Get
|
|
Return EgtMsg(31283) ' Dist. tangente
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property LeadPerpTxBl As String
|
|
Get
|
|
Return EgtMsg(31284) ' Dist. perp.
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property LeadElevTxBl As String
|
|
Get
|
|
Return EgtMsg(31285) ' Elevazione
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property LeadCompLenTxBl As String
|
|
Get
|
|
Return EgtMsg(31286) ' Lungh. correz.
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property AddLenTxBl As String
|
|
Get
|
|
Return EgtMsg(31291) ' Lungh. addiz.
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property EnableTxBl As String
|
|
Get
|
|
Return EgtMsg(31394) ' Abilitazione
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property SystemNotesTxBl As String
|
|
Get
|
|
Return EgtMsg(31398) ' Note di sistema
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property ToolNotesBxLbl As String
|
|
Get
|
|
Return EgtMsg(31705) ' Note Utensile
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property CWBxLbl As String
|
|
Get
|
|
Return EgtMsg(31707) ' Clockwise
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property CCWBxLbl As String
|
|
Get
|
|
Return EgtMsg(31708) ' Counter clockwise
|
|
End Get
|
|
End Property
|
|
|
|
#End Region ' Messages
|
|
|
|
' Definizione comandi
|
|
Private m_cmdOpenDrawFile As ICommand
|
|
Private m_cmdAutoDraw As ICommand
|
|
|
|
#Region "Constructors"
|
|
|
|
Sub New(Name As String)
|
|
MyBase.New(Name)
|
|
End Sub
|
|
|
|
#End Region ' Constructors
|
|
|
|
#Region "METHODS"
|
|
|
|
Friend Sub ReadToolParamList()
|
|
Select Case m_Type
|
|
Case MCH_TF.SAWBLADE
|
|
m_CoolantList = New ObservableCollection(Of Object)(
|
|
{New IdNameStruct(MCH_TC.NO, EgtMsg(90801)), ' No
|
|
New IdNameStruct(MCH_TC.OUTER, EgtMsg(90803))}) ' Esterna
|
|
Case Else
|
|
m_CoolantList = New ObservableCollection(Of Object)(
|
|
{New IdNameStruct(MCH_TC.NO, EgtMsg(90801)), ' No
|
|
New IdNameStruct(MCH_TC.INNER, EgtMsg(90802)), ' Interna
|
|
New IdNameStruct(MCH_TC.OUTER, EgtMsg(90803)), ' Esterna
|
|
New IdNameStruct(MCH_TC.BOTH, EgtMsg(90804))}) ' Entrambe
|
|
End Select
|
|
NotifyPropertyChanged("CoolantList")
|
|
End Sub
|
|
|
|
Friend Sub ReadToolParam()
|
|
EgtSetCurrentContext(ToolDbWindowVM.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.TYPE, nValue)
|
|
m_Type = nValue
|
|
m_TypeM = DirectCast(nValue, MCH_TY)
|
|
NotifyPropertyChanged(NameOf(Type))
|
|
m_delNotifyPropertyChanged("ParamPageV")
|
|
NotifyPropertyChanged(NameOf(TipFeedTxBl))
|
|
ReadToolParamList()
|
|
EgtTdbGetCurrToolParam(MCH_TP.CORR, nValue)
|
|
m_Corr = nValue.ToString()
|
|
NotifyPropertyChanged(NameOf(Corr))
|
|
m_IsModifiedCorr = False
|
|
EgtTdbGetCurrToolParam(MCH_TP.COOLANT, nValue)
|
|
SelCoolant = If(IsNothing(CoolantList), nValue, IdNameStruct.IndFromId(nValue, CoolantList))
|
|
'NotifyPropertyChanged("Coolant")
|
|
NotifyPropertyChanged(NameOf(SelCoolant))
|
|
m_IsModifiedSelCoolant = False
|
|
EgtTdbGetCurrToolParam(MCH_TP.CORNRAD, dValue)
|
|
m_CornRad = LenToString(dValue, 4)
|
|
NotifyPropertyChanged(NameOf(CornRad))
|
|
m_IsModifiedCornRad = False
|
|
EgtTdbGetCurrToolParam(MCH_TP.DIAM, dValue)
|
|
m_Diam = LenToString(dValue, 4)
|
|
m_IsModifiedDiam = False
|
|
EgtTdbGetCurrToolParam(MCH_TP.TOTDIAM, dValue)
|
|
m_TotDiam = LenToString(dValue, 4)
|
|
m_IsModifiedTotDiam = False
|
|
'ValidateProperty("TotDiam")
|
|
'ValidateProperty("Diam")
|
|
ValidateProperty(NameOf(TotDiam))
|
|
ValidateProperty(NameOf(Diam))
|
|
EgtTdbGetCurrToolParam(MCH_TP.FEED, dValue)
|
|
m_Feed = LenToString(dValue, 4)
|
|
NotifyPropertyChanged(NameOf(Feed))
|
|
m_IsModifiedFeed = False
|
|
EgtTdbGetCurrToolParam(MCH_TP.ENDFEED, dValue)
|
|
m_EndFeed = LenToString(dValue, 4)
|
|
NotifyPropertyChanged(NameOf(EndFeed))
|
|
m_IsModifiedEndFeed = False
|
|
EgtTdbGetCurrToolParam(MCH_TP.STARTFEED, dValue)
|
|
m_StartFeed = LenToString(dValue, 4)
|
|
NotifyPropertyChanged(NameOf(StartFeed))
|
|
m_IsModifiedStartFeed = False
|
|
EgtTdbGetCurrToolParam(MCH_TP.TIPFEED, dValue)
|
|
m_TipFeed = LenToString(dValue, 4)
|
|
NotifyPropertyChanged(NameOf(TipFeed))
|
|
m_IsModifiedTipFeed = False
|
|
EgtTdbGetCurrToolParam(MCH_TP.LEN, dValue)
|
|
m_Len = LenToString(dValue, 4)
|
|
m_IsModifiedLen = False
|
|
EgtTdbGetCurrToolParam(MCH_TP.TOTLEN, dValue)
|
|
m_TotLen = LenToString(dValue, 4)
|
|
m_IsModifiedTotLen = False
|
|
EgtTdbGetCurrToolParam(MCH_TP.MAXMAT, dValue)
|
|
m_MaxMat = LenToString(dValue, 4)
|
|
m_IsModifiedMaxMat = False
|
|
'ValidateProperty("TotLen")
|
|
'ValidateProperty("Len")
|
|
'ValidateProperty("MaxMat")
|
|
ValidateProperty(NameOf(TotLen))
|
|
ValidateProperty(NameOf(Len))
|
|
ValidateProperty(NameOf(MaxMat))
|
|
EgtTdbGetCurrToolParam(MCH_TP.DIST, dValue)
|
|
m_Dist = LenToString(dValue, 4)
|
|
'ValidateProperty("Dist")
|
|
ValidateProperty(NameOf(Dist))
|
|
m_IsModifiedDist = False
|
|
EgtTdbGetCurrToolParam(MCH_TP.STEMDIAM, dValue)
|
|
m_StemDiam = LenToString(dValue, 4)
|
|
'ValidateProperty("StemDiam")
|
|
ValidateProperty(NameOf(StemDiam))
|
|
m_IsModifiedStemDiam = False
|
|
EgtTdbGetCurrToolParam(MCH_TP.LONOFFSET, dValue)
|
|
m_LonOffset = LenToString(dValue, 4)
|
|
NotifyPropertyChanged(NameOf(LonOffset))
|
|
m_IsModifiedLonOffset = False
|
|
EgtTdbGetCurrToolParam(MCH_TP.RADOFFSET, dValue)
|
|
m_RadOffset = LenToString(dValue, 4)
|
|
NotifyPropertyChanged(NameOf(RadOffset))
|
|
m_IsModifiedRadOffset = False
|
|
EgtTdbGetCurrToolValInNotes(MCH_TP.SYSNOTES, K_STEPPAR, dValue)
|
|
m_StepPar = LenToString(dValue, 4)
|
|
NotifyPropertyChanged(NameOf(StepPar))
|
|
m_IsModifiedStepPar = False
|
|
EgtTdbGetCurrToolValInNotes(MCH_TP.SYSNOTES, K_SIDESTEP, dValue)
|
|
m_SideStep = LenToString(dValue, 4)
|
|
NotifyPropertyChanged(NameOf(SideStep))
|
|
m_IsModifiedSideStep = False
|
|
EgtTdbGetCurrToolParam(MCH_TP.SPEED, dValue)
|
|
m_Speed = DoubleToString(dValue, 4)
|
|
m_IsModifiedSpeed = False
|
|
' Seleziono radiobutton corretto
|
|
If Not m_Speed.Contains("-"c) Then
|
|
m_CW_IsChecked = True
|
|
Else
|
|
m_CCW_IsChecked = True
|
|
End If
|
|
NotifyPropertyChanged(NameOf(CW_IsChecked))
|
|
NotifyPropertyChanged(NameOf(CCW_IsChecked))
|
|
EgtTdbGetCurrToolParam(MCH_TP.MAXSPEED, dValue)
|
|
m_MaxSpeed = DoubleToString(dValue, 4)
|
|
m_IsModifiedMaxSpeed = False
|
|
'ValidateProperty("Speed")
|
|
ValidateProperty(NameOf(Speed))
|
|
NotifyPropertyChanged(NameOf(MaxSpeed))
|
|
EgtTdbGetCurrToolParam(MCH_TP.SIDEANG, dValue)
|
|
m_SideAng = DoubleToString(dValue, 4)
|
|
NotifyPropertyChanged(NameOf(SideAng))
|
|
m_IsModifiedSideAng = False
|
|
EgtTdbGetCurrToolParam(MCH_TP.THICK, dValue)
|
|
m_Thick = LenToString(dValue, 4)
|
|
m_IsModifiedThick = False
|
|
'ValidateProperty("Thick")
|
|
ValidateProperty(NameOf(Thick))
|
|
EgtTdbGetCurrToolParam(MCH_TP.MAXABSORPTION, dValue)
|
|
m_MaxAbsorption = DoubleToString(dValue, 4)
|
|
NotifyPropertyChanged(NameOf(MaxAbsorption))
|
|
m_IsModifiedMaxAbsorption = False
|
|
EgtTdbGetCurrToolParam(MCH_TP.MINFEED, dValue)
|
|
m_MinFeed = LenToString(dValue, 4)
|
|
NotifyPropertyChanged(NameOf(MinFeed))
|
|
m_IsModifiedMinFeed = False
|
|
EgtTdbGetCurrToolParam(MCH_TP.DRAW, sValue)
|
|
m_Draw = sValue
|
|
m_IsModifiedDraw = False
|
|
ValidateProperty("Draw")
|
|
EgtTdbGetCurrToolParam(MCH_TP.HEAD, sValue)
|
|
m_HeadList = New ObservableCollection(Of Object)(OrigHeadList)
|
|
NotifyPropertyChanged("HeadList")
|
|
For HeadIndex = 0 To m_HeadList.Count - 1
|
|
If String.Compare(sValue, m_HeadList(HeadIndex).HName) = 0 Then
|
|
SelectedHead = HeadIndex
|
|
Exit For
|
|
End If
|
|
Next
|
|
'ValidateProperty("SelectedHead")
|
|
ValidateProperty(NameOf(SelectedHead))
|
|
EgtTdbGetCurrToolParam(MCH_TP.EXIT_, nValue)
|
|
SelectedExit = If(IsNothing(ExitList), nValue, IdNameStruct.IndFromId(nValue, ExitList))
|
|
m_IsModifiedSelectedExit = False
|
|
'ValidateProperty("SelectedExit")
|
|
ValidateProperty(NameOf(SelectedExit))
|
|
EgtTdbGetCurrToolParam(MCH_TP.USERNOTES, sValue)
|
|
m_UserNotes = sValue
|
|
NotifyPropertyChanged(NameOf(UserNotes))
|
|
EgtTdbGetCurrToolParam(MCH_TP.SYSNOTES, sValue)
|
|
m_SystemNotes = sValue
|
|
NotifyPropertyChanged(NameOf(SystemNotes))
|
|
m_IsModifiedUserNotes = False
|
|
EgtTdbGetCurrToolParam(MCH_TP.TCPOS, sValue)
|
|
If TcPosList.Any(Function(n) String.Compare(n.Name, sValue) = 0) Then
|
|
For TcPosIndex = 0 To m_TcPosList.Count - 1
|
|
If String.Compare(sValue, m_TcPosList(TcPosIndex).Name) = 0 Then
|
|
SelectedTcPos = TcPosIndex
|
|
m_IsModifiedSelectedTcPos = False
|
|
Exit For
|
|
End If
|
|
Next
|
|
Else
|
|
m_SelectedTcPos = -1
|
|
EgtTdbSetCurrToolParam(MCH_TP.TCPOS, String.Empty)
|
|
End If
|
|
NotifyPropertyChanged(NameOf(SelectedTcPos))
|
|
EgtTdbGetCurrToolParam(MCH_TP.UUID, sValue)
|
|
m_Uuid = sValue
|
|
|
|
' Carico Note Utensile
|
|
m_NotesList.Clear()
|
|
m_NotesListCombo.Clear()
|
|
m_THolders.Clear()
|
|
m_ToolItemNameList.Clear()
|
|
GetNoteList()
|
|
GetComboNoteList()
|
|
|
|
' Ora che tutti i parametri sono aggiornati, aggiorno il disegno
|
|
m_SuspendToolDrawUpdate = False
|
|
UpdateSceneToolDraw()
|
|
End Sub
|
|
|
|
Friend Sub ReadToolName()
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetCurrToolParam(MCH_TP.NAME, NamePar)
|
|
End Sub
|
|
|
|
Friend Sub WriteToolParam()
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
Dim nValue As Integer = 0
|
|
Dim dValue As Double = 0
|
|
Dim sValue As String = String.Empty
|
|
Int32.TryParse(Corr, nValue)
|
|
EgtTdbSetCurrToolParam(MCH_TP.CORR, nValue)
|
|
nValue = If(IsNothing(ExitList), m_SelectedExit, IdNameStruct.IdFromInd(m_SelectedExit, ExitList))
|
|
EgtTdbSetCurrToolParam(MCH_TP.EXIT_, nValue)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TYPE, Type)
|
|
nValue = If(IsNothing(CoolantList), m_SelCoolant, IdNameStruct.IdFromInd(m_SelCoolant, CoolantList))
|
|
EgtTdbSetCurrToolParam(MCH_TP.COOLANT, nValue)
|
|
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(Dist, dValue)
|
|
EgtTdbSetCurrToolParam(MCH_TP.DIST, dValue)
|
|
StringToLen(StemDiam, dValue)
|
|
EgtTdbSetCurrToolParam(MCH_TP.STEMDIAM, 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)
|
|
If ToolDbWindowVM.m_MatType = MaterialType.BEAM Then
|
|
If (m_Type And MCH_TF.MILL) <> 0 Or
|
|
(m_Type And MCH_TF.SAWBLADE) <> 0 Or
|
|
(m_Type And MCH_TF.MORTISE) <> 0 Then
|
|
StringToLen(StepPar, dValue)
|
|
EgtTdbSetCurrToolValInNotes(MCH_TP.SYSNOTES, K_STEPPAR, dValue)
|
|
End If
|
|
If (m_Type And MCH_TF.MILL) <> 0 Then
|
|
StringToLen(SideStep, dValue)
|
|
EgtTdbSetCurrToolValInNotes(MCH_TP.SYSNOTES, K_SIDESTEP, dValue)
|
|
End If
|
|
End If
|
|
StringToDouble(Speed, dValue)
|
|
EgtTdbSetCurrToolParam(MCH_TP.SPEED, dValue)
|
|
StringToDouble(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, HeadList(SelectedHead).HName)
|
|
EgtTdbSetCurrToolParam(MCH_TP.USERNOTES, UserNotes)
|
|
sValue = CStr(If(SelectedTcPos < 0 Or SelectedTcPos >= TcPosList.Count, String.Empty, m_TcPosList(m_SelectedTcPos).Name))
|
|
EgtTdbSetCurrToolParam(MCH_TP.TCPOS, sValue)
|
|
|
|
' Scrivo le note utente
|
|
If m_NotesList.Count > 0 Then WriteToolParamNote()
|
|
SetComboAddVisibility(Visibility.Collapsed)
|
|
NotifyPropertyChanged(NameOf(ComboAddVisibility))
|
|
End Sub
|
|
|
|
Public Sub WriteToolName()
|
|
EgtTdbSetCurrToolParam(MCH_TP.NAME, NamePar)
|
|
End Sub
|
|
|
|
' funzione che verifica se c'è attivo un utensile sulla stessa posizione
|
|
Private Function VerifyAllPositions() As Boolean
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
' carico posizione, testa e uscita dell'utensile che si attiva
|
|
EgtTdbSetCurrTool(Me.Name)
|
|
Dim sCheckedTcPos As String = String.Empty
|
|
EgtTdbGetCurrToolParam(MCH_TP.TCPOS, sCheckedTcPos)
|
|
Dim sCheckedHead As String = String.Empty
|
|
EgtTdbGetCurrToolParam(MCH_TP.HEAD, sCheckedHead)
|
|
Dim nCheckedExit As Integer = 0
|
|
EgtTdbGetCurrToolParam(MCH_TP.EXIT_, nCheckedExit)
|
|
' verifico su tutti gli utensili disponibili
|
|
Dim ActiveToolsFamilies() As ToolsFamily = MachineUtility.ReadToolFamilies(ToolDbWindowVM.m_sMachineIniPath)
|
|
For Each ToolsFamily In ActiveToolsFamilies
|
|
Dim nType As Integer = 0
|
|
Dim ToolName As String = String.Empty
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
If EgtTdbGetFirstTool(ToolsFamily.Id, ToolName, nType) Then
|
|
If ToolName <> Me.Name Then
|
|
EgtTdbSetCurrTool(ToolName)
|
|
If Not VerifyPosition(sCheckedTcPos, sCheckedHead, nCheckedExit) Then Return False
|
|
End If
|
|
While EgtTdbGetNextTool(ToolsFamily.Id, ToolName, nType)
|
|
If ToolName <> Me.Name Then
|
|
EgtTdbSetCurrTool(ToolName)
|
|
If Not VerifyPosition(sCheckedTcPos, sCheckedHead, nCheckedExit) Then Return False
|
|
End If
|
|
End While
|
|
End If
|
|
Next
|
|
Return True
|
|
End Function
|
|
|
|
Private Function VerifyPosition(sCheckedTcPos As String, sCheckedHead As String, nCheckedExit As Integer) As Boolean
|
|
' verifico se attivo
|
|
Dim DbActive As Boolean = False
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
If Not EgtTdbGetCurrToolParam(MCH_TP.ACTIVE, DbActive) Then DbActive = False
|
|
' se non è attivo non lo considero e restituisco vero
|
|
If Not DbActive Then Return True
|
|
' recupero posizione
|
|
Dim DbTcPos As String = String.Empty
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetCurrToolParam(MCH_TP.TCPOS, DbTcPos)
|
|
' se la posizione è uguale controllo la testa
|
|
If sCheckedTcPos = DbTcPos Then
|
|
Dim DbHead As String = String.Empty
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetCurrToolParam(MCH_TP.HEAD, DbHead)
|
|
' se la testa è uguale, controllo l'uscita
|
|
If sCheckedHead = DbHead Then
|
|
Dim DbExit As Integer = 0
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
EgtTdbGetCurrToolParam(MCH_TP.EXIT_, DbExit)
|
|
' se l'uscita è uguale la posizione è già occupata
|
|
If nCheckedExit = DbExit Then Return False
|
|
Else
|
|
' se la testa è diversa vuol dire che la posizione è già occupata
|
|
Return False
|
|
End If
|
|
End If
|
|
Return True
|
|
End Function
|
|
|
|
#Region "Methods Note"
|
|
|
|
''' <summary>
|
|
''' Recupero la lista delle Note dal file Note.ini
|
|
''' </summary>
|
|
Public Sub GetNoteList()
|
|
|
|
' Recupero direttorio della macchina corrente
|
|
Dim sMachDir As String = ""
|
|
EgtGetCurrMachineDir(sMachDir)
|
|
|
|
' Recupero ToolHolder dal direttorio THolders
|
|
m_THolders.Clear()
|
|
Dim filePaths As String() = Directory.GetFiles(sMachDir & "\" & T_HOLDER)
|
|
For Each File As String In filePaths
|
|
m_THolders.Add(Path.GetFileName(File))
|
|
Next
|
|
|
|
' Recupero utensile
|
|
m_ToolItemNameList.Clear()
|
|
m_ToolItem = LibMap.refToolDbWindowVM.ToolsList.FirstOrDefault(Function(x) x.IsExpanded)
|
|
For IndToolItem As Integer = 0 To m_ToolItem.Items.Count - 1
|
|
m_ToolItemNameList.Add(m_ToolItem.Items(IndToolItem).Name)
|
|
Next
|
|
|
|
' Divido UserNotes in due Array di String Chiave e Valore (anche non presente)
|
|
EgtTdbGetCurrToolParam(MCH_TP.USERNOTES, m_UserNotes)
|
|
Dim tmpDsc As New List(Of String)
|
|
Dim tmpVal As New List(Of String)
|
|
Dim sSplitNotes() As String = m_UserNotes.TrimEnd(";"c).Split(New Char() {";"c})
|
|
For Index As Integer = 0 To sSplitNotes.Count - 1
|
|
Dim sKeyVal() As String = sSplitNotes(Index).Trim().Split(New Char() {"="c})
|
|
If sKeyVal.Count() >= 1 AndAlso Not String.IsNullOrWhiteSpace(sKeyVal(0)) Then
|
|
' Assegno chiave
|
|
tmpDsc.Add(sKeyVal(0))
|
|
' Assegno valore o indicazione sua mancanza
|
|
If sKeyVal.Count() >= 2 Then
|
|
tmpVal.Add(sKeyVal(1))
|
|
Else
|
|
tmpVal.Add("")
|
|
End If
|
|
End If
|
|
Next
|
|
m_UserNotes = ""
|
|
|
|
' Recupero le info dal file Notes.ini
|
|
Dim tmpType As String = m_TypeM.ToString()
|
|
Dim IndexNote As Integer = 0
|
|
Dim sNoteDescription As String = ""
|
|
While EgtUILib.GetPrivateProfileString(tmpType, IndexNote.ToString(), "", sNoteDescription, sMachDir & "\" & TOOL_NOTES) > 0
|
|
Dim sNotes() As String = sNoteDescription.Split(","c)
|
|
For Index As Integer = 0 To sNotes.Count - 1
|
|
sNotes(Index) = sNotes(Index).Trim()
|
|
Next
|
|
For IndexNoteUser As Integer = 0 To tmpDsc.Count - 1
|
|
' Aggiungo alla lista NoteList le note presenti nel file ini
|
|
If tmpDsc(IndexNoteUser) = sNotes(1) Then
|
|
If Not sNotes(0).Equals("th") Then
|
|
m_NotesList.Add(New NoteListBoxItem(IndexNote, sNotes(0), sNotes(1), tmpVal(IndexNoteUser)))
|
|
ElseIf sNotes(0).Equals("tl") Then
|
|
m_NotesList.Add(New NoteListBoxItem(IndexNote, sNotes(0), sNotes(1), m_ToolItemNameList))
|
|
Else
|
|
m_NotesList.Add(New NoteListBoxItem(IndexNote, sNotes(0), sNotes(1), m_THolders))
|
|
m_NotesList(m_NotesList.Count - 1).SelListValue = tmpVal(IndexNoteUser)
|
|
End If
|
|
Exit For
|
|
End If
|
|
Next
|
|
IndexNote += 1
|
|
End While
|
|
|
|
' Assegno alla lista temporanea solo le descrizioni
|
|
Dim tmpDscList As New ObservableCollection(Of String)
|
|
For IndN As Integer = 0 To m_NotesList.Count - 1
|
|
tmpDscList.Add(m_NotesList(IndN).m_Description)
|
|
Next
|
|
|
|
For TmpInd As Integer = 0 To tmpDsc.Count - 1
|
|
' Controllo se la lista contiene la stessa descrizione
|
|
If tmpDscList.Contains(tmpDsc(TmpInd)) Then
|
|
m_UserNotes &= "" ' Se si la text UserNote rimane vuota
|
|
ElseIf Not String.IsNullOrEmpty(tmpVal(TmpInd)) Then
|
|
m_UserNotes &= (tmpDsc(TmpInd) & "=" & tmpVal(TmpInd) & ";").Trim() ' Altrimenti assegno descrizione + valore a UserNote
|
|
Else
|
|
m_UserNotes &= (tmpDsc(TmpInd) & ";").Trim() ' Se la lista valori e' vuota assegno solo la descrizione
|
|
End If
|
|
Next
|
|
|
|
For Each ItemNote As NoteListBoxItem In m_NotesList
|
|
' Controllo per la visualizzazione di una textbox o checkbox
|
|
If ItemNote.Type.Equals("d") OrElse ItemNote.Type.Equals("l") OrElse ItemNote.Type.Equals("s") OrElse
|
|
ItemNote.Type.Equals("dr") OrElse ItemNote.Type.Equals("lr") OrElse ItemNote.Type.Equals("sr") Then
|
|
ItemNote.SelTypeValue = 0 ' Seleziona la TextBox
|
|
ElseIf ItemNote.Type.Equals("th") OrElse ItemNote.Type.Equals("tl") Then
|
|
ItemNote.SelTypeValue = 2 ' Seleziona la ComboBox
|
|
Else
|
|
ItemNote.SelTypeValue = 1 ' Seleziona la CheckBox
|
|
' Trasformo il valore della checkbox da stringa a booleano
|
|
ItemNote.Value = If(ItemNote.Value = "1", "True", "False")
|
|
Boolean.Parse(ItemNote.Value)
|
|
End If
|
|
Next
|
|
|
|
SetToolNoteVisibility(If(m_NotesList.Count > 0, Visibility.Visible, Visibility.Collapsed))
|
|
|
|
NotifyPropertyChanged(NameOf(UserNotes))
|
|
NotifyPropertyChanged(NameOf(NotesList))
|
|
NotifyPropertyChanged(NameOf(THolders))
|
|
NotifyPropertyChanged(NameOf(ToolItem))
|
|
NotifyPropertyChanged(NameOf(ToolNoteVisibility))
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Recupero la lista delle Note dal file Note.ini da mostrare nella combobox
|
|
''' </summary>
|
|
Public Sub GetComboNoteList()
|
|
|
|
' Recupero direttorio della macchina corrente
|
|
Dim sMachDir As String = ""
|
|
EgtGetCurrMachineDir(sMachDir)
|
|
|
|
' Recupero le info dal file Notes.ini
|
|
Dim tmpType As String = m_TypeM.ToString()
|
|
Dim IndexNote As Integer = 0
|
|
Dim sNoteDescription As String = ""
|
|
Dim tmpsNotes As New ObservableCollection(Of NoteListBoxItem)
|
|
Dim tmpDsc As New ObservableCollection(Of String)
|
|
While EgtUILib.GetPrivateProfileString(tmpType, IndexNote.ToString(), "", sNoteDescription, sMachDir & "\" & TOOL_NOTES) > 0
|
|
Dim sNotes() As String = Nothing
|
|
sNotes = sNoteDescription.Split(","c)
|
|
For Index As Integer = 0 To sNotes.Count - 1
|
|
sNotes(Index) = sNotes(Index).Trim()
|
|
Next
|
|
'Assegno valori alla lista temporanea
|
|
If sNotes.Count < 3 Then
|
|
tmpsNotes.Add(New NoteListBoxItem(IndexNote, sNotes(0), sNotes(1), ""))
|
|
ElseIf sNotes(0).Equals("th") Then
|
|
tmpsNotes.Add(New NoteListBoxItem(IndexNote, sNotes(0), sNotes(1), m_THolders))
|
|
ElseIf sNotes(0).Equals("tl") Then
|
|
tmpsNotes.Add(New NoteListBoxItem(IndexNote, sNotes(0), sNotes(1), m_ToolItemNameList))
|
|
Else
|
|
tmpsNotes.Add(New NoteListBoxItem(IndexNote, sNotes(0), sNotes(1), sNotes(2)))
|
|
End If
|
|
tmpDsc.Add(sNotes(1))
|
|
IndexNote += 1
|
|
End While
|
|
|
|
' Assegno alla lista temporanea solo le descrizioni
|
|
Dim tmpDscList As New ObservableCollection(Of String)
|
|
For IndN As Integer = 0 To m_NotesList.Count - 1
|
|
tmpDscList.Add(m_NotesList(IndN).m_Description)
|
|
Next
|
|
' Assegno alla combobox valori non presenti nella NoteList
|
|
For TmpInd As Integer = 0 To tmpDsc.Count - 1
|
|
If Not tmpDscList.Contains(tmpDsc(TmpInd)) Then
|
|
m_NotesListCombo.Add(tmpsNotes(TmpInd))
|
|
End If
|
|
Next
|
|
|
|
SetShowNoteListCombo_Visibility(Visibility.Visible)
|
|
SetShowNoteListCombo_IsEnable(If(m_NotesListCombo.Count <= 0, False, True))
|
|
|
|
NotifyPropertyChanged(NameOf(NotesList))
|
|
NotifyPropertyChanged(NameOf(NotesListCombo))
|
|
NotifyPropertyChanged(NameOf(SelNoteItemCombo))
|
|
NotifyPropertyChanged(NameOf(THolders))
|
|
NotifyPropertyChanged(NameOf(ToolItem))
|
|
NotifyPropertyChanged(NameOf(ShowNoteListCombo_Visibility))
|
|
NotifyPropertyChanged(NameOf(ShowNoteListCombo_IsEnable))
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Scrivo in UserNotes attraverso EgtSetMachiningParam la nota modificata
|
|
''' </summary>
|
|
Public Sub WriteToolParamNote()
|
|
|
|
' Nascondo la combobox
|
|
SetComboAddVisibility(Visibility.Collapsed)
|
|
|
|
' Recupero le note con la gestione avanzata
|
|
Dim sAdvNotes As String = ""
|
|
For IndexNote As Integer = 0 To m_NotesList.Count - 1
|
|
' Scrivo in MCH_TP.USERNOTES la nota modificata
|
|
If m_NotesList(IndexNote).Type.Equals("th") OrElse m_NotesList(IndexNote).Type.Equals("tl") Then
|
|
sAdvNotes &= m_NotesList(IndexNote).Description & "=" & m_NotesList(IndexNote).SelListValue & ";"
|
|
ElseIf m_NotesList(IndexNote).Type.Equals("b") OrElse m_NotesList(IndexNote).Type.Equals("br") Then
|
|
sAdvNotes &= m_NotesList(IndexNote).Description & "=" & If(m_NotesList(IndexNote).Value.Equals("True"), "1", "0") & ";"
|
|
Else
|
|
sAdvNotes &= m_NotesList(IndexNote).Description & "=" & m_NotesList(IndexNote).Value & ";"
|
|
End If
|
|
Next
|
|
|
|
' Processo le note standard come lista di chiavi-valori
|
|
Dim tmpDsc = New List(Of String)
|
|
Dim tmpVal = New List(Of String)
|
|
Dim sSplitNotes() As String = m_UserNotes.TrimEnd(";"c).Split(New Char() {";"c})
|
|
For Index As Integer = 0 To sSplitNotes.Count - 1
|
|
Dim sKeyVal() As String = sSplitNotes(Index).Trim().Split(New Char() {"="c})
|
|
If sKeyVal.Count() >= 1 AndAlso Not String.IsNullOrWhiteSpace(sKeyVal(0)) Then
|
|
' Assegno chiave
|
|
tmpDsc.Add(sKeyVal(0))
|
|
' Assegno valore o indicazione sua mancanza
|
|
If sKeyVal.Count() >= 2 Then
|
|
tmpVal.Add(sKeyVal(1))
|
|
Else
|
|
tmpVal.Add("")
|
|
End If
|
|
End If
|
|
Next
|
|
|
|
' Assegno le note standard le cui chiavi non siano un duplicato delle descrizioni di quelle avanzate
|
|
Dim sStdNotes As String = ""
|
|
For NewInd As Integer = 0 To tmpDsc.Count - 1
|
|
' Verifico se la chiave è presente nelle descrizioni avanzate
|
|
Dim bAdvDesc As Boolean = False
|
|
For IndexNote As Integer = 0 To m_NotesList.Count - 1
|
|
If m_NotesList(IndexNote).Description.Equals(tmpDsc(NewInd)) Then
|
|
bAdvDesc = True
|
|
Exit For
|
|
End If
|
|
Next
|
|
' Se non presente posso aggiungere
|
|
If Not bAdvDesc Then
|
|
If Not String.IsNullOrEmpty(tmpVal(NewInd)) Then
|
|
sStdNotes &= tmpDsc(NewInd) & "=" & tmpVal(NewInd) & ";" ' Assegno a sUserNotes descrizione + valore
|
|
Else
|
|
sStdNotes &= tmpDsc(NewInd) & ";" ' Se non e' presente il valore solo la descrizione
|
|
End If
|
|
End If
|
|
Next
|
|
m_UserNotes = sStdNotes
|
|
|
|
' Salvo le note
|
|
Dim sUserNotes As String = sAdvNotes & sStdNotes
|
|
EgtTdbSetCurrToolParam(MCH_TP.USERNOTES, sUserNotes)
|
|
|
|
NotifyPropertyChanged(NameOf(UserNotes))
|
|
NotifyPropertyChanged(NameOf(ComboAddVisibility))
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Rimuove nota dalla lista Note Utente
|
|
''' </summary>
|
|
Public Sub RemoveNote(NoteItem As NoteListBoxItem)
|
|
' Recupero Tool selezionato
|
|
'Dim SelTool As ToolTreeViewItem = m_delGetSelectedTool()
|
|
' Rimuovo la nota selezionata dalla lista note utente
|
|
m_NotesList.Remove(NoteItem)
|
|
' Se il pulsante rimuovi nota viene selezionato riaggiungo la nota rimossa alla combobox
|
|
m_NotesListCombo.Add(NoteItem)
|
|
' Nascondo la combobox
|
|
SetComboAddVisibility(Visibility.Collapsed)
|
|
' Riabilito pulsante che mostra la combobox
|
|
SetShowNoteListCombo_IsEnable(True)
|
|
|
|
SetShowNoteListCombo_Visibility(If(m_NotesListCombo.Count > 0, Visibility.Visible, Visibility.Hidden))
|
|
|
|
SetToolNoteVisibility(If(m_NotesList.Count > 0, Visibility.Visible, Visibility.Collapsed))
|
|
|
|
' Aggiorno il disegno
|
|
If Not m_SuspendToolDrawUpdate AndAlso NoteItem.Type.Equals("dr") OrElse
|
|
NoteItem.Type.Equals("lr") OrElse
|
|
NoteItem.Type.Equals("sr") OrElse
|
|
NoteItem.Type.Equals("br") OrElse
|
|
NoteItem.Type.Equals("tl") OrElse
|
|
NoteItem.Type.Equals("th") Then UpdateSceneToolDraw()
|
|
|
|
NotifyPropertyChanged(NameOf(NotesList))
|
|
NotifyPropertyChanged(NameOf(NotesListCombo))
|
|
NotifyPropertyChanged(NameOf(UserNotes))
|
|
NotifyPropertyChanged(NameOf(ComboAddVisibility))
|
|
NotifyPropertyChanged(NameOf(ToolNoteVisibility))
|
|
NotifyPropertyChanged(NameOf(ShowNoteListCombo_IsEnable))
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Aggiorna il colore del pulsante Applica Lavorazioni quando la nota della lista NoteList viene modificata
|
|
''' </summary>
|
|
''' <param name="NoteItem"></param>
|
|
Public Sub IsModifiedNote(NoteItem As NoteListBoxItem)
|
|
' Recupero Tool selezionato
|
|
Dim SelTool As ToolTreeViewItem = m_delGetSelectedTool()
|
|
If NoteItem.IsModifiedValue Then
|
|
' Aggiorno il disegno
|
|
If Not m_SuspendToolDrawUpdate AndAlso NoteItem.Type.Equals("dr") OrElse
|
|
NoteItem.Type.Equals("lr") OrElse
|
|
NoteItem.Type.Equals("sr") OrElse
|
|
NoteItem.Type.Equals("br") OrElse
|
|
NoteItem.Type.Equals("tl") OrElse
|
|
NoteItem.Type.Equals("th") Then SelTool.UpdateSceneToolDraw()
|
|
|
|
End If
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Seleziona il valore di TH dalle Note Utensile
|
|
''' </summary>
|
|
''' <param name="NoteItem"></param>
|
|
Public Sub SelNoteListValue(NoteItem As NoteListBoxItem)
|
|
' Recupero Tool selezionato
|
|
Dim SelTool As ToolTreeViewItem = m_delGetSelectedTool()
|
|
If Not IsNothing(NoteItem.SelListValue) Then
|
|
' Aggiorno il disegno
|
|
If Not m_SuspendToolDrawUpdate AndAlso (NoteItem.Type.Equals("th") OrElse NoteItem.Type.Equals("tl")) Then SelTool.UpdateSceneToolDraw()
|
|
End If
|
|
End Sub
|
|
|
|
#End Region ' Methods Note
|
|
|
|
#End Region ' Methods
|
|
|
|
#Region "ToolSceneUpdate"
|
|
|
|
' Variabili che segnalano errori nel disegno dell'utensile
|
|
Dim m_nDrawingError As Integer = 0
|
|
|
|
Friend Sub UpdateSceneToolDraw()
|
|
' Azzero errori
|
|
m_nDrawingError = 0
|
|
' Se nome disegno vuoto, assegno quello dell'automatico
|
|
If String.IsNullOrEmpty(m_Draw) Then m_Draw = m_Uuid & ".nge"
|
|
' Creo il disegno dell'utensile
|
|
CreateToolDraw()
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ToolDbSceneContext)
|
|
If m_nDrawingError <> 0 Then
|
|
If IsUUID(Path.GetFileNameWithoutExtension(m_Draw)) Then
|
|
EgtNewFile()
|
|
End If
|
|
End If
|
|
EgtSetView(VT.TOP, False)
|
|
EgtZoom(ZM.ALL)
|
|
NotifyPropertyChanged("Draw")
|
|
' Aggiorno interfaccia
|
|
If Not GetValidationError("Draw") Then
|
|
m_delErrorOnTool(True)
|
|
m_delIsEnabledBtns(False, False, True)
|
|
Else
|
|
m_delErrorOnTool(Not IsValid)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
End If
|
|
End Sub
|
|
|
|
Private Function CreateToolDraw() As Boolean
|
|
' Calcolo parametri per disegno
|
|
Dim sHeadName As String = CStr(If(Not (IsNothing(HeadList) OrElse HeadList.Count = 0) And SelectedHead <> -1 AndAlso Not IsNothing(HeadList(SelectedHead)), HeadList(SelectedHead).HName, ""))
|
|
Dim nExit As Integer = 0 : If Not (IsNothing(ExitList) OrElse ExitList.Count = 0) And SelectedExit <> -1 AndAlso Not IsNothing(ExitList(SelectedExit)) AndAlso Not IsNothing(ExitList(SelectedExit).Name) Then StringToInt(CStr(ExitList(SelectedExit).Name), nExit)
|
|
Dim nType As Integer = Type
|
|
Dim dTotLen As Double = 0 : StringToLen(TotLen, dTotLen)
|
|
Dim dLen As Double = 0 : StringToLen(Len, dLen)
|
|
Dim dTotDiam As Double = 0 : StringToLen(TotDiam, dTotDiam)
|
|
Dim dDiam As Double = 0 : StringToLen(Diam, dDiam)
|
|
Dim dThick As Double = 0 : StringToLen(Thick, dThick)
|
|
Dim dDist As Double = 0 : StringToLen(Dist, dDist)
|
|
Dim dStemDiam As Double = 0 : StringToLen(StemDiam, dStemDiam)
|
|
Dim dMaxMat As Double = 0 : StringToLen(MaxMat, dMaxMat)
|
|
Dim dSideAng As Double = 0 : StringToDouble(SideAng, dSideAng)
|
|
Dim dCornRad As Double = 0 : StringToLen(CornRad, dCornRad)
|
|
Dim dSpeed As Double = 0 : StringToDouble(Speed, dSpeed)
|
|
Dim sUserNotes As String = UserNotes
|
|
For Each Note As NoteListBoxItem In NotesList
|
|
If Note.Type.Equals("th") Then
|
|
sUserNotes &= Note.Description & "=" & Note.SelListValue & ";"
|
|
Else
|
|
sUserNotes &= Note.Description & "=" & Note.Value & ";"
|
|
End If
|
|
Next
|
|
|
|
Dim sDraw As String = Draw
|
|
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
' Salvo parametri originali dell'utensile corrente
|
|
Dim sHeadNameOri As String = "" : EgtTdbGetCurrToolParam(MCH_TP.HEAD, sHeadNameOri)
|
|
Dim nExitOri As Integer = 0 : EgtTdbGetCurrToolParam(MCH_TP.EXIT_, nExitOri)
|
|
Dim nTypeOri As Integer = 0 : EgtTdbGetCurrToolParam(MCH_TP.TYPE, nTypeOri)
|
|
Dim dTotLenOri As Double = 0 : EgtTdbGetCurrToolParam(MCH_TP.TOTLEN, dTotLenOri)
|
|
Dim dLenOri As Double = 0 : EgtTdbGetCurrToolParam(MCH_TP.LEN, dLenOri)
|
|
Dim dTotDiamOri As Double = 0 : EgtTdbGetCurrToolParam(MCH_TP.TOTDIAM, dTotDiamOri)
|
|
Dim dDiamOri As Double = 0 : EgtTdbGetCurrToolParam(MCH_TP.DIAM, dDiamOri)
|
|
Dim dThickOri As Double = 0 : EgtTdbGetCurrToolParam(MCH_TP.THICK, dThickOri)
|
|
Dim dDistOri As Double = 0 : EgtTdbGetCurrToolParam(MCH_TP.DIST, dDistOri)
|
|
Dim dStemDiamOri As Double = 0 : EgtTdbGetCurrToolParam(MCH_TP.STEMDIAM, dStemDiamOri)
|
|
Dim dMaxMatOri As Double = 0 : EgtTdbGetCurrToolParam(MCH_TP.MAXMAT, dMaxMatOri)
|
|
Dim dSideAngOri As Double = 0 : EgtTdbGetCurrToolParam(MCH_TP.SIDEANG, dSideAngOri)
|
|
Dim dCornRadOri As Double = 0 : EgtTdbGetCurrToolParam(MCH_TP.CORNRAD, dCornRadOri)
|
|
Dim dSpeedOri As Double = 0 : EgtTdbGetCurrToolParam(MCH_TP.SPEED, dSpeedOri)
|
|
Dim sUserNotesOri As String = "" : EgtTdbGetCurrToolParam(MCH_TP.USERNOTES, sUserNotesOri)
|
|
Dim sDrawOri As String = "" : EgtTdbGetCurrToolParam(MCH_TP.DRAW, sDrawOri)
|
|
' Imposto parametri correnti all'utensile corrente
|
|
EgtTdbSetCurrToolParam(MCH_TP.HEAD, sHeadName)
|
|
EgtTdbSetCurrToolParam(MCH_TP.EXIT_, nExit)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TYPE, nType)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTLEN, dTotLen)
|
|
EgtTdbSetCurrToolParam(MCH_TP.LEN, dLen)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTDIAM, dTotDiam)
|
|
EgtTdbSetCurrToolParam(MCH_TP.DIAM, dDiam)
|
|
EgtTdbSetCurrToolParam(MCH_TP.THICK, dThick)
|
|
EgtTdbSetCurrToolParam(MCH_TP.DIST, dDist)
|
|
EgtTdbSetCurrToolParam(MCH_TP.STEMDIAM, dStemDiam)
|
|
EgtTdbSetCurrToolParam(MCH_TP.MAXMAT, dMaxMat)
|
|
EgtTdbSetCurrToolParam(MCH_TP.SIDEANG, dSideAng)
|
|
EgtTdbSetCurrToolParam(MCH_TP.CORNRAD, dCornRad)
|
|
EgtTdbSetCurrToolParam(MCH_TP.SPEED, dSpeed)
|
|
EgtTdbSetCurrToolParam(MCH_TP.USERNOTES, sUserNotes)
|
|
EgtTdbSetCurrToolParam(MCH_TP.DRAW, sDraw)
|
|
|
|
' Creo il disegno
|
|
m_nDrawingError = EgtTdbCurrToolDraw(ToolDbWindowVM.m_ProjectSceneContext, ToolDbWindowVM.m_ToolDbSceneContext)
|
|
|
|
EgtSetCurrentContext(ToolDbWindowVM.m_ProjectSceneContext)
|
|
' Ripristino i valori originali dell'utensile corrente
|
|
EgtTdbSetCurrToolParam(MCH_TP.HEAD, sHeadNameOri)
|
|
EgtTdbSetCurrToolParam(MCH_TP.EXIT_, nExitOri)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TYPE, nTypeOri)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTLEN, dTotLenOri)
|
|
EgtTdbSetCurrToolParam(MCH_TP.LEN, dLenOri)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTDIAM, dTotDiamOri)
|
|
EgtTdbSetCurrToolParam(MCH_TP.DIAM, dDiamOri)
|
|
EgtTdbSetCurrToolParam(MCH_TP.THICK, dThickOri)
|
|
EgtTdbSetCurrToolParam(MCH_TP.DIST, dDistOri)
|
|
EgtTdbSetCurrToolParam(MCH_TP.STEMDIAM, dStemDiamOri)
|
|
EgtTdbSetCurrToolParam(MCH_TP.MAXMAT, dMaxMatOri)
|
|
EgtTdbSetCurrToolParam(MCH_TP.SIDEANG, dSideAngOri)
|
|
EgtTdbSetCurrToolParam(MCH_TP.CORNRAD, dCornRadOri)
|
|
EgtTdbSetCurrToolParam(MCH_TP.SPEED, dSpeedOri)
|
|
EgtTdbSetCurrToolParam(MCH_TP.USERNOTES, sUserNotesOri)
|
|
EgtTdbSetCurrToolParam(MCH_TP.DRAW, sDrawOri)
|
|
|
|
Return (m_nDrawingError = 0)
|
|
End Function
|
|
|
|
#End Region ' ToolSceneUpdate
|
|
|
|
#Region "Validation"
|
|
|
|
Private m_NameError As String
|
|
Public ReadOnly Property NameErrorMsg As String
|
|
Get
|
|
Return m_NameError
|
|
End Get
|
|
End Property
|
|
|
|
Private m_SpeedError As String
|
|
Public ReadOnly Property SpeedErrorMsg As String
|
|
Get
|
|
Return m_SpeedError
|
|
End Get
|
|
End Property
|
|
|
|
Private m_TotDiamError As String
|
|
Public ReadOnly Property TotDiamErrorMsg As String
|
|
Get
|
|
Return m_TotDiamError
|
|
End Get
|
|
End Property
|
|
|
|
Private m_DiamError As String
|
|
Public ReadOnly Property DiamErrorMsg As String
|
|
Get
|
|
Return m_DiamError
|
|
End Get
|
|
End Property
|
|
|
|
Private m_CornRadError As String
|
|
Public ReadOnly Property CornRadErrorMsg As String
|
|
Get
|
|
Return m_CornRadError
|
|
End Get
|
|
End Property
|
|
|
|
Private m_TotLenError As String
|
|
Public ReadOnly Property TotLenErrorMsg As String
|
|
Get
|
|
Return m_TotLenError
|
|
End Get
|
|
End Property
|
|
|
|
Private m_LenError As String
|
|
Public ReadOnly Property LenErrorMsg As String
|
|
Get
|
|
Return m_LenError
|
|
End Get
|
|
End Property
|
|
|
|
Private m_DistError As String
|
|
Public ReadOnly Property DistErrorMsg As String
|
|
Get
|
|
Return m_DistError
|
|
End Get
|
|
End Property
|
|
|
|
Private m_MaxMatError As String
|
|
Public ReadOnly Property MaxMatErrorMsg As String
|
|
Get
|
|
Return m_MaxMatError
|
|
End Get
|
|
End Property
|
|
|
|
Private m_ThickError As String
|
|
Public ReadOnly Property ThickErrorMsg As String
|
|
Get
|
|
Return m_ThickError
|
|
End Get
|
|
End Property
|
|
|
|
Private m_StemDiamError As String
|
|
Public ReadOnly Property StemDiamMsg As String
|
|
Get
|
|
Return m_StemDiamError
|
|
End Get
|
|
End Property
|
|
|
|
Private m_DrawError As String
|
|
Public ReadOnly Property DrawErrorMsg As String
|
|
Get
|
|
Return m_DrawError
|
|
End Get
|
|
End Property
|
|
|
|
Private m_SelectedHeadError As String
|
|
Public ReadOnly Property SelectedHeadErrorMsg As String
|
|
Get
|
|
Return m_SelectedHeadError
|
|
End Get
|
|
End Property
|
|
|
|
Private m_SelectedExitError As String
|
|
Public ReadOnly Property SelectedExitErrorMsg As String
|
|
Get
|
|
Return m_SelectedExitError
|
|
End Get
|
|
End Property
|
|
|
|
' Funzione che verifica se una proprietà è valida e attiva/disattiva di conseguenza lista e bottoni
|
|
Private Sub ValidateProperty(propertyName As String)
|
|
If Not GetValidationError(propertyName) Then
|
|
m_delErrorOnTool(True)
|
|
m_delIsEnabledBtns(False, False, True)
|
|
Else
|
|
m_delErrorOnTool(Not IsValid)
|
|
m_delIsEnabledBtns(IsValid And Not IsModified, IsValid, True)
|
|
End If
|
|
NotifyPropertyChanged(propertyName)
|
|
End Sub
|
|
|
|
Private Function GetValidationError(propertyName As String) As Boolean
|
|
Dim bOk As Boolean = True
|
|
Select Case propertyName
|
|
Case "NamePar"
|
|
bOk = Me.ValidateName()
|
|
Case "Speed"
|
|
bOk = Me.ValidateSpeed()
|
|
Case "TotDiam"
|
|
bOk = Me.ValidateTotDiam()
|
|
Case "CornRad"
|
|
bOk = Me.ValidateCornRad()
|
|
Case "Diam"
|
|
bOk = Me.ValidateDiam()
|
|
Case "TotLen"
|
|
bOk = Me.ValidateTotLen()
|
|
Case "Len"
|
|
bOk = Me.ValidateLen()
|
|
Case "MaxMat"
|
|
bOk = Me.ValidateMaxMat()
|
|
Case "Thick"
|
|
bOk = Me.ValidateThick()
|
|
Case "Dist"
|
|
bOk = Me.ValidateDist()
|
|
Case "StemDiam"
|
|
bOk = Me.ValidateStemDiam()
|
|
Case "Draw"
|
|
bOk = Me.ValidateDraw()
|
|
Case "SelectedHead"
|
|
bOk = Me.ValidateSelectedHead()
|
|
Case "SelectedExit"
|
|
bOk = Me.ValidateSelectedExit()
|
|
End Select
|
|
Return bOk
|
|
End Function
|
|
|
|
' Funzione che verifica se il valore immesso in una TextBox non è un numero
|
|
Private Function GetNonNumericTextBox(parameterValue As String) As Boolean
|
|
Return Not IsNumeric(parameterValue)
|
|
End Function
|
|
|
|
Private Function GetErrorString(propertyName As String) As String
|
|
Select Case propertyName
|
|
Case "NamePar"
|
|
Return m_NameError
|
|
Case "Speed"
|
|
Return m_SpeedError
|
|
Case "TotDiam"
|
|
Return m_TotDiamError
|
|
Case "CornRad"
|
|
Return m_CornRadError
|
|
Case "Diam"
|
|
Return m_DiamError
|
|
Case "TotLen"
|
|
Return m_TotLenError
|
|
Case "Len"
|
|
Return m_LenError
|
|
Case "Dist"
|
|
Return m_DistError
|
|
Case "MaxMat"
|
|
Return m_MaxMatError
|
|
Case "Thick"
|
|
Return m_ThickError
|
|
Case "Draw"
|
|
Return m_DrawError
|
|
Case "SelectedHead"
|
|
Return m_SelectedHeadError
|
|
Case "SelectedExit"
|
|
Return m_SelectedExitError
|
|
End Select
|
|
Return String.Empty
|
|
End Function
|
|
|
|
''' <summary>
|
|
''' Returns true if this object has no validation errors.
|
|
''' </summary>
|
|
Public ReadOnly Property IsValid() As Boolean
|
|
Get
|
|
For Each [property] As String In ValidatedProperties
|
|
If Not String.IsNullOrEmpty(GetErrorString([property])) Then
|
|
Return False
|
|
End If
|
|
Next [property]
|
|
Return True
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property IsModified() As Boolean
|
|
Get
|
|
Return m_IsModifiedCorr OrElse m_IsModifiedSelectedExit OrElse m_IsModifiedCornRad OrElse
|
|
m_IsModifiedDiam OrElse m_IsModifiedTotDiam 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_IsModifiedSelectedHead OrElse m_IsModifiedName OrElse m_IsModifiedUserNotes OrElse
|
|
m_IsModifiedSelectedTcPos OrElse m_IsModifiedSelCoolant OrElse
|
|
m_IsModifiedStepPar OrElse m_IsModifiedSideStep OrElse m_IsModifiedStemDiam
|
|
End Get
|
|
End Property
|
|
|
|
Public Sub IsModifiedReset()
|
|
m_IsModifiedCorr = False
|
|
m_IsModifiedSelectedExit = False
|
|
m_IsModifiedCornRad = False
|
|
m_IsModifiedDiam = False
|
|
m_IsModifiedTotDiam = False
|
|
m_IsModifiedFeed = False
|
|
m_IsModifiedEndFeed = False
|
|
m_IsModifiedStartFeed = False
|
|
m_IsModifiedTipFeed = False
|
|
m_IsModifiedLen = False
|
|
m_IsModifiedTotLen = False
|
|
m_IsModifiedMaxMat = False
|
|
m_IsModifiedLonOffset = False
|
|
m_IsModifiedRadOffset = False
|
|
m_IsModifiedSpeed = False
|
|
m_IsModifiedSideAng = False
|
|
m_IsModifiedMaxSpeed = False
|
|
m_IsModifiedThick = False
|
|
m_IsModifiedMaxAbsorption = False
|
|
m_IsModifiedMinFeed = False
|
|
m_IsModifiedDraw = False
|
|
m_IsModifiedSelectedHead = False
|
|
m_IsModifiedName = False
|
|
m_IsModifiedUserNotes = False
|
|
m_IsModifiedSelectedTcPos = False
|
|
m_IsModifiedStepPar = False
|
|
m_IsModifiedSideStep = False
|
|
m_IsModifiedStemDiam = False
|
|
End Sub
|
|
|
|
Private Shared ReadOnly ValidatedProperties() As String = {"Draw", "TotDiam", "CornRad", "Diam", "TotLen", "Len", "Dist", "MaxMat", "Thick", "StemDiam", "Speed", "NamePar", "SelectedHead", "SelectedExit"}
|
|
|
|
Private Function ValidateName() As Boolean
|
|
m_NameError = String.Empty
|
|
Select Case nErrorToolName
|
|
Case 1
|
|
m_NameError = EgtMsg(31403) ' Nome non valido
|
|
Case 2
|
|
m_NameError = EgtMsg(31404) ' I caratteri \ / : * ? " < > | non sono permessi
|
|
End Select
|
|
NotifyPropertyChanged(NameOf(NameErrorMsg))
|
|
If String.IsNullOrEmpty(m_NameError) Then
|
|
Return True
|
|
Else
|
|
Return False
|
|
End If
|
|
End Function
|
|
|
|
Private Function ValidateSpeed() As Boolean
|
|
m_SpeedError = String.Empty
|
|
If 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
|
|
m_SpeedError = EgtMsg(31111) ' La Rotazione deve essere minore della Rotazione Massima
|
|
End If
|
|
End If
|
|
NotifyPropertyChanged(NameOf(SpeedErrorMsg))
|
|
If String.IsNullOrEmpty(m_SpeedError) Then
|
|
Return True
|
|
Else
|
|
Return False
|
|
End If
|
|
End Function
|
|
|
|
Private Function ValidateTotDiam() As Boolean
|
|
m_TotDiamError = String.Empty
|
|
If Not IsNothing(m_TotDiam) Then
|
|
Dim dTotDiam As Double = 0
|
|
StringToLen(m_TotDiam, dTotDiam)
|
|
If dTotDiam < EPS_SMALL Then
|
|
m_TotDiamError = EgtMsg(31120) ' Il Diametro Totale deve essere maggiore di 0
|
|
End If
|
|
End If
|
|
NotifyPropertyChanged(NameOf(TotDiamErrorMsg))
|
|
If String.IsNullOrEmpty(m_TotDiamError) Then
|
|
Return True
|
|
Else
|
|
Return False
|
|
End If
|
|
End Function
|
|
Private Function ValidateCornRad() As Boolean
|
|
m_CornRadError = String.Empty
|
|
If Not IsNothing(m_CornRad) And Not IsNothing(m_Thick) Then
|
|
Dim dCornRad As Double = 0
|
|
StringToLen(m_CornRad, dCornRad)
|
|
Dim dThick As Double = 0
|
|
StringToLen(m_Thick, dThick)
|
|
If (m_Type = MCH_TY.SAW_FLAT Or m_Type = MCH_TY.SAW_STD) And dCornRad > 0.5 * dThick Then
|
|
m_CornRadError = EgtMsg(31135) ' Raggio Corner ha un valore troppo grande
|
|
End If
|
|
End If
|
|
NotifyPropertyChanged(NameOf(CornRadErrorMsg))
|
|
Return String.IsNullOrEmpty(m_CornRadError)
|
|
End Function
|
|
|
|
Private Function ValidateDiam() As Boolean
|
|
m_DiamError = String.Empty
|
|
If Not IsNothing(m_Diam) Then
|
|
Dim dDiam As Double = 0
|
|
StringToLen(m_Diam, dDiam)
|
|
If dDiam < -EPS_SMALL Then
|
|
m_DiamError = EgtMsg(31109) ' Il Diametro deve essere maggiore di 0
|
|
End If
|
|
If Not IsNothing(m_TotDiam) Then
|
|
Dim dTotDiam As Double = 0
|
|
StringToLen(m_TotDiam, dTotDiam)
|
|
If dDiam > dTotDiam + EPS_SMALL Then
|
|
m_DiamError = EgtMsg(31118) ' Il Diametro deve essere minore del Diametro Totale
|
|
End If
|
|
End If
|
|
End If
|
|
NotifyPropertyChanged(NameOf(DiamErrorMsg))
|
|
If String.IsNullOrEmpty(m_DiamError) Then
|
|
Return True
|
|
Else
|
|
Return False
|
|
End If
|
|
End Function
|
|
Private Function ValidateTotLen() As Boolean
|
|
m_TotLenError = String.Empty
|
|
If Not IsNothing(m_TotLen) Then
|
|
Dim dTotLen As Double = 0
|
|
StringToLen(m_TotLen, dTotLen)
|
|
If dTotLen < EPS_SMALL Then
|
|
m_TotLenError = EgtMsg(31115) ' La Lunghezza Totale deve essere maggiore di 0
|
|
End If
|
|
End If
|
|
NotifyPropertyChanged(NameOf(TotLenErrorMsg))
|
|
If String.IsNullOrEmpty(m_TotLenError) Then
|
|
Return True
|
|
Else
|
|
Return False
|
|
End If
|
|
End Function
|
|
|
|
Private Function ValidateLen() As Boolean
|
|
m_LenError = String.Empty
|
|
If Not IsNothing(m_Len) Then
|
|
Dim dLen As Double = 0
|
|
StringToLen(m_Len, dLen)
|
|
If dLen < EPS_SMALL Then
|
|
m_LenError = EgtMsg(31110) ' La Lunghezza deve essere maggiore di 0
|
|
End If
|
|
If Not IsNothing(m_TotLen) Then
|
|
Dim dTotLen As Double = 0
|
|
StringToLen(m_TotLen, dTotLen)
|
|
If dLen > dTotLen + EPS_SMALL Then
|
|
m_LenError = EgtMsg(31113) ' La Lunghezza deve essere minore della Lunghezza Totale
|
|
End If
|
|
End If
|
|
End If
|
|
NotifyPropertyChanged(NameOf(LenErrorMsg))
|
|
If String.IsNullOrEmpty(m_LenError) Then
|
|
Return True
|
|
Else
|
|
Return False
|
|
End If
|
|
End Function
|
|
|
|
Private Function ValidateDist() As Boolean
|
|
m_DistError = String.Empty
|
|
NotifyPropertyChanged(NameOf(DistErrorMsg))
|
|
Return String.IsNullOrEmpty(m_DistError)
|
|
End Function
|
|
|
|
Private Function ValidateMaxMat() As Boolean
|
|
m_MaxMatError = String.Empty
|
|
If Not IsNothing(m_MaxMat) Then
|
|
Dim dMaxMat As Double = 0
|
|
StringToLen(m_MaxMat, dMaxMat)
|
|
' Non ammesso valore nullo o negativo
|
|
If dMaxMat < EPS_SMALL Then
|
|
If ToolDbWindowVM.m_MatType = MaterialType.BEAM And (Type And MCH_TF.MILL) <> 0 Then
|
|
m_MaxMatError = EgtMsg(31142) ' Il Tagliente deve essere maggiore di 0
|
|
Else
|
|
m_MaxMatError = EgtMsg(31106) ' Il Massimo Materiale deve essere maggiore di 0
|
|
End If
|
|
End If
|
|
' Per getto d'acqua o tastatore
|
|
If (Type And MCH_TF.WATERJET) <> 0 OrElse (Type And MCH_TF.PROBE) <> 0 Then
|
|
' Non devo fare controlli
|
|
m_MaxMatError = String.Empty
|
|
' Per lame
|
|
ElseIf (Type And MCH_TF.SAWBLADE) <> 0 Then
|
|
If Not IsNothing(m_Diam) Then
|
|
Dim dDiam As Double = 0
|
|
StringToLen(m_Diam, dDiam)
|
|
If dMaxMat > (0.4 * dDiam) + EPS_SMALL Then
|
|
m_MaxMatError = String.Format(EgtMsg(31117), 0.4 * dDiam) ' Il Massimo Materiale deve essere minore di {0}
|
|
End If
|
|
End If
|
|
' Per tutti gli altri
|
|
Else
|
|
If Not IsNothing(m_Len) Then
|
|
Dim dLen As Double = 0
|
|
StringToLen(m_Len, dLen)
|
|
If dMaxMat > dLen + EPS_SMALL Then
|
|
If ToolDbWindowVM.m_MatType = MaterialType.BEAM And (Type And MCH_TF.MILL) <> 0 Then
|
|
m_MaxMatError = EgtMsg(31143) ' Il Tagliente deve essere minore di Len
|
|
Else
|
|
m_MaxMatError = EgtMsg(31107) ' Il Massimo Materiale deve essere minore di Len
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
NotifyPropertyChanged(NameOf(MaxMatErrorMsg))
|
|
If String.IsNullOrEmpty(m_MaxMatError) Then
|
|
Return True
|
|
Else
|
|
Return False
|
|
End If
|
|
End Function
|
|
Private Function ValidateThick() As Boolean
|
|
m_ThickError = String.Empty
|
|
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
|
|
m_ThickError = EgtMsg(31108) ' Lo Spessore deve essere maggiore di 0
|
|
End If
|
|
End If
|
|
NotifyPropertyChanged(NameOf(ThickErrorMsg))
|
|
If String.IsNullOrEmpty(m_ThickError) Then
|
|
Return True
|
|
Else
|
|
Return False
|
|
End If
|
|
End Function
|
|
|
|
Private Function ValidateStemDiam() As Boolean
|
|
m_StemDiamError = String.Empty
|
|
NotifyPropertyChanged("StemDiamErrorMsg")
|
|
Return String.IsNullOrEmpty(m_StemDiamError)
|
|
End Function
|
|
|
|
Private Function ValidateDraw() As Boolean
|
|
m_DrawError = String.Empty
|
|
If m_nDrawingError = 12 Then
|
|
m_DrawError = EgtMsg(31121) ' Lunghezza troppo piccola con il portautensile
|
|
ElseIf m_nDrawingError = 13 Then
|
|
m_DrawError = EgtMsg(31131) ' Lo Spessore deve essere differente da 0
|
|
ElseIf m_nDrawingError = 14 Then
|
|
m_DrawError = EgtMsg(31132) ' L'Angolo di Lato deve essere minore di 90°
|
|
ElseIf m_nDrawingError = 15 Then
|
|
m_DrawError = EgtMsg(31133) ' L'Angolo di Lato deve essere maggiore di -90°
|
|
ElseIf m_nDrawingError = 16 Then
|
|
m_DrawError = EgtMsg(31135) ' Raggio Corner ha un valore troppo grande
|
|
ElseIf m_nDrawingError = 17 Then
|
|
m_DrawError = EgtMsg(31136) ' Lo Spessore ha un valore troppo piccolo rispetto al Raggio Corner
|
|
ElseIf m_nDrawingError = 18 Then
|
|
m_DrawError = EgtMsg(31137) ' Il diametro risultante supera il Diametro Totale
|
|
ElseIf m_nDrawingError = 19 Then
|
|
m_DrawError = EgtMsg(31138) ' Il diametro risultante è minore di 0
|
|
ElseIf m_nDrawingError = 20 Then
|
|
m_DrawError = EgtMsg(31139) ' Il diametro stelo risultante è minore o uguale a 0
|
|
ElseIf m_nDrawingError = 21 Then
|
|
m_DrawError = EgtMsg(31140) ' Il Massimo Materiale deve essere più grande del Raggio Corner
|
|
ElseIf m_nDrawingError = 22 Then
|
|
m_DrawError = EgtMsg(31134) ' La Lunghezza Totale deve essere maggiore di Lunghezza + Spessore
|
|
ElseIf m_nDrawingError = 23 Then
|
|
m_DrawError = EgtMsg(31144) ' Con portautensile flottante TOOL_OVERHANG deve essere maggiore o uguale a Tagliente
|
|
ElseIf m_nDrawingError = 997 Then
|
|
m_DrawError = EgtMsg(31103) ' Il file non esiste o non è Nge
|
|
ElseIf m_nDrawingError = 998 Then
|
|
m_DrawError = EgtMsg(31104) ' Non esiste il ToolMaker per questo tipo di utensile
|
|
ElseIf m_nDrawingError <> 0 Then
|
|
m_DrawError = EgtMsg(31105) ' Impossibile creare l'utensile con questi parametri
|
|
End If
|
|
NotifyPropertyChanged(NameOf(DrawErrorMsg))
|
|
If String.IsNullOrEmpty(m_DrawError) Then
|
|
Return True
|
|
Else
|
|
Return False
|
|
End If
|
|
End Function
|
|
Private Function ValidateSelectedHead() As Boolean
|
|
m_SelectedHeadError = String.Empty
|
|
If IsNothing(m_SelectedHead) Then
|
|
m_SelectedHeadError = EgtMsg(31127) ' Impostare il tipo di testa.
|
|
Else
|
|
If Not IsNothing(m_HeadList) Then
|
|
If (m_SelectedHead < 0 Or m_SelectedHead >= m_HeadList.Count) OrElse IsNothing(m_HeadList(m_SelectedHead)) Then
|
|
m_SelectedHeadError = EgtMsg(31127) ' Impostare il tipo di testa.
|
|
End If
|
|
End If
|
|
End If
|
|
NotifyPropertyChanged(NameOf(SelectedHeadErrorMsg))
|
|
If String.IsNullOrEmpty(m_SelectedHeadError) Then
|
|
Return True
|
|
Else
|
|
Return False
|
|
End If
|
|
End Function
|
|
|
|
Private Function ValidateSelectedExit() As Boolean
|
|
m_SelectedExitError = String.Empty
|
|
If IsNothing(m_SelectedExit) Then
|
|
m_SelectedExitError = EgtMsg(31128) ' Impostare il tipo di uscita.
|
|
Else
|
|
If Not IsNothing(m_ExitList) Then
|
|
If (m_SelectedExit < 0 Or m_SelectedExit >= m_ExitList.Count) OrElse IsNothing(m_ExitList(m_SelectedExit)) Then
|
|
m_SelectedExitError = EgtMsg(31128) ' Impostare il tipo di uscita.
|
|
End If
|
|
End If
|
|
End If
|
|
NotifyPropertyChanged(NameOf(SelectedExitErrorMsg))
|
|
If String.IsNullOrEmpty(m_SelectedExitError) Then
|
|
Return True
|
|
Else
|
|
Return False
|
|
End If
|
|
End Function
|
|
|
|
#End Region ' Validation
|
|
|
|
#Region "COMMANDS"
|
|
|
|
#Region "OpenDrawFileCommand"
|
|
|
|
''' <summary>
|
|
''' Returns a command that create a new tool.
|
|
''' </summary>
|
|
Public ReadOnly Property OpenDrawFileCommand As ICommand
|
|
Get
|
|
If m_cmdOpenDrawFile Is Nothing Then
|
|
m_cmdOpenDrawFile = New Command(AddressOf OpenDrawFile)
|
|
End If
|
|
Return m_cmdOpenDrawFile
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Creata the new tool. This method is invoked by the NewCommand.
|
|
''' </summary>
|
|
Public Sub OpenDrawFile(ByVal param As Object)
|
|
Dim OpenFileDialog As New Microsoft.Win32.OpenFileDialog With {
|
|
.Title = "Open draw file",
|
|
.DefaultExt = ".nge",
|
|
.Filter = "File Nge (.nge)|*.nge",
|
|
.InitialDirectory = ToolDbWindowVM.m_sToolDirPath,
|
|
.FileName = m_Draw
|
|
}
|
|
If OpenFileDialog.ShowDialog <> True Then Return
|
|
'Dim OpenFileDialog As New EgtManageFileDialogV(Application.Current.MainWindow, New EgtManageFileDialogVM()) With {
|
|
' .Title = "Open draw file",
|
|
' .InitialDirectory = ToolDbWindowVM.m_sToolDirPath,
|
|
' .Filter = "File Nge (.nge)|*.nge",
|
|
' .FileName = m_Draw
|
|
'}
|
|
'If OpenFileDialog.ShowDialog() <> Windows.Forms.DialogResult.OK Then Return
|
|
m_Draw = Path.GetFileName(OpenFileDialog.FileName)
|
|
' Se il file è preso da una cartella diversa da quella degli utensili viene copiato nella cartella degli utensili
|
|
Dim sFilePath As String = Path.GetDirectoryName(OpenFileDialog.FileName)
|
|
If sFilePath <> ToolDbWindowVM.m_sToolDirPath Then
|
|
File.Copy(OpenFileDialog.FileName, Path.Combine(ToolDbWindowVM.m_sToolDirPath, m_Draw))
|
|
End If
|
|
UpdateSceneToolDraw()
|
|
End Sub
|
|
|
|
Private Function FilterFileName(sPath As String) As Boolean
|
|
Dim FileName As String = Path.GetFileNameWithoutExtension(sPath)
|
|
Return Not IsUUID(FileName)
|
|
End Function
|
|
|
|
#End Region ' OpenDrawFileCommand
|
|
|
|
#Region "AutoDrawCommand"
|
|
|
|
''' <summary>
|
|
''' Returns a command that create a new tool.
|
|
''' </summary>
|
|
Public ReadOnly Property AutoDrawCommand As ICommand
|
|
Get
|
|
If m_cmdAutoDraw Is Nothing Then
|
|
m_cmdAutoDraw = New Command(AddressOf AutoDraw)
|
|
End If
|
|
Return m_cmdAutoDraw
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Creata the new tool. This method is invoked by the NewCommand.
|
|
''' </summary>
|
|
Public Sub AutoDraw(ByVal param As Object)
|
|
m_Draw = m_Uuid & ".nge"
|
|
UpdateSceneToolDraw()
|
|
End Sub
|
|
|
|
|
|
#End Region ' AutoDrawCommand
|
|
|
|
#Region "UpdateNoteCommand"
|
|
''' <summary>
|
|
''' Comando per la visualizzazione della combobox
|
|
''' </summary>
|
|
''' <returns></returns>
|
|
Public ReadOnly Property ShowNoteListComboCommand As ICommand
|
|
Get
|
|
If m_cmdShowNoteListCombo Is Nothing Then
|
|
m_cmdShowNoteListCombo = New Command(AddressOf ShowNoteListCombo)
|
|
End If
|
|
Return m_cmdShowNoteListCombo
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Funzione per la visualizzazione della combobox
|
|
''' </summary>
|
|
''' <param name="param"></param>
|
|
Public Sub ShowNoteListCombo(ByVal param As Object)
|
|
' Rendo visibile la combobox
|
|
If m_NotesListCombo.Count > 0 Then SetComboAddVisibility(Visibility.Visible)
|
|
' Disabilito pulsante che mostra la combobox
|
|
SetShowNoteListCombo_IsEnable(False)
|
|
|
|
NotifyPropertyChanged(NameOf(NotesListCombo))
|
|
NotifyPropertyChanged(NameOf(ComboAddVisibility))
|
|
NotifyPropertyChanged(NameOf(ShowNoteListCombo_IsEnable))
|
|
End Sub
|
|
|
|
#End Region ' UpdateNoteCommand
|
|
|
|
#End Region ' Commands
|
|
|
|
End Class
|
|
|
|
Public Class HeadItem
|
|
|
|
Private m_HName As String
|
|
Public ReadOnly Property HName As String
|
|
Get
|
|
Return m_HName
|
|
End Get
|
|
End Property
|
|
|
|
Private m_HText As String
|
|
Public ReadOnly Property HText As String
|
|
Get
|
|
Return m_HText
|
|
End Get
|
|
End Property
|
|
|
|
Sub New(sHName As String, sHText As String)
|
|
m_HName = sHName
|
|
m_HText = sHText
|
|
End Sub
|
|
|
|
End Class
|
|
|
|
''' <summary>
|
|
''' Class that represent a Converter that convert UUID to ***** in Draw param
|
|
''' </summary>
|
|
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
|
|
Else
|
|
Return Nothing
|
|
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 |