EgtMachKernel :
- aggiunta gestione fresatura a step.
This commit is contained in:
+24
-2
@@ -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 ;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user