From d1df71ef4ae194cc7512edd9ffdbbfe63495f0bb Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Tue, 26 Jul 2016 18:11:26 +0000 Subject: [PATCH] EgtExecutor 1.6s8 : - migliorato calcolo angoli tra curve di contorno di FlatParts (casi arco/retta tg). --- EXE_NstCreateFlatParts.cpp | 25 ++++++++++++++++++------- EgtExecutor.rc | Bin 11694 -> 11694 bytes 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/EXE_NstCreateFlatParts.cpp b/EXE_NstCreateFlatParts.cpp index a903f6c..25e73c0 100644 --- a/EXE_NstCreateFlatParts.cpp +++ b/EXE_NstCreateFlatParts.cpp @@ -704,11 +704,12 @@ ExeAdjustFlatPartLayer( int nLayerId) continue ; } // Determino l'angolo tra le due direzioni - double dAngDeg = 0 ; - vtDir1.GetAngleXY( vtDir2, dAngDeg) ; + double dAngDeg1 = 0 ; + vtDir1.GetAngleXY( vtDir2, dAngDeg1) ; + double dAngDeg2 = dAngDeg1 ; // Se angolo piccolo (circa tangenti), verifico se uno dei due piega all'interno const double EPS_ANG_TG = 5.0 ; - if ( abs( dAngDeg) < EPS_ANG_TG) { + if ( abs( dAngDeg1) < EPS_ANG_TG) { // Punto di giunzione Point3d ptP ; pCrv1->GetEndPoint( ptP) ; @@ -726,12 +727,22 @@ ExeAdjustFlatPartLayer( int nLayerId) Vector3d vtDiff2 = ptP2 - ptP ; double dTmpAngDeg ; vtDiff1.GetAngleXY( vtDiff2, dTmpAngDeg) ; - if ( dTmpAngDeg < - EPS_ANG_SMALL) - dAngDeg = - 1 ; + if ( dTmpAngDeg < - EPS_ANG_SMALL) { + bool bArc1 = ( GetCurveArc( pCrv1) != nullptr) ; + bool bArc2 = ( GetCurveArc( pCrv2) != nullptr) ; + if ( bArc1 && ! bArc2) + dAngDeg2 = - 1 ; + else if ( bArc2 && ! bArc1) + dAngDeg1 = - 1 ; + else { + dAngDeg1 = - 1 ; + dAngDeg2 = - 1 ; + } + } } // Scrivo l'angolo nelle info delle curve - pGeomDB->SetInfo( nId, MCH_PV_KEY_NEXTANG, dAngDeg) ; - pGeomDB->SetInfo( nCalcId, MCH_PV_KEY_PREVANG, dAngDeg) ; + pGeomDB->SetInfo( nId, MCH_PV_KEY_NEXTANG, dAngDeg1) ; + pGeomDB->SetInfo( nCalcId, MCH_PV_KEY_PREVANG, dAngDeg2) ; } // Passo all'entità successiva nId = nNextId ; diff --git a/EgtExecutor.rc b/EgtExecutor.rc index effc9853e4227133fbfa724c9024ef7a7c956141..a438244d327b278925a7c07db259f9c04ea87978 100644 GIT binary patch delta 97 zcmZ1%y)JsgA2vpd%@@V4Gflq2na5}`Ignd-a{*Tk3sCf++-0W82LxfF21;&>n->Y| cF@rU@0x76sKgP|Iq`|@mn->Y| cF@rU@0x76sKgP|Iq`|@m