EgtMachKernel 1.6p3 :

- gestione script OnSetTable in file mde per modificare dati assi
- migliorato sequenziamento curve per lavorazione
- eliminata tabella LOC per variabili locali in generazione part program
- aggiunte funzioni EmtModifyAxisStroke e EmtModifyAxisHome richiamabili da lua macchina
- aggiunta ExistsTable in interfaccia.
This commit is contained in:
Dario Sassi
2016-04-19 15:55:10 +00:00
parent 9b7d870bcc
commit 06a8b15d99
15 changed files with 238 additions and 107 deletions
+75 -1
View File
@@ -54,6 +54,9 @@ Machine::LuaInit( const string& sMachineName)
m_LuaMgr.RegisterFunction( "EmtTable", Machine::LuaEmtTable) ;
m_LuaMgr.RegisterFunction( "EmtAxis", Machine::LuaEmtAxis) ;
m_LuaMgr.RegisterFunction( "EmtHead", Machine::LuaEmtHead) ;
// registro le funzioni di modifica macchina per lua
m_LuaMgr.RegisterFunction( "EmtModifyAxisStroke", Machine::LuaEmtModifyAxisStroke) ;
m_LuaMgr.RegisterFunction( "EmtModifyAxisHome", Machine::LuaEmtModifyAxisHome) ;
// registro le funzioni di scrittura part program per lua
m_LuaMgr.RegisterFunction( "EmtWrite", Machine::LuaEmtWrite) ;
@@ -72,6 +75,26 @@ Machine::LuaExit( void)
return true ;
}
//----------------------------------------------------------------------------
bool
Machine::LuaExistsFunction( const string& sFun)
{
// imposto contesto corretto
int nOldCtx = ExeGetCurrentContext() ;
if ( nOldCtx != m_pMchMgr->GetContextId())
ExeSetCurrentContext( m_pMchMgr->GetContextId()) ;
// imposto l'oggetto corrente per Lua
m_pMchLua = this ;
// verifico esistenza della funzione
bool bOk = m_LuaMgr.ExistsFunction( sFun) ;
// ripristino contesto originale
if ( nOldCtx != m_pMchMgr->GetContextId())
ExeSetCurrentContext( nOldCtx) ;
// reset dell'oggetto corrente per Lua
m_pMchLua = nullptr ;
return bOk ;
}
//----------------------------------------------------------------------------
bool
Machine::LuaCallFunction( const string& sFun)
@@ -87,6 +110,8 @@ Machine::LuaCallFunction( const string& sFun)
// ripristino contesto originale
if ( nOldCtx != m_pMchMgr->GetContextId())
ExeSetCurrentContext( nOldCtx) ;
// reset dell'oggetto corrente per Lua
m_pMchLua = nullptr ;
return bOk ;
}
@@ -105,6 +130,8 @@ Machine::LuaCreateGlobTable( const string& sName)
// ripristino contesto originale
if ( nOldCtx != m_pMchMgr->GetContextId())
ExeSetCurrentContext( nOldCtx) ;
// reset dell'oggetto corrente per Lua
m_pMchLua = nullptr ;
return bOk ;
}
@@ -123,6 +150,8 @@ Machine::LuaResetGlobVar( const string& sName)
// ripristino contesto originale
if ( nOldCtx != m_pMchMgr->GetContextId())
ExeSetCurrentContext( nOldCtx) ;
// reset dell'oggetto corrente per Lua
m_pMchLua = nullptr ;
return bOk ;
}
@@ -144,6 +173,8 @@ Machine::LuaLoadMachine( const string& sFile)
// ripristino contesto originale
if ( nOldCtx != m_pMchMgr->GetContextId())
ExeSetCurrentContext( nOldCtx) ;
// reset dell'oggetto corrente per Lua
m_pMchLua = nullptr ;
return bOk ;
}
@@ -461,6 +492,46 @@ Machine::LuaEmtMultiHead( lua_State* L)
return 0 ;
}
//----------------------------------------------------------------------------
int
Machine::LuaEmtModifyAxisStroke( lua_State* L)
{
// 2 parametri : sAxisName, {dMin, dMax}
string sAxisName ;
LuaCheckParam( L, 1, sAxisName)
STROKE Stroke ;
LuaCheckParam( L, 2, Stroke.v)
LuaClearStack( L) ;
// verifico ci sia una macchina attiva
if ( m_pMchLua == nullptr)
return luaL_error( L, " Unknown Machine") ;
// modifico i limiti di corsa dell'asse
bool bOk = m_pMchLua->ModifyMachineAxisStroke( sAxisName, Stroke) ;
// assegno risultato
LuaSetParam( L, bOk) ;
return 1 ;
}
//----------------------------------------------------------------------------
int
Machine::LuaEmtModifyAxisHome( lua_State* L)
{
// 2 parametri : sAxisName, dHome
string sAxisName ;
LuaCheckParam( L, 1, sAxisName)
double dHome ;
LuaCheckParam( L, 2, dHome)
LuaClearStack( L) ;
// verifico ci sia una macchina attiva
if ( m_pMchLua == nullptr)
return luaL_error( L, " Unknown Machine") ;
// modifico la posizione home dell'asse
bool bOk = m_pMchLua->ModifyMachineAxisHome( sAxisName, dHome) ;
// assegno risultato
LuaSetParam( L, bOk) ;
return 1 ;
}
//----------------------------------------------------------------------------
int
Machine::LuaEmtWrite( lua_State* L)
@@ -469,9 +540,12 @@ Machine::LuaEmtWrite( lua_State* L)
string sOut ;
LuaCheckParam( L, 1, sOut)
LuaClearStack( L) ;
// verifico ci sia una macchina attiva
if ( m_pMchLua == nullptr)
return luaL_error( L, " Unknown Machine") ;
// emetto stringa
bool bOk = m_pMchLua->WriterEmit( sOut) ;
// assegno risultato
LuaSetParam( L, bOk) ;
return 1 ;
}
}