diff --git a/EgtMachKernel.rc b/EgtMachKernel.rc index 2f1b2ba..ec00e02 100644 Binary files a/EgtMachKernel.rc and b/EgtMachKernel.rc differ diff --git a/Milling.cpp b/Milling.cpp index d3cb7e9..ec8243c 100644 --- a/Milling.cpp +++ b/Milling.cpp @@ -2035,19 +2035,13 @@ Milling::CalcPathElevation( const ICurveComposite* pCompo, const Vector3d& vtToo m_pMchMgr->SetLastError( 2306, "Error in Milling : Entity GetElevation") ; return false ; } + // step laterali + int nStep = Clamp( int( dRad / ELEV_MAX_OFFS), 0, 4) + 1 ; // da una parte - if ( GetElevation( m_nPhase, ptStart + vtStartPerp - vtDepth, ptMid + vtMidPerp - vtDepth, - ptEnd + vtEndPerp - vtDepth, vtTool, dCurrElev)) { - if ( dCurrElev > dElev) - dElev = dCurrElev ; - } - else { - m_pMchMgr->SetLastError( 2306, "Error in Milling : Entity GetElevation") ; - return false ; - } - if ( dRad > ELEV_MAX_OFFS) { - if ( GetElevation( m_nPhase, ptStart + vtStartPerp / 2 - vtDepth, ptMid + vtMidPerp / 2 - vtDepth, - ptEnd + vtEndPerp / 2 - vtDepth, vtTool, dCurrElev)) { + for ( int j = 1 ; j <= nStep ; ++ j) { + double dCoeff = j / double( nStep) ; + if ( GetElevation( m_nPhase, ptStart + dCoeff * vtStartPerp - vtDepth, ptMid + dCoeff * vtMidPerp - vtDepth, + ptEnd + dCoeff * vtEndPerp - vtDepth, vtTool, dCurrElev)) { if ( dCurrElev > dElev) dElev = dCurrElev ; } @@ -2057,18 +2051,10 @@ Milling::CalcPathElevation( const ICurveComposite* pCompo, const Vector3d& vtToo } } // dall'altra parte - if ( GetElevation( m_nPhase, ptStart - vtStartPerp - vtDepth, ptMid - vtMidPerp - vtDepth, - ptEnd - vtEndPerp - vtDepth, vtTool, dCurrElev)) { - if ( dCurrElev > dElev) - dElev = dCurrElev ; - } - else { - m_pMchMgr->SetLastError( 2306, "Error in Milling : Entity GetElevation") ; - return false ; - } - if ( dRad > ELEV_MAX_OFFS) { - if ( GetElevation( m_nPhase, ptStart - vtStartPerp / 2 - vtDepth, ptMid - vtMidPerp / 2 - vtDepth, - ptEnd - vtEndPerp / 2 - vtDepth, vtTool, dCurrElev)) { + for ( int j = 1 ; j <= nStep ; ++ j) { + double dCoeff = j / double( nStep) ; + if ( GetElevation( m_nPhase, ptStart - dCoeff * vtStartPerp - vtDepth, ptMid - dCoeff * vtMidPerp - vtDepth, + ptEnd - dCoeff * vtEndPerp - vtDepth, vtTool, dCurrElev)) { if ( dCurrElev > dElev) dElev = dCurrElev ; }