diff --git a/Drilling.cpp b/Drilling.cpp index 88c016f..5570995 100644 --- a/Drilling.cpp +++ b/Drilling.cpp @@ -823,6 +823,8 @@ Drilling::MultiHeadDrilling( int nExitCnt, const SELVECTOR& vId, int nClId, TABM Point3d ptExit ; m_pMchMgr->GetCurrMachine()->GetHeadExitPosDirAux( sHead, nMainToolInd + 1, ptExit, vtTool, vtAux) ; vTools[nMainToolInd].ptToolTip = ptExit - vtTool * vTools[nMainToolInd].pTool->m_dLen ; + if ( vtAux.IsSmall() && m_pMchMgr->GetCurrMachine()->GetCurrRotAxes() == 0) + vtAux = FromUprightOrtho( vtTool) ; if ( vtTool.IsSmall() || vtAux.IsSmall()) { m_pMchMgr->SetLastError( 2117, "Error in Drilling : incorrect multi drilling head") ; return false ; @@ -1066,6 +1068,8 @@ Drilling::CalcMask( VECTORHOLE& vHoles, const VECTORTOOL& vTools, int nIndMT, co // nuova configurazione del versore A ottenuta if ( ! m_pMchMgr->GetCalcAuxDirFromAngles( vAng1, vtAnew)) continue ; + if ( vtAnew.IsSmall() && m_pMchMgr->GetCurrMachine()->GetCurrRotAxes() == 0) + vtAnew = vtAux ; // creo un nuovo sistema di riferimento centrato nel Tool principale Frame3d frMT ;