diff --git a/EXE_GeomDB.cpp b/EXE_GeomDB.cpp index ecc75dd..5996f6b 100644 --- a/EXE_GeomDB.cpp +++ b/EXE_GeomDB.cpp @@ -417,14 +417,19 @@ class CamStatus m_vIdStat.push_back( ( bShow ? nId : - nId)) ; nId = pMachMgr->GetNextOperation( nId) ; } + pMachMgr->ResetCurrMachGroup() ; + } + ~CamStatus( void) { + Restore() ; } void Restore( void) { + if ( m_nCurrMachGroup == GDB_ID_NULL) + return ; IMachMgr* pMachMgr = GetCurrMachMgr() ; if ( pMachMgr == nullptr) return ; - if ( m_nCurrMachGroup == GDB_ID_NULL) - return ; pMachMgr->SetCurrMachGroup( m_nCurrMachGroup) ; + m_nCurrMachGroup = GDB_ID_NULL ; if ( m_nCurrPhase == 0) return ; pMachMgr->SetCurrPhase( m_nCurrPhase, true) ; @@ -449,7 +454,6 @@ ExeSaveFile( const string& sFilePath, int nFlag) VERIFY_CTX_GEOMDB( pGseCtx, false) // se ero in CAM, esco dopo averne salvato lo stato CamStatus CurrCamStatus ; - ExeResetCurrMachGroup() ; // imposto path corrente del file pGseCtx->m_sFilePath = sFilePath ; // salvo il file @@ -554,7 +558,6 @@ ExeSaveMachGroupToFile( int nMGroupId, const INTVECTOR& vPlusId, const string& s ExeDisableModified() ; // se ero in CAM, esco dopo averne salvato lo stato CamStatus CurrCamStatus ; - ExeResetCurrMachGroup() ; // verifico che gli oggetti Plus non siano gruppi di lavoro o una loro parte bool bOk = true ; for ( int nPlusId : vPlusId) {