Merge commit '0ee84b1d1ae174054977df5c7e9a192ab8352d1b'
This commit is contained in:
+19
-14
@@ -1764,6 +1764,9 @@ SurfRoughing::CalcPaths( const INTINTVECTOR& vPocket, const ICRVCOMPOPOVECTOR& v
|
||||
for ( auto& vId : vPocket) {
|
||||
|
||||
// recupero la superficie da lavorare
|
||||
const ISurfFlatRegion* pSfrPock = GetSurfFlatRegion( m_pGeomDB->GetGeoObj( vId.first)) ;
|
||||
if ( pSfrPock == nullptr || ! pSfrPock->IsValid())
|
||||
continue ;
|
||||
vStepInfo[nInd].pSfrPock.Set( CloneSurfFlatRegion( m_pGeomDB->GetGeoObj( vId.first))) ;
|
||||
// controllo se la regione è relativa ad uno step base o ad uno step intermedio
|
||||
vStepInfo[nInd].bIsSubStep = ( vStepInfo[nInd].pSfrPock->GetTempProp( 0) == 1) ;
|
||||
@@ -1833,17 +1836,6 @@ SurfRoughing::CalcPaths( const INTINTVECTOR& vPocket, const ICRVCOMPOPOVECTOR& v
|
||||
return false ;
|
||||
}
|
||||
}
|
||||
// se la svuotatura è di tipo conformal ZigZag ma la geometria non è valida
|
||||
if ( nSubType == SURFROU_SUB_CONFORMAL_ZIGZAG && vStepInfo[nInd].vPaths.empty()) {
|
||||
if ( vStepInfo[nInd].bIsSubStep) {
|
||||
string sWarn = "Warning in SurfRoughing : invalid Conformal ZigZag at substep (" + ToString( vStepInfo[nInd].dDepth, 1) + ")" ;
|
||||
m_pMchMgr->SetWarning( 3056, sWarn) ;
|
||||
}
|
||||
else {
|
||||
m_pMchMgr->SetLastError( 3030, "Error in SurfRoughing : Conformal ZigZag not valid at step (" + ToString( vStepInfo[nInd].dDepth, 1) + ")") ;
|
||||
return false ;
|
||||
}
|
||||
}
|
||||
// se non ho ottenuto percorsi, allora passo allo step successivo ( nInd non viene aggiornato!)
|
||||
if ( vCrvPaths.empty())
|
||||
continue ;
|
||||
@@ -2108,8 +2100,21 @@ SurfRoughing::AddPocket( const INTINTVECTOR& vPocket, const Vector3d& vtTool, co
|
||||
dCurrElev = dSafeZ ;
|
||||
double dNextElev = dSafeZ ;
|
||||
if ( bSafe) {
|
||||
if ( bSamePlane && ! vStepInfo[i].vPaths[j+1].bOutStart)
|
||||
dCurrElev -= currStep.dRelativeDepth ;
|
||||
/* Questo controllo serve se passando da un chunk all'altro si interseca un ulteriore
|
||||
Chunk non ancora svuotato; per ora non capita mai...
|
||||
*/
|
||||
//if ( bSamePlane) {
|
||||
// dCurrElev -= currStep.dRelativeDepth ;
|
||||
// dNextElev = dCurrElev ;
|
||||
//}
|
||||
if ( bSamePlane) {
|
||||
if ( ( ( currStep.nSubType == SURFROU_SUB_SPIRALIN || currStep.nSubType == SURFROU_SUB_SPIRALOUT) &&
|
||||
! vStepInfo[i].vPaths[j+1].bOutStart) ||
|
||||
( currStep.nSubType != SURFROU_SUB_SPIRALIN && currStep.nSubType != SURFROU_SUB_SPIRALOUT)) {
|
||||
dCurrElev -= currStep.dRelativeDepth ;
|
||||
dNextElev = dCurrElev ;
|
||||
}
|
||||
}
|
||||
else if ( bNextIsBelow)
|
||||
dNextElev += ( ptEnd - ptDest) * vtTool ;
|
||||
else {
|
||||
@@ -3143,7 +3148,7 @@ SurfRoughing::VerifyLeadInLeadOut( const ICurve* pCrv, const ICurveComposite* pC
|
||||
return false ;
|
||||
|
||||
// calcolo la Fat Curve del tratto lineare e la porto in globale
|
||||
PtrOwner<ISurfFlatRegion> pSfrFat( GetSurfFlatRegionFromFatCurve( pCrvLoc->Clone(), m_TParams.m_dDiam / 2, false, false)) ;
|
||||
PtrOwner<ISurfFlatRegion> pSfrFat( GetSurfFlatRegionFromFatCurve( pCrvLoc->Clone(), m_TParams.m_dDiam / 2 - 50 * EPS_SMALL, false, false)) ;
|
||||
if ( IsNull( pSfrFat) || ! pSfrFat->IsValid())
|
||||
return false ;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user