Files

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