162 lines
6.7 KiB
VB.net
162 lines
6.7 KiB
VB.net
Imports EgtUILib
|
|
Imports EgtWPFLib5
|
|
|
|
Public Class MyToolDbWindowVM
|
|
Inherits ToolDbWindowVM
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
Sub New(sMachineDirPath As String, sMachineIniPath As String, ProjectSceneContext As Integer)
|
|
MyBase.New(sMachineDirPath, sMachineIniPath, ProjectSceneContext)
|
|
End Sub
|
|
|
|
#End Region ' Constructor
|
|
|
|
Private Sub ManageSpecialSawNotes()
|
|
' Note utente devono essere visualizzate
|
|
If CurrentMachine.ShowUserNotes = 0 Then Return
|
|
' Utensile deve essere lama
|
|
Dim nType As Integer
|
|
EgtTdbGetCurrToolParam(MCH_TP.TYPE, nType)
|
|
If nType <> MCH_TY.SAW_STD Then Return
|
|
' Recupero le note utente
|
|
Dim sUserNotes As String = ""
|
|
EgtTdbGetCurrToolParam(MCH_TP.USERNOTES, sUserNotes)
|
|
' Se esistono
|
|
If Not String.IsNullOrEmpty(sUserNotes) Then
|
|
' Le divido in parti
|
|
Dim bIsCode As Boolean = False
|
|
Dim bIsSuppl As Boolean = False
|
|
Dim bIsSN As Boolean = False
|
|
Dim sItems() As String = sUserNotes.Split(";".ToCharArray)
|
|
For i As Integer = 0 To sItems.Count() - 1
|
|
If sItems(i).Contains("CODE=") Then
|
|
bIsCode = True
|
|
ElseIf sItems(i).Contains("SUPPL=") Then
|
|
bIsSuppl = True
|
|
ElseIf sItems(i).Contains("S/N=") Then
|
|
bIsSN = True
|
|
ElseIf sItems(i).Contains("START=") Then
|
|
sItems(i) = ""
|
|
ElseIf sItems(i).Contains("PROD=") Then
|
|
sItems(i) = ""
|
|
End If
|
|
Next
|
|
sUserNotes = ""
|
|
For i As Integer = 0 To sItems.Count() - 1
|
|
If Not String.IsNullOrWhiteSpace(sItems(i)) Then
|
|
sUserNotes &= sItems(i) & ";"
|
|
End If
|
|
Next
|
|
If Not bIsCode Then sUserNotes &= "CODE= ;"
|
|
If Not bIsSuppl Then sUserNotes &= "SUPPL= ;"
|
|
If Not bIsSN Then sUserNotes &= "S/N= ;"
|
|
Else
|
|
sUserNotes = "CODE= ; SUPPL= ; S/N= ;"
|
|
End If
|
|
sUserNotes &= "START=" & My.Computer.Clock.LocalTime.ToString("dd.MM.yyyy HH:mm:ss") & ";"
|
|
sUserNotes &= "PROD=0;"
|
|
EgtTdbSetCurrToolParam(MCH_TP.USERNOTES, sUserNotes)
|
|
End Sub
|
|
|
|
|
|
#Region "COMMANDS"
|
|
|
|
#Region "NewCommand"
|
|
|
|
''' <summary>
|
|
''' Creata the new tool. This method is invoked by the NewCommand.
|
|
''' </summary>
|
|
Public Overrides Sub NewPar(ByVal param As Object)
|
|
EgtSetCurrentContext(ToolDbWindowVM.ProjectSceneContext)
|
|
' Verifico se sia selezionata una famiglia
|
|
Dim NewToolItem As ToolTreeViewItem
|
|
If TypeOf param Is FamilyToolTreeViewItem Then
|
|
Dim ToolFamily As FamilyToolTreeViewItem = DirectCast(param, FamilyToolTreeViewItem)
|
|
Dim NewName As String = ToolFamily.Name
|
|
EgtTdbGetToolNewName(NewName)
|
|
If EgtTdbAddTool(NewName, ToolFamily.ToolType) Then
|
|
NewToolItem = New ToolTreeViewItem(NewName)
|
|
ToolFamily.Items.Add(NewToolItem)
|
|
EgtTdbSaveCurrTool()
|
|
NewToolItem.NewTool = True
|
|
' Determino il tipo di utensile
|
|
Dim nType As Integer
|
|
EgtTdbGetCurrToolParam(MCH_TP.TYPE, nType)
|
|
Dim bSaw As Boolean = ((nType And MCH_TF.SAWBLADE) <> 0)
|
|
' Imposto testa e uscita
|
|
' Sempre lame su H1.1 e altri utensili su H1.2
|
|
EgtTdbSetCurrToolParam(MCH_TP.HEAD, "H1")
|
|
EgtTdbSetCurrToolParam(MCH_TP.EXIT_, If(bSaw, 1, 2))
|
|
' Per macchine senza ToolChanger, resetto la posizione su questo
|
|
If CurrentMachine.ShowToolChanger = 0 Then
|
|
EgtTdbSetCurrToolParam(MCH_TP.TCPOS, "")
|
|
End If
|
|
' Imposto dimensioni standard
|
|
If (nType And MCH_TF.DRILLBIT) <> 0 Then
|
|
EgtTdbSetCurrToolParam(MCH_TP.LEN, 80.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTLEN, 80.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.DIAM, 20.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTDIAM, 20.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.MAXMAT, 40.0)
|
|
ElseIf (nType And MCH_TF.SAWBLADE) <> 0 Then
|
|
EgtTdbSetCurrToolParam(MCH_TP.LEN, 80.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTLEN, 80.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.DIAM, 600.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTDIAM, 600.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.THICK, 5.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.MAXMAT, 40.0)
|
|
ElseIf (nType And MCH_TF.MILL) <> 0 Then
|
|
' devo distinguere i casi di MILL_STD e MILL_NO_TIP
|
|
EgtTdbSetCurrToolParam(MCH_TP.LEN, 80.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTLEN, 80.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.DIAM, 20.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTDIAM, 20.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.MAXMAT, 40.0)
|
|
End If
|
|
' Gestione speciale eventuali note tipo Hofmann
|
|
ManageSpecialSawNotes()
|
|
' Salvo e aggiorno interfaccia utente
|
|
EgtTdbSaveCurrTool()
|
|
' Seleziono il nuovo utensile
|
|
If Not ToolFamily.IsExpanded Then ToolFamily.IsExpanded = True
|
|
NewToolItem.IsSelected = True
|
|
NewToolItem.NotifyPropertyChanged("IsSelected")
|
|
End If
|
|
' Verifico se sia selezionato un utensile
|
|
ElseIf TypeOf param Is ToolTreeViewItem Then
|
|
Dim ToolCopied As ToolTreeViewItem = DirectCast(param, ToolTreeViewItem)
|
|
Dim NewName As String = ToolCopied.Name
|
|
EgtTdbGetToolNewName(NewName)
|
|
If EgtTdbCopyTool(ToolCopied.Name, NewName) Then
|
|
' Gestione speciale eventuali note tipo Hofmann
|
|
ManageSpecialSawNotes()
|
|
' Elimino disegno che non deve essere copiato
|
|
EgtTdbSetCurrToolParam(MCH_TP.DRAW, String.Empty)
|
|
Dim CurrType As Integer
|
|
EgtTdbGetCurrToolParam(MCH_TP.TYPE, CurrType)
|
|
For Each ToolFamily In ToolsList
|
|
If (ToolFamily.ToolType And CurrType) <> 0 Then
|
|
NewToolItem = New ToolTreeViewItem(NewName)
|
|
ToolFamily.Items.Add(NewToolItem)
|
|
EgtTdbSaveCurrTool()
|
|
NewToolItem.NewTool = True
|
|
' Reimposto l'utensile vecchio nel Db per deselezionarlo e fare le verifiche correttamente
|
|
EgtTdbSetCurrTool(ToolCopied.Name)
|
|
ToolCopied.IsSelected = False
|
|
ToolCopied.NotifyPropertyChanged("IsSelected")
|
|
NewToolItem.IsSelected = True
|
|
Exit For
|
|
End If
|
|
Next
|
|
End If
|
|
End If
|
|
|
|
End Sub
|
|
|
|
#End Region ' NewCommand
|
|
|
|
#End Region ' Commands
|
|
|
|
End Class
|