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:
+75
-1
@@ -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 ;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user