EgtExecutor :
- migliorata gestione tolleranze in ExeApproxCurve.
This commit is contained in:
@@ -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) ;
|
||||
|
||||
Reference in New Issue
Block a user