diff --git a/EXE_MachMgr.cpp b/EXE_MachMgr.cpp index 2f8ec30..4878da0 100644 --- a/EXE_MachMgr.cpp +++ b/EXE_MachMgr.cpp @@ -2650,22 +2650,22 @@ ExeGetCalcTipFromPositions( double dX, double dY, double dZ, double dAngA, doubl //----------------------------------------------------------------------------- bool -ExeGetCalcToolDirFromAngles( double dAngA, double dAngB, Vector3d& vtDir) +ExeGetCalcToolDirFromAngles( const DBLVECTOR& vAng, Vector3d& vtDir) { IMachMgr* pMachMgr = GetCurrMachMgr() ; VERIFY_MACHMGR( pMachMgr, false) // calcolo la direzione utensile dagli assi macchina - return pMachMgr->GetCalcToolDirFromAngles( dAngA, dAngB, vtDir) ; + return pMachMgr->GetCalcToolDirFromAngles( vAng, vtDir) ; } //----------------------------------------------------------------------------- bool -ExeGetCalcAuxDirFromAngles( double dAngA, double dAngB, Vector3d& vtDir) +ExeGetCalcAuxDirFromAngles( const DBLVECTOR& vAng, Vector3d& vtDir) { IMachMgr* pMachMgr = GetCurrMachMgr() ; VERIFY_MACHMGR( pMachMgr, false) // calcolo la direzione ausiliaria dagli assi macchina - return pMachMgr->GetCalcAuxDirFromAngles( dAngA, dAngB, vtDir) ; + return pMachMgr->GetCalcAuxDirFromAngles( vAng, vtDir) ; } //----------------------------------------------------------------------------- diff --git a/EgtExecutor.rc b/EgtExecutor.rc index 6bd4620..4819212 100644 Binary files a/EgtExecutor.rc and b/EgtExecutor.rc differ diff --git a/LUA_MachMgr.cpp b/LUA_MachMgr.cpp index 1d71867..fd8f234 100644 --- a/LUA_MachMgr.cpp +++ b/LUA_MachMgr.cpp @@ -2917,15 +2917,19 @@ LuaGetCalcTipFromPositions( lua_State* L) static int LuaGetCalcToolDirFromAngles( lua_State* L) { - // 2 parametri : dAngA, dAngB - double dAngA ; - LuaCheckParam( L, 1, dAngA) - double dAngB ; - LuaCheckParam( L, 2, dAngB) + // da 1 a 4 parametri : dAngA, dAngB, dAngC, dAngD + DBLVECTOR vAng ; + for ( int i = 1 ; i <= 4 ; ++ i) { + double dAng ; + if ( LuaGetParam( L, i, dAng)) + vAng.emplace_back( dAng) ; + else + break ; + } LuaClearStack( L) ; // Calcolo la direzione utensile dagli angoli macchina Vector3d vtDir ; - bool bOk = ExeGetCalcToolDirFromAngles( dAngA, dAngB, vtDir) ; + bool bOk = ExeGetCalcToolDirFromAngles( vAng, vtDir) ; // restituisco il risultato if ( bOk) LuaSetParam( L, vtDir) ; @@ -2938,15 +2942,19 @@ LuaGetCalcToolDirFromAngles( lua_State* L) static int LuaGetCalcAuxDirFromAngles( lua_State* L) { - // 2 parametri : dAngA, dAngB - double dAngA ; - LuaCheckParam( L, 1, dAngA) - double dAngB ; - LuaCheckParam( L, 2, dAngB) + // da 1 a 4 parametri : dAngA, dAngB, dAngC, dAngD + DBLVECTOR vAng ; + for ( int i = 1 ; i <= 4 ; ++ i) { + double dAng ; + if ( LuaGetParam( L, i, dAng)) + vAng.emplace_back( dAng) ; + else + break ; + } LuaClearStack( L) ; // Calcolo la direzione ausiliaria dagli angoli macchina Vector3d vtDir ; - bool bOk = ExeGetCalcAuxDirFromAngles( dAngA, dAngB, vtDir) ; + bool bOk = ExeGetCalcAuxDirFromAngles( vAng, vtDir) ; // restituisco il risultato if ( bOk && ! vtDir.IsSmall()) LuaSetParam( L, vtDir) ;