EgtGeomKernel 1.8h1 :
- inserite ultime migliorie per grafica Zmap - corretta AvoidBox di Zmap.
This commit is contained in:
@@ -3272,7 +3272,7 @@ VolZmap::CompCyl_ZDrilling( unsigned int nGrid, const Point3d & ptS, const Point
|
||||
|
||||
// Parametri geometrici dell'utensile
|
||||
double dSqRad = dRad * dRad ;
|
||||
double dSqfeSqRad = dSqRad - 2 * dRad * EPS_SMALL ;
|
||||
double dSafeSqRad = dSqRad - 2 * dRad * EPS_SMALL ;
|
||||
|
||||
// Punte del gambo
|
||||
Point3d ptTStemS = ptS - vtToolDir * dHei ;
|
||||
@@ -3293,7 +3293,7 @@ VolZmap::CompCyl_ZDrilling( unsigned int nGrid, const Point3d & ptS, const Point
|
||||
double dSqLen = vtC.SqLen() ;
|
||||
|
||||
// Se il punto si trova dentro il cerchio taglio
|
||||
if ( dSqLen < dSqfeSqRad)
|
||||
if ( dSqLen < dSafeSqRad)
|
||||
SubtractIntervals( nGrid, i, j, dMinStemZ, dMaxStemZ, Z_AX, - Z_AX) ;
|
||||
}
|
||||
}
|
||||
@@ -3318,8 +3318,9 @@ VolZmap::CompConus_ZDrilling( unsigned int nGrid, const Point3d & ptS, const Poi
|
||||
double dAngC = dHei / ( dMaxRad - dMinRad) ;
|
||||
double dSqMinRad = dMinRad * dMinRad ;
|
||||
double dSqMaxRad = dMaxRad * dMaxRad ;
|
||||
double dDeltaR = dMaxRad - dMinRad ;
|
||||
|
||||
double dSafeSqMaxRad = dSqMaxRad - 2 * dMaxRad * EPS_SMALL ; // Questa variabile è sperimentale: serve per evitare il taglio di un dexel dalla parte cilindrica del volume spazzato dalla traslazione del cono.
|
||||
double dDeltaR = dMaxRad - dMinRad ; // Per tornare alla versione precedente basta sostituire dSafeSqMaxRad con dSqMaxRad. Per risolvere il problema in modo forse più sicuro, ma
|
||||
// computazionalmente più pesante è sottrarre prima il cilindro con dSafeSqMaxRad e dopo il cono con dSqMaxRad.
|
||||
// Studio delle simmetrie
|
||||
if ( vtToolDir.z > 0) {
|
||||
|
||||
@@ -3354,7 +3355,7 @@ VolZmap::CompConus_ZDrilling( unsigned int nGrid, const Point3d & ptS, const Poi
|
||||
|
||||
SubtractIntervals( nGrid, i, j, dZMin, dZMax, Z_AX, -Z_AX) ;
|
||||
|
||||
else if ( dSqDist < dSqMaxRad) {
|
||||
else if ( dSqDist < dSafeSqMaxRad) { // dSafeSqMaxRad è sperimentale
|
||||
|
||||
double dr = sqrt( dSqDist) ;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user