EgtMachKernel 1.6t1 :

- aggiunto a Disposizione flag di presenza movimenti manuali
- portata in interfaccia funzione per rimovere movimento finale in home da operazione.
This commit is contained in:
Dario Sassi
2016-08-05 18:40:59 +00:00
parent fec9890054
commit aaa94a79a0
23 changed files with 100 additions and 47 deletions
+10 -10
View File
@@ -455,11 +455,11 @@ Operation::CalculateAxesValues( void)
{
if ( m_pMchMgr == nullptr || m_pGeomDB == nullptr)
return false ;
// recupero l'operazione precedente non vuota
// recupero l'operazione precedente non vuota o che richiede home precedente
int nPrevOpId = m_pMchMgr->GetPrevActiveOperation( m_nOwnerId) ;
Operation* pPrevOp = GetOperation( m_pGeomDB->GetUserObj( nPrevOpId)) ;
while ( pPrevOp != nullptr) {
if ( ! pPrevOp->IsEmpty())
if ( ! pPrevOp->IsEmpty() || pPrevOp->NeedPrevHome())
break ;
else {
nPrevOpId = m_pMchMgr->GetPrevActiveOperation( nPrevOpId) ;
@@ -468,15 +468,15 @@ Operation::CalculateAxesValues( void)
}
// recupero l'utensile precedente
string sPrevTool ;
if ( pPrevOp != nullptr)
if ( pPrevOp != nullptr && ! pPrevOp->IsEmpty())
sPrevTool = pPrevOp->GetToolName() ;
// imposto l'utensile per i calcoli macchina
if ( ! m_pMchMgr->SetCalcTool( GetToolName(), GetHeadName(), GetExitNbr()))
return false ;
// rimuovo posizionamento home da lavorazione precedente (non può più essere l'ultima)
if ( pPrevOp != nullptr)
// rimuovo posizionamento home da lavorazione precedente se non richiesto (non può più essere l'ultima)
if ( pPrevOp != nullptr && ! NeedPrevHome())
pPrevOp->RemoveHome() ;
// recupero il numero di assi lineari e rotanti attivi
@@ -758,11 +758,11 @@ Operation::AdjustStartEndMovements( bool bOnlyStart)
if ( nClId == GDB_ID_NULL)
return false ;
// recupero la lavorazione precedente non vuota
// recupero ultima operazione precedente non vuota o che richiede home precedente
int nPrevOpId = m_pMchMgr->GetPrevActiveOperation( m_nOwnerId) ;
Operation* pPrevOp = GetOperation( m_pGeomDB->GetUserObj( nPrevOpId)) ;
while ( pPrevOp != nullptr) {
if ( ! pPrevOp->IsEmpty())
if ( ! pPrevOp->IsEmpty() || pPrevOp->NeedPrevHome())
break ;
else {
nPrevOpId = m_pMchMgr->GetPrevActiveOperation( nPrevOpId) ;
@@ -771,14 +771,14 @@ Operation::AdjustStartEndMovements( bool bOnlyStart)
}
// recupero l'utensile precedente e i dati della sua testa
string sPrevTool ;
if ( pPrevOp != nullptr)
if ( pPrevOp != nullptr && ! pPrevOp->IsEmpty())
sPrevTool = pPrevOp->GetToolName() ;
// determino posizione precedente assi
DBLVECTOR vAxVal ;
bool bHomeZ = false ;
// se primo utensile, uso la posizione home
if ( sPrevTool.empty()) {
// se primo utensile o richiesto, uso la posizione home
if ( sPrevTool.empty() || NeedPrevHome()) {
// imposto l'utensile per i calcoli macchina
if ( ! m_pMchMgr->SetCalcTool( GetToolName(), GetHeadName(), GetExitNbr()))
return false ;