EgtMachKernel :

- in PocketingNT nel caso di lavorazioni in doppio, si evita il movimento in rapido di risalita nella retroazione
- in PocketingNT il flag 404 viene messo per lavorazioni in doppio.
This commit is contained in:
Riccardo Elitropi
2026-06-17 12:51:46 +02:00
parent e55d481ab7
commit 2a687d76b7
2 changed files with 10 additions and 6 deletions
+9 -5
View File
@@ -5617,9 +5617,13 @@ PocketingNT::AddPocket( STEPINFOPOVECTOR& vStepInfo, const Vector3d& vtTool, dou
Vector3d vtEscape ;
if ( ! CalcLastElevation( ptP1, vtTool, currStep, dSafeZ, dStep, dLastElev, dEscapeElev, vtEscape))
return false ;
// -->! se lavorazione in doppio, l'approccio diventa uguale alla SafeZ !<--
// -->! (in questo modo si evita il movimento lineare finale) !<--
if ( bDouble)
dAppr = dSafeZ ;
if ( dEscapeElev > 10. * EPS_SMALL && vtEscape.Len() > 10. * EPS_SMALL) {
AddLinearMove( ptP1 + vtTool * dLastElev, bSplitArcs) ;
if ( ! AddRetract( ptP1 + vtTool * dLastElev, vtEscape, dSafeZ, dSafeAggrBottZ, dEscapeElev, dAppr, bSplitArcs, bDoubleParallel)) {
if ( ! AddRetract( ptP1 + vtTool * dLastElev, vtEscape, dSafeZ, dSafeAggrBottZ, dEscapeElev, dAppr, bSplitArcs, bDouble)) {
m_pMchMgr->SetLastError( 2417, "Error in PocketingNT : Retract not computable") ;
return false ;
}
@@ -5628,7 +5632,7 @@ PocketingNT::AddPocket( STEPINFOPOVECTOR& vStepInfo, const Vector3d& vtTool, dou
// aggiungo retroazione finale
if ( currPath.bToolCompensation && dLastElev < EPS_SMALL)
dLastElev = currStep.dDepth ;
if ( ! AddRetract( ptP1, vtTool, dSafeZ, dSafeAggrBottZ, dLastElev, dAppr, bSplitArcs, bDoubleParallel)) {
if ( ! AddRetract( ptP1, vtTool, dSafeZ, dSafeAggrBottZ, dLastElev, dAppr, bSplitArcs, bDouble)) {
m_pMchMgr->SetLastError( 2417, "Error in PocketingNT : Retract not computable") ;
return false ;
}
@@ -6250,7 +6254,7 @@ PocketingNT::AddLinkRetract( const Point3d& ptP, const Vector3d& vtTool, double
//----------------------------------------------------------------------------
bool
PocketingNT::AddRetract( const Point3d& ptP, const Vector3d& vtTool, double dSafeZ, double dSafeAggrBottZ,
double dElev, double dAppr, bool bSplitArcs, bool bDoubleParallel)
double dElev, double dAppr, bool bSplitArcs, bool bDouble)
{
// se con aggregato da sotto o equivalente (rinvio a 90 gradi su testa 5 assi)
bool bBottomOutStart = false ;
@@ -6261,7 +6265,7 @@ PocketingNT::AddRetract( const Point3d& ptP, const Vector3d& vtTool, double dSaf
dDistBottom = 0 ;
bBottomOutStart = ( dDistBottom < - 10 * EPS_SMALL) ;
}
if ( bDoubleParallel)
if ( bDouble)
SetFlag( 404) ;
// se sopra uscita c'è spazio per sicurezza o approccio
double dSafeDist = ( m_bAggrBottom ? dSafeAggrBottZ : dSafeZ) ;
@@ -6312,7 +6316,7 @@ PocketingNT::AddRetract( const Point3d& ptP, const Vector3d& vtTool, double dSaf
return false ;
}
}
if ( bDoubleParallel)
if ( bDouble)
SetFlag( 0) ;
return true ;
}
+1 -1
View File
@@ -156,7 +156,7 @@ class PocketingNT : public Machining
bool AddLinkRetract( const Point3d& ptP, const Vector3d& vtTool, double dSafeZ, double dSafeAggrBottZ,
double dElev, double dAppr, bool bSplitArcs) ;
bool AddRetract( const Point3d& ptP, const Vector3d& vtTool, double dSafeZ, double dSafeAggrBottZ,
double dElev, double dAppr, bool bSplitArcs, bool bDoubleParallel) ;
double dElev, double dAppr, bool bSplitArcs, bool bDouble) ;
bool CalcFirstElevation( const Point3d& ptP1, const Vector3d& vtTool,
const StepInfoPO& currStep, double dSafeZ, double dStep, double& dCurrElev,
double& dEscapeElev, Vector3d& vtEscape) const ;