EgtGeomKernel :

- piccola modifica a svuotatura Spiral in CalcPocketing.
This commit is contained in:
Riccardo Elitropi
2023-12-22 09:28:30 +01:00
parent c2b36208e7
commit 4e7501ed7f
+7 -6
View File
@@ -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<ISurfFlatRegion> 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 ;