EgtMachKernel 3.1d4 :

- in fresatura con lama a ZigZag con SideStep correzione per attacco/uscita sbagliati con numero pari di step.
This commit is contained in:
Dario Sassi
2026-04-15 19:03:44 +02:00
parent 47951fc21e
commit 20b56583c3
2 changed files with 10 additions and 4 deletions
+10 -4
View File
@@ -4034,8 +4034,9 @@ Milling::AddSawZigZagMilling( const ICurveComposite* pCompo, const Vector3d& vtT
}
bool bAdjustLoPerp = ( m_Params.m_dLoPerp > 10 * EPS_SMALL) ;
if ( bAdjustLoPerp) {
m_Params.m_dLoTang = 0 ;
m_Params.m_dLoPerp = 0. ;
double dNewLoPerp = max( 0., m_Params.m_dLoPerp - ( nStep - 1) * dStep) ;
m_Params.m_dLoTang *= dNewLoPerp / m_Params.m_dLoPerp ;
m_Params.m_dLoPerp = dNewLoPerp ;
}
// ciclo sugli step
@@ -4059,11 +4060,16 @@ Milling::AddSawZigZagMilling( const ICurveComposite* pCompo, const Vector3d& vtT
if ( ! TrimExtendCurveToClosedStm( pMyCompo, nTriExtCstm, bInvert))
pMyCompo.Set( pMyCopy) ;
}
// dopo primo step annullo parametri di attacco
if ( j > 1 && bAdjustLiPerp) {
// se necessario e invertito oppure step successivo annullo parametri di attacco
if ( bAdjustLiPerp && ( bInvert || j == 2)) {
m_Params.m_dLiPerp = 0. ;
m_Params.m_dLiTang = 0. ;
}
// se necessario e non invertito oppure step successivo annullo parametri di uscita
if ( bAdjustLoPerp && ( ! bInvert || j == 2)) {
m_Params.m_dLoPerp = 0. ;
m_Params.m_dLoTang = 0. ;
}
// ciclo sulle curve elementari
int nMaxInd = pMyCompo->GetCurveCount() - 1 ;
for ( int i = 0 ; i <= nMaxInd ; ++ i) {