diff --git a/CalcPocketing.cpp b/CalcPocketing.cpp index e485509..f0ed8d6 100644 --- a/CalcPocketing.cpp +++ b/CalcPocketing.cpp @@ -1898,7 +1898,7 @@ CalcSpiral( const ISurfFlatRegion* pSrfPock, double dRad, double dStep, bool bSm if ( IsNull( pSrfAct) || pSrfAct->GetChunkCount() == 0) return false ; - double dOffsPrec = dOffs ; + double dOffsPrec = 0. ; while ( nIter < MAX_ITER) { // ricavo la regione piana da VRONI PtrOwner pSfrOffsVR( pSrfAct->CreateOffsetSurf( - dOffs, ICurve::OFF_FILLET)) ; @@ -1942,16 +1942,17 @@ CalcSpiral( const ISurfFlatRegion* pSrfPock, double dRad, double dStep, bool bSm } // controllo se serve un raggio più piccolo di svuotatura - bool bSmallRad = ( nIter == 0 ? dOffs - dOffsPrec < dRad + EPS_ZERO : dOffs - dOffsPrec < dRad + EPS_ZERO) ; - // memorizzo il valore di Offset per l'iterazione successiva - dOffsPrec = dOffs ; + bool bSmallRad = ( nIter == 0 ? dOffs < dRad + EPS_ZERO : dOffs - dOffsPrec < dRad + EPS_ZERO) ; // se ho trovato dei chunk, allora aggiorno l'Offset per la passata successiva - if ( nChunks > 0) + if ( nChunks > 0) { + // memorizzo il valore di Offset per l'iterazione successiva + dOffsPrec = dOffs ; dOffs += dStep ; + } // se devo usare un Offset più piccolo... else if ( ! bSmallRad) - dOffs += ( nIter == 0 ? dRad : dRad) ; // superfluo, effettivamente non ho l'offset radiale + dOffs = dOffsPrec + ( nIter == 0 ? dRad : dRad) ; // superfluo, effettivamente non ho l'offset radiale // altrimenti ho finito la regione da svuotare... else break ;