bccfb5ca36
- Aggiunta navigazione tra le pagine di scelta dei componenti. - Aggiunti componenti curvi.
243 lines
10 KiB
VB.net
243 lines
10 KiB
VB.net
Imports EgtUILib
|
|
Imports EgtWPFLib
|
|
|
|
Public Class DirectCutPageUC
|
|
|
|
' Dichiarazione delle Page UserControl
|
|
Private m_MainWindow As MainWindow = Application.Current.MainWindow
|
|
Friend m_MachineButtons As MachineButtonsUC
|
|
Friend m_ManualAxesMove As ManualAxesMoveUC
|
|
Friend m_SingleCut As SingleCutUC
|
|
Friend m_MultipleCut As MultipleCut
|
|
Friend m_GridCut As GridCut
|
|
Friend m_SawTest As SawTestUC
|
|
' Stato di visualizzazione della macchina
|
|
Friend m_bShowMachine As Boolean = False
|
|
Friend m_nMachLook As Integer = MCH_LOOK.ALL
|
|
' Dati generali CN
|
|
Friend m_CN As CN_generico
|
|
Private m_bFirst As Boolean = True
|
|
' Riferimento alla pagina correntemente attiva
|
|
Friend m_ActiveDirectCutPage As DirectCutPages
|
|
|
|
Enum DirectCutPages
|
|
DirectCut
|
|
SingleCut
|
|
MultipleCut
|
|
GridCut
|
|
SawTest
|
|
End Enum
|
|
|
|
Private Sub DirectCutPage_Initialized(sender As Object, e As EventArgs)
|
|
|
|
'Creazione delle Page UserControl
|
|
m_MachineButtons = New MachineButtonsUC
|
|
m_ManualAxesMove = New ManualAxesMoveUC
|
|
m_SingleCut = New SingleCutUC
|
|
m_MultipleCut = New MultipleCut
|
|
m_GridCut = New GridCut
|
|
m_SawTest = New SawTestUC
|
|
|
|
'Posizionemento nella griglia delle Page UserControl
|
|
m_MachineButtons.SetValue(Grid.RowProperty, 2)
|
|
m_ManualAxesMove.SetValue(Grid.RowProperty, 1)
|
|
m_SingleCut.SetValue(Grid.RowProperty, 1)
|
|
m_MultipleCut.SetValue(Grid.RowProperty, 1)
|
|
m_GridCut.SetValue(Grid.RowProperty, 1)
|
|
m_SawTest.SetValue(Grid.RowProperty, 1)
|
|
|
|
'Assegno MachineButtons alla pagina
|
|
LowerButtonGrid.Children.Add(m_MachineButtons)
|
|
|
|
ManualBtn.Content = EgtMsg(MSG_DIRECTCUTPAGEUC + 1)
|
|
SingleCutBtn.Content = EgtMsg(MSG_DIRECTCUTPAGEUC + 2)
|
|
MultipleCutBtn.Content = EgtMsg(MSG_DIRECTCUTPAGEUC + 3)
|
|
GridCutBtn.Content = EgtMsg(MSG_DIRECTCUTPAGEUC + 4)
|
|
MachViewModeBtn.Content = EgtMsg(MSG_DIRECTCUTPAGEUC + 5)
|
|
SawTestBtn.Content = EgtMsg(MSG_DIRECTCUTPAGEUC + 7)
|
|
SawProbingBtn.Content = EgtMsg(MSG_DIRECTCUTPAGEUC + 8)
|
|
End Sub
|
|
|
|
Private Sub DirectCutPage_Loaded(sender As Object, e As RoutedEventArgs)
|
|
m_ActiveDirectCutPage = DirectCutPages.DirectCut
|
|
End Sub
|
|
|
|
Private Sub ManualBtn_Click(sender As Object, e As RoutedEventArgs) Handles ManualBtn.Click
|
|
LeftButtonGrid.Children.Add(m_ManualAxesMove)
|
|
End Sub
|
|
|
|
Private Sub SingleCutBtn_Click(sender As Object, e As RoutedEventArgs) Handles SingleCutBtn.Click
|
|
LeftButtonGrid.Children.Add(m_SingleCut)
|
|
m_ActiveDirectCutPage = DirectCutPages.SingleCut
|
|
End Sub
|
|
|
|
Private Sub MultipleCutBtn_Click(sender As Object, e As RoutedEventArgs) Handles MultipleCutBtn.Click
|
|
LeftButtonGrid.Children.Add(m_MultipleCut)
|
|
m_ActiveDirectCutPage = DirectCutPages.MultipleCut
|
|
End Sub
|
|
|
|
Private Sub GridCutBtn_Click(sender As Object, e As RoutedEventArgs) Handles GridCutBtn.Click
|
|
LeftButtonGrid.Children.Add(m_GridCut)
|
|
m_ActiveDirectCutPage = DirectCutPages.GridCut
|
|
End Sub
|
|
|
|
Private Sub SawTestBtn_Click(sender As Object, e As RoutedEventArgs) Handles SawTestBtn.Click
|
|
LeftButtonGrid.Children.Add(m_SawTest)
|
|
m_ActiveDirectCutPage = DirectCutPages.SawTest
|
|
End Sub
|
|
|
|
Private Sub MachViewModeBtn_Click(sender As Object, e As RoutedEventArgs) Handles MachViewModeBtn.Click
|
|
If m_bShowMachine Then
|
|
' aggiorno lo stato
|
|
Select Case m_nMachLook
|
|
Case MCH_LOOK.ALL
|
|
m_nMachLook = MCH_LOOK.TAB_HEAD
|
|
Case MCH_LOOK.TAB_HEAD
|
|
m_nMachLook = MCH_LOOK.TAB_TOOL
|
|
Case Else
|
|
m_nMachLook = MCH_LOOK.ALL
|
|
End Select
|
|
' aggiorno lo stato della macchina e la sua visualizzazione
|
|
EgtSetMachineLook(m_nMachLook)
|
|
EgtDraw()
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub DirectCutPage_Unloaded(sender As Object, e As RoutedEventArgs)
|
|
Select Case m_ActiveDirectCutPage
|
|
Case DirectCutPages.DirectCut
|
|
' Non è necessario fare alcunché
|
|
Case DirectCutPages.SingleCut
|
|
LeftButtonGrid.Children.Remove(m_SingleCut)
|
|
Case DirectCutPages.MultipleCut
|
|
LeftButtonGrid.Children.Remove(m_MultipleCut)
|
|
Case DirectCutPages.GridCut
|
|
LeftButtonGrid.Children.Remove(m_GridCut)
|
|
Case DirectCutPages.SawTest
|
|
LeftButtonGrid.Children.Remove(m_SawTest)
|
|
End Select
|
|
End Sub
|
|
|
|
Private Sub SawProbingBtn_Click(sender As Object, e As RoutedEventArgs) Handles SawProbingBtn.Click
|
|
' Recupero file LUA
|
|
EgtLuaExecFile(m_MainWindow.GetMachinesRootDir() & "\" & m_MainWindow.GetCurrMachine() & "\DirectCmd\SawProbing.lua")
|
|
' Recupero lama montata dal Db utensili
|
|
EgtTdbSetCurrTool(m_MainWindow.m_CurrentMachine.sCurrSaw)
|
|
Dim dToolParam As Double = 0
|
|
' Imposto parametri
|
|
EgtLuaSetGlobNumVar("CMD.TCPOS", 100) 'Per ora fisso 100 per le macchine senza ToolChanger, ma da modificare per poterle gestire!!!!!!
|
|
EgtTdbGetCurrToolParam(MCH_TP.DIAM, dToolParam)
|
|
EgtLuaSetGlobNumVar("CMD.DIAM", dToolParam * 1000)
|
|
EgtTdbGetCurrToolParam(MCH_TP.THICK, dToolParam)
|
|
EgtLuaSetGlobNumVar("CMD.THICK", dToolParam * 1000)
|
|
EgtTdbGetCurrToolParam(MCH_TP.LEN, dToolParam)
|
|
EgtLuaSetGlobNumVar("CMD.LENGTH", dToolParam * 1000)
|
|
EgtLuaCallFunction("CMD.CmdString")
|
|
' Leggo variabili
|
|
Dim CmdString As String = String.Empty
|
|
EgtLuaGetGlobStringVar("CMD.CMDSTRING", CmdString)
|
|
' Reset lua
|
|
EgtLuaResetGlobVar("CMD")
|
|
' Modifico stringa per inserire i newline
|
|
CmdString = CmdString.Replace("<br/>", Environment.NewLine)
|
|
' Creo file...
|
|
Dim FilePath As String = m_MainWindow.GetCncDir() & "\SawProbing.xpi"
|
|
' ...e ci scrivo
|
|
Dim Writer As New IO.StreamWriter(FilePath, False)
|
|
Writer.Write(CmdString)
|
|
Writer.Close()
|
|
' Verifico se sono connesso alla macchina prima di continuare
|
|
If Not m_MainWindow.m_bNCLink Then
|
|
Exit Sub
|
|
End If
|
|
' Mando file al CN
|
|
m_MainWindow.m_CNCommunication.SendProgram(FilePath, 900)
|
|
' Aspetto e lo avvio
|
|
System.Threading.Thread.Sleep(300)
|
|
m_MainWindow.m_CNCommunication.m_CN.DGeneralFunctions_CycleStart()
|
|
' Creo MsgBox di attesa
|
|
Dim MsgBoxStateInfo As New EgtMsgBox(m_MainWindow, EgtMsg(MSG_DIRECTCUTPAGEUC + 41), EgtMsg(MSG_DIRECTCUTPAGEUC + 42), True, EgtMsgBox.Icons.NULL)
|
|
Dim ProbingStateNameVar As String = String.Empty
|
|
GetPrivateProfileString(S_MACH_PROBING, K_PROBINGSTATEVAR, "", ProbingStateNameVar, m_MainWindow.GetMachIniFile())
|
|
m_MainWindow.m_CNCommunication.m_CN.n_DReadELS_handle = 0
|
|
m_MainWindow.m_CNCommunication.m_CN.ReadEls_Add_Parameter(ProbingStateNameVar, 1)
|
|
' Definisco flag tastatura
|
|
Dim bProbingOk As Boolean = False
|
|
For I = 0 To 120
|
|
If m_MainWindow.m_CNCommunication.m_CN.n_DReadELS_handle = 1 Then
|
|
Dim L108Val As Integer = m_MainWindow.m_CNCommunication.m_CN.d_DReadELS_value
|
|
Select Case L108Val
|
|
Case 0
|
|
' Non faccio alcunchè perchè sta tastando
|
|
Case 1
|
|
' Tastatura completata
|
|
bProbingOk = True
|
|
Exit For
|
|
Case 2
|
|
' Errore
|
|
bProbingOk = False
|
|
Exit For
|
|
End Select
|
|
End If
|
|
System.Threading.Thread.Sleep(1000)
|
|
' Incremento progressbar
|
|
MsgBoxStateInfo.LoadingPrBr_Value += 100 / 120
|
|
' Costringo ad aggiornare GUI
|
|
Dim nDummy As Integer
|
|
Application.Current.Dispatcher.Invoke(Windows.Threading.DispatcherPriority.Background, New Action(Function() nDummy = 0))
|
|
|
|
Next
|
|
If bProbingOk Then
|
|
' Leggo spessore misurato
|
|
Dim SawDiameterNameVar As String = String.Empty
|
|
GetPrivateProfileString(S_MACH_PROBING, K_SAWDIAMETER, "", SawDiameterNameVar, m_MainWindow.GetMachIniFile())
|
|
m_MainWindow.m_CNCommunication.m_CN.n_DReadELS_handle = 0
|
|
m_MainWindow.m_CNCommunication.m_CN.ReadEls_Add_Parameter(SawDiameterNameVar, 1)
|
|
Dim SawDiam As Double = 0
|
|
For I = 0 To 20
|
|
If m_MainWindow.m_CNCommunication.m_CN.n_DReadELS_handle = 1 Then
|
|
SawDiam = m_MainWindow.m_CNCommunication.m_CN.d_DReadELS_value
|
|
MsgBoxStateInfo.LoadingPrBr_Value = 100
|
|
MsgBoxStateInfo.Text = EgtMsg(MSG_DIRECTCUTPAGEUC + 43)
|
|
' Costringo ad aggiornare GUI
|
|
Dim nDummy As Integer
|
|
Application.Current.Dispatcher.Invoke(Windows.Threading.DispatcherPriority.Background, New Action(Function() nDummy = 0))
|
|
System.Threading.Thread.Sleep(1500)
|
|
'Trasformo misura rilevata in mm
|
|
If m_MainWindow.m_CNCommunication.m_CN.Is_G71_active() Then
|
|
SawDiam *= ONEMM / 1000
|
|
Else
|
|
SawDiam *= ONEINCH / 1000
|
|
End If
|
|
' Imposto spessore misurato come diametro lama
|
|
If SawDiam > -EPS_ZERO Then
|
|
' Recupero lama montata dal Db utensili
|
|
EgtTdbSetCurrTool(m_MainWindow.m_CurrentMachine.sCurrSaw)
|
|
EgtTdbSetCurrToolParam(MCH_TP.DIAM, SawDiam)
|
|
EgtTdbSaveCurrTool()
|
|
EgtTdbSave()
|
|
End If
|
|
' Chiudo msgbox
|
|
MsgBoxStateInfo.Close()
|
|
Exit For
|
|
End If
|
|
System.Threading.Thread.Sleep(100)
|
|
Next
|
|
|
|
Else
|
|
MsgBoxStateInfo.Text = EgtMsg(MSG_DIRECTCUTPAGEUC + 44)
|
|
' Costringo ad aggiornare GUI
|
|
Dim nDummy As Integer
|
|
Application.Current.Dispatcher.Invoke(Windows.Threading.DispatcherPriority.Background, New Action(Function() nDummy = 0))
|
|
System.Threading.Thread.Sleep(1500)
|
|
MsgBoxStateInfo.Close()
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub ManualModeBtn_Click(sender As Object, e As RoutedEventArgs) Handles ManualModeBtn.Click
|
|
' Imposto modalità manuale della macchina
|
|
Dim nResult As Short = m_CN.DGeneralFunctions_WriteCncMode(7) ' Modalità manuale
|
|
End Sub
|
|
|
|
End Class
|