EgtMachKernel :
- Se lavorazione Spiral, gli Step extra sono lavorati sempre in SpiralIN.
This commit is contained in:
+13
-5
@@ -1632,6 +1632,8 @@ SurfRoughing::AddPocket( const INTVECTOR& vPocket, const Vector3d& vtTool, const
|
||||
double dSafeZ = GetSafeZ() ;
|
||||
// lunghezza di approccio/retrazione
|
||||
double dAppr = m_Params.m_dStartPos ;
|
||||
// recupero il tipo di svuotatura
|
||||
int nSubType = m_Params.m_nSubType ;
|
||||
|
||||
// ciclo sulle regioni
|
||||
bool bStart = true ;
|
||||
@@ -1639,10 +1641,16 @@ SurfRoughing::AddPocket( const INTVECTOR& vPocket, const Vector3d& vtTool, const
|
||||
|
||||
// recupero la superficie da lavorare
|
||||
const ISurfFlatRegion* pSfr = GetSurfFlatRegion( m_pGeomDB->GetGeoObj( nPockId)) ;
|
||||
// controllo se la regione è relativa ad uno step base o ad uno step intermedio
|
||||
bool bIsSubStep = ( pSfr->GetTempProp( 0) == 1) ;
|
||||
// se il tipo è SPIRAL_OUT e sto gestendo uno step intermedio, lo lavoro come SPIRAL_IN
|
||||
if ( nSubType == SURFROU_SUB_SPIRALOUT && bIsSubStep)
|
||||
nSubType = SURFROU_SUB_SPIRALIN ;
|
||||
|
||||
ICRVCOMPOPOVECTOR vpCrvs ; // percorso di svuotatura
|
||||
// se si tratta di uno step base, allora lavoro l'intera superficie
|
||||
if ( ! CalcPocketing( pSfr, m_TParams.m_dDiam / 2, 0., m_Params.m_dSideStep, m_Params.m_dSideAngle,
|
||||
m_Params.m_nSubType, true, vpCrvs)) {
|
||||
nSubType, true, vpCrvs)) {
|
||||
m_pMchMgr->SetLastError( 3028, "Error in SurfRoughing : Error in CalcPocketing") ;
|
||||
return false ;
|
||||
}
|
||||
@@ -1686,7 +1694,7 @@ SurfRoughing::AddPocket( const INTVECTOR& vPocket, const Vector3d& vtTool, const
|
||||
Point3d ptUp = ptStart ;
|
||||
if ( bOutStart)
|
||||
pCurve->GetEndPoint( ptUp) ;
|
||||
else if ( m_Params.m_nSubType == SURFROU_SUB_SPIRALIN)
|
||||
else if ( nSubType == SURFROU_SUB_SPIRALIN)
|
||||
if ( ! CalcRetCrv( vpCrvs[k], ptUp, bOutStart, pRCrv))
|
||||
return false ;
|
||||
// determino inizio attacco
|
||||
@@ -1734,8 +1742,8 @@ SurfRoughing::AddPocket( const INTVECTOR& vPocket, const Vector3d& vtTool, const
|
||||
if ( IsNull( pCompo))
|
||||
return false ;
|
||||
if ( ! AddLeadIn( ptP1, ptStart, vtStart, vtExtr, pCompo,
|
||||
( ( m_Params.m_nSubType == SURFROU_SUB_SPIRALIN || m_Params.m_nSubType == SURFROU_SUB_SPIRALOUT)) ? Get( pRCrv) : nullptr,
|
||||
( m_Params.m_nSubType == SURFROU_SUB_SPIRALOUT) ? m_Params.m_bInvert : ! m_Params.m_bInvert,
|
||||
( ( nSubType == SURFROU_SUB_SPIRALIN || nSubType == SURFROU_SUB_SPIRALOUT)) ? Get( pRCrv) : nullptr,
|
||||
( nSubType == SURFROU_SUB_SPIRALOUT) ? m_Params.m_bInvert : ! m_Params.m_bInvert,
|
||||
bSplitArcs, bOutStart, false)) {
|
||||
m_pMchMgr->SetLastError( 3013, "Error in SurfRoughing : LeadIn not computable") ;
|
||||
return false ;
|
||||
@@ -1774,7 +1782,7 @@ SurfRoughing::AddPocket( const INTVECTOR& vPocket, const Vector3d& vtTool, const
|
||||
Point3d ptP1 ;
|
||||
SetFeed( GetEndFeed()) ;
|
||||
if ( ! AddLeadOut( ptEnd, vtEnd, vtExtr,
|
||||
( ( m_Params.m_nSubType == SURFROU_SUB_SPIRALIN || m_Params.m_nSubType == SURFROU_SUB_SPIRALOUT)) ? Get( pRCrv) : nullptr,
|
||||
( ( nSubType == SURFROU_SUB_SPIRALIN || nSubType == SURFROU_SUB_SPIRALOUT)) ? Get( pRCrv) : nullptr,
|
||||
bSplitArcs, false, ptP1, dEndElev)) {
|
||||
m_pMchMgr->SetLastError( 3014, "Error in SurfRoughing : LeadOut not computable") ;
|
||||
return false ;
|
||||
|
||||
Reference in New Issue
Block a user