EgtMachKernel 1.6s5 :
- migliorato controllo elevazione utensile in fresatura su attacco e uscita.
This commit is contained in:
+36
-7
@@ -217,13 +217,42 @@ Operation::GetElevation( int nPhase, const Point3d& ptP1, const Point3d& ptP2, c
|
||||
if ( m_pMchMgr == nullptr || m_pGeomDB == nullptr)
|
||||
return false ;
|
||||
// approssimo l'arco con due linee
|
||||
double dElev1, dElev2 ;
|
||||
if ( ! GetElevation( nPhase, ptP1, ptP2, vtDir, dElev1))
|
||||
return false ;
|
||||
if ( ! GetElevation( nPhase, ptP2, ptP3, vtDir, dElev2))
|
||||
return false ;
|
||||
dElev = max( dElev1, dElev2) ;
|
||||
return true ;
|
||||
double dElev1, dElev2 ;
|
||||
if ( ! GetElevation( nPhase, ptP1, ptP2, vtDir, dElev1))
|
||||
return false ;
|
||||
if ( ! GetElevation( nPhase, ptP2, ptP3, vtDir, dElev2))
|
||||
return false ;
|
||||
dElev = max( dElev1, dElev2) ;
|
||||
return true ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Operation::GetElevation( int nPhase, const Point3d& ptP,
|
||||
const Vector3d& vtDir, double dRad, double& dElev)
|
||||
{
|
||||
if ( m_pMchMgr == nullptr || m_pGeomDB == nullptr)
|
||||
return false ;
|
||||
// considero il punto
|
||||
if ( ! GetElevation( nPhase, ptP, vtDir, dElev))
|
||||
return false ;
|
||||
// considero i 4 punti sulla circonferenza
|
||||
Frame3d frLoc ;
|
||||
frLoc.Set( ptP, vtDir) ;
|
||||
double dElevT ;
|
||||
if ( ! GetElevation( nPhase, ptP + frLoc.VersX() * dRad, vtDir, dElevT))
|
||||
return false ;
|
||||
dElev = max( dElev, dElevT) ;
|
||||
if ( ! GetElevation( nPhase, ptP - frLoc.VersX() * dRad, vtDir, dElevT))
|
||||
return false ;
|
||||
dElev = max( dElev, dElevT) ;
|
||||
if ( ! GetElevation( nPhase, ptP + frLoc.VersY() * dRad, vtDir, dElevT))
|
||||
return false ;
|
||||
dElev = max( dElev, dElevT) ;
|
||||
if ( ! GetElevation( nPhase, ptP - frLoc.VersY() * dRad, vtDir, dElevT))
|
||||
return false ;
|
||||
dElev = max( dElev, dElevT) ;
|
||||
return true ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user