EgtMachKernel 1.8l4 :

- correzioni a lavorazioni cornici diritte con lama (per estensione lama con Elev negativa).
This commit is contained in:
Dario Sassi
2017-12-18 11:34:22 +00:00
parent 7d2ab26063
commit 111341b6bc
3 changed files with 18 additions and 7 deletions
BIN
View File
Binary file not shown.
+12 -5
View File
@@ -1104,7 +1104,10 @@ SawFinishing::CalculateAcrossToolPath( int nAuxId, int nClId)
BBox3d b3PL ;
PL.GetLocalBBox( b3PL) ;
double dMaxElev = min( dDepth, b3Raw.GetMax().z - b3PL.GetMin().z) ;
dAddStart = (( dMaxElev < 0.5 * m_TParams.m_dDiam) ? sqrt( dMaxElev * m_TParams.m_dDiam - dMaxElev * dMaxElev) : 0.5 * m_TParams.m_dDiam) ;
if ( dMaxElev > 0.0 && dMaxElev < 0.5 * m_TParams.m_dDiam)
dAddStart = sqrt( dMaxElev * m_TParams.m_dDiam - dMaxElev * dMaxElev) ;
else
dAddStart = 0.5 * m_TParams.m_dDiam ;
}
// Imposto dati comuni
@@ -1432,7 +1435,7 @@ SawFinishing::CalcAlongVerticalCuts( ICurve* pSect, int nUmin, int nUmax, const
}
dElev = max( dElev, dElev2) ;
if ( dElev < EPS_SMALL)
dElev = max( dRawMaxZ - ptStart.z, dRawMaxZ - ptEnd.z) ;
dElev = max( max( dRawMaxZ - ptStart.z, dRawMaxZ - ptEnd.z), 0.) ;
// la confronto con il massimo affondamento e con la massima lavorazione della lama
double dMaxDepth = min( dDepth, m_TParams.m_dMaxMat) ;
if ( dElev > dMaxDepth) {
@@ -1519,7 +1522,7 @@ SawFinishing::CalcAlongStdCuts( ICurve* pSect, double dUmin, double dUmax,
}
dElev = max( dElev, dElev2) ;
if ( dElev < EPS_SMALL)
dElev = max( dRawMaxZ - ptStart.z, dRawMaxZ - ptEnd.z) ;
dElev = max( max( dRawMaxZ - ptStart.z, dRawMaxZ - ptEnd.z), 0.) ;
// la confronto con il massimo affondamento e con la massima lavorazione della lama
double dMaxDepth = min( dDepth, m_TParams.m_dMaxMat) ;
if ( dElev > dMaxDepth) {
@@ -1575,7 +1578,9 @@ SawFinishing::CalcAlongOneWayCut( const Point3d& ptStart, const Point3d& ptEnd,
}
else if ( m_Params.m_nLeadLinkType == SAWFIN_LL_OUT) {
// distanza XY tra centro e bordo taglio
double dDeltaT = (( dElev < 0.5 * m_TParams.m_dDiam) ? sqrt( dElev * m_TParams.m_dDiam - dElev * dElev) : 0) ;
double dDeltaT = 0 ;
if ( dElev > 0.0 && dElev < 0.5 * m_TParams.m_dDiam)
dDeltaT = sqrt( dElev * m_TParams.m_dDiam - dElev * dElev) ;
// modifico inizio
ptNewStart = ptStart - vtDir * ( dDeltaT + dAppr) ;
}
@@ -1631,7 +1636,9 @@ SawFinishing::CalcAlongZigZagCut( const Point3d& ptStart, const Point3d& ptEnd,
// se attacco/uscita/collegamento esterno allungo inizio e fine a fuori grezzo
else if ( m_Params.m_nLeadLinkType == SAWFIN_LL_OUT) {
// distanza XY tra centro e bordo taglio
double dDeltaT = (( dElev < 0.5 * m_TParams.m_dDiam) ? sqrt( dElev * m_TParams.m_dDiam - dElev * dElev) : 0) ;
double dDeltaT = 0 ;
if ( dElev > 0.0 && dElev < 0.5 * m_TParams.m_dDiam)
dDeltaT = sqrt( dElev * m_TParams.m_dDiam - dElev * dElev) ;
// modifico inizio
ptNewStart = ptStart - vtDir * ( dDeltaT + dAppr) ;
// modifico fine
+6 -2
View File
@@ -1172,7 +1172,9 @@ SawRoughing::CalculateOneWayCut( const Point3d& ptStart, const Point3d& ptEnd, c
Point3d ptNewStart = ptStart ;
if ( m_Params.m_nLeadLinkType == SAWROU_LL_OUT) {
// distanza XY tra centro e bordo taglio
double dDeltaT = (( dElev < 0.5 * m_TParams.m_dDiam) ? sqrt( dElev * m_TParams.m_dDiam - dElev * dElev) : 0) ;
double dDeltaT = 0 ;
if ( dElev > 0.0 && dElev < 0.5 * m_TParams.m_dDiam)
dDeltaT = sqrt( dElev * m_TParams.m_dDiam - dElev * dElev) ;
// modifico inizio
ptNewStart = ptStart - vtDir * ( dDeltaT + dAppr) ;
}
@@ -1269,7 +1271,9 @@ SawRoughing::CalculateZigZagCut( const Point3d& ptStart, const Point3d& ptEnd, c
// se attacco/uscita/collegamento esterno allungo inizio e fine
if ( m_Params.m_nLeadLinkType == SAWROU_LL_OUT) {
// distanza XY tra centro e bordo taglio
double dDeltaT = (( dElev < 0.5 * m_TParams.m_dDiam) ? sqrt( dElev * m_TParams.m_dDiam - dElev * dElev) : 0) ;
double dDeltaT = 0 ;
if ( dElev > 0.0 && dElev < 0.5 * m_TParams.m_dDiam)
dDeltaT = sqrt( dElev * m_TParams.m_dDiam - dElev * dElev) ;
// modifico inizio
ptNewStart = ptStart - vtDir * ( dDeltaT + dAppr) ;
// modifico fine