From 69bf8c85991d6885cec77a853c1e89b7ab765fbb Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Mon, 13 Jul 2020 06:32:29 +0000 Subject: [PATCH] EgtMachKernel 2.2g3 : - modificata distanza di sicurezza per verifica collisioni in link - corretto approccio/retrazione su tagli di lama inclinati di segmenti di retta. --- EgtMachKernel.rc | Bin 11774 -> 11774 bytes Operation.cpp | 3 ++- Sawing.cpp | 12 +++++------- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/EgtMachKernel.rc b/EgtMachKernel.rc index 69591e1c38522073ae287d6b91c5edf5b8d65bdd..a8e5e83bc3c80036c12b10dc5684833e0b409e46 100644 GIT binary patch delta 97 zcmewt{V#gMFE&P#&A-`fnHfzcKa|wnoW?bQ1uSxrY4Qod0+^@}R1`^_2jk{d(jGv4 NK<#LXK~l;gTmUI`BbWdH delta 97 zcmewt{V#gMFE&Qw&A-`fnHh~IKa|wnoW?bQ1uSxrY4Qod0+^@}R1`^_2jk{d(jGv4 NK<#LXK~l;gTmUD-Bai?9 diff --git a/Operation.cpp b/Operation.cpp index 8f642c2..6457bda 100644 --- a/Operation.cpp +++ b/Operation.cpp @@ -2345,9 +2345,10 @@ Operation::TestCollisionAvoid( const DBLVECTOR& vAxStart, const DBLVECTOR& vAxEn INTVECTOR vCollId ; pMch->GetCurrHeadCollGroups( vCollId) ; // distanza di sicurezza + const double TOL_SAFEDIST = 10.0 ; const double MIN_SAFEDIST = 10.0 ; double dSafeDist = m_pMchMgr->GetCurrMachiningsMgr()->GetSafeZ() ; - dSafeDist = min( dSafeDist, max( 0.5 * dSafeDist, MIN_SAFEDIST)) ; + dSafeDist = max( dSafeDist - TOL_SAFEDIST, MIN_SAFEDIST) ; // Vado nelle posizioni da controllare const int COLL_STEP = 16 ; bool bCollide = false ; diff --git a/Sawing.cpp b/Sawing.cpp index b1039e2..65d8354 100644 --- a/Sawing.cpp +++ b/Sawing.cpp @@ -2022,10 +2022,8 @@ Sawing::GenerateLineCl( const ICurveLine* pLine, const Vector3d& vtTool, const V SetCorrAuxDir( vtCorr) ; // recupero distanza di sicurezza double dSafeZ = m_pMchMgr->GetCurrMachiningsMgr()->GetSafeZ() ; - // lunghezza di approccio/retrazione + // distanza di approccio/retrazione double dAppr = m_Params.m_dStartPos ; - if ( abs( m_Params.m_dSideAngle) > EPS_ANG_SMALL) - dAppr /= cos( m_Params.m_dSideAngle * DEGTORAD) ; // valori di step double dActStep = m_Params.m_dStep ; double dActBstep = GetStepBack() ; @@ -2195,12 +2193,12 @@ Sawing::GenerateLineCl( const ICurveLine* pLine, const Vector3d& vtTool, const V if ( i != 0) { // movimento di risalita sopra il punto finale SetFeed( GetEndFeed()) ; - Point3d ptP4 = pLine->GetEnd() + vtCorr * ( dElev + dAppr) ; + Point3d ptP4 = pLine->GetEnd() + vtCorr * ( dElev + dAppr / vtCorr.z) ; if ( AddLinearMove( ptP4) == GDB_ID_NULL) return false ; // movimento di ritorno spora il punto iniziale SetFeed( GetEndFeed()) ; - Point3d ptP5 = pLine->GetStart() + vtCorr * ( dElev + dAppr) ; + Point3d ptP5 = pLine->GetStart() + vtCorr * ( dElev + dAppr / vtCorr.z) ; if ( AddLinearMove( ptP5) == GDB_ID_NULL) return false ; } @@ -2966,10 +2964,10 @@ Sawing::GenerateExtCurveCl( const ICurveComposite* pCrv, // ricavo punto di risalita e punto iniziale Point3d ptP4 ; pCrv->GetEndPoint( ptP4) ; - ptP4 += vtEndCorr * ( dElev + dAppr) ; + ptP4 += vtEndCorr * ( dElev + dAppr / vtEndCorr.z) ; Point3d ptP5 ; pCrv->GetStartPoint( ptP5) ; - ptP5 += vtStaCorr * ( dElev + dAppr) ; + ptP5 += vtStaCorr * ( dElev + dAppr / vtStaCorr.z) ; // se sono diversi o le direzioni utensile sono diverse if ( ! AreSamePointApprox( ptP4, ptP5) || ! AreSameVectorApprox( vtEndTool, vtStaTool)) {