Revert "Merge commit '994658da167a7ac3f607f4b535a65febe8f308d1' into svuotature"
This reverts commite96f467b56, reversing changes made toec1ee961be.
This commit is contained in:
+46
-73
@@ -45,7 +45,6 @@ using namespace std ;
|
||||
const double OSC_MIN_LEN = 0.1 ;
|
||||
const double ELEV_MAX_OFFS = 25.0 ;
|
||||
const double MIN_SAFEDIST = 5.0 ;
|
||||
const double LIM_DOWN_APPRZ = - 0.5 ;
|
||||
|
||||
//------------------------------ Errors --------------------------------------
|
||||
// 2301 = "Error in Milling : UpdateToolData failed"
|
||||
@@ -2377,12 +2376,8 @@ Milling::AddStandardMilling( const ICurveComposite* pCompo, const Vector3d& vtTo
|
||||
Point3d ptTest = ptP1 - MIN_SAFEDIST * ( m_bAboveHead ? Z_AX : -Z_AX) ;
|
||||
Vector3d vtAppr1 = FromNearestHorizontalOrtho( vtTool, ptP1 - ptStart) ;
|
||||
Vector3d vtAppr2 = ptP1 - ptStart ;
|
||||
if ( ! vtAppr2.Normalize()) {
|
||||
if ( ( m_TParams.m_nType & TF_MILL) != 0)
|
||||
vtAppr2 = -vtStart ;
|
||||
else
|
||||
vtAppr2 = CalcCorrDir( pCompo, i) ;
|
||||
}
|
||||
if ( ! vtAppr2.Normalize())
|
||||
vtAppr2 = CalcCorrDir( pCompo, i) ;
|
||||
double dThick = ( m_TParams.m_nType == TT_MILL_NOTIP ? m_TParams.m_dMaxMat : m_TParams.m_dThick) ;
|
||||
double dSawStartElev1 = -1, dSawStartElev2 = -1 ;
|
||||
GetElevation( m_nPhase, ptTest, vtTool, 0.5 * m_TParams.m_dDiam, dThick, vtAppr1, dSawStartElev1) ;
|
||||
@@ -2409,7 +2404,7 @@ Milling::AddStandardMilling( const ICurveComposite* pCompo, const Vector3d& vtTo
|
||||
bOk = false ;
|
||||
}
|
||||
// aggiungo opportuno approccio
|
||||
if ( ! AddSawBladeSideApproach( ptP1, vtAppr, vtTool, dSafeZ, dSawStartElev, dStElev, dAppr)) {
|
||||
if ( ! AddSawBladeSideApproach( ptP1, vtAppr, dSafeZ, dSawStartElev, dAppr)) {
|
||||
m_pMchMgr->SetLastError( 2309, "Error in Milling : Approach not computable") ;
|
||||
return false ;
|
||||
}
|
||||
@@ -2546,12 +2541,8 @@ Milling::AddStandardMilling( const ICurveComposite* pCompo, const Vector3d& vtTo
|
||||
Point3d ptTest = ptP1 - MIN_SAFEDIST * ( m_bAboveHead ? Z_AX : -Z_AX) ;
|
||||
Vector3d vtRetr1 = FromNearestHorizontalOrtho( vtTool, ptP1 - ptEnd) ;
|
||||
Vector3d vtRetr2 = ptP1 - ptEnd ;
|
||||
if ( ! vtRetr2.Normalize()) {
|
||||
if ( ( m_TParams.m_nType & TF_MILL) != 0)
|
||||
vtRetr2 = vtEnd ;
|
||||
else
|
||||
vtRetr2 = CalcCorrDir( pCompo, i + 1) ;
|
||||
}
|
||||
if ( ! vtRetr2.Normalize())
|
||||
vtRetr2 = CalcCorrDir( pCompo, i + 1) ;
|
||||
double dThick = ( m_TParams.m_nType == TT_MILL_NOTIP ? m_TParams.m_dMaxMat : m_TParams.m_dThick) ;
|
||||
double dSawEndElev1, dSawEndElev2 ;
|
||||
GetElevation( m_nPhase, ptTest, vtTool, 0.5 * m_TParams.m_dDiam, dThick, vtRetr1, dSawEndElev1) ;
|
||||
@@ -2578,7 +2569,7 @@ Milling::AddStandardMilling( const ICurveComposite* pCompo, const Vector3d& vtTo
|
||||
bOk = false ;
|
||||
}
|
||||
// aggiungo opportuna retrazione
|
||||
if ( ! AddSawBladeSideRetract( ptP1, vtRetr, vtTool, dSafeZ, dSawEndElev, dEndElev, dAppr)) {
|
||||
if ( ! AddSawBladeSideRetract( ptP1, vtRetr, vtTool, dSafeZ, dSawEndElev, dAppr)) {
|
||||
m_pMchMgr->SetLastError( 2312, "Error in Milling : Retract not computable") ;
|
||||
return false ;
|
||||
}
|
||||
@@ -2759,7 +2750,7 @@ Milling::AddZigZagMilling( const ICurveComposite* pCompo, const Vector3d& vtTool
|
||||
bOk = false ;
|
||||
}
|
||||
// aggiungo opportuno approccio
|
||||
if ( ! AddSawBladeSideApproach( ptP1, vtAppr, vtTool, dSafeZ, dSawStartElev, dStElev, dAppr)) {
|
||||
if ( ! AddSawBladeSideApproach( ptP1, vtAppr, dSafeZ, dSawStartElev, dAppr)) {
|
||||
m_pMchMgr->SetLastError( 2309, "Error in Milling : Approach not computable") ;
|
||||
return false ;
|
||||
}
|
||||
@@ -2924,7 +2915,7 @@ Milling::AddZigZagMilling( const ICurveComposite* pCompo, const Vector3d& vtTool
|
||||
bOk = false ;
|
||||
}
|
||||
// aggiungo opportuna retrazione
|
||||
if ( ! AddSawBladeSideRetract( ptP1, vtRetr, vtTool, dSafeZ, dSawEndElev, dEndElev, dAppr)) {
|
||||
if ( ! AddSawBladeSideRetract( ptP1, vtRetr, vtTool, dSafeZ, dSawEndElev, dAppr)) {
|
||||
m_pMchMgr->SetLastError( 2312, "Error in Milling : Retract not computable") ;
|
||||
return false ;
|
||||
}
|
||||
@@ -3220,7 +3211,7 @@ Milling::AddOneWayMilling( const ICurveComposite* pCompo, const Vector3d& vtTool
|
||||
bOk = false ;
|
||||
}
|
||||
// aggiungo opportuno approccio
|
||||
if ( ! AddSawBladeSideApproach( ptP1, vtAppr, vtTool, dSafeZ, dSawStartElev, dStElev, dAppr)) {
|
||||
if ( ! AddSawBladeSideApproach( ptP1, vtAppr, dSafeZ, dSawStartElev, dAppr)) {
|
||||
m_pMchMgr->SetLastError( 2309, "Error in Milling : Approach not computable") ;
|
||||
return false ;
|
||||
}
|
||||
@@ -3386,7 +3377,7 @@ Milling::AddOneWayMilling( const ICurveComposite* pCompo, const Vector3d& vtTool
|
||||
bOk = false ;
|
||||
}
|
||||
// aggiungo opportuna retrazione
|
||||
if ( ! AddSawBladeSideRetract( ptP1, vtRetr, vtTool, dSafeZ, dSawEndElev, dEndElev, dAppr)) {
|
||||
if ( ! AddSawBladeSideRetract( ptP1, vtRetr, vtTool, dSafeZ, dSawEndElev, dAppr)) {
|
||||
m_pMchMgr->SetLastError( 2312, "Error in Milling : Retract not computable") ;
|
||||
return false ;
|
||||
}
|
||||
@@ -4084,42 +4075,16 @@ Milling::AddApproach( const Point3d& ptP, const Vector3d& vtTool, double dSafeZ,
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Milling::AddSawBladeSideApproach( const Point3d& ptP, const Vector3d& vtAppr, const Vector3d& vtTool,
|
||||
double dSafeZ, double dSawStElev, double dStElev, double dAppr)
|
||||
Milling::AddSawBladeSideApproach( const Point3d& ptP, const Vector3d& vtAppr, double dSafeZ, double dStElev, double dAppr)
|
||||
{
|
||||
// per approccio orizzontale vtAppr deve essere già stato sistemato dal chiamante
|
||||
SetFlag( 1) ;
|
||||
// 1a -> punto fuori inizio
|
||||
Point3d ptP1a = ptP + vtAppr * ( dSawStElev + max( dAppr, dSafeZ)) ;
|
||||
// se necessario ulteriore approccio
|
||||
if ( ! m_bTiltingTab && vtAppr.z < LIM_DOWN_APPRZ) {
|
||||
Vector3d vtMove = Vector3d( vtTool.x, vtTool.y, 0) ;
|
||||
if ( vtMove.Normalize()) {
|
||||
Point3d ptP1e = ptP1a + vtMove * ( dStElev + dSafeZ) ;
|
||||
if ( AddRapidStart( ptP1e) == GDB_ID_NULL)
|
||||
return false ;
|
||||
SetFlag( 0) ;
|
||||
if ( AddRapidMove( ptP1a) == GDB_ID_NULL)
|
||||
return false ;
|
||||
}
|
||||
else {
|
||||
if ( AddRapidStart( ptP1a) == GDB_ID_NULL)
|
||||
return false ;
|
||||
}
|
||||
}
|
||||
// caso standard
|
||||
else {
|
||||
if ( AddRapidStart( ptP1a) == GDB_ID_NULL)
|
||||
return false ;
|
||||
}
|
||||
SetFlag( 0) ;
|
||||
// 1b -> punto appena sopra inizio (se necessario)
|
||||
if ( dSafeZ > dAppr + 10 * EPS_SMALL && dSawStElev + dAppr > 10 * EPS_SMALL) {
|
||||
Point3d ptP1b = ptP + vtAppr * ( dSawStElev + dAppr) ;
|
||||
if ( AddRapidMove( ptP1b) == GDB_ID_NULL)
|
||||
return false ;
|
||||
}
|
||||
// per approccio orizzontale vtAppr deve essere già stato sistemato dal chiamante
|
||||
// 1 -> punto fuori inizio
|
||||
Point3d ptP1 = ptP + vtAppr * ( dStElev + max( dAppr, dSafeZ)) ;
|
||||
if ( AddRapidStart( ptP1) == GDB_ID_NULL)
|
||||
return false ;
|
||||
// affondo al punto iniziale in feed
|
||||
SetFlag( 0) ;
|
||||
SetFeed( GetStartFeed()) ;
|
||||
if ( AddLinearMove( ptP) == GDB_ID_NULL)
|
||||
return false ;
|
||||
@@ -4232,29 +4197,37 @@ Milling::AddRetract( const Point3d& ptP, const Vector3d& vtTool, double dSafeZ,
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Milling::AddSawBladeSideRetract( const Point3d& ptP, const Vector3d& vtRetr, const Vector3d& vtTool,
|
||||
double dSafeZ, double dSawEndElev, double dEndElev, double dAppr)
|
||||
double dSafeZ, double dEndElev, double dAppr)
|
||||
{
|
||||
// per retrazione orizzontale vtAppr deve essere già stato sistemato dal chiamante
|
||||
Point3d ptP4 = ptP ;
|
||||
// se sopra uscita c'è spazio per approccio
|
||||
if ( dSawEndElev + dAppr > 10 * EPS_SMALL) {
|
||||
SetFeed( GetEndFeed()) ;
|
||||
ptP4 = ptP + vtRetr * ( dSawEndElev + dAppr) ;
|
||||
if ( AddLinearMove( ptP4) == GDB_ID_NULL)
|
||||
return false ;
|
||||
}
|
||||
// se sopra uscita c'è spazio per sicurezza
|
||||
if ( dSafeZ - dAppr > 10 * EPS_SMALL) {
|
||||
ptP4 += vtRetr * ( dSafeZ - dAppr) ;
|
||||
if ( AddRapidMove( ptP4) == GDB_ID_NULL)
|
||||
return false ;
|
||||
}
|
||||
|
||||
// se necessaria ulteriore uscita
|
||||
if ( ! m_bTiltingTab && vtRetr.z < LIM_DOWN_APPRZ) {
|
||||
Vector3d vtMove = Vector3d( vtTool.x, vtTool.y, 0) ;
|
||||
if ( vtMove.Normalize()) {
|
||||
Point3d ptP4b = ptP4 + vtMove * ( dEndElev + dSafeZ) ;
|
||||
// se sopra uscita c'è spazio per sicurezza o approccio
|
||||
if ( dEndElev + max( dSafeZ, dAppr) > 10 * EPS_SMALL) {
|
||||
if ( dSafeZ < dAppr + 10 * EPS_SMALL) {
|
||||
// 4 -> movimento di risalita sopra il punto finale
|
||||
SetFeed( GetEndFeed()) ;
|
||||
Point3d ptP4 = ptP + vtRetr * ( dEndElev + dAppr) ;
|
||||
if ( AddLinearMove( ptP4) == GDB_ID_NULL)
|
||||
return false ;
|
||||
}
|
||||
else {
|
||||
// 4a -> movimento di risalita appena sopra il punto finale
|
||||
Point3d ptP4a = ptP + vtRetr * ( dEndElev + dAppr) ;
|
||||
if ( dEndElev + dAppr > EPS_SMALL) {
|
||||
SetFeed( GetEndFeed()) ;
|
||||
if ( AddLinearMove( ptP4a) == GDB_ID_NULL)
|
||||
return false ;
|
||||
}
|
||||
// 4b -> movimento di risalita sopra il punto finale
|
||||
Vector3d vtMove = vtRetr ;
|
||||
double dMove = dSafeZ - dAppr ;
|
||||
if ( ! m_bTiltingTab && vtRetr.z < sin( -ANG_RIGHT / 2)) {
|
||||
vtMove = Vector3d( vtTool.x, vtTool.y, 0) ;
|
||||
if ( vtMove.Normalize())
|
||||
dMove = dSafeZ ;
|
||||
else
|
||||
vtMove = vtRetr ;
|
||||
}
|
||||
Point3d ptP4b = ptP4a + vtMove * dMove ;
|
||||
if ( AddRapidMove( ptP4b) == GDB_ID_NULL)
|
||||
return false ;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user