ff30a4d3b6
- gestione nesting allineato (con regione di riferimento a L) - gestione epl pezzi rovinati da OmagVIEW per linee di produzione - piccole migliorie varie.
954 lines
43 KiB
VB.net
954 lines
43 KiB
VB.net
Imports System.Collections.ObjectModel
|
|
Imports EgtUILib
|
|
Imports EgtWPFLib
|
|
Imports System.ComponentModel
|
|
Imports System.Threading
|
|
Imports System.Windows.Threading
|
|
|
|
Class MainWindow
|
|
|
|
' Mutex per avere una sola istanza del programma in esecuzione
|
|
Private m_objMutex As New Mutex
|
|
|
|
' Dichiarazione della classe di connessione al CN
|
|
Friend m_CNCommunication As CNCommunication
|
|
' Variabile per presenza collegamento al CN
|
|
Friend m_bNCLink As Boolean = False
|
|
|
|
' Dichiarazione della MachineStatusBar
|
|
Friend m_MachineStatusUC As MachineStatusUC
|
|
|
|
' Coefficiente di scalatura della finestra rispetto a standard
|
|
Friend m_dMWinScale As Double = 1
|
|
|
|
' Dichiarazione delle Page UserControl
|
|
Friend m_WorkInProgressPageUC As WorkInProgressPageUC
|
|
Friend m_CurrentProjectPageUC As CurrentProjectPageUC
|
|
Friend m_DirectCutPageUC As DirectCutPageUC
|
|
Friend m_CadCutPageUC As CadCutPageUC
|
|
Friend m_OpenPage As OpenPageUC
|
|
Friend m_PhotoPage As PhotoPageUC
|
|
Friend m_RawPartPage As RawPartPageUC
|
|
Friend m_DrawPageUC As DrawPageUC
|
|
Friend m_ImportPageUC As ImportPageUC
|
|
Friend m_SimulationPage As SimulationPageUC
|
|
Friend m_FrameCutPageUC As FrameCutPageUC
|
|
Friend m_MachinePageUC As MachinePageUC
|
|
Friend m_OptionsPageUC As OptionsPageUC
|
|
|
|
' Dichiarazione variabili direttori
|
|
Private m_sExeRoot As String = String.Empty
|
|
Private m_sDataRoot As String = String.Empty
|
|
Private m_sConfigDir As String = String.Empty
|
|
Private m_sResourcesDir As String = String.Empty
|
|
Private m_sTempDir As String = String.Empty
|
|
Private m_sSaveDir As String = String.Empty
|
|
Private m_sNamedSaveDir As String = String.Empty
|
|
Private m_sCopyTemplateDir As String = String.Empty
|
|
Private m_sCncDir As String = String.Empty
|
|
Private m_sMachinesRoot As String = String.Empty
|
|
Private m_sIniFile As String = String.Empty
|
|
Private m_sMachIniFile As String = String.Empty
|
|
Private m_nDebug As Integer = 0
|
|
|
|
'Dichiarazione variabile contenente la lingua corrente
|
|
Friend m_CurrLanguage As Language
|
|
'Dichiarazione lista delle lingue disponibili e lingua corrente
|
|
Friend m_LanguagesList As New List(Of Language)
|
|
|
|
' Dichiarazione classe macchina
|
|
Friend m_CurrentMachine As CurrentMachine
|
|
' Macchina corrente
|
|
Private m_sCurrMachine As String = String.Empty
|
|
|
|
' Opzioni abilitate dalla licenza attiva associata alla chiave
|
|
Private m_nKeyOptions As UInteger
|
|
Friend Enum KEY_OPT As UInteger
|
|
BASE = 1
|
|
MAN_MANIP = 2
|
|
AUTO_MANIP = 4
|
|
MAN_PHOTO = 8
|
|
AUTO_PHOTO = 16
|
|
AUTO_NESTING = 32
|
|
ENABLE_MILL = 64
|
|
PROCUCTION_LINE = 128
|
|
End Enum
|
|
|
|
' Dichiarazione lista per ListBox della ImportPage
|
|
Friend m_ImportItemList As New ObservableCollection(Of IconListBoxItem)
|
|
Friend m_OpenItemList As New ObservableCollection(Of IconListBoxItem)
|
|
Friend m_PhotoItemList As New ObservableCollection(Of IconListBoxItem)
|
|
|
|
' Riferimento alla pagina correntemente attiva
|
|
Friend m_ActivePage As Pages
|
|
Friend m_PrevActivePage As Pages ' Funziona solo per tornare indietro da grezzo e foto !!
|
|
|
|
' Timer per aggiornamento interfaccia
|
|
Private m_IdleTimer As New DispatcherTimer(DispatcherPriority.ApplicationIdle)
|
|
|
|
' Timer per linea di produzione
|
|
Private m_ProdLineTimer As New DispatcherTimer(DispatcherPriority.ApplicationIdle)
|
|
|
|
Friend Enum Pages
|
|
WorkInProgress
|
|
DirectCut
|
|
CadCut
|
|
Photo
|
|
Open
|
|
RawPart
|
|
Draw
|
|
Import
|
|
CSV
|
|
Simulation
|
|
FrameCut
|
|
Machine
|
|
Alarms
|
|
Options
|
|
End Enum
|
|
|
|
Public Function GetExeRootDir() As String
|
|
Return m_sExeRoot
|
|
End Function
|
|
|
|
Public Function GetIniFile() As String
|
|
Return m_sIniFile
|
|
End Function
|
|
|
|
Public Function GetResourcesDir() As String
|
|
Return m_sResourcesDir
|
|
End Function
|
|
|
|
Public Function GetTempDir() As String
|
|
Return m_sTempDir
|
|
End Function
|
|
|
|
Public Function GetSaveDir() As String
|
|
Return m_sSaveDir
|
|
End Function
|
|
|
|
Public Function GetNamedSaveDir() As String
|
|
Return m_sNamedSaveDir
|
|
End Function
|
|
|
|
Public Function GetCamAutoDir() As String
|
|
Return m_sDataRoot & "\" & CAMAUTO_DIR
|
|
End Function
|
|
|
|
Public Function GetCsvAutoDir() As String
|
|
Return m_sDataRoot & "\" & CSVAUTO_DIR
|
|
End Function
|
|
|
|
Public Function GetCopyTemplateDir() As String
|
|
Return m_sCopyTemplateDir
|
|
End Function
|
|
|
|
Public Function GetCncDir() As String
|
|
Return m_sCncDir
|
|
End Function
|
|
|
|
Public Function GetMachinesRootDir() As String
|
|
Return m_sMachinesRoot
|
|
End Function
|
|
|
|
Public Function GetCurrMachine() As String
|
|
Return m_sCurrMachine
|
|
End Function
|
|
|
|
Public Function GetMachIniFile() As String
|
|
Return m_sMachIniFile
|
|
End Function
|
|
|
|
Friend Function GetKeyOption(nKeyOpt As KEY_OPT) As Boolean
|
|
Return ((m_nKeyOptions And nKeyOpt) <> 0)
|
|
End Function
|
|
|
|
Friend Function GetKeyOptions() As UInteger
|
|
Return m_nKeyOptions
|
|
End Function
|
|
|
|
Private Sub MainWindow_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
|
|
' Verifico sia l'unica istanza
|
|
ManageSingleIstance()
|
|
' Imposto path di esecuzione
|
|
m_sExeRoot = System.AppDomain.CurrentDomain.BaseDirectory.TrimEnd("\".ToCharArray())
|
|
' Impostazione path radice per i dati
|
|
If GetPrivateProfileString(S_DATA, K_DATAROOT, "", m_sDataRoot, m_sExeRoot & "\" & DAT_FILE_NAME) = 0 Then
|
|
m_sDataRoot = m_sExeRoot
|
|
End If
|
|
' Impostazione direttorio di configurazione
|
|
m_sConfigDir = m_sDataRoot & "\" & CONF_DIR
|
|
' Impostazione direttorio delle risorse
|
|
m_sResourcesDir = m_sDataRoot & "\" & RES_DIR
|
|
' Impostazione direttorio per file temporanei
|
|
m_sTempDir = m_sDataRoot & "\" & TEMP_DIR
|
|
' Impostazione direttorio per file Cnc
|
|
m_sCncDir = m_sDataRoot & "\" & CNC_DIR
|
|
' Impostazione path Ini file
|
|
m_sIniFile = m_sConfigDir & "\" & INI_FILE_NAME
|
|
' Impostazione direttorio di salvataggio automatico
|
|
If GetPrivateProfileString(S_GENERAL, K_SAVEDIR, "", m_sSaveDir, m_sIniFile) = 0 Then
|
|
m_sSaveDir = m_sDataRoot & "\" & SAVE_DFL_DIR
|
|
End If
|
|
' Impostazione direttorio di salvataggio dei progetti con nome
|
|
If GetPrivateProfileString(S_GENERAL, K_SAVENAMEDIR, "", m_sNamedSaveDir, m_sIniFile) = 0 Then
|
|
m_sNamedSaveDir = m_sDataRoot & "\" & SAVE_DFL_NAMEDIR
|
|
End If
|
|
' Impostazione direttorio di salvataggio dei DXF delle dime (CopyTemplate)
|
|
If GetPrivateProfileString(S_COPYTEMPLATE, K_CPTCURRDIR, "", m_sCopyTemplateDir, m_sIniFile) = 0 Then
|
|
m_sCopyTemplateDir = m_sDataRoot & "\" & TEMPLATE_DFL_DIR
|
|
End If
|
|
' Impostazione direttorio per le macchine
|
|
If GetPrivateProfileString(S_MACH, K_MACHINESDIR, "", m_sMachinesRoot, m_sIniFile) = 0 Then
|
|
m_sMachinesRoot = m_sDataRoot & "\" & MACHINES_DFL_DIR
|
|
End If
|
|
' Recupero nome macchina corrente
|
|
GetPrivateProfileString(S_MACH, K_CURRMACH, "", m_sCurrMachine, m_sIniFile)
|
|
' Impostazione path MachIni file
|
|
m_sMachIniFile = m_sMachinesRoot & "\" & m_sCurrMachine & "\" & m_sCurrMachine & ".ini"
|
|
' Leggo e imposto chiave di protezione
|
|
Dim sLicFileName As String = String.Empty
|
|
GetPrivateProfileString(S_GENERAL, K_LICENCE, LIC_FILE_NAME, sLicFileName, m_sIniFile)
|
|
Dim sLicFile As String = m_sConfigDir & "\" & sLicFileName
|
|
Dim sKey As String = String.Empty
|
|
GetPrivateProfileString(S_LICENCE, K_KEY, "", sKey, sLicFile)
|
|
EgtSetKey(sKey)
|
|
' Recupero opzioni della chiave
|
|
Dim bKey As Boolean = EgtGetKeyOptions(9423, 16, 1, m_nKeyOptions)
|
|
' Inizializzazione generale di EgtInterface
|
|
m_nDebug = GetPrivateProfileInt(S_GENERAL, K_DEBUG, 0, m_sIniFile)
|
|
Dim sLogFile As String = m_sTempDir & "\" & GENLOG_FILE_NAME
|
|
Dim sLogMsg As String = My.Application.Info.Description.ToString() & " ver. " &
|
|
My.Application.Info.Version.Major.ToString() &
|
|
"." & My.Application.Info.Version.Minor.ToString() &
|
|
(ChrW(97 - 1 + My.Application.Info.Version.Build)).ToString() &
|
|
My.Application.Info.Version.Revision.ToString()
|
|
EgtInit(m_nDebug, sLogFile, sLogMsg)
|
|
' Leggo direttorio dei messaggi (se manca uso direttorio di configurazione)
|
|
Dim sMsgDir As String = String.Empty
|
|
If GetPrivateProfileString(S_GENERAL, K_MESSAGESDIR, "", sMsgDir, m_sIniFile) = 0 Then
|
|
sMsgDir = m_sConfigDir
|
|
End If
|
|
' Leggo elenco lingue disponibili da file ini
|
|
Dim nIndex As Integer = 1
|
|
Dim ReadLanguage As Language = GetPrivateProfileLanguage(S_LANGUAGES, K_LANGUAGE & nIndex, GetIniFile)
|
|
While Not IsNothing(ReadLanguage)
|
|
m_LanguagesList.Add(ReadLanguage)
|
|
nIndex += 1
|
|
ReadLanguage = GetPrivateProfileLanguage(S_LANGUAGES, K_LANGUAGE & nIndex, GetIniFile)
|
|
End While
|
|
' Leggo file messaggi
|
|
Dim sMsgFile As String = String.Empty
|
|
GetPrivateProfileString(S_GENERAL, K_MESSAGES, "", sMsgFile, m_sIniFile)
|
|
For i As Integer = 0 To m_LanguagesList.Count - 1
|
|
If m_LanguagesList(i).LanguageName = sMsgFile Then
|
|
m_CurrLanguage = m_LanguagesList(i)
|
|
End If
|
|
Next
|
|
Dim sMsgFilePath As String = sMsgDir & "\EgalTechIta.txt"
|
|
If Not IsNothing(m_CurrLanguage) Then
|
|
sMsgFilePath = sMsgDir & "\" & m_CurrLanguage.FileName
|
|
End If
|
|
If Not EgtLoadMessages(sMsgFilePath) Then
|
|
EgtOutLog("Error in EgtLoadMessages")
|
|
End If
|
|
Dim sNfeDir As String = String.Empty
|
|
GetPrivateProfileString(S_GEOMDB, K_NFEFONTDIR, "", sNfeDir, m_sIniFile)
|
|
Dim sDefFont As String = String.Empty
|
|
GetPrivateProfileString(S_GEOMDB, K_DEFAULTFONT, "", sDefFont, m_sIniFile)
|
|
EgtSetFont(sNfeDir, sDefFont)
|
|
' Imposto dir di default per libreria Lua e lancio libreria di base
|
|
Dim sLuaLibsDir As String = String.Empty
|
|
GetPrivateProfileString(S_LUA, K_LIBSDIR, "", sLuaLibsDir, m_sIniFile)
|
|
EgtSetLuaLibs(sLuaLibsDir)
|
|
Dim sLuaBaseLib As String = String.Empty
|
|
GetPrivateProfileString(S_LUA, K_BASELIB, "EgtBase", sLuaBaseLib, m_sIniFile)
|
|
EgtLuaRequire(sLuaBaseLib)
|
|
' Imposto unità di misura per interfaccia utente
|
|
Dim bMM As Boolean = (GetPrivateProfileInt(S_GENERAL, K_MMUNITS, 1, m_sIniFile) <> 0)
|
|
EgtSetUiUnits(bMM)
|
|
' Imposto posizione e dimensioni della MainWindow
|
|
Dim nFlag, nLeft, nTop, nWidth, nHeight As Integer
|
|
GetPrivateProfileWinPos(S_GENERAL, K_WINPLACE, nFlag, nLeft, nTop, nWidth, nHeight, m_sIniFile)
|
|
Me.WindowStartupLocation = Windows.WindowStartupLocation.Manual
|
|
Me.Top = nTop
|
|
Me.Left = nLeft
|
|
Me.Height = nHeight
|
|
Me.Width = nWidth
|
|
WindowState = If(nFlag = 1, WindowState.Maximized, WindowState.Normal)
|
|
m_dMWinScale = Math.Min(Me.Width / 1280, Me.Height / 832)
|
|
' Info su opzioni chiave
|
|
EgtOutLog("KeyOptions : " & bKey.ToString() & " " & m_nKeyOptions.ToString())
|
|
' Inizializzazione della libreria EgtWPFLib
|
|
EgtWPFInit()
|
|
' Inizializzo classe macchina corrente
|
|
m_CurrentMachine = New CurrentMachine
|
|
' Crezione della MachineStatusBar
|
|
m_MachineStatusUC = New MachineStatusUC
|
|
' Creazione delle Page UserControl
|
|
m_WorkInProgressPageUC = New WorkInProgressPageUC
|
|
m_DirectCutPageUC = New DirectCutPageUC
|
|
m_CadCutPageUC = New CadCutPageUC
|
|
m_OpenPage = New OpenPageUC
|
|
m_PhotoPage = New PhotoPageUC
|
|
m_RawPartPage = New RawPartPageUC
|
|
m_DrawPageUC = New DrawPageUC
|
|
m_ImportPageUC = New ImportPageUC
|
|
m_SimulationPage = New SimulationPageUC
|
|
m_FrameCutPageUC = New FrameCutPageUC
|
|
m_CurrentProjectPageUC = New CurrentProjectPageUC
|
|
m_MachinePageUC = New MachinePageUC
|
|
m_OptionsPageUC = New OptionsPageUC
|
|
' Creazione gestore comunicazione con macchina CN
|
|
m_CNCommunication = New CNCommunication
|
|
' Posizionamento nella griglia della MachineStatusBar
|
|
m_MachineStatusUC.SetValue(Grid.RowProperty, 2)
|
|
' Posizionemento nella griglia delle Page UserControl
|
|
m_WorkInProgressPageUC.SetValue(Grid.ColumnProperty, 0)
|
|
m_WorkInProgressPageUC.SetValue(Grid.RowProperty, 1)
|
|
m_OpenPage.SetValue(Grid.ColumnProperty, 0)
|
|
m_OpenPage.SetValue(Grid.RowProperty, 1)
|
|
m_PhotoPage.SetValue(Grid.ColumnProperty, 0)
|
|
m_PhotoPage.SetValue(Grid.RowProperty, 1)
|
|
m_RawPartPage.SetValue(Grid.ColumnSpanProperty, 2)
|
|
m_RawPartPage.SetValue(Grid.RowSpanProperty, 3)
|
|
m_SimulationPage.SetValue(Grid.ColumnSpanProperty, 2)
|
|
m_SimulationPage.SetValue(Grid.RowSpanProperty, 3)
|
|
m_DrawPageUC.SetValue(Grid.ColumnProperty, 0)
|
|
m_DrawPageUC.SetValue(Grid.RowProperty, 1)
|
|
m_ImportPageUC.SetValue(Grid.ColumnProperty, 0)
|
|
m_ImportPageUC.SetValue(Grid.RowProperty, 1)
|
|
m_CurrentProjectPageUC.SetValue(Grid.ColumnProperty, 0)
|
|
m_CurrentProjectPageUC.SetValue(Grid.RowProperty, 1)
|
|
m_MachinePageUC.SetValue(Grid.ColumnProperty, 0)
|
|
m_MachinePageUC.SetValue(Grid.RowProperty, 1)
|
|
m_OptionsPageUC.SetValue(Grid.ColumnProperty, 0)
|
|
m_OptionsPageUC.SetValue(Grid.RowProperty, 1)
|
|
' Posizionamento nella griglia di pagine e usercontrol di utilità
|
|
m_WorkInProgressPageUC.SetValue(Grid.ColumnProperty, 0)
|
|
m_WorkInProgressPageUC.SetValue(Grid.RowProperty, 1)
|
|
' Disabilita la possibilità di imitare il click del tasto destro del mouse tenendo premuto il dito sul touch
|
|
' NB: Se abilitato impedisce di utilizzare lo stato Pressed dei Button che quindi non si evidenziano quando premuti
|
|
Stylus.SetIsPressAndHoldEnabled(Me, False)
|
|
' Imposto i messaggi letti dal file dei messaggi
|
|
WorkInProgressBtn.Content = EgtMsg(MSG_GENERAL + 1)
|
|
DirectCutBtn.Content = EgtMsg(MSG_GENERAL + 2)
|
|
CadCutBtn.Content = EgtMsg(MSG_GENERAL + 3)
|
|
FrameCutBtn.Content = EgtMsg(MSG_GENERAL + 4)
|
|
MachineBtn.Content = EgtMsg(MSG_GENERAL + 5)
|
|
' Imposto OnIdle
|
|
AddHandler m_IdleTimer.Tick, AddressOf OnIdle
|
|
' Imposto OnProdLine
|
|
AddHandler m_ProdLineTimer.Tick, AddressOf OnProdLine
|
|
End Sub
|
|
|
|
Private Sub ManageSingleIstance()
|
|
Dim bCreated As Boolean
|
|
Try
|
|
m_objMutex = New Mutex(False, "Global\OmagCut", bCreated)
|
|
Catch
|
|
bCreated = False
|
|
End Try
|
|
If Not bCreated Then
|
|
' porto in primo piano la prima istanza
|
|
Dim bFound As Boolean = False
|
|
' processi del programma a 32 bit
|
|
Dim localProc As Process() = Process.GetProcessesByName("OmagCutR32")
|
|
For Each p As Process In localProc
|
|
If p.Id <> Process.GetCurrentProcess().Id Then
|
|
bFound = True
|
|
ShowWindow(p.MainWindowHandle, 1)
|
|
Exit For
|
|
End If
|
|
Next
|
|
' se non trovati processi a 32 bit provo a 64 bit
|
|
If Not bFound Then
|
|
localProc = Process.GetProcessesByName("OmagCutR64")
|
|
For Each p As Process In localProc
|
|
If p.Id <> Process.GetCurrentProcess().Id Then
|
|
bFound = True
|
|
ShowWindow(p.MainWindowHandle, SW.RESTORE)
|
|
Exit For
|
|
End If
|
|
Next
|
|
End If
|
|
' esco dal programma
|
|
End
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub MainWindow_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs) Handles Me.Loaded
|
|
|
|
' Aggiungo la MachineStatusBar alla MainWindow
|
|
MainWindowGrid.Children.Add(m_MachineStatusUC)
|
|
|
|
' Preparo la macchina per la lavorazione in corso
|
|
m_WorkInProgressPageUC.Prepare()
|
|
m_WorkInProgressPageUC.UpdateTools()
|
|
|
|
' Seleziono la Page di apertura
|
|
MainWindowGrid.Children.Add(m_CurrentProjectPageUC)
|
|
|
|
' Lancio timer per aggiornamento interfaccia
|
|
m_IdleTimer.Interval = TimeSpan.FromMilliseconds(100)
|
|
m_IdleTimer.Start()
|
|
End Sub
|
|
|
|
Private Sub WorkInProgressBtn_Click(sender As Object, e As RoutedEventArgs) Handles WorkInProgressBtn.Click
|
|
Select Case m_ActivePage
|
|
Case Pages.WorkInProgress
|
|
WorkInProgressBtn.IsChecked = True
|
|
Case Pages.DirectCut
|
|
WorkInProgressBtn.IsChecked = True
|
|
DirectCutBtn.IsChecked = False
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_DirectCutPageUC)
|
|
MainWindowGrid.Children.Remove(m_CurrentProjectPageUC)
|
|
MainWindowGrid.Children.Add(m_WorkInProgressPageUC)
|
|
m_ActivePage = Pages.WorkInProgress
|
|
Case Pages.CadCut
|
|
WorkInProgressBtn.IsChecked = True
|
|
CadCutBtn.IsChecked = False
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_CadCutPageUC)
|
|
MainWindowGrid.Children.Remove(m_CurrentProjectPageUC)
|
|
MainWindowGrid.Children.Add(m_WorkInProgressPageUC)
|
|
m_ActivePage = Pages.WorkInProgress
|
|
Case Pages.Photo, Pages.RawPart, Pages.Draw, Pages.Import, Pages.CSV, Pages.Simulation
|
|
WorkInProgressBtn.IsChecked = False
|
|
CadCutBtn.IsChecked = True
|
|
Case Pages.FrameCut
|
|
WorkInProgressBtn.IsChecked = True
|
|
FrameCutBtn.IsChecked = False
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_FrameCutPageUC)
|
|
MainWindowGrid.Children.Remove(m_CurrentProjectPageUC)
|
|
MainWindowGrid.Children.Add(m_WorkInProgressPageUC)
|
|
m_ActivePage = Pages.WorkInProgress
|
|
Case Pages.Machine
|
|
WorkInProgressBtn.IsChecked = False
|
|
If Not ExitFromMachine() Then
|
|
WorkInProgressBtn.IsChecked = False
|
|
MachineBtn.IsChecked = True
|
|
Exit Sub
|
|
End If
|
|
WorkInProgressBtn.IsChecked = True
|
|
MachineBtn.IsChecked = False
|
|
MainWindowGrid.Children.Remove(m_MachinePageUC)
|
|
MainWindowGrid.Children.Add(m_WorkInProgressPageUC)
|
|
m_ActivePage = Pages.WorkInProgress
|
|
Case Pages.Options
|
|
WorkInProgressBtn.IsChecked = True
|
|
OptionsBtn.IsChecked = False
|
|
MainWindowGrid.Children.Remove(m_OptionsPageUC)
|
|
MainWindowGrid.Children.Add(m_WorkInProgressPageUC)
|
|
m_ActivePage = Pages.WorkInProgress
|
|
End Select
|
|
End Sub
|
|
|
|
Private Sub DirectCutBtn_Click(sender As Object, e As RoutedEventArgs) Handles DirectCutBtn.Click
|
|
Select Case m_ActivePage
|
|
Case Pages.WorkInProgress
|
|
WorkInProgressBtn.IsChecked = False
|
|
DirectCutBtn.IsChecked = True
|
|
MainWindowGrid.Children.Remove(m_WorkInProgressPageUC)
|
|
MainWindowGrid.Children.Add(m_CurrentProjectPageUC)
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_DirectCutPageUC)
|
|
m_ActivePage = Pages.DirectCut
|
|
Case Pages.DirectCut
|
|
DirectCutBtn.IsChecked = True
|
|
Case Pages.CadCut
|
|
DirectCutBtn.IsChecked = True
|
|
CadCutBtn.IsChecked = False
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_CadCutPageUC)
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_DirectCutPageUC)
|
|
m_ActivePage = Pages.DirectCut
|
|
Case Pages.Photo, Pages.RawPart, Pages.Draw, Pages.Import, Pages.CSV, Pages.Simulation
|
|
DirectCutBtn.IsChecked = False
|
|
CadCutBtn.IsChecked = True
|
|
Case Pages.FrameCut
|
|
DirectCutBtn.IsChecked = True
|
|
FrameCutBtn.IsChecked = False
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_FrameCutPageUC)
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_DirectCutPageUC)
|
|
m_ActivePage = Pages.DirectCut
|
|
Case Pages.Machine
|
|
DirectCutBtn.IsChecked = False
|
|
If Not ExitFromMachine() Then
|
|
DirectCutBtn.IsChecked = False
|
|
MachineBtn.IsChecked = True
|
|
Exit Sub
|
|
End If
|
|
DirectCutBtn.IsChecked = True
|
|
MachineBtn.IsChecked = False
|
|
MainWindowGrid.Children.Remove(m_MachinePageUC)
|
|
MainWindowGrid.Children.Add(m_CurrentProjectPageUC)
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_DirectCutPageUC)
|
|
m_ActivePage = Pages.DirectCut
|
|
Case Pages.Options
|
|
DirectCutBtn.IsChecked = True
|
|
OptionsBtn.IsChecked = False
|
|
MainWindowGrid.Children.Remove(m_OptionsPageUC)
|
|
MainWindowGrid.Children.Add(m_CurrentProjectPageUC)
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_DirectCutPageUC)
|
|
m_ActivePage = Pages.DirectCut
|
|
End Select
|
|
End Sub
|
|
|
|
Private Sub CadCutBtn_Click(sender As Object, e As RoutedEventArgs) Handles CadCutBtn.Click
|
|
Select Case m_ActivePage
|
|
Case Pages.WorkInProgress
|
|
WorkInProgressBtn.IsChecked = False
|
|
CadCutBtn.IsChecked = True
|
|
MainWindowGrid.Children.Remove(m_WorkInProgressPageUC)
|
|
MainWindowGrid.Children.Add(m_CurrentProjectPageUC)
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_CadCutPageUC)
|
|
m_ActivePage = Pages.CadCut
|
|
Case Pages.DirectCut
|
|
DirectCutBtn.IsChecked = False
|
|
CadCutBtn.IsChecked = True
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_DirectCutPageUC)
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_CadCutPageUC)
|
|
m_ActivePage = Pages.CadCut
|
|
Case Pages.CadCut
|
|
CadCutBtn.IsChecked = True
|
|
Case Pages.Photo, Pages.RawPart, Pages.Draw, Pages.Import, Pages.CSV, Pages.Simulation
|
|
CadCutBtn.IsChecked = True
|
|
Case Pages.FrameCut
|
|
CadCutBtn.IsChecked = True
|
|
FrameCutBtn.IsChecked = False
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_FrameCutPageUC)
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_CadCutPageUC)
|
|
m_ActivePage = Pages.CadCut
|
|
Case Pages.Machine
|
|
CadCutBtn.IsChecked = False
|
|
If Not ExitFromMachine() Then
|
|
CadCutBtn.IsChecked = False
|
|
MachineBtn.IsChecked = True
|
|
Exit Sub
|
|
End If
|
|
CadCutBtn.IsChecked = True
|
|
MachineBtn.IsChecked = False
|
|
MainWindowGrid.Children.Remove(m_MachinePageUC)
|
|
MainWindowGrid.Children.Add(m_CurrentProjectPageUC)
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_CadCutPageUC)
|
|
m_ActivePage = Pages.CadCut
|
|
Case Pages.Options
|
|
CadCutBtn.IsChecked = True
|
|
OptionsBtn.IsChecked = False
|
|
MainWindowGrid.Children.Remove(m_OptionsPageUC)
|
|
MainWindowGrid.Children.Add(m_CurrentProjectPageUC)
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_CadCutPageUC)
|
|
m_ActivePage = Pages.CadCut
|
|
End Select
|
|
End Sub
|
|
|
|
Private Sub FrameCutBtn_Click(sender As Object, e As RoutedEventArgs) Handles FrameCutBtn.Click
|
|
Select Case m_ActivePage
|
|
Case Pages.WorkInProgress
|
|
WorkInProgressBtn.IsChecked = False
|
|
FrameCutBtn.IsChecked = True
|
|
MainWindowGrid.Children.Remove(m_WorkInProgressPageUC)
|
|
MainWindowGrid.Children.Add(m_CurrentProjectPageUC)
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_FrameCutPageUC)
|
|
m_ActivePage = Pages.FrameCut
|
|
Case Pages.DirectCut
|
|
DirectCutBtn.IsChecked = False
|
|
FrameCutBtn.IsChecked = True
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_DirectCutPageUC)
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_FrameCutPageUC)
|
|
m_ActivePage = Pages.FrameCut
|
|
Case Pages.CadCut
|
|
CadCutBtn.IsChecked = False
|
|
FrameCutBtn.IsChecked = True
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_CadCutPageUC)
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_FrameCutPageUC)
|
|
m_ActivePage = Pages.FrameCut
|
|
Case Pages.Photo, Pages.RawPart, Pages.Draw, Pages.Import, Pages.CSV, Pages.Simulation
|
|
CadCutBtn.IsChecked = True
|
|
FrameCutBtn.IsChecked = False
|
|
Case Pages.FrameCut
|
|
FrameCutBtn.IsChecked = True
|
|
Case Pages.Machine
|
|
FrameCutBtn.IsChecked = False
|
|
If Not ExitFromMachine() Then
|
|
FrameCutBtn.IsChecked = False
|
|
MachineBtn.IsChecked = True
|
|
Exit Sub
|
|
End If
|
|
FrameCutBtn.IsChecked = True
|
|
MachineBtn.IsChecked = False
|
|
MainWindowGrid.Children.Remove(m_MachinePageUC)
|
|
MainWindowGrid.Children.Add(m_CurrentProjectPageUC)
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_FrameCutPageUC)
|
|
m_ActivePage = Pages.FrameCut
|
|
Case Pages.Options
|
|
FrameCutBtn.IsChecked = True
|
|
OptionsBtn.IsChecked = False
|
|
MainWindowGrid.Children.Remove(m_OptionsPageUC)
|
|
MainWindowGrid.Children.Add(m_CurrentProjectPageUC)
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_FrameCutPageUC)
|
|
m_ActivePage = Pages.FrameCut
|
|
End Select
|
|
End Sub
|
|
|
|
Private Sub MachineBtn_Click(sender As Object, e As RoutedEventArgs) Handles MachineBtn.Click
|
|
Select Case m_ActivePage
|
|
Case Pages.WorkInProgress
|
|
WorkInProgressBtn.IsChecked = False
|
|
MachineBtn.IsChecked = True
|
|
MainWindowGrid.Children.Remove(m_WorkInProgressPageUC)
|
|
MainWindowGrid.Children.Add(m_MachinePageUC)
|
|
m_ActivePage = Pages.Machine
|
|
Case Pages.DirectCut
|
|
DirectCutBtn.IsChecked = False
|
|
MachineBtn.IsChecked = True
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_DirectCutPageUC)
|
|
MainWindowGrid.Children.Remove(m_CurrentProjectPageUC)
|
|
MainWindowGrid.Children.Add(m_MachinePageUC)
|
|
m_ActivePage = Pages.Machine
|
|
Case Pages.CadCut
|
|
CadCutBtn.IsChecked = False
|
|
MachineBtn.IsChecked = True
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_CadCutPageUC)
|
|
MainWindowGrid.Children.Remove(m_CurrentProjectPageUC)
|
|
MainWindowGrid.Children.Add(m_MachinePageUC)
|
|
m_ActivePage = Pages.Machine
|
|
Case Pages.Photo, Pages.RawPart, Pages.Draw, Pages.Import, Pages.CSV, Pages.Simulation
|
|
CadCutBtn.IsChecked = True
|
|
MachineBtn.IsChecked = False
|
|
Case Pages.FrameCut
|
|
FrameCutBtn.IsChecked = False
|
|
MachineBtn.IsChecked = True
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_FrameCutPageUC)
|
|
MainWindowGrid.Children.Remove(m_CurrentProjectPageUC)
|
|
MainWindowGrid.Children.Add(m_MachinePageUC)
|
|
m_ActivePage = Pages.Machine
|
|
Case Pages.Machine
|
|
MachineBtn.IsChecked = True
|
|
Case Pages.Options
|
|
MachineBtn.IsChecked = True
|
|
OptionsBtn.IsChecked = False
|
|
MainWindowGrid.Children.Remove(m_OptionsPageUC)
|
|
MainWindowGrid.Children.Add(m_MachinePageUC)
|
|
m_ActivePage = Pages.Machine
|
|
End Select
|
|
End Sub
|
|
|
|
Private Sub OptionsBtn_Click(sender As Object, e As RoutedEventArgs) Handles OptionsBtn.Click
|
|
Select Case m_ActivePage
|
|
Case Pages.WorkInProgress
|
|
WorkInProgressBtn.IsChecked = False
|
|
OptionsBtn.IsChecked = True
|
|
MainWindowGrid.Children.Remove(m_WorkInProgressPageUC)
|
|
MainWindowGrid.Children.Add(m_OptionsPageUC)
|
|
m_ActivePage = Pages.Options
|
|
Case Pages.DirectCut
|
|
DirectCutBtn.IsChecked = False
|
|
OptionsBtn.IsChecked = True
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_DirectCutPageUC)
|
|
MainWindowGrid.Children.Remove(m_CurrentProjectPageUC)
|
|
MainWindowGrid.Children.Add(m_OptionsPageUC)
|
|
m_ActivePage = Pages.Options
|
|
Case Pages.CadCut
|
|
CadCutBtn.IsChecked = False
|
|
OptionsBtn.IsChecked = True
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_CadCutPageUC)
|
|
MainWindowGrid.Children.Remove(m_CurrentProjectPageUC)
|
|
MainWindowGrid.Children.Add(m_OptionsPageUC)
|
|
m_ActivePage = Pages.Options
|
|
Case Pages.Photo, Pages.RawPart, Pages.Draw, Pages.Import, Pages.CSV, Pages.Simulation
|
|
CadCutBtn.IsChecked = True
|
|
OptionsBtn.IsChecked = False
|
|
Case Pages.FrameCut
|
|
FrameCutBtn.IsChecked = False
|
|
OptionsBtn.IsChecked = True
|
|
m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(m_FrameCutPageUC)
|
|
MainWindowGrid.Children.Remove(m_CurrentProjectPageUC)
|
|
MainWindowGrid.Children.Add(m_OptionsPageUC)
|
|
m_ActivePage = Pages.Options
|
|
Case Pages.Machine
|
|
OptionsBtn.IsChecked = False
|
|
If Not ExitFromMachine() Then
|
|
OptionsBtn.IsChecked = False
|
|
MachineBtn.IsChecked = True
|
|
Exit Sub
|
|
End If
|
|
MachineBtn.IsChecked = False
|
|
OptionsBtn.IsChecked = True
|
|
MainWindowGrid.Children.Remove(m_MachinePageUC)
|
|
MainWindowGrid.Children.Add(m_OptionsPageUC)
|
|
m_ActivePage = Pages.Options
|
|
Case Pages.Options
|
|
OptionsBtn.IsChecked = True
|
|
End Select
|
|
End Sub
|
|
|
|
Private Sub MainWindow_PreviewMouseDown(sender As Object, e As MouseButtonEventArgs) Handles Me.PreviewMouseDown
|
|
' Se sto fotografando, impedisco tutte le operazioni
|
|
If m_CadCutPageUC.m_Camera.m_bBusy And Not m_CurrentProjectPageUC.m_SceneButtons.IsMouseOver Then
|
|
e.Handled = True
|
|
Return
|
|
End If
|
|
' Se già visualizzato errore, lo nascondo
|
|
If m_CurrentProjectPageUC.OutMessageBrd.IsMouseOver Then
|
|
m_CurrentProjectPageUC.ClearMessage()
|
|
End If
|
|
' Condizioni che impediscono di clickare fuori dalla calcolatrice o tastiera quando una di queste è aperta
|
|
If EgtWPFLib.EgtCalculator.GetbIsActive Then
|
|
e.Handled = True
|
|
Return
|
|
End If
|
|
If EgtWPFLib.EgtKeyboard.GetbIsActive Then
|
|
e.Handled = True
|
|
Return
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub MainWindow_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
|
|
'If (m_NumericKeyboardWD.IsVisible And e.Key = Key.Enter) Then
|
|
' m_NumericKeyboardWD.Visibility = Windows.Visibility.Hidden
|
|
'End If
|
|
End Sub
|
|
|
|
Private Sub ExitBtn_Click(sender As Object, e As RoutedEventArgs)
|
|
' Verifica se progetto corrente da salvare
|
|
Dim bPrjToSave As Boolean = False
|
|
EgtSetCurrentContext(m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
|
|
If EgtGetModified() Then
|
|
Dim SaveCurrProj As New EgtMsgBox(Me, "", EgtMsg(MSG_EGTMSGBOX + 1), EgtMsgBox.Buttons.YES_NO_CANCEL, EgtMsgBox.Icons.NULL)
|
|
Select Case SaveCurrProj.DialogResult
|
|
Case 0 ' Annulla
|
|
Return
|
|
Case 1 ' Si
|
|
bPrjToSave = True
|
|
Case 2 ' No
|
|
bPrjToSave = False
|
|
End Select
|
|
End If
|
|
' Uscita da pagina corrente definizione grezzo
|
|
If Not ExitFromRaw() Then Return
|
|
' Uscita da pagina corrente CSV
|
|
If Not ExitFromCsv() Then Return
|
|
' Uscita da pagina corrente di split
|
|
If Not ExitFromSplit() Then Return
|
|
' Uscita da pagina corrente di simulazione
|
|
If Not ExitFromSimulation() Then Return
|
|
' Uscita da pagina corrente di macchina
|
|
If Not ExitFromMachine() Then Return
|
|
' Uscita da pagina tagli diretti
|
|
If Not ExitFromDirectCut(sender, e) Then Return
|
|
' Eventuale salvataggio progetto corrente
|
|
If bPrjToSave Then
|
|
EgtSetCurrentContext(m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
|
|
m_CurrentProjectPageUC.SaveNamedProject()
|
|
m_CurrentProjectPageUC.SaveProject()
|
|
End If
|
|
' Uscita
|
|
MainWindow_Unloaded(sender, e)
|
|
Me.Close()
|
|
End Sub
|
|
|
|
Private Function ExitFromRaw() As Boolean
|
|
' Se non sono in definizione grezzo tutto ok
|
|
If m_ActivePage <> Pages.RawPart Then Return True
|
|
' Mi assicuro di terminare correttamente le operazioni
|
|
Return m_RawPartPage.ExitRawPart(True)
|
|
End Function
|
|
|
|
Private Function ExitFromCsv() As Boolean
|
|
' Salvo lo stato attuale della lista
|
|
m_CadCutPageUC.m_CSVPage.SaveCsvPartList()
|
|
Return True
|
|
End Function
|
|
|
|
Private Function ExitFromSplit() As Boolean
|
|
' Se non sono in split tutto ok
|
|
If m_ActivePage <> Pages.CadCut Or m_CadCutPageUC.m_CadCutMode = CadCutPageUC.CadCutModes.Nest Then Return True
|
|
' Mi assicuro di terminare correttamente lo split
|
|
m_CadCutPageUC.m_SplitPage.ExitSplit()
|
|
Return True
|
|
End Function
|
|
|
|
Private Function ExitFromSimulation() As Boolean
|
|
' Se non sono in simulazione tutto ok
|
|
If m_ActivePage <> Pages.Simulation Then Return True
|
|
' Mi assicuro di terminare correttamente la simulazione
|
|
m_SimulationPage.ResetSimulation()
|
|
Return True
|
|
End Function
|
|
|
|
Private Function ExitFromDirectCut(sender As Object, e As RoutedEventArgs) As Boolean
|
|
' Se non sono in tagli diretti tutto ok
|
|
If m_ActivePage <> Pages.DirectCut Then Return True
|
|
' Concludo le attività in corso
|
|
Select Case m_DirectCutPageUC.m_ActiveDirectCutPage
|
|
Case DirectCutPageUC.DirectCutPages.SingleCut
|
|
m_DirectCutPageUC.m_SingleCut.SingleCut_Unloaded(sender, e)
|
|
Case DirectCutPageUC.DirectCutPages.MultipleCut
|
|
m_DirectCutPageUC.m_MultipleCut.MultipleCut_Unloaded(sender, e)
|
|
Case DirectCutPageUC.DirectCutPages.GridCut
|
|
m_DirectCutPageUC.m_GridCut.GridCut_Unloaded(sender, e)
|
|
Case DirectCutPageUC.DirectCutPages.CopyTemplate
|
|
m_DirectCutPageUC.m_CopyTemplate.CopyTemplate_Unloaded(sender, e)
|
|
Case DirectCutPageUC.DirectCutPages.FlatteningCut
|
|
m_DirectCutPageUC.m_FlatteningCut.FlatteningCut_Unloaded(sender, e)
|
|
Case DirectCutPageUC.DirectCutPages.SawTest
|
|
m_DirectCutPageUC.m_SawTest.SawTest_Unloaded(sender, e)
|
|
End Select
|
|
Return True
|
|
End Function
|
|
|
|
Private Function ExitFromMachine() As Boolean
|
|
' Se non sono in machine tutto ok
|
|
If m_ActivePage <> Pages.Machine Then Return True
|
|
' Concludo le attività in corso
|
|
Select Case m_MachinePageUC.m_ActiveMachinePage
|
|
Case MachinePageUC.MachinePages.Alarms
|
|
Case MachinePageUC.MachinePages.ToolsDb
|
|
' Verifica ed eventuale salvataggio utensile corrente
|
|
If Not m_MachinePageUC.m_ToolsDbPageUC.SaveCurrTool() Then
|
|
Return False
|
|
End If
|
|
' salvo il DB utensili
|
|
EgtSetCurrentContext(m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
|
|
EgtTdbSave()
|
|
Case MachinePageUC.MachinePages.MachiningDb
|
|
' Verifica ed eventuale salvataggio lavorazione corrente
|
|
If Not m_MachinePageUC.m_MachiningDbPageUC.SaveCurrMachining() Then
|
|
Return False
|
|
End If
|
|
' salvo il DB utensili
|
|
EgtSetCurrentContext(m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
|
|
EgtMdbSave()
|
|
End Select
|
|
Return True
|
|
End Function
|
|
|
|
Private Sub MainWindow_Unloaded(sender As Object, e As RoutedEventArgs) Handles Me.Unloaded
|
|
' Chiudo comunicazione con programmino per CN Siemens se uso questo CN
|
|
If m_CNCommunication.m_nNCType = 3 Then
|
|
m_CNCommunication.m_CN.Stop_Connection()
|
|
End If
|
|
' Chiudo il gestore della macchina fotografica
|
|
m_CadCutPageUC.m_Camera.Close()
|
|
' Terminazione generale di EgtInterface
|
|
EgtExit()
|
|
' Rilascio mutex
|
|
m_objMutex.Close()
|
|
End Sub
|
|
|
|
Private Sub MainWindow_ContentRendered(sender As Object, e As EventArgs) Handles Me.ContentRendered
|
|
' Verifico presenza del collegamento al CN
|
|
m_bNCLink = (GetPrivateProfileInt(S_GENERAL, K_CNLINK, 0, m_sIniFile) <> 0)
|
|
m_CNCommunication.CNCommunication_Initialization()
|
|
' Se linea di produzione abilitata e collegata, lancio relativo timer
|
|
If m_bNCLink And m_CurrentMachine.bProdLine Then
|
|
m_ProdLineTimer.Interval = TimeSpan.FromMilliseconds(2000)
|
|
m_ProdLineTimer.Start()
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub EgtWPFInit()
|
|
'EgtBasicInfo
|
|
EgtWPFLib.InitializeEgtWPFLib.EgtBasicInfo_Initialization("C:/EgtDev/OmagCUT",
|
|
1280, 1024, 15, 12,
|
|
"/#Century Gothic",
|
|
"/gothic.ttf",
|
|
Application.Current.FindResource("FontSize_UpperCaseCharacter"),
|
|
Application.Current.FindResource("FontSize_LowerCaseCharacter"))
|
|
' EgtMessageBox
|
|
EgtWPFLib.InitializeEgtWPFLib.EgtMsgBox_Initialization(Application.Current.FindResource("OmagCut_WindowBorder"),
|
|
Application.Current.FindResource("OmagCut_WindowGrayTextButton"),
|
|
Nothing,
|
|
Application.Current.FindResource("FontSize_UpperCaseCharacter"),
|
|
Application.Current.FindResource("FontSize_LowerCaseCharacter"))
|
|
'Inizializzazione della libreria
|
|
EgtWPFLib.InitializeEgtWPFLib.EgtPaths_Initialization()
|
|
End Sub
|
|
|
|
' OnIdle
|
|
Private Sub OnIdle()
|
|
' Recupero il tipo di progetto
|
|
Dim nPrjType As Integer = m_CurrentProjectPageUC.GetCurrentProjectType()
|
|
' Aggiorno interfaccia
|
|
CadCutBtn.IsEnabled = (nPrjType <> CurrentProjectPageUC.PRJ_TYPE.FRAMES)
|
|
FrameCutBtn.IsEnabled = (nPrjType <> CurrentProjectPageUC.PRJ_TYPE.FLATS)
|
|
End Sub
|
|
|
|
' OnProdLine
|
|
Private Sub OnProdLine()
|
|
' Acquisizione eventuale file epl dei pezzi rovinati :
|
|
' lo sposto dal direttorio condiviso al direttorio corrente dei CSV
|
|
Const CURR_PROJ_EPL As String = "CurrProj.epl"
|
|
If My.Computer.FileSystem.FileExists(m_CurrentMachine.sLineDataDir & "\" & CURR_PROJ_EPL) Then
|
|
' Leggo direttorio corrente dei file CSV
|
|
Dim sCurrDir As String = String.Empty
|
|
GetPrivateProfileString(S_CSV, K_CSVCURRDIR, "C:\", sCurrDir, GetIniFile())
|
|
If My.Computer.FileSystem.DirectoryExists(sCurrDir) Then
|
|
' Recupero da INI ultimo progetto mandato a View
|
|
Dim sName As String = String.Empty
|
|
GetPrivateProfileString(S_GENERAL, K_LASTPROJTOVIEW, "", sName, GetIniFile())
|
|
' Eseguo spostamento
|
|
Try
|
|
My.Computer.FileSystem.MoveFile(m_CurrentMachine.sLineDataDir & "\" & CURR_PROJ_EPL, sCurrDir & "\Ruined" & sName & ".epl", True)
|
|
Catch ex As Exception
|
|
EgtOutLog("Error moving " & CURR_PROJ_EPL)
|
|
End Try
|
|
Else
|
|
EgtOutLog("Error in ruined parts management : " & sCurrDir & " not found")
|
|
' Errore nella gestione dei pezzi rovinati
|
|
m_CurrentProjectPageUC.SetErrorMessage(EgtMsg(91119))
|
|
End If
|
|
End If
|
|
' Leggo variabile con indice progetto da copiare per OmagVIEW (standard E80025)
|
|
m_CNCommunication.m_CN.n_DReadELS_handle = 0
|
|
m_CNCommunication.m_CN.ReadEls_Add_Parameter(m_CurrentMachine.sVarProjCopy, 1)
|
|
Dim nVarCopy As Integer = 0
|
|
For I = 0 To 20
|
|
System.Threading.Thread.Sleep(100)
|
|
If m_CNCommunication.m_CN.n_DReadELS_handle = 1 Then
|
|
nVarCopy = CInt(m_CNCommunication.m_CN.d_DReadELS_value)
|
|
Exit For
|
|
End If
|
|
Next
|
|
' Se non nulla, verifico se eseguire la copia
|
|
If nVarCopy <> 0 Then
|
|
' Verifico esistenza progetto con numerazione equivalente e assenza file di lock
|
|
Dim sNgeFile As String = GetSaveDir() & "\" & nVarCopy.ToString("D4") & ".nge"
|
|
Dim sLockFile As String = m_CurrentMachine.sLineDataDir & "\CurrProj.lck"
|
|
Dim sEplFile As String = m_CurrentMachine.sLineDataDir & "\" & CURR_PROJ_EPL
|
|
If My.Computer.FileSystem.FileExists(sNgeFile) And
|
|
Not My.Computer.FileSystem.FileExists(sLockFile) And
|
|
Not My.Computer.FileSystem.FileExists(sEplFile) Then
|
|
Try
|
|
' Copio file di progetto nge
|
|
Dim sNgeDest As String = m_CurrentMachine.sLineDataDir & "\CurrProj.nge"
|
|
My.Computer.FileSystem.CopyFile(sNgeFile, sNgeDest, True)
|
|
' Se esiste file jpg omonimo, lo copio
|
|
Dim sJpgFile As String = System.IO.Path.ChangeExtension(sNgeFile, ".jpg")
|
|
If My.Computer.FileSystem.FileExists(sJpgFile) Then
|
|
Dim sJpgDest As String = m_CurrentMachine.sLineDataDir & "\CurrProj.jpg"
|
|
My.Computer.FileSystem.CopyFile(sJpgFile, sJpgDest, True)
|
|
End If
|
|
' Creo file per flag di nuovo progetto
|
|
Dim sNewDest As String = m_CurrentMachine.sLineDataDir & "\CurrProj.new"
|
|
Dim nF As Integer = FreeFile()
|
|
FileOpen(nF, sNewDest, OpenMode.Output)
|
|
Print(nF, "Status")
|
|
FileClose(nF)
|
|
' Dichiaro progetto copiato
|
|
m_CNCommunication.m_CN.DVariables_WriteVariables2(m_CurrentMachine.sVarProjCopy, "0")
|
|
' Salvo in INI indice del progetto copiato
|
|
WritePrivateProfileString(S_GENERAL, K_LASTPROJTOVIEW, nVarCopy.ToString("D4"), GetIniFile())
|
|
Catch ex As Exception
|
|
EgtOutLog("Error copying files to OmagVIEW")
|
|
' Errore in copia file per OmagVIEW
|
|
m_CurrentProjectPageUC.SetErrorMessage(EgtMsg(91117))
|
|
End Try
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
' Evento che apre AboutBox quando viene clickato il logo
|
|
Private Sub LogoBrd_MouseDown(sender As Object, e As MouseButtonEventArgs) Handles LogoBrd.MouseDown
|
|
Dim AboutBox As New AboutBoxWD(Me)
|
|
End Sub
|
|
|
|
End Class |