From 97e868dd7cf75dba03e1742fa820440d5f96d93a Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Wed, 4 Nov 2020 07:21:27 +0000 Subject: [PATCH] EgtMachKernel 2.2k1 : - in Foratura, Fresatura e Svuotatura ammessa lavorazione da sotto per teste di tipo non Above. --- Drilling.cpp | 15 ++++++++++++--- Drilling.h | 2 ++ EgtMachKernel.rc | Bin 11782 -> 11782 bytes Milling.cpp | 4 ++-- Pocketing.cpp | 13 +++++++++---- Pocketing.h | 1 + 6 files changed, 26 insertions(+), 9 deletions(-) diff --git a/Drilling.cpp b/Drilling.cpp index a6a3dee..dceeeea 100644 --- a/Drilling.cpp +++ b/Drilling.cpp @@ -94,6 +94,9 @@ Drilling::Clone( void) const pDri->m_TParams = m_TParams ; pDri->m_nStatus = m_nStatus ; pDri->m_nDrillings = m_nDrillings ; + pDri->m_bTiltingTab = m_bTiltingTab ; + pDri->m_bAboveHead = m_bAboveHead ; + pDri->m_bAggrBottom = m_bAggrBottom ; } catch( ...) { delete pDri ; @@ -207,6 +210,8 @@ Drilling::Drilling( void) m_TParams.m_sHead = "*" ; m_nStatus = MCH_ST_TO_VERIFY ; m_nDrillings = 0 ; + m_bTiltingTab = false ; + m_bAboveHead = true ; m_bAggrBottom = false ; m_dDistBottom = 0 ; } @@ -1024,6 +1029,11 @@ Drilling::GenerateHoleCl( int nInd, const SelData& nCircId, const string& sPName string sInfo = "Warning in Drilling : Drill bit too short for Hole " + ToString( nCircId) ; m_pMchMgr->SetWarning( 2155, sInfo) ; } + // verifico se tavola basculante + bool bTiltTab = false ; + m_bTiltingTab = ( m_pMchMgr->GetCurrMachine()->GetCurrTableIsTilting( bTiltTab) && bTiltTab) ; + // verifico se testa da sopra (Z+) + m_bAboveHead = m_pMchMgr->GetHeadAbove( m_TParams.m_sHead) ; // verifiche per foro verso il basso m_bAggrBottom = false ; if ( ! VerifyHoleFromBottom( hole, nCircId)) @@ -1410,9 +1420,8 @@ Drilling::VerifyHoleFromBottom( const Hole& hole, SelData Id) // se non è foro dal basso in alto, esco if ( hole.vtDir.z > MIN_ZDIR_TOP_TOOL) return true ; - // se c'è tavola basculante, esco - bool bTabTilting = false ; - if ( m_pMchMgr->GetCurrMachine()->GetCurrTableIsTilting( bTabTilting) && bTabTilting) + // se c'è testa non dall'alto o tavola basculante, esco + if ( ! m_bAboveHead || m_bTiltingTab) return true ; // recupero dati di eventuale rinvio da sotto if ( ! GetAggrBottomData( m_TParams.m_sHead, m_AggrBottom) || m_AggrBottom.nType == 0) { diff --git a/Drilling.h b/Drilling.h index 60dd019..299e8aa 100644 --- a/Drilling.h +++ b/Drilling.h @@ -99,6 +99,8 @@ class Drilling : public Machining ToolData m_TParams ; // parametri utensile int m_nStatus ; // stato di aggiornamento della lavorazione int m_nDrillings ; // numero di fori generati + bool m_bTiltingTab ; // flag utilizzo tavola basculante + bool m_bAboveHead ; // flag utilizzo testa da sopra bool m_bAggrBottom ; // flag di utilizzo dell'aggregato da sotto Vector3d m_vtAggrBottom ; // vettore direzione ausiliaria aggregato da sotto double m_dDistBottom ; // distanza del foro dal bordo del grezzo diff --git a/EgtMachKernel.rc b/EgtMachKernel.rc index f23e2d01c262f8841de46436bd521978a336fda1..023966adc811745a08a0f7966fb6310ded85e887 100644 GIT binary patch delta 121 zcmZpRX^YwLgN@aYL5IO`^ItY=X69@L!^w`qx|_3v+!!~nNOI~D}d`2)2NkJbA OTnNOI~D}d`2)2NkJbA OTn MIN_ZDIR_TOP_TOOL) return true ; - // se c'è tavola basculante, esco - if ( m_bTiltingTab) + // se c'è testa non dall'alto o tavola basculante, esco + if ( ! m_bAboveHead || m_bTiltingTab) return true ; // recupero dati di eventuale rinvio da sotto if ( ! GetAggrBottomData( m_TParams.m_sHead, m_AggrBottom) || m_AggrBottom.nType == 0) { diff --git a/Pocketing.cpp b/Pocketing.cpp index c3ccb57..d164279 100644 --- a/Pocketing.cpp +++ b/Pocketing.cpp @@ -107,6 +107,7 @@ Pocketing::Clone( void) const pPock->m_TParams = m_TParams ; pPock->m_nStatus = m_nStatus ; pPock->m_nPockets = m_nPockets ; + pPock->m_bTiltingTab = m_bTiltingTab ; pPock->m_bAboveHead = m_bAboveHead ; pPock->m_bAggrBottom = m_bAggrBottom ; } @@ -225,8 +226,9 @@ Pocketing::Pocketing( void) m_dMaxHelixRad = INFINITO ; m_nStatus = MCH_ST_TO_VERIFY ; m_nPockets = 0 ; - m_bAggrBottom = false ; + m_bTiltingTab = false ; m_bAboveHead = true ; + m_bAggrBottom = false ; } //---------------------------------------------------------------------------- @@ -1558,6 +1560,10 @@ Pocketing::ProcessPath( int nPathId, int nPvId, int nClId) } } + // verifico se tavola basculante + bool bTiltTab = false ; + m_bTiltingTab = ( m_pMchMgr->GetCurrMachine()->GetCurrTableIsTilting( bTiltTab) && bTiltTab) ; + // verifico se testa da sopra (Z+) m_bAboveHead = m_pMchMgr->GetHeadAbove( m_TParams.m_sHead) ; @@ -1753,9 +1759,8 @@ Pocketing::VerifyPathFromBottom( const ICurveComposite* pCompo, const Vector3d& // se non è svuotatura dal basso in alto, esco if ( vtTool.z > MIN_ZDIR_TOP_TOOL) return true ; - // se c'è tavola basculante, esco - bool bTabTilting = false ; - if ( m_pMchMgr->GetCurrMachine()->GetCurrTableIsTilting( bTabTilting) && bTabTilting) + // se c'è testa non dall'alto o tavola basculante, esco + if ( ! m_bAboveHead || m_bTiltingTab) return true ; // recupero dati di eventuale rinvio da sotto if ( ! GetAggrBottomData( m_TParams.m_sHead, m_AggrBottom) || m_AggrBottom.nType == 0) { diff --git a/Pocketing.h b/Pocketing.h index 32b0858..89ec6e3 100644 --- a/Pocketing.h +++ b/Pocketing.h @@ -148,6 +148,7 @@ class Pocketing : public Machining double m_dMaxHelixRad ; // raggio massimo attacco ad elica nel caso di cerchi int m_nStatus ; // stato di aggiornamento della lavorazione int m_nPockets ; // numero di percorsi di svuotatura generati + bool m_bTiltingTab ; // flag utilizzo tavola basculante bool m_bAboveHead ; // flag utilizzo testa da sopra bool m_bAggrBottom ; // flag di utilizzo dell'aggregato da sotto Vector3d m_vtAggrBottom ; // vettore direzione ausiliaria aggregato da sotto