Files
OmagCUT/ToolsDbPageUC.xaml.vb
T
Emmanuele Sassi 8ecec9c42a OmagCUT :
- Aggiunta possibilità di avere fino a dieci assi in simulazione.
- Aggiunta possibilità di avere fino a nove assi nella barra di stato della macchina.
- Aggiunta opzione per avere barra di stato macchina sul lato destro per i pc 16:9.
- Implementazione variabili che permettono di correggere l'aspetto degli elementi grafici per la visualizzazione in 16:9.
- Migliorie grafiche varie.
2016-11-18 17:53:37 +00:00

1101 lines
45 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)
' 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()
' 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
' Per macchine con ToolChanger lame su H1.1 e altri utensili su H2.1
If m_CurrMachine.bShowToolChanger Then
EgtTdbSetCurrToolParam(MCH_TP.HEAD, If(bSaw, "H1", "H2"))
EgtTdbSetCurrToolParam(MCH_TP.EXIT_, 1)
' Altrimenti lame su H1.1 e altri utensili su H1.2
Else
EgtTdbSetCurrToolParam(MCH_TP.HEAD, "H1")
EgtTdbSetCurrToolParam(MCH_TP.EXIT_, If(bSaw, 1, 2))
End If
' Per macchine senza ToolChanger, resetto la posizione su questo
If Not m_CurrMachine.bShowToolChanger 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()
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)
End Sub
Private Sub ViewToolParams()
NameTxBl.Visibility = Windows.Visibility.Visible
NameTxBx.Visibility = Windows.Visibility.Visible
TCPosBrd.Visibility = If(m_CurrMachine.bShowToolChanger, 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.Visible
CorrTxBx.Visibility = Windows.Visibility.Visible
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
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
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
EgtTdbSetCurrToolParam(MCH_TP.TOTLEN, dVal)
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
EgtLuaExecLine("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
EgtLuaExecLine("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
EgtLuaExecLine("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.DialogResult
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
'Namespace TreeViewItem
' Public Class CathegoryItem
' Inherits TreeViewItemBase
' 'Private m_sTitle As String
' Private m_sPictureString As String
' Private m_nFType As Integer
' Private m_Items As ObservableCollection(Of CustomItem)
' 'Public Property Name As String
' ' Get
' ' Return m_sTitle
' ' End Get
' ' Set(value As String)
' ' m_sTitle = value
' ' End Set
' 'End Property
' Public ReadOnly Property PictureString As String
' Get
' Return "/Resources/ToolsTreeViewImages/Lama.png"
' End Get
' End Property
' Public ReadOnly Property nFType As Integer
' Get
' Return m_nFType
' End Get
' End Property
' Public Property Items As ObservableCollection(Of CustomItem)
' Get
' Return m_Items
' End Get
' Set(value As ObservableCollection(Of CustomItem))
' m_Items = value
' End Set
' End Property
' Sub New(sName As String, nType As Integer)
' Name = sName
' m_nFType = nType
' Me.Items = New ObservableCollection(Of CustomItem)
' End Sub
' End Class
' Public Class CustomItem
' Inherits TreeViewItemBase
' 'Private m_sTitle As String
' Private m_nType As Integer
' 'Public Property Name As String
' ' Get
' ' Return m_sTitle
' ' End Get
' ' Set(value As String)
' ' m_sTitle = value
' ' End Set
' 'End Property
' Public ReadOnly Property nType As Integer
' Get
' Return m_nType
' End Get
' End Property
' Sub New(Title As String, nType As Integer)
' Me.Name = Title
' m_nType = nType
' End Sub
' End Class
' Public Class TreeViewItemBase
' Implements INotifyPropertyChanged
' Private m_Name As String
' Public Property Name As String
' Get
' Return m_Name
' End Get
' Set(value As String)
' If (value <> m_Name) Then
' m_Name = value
' NotifyPropertyChanged("Name")
' End If
' End Set
' End Property
' Private m_isSelected As Boolean
' Public Property IsSelected As Boolean
' Get
' Return m_isSelected
' End Get
' Set(value As Boolean)
' If (value <> m_isSelected) Then
' m_isSelected = value
' NotifyPropertyChanged("IsSelected")
' End If
' End Set
' End Property
' Private m_isExpanded As Boolean
' Public Property IsExpanded As Boolean
' Get
' Return m_isExpanded
' End Get
' Set(value As Boolean)
' If (value <> m_isExpanded) Then
' m_isExpanded = value
' NotifyPropertyChanged("IsExpanded")
' End If
' End Set
' End Property
' Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
' Public Sub NotifyPropertyChanged(propName As String)
' RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName))
' End Sub
' End Class
'End Namespace