EgtGeomKernel 1.8h1 :

- inserite ultime migliorie per grafica Zmap
- corretta AvoidBox di Zmap.
This commit is contained in:
Dario Sassi
2017-08-10 17:16:30 +00:00
parent 99bbdda1d0
commit c17e44a3e1
4 changed files with 376 additions and 238 deletions
+6 -5
View File
@@ -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) ;