From e8e757d4bd98e9954f5af3ba3fd39947cb98b531 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Fri, 17 Apr 2026 17:30:35 +0200 Subject: [PATCH] EgtMachKernel : - corretto Double di CamData con arco (non faceva il mirror della normale) - in CL aggiunto info su tipo di catena cinematica (KINTYPE=0/1/2). --- CamData.cpp | 2 ++ Operation.cpp | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CamData.cpp b/CamData.cpp index 65a8eff..1c42a48 100644 --- a/CamData.cpp +++ b/CamData.cpp @@ -473,6 +473,8 @@ CamData::Mirror( const Point3d& ptOn, const Vector3d& vtNorm) if ( ! m_ptCen.Mirror( ptOn, vtNorm)) return false ; m_dAngCen = - m_dAngCen ; + if ( ! m_vtN.Mirror( vtNorm)) + return false ; if ( ! m_vtTool.Mirror( vtNorm)) return false ; if ( ! m_vtCorr.Mirror( vtNorm)) diff --git a/Operation.cpp b/Operation.cpp index d4f17fd..12a79bb 100644 --- a/Operation.cpp +++ b/Operation.cpp @@ -1917,6 +1917,7 @@ Operation::CalculateAxesValues( const string& sHint, bool bSolChExact, double dS // calcolo il valore degli assi macchina di tutti i movimenti bool bOk = true ; if ( pMch->GetCurrKinematicChainType() == KIN_CHAIN_MCENT) { + m_pGeomDB->SetInfo( nClId, KEY_KINTYPE, KIN_CHAIN_MCENT) ; int nClPathId = m_pGeomDB->GetFirstGroupInGroup( nClId) ; while ( nClPathId != GDB_ID_NULL) { if ( ! CalculateClPathMcentAxesValues( nClPathId, dAngDeltaMinForHome, vAxRotHome, vAxRotPrec)) @@ -1925,6 +1926,7 @@ Operation::CalculateAxesValues( const string& sHint, bool bSolChExact, double dS } } else if ( pMch->GetCurrKinematicChainType() == KIN_CHAIN_ROBOT) { + m_pGeomDB->SetInfo( nClId, KEY_KINTYPE, KIN_CHAIN_ROBOT) ; int nClPathId = m_pGeomDB->GetFirstGroupInGroup( nClId) ; while ( nClPathId != GDB_ID_NULL) { if ( ! CalculateClPathRobotAxesValues( nClPathId, dAngDeltaMinForHome, vAxRotHome, vAxRotPrec)) @@ -1932,8 +1934,10 @@ Operation::CalculateAxesValues( const string& sHint, bool bSolChExact, double dS nClPathId = m_pGeomDB->GetNextGroup( nClPathId) ; } } - else + else { + m_pGeomDB->SetInfo( nClId, KEY_KINTYPE, KIN_CHAIN_NONE) ; bOk = false ; + } return bOk ; }