EgtMachKernel :

- aggiunta gestione fresatura a step.
This commit is contained in:
Dario Sassi
2016-07-18 08:07:26 +00:00
parent 29f950b27b
commit 828deddc66
6 changed files with 690 additions and 48 deletions
+24 -2
View File
@@ -720,7 +720,7 @@ Operation::CalculateClPathAxesValues( int nClPathId, int nLinAxes, int nRotAxes,
//----------------------------------------------------------------------------
bool
Operation::AdjustStartEndMovements(void)
Operation::AdjustStartEndMovements( bool bOnlyStart)
{
if ( m_pMchMgr == nullptr || m_pGeomDB == nullptr)
return false ;
@@ -819,6 +819,9 @@ Operation::AdjustStartEndMovements(void)
if ( ! AdjustOneStartMovement( nClPathId, vAxVal, bHomeZ))
bOk = false ;
bHomeZ = false ;
// se solo inizio, ho finito
if ( bOnlyStart)
return bOk ;
// recupero nuovi finali
if ( ! GetClPathFinalAxesValues( nClPathId, vAxVal))
bOk = false ;
@@ -828,7 +831,26 @@ Operation::AdjustStartEndMovements(void)
// aggiungo risalita finale
bOk = bOk && AddRise( vAxVal) ;
bOk = bOk && AddHome() ;
// recupero la lavorazione successiva non vuota
int nNextOpId = m_pMchMgr->GetNextActiveOperation( m_nOwnerId) ;
Operation* pNextOp = GetOperation( m_pGeomDB->GetUserObj( nNextOpId)) ;
while ( pNextOp != nullptr) {
if ( ! pNextOp->IsEmpty())
break ;
else {
nNextOpId = m_pMchMgr->GetNextActiveOperation( nNextOpId) ;
pNextOp = GetOperation( m_pGeomDB->GetUserObj( nNextOpId)) ;
}
}
// se non esiste lavorazione successiva, vado in home
if ( pNextOp == nullptr)
bOk = bOk && AddHome() ;
// altrimenti aggiusto l'inizio della lavorazione successiva con il finale di questa
else
bOk = bOk && pNextOp->AdjustStartEndMovements( true) ;
return bOk ;
}