EgtMachKernel :
- in PocketingNT piccola miglioria su Entrate/Uscite a scivolo.
This commit is contained in:
+14
-6
@@ -3470,15 +3470,19 @@ PocketingNT::CalcLeadInOutGlide( const PathInfoPO& PathInfo, const StepInfoPO& S
|
||||
if ( ! IsNull( pCrvGlideOut) && pCrvGlideOut->IsValid()) {
|
||||
// controllo che la lunghezza del percorso sia compatibile
|
||||
double dLen = 0. ;
|
||||
if ( pCrvGlideOut->GetLength( dLen) && dLen > m_Params.m_dLiTang + 10 * EPS_SMALL) {
|
||||
if ( pCrvGlideOut->GetLength( dLen) && dLen > m_Params.m_dLoTang + 10 * EPS_SMALL) {
|
||||
// recupero il tratto di curva alla fine
|
||||
double dU = 0. ;
|
||||
if ( ! pCrvGlideOut->GetParamAtLength( m_Params.m_dLiTang, dU))
|
||||
if ( ! pCrvGlideOut->GetParamAtLength( m_Params.m_dLoTang, dU))
|
||||
return false ;
|
||||
pCrvGlide->AddCurve( pCrvGlideOut->CopyParamRange( 0., dU)) ;
|
||||
if ( ! pCrvGlide->IsValid())
|
||||
return false ;
|
||||
}
|
||||
// se non sufficientemente lunga, la guida diventa la curva stessa
|
||||
else
|
||||
pCrvGlide->AddCurve( Release( pCrvGlideOut)) ;
|
||||
|
||||
if ( ! pCrvGlide->IsValid())
|
||||
return false ;
|
||||
}
|
||||
// se curva non valida, provo con estensione lineare ( TODO : arco ?)
|
||||
else {
|
||||
@@ -3599,8 +3603,10 @@ PocketingNT::CalcPaths( STEPINFOPOVECTOR& vStepInfo)
|
||||
if ( GetLeadInType() == POCKET_LI_GLIDE) {
|
||||
PtrOwner<ICurveComposite> pCrvGlideIn( CreateCurveComposite()) ;
|
||||
if ( IsNull( pCrvGlideIn) ||
|
||||
! CalcLeadInOutGlide( vStepInfo[i].vPaths[j], vStepInfo[i], vCrvPaths[j], true, pCrvGlideIn))
|
||||
! CalcLeadInOutGlide( vStepInfo[i].vPaths[j], vStepInfo[i], vCrvPaths[j], true, pCrvGlideIn)) {
|
||||
m_pMchMgr->SetLastError( 2415, "Error in PocketingNT : LeadIn not computable") ;
|
||||
return false ;
|
||||
}
|
||||
if ( ! IsNull( pCrvGlideIn) && pCrvGlideIn->IsValid())
|
||||
if ( ! vStepInfo[i].vPaths[j].pCrvGlideIn.Set( Release( pCrvGlideIn)))
|
||||
return false ;
|
||||
@@ -3609,8 +3615,10 @@ PocketingNT::CalcPaths( STEPINFOPOVECTOR& vStepInfo)
|
||||
if ( GetLeadOutType() == POCKET_LO_GLIDE) {
|
||||
PtrOwner<ICurveComposite> pCrvGlideOut( CreateCurveComposite()) ;
|
||||
if ( IsNull( pCrvGlideOut) ||
|
||||
! CalcLeadInOutGlide( vStepInfo[i].vPaths[j], vStepInfo[i], vCrvPaths[j], false, pCrvGlideOut))
|
||||
! CalcLeadInOutGlide( vStepInfo[i].vPaths[j], vStepInfo[i], vCrvPaths[j], false, pCrvGlideOut)) {
|
||||
m_pMchMgr->SetLastError( 2416, "Error in PocketingNT : LeadOut not computable") ;
|
||||
return false ;
|
||||
}
|
||||
if ( ! IsNull( pCrvGlideOut) && pCrvGlideOut->IsValid())
|
||||
if ( ! vStepInfo[i].vPaths[j].pCrvGlideOut.Set( Release( pCrvGlideOut)))
|
||||
return false ;
|
||||
|
||||
Reference in New Issue
Block a user