EgtExecutor :

- migliorata gestione tolleranze in ExeApproxCurve.
This commit is contained in:
DarioS
2022-09-18 19:23:24 +02:00
parent 7198dd0d6a
commit 8cef853ef2
2 changed files with 9 additions and 4 deletions
+7 -2
View File
@@ -199,8 +199,13 @@ ExeApproxCurve( int nId, int nApprType, double dLinTol)
}
else { // con bi-archi
PolyArc PA ;
double dLinFea = ( dLinTol <= LIN_TOL_STD ? LIN_FEA_STD : LIN_FEA_MAX) ;
double dAngTol = ( dLinTol <= LIN_TOL_STD ? ANG_TOL_STD_DEG : ANG_TOL_MAX_DEG) ;
double dLinFea = LIN_FEA_STD ;
double dAngTol = ANG_TOL_STD_DEG ;
if ( dLinTol > LIN_TOL_STD) {
double dCoeff = ( dLinTol - LIN_TOL_STD) / LIN_TOL_STD ;
dLinFea = min( LIN_FEA_STD + 1.0 * dCoeff * LIN_FEA_STD, LIN_FEA_MAX) ;
dAngTol = min( ANG_TOL_STD_DEG + 0.2 * dCoeff * ANG_TOL_STD_DEG, ANG_TOL_MAX_DEG) ;
}
bOk = bOk && pCurve->ApproxWithArcsEx( dLinTol, dAngTol, dLinFea, PA) && pCC->FromPolyArc( PA) ;
// merge di archi identici di biarchi
bOk = bOk && pCC->MergeCurves( 0.5 * dLinTol, dAngTol) ;