EgtMachKernel :

- modifiche per gestione aggregato da sotto in foratura e fresatura
- modifiche per nuovi tipi di uscite lame allungate.
This commit is contained in:
Dario Sassi
2017-01-26 09:36:38 +00:00
parent 5849ad4f41
commit 5ffbaab0e4
10 changed files with 279 additions and 61 deletions
+22 -22
View File
@@ -2968,26 +2968,9 @@ Sawing::AdjustLineForEdges( ICurveLine* pLine, double dElev, const Vector3d& vtC
else if ( m_Params.m_nLeadInType == SAW_LI_OUT)
// all'esterno
dDeltaI = dDeltaT ;
else if ( m_Params.m_nLeadInType == SAW_LI_EXT_CENT) {
// porto il centro lama sul bordo del grezzo
// calcolo punto di inizio e direzione (sono in globale)
Point3d ptP ;
pLine->GetStartPoint( ptP) ;
Vector3d vtDir ;
pLine->GetStartDir( vtDir) ;
// determino la distanza dal bordo del grezzo
double dDist[4] = {0, 0, 0, 0} ;
if ( ! GetDistanceFromRawSide( m_nPhase, ptP, - vtDir, dDist[0]) ||
! GetDistanceFromRawSide( m_nPhase, ptP + vtThick, - vtDir, dDist[1]) ||
! GetDistanceFromRawSide( m_nPhase, ptP + vtCorr * dElev, - vtDir, dDist[2]) ||
! GetDistanceFromRawSide( m_nPhase, ptP + vtCorr * dElev + vtThick, - vtDir, dDist[3]))
return false ;
dDeltaI = 0 ;
for ( int i = 0 ; i < 4 ; ++i)
dDeltaI = max( dDeltaI, dDist[i]) ;
}
else if ( m_Params.m_nLeadInType == SAW_LI_EXT_OUT) {
// estendo all'esterno del bordo del grezzo
else if ( m_Params.m_nLeadInType == SAW_LI_EXT_CENT ||
m_Params.m_nLeadInType == SAW_LI_EXT_OUT) {
// porto il centro lama sul bordo del grezzo o all'esterno
// calcolo punto di inizio e direzione (sono in globale)
Point3d ptP ;
pLine->GetStartPoint( ptP) ;
@@ -3003,6 +2986,8 @@ Sawing::AdjustLineForEdges( ICurveLine* pLine, double dElev, const Vector3d& vtC
dDeltaI = 0 ;
for ( int i = 0 ; i < 4 ; ++i)
dDeltaI = max( dDeltaI, dDist[i]) ;
if ( m_Params.m_nLeadInType == SAW_LI_EXT_OUT)
dDeltaI += dDeltaT ;
}
}
else {
@@ -3035,9 +3020,14 @@ Sawing::AdjustLineForEdges( ICurveLine* pLine, double dElev, const Vector3d& vtC
dDeltaF = - dDeltaT ;
else if ( bIsLast) {
if ( m_Params.m_nLeadOutType == SAW_LO_STRICT)
// all'interno
dDeltaF = - dDeltaT ;
else if ( m_Params.m_nLeadOutType == SAW_LO_EXT) {
// estendo al bordo del grezzo
else if ( m_Params.m_nLeadOutType == SAW_LO_OUT)
// all'esterno
dDeltaF = dDeltaT ;
else if ( m_Params.m_nLeadOutType == SAW_LO_EXT_CENT ||
m_Params.m_nLeadOutType == SAW_LO_EXT_OUT) {
// estendo al bordo del grezzo o al suo esterno
// calcolo punto di fine e direzione (sono in globale)
Point3d ptP ;
pLine->GetEndPoint( ptP) ;
@@ -3053,6 +3043,8 @@ Sawing::AdjustLineForEdges( ICurveLine* pLine, double dElev, const Vector3d& vtC
dDeltaF = 0 ;
for ( int i = 0 ; i < 4 ; ++i)
dDeltaF = max( dDeltaF, dDist[i]) ;
if ( m_Params.m_nLeadOutType == SAW_LO_EXT_OUT)
dDeltaF += dDeltaT ;
}
}
else {
@@ -3074,6 +3066,9 @@ Sawing::AdjustLineForEdges( ICurveLine* pLine, double dElev, const Vector3d& vtC
dDeltaF = 0 ;
for ( int i = 0 ; i < 4 ; ++i)
dDeltaF = max( dDeltaF, dDist[i]) ;
// se LeadOut EXT_OUT vado all'esterno
if ( m_Params.m_nLeadOutType == SAW_LO_EXT_OUT)
dDeltaF += dDeltaT ;
}
}
// controllo se lunghezza entità accettabile
@@ -3125,7 +3120,12 @@ Sawing::AdjustArcForEdges( ICurveArc* pArc, double dElev, double dLenCoeff,
dDeltaF = - dDeltaT ;
else if ( bIsLast) {
if ( m_Params.m_nLeadOutType == SAW_LO_STRICT)
// all'interno
dDeltaF = - dDeltaT ;
else if ( m_Params.m_nLeadOutType == SAW_LO_OUT ||
m_Params.m_nLeadOutType == SAW_LO_EXT_OUT)
// all'esterno
dDeltaF = dDeltaT ;
}
dDeltaF *= dLenCoeff ;
// controllo se lunghezza entità accettabile