EgtMachKernel :

- modifiche per gestione aggregato da sotto in foratura e fresatura
- modifiche per nuovi tipi di uscite lame allungate.
This commit is contained in:
Dario Sassi
2017-01-26 09:36:38 +00:00
parent 5849ad4f41
commit 5ffbaab0e4
10 changed files with 279 additions and 61 deletions
+8 -25
View File
@@ -919,7 +919,7 @@ Operation::CalculateClPathAxesValues( int nClPathId, int nLinAxes, int nRotAxes,
//----------------------------------------------------------------------------
bool
Operation::AdjustStartEndMovements( bool bOnlyStart)
Operation::AdjustStartEndMovements( void)
{
if ( m_pMchMgr == nullptr || m_pGeomDB == nullptr)
return false ;
@@ -1018,9 +1018,6 @@ Operation::AdjustStartEndMovements( bool bOnlyStart)
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 ;
@@ -1031,27 +1028,8 @@ Operation::AdjustStartEndMovements( bool bOnlyStart)
// aggiungo risalita finale
bOk = bOk && AddRise( vAxVal) ;
//// 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)) ;
// }
// }
// verifico se disposizione
//// 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) ;
// vado in home
bOk = bOk && AddHome() ;
return bOk ;
}
@@ -1077,6 +1055,7 @@ Operation::AdjustOneStartMovement( int nClPathId, const DBLVECTOR& vAxPrev, bool
if ( m_pGeomDB->Copy( nEntId, GDB_ID_NULL, nEntId, GDB_AFTER) == GDB_ID_NULL)
return false ;
// modifico quella originale (è la prima del percorso)
m_pGeomDB->RemoveName( nEntId) ;
DBLVECTOR vAxNew = vAxCurr ;
vAxNew[2] = vAxPrev[2] ;
// eventuale aggiustamenti speciali dipendenti dalla macchina
@@ -1115,6 +1094,7 @@ Operation::AdjustOneStartMovement( int nClPathId, const DBLVECTOR& vAxPrev, bool
if ( pNew1CamData == nullptr)
return false ;
// modifico questa entità
m_pGeomDB->RemoveName( nNew1Id) ;
DBLVECTOR vAxNew1 = vAxPrev ;
vAxNew1[2] = dHomeZ ;
int nMask = CamData::MSK_L3 ;
@@ -1151,6 +1131,7 @@ Operation::AdjustOneStartMovement( int nClPathId, const DBLVECTOR& vAxPrev, bool
if ( pNew2CamData == nullptr)
return false ;
// modifico quella originale (è la prima del percorso)
m_pGeomDB->RemoveName( nNew2Id) ;
DBLVECTOR vAxNew2 = vAxCurr ;
vAxNew2[2] = dHomeZ ;
pNew2CamData->SetAxes( CamData::AS_OK, vAxNew2) ;
@@ -1168,6 +1149,7 @@ Operation::AdjustOneStartMovement( int nClPathId, const DBLVECTOR& vAxPrev, bool
if ( m_pGeomDB->Copy( nEntId, GDB_ID_NULL, nEntId, GDB_AFTER) == GDB_ID_NULL)
return false ;
// modifico quella originale (è la prima del percorso)
m_pGeomDB->RemoveName( nEntId) ;
DBLVECTOR vAxNew = vAxPrev ;
vAxNew[2] = vAxCurr[2] ;
pCamData->SetAxes( CamData::AS_OK, vAxNew) ;
@@ -1180,6 +1162,7 @@ Operation::AdjustOneStartMovement( int nClPathId, const DBLVECTOR& vAxPrev, bool
if ( m_pGeomDB->Copy( nEntId, GDB_ID_NULL, nEntId, GDB_AFTER) == GDB_ID_NULL)
return false ;
// modifico quella originale (è la prima del percorso)
m_pGeomDB->RemoveName( nEntId) ;
DBLVECTOR vAxNew = vAxCurr ;
vAxNew[2] = vAxPrev[2] ;
// eventuali aggiustamenti speciali dipendenti dalla macchina