Files
OmagCUT/DirectCutPageUC.xaml.vb
T
Emmanuele Sassi ec6b237c59 OmagCUT :
- Aggiunto AboutBox.
- Aggiunti bottoni tastatura disco e grezzo.
2016-02-11 14:01:24 +00:00

239 lines
9.9 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)
m_MainWindow.m_CNCommunication.m_CN.n_DReadELS_handle = 0
m_MainWindow.m_CNCommunication.m_CN.ReadEls_Add_Parameter("L108", 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
m_MainWindow.m_CNCommunication.m_CN.n_DReadELS_handle = 0
m_MainWindow.m_CNCommunication.m_CN.ReadEls_Add_Parameter("E80006", 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