diff --git a/Machine.h b/Machine.h index 999195e..6b2686d 100644 --- a/Machine.h +++ b/Machine.h @@ -377,6 +377,7 @@ class Machine static int LuaEmtGetBackAuxDir( lua_State* L) ; static int LuaEmtGetInitialAxesPos( lua_State* L) ; static int LuaEmtGetFinalAxesPos( lua_State* L) ; + static int LuaEmtGetCurrAxesHomePos( lua_State* L) ; static int LuaEmtLinkRawPartToGroup( lua_State* L) ; static int LuaEmtGetAllLinkedRawParts( lua_State* L) ; static int LuaEmtUnlinkRawPartFromGroup( lua_State* L) ; diff --git a/MachineLua.cpp b/MachineLua.cpp index 80f4fc9..63edcc0 100644 --- a/MachineLua.cpp +++ b/MachineLua.cpp @@ -127,6 +127,7 @@ Machine::LuaInit( const string& sMachineName) m_LuaMgr.RegisterFunction( "EmtRemoveRise", Machine::LuaEmtRemoveRise) ; m_LuaMgr.RegisterFunction( "EmtGetInitialAxesPos", Machine::LuaEmtGetInitialAxesPos) ; m_LuaMgr.RegisterFunction( "EmtGetFinalAxesPos", Machine::LuaEmtGetFinalAxesPos) ; + m_LuaMgr.RegisterFunction( "EmtGetCurrAxesHomePos", Machine::LuaEmtGetCurrAxesHomePos) ; // registro le funzioni di lettura entità CL per lua m_LuaMgr.RegisterFunction( "EmtGetMoveType", Machine::LuaEmtGetMoveType) ; m_LuaMgr.RegisterFunction( "EmtGetAxesPos", Machine::LuaEmtGetAxesPos) ; diff --git a/MachineLuaCL.cpp b/MachineLuaCL.cpp index 77a9b7b..0173b72 100644 --- a/MachineLuaCL.cpp +++ b/MachineLuaCL.cpp @@ -435,6 +435,27 @@ Machine::LuaEmtGetFinalAxesPos( lua_State* L) return 1 ; } +//---------------------------------------------------------------------------- +int +Machine::LuaEmtGetCurrAxesHomePos( lua_State* L) +{ + // nessun parametro + LuaClearStack( L) ; + // verifico ci sia una macchina attiva valida + if ( m_pMchLua == nullptr || + m_pMchLua->m_pMchMgr == nullptr || m_pMchLua->m_pGeomDB == nullptr) + return luaL_error( L, " Unknown Machine") ; + // acquisisco la posizione di home degli assi della catena cinematica corrente + DBLVECTOR vAxHomeVal ; + bool bOk = m_pMchLua->GetAllCurrAxesHomePos( vAxHomeVal) ; + if ( bOk) + LuaSetParam( L, vAxHomeVal) ; + else + LuaSetParam( L) ; + + return 1 ; +} + //---------------------------------------------------------------------------- int Machine::LuaEmtGetMoveType( lua_State* L)