From b1e7534b288ff2d54d624505f8f3835dfe82b8e0 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Sun, 17 May 2026 19:28:09 +0200 Subject: [PATCH] EgtMachKernel : - quando si scelgono gli angoli del robot se inizio si accetta di passare anche da direzione singolare (movimento in aria). --- Operation.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Operation.cpp b/Operation.cpp index 62f01f4..a60e7af 100644 --- a/Operation.cpp +++ b/Operation.cpp @@ -2876,7 +2876,6 @@ Operation::CalculateRobotAxesValues( bool bFirst, const Point3d& ptP, const Vect if ( abs( vAng2[i] - vAxRotPrec[i]) > dAngDeltaMinForHome) pMachine->GetNearestAngleInStroke( i, vAxRotHome[i], vAng2[i]) ; } - bFirst = false ; } // altrimenti movimenti successivi else { @@ -2925,10 +2924,10 @@ Operation::CalculateRobotAxesValues( bool bFirst, const Point3d& ptP, const Vect // se esiste solo la prima if ( vAng2.empty()) vAxVal = vAng1 ; - // evito passaggio per lo zero di R5 (per evitare passaggio attraverso direzione singolare) - else if ( vAng1[4] * vAxRotPrec[4] >= 0 && vAng2[4] * vAxRotPrec[4] < 0) + // se non รจ inizio, evito passaggio per lo zero di R5 (per evitare passaggio attraverso direzione singolare) + else if ( ! bFirst && vAng1[4] * vAxRotPrec[4] >= 0 && vAng2[4] * vAxRotPrec[4] < 0) vAxVal = vAng1 ; - else if ( vAng1[4] * vAxRotPrec[4] < 0 && vAng2[4] * vAxRotPrec[4] >= 0) + else if ( ! bFirst && vAng1[4] * vAxRotPrec[4] < 0 && vAng2[4] * vAxRotPrec[4] >= 0) vAxVal = vAng2 ; // minimizzo rotazione polso else if ( abs( vAng1[3] - vAxRotPrec[3]) < abs( vAng2[3] - vAxRotPrec[3]) + 10 * EPS_ANG_SMALL)