From 72fbae9bf7dd6d9bfde6fa35a703d92fc63819d9 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Mon, 27 Jan 2025 12:02:14 +0100 Subject: [PATCH] =?UTF-8?q?EgtMachKernel=20:=20-=20aggiustamenti=20in=20Ta?= =?UTF-8?q?glio=20Con=20Lama=20per=20tipo=20ToAndFrom=20(se=20impostato=20?= =?UTF-8?q?ora=20=C3=A8=20forzato=20e=20i=20parametri=20di=20affondamento?= =?UTF-8?q?=20sono=20opportunamente=20aggiustati).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Sawing.cpp | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/Sawing.cpp b/Sawing.cpp index ef957b8..9361754 100644 --- a/Sawing.cpp +++ b/Sawing.cpp @@ -2138,12 +2138,14 @@ Sawing::GenerateLineCl( const ICurveLine* pLine, const Vector3d& vtTool, const V } if ( dActBstep < EPS_SMALL) dActBstep = dActStep ; + double dActLstep = GetStepLast() ; // direzione della linea Vector3d vtDir ; pLine->GetStartDir( vtDir) ; // Se una sola passata - if ( dActStep < EPS_SMALL || ( dElev - dExtraCut) <= dActStep || - ( ! bSideAng && m_Params.m_dStepLast > EPS_SMALL && ( dElev - dExtraCut) <= m_Params.m_dStepLast)) { + if ( m_Params.m_nStepType != SAW_ST_TOANDFROM && + ( dActStep < EPS_SMALL || ( dElev - dExtraCut) <= dActStep || + ( ! bSideAng && dActLstep > EPS_SMALL && ( dElev - dExtraCut) <= dActLstep))) { // 1 -> approccio Point3d ptP1 = pLine->GetStart() - vtDir * m_Params.m_dLiTang ; if ( ! AddApproach( ptP1, vtCorr, dSafeZ, dElev, dAppr)) @@ -2240,11 +2242,17 @@ Sawing::GenerateLineCl( const ICurveLine* pLine, const Vector3d& vtTool, const V int nStep = 2 ; if ( m_Params.m_nStepType == SAW_ST_ZIGZAG) nStep = 2 * static_cast( ceil( dCutH / ( dActStep + dActBstep + EPS_SMALL))) ; + else { + if ( dActStep < EPS_SMALL) + dActStep = dCutH / nStep ; + if ( dActBstep < EPS_SMALL) + dActBstep = dCutH / nStep ; + } double dMeanStep = dCutH / nStep ; double dBstep = dActBstep * 2 * dMeanStep / ( dActStep + dActBstep) ; double dLastStep = dBstep ; - if ( ! bSideAng && m_Params.m_dStepLast > EPS_SMALL) { - dLastStep = m_Params.m_dStepLast ; + if ( ! bSideAng && dActLstep > EPS_SMALL) { + dLastStep = dActLstep ; double dCoeff = ( dCutH - dLastStep) / ( nStep / 2 * dActStep + ( nStep / 2 - 1) * dActBstep) ; dMeanStep = dCoeff * ( dActStep + dActBstep) / 2 ; dBstep = dCoeff * dActBstep ; @@ -2286,8 +2294,8 @@ Sawing::GenerateLineCl( const ICurveLine* pLine, const Vector3d& vtTool, const V int nStep = static_cast( ceil( dCutH / ( dActStep + EPS_SMALL))) ; double dStep = dCutH / nStep ; double dLastStep = dStep ; - if ( ! bSideAng && m_Params.m_dStepLast > EPS_SMALL) { - dLastStep = m_Params.m_dStepLast ; + if ( ! bSideAng && dActLstep > EPS_SMALL) { + dLastStep = dActLstep ; nStep = static_cast( ceil( ( dCutH - dLastStep) / ( dActStep + EPS_SMALL))) + 1 ; dStep = ( dCutH - dLastStep) / ( nStep - 1) ; }