EgtMachKernel :

- in simulazione, generazione e stima aggiunti alcuni dati del movimento successivo.
This commit is contained in:
Dario Sassi
2024-07-23 16:31:36 +02:00
parent c4ee2661b0
commit 6d742580fa
5 changed files with 122 additions and 14 deletions
+19 -2
View File
@@ -1009,8 +1009,9 @@ Simulator::ManageSingleMove( int& nStatus, double& dMove)
// Se inizio di nuova entità
if ( m_nEntId != GDB_ID_NULL && m_dCoeff < EPS_ZERO) {
++ m_nEntInd ;
const CamData* pNextCamData = GetCamData( m_pGeomDB->GetUserObj( m_pGeomDB->GetNext( m_nEntId))) ;
int nErr ;
if ( ! OnMoveStart( pCamData, nErr)) {
if ( ! OnMoveStart( pCamData, pNextCamData, nErr)) {
nStatus = CalcStatusOnError( nErr) ;
return false ;
}
@@ -1933,7 +1934,7 @@ Simulator::OnPathEndAux( int nInd, const string& sAE, int& nErr)
//----------------------------------------------------------------------------
bool
Simulator::OnMoveStart( const CamData* pCamData, int& nErr)
Simulator::OnMoveStart( const CamData* pCamData, const CamData* pNextCamData, int& nErr)
{
// reset stato di errore da script
nErr = 0 ;
@@ -1965,6 +1966,22 @@ Simulator::OnMoveStart( const CamData* pCamData, int& nErr)
bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_TDIR, pCamData->GetToolDir()) ;
bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_CDIR, pCamData->GetCorrDir()) ;
bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_ADIR, pCamData->GetBackAuxDir()) ;
// anticipazione di alcuni dati dell'eventuale movimento successivo dello stesso percorso
if ( pNextCamData != nullptr && pNextCamData->GetAxesStatus() == CamData::AS_OK) {
bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_MOVESUCC, pNextCamData->GetMoveType()) ;
const DBLVECTOR& AxesNext = pNextCamData->GetAxesVal() ;
for ( int i = 1 ; i <= MAX_AXES ; ++ i) {
if ( i <= nNumAxes)
bOk = bOk && m_pMachine->LuaSetGlobVar( GetGlobVarAxisNext( i, GLOB_VAR, bIsRobot), AxesNext[i-1]) ;
else
bOk = bOk && m_pMachine->LuaResetGlobVar( GetGlobVarAxisNext( i, GLOB_VAR, bIsRobot)) ;
}
}
else {
bOk = bOk && m_pMachine->LuaResetGlobVar( GLOB_VAR + GVAR_MOVESUCC) ;
for ( int i = 1 ; i <= MAX_AXES ; ++ i)
bOk = bOk && m_pMachine->LuaResetGlobVar( GetGlobVarAxisNext( i, GLOB_VAR, bIsRobot)) ;
}
// reset abilitazione assi attivi
bOk = bOk && m_pMachine->LuaResetGlobVar( GLOB_VAR + GVAR_ENABAXES) ;
// reset numero assi ausiliari