From 0678eb0bdea5cfbd3bc4014b7a45a7cd2b3270cc Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Mon, 28 May 2018 09:20:43 +0000 Subject: [PATCH] =?UTF-8?q?OmagCut=20:=20-=20aggiunta=20possibilit=C3=A0?= =?UTF-8?q?=20ripartenza=20-=20aggiunta=20possibilit=C3=A0=20pausa=20al=20?= =?UTF-8?q?termine=20di=20una=20lavorazione.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CamAuto.vb | 15 +++++++++ ConstGen.vb | 4 +++ ConstMachIni.vb | 4 +++ CurrentMachine.vb | 22 ++++++++++++++ CurrentProjectPageUC.xaml.vb | 17 +++++++++++ ProjectMgrUC.xaml.vb | 15 +++++++++ SplitAuto.vb | 3 ++ SplitPageUC.xaml | 6 ++-- SplitPageUC.xaml.vb | 59 ++++++++++++++++++++++++++++++++++-- 9 files changed, 140 insertions(+), 5 deletions(-) diff --git a/CamAuto.vb b/CamAuto.vb index 8c6c520..6490459 100644 --- a/CamAuto.vb +++ b/CamAuto.vb @@ -36,6 +36,7 @@ Friend Module CamAuto EgtOutLog("Error in CamAuto : " & nErr.ToString()) End If m_MainWindow.m_CurrentProjectPageUC.ResetOrderMachiningFlag() + m_MainWindow.m_CurrentProjectPageUC.ResetProjectNcRestart() Return bOk End Function @@ -465,6 +466,20 @@ Friend Module CamAuto Return True End Function + Friend Function SetPause(nMchId As Integer) As Boolean + Return EgtSetInfo(nMchId, INFO_MCH_PAUSE, True) + End Function + + Friend Function GetPause(nMchId As Integer) As Boolean + Dim bPause As Boolean = False + EgtGetInfo(nMchId, INFO_MCH_PAUSE, bPause) + Return bPause + End Function + + Friend Function ResetPause(nMchId As Integer) As Boolean + Return EgtRemoveInfo(nMchId, INFO_MCH_PAUSE) + End Function + Friend Function UpdateMachiningPreview(nMchId As Integer, bMoveOnPart As Boolean) As Boolean ' Imposto la lavorazione corrente If Not EgtSetCurrMachining(nMchId) Then Return False diff --git a/ConstGen.vb b/ConstGen.vb index 08b2cdd..6488364 100644 --- a/ConstGen.vb +++ b/ConstGen.vb @@ -125,6 +125,8 @@ Module ConstGen Public Const INFO_PROJMAT As String = "ProjMat" ' Info per programma di linea inviato Public Const INFO_NCPROGSENT As String = "NcProgSent" + ' Info per riavvio programma da fase successiva alla prima + Public Const INFO_NCRESTART As String = "NcRestart" ' Info per ingombro pezzi con gocciolatoio Public Const INFO_DRIPBBOX As String = "DripBBox" ' Info per rotazione in registrazione grezzo @@ -173,6 +175,8 @@ Module ConstGen Public Const INFO_MCH_USER_OFF As String = "UserOff" ' Info lavorazione disabilitata perchè lavorata in doppio con altra Public Const INFO_MCH_DUPLED As String = "Dupled" + ' Info lavorazione per pausa alla fine + Public Const INFO_MCH_PAUSE As String = "Pause" ' Nome contorno taglio Public Const NAME_PV_CUT As String = "CUT" ' Nome contorno pre-taglio diff --git a/ConstMachIni.vb b/ConstMachIni.vb index aaa4276..fb7f38e 100644 --- a/ConstMachIni.vb +++ b/ConstMachIni.vb @@ -114,6 +114,10 @@ Public Const K_MACH_MILLING_ON_SINKS As String = "MillingOnSinks" Public Const K_MACH_NEST_ALIGNED As String = "Aligned" Public Const K_MACH_WASHING As String = "Washing" + Public Const K_MACH_ENABLERESTART As String = "EnableRestart" + Public Const K_MACH_ENABLEPAUSE As String = "EnablePause" + ' DrillMillC90 + ' CutLongDxSx Public Const S_MACH_RAWMOVE As String = "RawMove" Public Const K_MACH_RM_ROTATE As String = "Rotate" diff --git a/CurrentMachine.vb b/CurrentMachine.vb index e3777ac..023fc00 100644 --- a/CurrentMachine.vb +++ b/CurrentMachine.vb @@ -95,6 +95,11 @@ Public Class CurrentMachine Private m_dTab2PhotoOffsetX As Double = 0 Private m_dTab2PhotoOffsetY As Double = 0 + ' Abilitazione scelta restart + Private m_bEnableRestart As Boolean = False + ' Abilitazione scelta pausa a fine lavorazione + Private m_bEnablePause As Boolean = False + ' Flag home finale per tagli diretti Private m_bDirectCutsFinalHome As Boolean = True @@ -529,6 +534,18 @@ Public Class CurrentMachine End Get End Property + Friend ReadOnly Property bEnableRestart As Boolean + Get + Return m_bEnableRestart + End Get + End Property + + Friend ReadOnly Property bEnablePause As Boolean + Get + Return m_bEnablePause + End Get + End Property + Friend Property bDirectCutsFinalHome As Boolean Get Return m_bDirectCutsFinalHome @@ -846,6 +863,11 @@ Public Class CurrentMachine m_dTab2PhotoOffsetX = GetPrivateProfileDouble(S_PHOTO, K_PHOTO_TAB2_OFFSETX, 0, sMachIniFile) m_dTab2PhotoOffsetY = GetPrivateProfileDouble(S_PHOTO, K_PHOTO_TAB2_OFFSETY, 0, sMachIniFile) + ' Leggo abilitazione per restart + m_bEnableRestart = (GetPrivateProfileInt(S_MACH_NEST, K_MACH_ENABLERESTART, 0, sMachIniFile) <> 0) + ' Leggo abilitazione scelta pausa a fine lavorazione + m_bEnablePause = (GetPrivateProfileInt(S_MACH_NEST, K_MACH_ENABLEPAUSE, 0, sMachIniFile) <> 0) + ' Leggo flag per posizione home alla fine dei tagli diretti m_bDirectCutsFinalHome = (GetPrivateProfileInt(S_MACH_DIRECTCUTS, K_FINALHOME, 1, sMachIniFile) <> 0) diff --git a/CurrentProjectPageUC.xaml.vb b/CurrentProjectPageUC.xaml.vb index 49bba4a..06f0835 100644 --- a/CurrentProjectPageUC.xaml.vb +++ b/CurrentProjectPageUC.xaml.vb @@ -662,6 +662,23 @@ Public Class CurrentProjectPageUC Return nNcSent End Function + Friend Function SetProjectNcRestart(nRestartPhase As Integer) As Boolean + Dim nMarkId As Integer = AddProjectMark() + Return EgtSetInfo(nMarkId, INFO_NCRESTART, nRestartPhase) + End Function + + Friend Function GetProjectNcRestart() As Integer + Dim nMarkId As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK) + Dim nRestartPhase As Integer = 0 + EgtGetInfo(nMarkId, INFO_NCRESTART, nRestartPhase) + Return nRestartPhase + End Function + + Friend Function ResetProjectNcRestart() As Boolean + Dim nMarkId As Integer = AddProjectMark() + Return EgtRemoveInfo(nMarkId, INFO_NCRESTART) + End Function + Friend Function SetLoadPath(sPath As String) As Boolean Dim nMarkId As Integer = AddProjectMark() Return EgtSetInfo(nMarkId, INFO_LOADPATH, sPath) diff --git a/ProjectMgrUC.xaml.vb b/ProjectMgrUC.xaml.vb index b4a2012..67510ea 100644 --- a/ProjectMgrUC.xaml.vb +++ b/ProjectMgrUC.xaml.vb @@ -264,6 +264,7 @@ Public Class ProjectMgrUC Dim bModif As Boolean = TestAllMachiningsForStrict() If bModif Then m_CurrProjPage.SetWarningMessage(EgtMsg(90321)) 'Ridotte alcune lavorazioni per evitare interferenze + EgtDraw() End If End If End If @@ -286,6 +287,20 @@ Public Class ProjectMgrUC m_CurrProjPage.SaveFile(sMchPath) ' Costringo ad aggiornare UI UpdateUI() + ' Se presente ripartenza, ne chiedo conferma + Dim nPhaseRestart As Integer = m_CurrProjPage.GetProjectNcRestart() + If nPhaseRestart <> 0 Then + ' Confermi ripartenza dalla fase NNN ? + Dim AskNcRestart As New EgtMsgBox(m_MainWindow, "", String.Format(EgtMsg(90326), nPhaseRestart), + EgtMsgBox.Buttons.YES_NO_CANCEL, EgtMsgBox.Icons.NULL, 2) + Select Case AskNcRestart.m_nPressedBtn + Case 1 ' YES + Case 2 ' NO + m_CurrProjPage.ResetProjectNcRestart() + Case Else ' CANCEL + Return + End Select + End If ' Genero file CNC (lancio anche se errore in precedenza) Dim sCncPath As String = m_MainWindow.GetCncDir() & "\CadCut" & m_CurrMachine.sIsoFileExt bOk = EgtGenerate(sCncPath, "OmagCut ver." & m_MainWindow.GetVersion()) And bOk diff --git a/SplitAuto.vb b/SplitAuto.vb index af4e107..157d535 100644 --- a/SplitAuto.vb +++ b/SplitAuto.vb @@ -20,6 +20,7 @@ Public Module SplitAuto Public m_bStartAll As Boolean Public m_bEndAll As Boolean Public m_bEnabled As Boolean + Public m_bPause As Boolean End Class '----------------------------------------------------------------------------------------------- @@ -108,6 +109,8 @@ Public Module SplitAuto End If ' abilitazione Mach.m_bEnabled = Not EgtExistsInfo(nOperId, INFO_MCH_USER_OFF) + ' pausa + Mach.m_bPause = GetPause(nOperId) ' inserisco in lista MachSplitList.Add(Mach) ' altrimenti la disattivo diff --git a/SplitPageUC.xaml b/SplitPageUC.xaml index c46bc37..422c43a 100644 --- a/SplitPageUC.xaml +++ b/SplitPageUC.xaml @@ -48,7 +48,7 @@