EgtMachKernel :
- quando si scelgono gli angoli del robot se inizio si accetta di passare anche da direzione singolare (movimento in aria).
This commit is contained in:
+3
-4
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user