EgtMachKernel :
- modifiche per avere la lavorazione corrente corretta durante OnSetHead.
This commit is contained in:
@@ -1895,6 +1895,8 @@ Operation::AdjustStartEndMovements( bool bVerifyPreviousLink)
|
||||
}
|
||||
// altrimenti aggiungo uscita per cambio utensile alla lavorazione precedente e parto da questa
|
||||
else {
|
||||
// imposto la lavorazione precedente come corrente
|
||||
m_pMchMgr->SetCurrMachining( pPrevOp->GetOwner()) ;
|
||||
// imposto l'utensile precedente per i calcoli macchina
|
||||
if ( ! m_pMchMgr->SetCalcTool( pPrevOp->GetToolName(), pPrevOp->GetHeadName(), pPrevOp->GetExitNbr()))
|
||||
return false ;
|
||||
@@ -1908,6 +1910,8 @@ Operation::AdjustStartEndMovements( bool bVerifyPreviousLink)
|
||||
if ( ! m_pMchMgr->GetAllCurrAxesHomePos( vAxVal))
|
||||
return false ;
|
||||
}
|
||||
// ripristino la lavorazione corrente
|
||||
m_pMchMgr->SetCurrMachining( GetOwner()) ;
|
||||
// imposto l'utensile per i calcoli macchina
|
||||
if ( ! m_pMchMgr->SetCalcTool( GetToolName(), GetHeadName(), GetExitNbr()))
|
||||
return false ;
|
||||
|
||||
+40
-34
@@ -435,45 +435,51 @@ Simulator::UpdateTool( bool bFirst)
|
||||
// ripristino l'utensile corrente
|
||||
m_pMchMgr->TdbSetCurrTool( m_sTool) ;
|
||||
}
|
||||
// verifico se cambierà
|
||||
bool bDiffTool = ( sTool != m_sTool) ;
|
||||
// se cambierà ed esiste il corrente, lo scarico
|
||||
if ( sTool != m_sTool && ! m_sTool.empty()) {
|
||||
if ( bDiffTool && ! m_sTool.empty()) {
|
||||
// eventuale lancio script per scarico utensile
|
||||
if ( ! OnToolDeselect( sTool, sHead, nExit, sTcPos))
|
||||
return false ;
|
||||
}
|
||||
// se cambiato oppure prima volta, attivo l'utensile della lavorazione
|
||||
if ( sTool != m_sTool || bFirst) {
|
||||
// se prima volta, pulisco la testa
|
||||
if ( bFirst)
|
||||
m_pMchMgr->ResetHeadSet( sHead) ;
|
||||
// carico l'utensile (e lo rendo corrente)
|
||||
if ( ! m_pMchMgr->SetCalcTool( sTool, sHead, nExit))
|
||||
return false ;
|
||||
m_sTool = sTool ;
|
||||
m_sHead = sHead ;
|
||||
m_nExit = nExit ;
|
||||
m_pMchMgr->TdbGetCurrToolParam( TPA_DIAM, m_dTDiam) ;
|
||||
// aggiorno gli assi macchina
|
||||
if ( ! UpdateAxes())
|
||||
return false ;
|
||||
// eventuali offset per Vmill (per adattare lo ZeroT macchina con quello di Zmap)
|
||||
int nToolType ; m_pMchMgr->TdbGetCurrToolParam( TPA_TYPE, nToolType) ;
|
||||
if ( nToolType == TT_MORTISE_STD) {
|
||||
double dThick ; m_pMchMgr->TdbGetCurrToolParam( TPA_THICK, dThick) ;
|
||||
m_dVmTdOffs = 0 ;
|
||||
m_dVmAdOffs = 0.5 * dThick ;
|
||||
}
|
||||
else if ( nToolType == TT_SAW_STD || nToolType == TT_SAW_FLAT) {
|
||||
double dLen ; m_pMchMgr->TdbGetCurrToolParam( TPA_LEN, dLen) ;
|
||||
double dThick ; m_pMchMgr->TdbGetCurrToolParam( TPA_THICK, dThick) ;
|
||||
m_dVmTdOffs = ( ( dLen <= dThick) ? -dLen + dThick : 0) ;
|
||||
m_dVmAdOffs = 0 ;
|
||||
}
|
||||
else {
|
||||
m_dVmTdOffs = 0 ;
|
||||
m_dVmAdOffs = 0 ;
|
||||
}
|
||||
// eventuale lancio script
|
||||
// se prima volta, pulisco la testa
|
||||
if ( bFirst)
|
||||
m_pMchMgr->ResetHeadSet( sHead) ;
|
||||
// recupero la lavorazione corrente e imposto la nuova
|
||||
int nCurrMchId = m_pMchMgr->GetCurrMachining() ;
|
||||
m_pMchMgr->SetCurrMachining( m_nOpId) ;
|
||||
// carico l'utensile (e lo rendo corrente)
|
||||
if ( ! m_pMchMgr->SetCalcTool( sTool, sHead, nExit))
|
||||
return false ;
|
||||
m_sTool = sTool ;
|
||||
m_sHead = sHead ;
|
||||
m_nExit = nExit ;
|
||||
m_pMchMgr->TdbGetCurrToolParam( TPA_DIAM, m_dTDiam) ;
|
||||
// ripristino la lavorazione corrente
|
||||
m_pMchMgr->SetCurrMachining( nCurrMchId) ;
|
||||
// aggiorno gli assi macchina
|
||||
if ( ! UpdateAxes())
|
||||
return false ;
|
||||
// eventuali offset per Vmill (per adattare lo ZeroT macchina con quello di Zmap)
|
||||
int nToolType ; m_pMchMgr->TdbGetCurrToolParam( TPA_TYPE, nToolType) ;
|
||||
if ( nToolType == TT_MORTISE_STD) {
|
||||
double dThick ; m_pMchMgr->TdbGetCurrToolParam( TPA_THICK, dThick) ;
|
||||
m_dVmTdOffs = 0 ;
|
||||
m_dVmAdOffs = 0.5 * dThick ;
|
||||
}
|
||||
else if ( nToolType == TT_SAW_STD || nToolType == TT_SAW_FLAT) {
|
||||
double dLen ; m_pMchMgr->TdbGetCurrToolParam( TPA_LEN, dLen) ;
|
||||
double dThick ; m_pMchMgr->TdbGetCurrToolParam( TPA_THICK, dThick) ;
|
||||
m_dVmTdOffs = ( ( dLen <= dThick) ? -dLen + dThick : 0) ;
|
||||
m_dVmAdOffs = 0 ;
|
||||
}
|
||||
else {
|
||||
m_dVmTdOffs = 0 ;
|
||||
m_dVmAdOffs = 0 ;
|
||||
}
|
||||
// se cambiato oppure prima volta, lancio lo script di selezione
|
||||
if ( bDiffTool || bFirst) {
|
||||
if ( ! OnToolSelect( m_sTool, sHead, nExit, sTcPos, bFirst))
|
||||
return false ;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user