diff --git a/Pocketing.cpp b/Pocketing.cpp index 061da4a..eac4738 100644 --- a/Pocketing.cpp +++ b/Pocketing.cpp @@ -3690,6 +3690,9 @@ Pocketing::GetRadiusForStartEndElevation( void) const bool Pocketing::GetMidOfLongestOpenSide( const ICurveComposite* pCompo, Point3d& ptMid, Vector3d& vtMidOrt) { + // recupero il vettore estrusione + Vector3d vtExtr = Z_AX ; + pCompo->GetExtrusion( vtExtr) ; // richiedo lunghezza superiore a diametro utensile pił doppio offset radiale double dMaxLen = m_TParams.m_dDiam + 2 * GetOffsR() - EPS_SMALL ; // ciclo sulle singole curve @@ -3701,8 +3704,9 @@ Pocketing::GetMidOfLongestOpenSide( const ICurveComposite* pCompo, Point3d& ptMi if ( pCrv->GetLength( dLen) && dLen > dMaxLen) { dMaxLen = dLen ; pCrv->GetMidPoint( ptMid) ; + // vettore ortogonale verso l'esterno (ruotato -90deg rispetto a estrusione9 pCrv->GetMidDir( vtMidOrt) ; - vtMidOrt.Rotate( Z_AX, 0, -1) ; + vtMidOrt.Rotate( vtExtr, 0, -1) ; bFound = true ; } }