diff --git a/EgtMachKernel.rc b/EgtMachKernel.rc index d31586c..22f3368 100644 Binary files a/EgtMachKernel.rc and b/EgtMachKernel.rc differ diff --git a/Operation.cpp b/Operation.cpp index 78af160..64e6220 100644 --- a/Operation.cpp +++ b/Operation.cpp @@ -1144,10 +1144,16 @@ Operation::AdjustStartEndMovements( void) // imposto l'utensile precedente per i calcoli macchina if ( ! m_pMchMgr->SetCalcTool( pPrevOp->GetToolName(), pPrevOp->GetHeadName(), pPrevOp->GetExitNbr())) return false ; - // ricalcolo risalita di lavorazione precedente - pPrevOp->RemoveRise() ; - if ( ! pPrevOp->AddRise( vAxVal)) - return false ; + // ricalcolo risalita di lavorazione precedente (se già calcolata) + if ( pPrevOp->RemoveRise()) { + if ( ! pPrevOp->AddRise( vAxVal)) + return false ; + } + else { + // recupero posizione home + if ( ! m_pMchMgr->GetAllCalcAxesHomePos( vAxVal)) + return false ; + } // imposto l'utensile per i calcoli macchina if ( ! m_pMchMgr->SetCalcTool( GetToolName(), GetHeadName(), GetExitNbr())) return false ; @@ -1653,7 +1659,7 @@ Operation::TestCollisionAvoid( const DBLVECTOR& vAxStart, const DBLVECTOR& vAxEn } // Eseguo controllo BBox3d b3Head ; - m_pGeomDB->GetGlobalBBox( pMch->GetCurrHead(), b3Head) ; + m_pGeomDB->GetGlobalBBox( pMch->GetCurrHead(), b3Head, BBF_ONLY_VISIBLE) ; for ( const auto nRawId : vRawId) { BBox3d b3Raw ; int nRawSolidId = m_pGeomDB->GetFirstNameInGroup( nRawId, MACH_RAW_SOLID) ;