2eacaff301
- aggiunta gestione svuotature (manca scelta lavorazione da interfaccia) - ora compilazione richiede dichiarazione delle variabili, modificati di conseguenza i diversi sorgenti.
1059 lines
49 KiB
VB.net
1059 lines
49 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
|
|
' Stringa identificativa variabile geometrica in modifica
|
|
Private m_sCurrVar As String = String.Empty
|
|
' Parametri dell'utensile corrente
|
|
Private m_nToolType As Integer = MCH_TY.NONE
|
|
Private m_sToolName As String = String.Empty
|
|
Private m_sEndLife As String = String.Empty
|
|
|
|
' Array che contengono i tipi di Coolant
|
|
Dim ToolCoolant() As String
|
|
Dim SawCoolant() As String
|
|
|
|
' Conservo l'utensile precedentemente selezionato per usarlo 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: No, Interna, Esterna, Entrambe
|
|
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)
|
|
SerNbrTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 26) ' Serial Number
|
|
CodeTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 27) ' Code
|
|
SupplierTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 28) ' Supplier
|
|
EndLifeTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 29) ' End Life
|
|
|
|
' 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
|
|
ToolScene.SetViewBackground(GetBackTopColor(), GetBackBottomColor())
|
|
' 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()
|
|
' Inizializzo le famiglie di utensili nell'albero
|
|
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
|
|
InitializeToolGroup(m_CurrMachine.bSaw, MCH_TY.SAW_STD, EgtMsg( 90751))
|
|
InitializeToolGroup(m_CurrMachine.bDrill, MCH_TY.DRILL_STD, EgtMsg( 90752))
|
|
InitializeToolGroup(m_CurrMachine.bMill, MCH_TY.MILL_STD, EgtMsg( 90753))
|
|
InitializeToolGroup(m_CurrMachine.bCupWheel, MCH_TY.MILL_NOTIP, EgtMsg( 90754))
|
|
InitializeToolGroup(m_CurrMachine.bPolishingWheel, MCH_TY.MILL_POLISHING, EgtMsg( 90756))
|
|
InitializeToolGroup(m_CurrMachine.bWaterJet, MCH_TY.WATERJET, EgtMsg( 90755))
|
|
' 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 As CathegoryItem 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)
|
|
SerNbrTxBl.SetValue(Grid.RowProperty, 27)
|
|
SerNbrTxBx.SetValue(Grid.RowProperty, 27)
|
|
CodeTxBl.SetValue(Grid.RowProperty, 27)
|
|
CodeTxBx.SetValue(Grid.RowProperty, 27)
|
|
SupplierTxBl.SetValue(Grid.RowProperty, 29)
|
|
SupplierTxBx.SetValue(Grid.RowProperty, 29)
|
|
EndLifeTxBl.SetValue(Grid.RowProperty, 29)
|
|
EndLifeChBx.SetValue(Grid.RowProperty, 29)
|
|
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.nTType) Then
|
|
For Each ToolFamily As CathegoryItem In ToolsList
|
|
If ToolFamily.nTType = SelectedCathegory.nTType Then
|
|
Dim NewToolItem As New CustomItem(NewName, SelectedCathegory.nTType)
|
|
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)
|
|
' Imposto testa e uscita
|
|
' Sempre lame su H1.1 e utensili foretto, fresa e mola da scasso su H1.2
|
|
If ( nType And MCH_TF.WATERJET) = 0 then
|
|
Dim bSaw As Boolean = ((nType And MCH_TF.SAWBLADE) <> 0)
|
|
EgtTdbSetCurrToolParam( MCH_TP.HEAD, "H1")
|
|
EgtTdbSetCurrToolParam( MCH_TP.EXIT_, If(bSaw, 1, 2))
|
|
' Waterjet sempre su H2.1
|
|
Else
|
|
EgtTdbSetCurrToolParam( MCH_TP.HEAD, "H2")
|
|
EgtTdbSetCurrToolParam( MCH_TP.EXIT_, 1)
|
|
End If
|
|
' 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 = MCH_TY.DRILL_STD Then
|
|
EgtTdbSetCurrToolParam(MCH_TP.LEN, 120.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTLEN, 120.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.DIAM, 20.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTDIAM, 20.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.MAXMAT, 40.0)
|
|
ElseIf nType = MCH_TY.SAW_STD 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 = MCH_TY.MILL_STD Then
|
|
EgtTdbSetCurrToolParam(MCH_TP.LEN, 120.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTLEN, 120.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.DIAM, 20.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTDIAM, 20.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.MAXMAT, 40.0)
|
|
ElseIf nType = MCH_TY.MILL_NOTIP Then
|
|
EgtTdbSetCurrToolParam(MCH_TP.LEN, 120.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTLEN, 120.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.DIAM, 90.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTDIAM, 90.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.MAXMAT, 10.0)
|
|
ElseIf nType = MCH_TY.MILL_POLISHING Then
|
|
EgtTdbSetCurrToolParam(MCH_TP.LEN, 120.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTLEN, 120.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.DIAM, 100.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTDIAM, 100.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.MAXMAT, 10.0)
|
|
ElseIf nType = MCH_TY.WATERJET Then
|
|
EgtTdbSetCurrToolParam(MCH_TP.LEN, 5.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTLEN, 5.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.DIAM, 1.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTDIAM, 1.0)
|
|
EgtTdbSetCurrToolParam(MCH_TP.MAXMAT, 45.0)
|
|
End If
|
|
' Gestione speciale eventuali note tipo Hofmann
|
|
ManageSpecialNotes()
|
|
' 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
|
|
' Gestione speciale eventuali note tipo Hofmann
|
|
ManageSpecialNotes()
|
|
' Annullo disegno
|
|
EgtTdbSetCurrToolParam(MCH_TP.DRAW, "")
|
|
EgtTdbSaveCurrTool()
|
|
' Aggiorno lista utensili
|
|
Dim CurrType As Integer
|
|
EgtTdbGetCurrToolParam(MCH_TP.TYPE, CurrType)
|
|
For Each ToolFamily As CathegoryItem In ToolsList
|
|
If ToolFamily.nTType = CurrType 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 Function GetSpecials() As Boolean
|
|
' Note speciali devono essere visualizzate con l'utensile corrente
|
|
If m_CurrMachine.ShowSpecials = 0 Then Return False
|
|
Dim nType As Integer
|
|
EgtTdbGetCurrToolParam(MCH_TP.TYPE, nType)
|
|
If nType <> MCH_TY.SAW_STD And m_CurrMachine.ShowSpecials = 2 Then Return False
|
|
' Imposto valori di default
|
|
CodeTxBx.Text = ""
|
|
SupplierTxBx.Text = ""
|
|
SerNbrTxBx.Text = ""
|
|
EndLifeChBx.IsChecked = False
|
|
m_sEndLife = ""
|
|
UserNotesTxBx.Text = ""
|
|
' Recupero le note utente
|
|
Dim sUserNotes As String = ""
|
|
EgtTdbGetCurrToolParam(MCH_TP.USERNOTES, sUserNotes)
|
|
' Se esistono
|
|
If Not String.IsNullOrWhiteSpace(sUserNotes) Then
|
|
' Stringa con note rimanenti
|
|
Dim sToShow As String = ""
|
|
' Le divido in parti
|
|
Dim sItems() As String = sUserNotes.Split(";".ToCharArray)
|
|
For i As Integer = 0 To sItems.Count() - 1
|
|
If sItems(i).Contains("CODE=") Then
|
|
CodeTxBx.Text = sItems(i).Substring( 5)
|
|
ElseIf sItems(i).Contains("SUPPL=") Then
|
|
SupplierTxBx.Text = sItems(i).Substring( 6)
|
|
ElseIf sItems(i).Contains("S/N=") Then
|
|
SerNbrTxBx.Text = sItems(i).Substring( 4)
|
|
ElseIf sItems(i).Contains("END=") Then
|
|
EndLifeChBx.IsChecked = True
|
|
m_sEndLife = sItems(i).Substring( 4)
|
|
ElseIf Not String.IsNullOrWhiteSpace(sItems(i))
|
|
sToShow &= sItems(i) & ";"
|
|
End If
|
|
Next
|
|
UserNotesTxBx.Text = sToShow
|
|
End If
|
|
Return True
|
|
End Function
|
|
|
|
Private Function SetSpecials() As Boolean
|
|
' Note speciali devono essere visualizzate con l'utensile corrente
|
|
If m_CurrMachine.ShowSpecials = 0 Then Return False
|
|
Dim nType As Integer
|
|
EgtTdbGetCurrToolParam(MCH_TP.TYPE, nType)
|
|
If nType <> MCH_TY.SAW_STD And m_CurrMachine.ShowSpecials = 2 Then Return False
|
|
' Ricreo la stringa
|
|
Dim sUserNotes As String = ""
|
|
sUserNotes &= "CODE=" & CodeTxBx.Text & ";"
|
|
sUserNotes &= "SUPPL=" & SupplierTxBx.Text & ";"
|
|
sUserNotes &= "S/N=" & SerNbrTxBx.Text & ";"
|
|
If EndLifeChBx.IsChecked Then
|
|
If String.IsNullOrWhiteSpace( m_sEndLife) Then
|
|
m_sEndLife = My.Computer.Clock.LocalTime.ToString("dd.MM.yyyy HH:mm:ss")
|
|
End If
|
|
sUserNotes &= "END=" & m_sEndLife & ";"
|
|
End If
|
|
sUserNotes &= UserNotesTxBx.Text
|
|
EgtTdbSetCurrToolParam(MCH_TP.USERNOTES, sUserNotes)
|
|
Return True
|
|
End Function
|
|
|
|
Private Sub ManageSpecialNotes()
|
|
' Note utente devono essere visualizzate con l'utensile corrente
|
|
If m_CurrMachine.ShowUserNotes = 0 And m_CurrMachine.ShowSpecials = 0 Then Return
|
|
Dim nType As Integer
|
|
EgtTdbGetCurrToolParam(MCH_TP.TYPE, nType)
|
|
If nType <> MCH_TY.SAW_STD And m_CurrMachine.ShowUserNotes = 2 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) = ""
|
|
ElseIf sItems(i).Contains("END=") 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
|
|
|
|
Private Sub SaveBtn_Click(sender As Object, e As RoutedEventArgs) Handles SaveBtn.Click
|
|
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
|
|
SetToolParams()
|
|
EgtTdbSaveCurrTool()
|
|
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 l'utensile
|
|
EgtTdbRemoveTool(SelectedItem.Name)
|
|
' Rimuovo il nome dell'albero
|
|
For Each ToolFamily As CathegoryItem In ToolsList
|
|
If (ToolFamily.nTType 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
|
|
|
|
Friend Sub InitializeToolGroup(bEnabled As Boolean, nTType As Integer, sFName As String)
|
|
If Not bEnabled Then Return
|
|
' Inserisco categoria ed eventuali elementi
|
|
Dim ToolCathegory As New CathegoryItem( sFName, nTType)
|
|
Dim nType As Integer = 0
|
|
Dim ToolName As String = String.Empty
|
|
Dim bFound As Boolean = EgtTdbGetFirstTool( nTType, ToolName, nType)
|
|
While bFound
|
|
If nType = nTType Then ToolCathegory.Items.Add( New CustomItem( ToolName, nType))
|
|
bFound = EgtTdbGetNextTool( nTType, ToolName, nType)
|
|
End While
|
|
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()
|
|
if Not GetSpecials() Then
|
|
EgtTdbGetCurrToolParam(MCH_TP.USERNOTES, ToolString)
|
|
UserNotesTxBx.Text = ToolString
|
|
End If
|
|
End Sub
|
|
|
|
Private 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 Or m_nToolType = MCH_TY.WATERJET 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
|
|
Dim sUuid As String = ""
|
|
EgtTdbGetCurrToolParam(MCH_TP.UUID, sUuid)
|
|
EgtTdbSetCurrToolParam(MCH_TP.DRAW, sUuid & ".nge")
|
|
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)
|
|
if Not SetSpecials() Then
|
|
EgtTdbSetCurrToolParam(MCH_TP.USERNOTES, UserNotesTxBx.Text)
|
|
End If
|
|
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 = If(m_nToolType <> MCH_TY.WATERJET, Windows.Visibility.Visible, Windows.Visibility.Hidden)
|
|
FeedGpBx.Visibility = Windows.Visibility.Visible
|
|
TipFeedTxBl.Text = If(m_nToolType <> MCH_TY.WATERJET, EgtMsg(90730), EgtMsg(90792))
|
|
StartFeedTxBl.Visibility = If(m_nToolType <> MCH_TY.WATERJET, Windows.Visibility.Visible, Windows.Visibility.Hidden)
|
|
StartFeedTxBx.Visibility = If(m_nToolType <> MCH_TY.WATERJET, Windows.Visibility.Visible, Windows.Visibility.Hidden)
|
|
EndFeedTxBl.Visibility = If(m_nToolType <> MCH_TY.WATERJET, Windows.Visibility.Visible, Windows.Visibility.Hidden)
|
|
EndFeedTxBx.Visibility = If(m_nToolType <> MCH_TY.WATERJET, Windows.Visibility.Visible, Windows.Visibility.Hidden)
|
|
CoolantTxBl.Visibility = If(m_nToolType <> MCH_TY.WATERJET, Windows.Visibility.Visible, Windows.Visibility.Hidden)
|
|
CoolantCmBx.Visibility = If(m_nToolType <> MCH_TY.WATERJET, Windows.Visibility.Visible, Windows.Visibility.Hidden)
|
|
CorrTxBl.Visibility = Windows.Visibility.Hidden
|
|
CorrTxBx.Visibility = Windows.Visibility.Hidden
|
|
MaxMatTxBl.Visibility = If(m_nToolType = MCH_TY.SAW_STD Or m_nToolType = MCH_TY.WATERJET, Windows.Visibility.Visible, Windows.Visibility.Hidden)
|
|
MaxMatTxBx.Visibility = If(m_nToolType = MCH_TY.SAW_STD Or m_nToolType = MCH_TY.WATERJET, Windows.Visibility.Visible, Windows.Visibility.Hidden)
|
|
OffsetGpBx.Visibility = If(m_nToolType <> MCH_TY.DRILL_STD, Windows.Visibility.Visible, Windows.Visibility.Hidden)
|
|
LonOffsetTxBl.Visibility = If(m_nToolType <> MCH_TY.WATERJET, Windows.Visibility.Visible, Windows.Visibility.Hidden)
|
|
LonOffsetTxBx.Visibility = If(m_nToolType <> MCH_TY.WATERJET, 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 = If(m_nToolType <> MCH_TY.WATERJET, Windows.Visibility.Visible, Windows.Visibility.Hidden)
|
|
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)
|
|
Dim bShowSpecials As Boolean = ((m_nToolType = MCH_TY.SAW_STD And m_CurrMachine.ShowSpecials <> 0) Or m_CurrMachine.ShowSpecials = 1)
|
|
SerNbrTxBl.Visibility = If(bShowSpecials, Windows.Visibility.Visible, Windows.Visibility.Hidden)
|
|
SerNbrTxBx.Visibility = If(bShowSpecials, Windows.Visibility.Visible, Windows.Visibility.Hidden)
|
|
CodeTxBl.Visibility = If(bShowSpecials, Windows.Visibility.Visible, Windows.Visibility.Hidden)
|
|
CodeTxBx.Visibility = If(bShowSpecials, Windows.Visibility.Visible, Windows.Visibility.Hidden)
|
|
SupplierTxBl.Visibility = If(bShowSpecials, Windows.Visibility.Visible, Windows.Visibility.Hidden)
|
|
SupplierTxBx.Visibility = If(bShowSpecials, Windows.Visibility.Visible, Windows.Visibility.Hidden)
|
|
EndLifeTxBl.Visibility = If(bShowSpecials, Windows.Visibility.Visible, Windows.Visibility.Hidden)
|
|
EndLifeChBx.Visibility = If(bShowSpecials, 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
|
|
SerNbrTxBl.Visibility = Windows.Visibility.Hidden
|
|
SerNbrTxBx.Visibility = Windows.Visibility.Hidden
|
|
CodeTxBl.Visibility = Windows.Visibility.Hidden
|
|
CodeTxBx.Visibility = Windows.Visibility.Hidden
|
|
SupplierTxBl.Visibility = Windows.Visibility.Hidden
|
|
SupplierTxBx.Visibility = Windows.Visibility.Hidden
|
|
EndLifeTxBl.Visibility = Windows.Visibility.Hidden
|
|
EndLifeChBx.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
|
|
' Recupero il valore della variabile
|
|
Dim dVal As Double
|
|
If Not GetVariableValue(dVal) Then Return
|
|
' 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)
|
|
' Salvo il vecchio valore
|
|
Dim dOldVal As Double
|
|
GetVariableValue( dOldVal)
|
|
' Aggiorno dati utensile
|
|
SetVariableValue(dVal)
|
|
' Creo utensile
|
|
If CreateToolDraw() Then Return
|
|
' Creazione fallita, ritorno ai valori precedenti
|
|
SetVariableValue(dOldVal)
|
|
CreateToolDraw()
|
|
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 Or
|
|
m_nToolType = MCH_TY.MILL_NOTIP Or
|
|
m_nToolType = MCH_TY.MILL_POLISHING 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.WATERJET 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 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 parametri geometrici
|
|
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
|
|
Dim dToolLen As Double
|
|
EgtTdbGetCurrToolParam(MCH_TP.LEN, dToolLen)
|
|
If dToolLen < EPS_SMALL Then
|
|
dToolLen = 120
|
|
EgtTdbSetCurrToolParam(MCH_TP.LEN, dToolLen)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTLEN, dToolLen)
|
|
EgtOutLog("ToolLen too small ->" & DoubleToString(dToolLen, 1))
|
|
End If
|
|
Dim dToolDiam As Double
|
|
EgtTdbGetCurrToolParam(MCH_TP.DIAM, dToolDiam)
|
|
If dToolDiam < EPS_SMALL Then
|
|
dToolDiam = 20
|
|
EgtTdbSetCurrToolParam(MCH_TP.DIAM, dToolDiam)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTDIAM, dToolDiam)
|
|
EgtOutLog("ToolDiam too small ->" & DoubleToString(dToolDiam, 1))
|
|
End If
|
|
Dim dToolMaxMat As Double
|
|
EgtTdbGetCurrToolParam(MCH_TP.MAXMAT, dToolMaxMat)
|
|
If dToolMaxMat < EPS_SMALL Then
|
|
dToolMaxMat = 40
|
|
EgtTdbSetCurrToolParam(MCH_TP.MAXMAT, dToolMaxMat)
|
|
EgtOutLog("ToolMaxMat too small ->" & DoubleToString(dToolMaxMat, 1))
|
|
End If
|
|
' passo all'ambiente di disegno dell'utensile
|
|
EgtSetCurrentContext(ToolScene.GetCtx())
|
|
Return True
|
|
Case MCH_TY.SAW_STD
|
|
' assegno parametri geometrici
|
|
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
|
|
Dim dToolLen As Double
|
|
EgtTdbGetCurrToolParam(MCH_TP.LEN, dToolLen)
|
|
If dToolLen < EPS_SMALL Then
|
|
dToolLen = 5
|
|
EgtTdbSetCurrToolParam(MCH_TP.LEN, dToolLen)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTLEN, dToolLen)
|
|
EgtOutLog("ToolLen too small ->" & DoubleToString(dToolLen, 1))
|
|
End If
|
|
Dim dToolDiam As Double
|
|
EgtTdbGetCurrToolParam(MCH_TP.DIAM, dToolDiam)
|
|
If dToolDiam < EPS_SMALL Then
|
|
dToolDiam = 200
|
|
EgtTdbSetCurrToolParam(MCH_TP.DIAM, dToolDiam)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTDIAM, dToolDiam)
|
|
EgtOutLog("ToolDiam too small ->" & DoubleToString(dToolDiam, 1))
|
|
End If
|
|
Dim dToolThick As Double
|
|
EgtTdbGetCurrToolParam(MCH_TP.THICK, dToolThick)
|
|
If dToolThick < EPS_SMALL Then
|
|
dToolThick = 5
|
|
EgtTdbSetCurrToolParam(MCH_TP.THICK, dToolThick)
|
|
EgtOutLog("ToolThick too small ->" & DoubleToString(dToolThick, 1))
|
|
End If
|
|
Dim dToolMaxMat As Double
|
|
EgtTdbGetCurrToolParam(MCH_TP.MAXMAT, dToolMaxMat)
|
|
If dToolMaxMat < EPS_SMALL Then
|
|
dToolMaxMat = 40
|
|
EgtTdbSetCurrToolParam(MCH_TP.MAXMAT, dToolMaxMat)
|
|
EgtOutLog("ToolMaxMat too small ->" & DoubleToString(dToolMaxMat, 1))
|
|
End If
|
|
' passo all'ambiente di disegno dell'utensile
|
|
EgtSetCurrentContext(ToolScene.GetCtx())
|
|
Return True
|
|
Case MCH_TY.MILL_STD
|
|
' assegno parametri geometrici
|
|
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
|
|
Dim dToolLen As Double
|
|
EgtTdbGetCurrToolParam(MCH_TP.LEN, dToolLen)
|
|
If dToolLen < EPS_SMALL Then
|
|
dToolLen = 120
|
|
EgtTdbSetCurrToolParam(MCH_TP.LEN, dToolLen)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTLEN, dToolLen)
|
|
EgtOutLog("ToolLen too small ->" & DoubleToString(dToolLen, 1))
|
|
End If
|
|
Dim dToolDiam As Double
|
|
EgtTdbGetCurrToolParam(MCH_TP.DIAM, dToolDiam)
|
|
If dToolDiam < EPS_SMALL Then
|
|
dToolDiam = 20
|
|
EgtTdbSetCurrToolParam(MCH_TP.DIAM, dToolDiam)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTDIAM, dToolDiam)
|
|
EgtOutLog("ToolDiam too small ->" & DoubleToString(dToolDiam, 1))
|
|
End If
|
|
Dim dToolMaxMat As Double
|
|
EgtTdbGetCurrToolParam(MCH_TP.MAXMAT, dToolMaxMat)
|
|
If dToolMaxMat < EPS_SMALL Then
|
|
dToolMaxMat = 40
|
|
EgtTdbSetCurrToolParam(MCH_TP.MAXMAT, dToolMaxMat)
|
|
EgtOutLog("ToolMaxMat too small ->" & DoubleToString(dToolMaxMat, 1))
|
|
End If
|
|
' passo all'ambiente di disegno dell'utensile
|
|
EgtSetCurrentContext(ToolScene.GetCtx())
|
|
Return True
|
|
Case MCH_TY.MILL_NOTIP, MCH_TY.MILL_POLISHING
|
|
' assegno parametri geometrici
|
|
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
|
|
Dim dToolLen As Double
|
|
EgtTdbGetCurrToolParam(MCH_TP.LEN, dToolLen)
|
|
If dToolLen < EPS_SMALL Then
|
|
dToolLen = 120
|
|
EgtTdbSetCurrToolParam(MCH_TP.LEN, dToolLen)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTLEN, dToolLen)
|
|
EgtOutLog("ToolLen too small ->" & DoubleToString(dToolLen, 1))
|
|
End If
|
|
Dim dToolDiam As Double
|
|
EgtTdbGetCurrToolParam(MCH_TP.DIAM, dToolDiam)
|
|
If dToolDiam < EPS_SMALL Then
|
|
dToolDiam = 20
|
|
EgtTdbSetCurrToolParam(MCH_TP.DIAM, dToolDiam)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTDIAM, dToolDiam)
|
|
EgtOutLog("ToolDiam too small ->" & DoubleToString(dToolDiam, 1))
|
|
End If
|
|
Dim dToolMaxMat As Double
|
|
EgtTdbGetCurrToolParam(MCH_TP.MAXMAT, dToolMaxMat)
|
|
If dToolMaxMat < EPS_SMALL Then
|
|
dToolMaxMat = 40
|
|
EgtTdbSetCurrToolParam(MCH_TP.MAXMAT, dToolMaxMat)
|
|
EgtOutLog("ToolMaxMat too small ->" & DoubleToString(dToolMaxMat, 1))
|
|
End If
|
|
' passo all'ambiente di disegno dell'utensile
|
|
EgtSetCurrentContext(ToolScene.GetCtx())
|
|
Return True
|
|
Case MCH_TY.WATERJET
|
|
' assegno parametri geometrici
|
|
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
|
|
Dim dToolLen As Double
|
|
EgtTdbGetCurrToolParam(MCH_TP.LEN, dToolLen)
|
|
If dToolLen < EPS_SMALL Then
|
|
dToolLen = 120
|
|
EgtTdbSetCurrToolParam(MCH_TP.LEN, dToolLen)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTLEN, dToolLen)
|
|
EgtOutLog("ToolLen too small ->" & DoubleToString(dToolLen, 1))
|
|
End If
|
|
Dim dToolDiam As Double
|
|
EgtTdbGetCurrToolParam(MCH_TP.DIAM, dToolDiam)
|
|
If dToolDiam < EPS_SMALL Then
|
|
dToolDiam = 20
|
|
EgtTdbSetCurrToolParam(MCH_TP.DIAM, dToolDiam)
|
|
EgtTdbSetCurrToolParam(MCH_TP.TOTDIAM, dToolDiam)
|
|
EgtOutLog("ToolDiam too small ->" & DoubleToString(dToolDiam, 1))
|
|
End If
|
|
Dim dToolMaxMat As Double
|
|
EgtTdbGetCurrToolParam(MCH_TP.MAXMAT, dToolMaxMat)
|
|
If dToolMaxMat < EPS_SMALL Then
|
|
dToolMaxMat = 40
|
|
EgtTdbSetCurrToolParam(MCH_TP.MAXMAT, dToolMaxMat)
|
|
EgtOutLog("ToolMaxMat too small ->" & DoubleToString(dToolMaxMat, 1))
|
|
End If
|
|
' passo all'ambiente di disegno dell'utensile
|
|
EgtSetCurrentContext(ToolScene.GetCtx())
|
|
Return True
|
|
End Select
|
|
Return False
|
|
End Function
|
|
|
|
Private Function CreateToolDraw() As Boolean
|
|
Dim nErr As Integer = EgtTdbCurrToolDraw( m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx(), ToolScene.GetCtx())
|
|
EgtSetCurrentContext(ToolScene.GetCtx())
|
|
Return (nErr = 0)
|
|
End Function
|
|
|
|
Friend Function SaveCurrTool() As Boolean
|
|
SetToolParams()
|
|
' Se dati utensile modificati
|
|
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()
|
|
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
|