From 09bdd4852dca8409ae2dedd8b3dc02583a21fcad Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Mon, 19 Feb 2024 17:16:14 +0100 Subject: [PATCH] EgtMachKernel : - corretto controllo catena cinematica in assenza di assi lineari (eliminato anche possibile crash). --- MachineCalc.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/MachineCalc.cpp b/MachineCalc.cpp index c64028d..c9e1289 100644 --- a/MachineCalc.cpp +++ b/MachineCalc.cpp @@ -490,10 +490,17 @@ Machine::CalculateKinematicChain( void) nHParId = m_pGeomDB->GetParentId( nHParId) ; } + // se non ci sono assi, né lineari né rotanti, sicuramente errore + if ( m_nTabLinAxes == 0 && m_nHeadLinAxes == 0 && + m_nTabRotAxes == 0 && m_nHeadRotAxes == 0) { + LOG_ERROR( GetEMkLogger(), "Errors in Axes : none have been found") + return false ; + } + // se nessun asse lineare deve essere un robot (in futuro va permesso un lineare di tavola) if ( m_nTabLinAxes == 0 && m_nHeadLinAxes == 0) { // verifico ci siano 6 assi rotanti tutti di testa (in futuro va permesso un rotante di tavola) - if ( m_nTabRotAxes != 0 && m_nHeadRotAxes != 6) { + if ( m_nTabRotAxes != 0 || m_nHeadRotAxes != 6) { LOG_ERROR( GetEMkLogger(), "Robot with errors in Rotary Axes : number or type") return false ; }