Files
OmagCUT/MachineStatusUC.xaml.vb
T
Dario Sassi ff30a4d3b6 OmagCUT 1.6u4 :
- gestione nesting allineato (con regione di riferimento a L)
- gestione epl pezzi rovinati da OmagVIEW per linee di produzione
- piccole migliorie varie.
2016-09-22 14:47:57 +00:00

219 lines
10 KiB
VB.net

Imports System.ComponentModel
Imports EgtUILib
Public Class MachineStatusUC
' Riferimento alla MainWindow
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
Private m_MachinePage As MachinePageUC
' Flag che indica se è stato premuto questo controllo per chiamare la pagina con lista errori
Friend m_bIsClicked As Boolean = False
' Oggetto per comunicare con il CN
Friend m_CN As CN_generico
' Flag per tipo visualizzazione assi
Private m_bShowTipAxes As Boolean = False
' Flag bistabile per delta (per lampeggiare delta Z anche quando macchina ferma)
Private m_bEven As Boolean = True
Private Sub MachineStatus_Initialized(sender As Object, e As EventArgs)
If m_MainWindow.m_dMWinScale < 1 Then
MachineStatusImage.Height *= m_MainWindow.m_dMWinScale
MachineStatusImage.Width *= m_MainWindow.m_dMWinScale
Axis1NameTxBx.FontSize *= m_MainWindow.m_dMWinScale
Axis1TxBx.FontSize *= m_MainWindow.m_dMWinScale
DeltaAxis1TxBx.FontSize *= m_MainWindow.m_dMWinScale
Axis2NameTxBx.FontSize *= m_MainWindow.m_dMWinScale
Axis2TxBx.FontSize *= m_MainWindow.m_dMWinScale
DeltaAxis2TxBx.FontSize *= m_MainWindow.m_dMWinScale
Axis3NameTxBx.FontSize *= m_MainWindow.m_dMWinScale
Axis3TxBx.FontSize *= m_MainWindow.m_dMWinScale
DeltaAxis3TxBx.FontSize *= m_MainWindow.m_dMWinScale
Axis4NameTxBx.FontSize *= m_MainWindow.m_dMWinScale
Axis4TxBx.FontSize *= m_MainWindow.m_dMWinScale
DeltaAxis4TxBx.FontSize *= m_MainWindow.m_dMWinScale
Axis5NameTxBx.FontSize *= m_MainWindow.m_dMWinScale
Axis5TxBx.FontSize *= m_MainWindow.m_dMWinScale
DeltaAxis5TxBx.FontSize *= m_MainWindow.m_dMWinScale
FeedNameTxBx.FontSize *= m_MainWindow.m_dMWinScale
FeedTxBx.FontSize *= m_MainWindow.m_dMWinScale
FeedOverrideNameTxBx.FontSize *= m_MainWindow.m_dMWinScale
FeedOverrideTxBx.FontSize *= m_MainWindow.m_dMWinScale
SpeedNameTxBx.FontSize *= m_MainWindow.m_dMWinScale
SpeedTxBx.FontSize *= m_MainWindow.m_dMWinScale
SpeedOverrideNameTxBx.FontSize *= m_MainWindow.m_dMWinScale
SpeedOverrideTxBx.FontSize *= m_MainWindow.m_dMWinScale
ConsumptionNameTxBx.FontSize *= m_MainWindow.m_dMWinScale
ConsumptionTxBx.FontSize *= m_MainWindow.m_dMWinScale
AOverrideTxBx.FontSize *= m_MainWindow.m_dMWinScale
End If
End Sub
Private Sub MachineStatus_Loaded(sender As Object, e As RoutedEventArgs)
m_MachinePage = m_MainWindow.m_MachinePageUC
m_bShowTipAxes = GetPrivateProfileInt(S_GENERAL, K_SHOWTIPAXES, 0, m_MainWindow.GetIniFile()) <> 0
End Sub
Private Sub MachineStatus_PreviewMouseDown(sender As Object, e As MouseButtonEventArgs) Handles Me.PreviewMouseDown
MachinePageClick()
End Sub
Sub MachinePageClick()
' Emulo il click della pagina Macchina
Select Case m_MainWindow.m_ActivePage
Case MainWindow.Pages.WorkInProgress
m_MainWindow.WorkInProgressBtn.IsChecked = False
m_MainWindow.MachineBtn.IsChecked = True
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_WorkInProgressPageUC)
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_MachinePageUC)
m_MainWindow.m_ActivePage = MainWindow.Pages.Machine
m_bIsClicked = True
Case MainWindow.Pages.DirectCut
m_MainWindow.DirectCutBtn.IsChecked = False
m_MainWindow.MachineBtn.IsChecked = True
m_MainWindow.m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_MainWindow.m_DirectCutPageUC)
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_CurrentProjectPageUC)
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_MachinePageUC)
m_MainWindow.m_ActivePage = MainWindow.Pages.Machine
m_bIsClicked = True
Case MainWindow.Pages.CadCut
m_MainWindow.CadCutBtn.IsChecked = False
m_MainWindow.MachineBtn.IsChecked = True
m_MainWindow.m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_MainWindow.m_CadCutPageUC)
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_CurrentProjectPageUC)
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_MachinePageUC)
m_MainWindow.m_ActivePage = MainWindow.Pages.Machine
m_bIsClicked = True
Case MainWindow.Pages.RawPart
m_MainWindow.CadCutBtn.IsChecked = True
m_MainWindow.MachineBtn.IsChecked = False
Case MainWindow.Pages.Simulation
m_MainWindow.CadCutBtn.IsChecked = True
m_MainWindow.MachineBtn.IsChecked = False
Case MainWindow.Pages.Draw
m_MainWindow.CadCutBtn.IsChecked = True
m_MainWindow.MachineBtn.IsChecked = False
Case MainWindow.Pages.Import
m_MainWindow.CadCutBtn.IsChecked = True
m_MainWindow.MachineBtn.IsChecked = False
Case MainWindow.Pages.FrameCut
m_MainWindow.FrameCutBtn.IsChecked = False
m_MainWindow.MachineBtn.IsChecked = True
m_MainWindow.m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_MainWindow.m_FrameCutPageUC)
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_CurrentProjectPageUC)
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_MachinePageUC)
m_MainWindow.m_ActivePage = MainWindow.Pages.Machine
m_bIsClicked = True
Case MainWindow.Pages.Machine
m_MainWindow.MachineBtn.IsChecked = True
m_bIsClicked = True
Case MainWindow.Pages.Options
m_MainWindow.MachineBtn.IsChecked = True
m_MainWindow.OptionsBtn.IsChecked = False
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_OptionsPageUC)
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_MachinePageUC)
m_MainWindow.m_ActivePage = MainWindow.Pages.Machine
m_bIsClicked = True
End Select
End Sub
Sub DisplayPositionName()
' Recupero i nomi delgi assi macchina
Dim sL1 As String = String.Empty
Dim sL2 As String = String.Empty
Dim sL3 As String = String.Empty
Dim sR1 As String = String.Empty
Dim sR2 As String = String.Empty
m_MainWindow.m_CNCommunication.GetAxesNames(sL1, sL2, sL3, sR1, sR2)
Axis1NameTxBx.Text = sL1
Axis2NameTxBx.Text = sL2
Axis3NameTxBx.Text = sL3
Axis4NameTxBx.Text = sR1
Axis5NameTxBx.Text = sR2
End Sub
Sub DisplayPosition()
' Recupero le posizioni macchina
Dim dL1, dL2, dL3, dR1, dR2 As Double
m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2)
' Se richiesto, le converto sul tip dell'utensile corrente rispetto allo Zero tavola
Dim ptTip As New Point3d
If m_bShowTipAxes AndAlso m_MainWindow.m_WorkInProgressPageUC.GetTipFromPositions(dL1, dL2, dL3, dR1, dR2, ptTip) Then
dL1 = ptTip.x
dL2 = ptTip.y
dL3 = ptTip.z
End If
' Visualizzazione
Axis1TxBx.Text = LenToString(dL1, -3)
Axis2TxBx.Text = LenToString(dL2, -3)
Axis3TxBx.Text = LenToString(dL3, -3)
Axis4TxBx.Text = DoubleToString(dR1, -3)
Axis5TxBx.Text = DoubleToString(dR2, -3)
End Sub
Sub DisplayPositionDelta()
' Recupero le posizioni macchina
Dim dL1, dL2, dL3, dR1, dR2 As Double
m_MainWindow.m_CNCommunication.GetAxesDeltas(dL1, dL2, dL3, dR1, dR2)
' Visualizzazione
DeltaAxis1TxBx.Text = LenToString(dL1, -3)
DeltaAxis2TxBx.Text = LenToString(dL2, -3)
DeltaAxis3TxBx.Text = LenToString(If(m_bEven, dL3, dL3 + EPS_SMALL), -3)
DeltaAxis4TxBx.Text = DoubleToString(dR1, -3)
DeltaAxis5TxBx.Text = DoubleToString(dR2, -3)
m_bEven = Not m_bEven
End Sub
Sub DisplayFeed()
Dim dRealFeed As Double = m_CN.d_DInterpo_Prog_Feed * m_CN.d_DInterpo_Feed_override / 100
'Feed = DoubleToString(dRealFeed, 0)
FeedTxBx.Text = LenToString(dRealFeed, 0)
'FeedOverride = DoubleToString(m_CN.d_DInterpo_Feed_override, 0) & "%"
Dim dFeedOverride As Double = m_CN.d_DInterpo_Feed_override
FeedOverrideTxBx.Text = DoubleToString(dFeedOverride, 0) & "%"
End Sub
Sub DisplaySpeed()
If m_MainWindow.m_CNCommunication.m_nNCType = 3 Then 'se controllo Siemens
SpeedTxBx.Text = DoubleToString(m_CN.d_spindle_prog(0), 0)
Else
Dim dSpeed As Double = m_CN.d_spindle_eff(0)
SpeedTxBx.Text = DoubleToString(dSpeed, 0)
End If
Dim dSpindleOverride As Integer = m_CN.n_spindle_override(0)
SpeedOverrideTxBx.Text = DoubleToString(dSpindleOverride, 0) & "%"
End Sub
Sub DisplayPower()
Dim dSpindlePower = m_CN.d_spindle_power
ConsumptionTxBx.Text = DoubleToString(dSpindlePower, -2)
AOverrideTxBx.Text = DoubleToString(If(m_CN.bPowerOvr > 0, m_CN.d_spindle_power / m_CN.bPowerOvr * 100, 0), 0) & "%"
' AOverrideLbl
End Sub
Sub DisplayActiveMode(Mode As Integer)
Select Case Mode
Case 0
MachineStatusImage.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("\Resources\MachineStatusImage\Auto.png", UriKind.Relative))
Case 1
MachineStatusImage.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("\Resources\MachineStatusImage\Single.png", UriKind.Relative))
Case 2
MachineStatusImage.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("\Resources\MachineStatusImage\Mdi.png", UriKind.Relative))
Case 7
MachineStatusImage.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("\Resources\MachineStatusImage\Manual.png", UriKind.Relative))
Case 8
MachineStatusImage.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("\Resources\MachineStatusImage\Home.png", UriKind.Relative))
End Select
End Sub
Sub DisplayVar()
'For n As Short = 0 To 5 - 1
' lbl_var_values(n).Text = cn.d_Dvariable_values(n * 10).ToString
'Next
End Sub
End Class