EgtMachKernel :
- in PocketingNT piccola correzione.
This commit is contained in:
+14
-9
@@ -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() ;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user