From f701828a259931538efca5a4ed9bf7f27194a2bc Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Wed, 3 Apr 2024 08:14:20 +0200 Subject: [PATCH] EgtMachKernel : - aggiunta a MachMgr funzione GetClEntAxesMask - gestione emissione in generazione/simulazione/stima di tutti gli assi rotanti del robot. --- MachMgr.h | 4 +- MachMgrClEntities.cpp | 18 +++++ Operation.cpp | 22 +++--- OutputConst.h | 156 ++++++++++++++++++++++++++++++------------ Processor.cpp | 24 ++++--- Simulator.cpp | 18 ++--- 6 files changed, 170 insertions(+), 72 deletions(-) diff --git a/MachMgr.h b/MachMgr.h index e1808ca..c360638 100644 --- a/MachMgr.h +++ b/MachMgr.h @@ -1,7 +1,7 @@ //---------------------------------------------------------------------------- // EgalTech 2015-2024 //---------------------------------------------------------------------------- -// File : MachMgr.h Data : 30.03.24 Versione : 2.6d1 +// File : MachMgr.h Data : 02.04.24 Versione : 2.6d1 // Contenuto : Dichiarazione della classe MachMgr. // // @@ -14,6 +14,7 @@ // 25.08.23 DS Aggiunta CopyMachGroup. // 28.10.23 DS Aggiunte GetClEntAxesVal e GetToolSetupPosInCurrSetup. // 30.03.24 DS Aggiunte GetAllAxesNames e GetCalcTable. +// 02.04.24 DS Aggiunta GetClEntAxesMask. // //---------------------------------------------------------------------------- @@ -309,6 +310,7 @@ class MachMgr : public IMachMgr bool GetClEntMove( int nEntId, int& nMove) const override ; bool GetClEntFlag( int nEntId, int& nFlag, int& nFlag2) const override ; bool GetClEntIndex( int nEntId, int& nIndex) const override ; + bool GetClEntAxesMask( int nEntId, int& nMask) const override ; bool GetClEntAxesVal( int nEntId, DBLVECTOR& vAxes) const override ; // Simulation bool SimInit( void) override ; diff --git a/MachMgrClEntities.cpp b/MachMgrClEntities.cpp index 5a684d5..85d991e 100644 --- a/MachMgrClEntities.cpp +++ b/MachMgrClEntities.cpp @@ -75,6 +75,24 @@ MachMgr::GetClEntIndex( int nEntId, int& nIndex) const return true ; } +//---------------------------------------------------------------------------- +bool +MachMgr::GetClEntAxesMask( int nEntId, int& nMask) const +{ + // default + nMask = 0 ; + // verifico validita GeomDB + if ( m_pGeomDB == nullptr) + return false ; + // recupero l'oggetto CamData + const CamData* pCamData = GetCamData( m_pGeomDB->GetUserObj( nEntId)) ; + if ( pCamData == nullptr) + return false ; + // recupero il tipo di movimento + nMask = pCamData->GetAxesMask() ; + return true ; +} + //---------------------------------------------------------------------------- bool MachMgr::GetClEntAxesVal( int nEntId, DBLVECTOR& vAxes) const diff --git a/Operation.cpp b/Operation.cpp index e4c54ff..317cef4 100644 --- a/Operation.cpp +++ b/Operation.cpp @@ -3649,10 +3649,11 @@ Operation::SpecialGetMaxZ( const DBLVECTOR& vAx1, const Vector3d& vtTool1, bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + GVAR_TCPOS, GetToolTcPos()) ; bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + GVAR_MCHID, GetOwner()) ; // valori degli assi + bool bIsRobot = m_pMchMgr->GetCurrIsRobot() ; for ( int i = 1 ; i <= nNumAx1 ; ++ i) - bOk = bOk && pMch->LuaSetGlobVar( GetGlobVarAxisPrev( i, EMC_VAR), vAx1[i-1]) ; + bOk = bOk && pMch->LuaSetGlobVar( GetGlobVarAxisPrev( i, EMC_VAR, bIsRobot), vAx1[i-1]) ; for ( int i = 1 ; i <= nNumAx2 ; ++ i) - bOk = bOk && pMch->LuaSetGlobVar( GetGlobVarAxisValue( i, EMC_VAR), vAx2[i-1]) ; + bOk = bOk && pMch->LuaSetGlobVar( GetGlobVarAxisValue( i, EMC_VAR, bIsRobot), vAx2[i-1]) ; // direzioni utensile bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + GVAR_TDIRP, vtTool1) ; bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + GVAR_TDIR, vtTool2) ; @@ -4052,10 +4053,11 @@ Operation::SpecialTestCollisionAvoid( const DBLVECTOR& vAxStart, const DBLVECTOR bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + GVAR_TCPOS, GetToolTcPos()) ; bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + GVAR_MCHID, GetOwner()) ; // valori degli assi + bool bIsRobot = m_pMchMgr->GetCurrIsRobot() ; for ( int i = 1 ; i <= int( vAxStart.size()) ; ++ i) - bOk = bOk && pMch->LuaSetGlobVar( GetGlobVarAxisPrev( i, EMC_VAR), vAxStart[i-1]) ; + bOk = bOk && pMch->LuaSetGlobVar( GetGlobVarAxisPrev( i, EMC_VAR, bIsRobot), vAxStart[i-1]) ; for ( int i = 1 ; i <= int( vAxEnd.size()) ; ++ i) - bOk = bOk && pMch->LuaSetGlobVar( GetGlobVarAxisValue( i, EMC_VAR), vAxEnd[i-1]) ; + bOk = bOk && pMch->LuaSetGlobVar( GetGlobVarAxisValue( i, EMC_VAR, bIsRobot), vAxEnd[i-1]) ; // eseguo bOk = bOk && pMch->LuaCallFunction( ON_SPECIAL_TESTCOLLISIONAVOID, false) ; // recupero valori parametri obbligatori @@ -4102,9 +4104,10 @@ Operation::SpecialMoveZup( DBLVECTOR& vAx, Vector3d& vtTool, int& nFlag, int& nF // direzione utensile bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + GVAR_TDIR, vtTool) ; // valore degli assi + bool bIsRobot = m_pMchMgr->GetCurrIsRobot() ; int nNumAxes = int( vAx.size()) ; for ( int i = 1 ; i <= nNumAxes ; ++ i) - bOk = bOk && pMch->LuaSetGlobVar( GetGlobVarAxisValue( i, EMC_VAR), vAx[i-1]) ; + bOk = bOk && pMch->LuaSetGlobVar( GetGlobVarAxisValue( i, EMC_VAR, bIsRobot), vAx[i-1]) ; // eseguo bOk = bOk && pMch->LuaCallFunction( ON_SPECIAL_MOVEZUP, false) ; // recupero valori parametri obbligatori @@ -4114,7 +4117,7 @@ Operation::SpecialMoveZup( DBLVECTOR& vAx, Vector3d& vtTool, int& nFlag, int& nF bOk = bOk && pMch->LuaGetGlobVar( EMC_VAR + GVAR_FLAG2, nFlag2) ; bOk = bOk && pMch->LuaGetGlobVar( EMC_VAR + GVAR_TDIR, vtTool) ; for ( int i = 1 ; i <= nNumAxes ; ++ i) - bOk = bOk && pMch->LuaGetGlobVar( GetGlobVarAxisValue( i, EMC_VAR), vAx[i-1]) ; + bOk = bOk && pMch->LuaGetGlobVar( GetGlobVarAxisValue( i, EMC_VAR, bIsRobot), vAx[i-1]) ; // reset bOk = bOk && pMch->LuaResetGlobVar( EMC_VAR) ; // segnalo errori @@ -4156,11 +4159,12 @@ Operation::SpecialMoveRapid( const DBLVECTOR& vAxStart, const DBLVECTOR& vAxEnd, bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + GVAR_EXIT, GetExitNbr()) ; bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + GVAR_TCPOS, GetToolTcPos()) ; // valore degli assi + bool bIsRobot = m_pMchMgr->GetCurrIsRobot() ; int nNumAxes = int( vAxStart.size()) ; for ( int i = 1 ; i <= nNumAxes ; ++ i) - bOk = bOk && pMch->LuaSetGlobVar( GetGlobVarAxisPrev( i, EMC_VAR), vAxStart[i-1]) ; + bOk = bOk && pMch->LuaSetGlobVar( GetGlobVarAxisPrev( i, EMC_VAR, bIsRobot), vAxStart[i-1]) ; for ( int i = 1 ; i <= nNumAxes ; ++ i) - bOk = bOk && pMch->LuaSetGlobVar( GetGlobVarAxisValue( i, EMC_VAR), vAxEnd[i-1]) ; + bOk = bOk && pMch->LuaSetGlobVar( GetGlobVarAxisValue( i, EMC_VAR, bIsRobot), vAxEnd[i-1]) ; // eseguo bOk = bOk && pMch->LuaCallFunction( ON_SPECIAL_MOVERAPID, false) ; // recupero valori parametri obbligatori @@ -4168,7 +4172,7 @@ Operation::SpecialMoveRapid( const DBLVECTOR& vAxStart, const DBLVECTOR& vAxEnd, bOk = bOk && pMch->LuaGetGlobVar( EMC_VAR + EVAR_MODIF, bModif) ; vAxNew.resize( nNumAxes) ; for ( int i = 1 ; i <= nNumAxes ; ++ i) - bOk = bOk && pMch->LuaGetGlobVar( GetGlobVarAxisValue( i, EMC_VAR), vAxNew[i-1]) ; + bOk = bOk && pMch->LuaGetGlobVar( GetGlobVarAxisValue( i, EMC_VAR, bIsRobot), vAxNew[i-1]) ; // reset bOk = bOk && pMch->LuaResetGlobVar( EMC_VAR) ; // segnalo errori diff --git a/OutputConst.h b/OutputConst.h index d0e27b0..dcc2bb8 100644 --- a/OutputConst.h +++ b/OutputConst.h @@ -103,6 +103,9 @@ static const std::string GVAR_R1 = ".R1" ; // (num) valore de static const std::string GVAR_R2 = ".R2" ; // (num) valore del secondo asse rotante static const std::string GVAR_R3 = ".R3" ; // (num) valore del terzo asse rotante static const std::string GVAR_R4 = ".R4" ; // (num) valore del quarto asse rotante +static const std::string GVAR_R5 = ".R5" ; // (num) valore del quinto asse rotante +static const std::string GVAR_R6 = ".R6" ; // (num) valore del sesto asse rotante +static const std::string GVAR_R7 = ".R7" ; // (num) valore del settimo asse rotante static const std::string GVAR_C1 = ".C1" ; // (num) valore del primo asse lineare per centro arco static const std::string GVAR_C2 = ".C2" ; // (num) valore del secondo asse lineare per centro arco static const std::string GVAR_C3 = ".C3" ; // (num) valore del terzo asse lineare per centro arco @@ -118,6 +121,9 @@ static const std::string GVAR_R1P = ".R1p" ; // (num) valore pr static const std::string GVAR_R2P = ".R2p" ; // (num) valore precedente del secondo asse rotante static const std::string GVAR_R3P = ".R3p" ; // (num) valore precedente del terzo asse rotante static const std::string GVAR_R4P = ".R4p" ; // (num) valore precedente del quarto asse rotante +static const std::string GVAR_R5P = ".R5p" ; // (num) valore precedente del quinto asse rotante +static const std::string GVAR_R6P = ".R6p" ; // (num) valore precedente del sesto asse rotante +static const std::string GVAR_R7P = ".R7p" ; // (num) valore precedente del settimo asse rotante static const std::string GVAR_L1T = ".L1t" ; // (string) token del primo asse lineare static const std::string GVAR_L2T = ".L2t" ; // (string) token del secondo asse lineare static const std::string GVAR_L3T = ".L3t" ; // (string) token del terzo asse lineare @@ -125,6 +131,9 @@ static const std::string GVAR_R1T = ".R1t" ; // (string) token del static const std::string GVAR_R2T = ".R2t" ; // (string) token del secondo asse rotante static const std::string GVAR_R3T = ".R3t" ; // (string) token del terzo asse rotante static const std::string GVAR_R4T = ".R4t" ; // (string) token del quarto asse rotante +static const std::string GVAR_R5T = ".R5t" ; // (string) token del quinto asse rotante +static const std::string GVAR_R6T = ".R6t" ; // (string) token del sesto asse rotante +static const std::string GVAR_R7T = ".R7t" ; // (string) token del settimo asse rotante static const std::string GVAR_C1T = ".C1t" ; // (string) token del primo asse lineare per centro arco static const std::string GVAR_C2T = ".C2t" ; // (string) token del secondo asse lineare per centro arco static const std::string GVAR_C3T = ".C3t" ; // (string) token del terzo asse lineare per centro arco @@ -139,6 +148,9 @@ static const std::string GVAR_R1N = ".R1n" ; // (string) nome del static const std::string GVAR_R2N = ".R2n" ; // (string) nome del secondo asse rotante static const std::string GVAR_R3N = ".R3n" ; // (string) nome del terzo asse rotante static const std::string GVAR_R4N = ".R4n" ; // (string) nome del quarto asse rotante +static const std::string GVAR_R5N = ".R5n" ; // (string) nome del quinto asse rotante +static const std::string GVAR_R6N = ".R6n" ; // (string) nome del sesto asse rotante +static const std::string GVAR_R7N = ".R7n" ; // (string) nome del settimo asse rotante static const std::string GVAR_MASK = ".MASK" ; // (int) mask associato ai movimenti in rapido static const std::string GVAR_FLAG = ".FLAG" ; // (int) flag associato ad ogni movimento static const std::string GVAR_FLAG2 = ".FLAG2" ; // (int) secondo flag associato ad ogni movimento @@ -229,64 +241,120 @@ static const std::string ON_RESET_MACHINE = "OnResetMachine" ; //---------------------------------------------------------------------------- inline std::string -GetGlobVarAxisValue( int nAx, const std::string& sVar = GLOB_VAR) +GetGlobVarAxisValue( int nAx, const std::string& sVar = GLOB_VAR, bool bIsRobot = false) { - switch ( nAx) { - case 1 : return ( sVar + GVAR_L1) ; - case 2 : return ( sVar + GVAR_L2) ; - case 3 : return ( sVar + GVAR_L3) ; - case 4 : return ( sVar + GVAR_R1) ; - case 5 : return ( sVar + GVAR_R2) ; - case 6 : return ( sVar + GVAR_R3) ; - case 7 : return ( sVar + GVAR_R4) ; - default : return "" ; - } + if ( ! bIsRobot) { + switch ( nAx) { + case 1 : return ( sVar + GVAR_L1) ; + case 2 : return ( sVar + GVAR_L2) ; + case 3 : return ( sVar + GVAR_L3) ; + case 4 : return ( sVar + GVAR_R1) ; + case 5 : return ( sVar + GVAR_R2) ; + case 6 : return ( sVar + GVAR_R3) ; + case 7 : return ( sVar + GVAR_R4) ; + default : return "" ; + } + } + else { + switch ( nAx) { + case 1 : return ( sVar + GVAR_R1) ; + case 2 : return ( sVar + GVAR_R2) ; + case 3 : return ( sVar + GVAR_R3) ; + case 4 : return ( sVar + GVAR_R4) ; + case 5 : return ( sVar + GVAR_R5) ; + case 6 : return ( sVar + GVAR_R6) ; + case 7 : return ( sVar + GVAR_R7) ; + default : return "" ; + } + } } //---------------------------------------------------------------------------- inline std::string -GetGlobVarAxisPrev( int nAx, const std::string& sVar = GLOB_VAR) +GetGlobVarAxisPrev( int nAx, const std::string& sVar = GLOB_VAR, bool bIsRobot = false) { - switch ( nAx) { - case 1 : return ( sVar + GVAR_L1P) ; - case 2 : return ( sVar + GVAR_L2P) ; - case 3 : return ( sVar + GVAR_L3P) ; - case 4 : return ( sVar + GVAR_R1P) ; - case 5 : return ( sVar + GVAR_R2P) ; - case 6 : return ( sVar + GVAR_R3P) ; - case 7 : return ( sVar + GVAR_R4P) ; - default : return "" ; - } + if ( ! bIsRobot) { + switch ( nAx) { + case 1 : return ( sVar + GVAR_L1P) ; + case 2 : return ( sVar + GVAR_L2P) ; + case 3 : return ( sVar + GVAR_L3P) ; + case 4 : return ( sVar + GVAR_R1P) ; + case 5 : return ( sVar + GVAR_R2P) ; + case 6 : return ( sVar + GVAR_R3P) ; + case 7 : return ( sVar + GVAR_R4P) ; + default : return "" ; + } + } + else { + switch ( nAx) { + case 1 : return ( sVar + GVAR_R1P) ; + case 2 : return ( sVar + GVAR_R2P) ; + case 3 : return ( sVar + GVAR_R3P) ; + case 4 : return ( sVar + GVAR_R4P) ; + case 5 : return ( sVar + GVAR_R5P) ; + case 6 : return ( sVar + GVAR_R6P) ; + case 7 : return ( sVar + GVAR_R7P) ; + default : return "" ; + } + } } //---------------------------------------------------------------------------- inline std::string -GetGlobVarAxisToken( int nAx) +GetGlobVarAxisToken( int nAx, bool bIsRobot = false) { - switch ( nAx) { - case 1 : return ( GLOB_VAR + GVAR_L1T) ; - case 2 : return ( GLOB_VAR + GVAR_L2T) ; - case 3 : return ( GLOB_VAR + GVAR_L3T) ; - case 4 : return ( GLOB_VAR + GVAR_R1T) ; - case 5 : return ( GLOB_VAR + GVAR_R2T) ; - case 6 : return ( GLOB_VAR + GVAR_R3T) ; - case 7 : return ( GLOB_VAR + GVAR_R4T) ; - default : return "" ; - } + if ( ! bIsRobot) { + switch ( nAx) { + case 1 : return ( GLOB_VAR + GVAR_L1T) ; + case 2 : return ( GLOB_VAR + GVAR_L2T) ; + case 3 : return ( GLOB_VAR + GVAR_L3T) ; + case 4 : return ( GLOB_VAR + GVAR_R1T) ; + case 5 : return ( GLOB_VAR + GVAR_R2T) ; + case 6 : return ( GLOB_VAR + GVAR_R3T) ; + case 7 : return ( GLOB_VAR + GVAR_R4T) ; + default : return "" ; + } + } + else { + switch ( nAx) { + case 1 : return ( GLOB_VAR + GVAR_R1T) ; + case 2 : return ( GLOB_VAR + GVAR_R2T) ; + case 3 : return ( GLOB_VAR + GVAR_R3T) ; + case 4 : return ( GLOB_VAR + GVAR_R4T) ; + case 5 : return ( GLOB_VAR + GVAR_R5T) ; + case 6 : return ( GLOB_VAR + GVAR_R6T) ; + case 7 : return ( GLOB_VAR + GVAR_R7T) ; + default : return "" ; + } + } } //---------------------------------------------------------------------------- inline std::string -GetGlobVarAxisName( int nAx) +GetGlobVarAxisName( int nAx, bool bIsRobot = false) { - switch ( nAx) { - case 1 : return ( GLOB_VAR + GVAR_L1N) ; - case 2 : return ( GLOB_VAR + GVAR_L2N) ; - case 3 : return ( GLOB_VAR + GVAR_L3N) ; - case 4 : return ( GLOB_VAR + GVAR_R1N) ; - case 5 : return ( GLOB_VAR + GVAR_R2N) ; - case 6 : return ( GLOB_VAR + GVAR_R3N) ; - case 7 : return ( GLOB_VAR + GVAR_R4N) ; - default : return "" ; - } + if ( ! bIsRobot) { + switch ( nAx) { + case 1 : return ( GLOB_VAR + GVAR_L1N) ; + case 2 : return ( GLOB_VAR + GVAR_L2N) ; + case 3 : return ( GLOB_VAR + GVAR_L3N) ; + case 4 : return ( GLOB_VAR + GVAR_R1N) ; + case 5 : return ( GLOB_VAR + GVAR_R2N) ; + case 6 : return ( GLOB_VAR + GVAR_R3N) ; + case 7 : return ( GLOB_VAR + GVAR_R4N) ; + default : return "" ; + } + } + else { + switch ( nAx) { + case 1 : return ( GLOB_VAR + GVAR_R1N) ; + case 2 : return ( GLOB_VAR + GVAR_R2N) ; + case 3 : return ( GLOB_VAR + GVAR_R3N) ; + case 4 : return ( GLOB_VAR + GVAR_R4N) ; + case 5 : return ( GLOB_VAR + GVAR_R5N) ; + case 6 : return ( GLOB_VAR + GVAR_R6N) ; + case 7 : return ( GLOB_VAR + GVAR_R7N) ; + default : return "" ; + } + } } diff --git a/Processor.cpp b/Processor.cpp index d4a1f89..f9451c3 100644 --- a/Processor.cpp +++ b/Processor.cpp @@ -843,15 +843,16 @@ Processor::OnToolSelect( const string& sTool, const string& sHead, int nExit, co bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_EXIT, nExit) ; bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_TCPOS, sTcPos) ; // assegno il token e il nome degli assi + bool bIsRobot = m_pMchMgr->GetCurrIsRobot() ; int nNumAxes = int( m_AxesName.size()) ; for ( int i = 1 ; i <= MAX_AXES ; ++ i) { if ( i <= nNumAxes) { - bOk = bOk && m_pMachine->LuaSetGlobVar( GetGlobVarAxisToken(i), m_AxesToken[i-1]) ; - bOk = bOk && m_pMachine->LuaSetGlobVar( GetGlobVarAxisName(i), m_AxesName[i-1]) ; + bOk = bOk && m_pMachine->LuaSetGlobVar( GetGlobVarAxisToken( i, bIsRobot), m_AxesToken[i-1]) ; + bOk = bOk && m_pMachine->LuaSetGlobVar( GetGlobVarAxisName( i, bIsRobot), m_AxesName[i-1]) ; } else { - bOk = bOk && m_pMachine->LuaResetGlobVar( GetGlobVarAxisToken(i)) ; - bOk = bOk && m_pMachine->LuaResetGlobVar( GetGlobVarAxisName(i)) ; + bOk = bOk && m_pMachine->LuaResetGlobVar( GetGlobVarAxisToken( i, bIsRobot)) ; + bOk = bOk && m_pMachine->LuaResetGlobVar( GetGlobVarAxisName( i, bIsRobot)) ; } } // chiamo la funzione di selezione utensile @@ -983,12 +984,13 @@ Processor::OnRapid( int nEntId, int nEntInd, int nMove, const DBLVECTOR& AxesEnd // assegno il tipo di movimento bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_MOVE, nMove) ; // assegno il valore degli assi + bool bIsRobot = m_pMchMgr->GetCurrIsRobot() ; int nNumAxes = int( AxesEnd.size()) ; for ( int i = 1 ; i <= MAX_AXES ; ++ i) { if ( i <= nNumAxes) - bOk = bOk && m_pMachine->LuaSetGlobVar( GetGlobVarAxisValue(i), AxesEnd[i-1]) ; + bOk = bOk && m_pMachine->LuaSetGlobVar( GetGlobVarAxisValue( i, GLOB_VAR, bIsRobot), AxesEnd[i-1]) ; else - bOk = bOk && m_pMachine->LuaResetGlobVar( GetGlobVarAxisValue(i)) ; + bOk = bOk && m_pMachine->LuaResetGlobVar( GetGlobVarAxisValue( i, GLOB_VAR, bIsRobot)) ; } // assegno la mascheratura degli assi bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_MASK, nAxesMask) ; @@ -1023,12 +1025,13 @@ Processor::OnLinear( int nEntId, int nEntInd, int nMove, const DBLVECTOR& AxesEn // assegno il tipo di movimento bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_MOVE, nMove) ; // assegno il valore degli assi + bool bIsRobot = m_pMchMgr->GetCurrIsRobot() ; int nNumAxes = int( AxesEnd.size()) ; for ( int i = 1 ; i <= MAX_AXES ; ++ i) { if ( i <= nNumAxes) - bOk = bOk && m_pMachine->LuaSetGlobVar( GetGlobVarAxisValue(i), AxesEnd[i-1]) ; + bOk = bOk && m_pMachine->LuaSetGlobVar( GetGlobVarAxisValue( i, GLOB_VAR, bIsRobot), AxesEnd[i-1]) ; else - bOk = bOk && m_pMachine->LuaResetGlobVar( GetGlobVarAxisValue(i)) ; + bOk = bOk && m_pMachine->LuaResetGlobVar( GetGlobVarAxisValue( i, GLOB_VAR, bIsRobot)) ; } // assegno il valore del versore utensile bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_TDIR, vtTool) ; @@ -1062,12 +1065,13 @@ Processor::OnArc( int nEntId, int nEntInd, int nMove, const DBLVECTOR& AxesEnd, // assegno il tipo di movimento bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_MOVE, nMove) ; // assegno il valore degli assi + bool bIsRobot = m_pMchMgr->GetCurrIsRobot() ; int nNumAxes = int( AxesEnd.size()) ; for ( int i = 1 ; i <= MAX_AXES ; ++ i) { if ( i <= nNumAxes) - bOk = bOk && m_pMachine->LuaSetGlobVar( GetGlobVarAxisValue(i), AxesEnd[i-1]) ; + bOk = bOk && m_pMachine->LuaSetGlobVar( GetGlobVarAxisValue( i, GLOB_VAR, bIsRobot), AxesEnd[i-1]) ; else - bOk = bOk && m_pMachine->LuaResetGlobVar( GetGlobVarAxisValue(i)) ; + bOk = bOk && m_pMachine->LuaResetGlobVar( GetGlobVarAxisValue( i, GLOB_VAR, bIsRobot)) ; } // assegno le coordinate del centro bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_C1, ptCen.x) ; diff --git a/Simulator.cpp b/Simulator.cpp index c52fa2e..a9fe706 100644 --- a/Simulator.cpp +++ b/Simulator.cpp @@ -1622,16 +1622,17 @@ Simulator::OnToolSelect( const string& sTool, const string& sHead, int nExit, co ! m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_TCPOS, sTcPos)) return false ; // assegno il token e il nome degli assi + bool bIsRobot = m_pMchMgr->GetCurrIsRobot() ; int nNumAxes = int( m_AxesName.size()) ; for ( int i = 1 ; i <= MAX_AXES ; ++ i) { if ( i <= nNumAxes) { - if ( ! m_pMachine->LuaSetGlobVar( GetGlobVarAxisToken(i), m_AxesToken[i-1]) || - ! m_pMachine->LuaSetGlobVar( GetGlobVarAxisName(i), m_AxesName[i-1])) + if ( ! m_pMachine->LuaSetGlobVar( GetGlobVarAxisToken( i, bIsRobot), m_AxesToken[i-1]) || + ! m_pMachine->LuaSetGlobVar( GetGlobVarAxisName( i, bIsRobot), m_AxesName[i-1])) return false ; } else { - if ( ! m_pMachine->LuaResetGlobVar( GetGlobVarAxisToken(i)) || - ! m_pMachine->LuaResetGlobVar( GetGlobVarAxisName(i))) + if ( ! m_pMachine->LuaResetGlobVar( GetGlobVarAxisToken( i, bIsRobot)) || + ! m_pMachine->LuaResetGlobVar( GetGlobVarAxisName( i, bIsRobot))) return false ; } } @@ -1874,16 +1875,17 @@ Simulator::OnMoveStart( const CamData* pCamData, int& nErr) bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_INDEX, pCamData->GetIndex()) ; bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_ERR, nErr) ; // valore degli assi all'inizio e alla fine del movimento + bool bIsRobot = m_pMchMgr->GetCurrIsRobot() ; int nNumAxes = int( m_AxesName.size()) ; const DBLVECTOR& AxesEnd = pCamData->GetAxesVal() ; for ( int i = 1 ; i <= MAX_AXES ; ++ i) { if ( i <= nNumAxes) { - bOk = bOk && m_pMachine->LuaSetGlobVar( GetGlobVarAxisPrev( i), m_AxesVal[i-1]) ; - bOk = bOk && m_pMachine->LuaSetGlobVar( GetGlobVarAxisValue( i), AxesEnd[i-1]) ; + bOk = bOk && m_pMachine->LuaSetGlobVar( GetGlobVarAxisPrev( i, GLOB_VAR, bIsRobot), m_AxesVal[i-1]) ; + bOk = bOk && m_pMachine->LuaSetGlobVar( GetGlobVarAxisValue( i, GLOB_VAR, bIsRobot), AxesEnd[i-1]) ; } else { - bOk = bOk && m_pMachine->LuaResetGlobVar( GetGlobVarAxisPrev( i)) ; - bOk = bOk && m_pMachine->LuaResetGlobVar( GetGlobVarAxisValue( i)) ; + bOk = bOk && m_pMachine->LuaResetGlobVar( GetGlobVarAxisPrev( i, GLOB_VAR, bIsRobot)) ; + bOk = bOk && m_pMachine->LuaResetGlobVar( GetGlobVarAxisValue( i, GLOB_VAR, bIsRobot)) ; } } // versori utensile, correzione e ausiliario alla fine del movimento