EgtMachKernel 2.1l5 :

- corretta fresatura su contorno chiuso con overlap ed attacco/uscita ad inseguimento.
This commit is contained in:
Dario Sassi
2019-12-17 16:45:10 +00:00
parent e5e31285af
commit 71c04f4987
2 changed files with 17 additions and 3 deletions
BIN
View File
Binary file not shown.
+17 -3
View File
@@ -3406,7 +3406,7 @@ Milling::CalcLeadInStart( const Point3d& ptStart, const Vector3d& vtStart, const
}
else {
double dU ;
if ( ! pCompo->GetParamAtLength( dTang, dU) ||
if ( ! pCompo->GetParamAtLength( m_dAddedOverlap + dTang, dU) ||
! pCompo->GetPointD1D2( dU, ICurve::FROM_MINUS, ptP1)) {
if ( ! pCompo->GetEndPoint( ptP1))
return false ;
@@ -3483,6 +3483,11 @@ Milling::AddLeadIn( const Point3d& ptP1, const Point3d& ptStart, const Vector3d&
pCompo->GetDomain( dParS, dParE) ;
if ( ! pCrv.Set( CreateCurveComposite()) || ! pCrv->AddCurve( pCompo->CopyParamRange( dU, dParE)))
return false ;
if ( m_dAddedOverlap > EPS_SMALL) {
pCrv->Invert() ;
pCrv->TrimStartAtLen( m_dAddedOverlap) ;
pCrv->Invert() ;
}
}
else {
if ( ! pCrv.Set( pCompo->Clone()))
@@ -3491,9 +3496,11 @@ Milling::AddLeadIn( const Point3d& ptP1, const Point3d& ptStart, const Vector3d&
}
else {
double dU ;
if ( pCompo->GetParamAtLength( dTang, dU)) {
if ( pCompo->GetParamAtLength( m_dAddedOverlap + dTang, dU)) {
if ( ! pCrv.Set( CreateCurveComposite()) || ! pCrv->AddCurve( pCompo->CopyParamRange( 0, dU)))
return false ;
if ( m_dAddedOverlap > EPS_SMALL)
pCrv->TrimStartAtLen( m_dAddedOverlap) ;
}
else {
if ( ! pCrv.Set( pCompo->Clone()))
@@ -3648,9 +3655,11 @@ Milling::AddLeadOut( const Point3d& ptEnd, const Vector3d& vtEnd, const Vector3d
PtrOwner<ICurveComposite> pCrv ;
if ( ! bInvert) {
double dU ;
if ( pCompo->GetParamAtLength( dTang, dU)) {
if ( pCompo->GetParamAtLength( m_dAddedOverlap + dTang, dU)) {
if ( ! pCrv.Set( CreateCurveComposite()) || ! pCrv->AddCurve( pCompo->CopyParamRange( 0, dU)))
return false ;
if ( m_dAddedOverlap > EPS_SMALL)
pCrv->TrimStartAtLen( m_dAddedOverlap) ;
}
else {
if ( ! pCrv.Set( pCompo->Clone()))
@@ -3664,6 +3673,11 @@ Milling::AddLeadOut( const Point3d& ptEnd, const Vector3d& vtEnd, const Vector3d
pCompo->GetDomain( dParS, dParE) ;
if ( ! pCrv.Set( CreateCurveComposite()) || ! pCrv->AddCurve( pCompo->CopyParamRange( dU, dParE)))
return false ;
if ( m_dAddedOverlap > EPS_SMALL) {
pCrv->Invert() ;
pCrv->TrimStartAtLen( m_dAddedOverlap) ;
pCrv->Invert() ;
}
}
else {
if ( ! pCrv.Set( pCompo->Clone()))