EgtMachKernel :

- al carico macchina correzione aggiustamento assi rotanti geometrici per simulazione quando angolo di rotazione da teorici è molto piccolo
- al carico macchina quando si ruotano assi rotanti e richiesto ora si ruota anche geometria ausiliaria.
This commit is contained in:
Dario Sassi
2026-08-18 13:33:41 +02:00
parent ff126a8877
commit 4957e09abe
2 changed files with 33 additions and 18 deletions
+6 -6
View File
@@ -1401,11 +1401,11 @@ Machine::GetMyAngles( const Vector3d& vtDirT, const Vector3d& vtDirA,
vtTool.Rotate( RotAx2.vtDir, dAngB1) ;
vtTool.Rotate( RotAx1.vtDir, dAngA1) ;
bool bDetC1 ;
if ( ! vtTool.GetRotation( vtDirTn, vtR3, EPS_SMALL, dAngC1, bDetC1) || ! bDetC1) {
if ( ! vtTool.GetRotation( vtDirTn, vtR3, SIN_EPS_ANG_SMALL, dAngC1, bDetC1) || ! bDetC1) {
Vector3d vtAux = vtDirI ;
vtAux.Rotate( RotAx2.vtDir, dAngB1) ;
vtAux.Rotate( RotAx1.vtDir, dAngA1) ;
if ( ! vtAux.GetRotation( vtDirAn, vtR3, EPS_SMALL, dAngC1, bDetC1) || ! bDetC1) {
if ( ! vtAux.GetRotation( vtDirAn, vtR3, SIN_EPS_ANG_SMALL, dAngC1, bDetC1) || ! bDetC1) {
LOG_ERROR( GetEMkLogger(), "Error : R3 not calculable (machine)")
return false ;
}
@@ -2398,7 +2398,7 @@ Machine::GetRobotAngles( const Point3d& ptP, const Vector3d& vtDirT, const Vecto
// calcolo il primo asse rotante
Vector3d vtArm = ptCen - m_vCalcRotAx[0].ptPos ;
double dAng1 ; bool bDet1 ;
if ( ! X_AX.GetRotation( vtArm, m_vCalcRotAx[0].vtDir, EPS_SMALL, dAng1, bDet1) || ! bDet1) {
if ( ! X_AX.GetRotation( vtArm, m_vCalcRotAx[0].vtDir, SIN_EPS_ANG_SMALL, dAng1, bDet1) || ! bDet1) {
LOG_ERROR( GetEMkLogger(), "Error : direction unreachable (robot)")
return false ;
}
@@ -2430,7 +2430,7 @@ Machine::GetRobotAngles( const Point3d& ptP, const Vector3d& vtDirT, const Vecto
}
double dAngB = acos( dCosB) * RADTODEG ;
double dAng2 ; bool bDet2 ;
if ( ! Z_AX.GetRotation( vtR2Cen, vtR2, EPS_SMALL, dAng2, bDet2) || ! bDet2) {
if ( ! Z_AX.GetRotation( vtR2Cen, vtR2, SIN_EPS_ANG_SMALL, dAng2, bDet2) || ! bDet2) {
LOG_ERROR( GetEMkLogger(), "Error : R2 not calculable (robot)")
return false ;
}
@@ -2472,11 +2472,11 @@ Machine::GetRobotAngles( const Point3d& ptP, const Vector3d& vtDirT, const Vecto
for ( int i = 4; i >= 0 ; --i)
vtTool.Rotate( m_vCalcRotAx[i].vtDir, vAng1[i]) ;
double dAng6 ; bool bDet6 ;
if ( ! vtTool.GetRotation( vtDirTL, vtR6, EPS_SMALL, dAng6, bDet6) || ! bDet6) {
if ( ! vtTool.GetRotation( vtDirTL, vtR6, SIN_EPS_ANG_SMALL, dAng6, bDet6) || ! bDet6) {
Vector3d vtAux = m_vtCalcADir ;
for ( int i = 4; i >= 0 ; --i)
vtAux.Rotate( m_vCalcRotAx[i].vtDir, vAng1[i]) ;
if ( ! vtAux.GetRotation( vtDirAL, vtR6, EPS_SMALL, dAng6, bDet6) || ! bDet6) {
if ( ! vtAux.GetRotation( vtDirAL, vtR6, SIN_EPS_ANG_SMALL, dAng6, bDet6) || ! bDet6) {
LOG_ERROR( GetEMkLogger(), "Error : R6 not calculable (robot)")
return false ;
}