EgtMachKernel :

- in PocketingNT piccola correzione.
This commit is contained in:
Riccardo Elitropi
2026-03-02 16:20:55 +01:00
parent e8099c11e0
commit e8e8a209b1
+14 -9
View File
@@ -4554,6 +4554,7 @@ PocketingNT::AddPocket( STEPINFOPOVECTOR& vStepInfo, const Vector3d& vtTool, dou
Vector3d vtEscape ;
if ( bAbsFirst)
CalcFirstElevation( ptStart, ptP1, vtTool, currStep, dSafeZ, dStep, dCurrElev, dEscapeElev, vtEscape) ;
bool bEscapeElev = ( dEscapeElev > 10. * EPS_SMALL && vtEscape.Len() > 10. * EPS_SMALL) ;
dCurrElev -= ( ptP1 - ptStart) * vtTool ;
// se attacco a zigzag o a spirale o a scivolo, l'elevazione va nell'attacco
if ( GetLeadInType() != POCKET_LI_NONE) {
@@ -4567,13 +4568,17 @@ PocketingNT::AddPocket( STEPINFOPOVECTOR& vStepInfo, const Vector3d& vtTool, dou
else if ( ! currPath.bOutStart)
ptP1 += vtTool * ( - currStep.dRelativeDepth) ;
}
else if ( currPath.bOutStart && bAbsFirst && bEscapeElev) {
ptP1 += vtTool * dCurrElev ;
dCurrElev = - dSafeZ ;
}
// approccio al punto iniziale ( se punti non allineati lungo vtTool)
double dMySafeZ = ( bAbsFirst ? dSafeZ : 0.) ;
Point3d ptMyPos ; GetCurrPos( ptMyPos) ;
double dMyElev = ( bAbsFirst ? dCurrElev : ( ptMyPos - ptP1) * vtTool) ;
double dMyAppr = ( bAbsFirst ? dAppr : 0.) ;
if ( bAbsFirst || ! OrthoCompo( ptMyPos - ptP1, vtTool).IsSmall()) {
if ( bAbsFirst && dEscapeElev > 10 * EPS_SMALL && vtEscape.SqLen() > 100 * EPS_SMALL) {
if ( bAbsFirst && bEscapeElev) {
if ( ! AddApproach( ptP1 + vtEscape * dEscapeElev, vtEscape, dMySafeZ, dSafeAggrBottZ, 0, dMyAppr, bSplitArcs, currPath.bOutStart)) {
m_pMchMgr->SetLastError( 3011, "Error in PocketingNT : Approach not computable") ;
return false ;
@@ -4764,17 +4769,17 @@ PocketingNT::CalcFirstElevation( const Point3d& ptStart, const Point3d& ptP1, co
dCurrElev = max( dCurrElev, - currStep.dDepth + 10 * EPS_SMALL) ;
dEscapeElev = 0 ;
vtEscape = V_NULL ;
double dMyEscapeEvel = 0 ;
double dMyEscapeElev = 0 ;
Vector3d vtMyEscape = vtTool ;
vtMyEscape.z = ( m_bAboveHead ? max( vtTool.z, 0.) : min( vtTool.z, 0.)) ;
bool bAhUnderRaw = m_bAboveHead && ! m_bAggrBottom && ! m_bTiltingTab &&
GetAhPointUnderRaw( ptP1 + dCurrElev * vtTool, vtTool, 0, GetRadiusForStartEndElevation(),
m_TParams.m_dLen, false, dSafeZ, vtMyEscape, dMyEscapeEvel) ;
m_TParams.m_dLen, false, dSafeZ, vtMyEscape, dMyEscapeElev) ;
bool bUhAboveRaw = ! m_bAboveHead &&
GetUhPointAboveRaw( ptP1 + dCurrElev * vtTool, vtTool, 0, GetRadiusForStartEndElevation(),
m_TParams.m_dLen, false, dSafeZ, vtMyEscape, dMyEscapeEvel) ;
m_TParams.m_dLen, false, dSafeZ, vtMyEscape, dMyEscapeElev) ;
if ( bAhUnderRaw || bUhAboveRaw || m_bTiltingTab) {
dEscapeElev = dMyEscapeEvel ;
dEscapeElev = dMyEscapeElev ;
vtEscape = vtMyEscape ;
vtEscape.Normalize() ;
}
@@ -4791,17 +4796,17 @@ PocketingNT::CalcLastElevation( const Point3d& ptEnd, const Point3d& ptP1, const
dCurrElev = - currStep.dDepth ;
dEscapeElev = 0 ;
vtEscape = V_NULL ;
double dMyEscapeEvel = 0 ;
double dMyEscapeElev = 0 ;
Vector3d vtMyEscape = vtTool ;
vtMyEscape.z = ( m_bAboveHead ? max( vtTool.z, 0.) : min( vtTool.z, 0.)) ;
bool bAhUnderRaw = m_bAboveHead && ! m_bAggrBottom && ! m_bTiltingTab &&
GetAhPointUnderRaw( ptP1 + vtTool * dCurrElev, vtTool, 0, GetRadiusForStartEndElevation(),
m_TParams.m_dLen, false, dSafeZ, vtMyEscape, dMyEscapeEvel) ;
m_TParams.m_dLen, false, dSafeZ, vtMyEscape, dMyEscapeElev) ;
bool bUhAboveRaw = ! m_bAboveHead &&
GetUhPointAboveRaw( ptP1 + vtTool * dCurrElev, vtTool, 0, GetRadiusForStartEndElevation(),
m_TParams.m_dLen, false, dSafeZ, vtMyEscape, dMyEscapeEvel) ;
m_TParams.m_dLen, false, dSafeZ, vtMyEscape, dMyEscapeElev) ;
if ( bAhUnderRaw || bUhAboveRaw || m_bTiltingTab) {
dEscapeElev = dMyEscapeEvel ;
dEscapeElev = dMyEscapeElev ;
vtEscape = vtMyEscape ;
vtEscape.Normalize() ;
}