85e906e4c8
- aggiunta prima versione di Vein Matching - si eliminano spazi iniziali e finali da nomi utensili e lavorazioni - nuovo utensile come copia di esistente ora crea nuovo disegno - nuovo utensile ora assegna valori di default alla geometria.
1096 lines
45 KiB
VB.net
1096 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
|
|
EgtSetObjFilterForSelect(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 New EgtMsgBox(m_MainWindow, "", EgtMsg(MSG_EGTMSGBOX + 2), EgtMsgBox.Buttons.YES_NO_CANCEL, EgtMsgBox.Icons.NULL)
|
|
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
|
|
|