EgtMachKernel :

- modifiche a Simulazione e Generazione per dati ausiliari iniziali e finali di percorso.
This commit is contained in:
Dario Sassi
2017-01-05 18:47:38 +00:00
parent c1b66b4477
commit 476aaecdf6
5 changed files with 107 additions and 27 deletions
+71 -6
View File
@@ -338,10 +338,25 @@ Generator::ProcessClPath( int nClPathId, int nClPathInd, int nOpId, int nOpInd)
Point3d ptMin, ptMax ;
m_pGeomDB->GetInfo( nClPathId, KEY_PMIN, ptMin) ;
m_pGeomDB->GetInfo( nClPathId, KEY_PMAX, ptMax) ;
// Recupero il numero di eventi ausiliari iniziali
int nAS = 0 ;
m_pGeomDB->GetInfo( nClPathId, KEY_AS_TOT, nAS) ;
// Emetto inizio percorso di lavoro
if ( ! OnPathStart( nClPathId, nClPathInd, ptStart, vtExtr, ptMin, ptMax))
if ( ! OnPathStart( nClPathId, nClPathInd, nAS, ptStart, vtExtr, ptMin, ptMax))
return false ;
// Emissione eventuali dati ausiliari di inizio
// processo gli eventi
for ( int i = 1 ; i <= nAS ; ++ i) {
// recupero i dati per l'evento
string sAS ;
if ( ! m_pGeomDB->GetInfo( nClPathId, KEY_AS + ToString( i), sAS))
return false ;
// richiamo gestione evento ausiliario prima di inizio percorso di lavoro
if ( ! OnPathStartAux( i, sAS))
return false ;
}
// Ciclo su tutte le entità del percorso CL
bool bOk = true ;
int nEntInd = 0 ;
@@ -355,8 +370,24 @@ Generator::ProcessClPath( int nClPathId, int nClPathInd, int nOpId, int nOpInd)
nEntId = m_pGeomDB->GetNext( nEntId) ;
}
// Recupero il numero di eventi ausiliari finali
int nAE = 0 ;
m_pGeomDB->GetInfo( nClPathId, KEY_AE_TOT, nAE) ;
// Emetto fine percorso di lavoro
bOk = bOk && OnPathEnd() ;
bOk = bOk && OnPathEnd( nAE) ;
// Emissione eventuali dati ausiliari di fine
// processo gli eventi
for ( int i = 1 ; i <= nAE ; ++ i) {
// recupero i dati per l'evento
string sAE ;
if ( ! m_pGeomDB->GetInfo( nClPathId, KEY_AE + ToString( i), sAE))
return false ;
// richiamo gestione evento ausiliario dopo fine percorso di lavoro
if ( ! OnPathEndAux( i, sAE))
return false ;
}
return bOk ;
}
@@ -731,12 +762,14 @@ Generator::OnMachiningEnd( void)
//----------------------------------------------------------------------------
bool
Generator::OnPathStart( int nClPathId, int nClPathInd, const Point3d& ptStart, const Vector3d& vtExtr,
const Point3d& ptMin, const Point3d& ptMax)
Generator::OnPathStart( int nClPathId, int nClPathInd, int nAS, const Point3d& ptStart,
const Vector3d& vtExtr, const Point3d& ptMin, const Point3d& ptMax)
{
// assegno identificativo e indice percorso di lavorazione
bool bOk = m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_PATHID, nClPathId) ;
bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_PATHIND, nClPathInd) ;
// assegno numero di dati ausiliari iniziali
bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_AUXTOT, nAS) ;
// assegno punto iniziale e versore estrusione
bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_START, ptStart) ;
bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_EXTR, vtExtr) ;
@@ -750,10 +783,42 @@ Generator::OnPathStart( int nClPathId, int nClPathInd, const Point3d& ptStart, c
//----------------------------------------------------------------------------
bool
Generator::OnPathEnd( void)
Generator::OnPathEnd( int nAE)
{
// assegno numero di dati ausiliari finali
bool bOk = m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_AUXTOT, nAE) ;
// chiamo la funzione di fine percorso di lavorazione
bool bOk = m_pMachine->LuaCallFunction( ON_PATH_END) ;
bOk = bOk && m_pMachine->LuaCallFunction( ON_PATH_END) ;
return bOk ;
}
//----------------------------------------------------------------------------
bool
Generator::OnPathStartAux( int nInd, const string& sAS)
{
// verifico esistenza funzione
if ( ! m_pMachine->LuaExistsFunction( ON_PATH_START_AUX))
return true ;
// assegno indice e valore dato ausiliario
bool bOk = m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_AUXIND, nInd) ;
bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_AUX, sAS) ;
// chiamo la funzione di emissione dato ausiliario ad inizio percorso di lavorazione
bOk = bOk && m_pMachine->LuaCallFunction( ON_PATH_START_AUX) ;
return bOk ;
}
//----------------------------------------------------------------------------
bool
Generator::OnPathEndAux( int nInd, const string& sAE)
{
// verifico esistenza funzione
if ( ! m_pMachine->LuaExistsFunction( ON_PATH_END_AUX))
return true ;
// assegno indice e valore dato ausiliario
bool bOk = m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_AUXIND, nInd) ;
bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_AUX, sAE) ;
// chiamo la funzione di emissione dato ausiliario alla fine percorso di lavorazione
bOk = bOk && m_pMachine->LuaCallFunction( ON_PATH_END_AUX) ;
return bOk ;
}