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" ''' ''' Creata the new tool. This method is invoked by the NewCommand. ''' 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