EgtMachKernel 2.4f2 :
- modifiche a fresature per caso con tavola tilting/asse a ralla - corretta in simulazione gestione errore collisione.
This commit is contained in:
+21
-6
@@ -3578,7 +3578,7 @@ Milling::AddApproach( const Point3d& ptP, const Vector3d& vtTool, double dSafeZ,
|
||||
}
|
||||
// se testa da sopra senza aggregato da sotto, approccio mai da Z negativo
|
||||
Vector3d vtAppr = vtTool ;
|
||||
if ( m_bAboveHead && ! m_bAggrBottom && vtTool.z < - EPS_SMALL) {
|
||||
if ( m_bAboveHead && ! m_bAggrBottom && ! m_bTiltingTab && vtTool.z < - EPS_SMALL) {
|
||||
vtAppr.z = 0 ;
|
||||
vtAppr.Normalize() ;
|
||||
}
|
||||
@@ -3677,7 +3677,7 @@ Milling::AddRetract( const Point3d& ptP, const Vector3d& vtTool, double dSafeZ,
|
||||
{
|
||||
// se testa da sopra senza aggregato da sotto, retrazione mai da Z negativo
|
||||
Vector3d vtAppr = vtTool ;
|
||||
if ( m_bAboveHead && ! m_bAggrBottom && vtTool.z < - EPS_SMALL) {
|
||||
if ( m_bAboveHead && ! m_bAggrBottom && ! m_bTiltingTab && vtTool.z < - EPS_SMALL) {
|
||||
vtAppr.z = 0 ;
|
||||
vtAppr.Normalize() ;
|
||||
}
|
||||
@@ -5196,11 +5196,26 @@ Milling::GetPointOutOfRaw( const Point3d& ptP, const Vector3d& vtTool, const Vec
|
||||
Vector3d vtMove = ( m_bAboveHead ? Z_AX : -Z_AX) ;
|
||||
Vector3d vtSafe = vtCorr ; vtSafe.z = 0 ; vtSafe.Normalize() ;
|
||||
Point3d ptQ = ptP - ( vtSafe + vtMove) * max( 0.2 * dSafeZ, MIN_SAFEDIST) ;
|
||||
if ( ! GetElevation( m_nPhase, ptQ, vtTool, 0.5 * m_TParams.m_dDiam, vtMove, dTemp) || dTemp > 10 * EPS_SMALL)
|
||||
return false ;
|
||||
bool bOut = true ;
|
||||
if ( ! GetElevation( m_nPhase, ptQ, vtTool, 0.5 * m_TParams.m_dDiam, vtMove, dTemp) || dTemp > 10 * EPS_SMALL) {
|
||||
bOut = false ;
|
||||
if ( ! m_bTiltingTab)
|
||||
return false ;
|
||||
}
|
||||
Point3d ptR = ptP + vtTool * m_TParams.m_dThick ;
|
||||
if ( ! GetElevation( m_nPhase, ptR, vtTool, 0.5 * m_TParams.m_dDiam, vtMove, dTemp) || dTemp > 10 * EPS_SMALL)
|
||||
return false ;
|
||||
if ( ! GetElevation( m_nPhase, ptR, vtTool, 0.5 * m_TParams.m_dDiam, vtMove, dTemp) || dTemp > 10 * EPS_SMALL) {
|
||||
bOut = false ;
|
||||
if ( ! m_bTiltingTab)
|
||||
return false ;
|
||||
}
|
||||
// se tavola rotante (o asse basculante) e non esterno, provo in direzione utensile
|
||||
if ( m_bTiltingTab && ! bOut) {
|
||||
vtMove = vtTool ;
|
||||
if ( ! GetElevation( m_nPhase, ptQ, vtTool, 0.5 * m_TParams.m_dDiam, vtMove, dTemp) || dTemp > 10 * EPS_SMALL)
|
||||
return false ;
|
||||
if ( ! GetElevation( m_nPhase, ptR, vtTool, 0.5 * m_TParams.m_dDiam, vtMove, dTemp) || dTemp > 10 * EPS_SMALL)
|
||||
return false ;
|
||||
}
|
||||
return true ;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user