Modifiche ad asportazioni volumi avanzate

This commit is contained in:
LorenzoM
2021-08-04 12:18:35 +02:00
parent 2d04e29844
commit d2cb613505
+124 -4
View File
@@ -1810,7 +1810,34 @@ VolZmap::GenTool_ZDrilling( int nGrid, const Point3d& ptS, const Point3d& ptE, c
if ( m_Tool.GetCuttingFlag())
CompBall_Milling( nGrid, ptCenS, ptCenE, dRadius) ;
else if ( pCurve->GetTempProp( 1) == 1) {
/*SurfSpherePart_Milling( nGrid, ptCenS, ptCenS, vtToolDir, dRadius, double dInfH, double dSupH, bool bOuterCutter)*/ ;
double dStH = ptStart.y - ptCen.y ;
double dEnH = ptEnd.y - ptCen.y ;
// Tagliente esterno
if ( dEnH < dStH) {
if ( dEnH > 0) {
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, - vtToolDir, dRadius, dEnH, dStH, true) ;
}
else if ( dStH > 0) {
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, - vtToolDir, dRadius, 0, dStH, true) ;
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, vtToolDir, dRadius, 0, dEnH, true) ;
}
else {
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, vtToolDir, dRadius, dEnH, dStH, true) ;
}
}
// Tagliente interno
else {
if ( dEnH < 0) {
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, vtToolDir, dRadius, abs( dEnH), abs( dStH), false) ;
}
else if ( dStH < 0) {
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, vtToolDir, dRadius, 0, abs( dStH), false) ;
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, - vtToolDir, dRadius, 0, abs( dEnH), false) ;
}
else {
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, - vtToolDir, dRadius, abs( dStH), abs( dEnH), false) ;
}
}
}
// aggiorno l'altezza
//dHeight = abs( ptStart.y - ptEnd.y) ;
@@ -1944,7 +1971,38 @@ VolZmap::GenTool_ZMilling( int nGrid, const Point3d& ptS, const Point3d& ptE, co
Point3d ptCenS = ptI - vtToolDir * ( ptStart.y - ptCen.y) ;
Point3d ptCenE = ptCenS + vtMove ;
// Eseguo l'asportazione del materiale
CompBall_Milling( nGrid, ptCenS, ptCenE, dRadius) ;
if ( m_Tool.GetCuttingFlag())
CompBall_Milling( nGrid, ptCenS, ptCenE, dRadius) ;
else if ( pCurve->GetTempProp( 1) == 1) {
double dStH = ptStart.y - ptCen.y ;
double dEnH = ptEnd.y - ptCen.y ;
// Tagliente esterno
if ( dEnH < dStH) {
if ( dEnH > 0) {
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, - vtToolDir, dRadius, dEnH, dStH, true) ;
}
else if ( dStH > 0) {
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, - vtToolDir, dRadius, 0, dStH, true) ;
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, vtToolDir, dRadius, 0, dEnH, true) ;
}
else {
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, vtToolDir, dRadius, dEnH, dStH, true) ;
}
}
// Tagliente interno
else {
if ( dEnH < 0) {
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, vtToolDir, dRadius, abs( dEnH), abs( dStH), false) ;
}
else if ( dStH < 0) {
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, vtToolDir, dRadius, 0, abs( dStH), false) ;
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, - vtToolDir, dRadius, 0, abs( dEnH), false) ;
}
else {
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, - vtToolDir, dRadius, abs( dStH), abs( dEnH), false) ;
}
}
}
// aggiorno l'altezza
//dHeight = abs( ptStart.y - ptEnd.y) ;
}
@@ -3242,7 +3300,38 @@ VolZmap::GenTool_Drilling( int nGrid, const Point3d& ptS, const Point3d& ptE, co
Point3d ptCenS = ptI - vtToolDir * ( ptStart.y - ptCen.y) ;
Point3d ptCenE = ptCenS + vtMove ;
// Eseguo l'asportazione del materiale
CompBall_Milling( nGrid, ptCenS, ptCenE, dRadius) ;
if ( m_Tool.GetCuttingFlag())
CompBall_Milling( nGrid, ptCenS, ptCenE, dRadius) ;
else if ( pCurve->GetTempProp( 1) == 1) {
double dStH = ptStart.y - ptCen.y ;
double dEnH = ptEnd.y - ptCen.y ;
// Tagliente esterno
if ( dEnH < dStH) {
if ( dEnH > 0) {
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, - vtToolDir, dRadius, dEnH, dStH, true) ;
}
else if ( dStH > 0) {
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, - vtToolDir, dRadius, 0, dStH, true) ;
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, vtToolDir, dRadius, 0, dEnH, true) ;
}
else {
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, vtToolDir, dRadius, dEnH, dStH, true) ;
}
}
// Tagliente interno
else {
if ( dEnH < 0) {
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, vtToolDir, dRadius, abs( dEnH), abs( dStH), false) ;
}
else if ( dStH < 0) {
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, vtToolDir, dRadius, 0, abs( dStH), false) ;
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, - vtToolDir, dRadius, 0, abs( dEnH), false) ;
}
else {
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, - vtToolDir, dRadius, abs( dStH), abs( dEnH), false) ;
}
}
}
// aggiorno l'altezza
//dHeight = abs( ptStart.y - ptEnd.y) ;
}
@@ -3394,7 +3483,38 @@ VolZmap::GenTool_Milling( int nGrid, const Point3d& ptS, const Point3d& ptE, con
Point3d ptCenS = ptI - vtToolDir * ( ptStart.y - ptCen.y) ;
Point3d ptCenE = ptCenS + vtMove ;
// Eseguo l'asportazione del materiale
CompBall_Milling( nGrid, ptCenS, ptCenE, dRadius) ;
if ( m_Tool.GetCuttingFlag())
CompBall_Milling( nGrid, ptCenS, ptCenE, dRadius) ;
else if ( pCurve->GetTempProp( 1) == 1) {
double dStH = ptStart.y - ptCen.y ;
double dEnH = ptEnd.y - ptCen.y ;
// Tagliente esterno
if ( dEnH < dStH) {
if ( dEnH > 0) {
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, - vtToolDir, dRadius, dEnH, dStH, true) ;
}
else if ( dStH > 0) {
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, - vtToolDir, dRadius, 0, dStH, true) ;
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, vtToolDir, dRadius, 0, dEnH, true) ;
}
else {
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, vtToolDir, dRadius, dEnH, dStH, true) ;
}
}
// Tagliente interno
else {
if ( dEnH < 0) {
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, vtToolDir, dRadius, abs( dEnH), abs( dStH), false) ;
}
else if ( dStH < 0) {
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, vtToolDir, dRadius, 0, abs( dStH), false) ;
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, - vtToolDir, dRadius, 0, abs( dEnH), false) ;
}
else {
SurfSpherePart_Milling( nGrid, ptCenS, ptCenE, - vtToolDir, dRadius, abs( dStH), abs( dEnH), false) ;
}
}
}
// aggiorno l'altezza
//dHeight = abs( ptStart.y - ptEnd.y) ;
}