From 4a1ae0de846d73e622ef7785806b79a9e6064d07 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Fri, 8 May 2026 11:11:20 +0200 Subject: [PATCH] =?UTF-8?q?EgtMachKernel=203.1e2=20:=20-=20correzione=20sc?= =?UTF-8?q?elta=20angoli=20pi=C3=B9=20vicini=20a=20iniziale=20quando=20imp?= =?UTF-8?q?osto=20anche=20MaxDeltaR2OnFirst=20-=20correzione=20gestione=20?= =?UTF-8?q?soluzione=20indeterminata=20quando=20si=20=C3=A8=20nel=20cono?= =?UTF-8?q?=20dichiarato=20di=20singolarit=C3=A0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- EgtMachKernel.rc | Bin 11774 -> 11774 bytes GeoCalc.cpp | 9 +++++++-- Operation.cpp | 9 +++++---- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/EgtMachKernel.rc b/EgtMachKernel.rc index 9436fcaba6bc23cb05176c85f35ba5f6a0c78c0b..43a38469eb2afe47673c3ed79e7eff3684227cd0 100644 GIT binary patch delta 236 zcmewt{V#gMI%aKGhCGIJh8%`WhGK>c1_cHUhESkLCPN8BDnkm89}HwAf_cT0IklxX ze_&=~W;ELTUhX2(<& nF)y2}rOv|(a;PWRX*mp)AcsxGetCurrRot1W() : 1) ; dDelta2 += abs( vAng2[i] - vAxRotPrec[i]) * ( bFirst ? pMachine->GetCurrRot1W() : 1) ; } - if ( bAng2 && ( dDelta2 < dDelta1 - EPS_ANG_SMALL || ! bAng1)) + if ( bAng2 && ( dDelta2 < dDelta1 - 10 * EPS_ANG_SMALL || ! bAng1)) swap( vAng1, vAng2) ; // se imposto limite su variazione di secondo asse rotante if ( ( pMachine->GetCurrCalcMaxDeltaR2OnFirst() || ! bFirst) && dMaxDeltaR2 > EPS_ANG_SMALL && vAng1.size() >= 2) { - double dR2Diff1 = vAng1[1] - vAxRotPrec[1] ; - double dR2Diff2 = vAng2[1] - vAxRotPrec[1] ; - if ( abs( dR2Diff1) > abs( dR2Diff2) && abs( dR2Diff1) > dMaxDeltaR2) + double dR2Diff1 = abs( vAng1[1] - vAxRotPrec[1]) ; + double dR2Diff2 = abs( vAng2[1] - vAxRotPrec[1]) ; + if ( dR2Diff1 > dR2Diff2 + 10 * EPS_ANG_SMALL && + dR2Diff1 > dMaxDeltaR2 && ( dR2Diff2 < dMaxDeltaR2 || dR2Diff2 < dR2Diff1 - dMaxDeltaR2)) swap( vAng1, vAng2) ; } }