Files
OmagCUT/ToolsDbPageUC.xaml.vb
T
Dario Sassi 9dc3d750b9 OmagCUT 1.9c3 :
- sistemazioni per tagli singoli
- aggiunta possibilità di lancio script SentProg.lua (già in 1.9c2)
- aggiunta possibilità di visualizzare note in utensili.
2018-03-26 18:49:30 +00:00

979 lines
43 KiB
VB.net

Imports System.Collections.ObjectModel
Imports OmagCUT.TreeViewItem
Imports System.ComponentModel
Imports EgtUILib
Imports EgtWPFLib
Public Class ToolsDbPageUC
' Riferimento alla MainWindow
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
' Riferimento alla macchina corrente
Private m_CurrMachine As CurrentMachine = m_MainWindow.m_CurrentMachine
' Lista degli utensili
Dim ToolsList As New ObservableCollection(Of CathegoryItem)
' Proprietà
Private m_bFirst As Boolean = True
' Direttorio costruttori geometria utensili
Private m_sToolMakersDir As String = String.Empty
' Stringa identificativa variabile geometrica in modifica
Private m_sCurrVar As String = String.Empty
' Parametri geometrici dell'utensile corrente
Private m_nToolType As Integer = MCH_TY.NONE
Private m_sToolName As String = String.Empty
Private m_sToolHolder As String = String.Empty
Private m_dToolLen As Double = 0
Private m_dToolDiam As Double = 0
Private m_dToolThick As Double = 0
Private m_dToolMaxMat As Double = 0
'Array che contengono i tipi di Coolant
Dim ToolCoolant() As String
Dim SawCoolant() As String
'Variabile che conserva l'utensile precedentemente selezionato usata nel caso si selezioni annulla quando si cambia utensile selezionato
Private m_OldItem As Object
' Dichiarazione Scene
Friend WithEvents ToolScene As New Scene
Dim ToolSceneHost As New System.Windows.Forms.Integration.WindowsFormsHost
Private Sub ToolsDbPage_Initialized(sender As Object, e As EventArgs)
'Assegnazione scena all'host e posizionamento nella ToolsDbPageGrid
ToolSceneHost.Child = ToolScene
ToolSceneHost.SetValue(Grid.ColumnProperty, 2)
ToolSceneHost.SetValue(Grid.RowProperty, 0)
Me.ToolsDbPageGrid.Children.Add(ToolSceneHost)
' Assegno la lista degli utensili come sorgente del treeview
ToolTreeView.ItemsSource = ToolsList
' Imposto testo delle combobox da file dei messaggi
ToolCoolant = {EgtMsg(MSG_COMBOBOXPARAM + 1), EgtMsg(MSG_COMBOBOXPARAM + 2), EgtMsg(MSG_COMBOBOXPARAM + 3), EgtMsg(MSG_COMBOBOXPARAM + 4)}
SawCoolant = {EgtMsg(MSG_COMBOBOXPARAM + 1), EgtMsg(MSG_COMBOBOXPARAM + 3)}
'Imposto i messaggi letti dal file dei messaggi
NewBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 15)
SaveBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 17)
RemoveBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 18)
NameTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 1)
TCPosTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 2)
HeadTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 3)
ExitTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 4)
SpeedGpBx.Header = EgtMsg(MSG_TOOLSDBPAGEUC + 5)
SpeedTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 6)
MaxSpeedTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 7)
FeedGpBx.Header = EgtMsg(MSG_TOOLSDBPAGEUC + 8)
FeedTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 9)
TipFeedTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 10)
StartFeedTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 11)
EndFeedTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 12)
CoolantTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 13)
CorrTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 14)
OffsetGpBx.Header = EgtMsg(MSG_TOOLSDBPAGEUC + 15)
LonOffsetTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 16)
RadOffsetTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 17)
MaxAbsorptionTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 18)
MinFeedTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 19)
MaxMatTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 20)
UserNotesTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 25)
' Associo TextBox e Label
Dim TempLabel1 As New Label
TempLabel1.Content = SpeedTxBl.Text
SpeedTxBx.Tag = TempLabel1
Dim TempLabel2 As New Label
TempLabel2.Content = MaxSpeedTxBl.Text
MaxSpeedTxBx.Tag = TempLabel2
Dim TempLabel3 As New Label
TempLabel3.Content = FeedTxBl.Text
FeedTxBx.Tag = TempLabel3
Dim TempLabel4 As New Label
TempLabel4.Content = TipFeedTxBl.Text
TipFeedTxBx.Tag = TempLabel4
Dim TempLabel5 As New Label
TempLabel5.Content = StartFeedTxBl.Text
StartFeedTxBx.Tag = TempLabel5
Dim TempLabel6 As New Label
TempLabel6.Content = EndFeedTxBl.Text
EndFeedTxBx.Tag = TempLabel6
Dim TempLabel7 As New Label
TempLabel7.Content = CorrTxBl.Text
CorrTxBx.Tag = TempLabel7
Dim TempLabel8 As New Label
TempLabel8.Content = LonOffsetTxBl.Text
LonOffsetTxBx.Tag = TempLabel8
Dim TempLabel9 As New Label
TempLabel9.Content = RadOffsetTxBl.Text
RadOffsetTxBx.Tag = TempLabel9
Dim TempLabel10 As New Label
TempLabel10.Content = MaxAbsorptionTxBl.Text
MaxAbsorptionTxBx.Tag = TempLabel10
Dim TempLabel11 As New Label
TempLabel11.Content = MinFeedTxBl.Text
MinFeedTxBx.Tag = TempLabel11
Dim TempLabel12 As New Label
TempLabel12.Content = MaxMatTxBl.Text
MaxMatTxBx.Tag = TempLabel12
End Sub
Private Sub ToolsDbPage_Loaded(sender As Object, e As RoutedEventArgs)
If m_bFirst Then
' imposto colore di default
Dim DefColor As New Color3d(0, 0, 0)
GetPrivateProfileColor(S_GEOMDB, K_DEFAULTCOLOR, DefColor, m_MainWindow.GetIniFile())
ToolScene.SetDefaultMaterial(DefColor)
' imposto colori sfondo
Dim BackTopColor As New Color3d(224, 224, 224)
GetPrivateProfileColor(S_SCENE, K_BACKTOP, BackTopColor, m_MainWindow.GetIniFile())
Dim BackBotColor As New Color3d(BackTopColor)
GetPrivateProfileColor(S_SCENE, K_BACKBOTTOM, BackBotColor, m_MainWindow.GetIniFile())
ToolScene.SetViewBackground(BackTopColor, BackBotColor)
' imposto colore di evidenziazione
Dim MarkColor As New Color3d(255, 255, 0)
GetPrivateProfileColor(S_SCENE, K_MARK, MarkColor, m_MainWindow.GetIniFile())
ToolScene.SetMarkMaterial(MarkColor)
' imposto colore per superfici selezionate
Dim SelSurfColor As New Color3d(255, 255, 192)
GetPrivateProfileColor(S_SCENE, K_SELSURF, SelSurfColor, m_MainWindow.GetIniFile())
ToolScene.SetSelSurfMaterial(SelSurfColor)
' imposto tipo e colore del rettangolo di zoom
Dim bOutline As Boolean = True
Dim ZwColor As New Color3d(0, 0, 0)
GetPrivateProfileZoomWin(S_SCENE, K_ZOOMWIN, bOutline, ZwColor, m_MainWindow.GetIniFile())
ToolScene.SetZoomWinAttribs(bOutline, ZwColor)
' imposto colore della linea di distanza
Dim DstLnColor As New Color3d(255, 0, 0)
GetPrivateProfileColor(S_SCENE, K_DISTLINE, DstLnColor, m_MainWindow.GetIniFile())
ToolScene.SetDistLineMaterial(DstLnColor)
' imposto parametri OpenGL
Dim nDriver As Integer = GetPrivateProfileInt(S_OPENGL, K_DRIVER, 3, m_MainWindow.GetIniFile())
Dim b2Buff As Boolean = (GetPrivateProfileInt(S_OPENGL, K_DOUBLEBUFFER, 1, m_MainWindow.GetIniFile()) <> 0)
Dim nColorBits As Integer = GetPrivateProfileInt(S_OPENGL, K_COLORBITS, 32, m_MainWindow.GetIniFile())
Dim nDepthBits As Integer = GetPrivateProfileInt(S_OPENGL, K_DEPTHBITS, 32, m_MainWindow.GetIniFile())
ToolScene.SetViewAttributes(nDriver, b2Buff, nColorBits, nDepthBits)
' inizializzo la scena (DB geometrico + visualizzazione)
ToolScene.Init()
' dimensione lineare max in pixel delle textures
Dim nTxrMaxLinPix As Integer = GetPrivateProfileInt(S_SCENE, K_TEXMAXLINPIX, 4096, m_MainWindow.GetIniFile())
EgtSetTextureMaxLinPixels(nTxrMaxLinPix)
' inibisco selezione diretta da Scene
ToolScene.SetStatusNull()
' leggo direttorio toolmakers
GetPrivateProfileString(S_MACH, K_TOOLMAKERSDIR, "", m_sToolMakersDir, m_MainWindow.GetIniFile())
' Inizializzo le famiglie di utensili nell'albero
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
InitializeToolFamily(m_CurrMachine.bSaw, MCH_TF.SAWBLADE, EgtMsg(MSG_TOOLSDBPAGEUC + 31))
InitializeToolFamily(m_CurrMachine.bDrill, MCH_TF.DRILLBIT, EgtMsg(MSG_TOOLSDBPAGEUC + 32))
InitializeToolFamily(m_CurrMachine.bMill, MCH_TF.MILL, EgtMsg(MSG_TOOLSDBPAGEUC + 33))
' Sposto tutti i parametri in su di una riga se testa e uscita sono disattivati
If Not m_CurrMachine.bShowHeadExit Then
MoveParam()
End If
m_bFirst = False
Else
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
End If
InitializeFirstSelectedItem()
End Sub
'Funzione che permette l'inizializzazione di albero e parametri all'apertura della pagina ToolsDb
Private Sub InitializeFirstSelectedItem()
If ToolsList.Count > 0 Then
For Each ToolFamily In ToolsList
If ToolFamily.Items.Count > 0 Then
ToolFamily.IsExpanded = True
ToolFamily.Items(0).IsSelected = True
EgtTdbSetCurrTool(ToolFamily.Items(0).Name)
m_OldItem = ToolFamily.Items(0)
GetToolParams()
ViewToolParams()
ViewToolDraw()
Exit Sub
End If
Next
ToolsList.Item(0).IsSelected = True
HideToolParams()
End If
End Sub
Private Sub MoveParam()
SpeedGpBx.SetValue(Grid.RowProperty, 3)
FeedGpBx.SetValue(Grid.RowProperty, 7)
CoolantTxBl.SetValue(Grid.RowProperty, 13)
CoolantCmBx.SetValue(Grid.RowProperty, 13)
CorrTxBl.SetValue(Grid.RowProperty, 13)
CorrTxBx.SetValue(Grid.RowProperty, 13)
OffsetGpBx.SetValue(Grid.RowProperty, 16)
AbsorptionBrd.SetValue(Grid.RowProperty, 23)
MaxMatTxBl.SetValue(Grid.RowProperty, 20)
MaxMatTxBx.SetValue(Grid.RowProperty, 20)
End Sub
Private Sub NewBtn_Click(sender As Object, e As RoutedEventArgs) Handles NewBtn.Click
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
If TypeOf ToolTreeView.SelectedItem Is CathegoryItem Then
Dim SelectedCathegory As CathegoryItem = ToolTreeView.SelectedItem
Dim NewName As String = SelectedCathegory.Name
EgtTdbGetToolNewName(NewName)
If EgtTdbAddTool(NewName, SelectedCathegory.nFType) Then
For Each ToolFamily In ToolsList
If ToolFamily.nFType = SelectedCathegory.nFType Then
Dim NewToolItem As New CustomItem(NewName, SelectedCathegory.nFType)
ToolFamily.Items.Add(NewToolItem)
NewToolItem.IsSelected = True
ToolFamily.IsExpanded = True
m_OldItem = ToolTreeView.SelectedItem
Exit For
End If
Next
' 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 m_CurrMachine.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
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
' Salvo e aggiorno interfaccia utente
EgtTdbSaveCurrTool()
GetToolParams()
ViewToolParams()
ViewToolDraw()
End If
ElseIf TypeOf ToolTreeView.SelectedItem Is CustomItem Then
Dim SelectedCathegory As CustomItem = ToolTreeView.SelectedItem
Dim NewName As String = SelectedCathegory.Name
EgtTdbGetToolNewName(NewName)
If EgtTdbCopyTool(SelectedCathegory.Name, NewName) Then
' Annullo disegno
EgtTdbSetCurrToolParam(MCH_TP.DRAW, "")
EgtTdbSaveCurrTool()
' Ricalcolo disegno (creo file con nuovo nome)
SaveToolDraw()
' Aggiorno lista utensili
Dim CurrType As Integer
EgtTdbGetCurrToolParam(MCH_TP.TYPE, CurrType)
For Each ToolFamily In ToolsList
If (ToolFamily.nFType And CurrType) <> 0 Then
Dim NewToolItem As New CustomItem(NewName, CurrType)
ToolFamily.Items.Add(NewToolItem)
NewToolItem.IsSelected = True
GetToolParams()
m_OldItem = ToolTreeView.SelectedItem
Exit For
End If
Next
End If
End If
End Sub
Private Sub SaveBtn_Click(sender As Object, e As RoutedEventArgs) Handles SaveBtn.Click
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
SetToolParams()
EgtTdbSaveCurrTool()
SaveToolDraw()
m_sToolName = NameTxBx.Text
Dim CurrTool As CustomItem = TryCast(m_OldItem, CustomItem)
If CurrTool IsNot Nothing Then
CurrTool.Name = m_sToolName
End If
End Sub
Private Sub RemoveBtn_Click(sender As Object, e As RoutedEventArgs) Handles RemoveBtn.Click
If TypeOf ToolTreeView.SelectedItem Is CustomItem Then
Dim SelectedItem As CustomItem = ToolTreeView.SelectedItem
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
' Cancello disegno dell'utensile
EraseToolDraw()
' Cancello l'utensile
EgtTdbRemoveTool(SelectedItem.Name)
' Rimuovo il nome dell'albero
For Each ToolFamily In ToolsList
If (ToolFamily.nFType And SelectedItem.nType) <> 0 Then
ToolFamily.Items.Remove(SelectedItem)
If ToolFamily.Items.Count = 0 Then
ToolFamily.IsSelected = True
HideToolParams()
HideToolDraw()
Else
ToolFamily.Items(0).IsSelected = True
EgtTdbSetCurrTool(ToolFamily.Items(0).Name)
m_OldItem = ToolFamily.Items(0)
GetToolParams()
ViewToolParams()
ViewToolDraw()
End If
End If
Next
End If
End Sub
Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click
' Se necessario, chiedo se salvare l'utensile corrente
If Not SaveCurrTool() Then
Exit Sub
End If
' Salvo il DB utensili
EgtTdbSave()
' Esco dalla pagina
m_MainWindow.m_MachinePageUC.MachinePageGrid.Children.Remove(m_MainWindow.m_MachinePageUC.m_ToolsDbPageUC)
m_MainWindow.m_MachinePageUC.MachinePageGrid.Children.Add(m_MainWindow.m_MachinePageUC.m_AlarmsPageUC)
m_MainWindow.m_MachinePageUC.m_ActiveMachinePage = MachinePageUC.MachinePages.Alarms
m_MainWindow.m_MachinePageUC.ToolsDBBtn.IsChecked = False
m_MainWindow.m_MachinePageUC.AlarmsBtn.IsChecked = True
End Sub
Friend Sub InitializeToolFamily(bEnabled As Boolean, nFType As Integer, sFName As String)
If Not bEnabled Then Return
' Inserisco categoria ed eventuali elementi
Dim ToolCathegory As New CathegoryItem(sFName, nFType)
Dim nType As Integer = 0
Dim ToolName As String = String.Empty
If EgtTdbGetFirstTool(nFType, ToolName, nType) Then
ToolCathegory.Items.Add(New CustomItem(ToolName, nType))
While EgtTdbGetNextTool(nFType, ToolName, nType)
ToolCathegory.Items.Add(New CustomItem(ToolName, nType))
End While
End If
ToolsList.Add(ToolCathegory)
End Sub
Private Sub GetToolParams()
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
EgtTdbGetCurrToolParam(MCH_TP.TYPE, m_nToolType)
Dim ToolString As String = String.Empty
Dim ToolInt As Integer = 0
Dim ToolDouble As Double = 0
EgtTdbGetCurrToolParam(MCH_TP.NAME, m_sToolName)
NameTxBx.Text = m_sToolName
EgtTdbGetCurrToolParam(MCH_TP.TCPOS, ToolString)
TCPosTxBx.Text = ToolString
EgtTdbGetCurrToolParam(MCH_TP.MAXMAT, ToolDouble)
MaxMatTxBx.Text = LenToString(ToolDouble, 3)
EgtTdbGetCurrToolParam(MCH_TP.LONOFFSET, ToolDouble)
LonOffsetTxBx.Text = LenToString(ToolDouble, 3)
EgtTdbGetCurrToolParam(MCH_TP.RADOFFSET, ToolDouble)
RadOffsetTxBx.Text = LenToString(ToolDouble, 3)
EgtTdbGetCurrToolParam(MCH_TP.COOLANT, ToolInt)
Dim ToolType As Integer
EgtTdbGetCurrToolParam(MCH_TP.TYPE, ToolType)
If (ToolType And MCH_TF.SAWBLADE) <> 0 Then
CoolantCmBx.ItemsSource = SawCoolant
If ToolInt = 0 Then
CoolantCmBx.SelectedIndex = 0
ElseIf ToolInt = 2 Then
CoolantCmBx.SelectedIndex = 1
End If
Else
CoolantCmBx.ItemsSource = ToolCoolant
CoolantCmBx.SelectedIndex = ToolInt
End If
EgtTdbGetCurrToolParam(MCH_TP.CORR, ToolInt)
CorrTxBx.Text = ToolInt.ToString()
EgtTdbGetCurrToolParam(MCH_TP.MAXSPEED, ToolDouble)
MaxSpeedTxBx.Text = DoubleToString(ToolDouble, 3)
EgtTdbGetCurrToolParam(MCH_TP.SPEED, ToolDouble)
SpeedTxBx.Text = DoubleToString(ToolDouble, 3)
EgtTdbGetCurrToolParam(MCH_TP.FEED, ToolDouble)
FeedTxBx.Text = LenToString(ToolDouble, 3)
EgtTdbGetCurrToolParam(MCH_TP.TIPFEED, ToolDouble)
TipFeedTxBx.Text = LenToString(ToolDouble, 3)
EgtTdbGetCurrToolParam(MCH_TP.STARTFEED, ToolDouble)
StartFeedTxBx.Text = LenToString(ToolDouble, 3)
EgtTdbGetCurrToolParam(MCH_TP.ENDFEED, ToolDouble)
EndFeedTxBx.Text = LenToString(ToolDouble, 3)
EgtTdbGetCurrToolParam(MCH_TP.MAXABSORPTION, ToolDouble)
MaxAbsorptionTxBx.Text = DoubleToString(ToolDouble, 3)
EgtTdbGetCurrToolParam(MCH_TP.MINFEED, ToolDouble)
MinFeedTxBx.Text = LenToString(ToolDouble, 3)
EgtTdbGetCurrToolParam(MCH_TP.HEAD, ToolString)
HeadTxBx.Text = ToolString
EgtTdbGetCurrToolParam(MCH_TP.EXIT_, ToolInt)
ExitTxBx.Text = ToolInt.ToString()
EgtTdbGetCurrToolParam(MCH_TP.USERNOTES, ToolString)
UserNotesTxBx.Text = ToolString
End Sub
Friend Sub SetToolParams()
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
Dim dTemp As Double
Dim nTemp As Integer
EgtTdbSetCurrToolParam(MCH_TP.NAME, NameTxBx.Text)
EgtTdbSetCurrToolParam(MCH_TP.TCPOS, TCPosTxBx.Text)
If m_nToolType = MCH_TY.SAW_STD Then
StringToLen(MaxMatTxBx.Text, dTemp)
EgtTdbSetCurrToolParam(MCH_TP.MAXMAT, dTemp)
End If
If m_nToolType <> MCH_TY.DRILL_STD Then
StringToLen(LonOffsetTxBx.Text, dTemp)
EgtTdbSetCurrToolParam(MCH_TP.LONOFFSET, dTemp)
StringToLen(RadOffsetTxBx.Text, dTemp)
EgtTdbSetCurrToolParam(MCH_TP.RADOFFSET, dTemp)
End If
If m_nToolType = MCH_TY.SAW_STD Then
If CoolantCmBx.SelectedIndex = 0 Then
nTemp = 0
ElseIf CoolantCmBx.SelectedIndex = 1 Then
nTemp = 2
End If
Else
nTemp = CoolantCmBx.SelectedIndex
End If
EgtTdbSetCurrToolParam(MCH_TP.COOLANT, nTemp)
Int32.TryParse(CorrTxBx.Text, nTemp)
EgtTdbSetCurrToolParam(MCH_TP.CORR, nTemp)
StringToDouble(MaxSpeedTxBx.Text, dTemp)
EgtTdbSetCurrToolParam(MCH_TP.MAXSPEED, dTemp)
StringToDouble(SpeedTxBx.Text, dTemp)
EgtTdbSetCurrToolParam(MCH_TP.SPEED, dTemp)
StringToLen(FeedTxBx.Text, dTemp)
EgtTdbSetCurrToolParam(MCH_TP.FEED, dTemp)
StringToLen(TipFeedTxBx.Text, dTemp)
EgtTdbSetCurrToolParam(MCH_TP.TIPFEED, dTemp)
StringToLen(StartFeedTxBx.Text, dTemp)
EgtTdbSetCurrToolParam(MCH_TP.STARTFEED, dTemp)
StringToLen(EndFeedTxBx.Text, dTemp)
EgtTdbSetCurrToolParam(MCH_TP.ENDFEED, dTemp)
StringToDouble(MaxAbsorptionTxBx.Text, dTemp)
EgtTdbSetCurrToolParam(MCH_TP.MAXABSORPTION, dTemp)
StringToLen(MinFeedTxBx.Text, dTemp)
EgtTdbSetCurrToolParam(MCH_TP.MINFEED, dTemp)
EgtTdbSetCurrToolParam(MCH_TP.HEAD, HeadTxBx.Text)
Int32.TryParse(ExitTxBx.Text, nTemp)
EgtTdbSetCurrToolParam(MCH_TP.EXIT_, nTemp)
EgtTdbSetCurrToolParam(MCH_TP.USERNOTES, UserNotesTxBx.Text)
End Sub
Private Sub ViewToolParams()
NameTxBl.Visibility = Windows.Visibility.Visible
NameTxBx.Visibility = Windows.Visibility.Visible
Dim bShowTcPos As Boolean = ((m_nToolType = MCH_TY.SAW_STD And m_CurrMachine.ShowToolChanger <> 0) Or m_CurrMachine.ShowToolChanger = 1)
TCPosBrd.Visibility = If(bShowTcPos, Windows.Visibility.Visible, Windows.Visibility.Hidden)
HeadExitBrd.Visibility = If(m_CurrMachine.bShowHeadExit, Windows.Visibility.Visible, Windows.Visibility.Hidden)
SpeedGpBx.Visibility = Windows.Visibility.Visible
FeedGpBx.Visibility = Windows.Visibility.Visible
CoolantTxBl.Visibility = Windows.Visibility.Visible
CoolantCmBx.Visibility = Windows.Visibility.Visible
CorrTxBl.Visibility = Windows.Visibility.Hidden
CorrTxBx.Visibility = Windows.Visibility.Hidden
MaxMatTxBl.Visibility = If(m_nToolType = MCH_TY.SAW_STD, Windows.Visibility.Visible, Windows.Visibility.Hidden)
MaxMatTxBx.Visibility = If(m_nToolType = MCH_TY.SAW_STD, Windows.Visibility.Visible, Windows.Visibility.Hidden)
OffsetGpBx.Visibility = If(m_nToolType <> MCH_TY.DRILL_STD, Windows.Visibility.Visible, Windows.Visibility.Hidden)
If m_nToolType = MCH_TY.DRILL_STD Then
AbsorptionBrd.SetValue(Grid.RowProperty, 19)
Else
AbsorptionBrd.SetValue(Grid.RowProperty, 23)
End If
AbsorptionBrd.Visibility = Windows.Visibility.Visible
Dim bShowUserNotes As Boolean = ((m_nToolType = MCH_TY.SAW_STD And m_CurrMachine.ShowUserNotes <> 0) Or m_CurrMachine.ShowUserNotes = 1)
UserNotesTxBl.Visibility = If(bShowUserNotes, Windows.Visibility.Visible, Windows.Visibility.Hidden)
UserNotesTxBx.Visibility = If(bShowUserNotes, Windows.Visibility.Visible, Windows.Visibility.Hidden)
End Sub
Private Sub HideToolParams()
NameTxBl.Visibility = Windows.Visibility.Hidden
NameTxBx.Visibility = Windows.Visibility.Hidden
TCPosBrd.Visibility = Windows.Visibility.Hidden
HeadExitBrd.Visibility = Windows.Visibility.Hidden
SpeedGpBx.Visibility = Windows.Visibility.Hidden
FeedGpBx.Visibility = Windows.Visibility.Hidden
CoolantTxBl.Visibility = Windows.Visibility.Hidden
CoolantCmBx.Visibility = Windows.Visibility.Hidden
CorrTxBl.Visibility = Windows.Visibility.Hidden
CorrTxBx.Visibility = Windows.Visibility.Hidden
MaxMatTxBl.Visibility = Windows.Visibility.Hidden
MaxMatTxBx.Visibility = Windows.Visibility.Hidden
OffsetGpBx.Visibility = Windows.Visibility.Hidden
AbsorptionBrd.Visibility = Windows.Visibility.Hidden
UserNotesTxBl.Visibility = Windows.Visibility.Hidden
UserNotesTxBx.Visibility = Windows.Visibility.Hidden
End Sub
Private Sub ToolTreeView_PreviewMouseUp(sender As Object, e As MouseButtonEventArgs) Handles ToolTreeView.PreviewMouseUp
' Se necessario, chiedo se salvare l'utensile corrente
If Not SaveCurrTool() Then
Dim PreviousTool As CustomItem = m_OldItem
PreviousTool.IsSelected = True
Exit Sub
End If
' Aggiorno
If TypeOf ToolTreeView.SelectedItem Is CathegoryItem Then
Dim SelectedCathegory As CathegoryItem = ToolTreeView.SelectedItem
SelectedCathegory.IsExpanded = Not SelectedCathegory.IsExpanded
HideToolParams()
HideToolDraw()
ElseIf TypeOf ToolTreeView.SelectedItem Is CustomItem Then
Dim SelectedTool As CustomItem = ToolTreeView.SelectedItem
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
EgtTdbSetCurrTool(SelectedTool.Name)
GetToolParams()
ViewToolParams()
ViewToolDraw()
End If
m_OldItem = ToolTreeView.SelectedItem
End Sub
Private Sub ViewToolDraw()
' Preparo dati per modello dell'utensile e lo creo
If Not PrepareToolDraw() OrElse Not CreateToolDraw() Then
EgtSetCurrentContext(ToolScene.GetCtx())
EgtNewFile()
End If
' Aggiorno visualizzazione
EgtSetCurrentContext(ToolScene.GetCtx())
EgtSetView(VT.TOP, False)
EgtZoom(ZM.ALL)
End Sub
Private Sub HideToolDraw()
EgtSetCurrentContext(ToolScene.GetCtx())
EgtNewFile()
EgtDraw()
End Sub
Private Sub OnMyMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles ToolScene.OnMouseDownScene
' Annullo nome variabile corrente
m_sCurrVar = String.Empty
' Si può selezionare solo con il tasto sinistro e se stato NULL
If e.Button <> Windows.Forms.MouseButtons.Left Or
Not ToolScene.IsStatusNull() Then
Return
End If
' Verifico se selezionato testo di quota
EgtSetObjFilterForSelWin(False, False, False, False, True)
Dim nSel As Integer
EgtSelect(e.Location, Scene.DIM_SEL, Scene.DIM_SEL, nSel)
Dim nId As Integer = EgtGetFirstObjInSelWin()
While nId <> GDB_ID.NULL
' Recupero eventuale info di variabile
Dim sVar As String = String.Empty
If EgtGetInfo(nId, "Var", sVar) Then
m_sCurrVar = sVar
EgtSelectObj(nId)
EgtDraw()
Exit While
End If
nId = EgtGetNextObjInSelWin()
End While
' Se non modifica variabile
If String.IsNullOrWhiteSpace(m_sCurrVar) Then
Return
End If
' Recupero il valore della variabile
Dim dVal As Double
If Not GetVariableValue(dVal) Then
Return
End If
' Recupero indice messaggio titolo per calcolatrice
Dim nMsg As Integer = 0
Select Case GetVariableType()
Case MCH_TP.LEN
nMsg = MSG_TOOLSDBPAGEUC + 21 ' Lunghezza
Case MCH_TP.DIAM
nMsg = MSG_TOOLSDBPAGEUC + 22 ' Diametro
Case MCH_TP.THICK
nMsg = MSG_TOOLSDBPAGEUC + 23 ' Spessore
Case MCH_TP.MAXMAT
nMsg = MSG_TOOLSDBPAGEUC + 24 ' Tagliente
End Select
' Predispongo calcolatrice (converto sempre in UIUnits perchè tutte lunghezze)
Dim EgtCalculator As New EgtCalculatorWD(m_MainWindow, EgtToUiUnits(dVal), 300, WidthType.PIXEL, 0, 0, EgtMsg(nMsg))
' Se inserito valore valido e confermato
If EgtCalculator.DialogResult Then
RecreateToolDraw(EgtFromUiUnits(EgtCalculator.dResult))
End If
' Aggiorno visualizzazione
EgtSetCurrentContext(ToolScene.GetCtx())
EgtDeselectAll()
EgtSetView(VT.TOP, False)
EgtZoom(ZM.ALL)
End Sub
Private Sub RecreateToolDraw(ByVal dVal As Double)
' Aggiorno dati utensile
If Not UpdateCurrVariableValue(dVal) Then
Return
End If
' Ricreo utensile
If CreateToolDraw() Then
' Aggiorno utensile nel DB con il valore modificato
SetVariableValue(dVal)
' Ritorno al valore precedente
Else
RevertCurrVariableValue()
CreateToolDraw()
End If
End Sub
Private Function GetVariableValue(ByRef dVal As Double) As Boolean
' Recupero valore variabile
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
Return EgtTdbGetCurrToolParam(GetVariableType(), dVal)
End Function
Private Function SetVariableValue(ByVal dVal As Double) As Boolean
' Recupero tipo di variabile
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
Dim nType As Integer = GetVariableType()
If m_nToolType = MCH_TY.SAW_STD Then
Select Case nType
Case MCH_TP.LEN
' lunghezza totale maggiorata di 1 mm per non essere riconosciuta come lama piatta
EgtTdbSetCurrToolParam(MCH_TP.TOTLEN, dVal + 1)
Case MCH_TP.DIAM
EgtTdbSetCurrToolParam(MCH_TP.TOTDIAM, dVal)
End Select
ElseIf m_nToolType = MCH_TY.DRILL_STD Then
Select Case nType
Case MCH_TP.LEN
EgtTdbSetCurrToolParam(MCH_TP.TOTLEN, dVal)
Case MCH_TP.DIAM
EgtTdbSetCurrToolParam(MCH_TP.TOTDIAM, dVal)
End Select
ElseIf m_nToolType = MCH_TY.MILL_STD Then
Select Case nType
Case MCH_TP.LEN
EgtTdbSetCurrToolParam(MCH_TP.TOTLEN, dVal)
Case MCH_TP.DIAM
EgtTdbSetCurrToolParam(MCH_TP.TOTDIAM, dVal)
End Select
End If
Return EgtTdbSetCurrToolParam(nType, dVal)
End Function
Private Function UpdateCurrVariableValue(ByVal dVal As Double) As Boolean
' Assegno valore variabile corrente
Select Case GetVariableType()
Case MCH_TP.LEN
m_dToolLen = dVal
Case MCH_TP.DIAM
m_dToolDiam = dVal
Case MCH_TP.THICK
m_dToolThick = dVal
Case MCH_TP.MAXMAT
m_dToolMaxMat = dVal
Case Else
Return False
End Select
Return True
End Function
Private Function RevertCurrVariableValue() As Boolean
' Assegno valore variabile corrente
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
Select Case GetVariableType()
Case MCH_TP.LEN
EgtTdbGetCurrToolParam(MCH_TP.LEN, m_dToolLen)
Case MCH_TP.DIAM
EgtTdbGetCurrToolParam(MCH_TP.DIAM, m_dToolDiam)
Case MCH_TP.THICK
EgtTdbGetCurrToolParam(MCH_TP.THICK, m_dToolThick)
Case MCH_TP.MAXMAT
EgtTdbGetCurrToolParam(MCH_TP.MAXMAT, m_dToolMaxMat)
Case Else
Return False
End Select
Return True
End Function
Private Function GetVariableType() As Integer
Dim nType As Integer = MCH_TP.NONE
If m_sCurrVar = "LEN" Then
nType = MCH_TP.LEN
ElseIf m_sCurrVar = "DIAM" Then
nType = MCH_TP.DIAM
ElseIf m_sCurrVar = "THICK" Then
nType = MCH_TP.THICK
ElseIf m_sCurrVar = "MAXMAT" Then
nType = MCH_TP.MAXMAT
End If
Return nType
End Function
Private Function PrepareToolDraw() As Boolean
Select Case m_nToolType
Case MCH_TY.DRILL_STD
' assegno nome portautensile
LoadToolHolder(K_DRILLHOLDER)
' assegno parametri geometrici
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
EgtTdbGetCurrToolParam(MCH_TP.LEN, m_dToolLen)
If m_dToolLen < EPS_SMALL Then
m_dToolLen = 120
End If
EgtTdbGetCurrToolParam(MCH_TP.DIAM, m_dToolDiam)
If m_dToolDiam < EPS_SMALL Then
m_dToolDiam = 20
End If
m_dToolThick = 0
EgtTdbGetCurrToolParam(MCH_TP.MAXMAT, m_dToolMaxMat)
If m_dToolMaxMat < EPS_SMALL Then
m_dToolMaxMat = 40
End If
' passo all'ambiente di disegno dell'utensile
EgtSetCurrentContext(ToolScene.GetCtx())
' carico funzioni di creazione utensile
Return LoadToolMaker(K_DRILLMAKER)
Case MCH_TY.SAW_STD
' assegno nome portautensile
LoadToolHolder(K_SAWBLADEHOLDER)
' assegno parametri geometrici
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
EgtTdbGetCurrToolParam(MCH_TP.LEN, m_dToolLen)
If m_dToolLen < EPS_SMALL Then
m_dToolLen = 20
End If
EgtTdbGetCurrToolParam(MCH_TP.DIAM, m_dToolDiam)
If m_dToolDiam < EPS_SMALL Then
m_dToolDiam = 400
End If
EgtTdbGetCurrToolParam(MCH_TP.THICK, m_dToolThick)
If m_dToolThick < EPS_SMALL Then
m_dToolThick = 5
End If
EgtTdbGetCurrToolParam(MCH_TP.MAXMAT, m_dToolMaxMat)
If m_dToolMaxMat < EPS_SMALL Then
m_dToolMaxMat = 40
End If
' passo all'ambiente di disegno dell'utensile
EgtSetCurrentContext(ToolScene.GetCtx())
' carico funzioni di creazione utensile
Return LoadToolMaker(K_SAWBLADEMAKER)
Case MCH_TY.MILL_STD
' assegno nome portautensile
LoadToolHolder(K_MILLHOLDER)
' assegno parametri geometrici
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
EgtTdbGetCurrToolParam(MCH_TP.LEN, m_dToolLen)
If m_dToolLen < EPS_SMALL Then
m_dToolLen = 120
End If
EgtTdbGetCurrToolParam(MCH_TP.DIAM, m_dToolDiam)
If m_dToolDiam < EPS_SMALL Then
m_dToolDiam = 20
End If
m_dToolThick = 0
EgtTdbGetCurrToolParam(MCH_TP.MAXMAT, m_dToolMaxMat)
If m_dToolMaxMat < EPS_SMALL Then
m_dToolMaxMat = 40
End If
' passo all'ambiente di disegno dell'utensile
EgtSetCurrentContext(ToolScene.GetCtx())
' carico funzioni di creazione utensile
Return LoadToolMaker(K_MILLMAKER)
End Select
Return False
End Function
Private Sub LoadToolHolder(ByVal sKey As String)
Dim sHolder As String = String.Empty
GetPrivateProfileString(S_TOOLS, sKey, "", sHolder, m_MainWindow.GetMachIniFile())
If String.IsNullOrWhiteSpace(sHolder) Then
m_sToolHolder = String.Empty
Else
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
EgtTdbGetToolHolderDir(m_sToolHolder)
m_sToolHolder += "\" & sHolder
End If
End Sub
Private Function LoadToolMaker(ByVal sKey As String) As Boolean
Dim sMaker As String = String.Empty
GetPrivateProfileString(S_TOOLS, sKey, "", sMaker, m_MainWindow.GetMachIniFile())
Return EgtLuaExecFile(m_sToolMakersDir & "\" & sMaker)
End Function
Private Function CreateToolDraw() As Boolean
Select Case m_nToolType
Case MCH_TY.DRILL_STD
' passo all'ambiente di disegno dell'utensile
EgtSetCurrentContext(ToolScene.GetCtx())
' imposto dati utensile
EgtLuaSetGlobStringVar("TOOL.TOOLHOLDER", m_sToolHolder)
EgtLuaSetGlobNumVar("TOOL.LEN", m_dToolLen)
EgtLuaSetGlobNumVar("TOOL.DIAM", m_dToolDiam)
EgtLuaSetGlobNumVar("TOOL.MAXMAT", m_dToolMaxMat)
' eseguo creazione utensile
EgtLuaCallFunction("CreateTool")
' recupero errore
Dim nErr As Integer = 999
EgtLuaGetGlobIntVar("TOOL.ERR", nErr)
Return (nErr = 0)
Case MCH_TY.SAW_STD
' passo all'ambiente di disegno dell'utensile
EgtSetCurrentContext(ToolScene.GetCtx())
' imposto dati utensile
EgtLuaSetGlobStringVar("TOOL.TOOLHOLDER", m_sToolHolder)
EgtLuaSetGlobNumVar("TOOL.LEN", m_dToolLen)
EgtLuaSetGlobNumVar("TOOL.DIAM", m_dToolDiam)
Dim dCore As Double = If(m_dToolLen >= m_dToolThick, m_dToolThick - 1, 2 * m_dToolLen - m_dToolThick)
EgtLuaSetGlobNumVar("TOOL.CORE", dCore)
EgtLuaSetGlobNumVar("TOOL.THICK", m_dToolThick)
EgtLuaSetGlobNumVar("TOOL.MAXMAT", m_dToolMaxMat)
' eseguo creazione utensile
EgtLuaCallFunction("CreateTool")
' recupero errore
Dim nErr As Integer = 999
EgtLuaGetGlobIntVar("TOOL.ERR", nErr)
Return (nErr = 0)
Case MCH_TY.MILL_STD
' passo all'ambiente di disegno dell'utensile
EgtSetCurrentContext(ToolScene.GetCtx())
' imposto dati utensile
EgtLuaSetGlobStringVar("TOOL.TOOLHOLDER", m_sToolHolder)
EgtLuaSetGlobNumVar("TOOL.LEN", m_dToolLen)
EgtLuaSetGlobNumVar("TOOL.DIAM", m_dToolDiam)
EgtLuaSetGlobNumVar("TOOL.MAXMAT", m_dToolMaxMat)
' eseguo creazione utensile
EgtLuaCallFunction("CreateTool")
' recupero errore
Dim nErr As Integer = 999
EgtLuaGetGlobIntVar("TOOL.ERR", nErr)
Return (nErr = 0)
End Select
Return False
End Function
Private Function SaveToolDraw() As Boolean
If m_nToolType = MCH_TY.DRILL_STD Or
m_nToolType = MCH_TY.SAW_STD Or
m_nToolType = MCH_TY.MILL_STD Then
' nome e direttorio del file da salvare
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
Dim sDrawName As String = String.Empty
EgtTdbGetCurrToolParam(MCH_TP.UUID, sDrawName)
sDrawName = sDrawName & ".nge"
Dim sPath As String = String.Empty
EgtTdbGetToolDir(sPath)
sPath = sPath & "\" & sDrawName
' passo all'ambiente di disegno dell'utensile
EgtSetCurrentContext(ToolScene.GetCtx())
' nascondo layer ausiliario
Dim nAuxId As Integer = GDB_ID.NULL
nAuxId = EgtGetFirstNameInGroup(EgtGetFirstGroupInGroup(GDB_ID.ROOT), "AUX")
EgtSetStatus(nAuxId, GDB_ST.OFF)
' se lama devo ruotare -90 deg attorno a Z+
If m_nToolType = MCH_TY.SAW_STD Then
EgtRotate(EgtGetFirstGroupInGroup(GDB_ID.ROOT), Point3d.ORIG(), Vector3d.Z_AX(), -90, GDB_RT.GLOB)
End If
' salvo il modello
Dim bOk As Boolean = EgtSaveFile(sPath, NGE.CMPTEXT)
' eseguo controrotazione per lama
If m_nToolType = MCH_TY.SAW_STD Then
EgtRotate(EgtGetFirstGroupInGroup(GDB_ID.ROOT), Point3d.ORIG(), Vector3d.Z_AX(), 90, GDB_RT.GLOB)
End If
' ripristino visualizzazione layer aux
EgtSetStatus(nAuxId, GDB_ST.ON_)
' salvo nome del modello
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
EgtTdbSetCurrToolParam(MCH_TP.DRAW, sDrawName)
EgtTdbSaveCurrTool()
Return bOk
End If
Return False
End Function
Private Function EraseToolDraw() As Boolean
' nome e direttorio del file da cancellare
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
Dim sDrawName As String = String.Empty
EgtTdbGetCurrToolParam(MCH_TP.DRAW, sDrawName)
Dim sPath As String = String.Empty
EgtTdbGetToolDir(sPath)
sPath = sPath & "\" & sDrawName
' se esiste lo cancello
Try
If My.Computer.FileSystem.FileExists(sPath) Then
My.Computer.FileSystem.DeleteFile(sPath)
End If
Return True
Catch ex As Exception
Return False
End Try
End Function
Friend Function SaveCurrTool() As Boolean
SetToolParams()
If EgtTdbIsCurrToolModified() Then
Dim SaveCurrToolWnd As EgtMsgBox
If m_MainWindow.IsSiemensPc Then
SaveCurrToolWnd = New EgtMsgBox(m_MainWindow, Me.ActualWidth / 15 * 5, EgtMsgBox.WidthType.PIXEL, "", EgtMsg(MSG_EGTMSGBOX + 2), EgtMsgBox.Buttons.YES_NO_CANCEL, EgtMsgBox.Icons.NULL)
Else
SaveCurrToolWnd = New EgtMsgBox(m_MainWindow, "", EgtMsg(MSG_EGTMSGBOX + 2), EgtMsgBox.Buttons.YES_NO_CANCEL, EgtMsgBox.Icons.NULL)
End If
Select Case SaveCurrToolWnd.m_nPressedBtn
Case 0 ' Annulla
Return False
Case 1 ' Si
EgtTdbSaveCurrTool()
SaveToolDraw()
m_sToolName = NameTxBx.Text
Dim CurrTool As CustomItem = TryCast(m_OldItem, CustomItem)
If CurrTool IsNot Nothing Then
CurrTool.Name = m_sToolName
End If
Case 2 ' No
EgtTdbSetCurrTool(m_sToolName)
GetToolParams()
End Select
End If
Return True
End Function
Private Sub NameTxBx_EgtClosed(sender As Object, e As EventArgs) Handles NameTxBx.EgtClosed
' Elimino spazi iniziali e finali
NameTxBx.Text = NameTxBx.Text.Trim()
' Se cambiato nome
If NameTxBx.Text <> m_sToolName Then
' Imposto contesto macchina
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
' Verifico se nome già esistente
Dim TempName As String = NameTxBx.Text
EgtTdbGetToolNewName(TempName)
' se già esistente, avviso e rifiuto
If TempName <> NameTxBx.Text Then
' Nome già utilizzato
Dim InfoBox As New EgtMsgBox(m_MainWindow, "", EgtMsg(91104), EgtMsgBox.Buttons.OK, EgtMsgBox.Icons.ESCLAMATION)
' Ripristino il precedente
NameTxBx.Text = m_sToolName
End If
End If
End Sub
End Class