e2daebcb5a
- aggiornamenti e migliorie varie.
239 lines
10 KiB
VB.net
239 lines
10 KiB
VB.net
Imports EgtUILib
|
|
Imports System.Reflection
|
|
Imports System.Globalization
|
|
|
|
Public Class CadCutPageUC
|
|
|
|
' Riferimento alla MainWindow
|
|
Private m_MainWindow As MainWindow = Application.Current.MainWindow
|
|
|
|
' Dichiarazione delle Page UserControl
|
|
Friend WithEvents m_NestPage As NestPageUC
|
|
Friend m_SplitPage As SplitPageUC
|
|
|
|
' Variabile che indica la modalità
|
|
Friend m_bNesting As Boolean = False
|
|
|
|
' Oggetto di gestione della macchina fotografica
|
|
Friend m_Camera As New Camera
|
|
|
|
Private Sub CadCutPage_Initialized(sender As Object, e As EventArgs)
|
|
|
|
' Creazione delle Page UserControl
|
|
m_NestPage = New NestPageUC
|
|
m_SplitPage = New SplitPageUC
|
|
|
|
' Posizionamento nella griglia delle Page UserControl
|
|
m_NestPage.SetValue(Grid.RowSpanProperty, 3)
|
|
m_SplitPage.SetValue(Grid.RowSpanProperty, 3)
|
|
|
|
' Nascondo progress e label per messaggi
|
|
PhotoProgress.Visibility = Windows.Visibility.Hidden
|
|
OutMessageLbl.Visibility = Windows.Visibility.Hidden
|
|
|
|
' Imposto i messaggi letti dal file dei messaggi
|
|
SimulateBtn.Content = EgtMsg(MSG_CADCUTPAGEUC + 1) 'Simulate - Simula
|
|
WorkBtn.Content = EgtMsg(MSG_CADCUTPAGEUC + 2) 'Work - Lavora
|
|
End Sub
|
|
|
|
Private Sub CadCutPage_Loaded(sender As Object, e As RoutedEventArgs)
|
|
' Seleziono UserControl di apertura
|
|
CadCutPageGrid.Children.Add(m_NestPage)
|
|
m_bNesting = True
|
|
SplitImage.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("/Resources/Split.png", UriKind.Relative))
|
|
EgtZoom(ZM.ALL)
|
|
' Inizializzo gestore macchina fotografica
|
|
m_Camera.Init()
|
|
End Sub
|
|
|
|
Private Sub PhotoBtn_Click(sender As Object, e As RoutedEventArgs) Handles PhotoBtn.Click
|
|
' Se macchina fotografica abilitata, faccio una foto
|
|
If m_Camera.GetCameraLink() Then
|
|
If Not m_Camera.CameraClick() Then
|
|
OutMessageLbl.Text = EgtMsg(90313) 'Fotografia non riuscita
|
|
OutMessageLbl.Background = Brushes.Tomato
|
|
OutMessageLbl.Visibility = Windows.Visibility.Visible
|
|
End If
|
|
' Altrimenti lancio browser di immagini
|
|
Else
|
|
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_CurrentProjectPageUC)
|
|
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_PhotoPage)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub PostPhoto(ByVal sPath As String)
|
|
' Carico la foto
|
|
m_MainWindow.m_CurrentProjectPageUC.LoadPhoto(sPath)
|
|
' Aggiorno visualizzazione
|
|
EgtZoom(ZM.ALL)
|
|
End Sub
|
|
|
|
Private Sub RawPartBtn_Click(sender As Object, e As RoutedEventArgs) Handles RawPartBtn.Click
|
|
m_MainWindow.m_CurrentProjectPageUC.CurrProjGrid.Visibility = Windows.Visibility.Hidden
|
|
m_MainWindow.m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_MainWindow.m_CadCutPageUC)
|
|
m_MainWindow.m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_MainWindow.m_RawPartPage)
|
|
m_MainWindow.m_ActivePage = MainWindow.Pages.RawPart
|
|
End Sub
|
|
|
|
Private Sub DrawBtn_Click(sender As Object, e As RoutedEventArgs) Handles DrawBtn.Click
|
|
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_CurrentProjectPageUC)
|
|
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_DrawPageUC)
|
|
m_MainWindow.m_ActivePage = MainWindow.Pages.Draw
|
|
End Sub
|
|
|
|
Private Sub ImportBtn_Click(sender As Object, e As RoutedEventArgs) Handles ImportBtn.Click
|
|
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_CurrentProjectPageUC)
|
|
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_ImportPageUC)
|
|
m_MainWindow.m_ActivePage = MainWindow.Pages.Import
|
|
End Sub
|
|
|
|
Private Sub CadCutPage_Unloaded(sender As Object, e As RoutedEventArgs)
|
|
' Chiudo tutti gli UserControl attivi
|
|
If m_bNesting Then
|
|
CadCutPageGrid.Children.Remove(m_NestPage)
|
|
Else
|
|
CadCutPageGrid.Children.Remove(m_SplitPage)
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub SplitBtn_Click(sender As Object, e As RoutedEventArgs) Handles SplitBtn.Click
|
|
If m_bNesting Then
|
|
SplitImage.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("/Resources/Nest.png", UriKind.Relative))
|
|
CadCutPageGrid.Children.Remove(m_NestPage)
|
|
CadCutPageGrid.Children.Add(m_SplitPage)
|
|
m_bNesting = False
|
|
Else
|
|
SplitImage.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("/Resources/Split.png", UriKind.Relative))
|
|
CadCutPageGrid.Children.Remove(m_SplitPage)
|
|
CadCutPageGrid.Children.Add(m_NestPage)
|
|
m_bNesting = True
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub NewBtn_Click(sender As Object, e As RoutedEventArgs) Handles NewBtn.Click
|
|
' Se progetto modificato, chiedo se salvarlo
|
|
If EgtGetModified() Then
|
|
Dim SaveCurrProj As New SaveCurrProjWD
|
|
SaveCurrProj.sTextString = "Salvare il progetto corrente?"
|
|
SaveCurrProj.ShowDialog()
|
|
Select Case SaveCurrProj.DialogResult
|
|
Case 0 ' Annulla
|
|
Return
|
|
Case 1 ' Si
|
|
m_MainWindow.m_CurrentProjectPageUC.SaveProject()
|
|
Case 2 ' No
|
|
' Non devo fare alcunchè
|
|
End Select
|
|
End If
|
|
m_MainWindow.m_CurrentProjectPageUC.NewProject()
|
|
EgtZoom(ZM.ALL)
|
|
End Sub
|
|
|
|
Private Sub LoadBtn_Click(sender As Object, e As RoutedEventArgs) Handles LoadBtn.Click
|
|
' Se progetto modificato, chiedo se salvarlo
|
|
If EgtGetModified() Then
|
|
Dim SaveCurrProj As New SaveCurrProjWD
|
|
SaveCurrProj.sTextString = "Salvare il progetto corrente?"
|
|
SaveCurrProj.ShowDialog()
|
|
Select Case SaveCurrProj.DialogResult
|
|
Case 0 ' Annulla
|
|
Return
|
|
Case 1 ' Si
|
|
m_MainWindow.m_CurrentProjectPageUC.SaveProject()
|
|
Case 2 ' No
|
|
' Non devo fare alcunchè
|
|
End Select
|
|
End If
|
|
' Passo alla pagina di apertura con preview
|
|
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_CurrentProjectPageUC)
|
|
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_OpenPage)
|
|
m_MainWindow.m_ActivePage = MainWindow.Pages.Open
|
|
End Sub
|
|
|
|
Friend Sub PostLoad(ByVal sPath As String)
|
|
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
|
|
If Not m_MainWindow.m_CurrentProjectPageUC.LoadProject(sPath) Then
|
|
m_MainWindow.m_CurrentProjectPageUC.NewProject()
|
|
End If
|
|
EgtZoom(ZM.ALL)
|
|
End Sub
|
|
|
|
Private Sub SaveBtn_Click(sender As Object, e As RoutedEventArgs) Handles SaveBtn.Click
|
|
' Eseguo salvataggio
|
|
m_MainWindow.m_CurrentProjectPageUC.SaveProject()
|
|
EgtDraw()
|
|
End Sub
|
|
|
|
Private Sub SimulateBtn_Click(sender As Object, e As RoutedEventArgs) Handles SimulateBtn.Click
|
|
m_MainWindow.m_CurrentProjectPageUC.CurrProjGrid.Visibility = Windows.Visibility.Hidden
|
|
m_MainWindow.m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_MainWindow.m_CadCutPageUC)
|
|
m_MainWindow.m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_MainWindow.m_SimulationPage)
|
|
m_MainWindow.m_ActivePage = MainWindow.Pages.Simulation
|
|
End Sub
|
|
|
|
Private Sub WorkBtn_Click(sender As Object, e As RoutedEventArgs) Handles WorkBtn.Click
|
|
Dim bOk As Boolean = True
|
|
' Disabilito impostazione modificato
|
|
EgtDisableModified()
|
|
' Inserisco le lavorazioni
|
|
Dim sSawMch As String = String.Empty
|
|
GetPrivateProfileString(S_MACH, K_CURRMACHINING, "", sSawMch, m_MainWindow.GetIniFile())
|
|
EgtLuaCreateGlobTable("CAM")
|
|
EgtLuaSetGlobStringVar("CAM.SAWMCH", sSawMch)
|
|
bOk = EgtLuaExecFile(m_MainWindow.GetCamAutoDir() & "\CamAuto.lua")
|
|
Dim nErr As Integer = 999
|
|
EgtLuaGetGlobIntVar("CAM.ERR", nErr)
|
|
EgtLuaResetGlobVar("CAM")
|
|
If nErr <> 0 Then
|
|
bOk = False
|
|
EgtOutLog("Error in CamAuto : " & nErr.ToString())
|
|
End If
|
|
' Salvo il progetto con le lavorazioni
|
|
Dim sMchPath As String = m_MainWindow.GetTempDir() & "\" & "MachProj.nge"
|
|
m_MainWindow.m_CurrentProjectPageUC.SaveFile(sMchPath)
|
|
' Genero file CNC (lancio anche se errore in precedenza)
|
|
bOk = EgtGenerate(m_MainWindow.GetCncDir() & "\CadCut.xpi", "OmagCut") And bOk
|
|
' Riporto il progetto allo stato iniziale
|
|
EgtRemoveAllOperations()
|
|
' Abilito impostazione modificato
|
|
EgtEnableModified()
|
|
' Se errore in generazione, segnalo l'errore ed esco
|
|
If Not bOk Then
|
|
OutMessageLbl.Text = EgtMsg(90314) 'Errore nella generazione del programma CN
|
|
OutMessageLbl.Background = Brushes.Tomato
|
|
OutMessageLbl.Visibility = Windows.Visibility.Visible
|
|
EgtOutLog(OutMessageLbl.Text)
|
|
Return
|
|
End If
|
|
' Download programma
|
|
If m_MainWindow.m_bNCLink Then
|
|
m_MainWindow.m_CNCommunication.m_CN.DGeneralFunctions_Reset()
|
|
If m_MainWindow.m_CNCommunication.m_nNCType = 1 Then
|
|
bOk = bOk AndAlso (m_MainWindow.m_CNCommunication.m_CN.Delete_NC_prog("%900.0") = 0)
|
|
End If
|
|
bOk = bOk AndAlso (m_MainWindow.m_CNCommunication.m_CN.Download_NC_prog(m_MainWindow.GetCncDir() & "\CadCut.xpi", "%900.0") = 0)
|
|
bOk = bOk AndAlso (m_MainWindow.m_CNCommunication.m_CN.Start_Transfer_NC_prog() = 0)
|
|
' Attesa opportuna
|
|
System.Threading.Thread.Sleep(5000)
|
|
' Attivazione programma
|
|
bOk = bOk AndAlso (m_MainWindow.m_CNCommunication.m_CN.ActivateProgram(900) = 0)
|
|
' Modalità automatica
|
|
bOk = bOk AndAlso (m_MainWindow.m_CNCommunication.m_CN.DGeneralFunctions_WriteCncMode(0) = 0)
|
|
' Se errore, lo segnalo
|
|
If Not bOk Then
|
|
OutMessageLbl.Text = EgtMsg(90315) 'Errore nella trasmissione del programma CN
|
|
OutMessageLbl.Background = Brushes.Tomato
|
|
OutMessageLbl.Visibility = Windows.Visibility.Visible
|
|
EgtOutLog(OutMessageLbl.Text)
|
|
End If
|
|
Else
|
|
OutMessageLbl.Text = EgtMsg(90316) 'Non connesso alla macchina
|
|
OutMessageLbl.Background = Brushes.Gold
|
|
OutMessageLbl.Visibility = Windows.Visibility.Visible
|
|
EgtOutLog(OutMessageLbl.Text)
|
|
End If
|
|
End Sub
|
|
|
|
End Class
|