From fbf91fcafa8c9bf170c901719f8bae0662187bd6 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Thu, 13 Jun 2024 12:09:39 +0200 Subject: [PATCH 1/2] EgtMachKernel : - in foratura con teste con uscite multiple non si considerano gli utensili diversi da punta a forare. --- Drilling.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Drilling.cpp b/Drilling.cpp index 1a3e77a..74fbdf8 100644 --- a/Drilling.cpp +++ b/Drilling.cpp @@ -741,8 +741,18 @@ Drilling::VerifyMultiParallelFixedDrills( void) continue ; string sToolName ; if ( m_pMchMgr->GetLoadedTool( m_TParams.m_sHead, nT + 1, sToolName) && ! sToolName.empty()) { + // verifico sia una punta a forare + int nType = TT_NONE ; + string sCurrTool ; m_pMchMgr->TdbGetCurrToolParam( TPA_NAME, sCurrTool) ; + if ( m_pMchMgr->TdbSetCurrTool( sToolName)) { + m_pMchMgr->TdbGetCurrToolParam( TPA_TYPE, nType) ; + if ( ! IsEmptyOrSpaces( sCurrTool)) + m_pMchMgr->TdbSetCurrTool( sCurrTool) ; + } + // verifico punta con direzione corretta Point3d ptExit ; Vector3d vtTool, vtAux ; - if ( m_pMchMgr->GetCurrMachine()->GetHeadExitPosDirAux(m_TParams.m_sHead, nT + 1, ptExit, vtTool, vtAux) && + if ( ( nType & TF_DRILLBIT) != 0 && + m_pMchMgr->GetCurrMachine()->GetHeadExitPosDirAux(m_TParams.m_sHead, nT + 1, ptExit, vtTool, vtAux) && AreSameVectorApprox( vtTool, vtMainTool)) return true ; } @@ -766,7 +776,7 @@ Drilling::StandardProcess( bool bRecalc, int nPvId, int nClId) for ( int i = 0 ; i < ( int)tabDrills.size() ; ++i) { // se richiesto preview if ( nPvId != GDB_ID_NULL) { - if ( ! GenerateHolePv( i, m_vId[tabDrills[i][0].nInd_id_hole], MCH_PATH, nClId)) + if ( ! GenerateHolePv( i, m_vId[tabDrills[i][0].nInd_id_hole], MCH_PATH, nPvId)) return false ; // creo la regione di ingombro del foro int nDriId = m_pGeomDB->GetFirstInGroup( m_pGeomDB->GetLastGroupInGroup( nPvId)) ; From d098e4bcbc0995b608ce6bd46533ddbdb7ffd423 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Thu, 13 Jun 2024 12:21:53 +0200 Subject: [PATCH 2/2] EgtMachKernel : - in foratura con teste con uscite multiple ammesse anche frese che lavorano di testa. --- Drilling.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Drilling.cpp b/Drilling.cpp index 74fbdf8..1e0f0e2 100644 --- a/Drilling.cpp +++ b/Drilling.cpp @@ -741,7 +741,7 @@ Drilling::VerifyMultiParallelFixedDrills( void) continue ; string sToolName ; if ( m_pMchMgr->GetLoadedTool( m_TParams.m_sHead, nT + 1, sToolName) && ! sToolName.empty()) { - // verifico sia una punta a forare + // recupero la tipologia di utensile int nType = TT_NONE ; string sCurrTool ; m_pMchMgr->TdbGetCurrToolParam( TPA_NAME, sCurrTool) ; if ( m_pMchMgr->TdbSetCurrTool( sToolName)) { @@ -749,9 +749,9 @@ Drilling::VerifyMultiParallelFixedDrills( void) if ( ! IsEmptyOrSpaces( sCurrTool)) m_pMchMgr->TdbSetCurrTool( sCurrTool) ; } - // verifico punta con direzione corretta + // verifico punta o fresa con direzione corretta Point3d ptExit ; Vector3d vtTool, vtAux ; - if ( ( nType & TF_DRILLBIT) != 0 && + if ( ( ( nType & TF_DRILLBIT) != 0 || nType == TT_MILL_STD) && m_pMchMgr->GetCurrMachine()->GetHeadExitPosDirAux(m_TParams.m_sHead, nT + 1, ptExit, vtTool, vtAux) && AreSameVectorApprox( vtTool, vtMainTool)) return true ;