EgtMachKernel 2.2k1 :

- in Foratura, Fresatura e Svuotatura ammessa lavorazione da sotto per teste di tipo non Above.
This commit is contained in:
Dario Sassi
2020-11-04 07:21:27 +00:00
parent 5dc854adb3
commit 97e868dd7c
6 changed files with 26 additions and 9 deletions
+12 -3
View File
@@ -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) {
+2
View File
@@ -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
BIN
View File
Binary file not shown.
+2 -2
View File
@@ -2004,8 +2004,8 @@ Milling::VerifyPathFromBottom( const ICurveComposite* pCompo, const Vector3d& vt
// se non è fresatura dal basso in alto, esco
if ( vtTool.z > 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) {
+9 -4
View File
@@ -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) {
+1
View File
@@ -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