EgtMachKernel :
- ulteriori correzioni a Simulatore MP.
This commit is contained in:
+90
-70
@@ -358,7 +358,7 @@ SimulatorMP::Move( int& nStatus)
|
||||
|
||||
// Se arrivato alla fine dell'interpolazione
|
||||
if ( m_dCoeff > COEFF_LIM) {
|
||||
// recupero una nuova entità
|
||||
// recupero una nuova entità
|
||||
m_nEntId = m_pGeomDB->GetNext( m_nEntId) ;
|
||||
m_dCoeff = 0 ;
|
||||
}
|
||||
@@ -546,7 +546,7 @@ SimulatorMP::SetUiStatus( int nUiStatus)
|
||||
bool
|
||||
SimulatorMP::GoHome( void)
|
||||
{
|
||||
// controllo validità stato
|
||||
// controllo validità stato
|
||||
if ( m_pGeomDB == nullptr || m_pMchMgr == nullptr || m_pMachine == nullptr)
|
||||
return false ;
|
||||
// reset visualizzazione collisioni
|
||||
@@ -586,9 +586,9 @@ SimulatorMP::UpdateMachiningTool( bool bFirst, int& nChangeTool, int& nErr)
|
||||
// ripristino l'utensile corrente
|
||||
m_pMchMgr->TdbSetCurrTool( m_sTool) ;
|
||||
}
|
||||
// verifico se cambierà
|
||||
// verifico se cambierà
|
||||
bool bDiffTool = ( sTool != m_sTool) ;
|
||||
// se cambierà ed esiste il corrente, lo scarico
|
||||
// se cambierà ed esiste il corrente, lo scarico
|
||||
if ( bDiffTool && ! m_sTool.empty() && nChangeTool == 0) {
|
||||
// eventuale lancio script per scarico utensile
|
||||
int nCurrErr ;
|
||||
@@ -652,7 +652,7 @@ SimulatorMP::UpdateDispositionTool( bool bFirst, int& nErr)
|
||||
// Recupero i dati
|
||||
string sTool ; string sHead ; int nExit ; string sTcPos ;
|
||||
pDisp->GetToolData( sTool, sHead, nExit, sTcPos) ;
|
||||
// se esiste utensile corrente e cambierà, lo scarico
|
||||
// se esiste utensile corrente e cambierà, lo scarico
|
||||
if ( ! m_sTool.empty() && sTool != m_sTool) {
|
||||
// eventuale lancio script per scarico utensile
|
||||
int nCurrErr ;
|
||||
@@ -822,7 +822,7 @@ SimulatorMP::FindAndManageOperationStart( bool bStart, bool bFirst, int& nChange
|
||||
// se disposizione con cambio di fase
|
||||
Disposition* pDisp = GetDisposition( m_pGeomDB->GetUserObj( m_nOpId)) ;
|
||||
if ( pDisp != nullptr) {
|
||||
// in alcuni casi la disposizione non è inizializzata
|
||||
// in alcuni casi la disposizione non è inizializzata
|
||||
pDisp->Init( m_pMchMgr) ;
|
||||
// recupero dati tavola
|
||||
string sTable ;
|
||||
@@ -877,7 +877,7 @@ SimulatorMP::FindAndManageOperationStart( bool bStart, bool bFirst, int& nChange
|
||||
nStatus = CalcStatusOnError( ERR_NONE) ;
|
||||
return false ;
|
||||
}
|
||||
// se non è inizio, aggiorno visualizzazione e breve pausa (200 ms)
|
||||
// se non è inizio, aggiorno visualizzazione e breve pausa (200 ms)
|
||||
if ( nPhase != 1) {
|
||||
ExeDraw() ;
|
||||
Sleep( 200) ;
|
||||
@@ -897,15 +897,15 @@ bool
|
||||
SimulatorMP::ManageOperationEnd( int& nStatus)
|
||||
{
|
||||
bool bOk = false ;
|
||||
// non c'è operazione in corso (solo prima disposizione senza lavorazioni)
|
||||
// non c'è operazione in corso (solo prima disposizione senza lavorazioni)
|
||||
if ( m_nOpId == GDB_ID_NULL)
|
||||
bOk = true ;
|
||||
// se altrimenti è una lavorazione
|
||||
// se altrimenti è una lavorazione
|
||||
else if ( GetMachining( m_pGeomDB->GetUserObj( m_nOpId)) != nullptr) {
|
||||
// richiamo gestione evento fine lavorazione
|
||||
bOk = OnMachiningEnd() ;
|
||||
}
|
||||
// se altrimenti è una disposizione
|
||||
// se altrimenti è una disposizione
|
||||
else if ( GetDisposition( m_pGeomDB->GetUserObj( m_nOpId)) != nullptr) {
|
||||
// richiamo gestione evento fine disposizione
|
||||
bOk = OnDispositionEnd() ;
|
||||
@@ -943,7 +943,7 @@ SimulatorMP::FindAndManagePathStart( int& nStatus)
|
||||
m_dCoeff = 0 ;
|
||||
}
|
||||
}
|
||||
// se trovato nuovo CLpath con entità, gestisco inizio percorso di lavoro
|
||||
// se trovato nuovo CLpath con entità, gestisco inizio percorso di lavoro
|
||||
if ( m_nEntId != GDB_ID_NULL) {
|
||||
++ m_nCLPathInd ;
|
||||
// recupero punti di inizio e fine percorso
|
||||
@@ -1065,9 +1065,9 @@ SimulatorMP::ManageMove( int& nStatus)
|
||||
if ( ! ManageSingleMove( nStatus, dMove))
|
||||
return false ;
|
||||
dCurrMove += dMove ;
|
||||
// se modalità play e fine entità e non raggiunta la lunghezza di movimento voluto
|
||||
// se modalità play e fine entità e non raggiunta la lunghezza di movimento voluto
|
||||
if ( m_nUiStatus == MCH_UISIM_PLAY && nStatus == MCH_SIM_END_STEP && dCurrMove < 0.75 * m_dStep) {
|
||||
// recupero una nuova entità
|
||||
// recupero una nuova entità
|
||||
m_nEntId = m_pGeomDB->GetNext( m_nEntId) ;
|
||||
m_dCoeff = 0 ;
|
||||
}
|
||||
@@ -1111,7 +1111,7 @@ SimulatorMP::ManageSingleMove( int& nStatus, double& dMove)
|
||||
DBLVECTOR AxesEnd = pCamData->GetAxesVal() ;
|
||||
// Tipo di movimento
|
||||
int nMoveType = pCamData->GetMoveType() ;
|
||||
// Se inizio di nuova entità, mascheratura movimento
|
||||
// Se inizio di nuova entità, mascheratura movimento
|
||||
if ( m_nEntId != GDB_ID_NULL && m_dCoeff < EPS_ZERO)
|
||||
m_nAxesMask = pCamData->GetAxesMask() ;
|
||||
// Se movimento in rapido muovo solo gli assi abilitati dal mask
|
||||
@@ -1122,7 +1122,7 @@ SimulatorMP::ManageSingleMove( int& nStatus, double& dMove)
|
||||
}
|
||||
}
|
||||
|
||||
// Se inizio di nuova entità
|
||||
// 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))) ;
|
||||
@@ -1200,7 +1200,7 @@ SimulatorMP::ManageSingleMove( int& nStatus, double& dMove)
|
||||
|
||||
// Eseguo movimento rapido o lineare (non arco)
|
||||
if ( nMoveType != 2 && nMoveType != 3) {
|
||||
// se attivo CollisionCheck approssimo movimento con più step
|
||||
// se attivo CollisionCheck approssimo movimento con più step
|
||||
int nStep = 1 ;
|
||||
if ( NeedCollisionCheck())
|
||||
nStep = max( int( dMove / COLL_STEP), 1) ;
|
||||
@@ -1230,7 +1230,7 @@ SimulatorMP::ManageSingleMove( int& nStatus, double& dMove)
|
||||
}
|
||||
m_pMachine->SetAxisPos( m_AuxAxesName[j], dVal) ;
|
||||
}
|
||||
// se abilitato e non è rapido o non c'è verifica collisioni, eseguo eventuale Vmill
|
||||
// se abilitato e non è rapido o non c'è verifica collisioni, eseguo eventuale Vmill
|
||||
if ( m_bEnableVm && ( nMoveType != 0 || ! NeedCollisionCheck())) {
|
||||
for ( int j = 0 ; j < int( m_VmTool.size()) ; ++ j) {
|
||||
Point3d ptNoseF ; Vector3d vtDirF ; Vector3d vtAuxF ;
|
||||
@@ -1265,7 +1265,7 @@ SimulatorMP::ManageSingleMove( int& nStatus, double& dMove)
|
||||
double dDiffAng = ( m_dCoeff - dPrevCoeff) * dAngCen ;
|
||||
Vector3d vtRot = Point3d( m_AxesVal[0], m_AxesVal[1], m_AxesVal[2]) - ptCen ;
|
||||
vtRot.Rotate( vtN, dPrevCoeff * dAngCen) ;
|
||||
// se attivi Vmill o CollisionCheck approssimo movimento con più step
|
||||
// se attivi Vmill o CollisionCheck approssimo movimento con più step
|
||||
int nStep = 1 ;
|
||||
if ( ! m_VmId.empty() || NeedCollisionCheck()) {
|
||||
const double MIN_LEN_STEP = 2. ;
|
||||
@@ -1362,7 +1362,7 @@ SimulatorMP::ManageSingleMove( int& nStatus, double& dMove)
|
||||
else
|
||||
m_dCoeff = 1 ;
|
||||
dMove = ( m_dCoeff - dPrevCoeff) * dDist ;
|
||||
// se attivo CollisionCheck approssimo movimento con più step
|
||||
// se attivo CollisionCheck approssimo movimento con più step
|
||||
int nStep = 1 ;
|
||||
if ( NeedCollisionCheck())
|
||||
nStep = max( int( dMove / COLL_STEP), 1) ;
|
||||
@@ -1375,7 +1375,7 @@ SimulatorMP::ManageSingleMove( int& nStatus, double& dMove)
|
||||
m_pMachine->SetAxisPos( m_AuxAxesName[j], dVal) ;
|
||||
}
|
||||
}
|
||||
// se abilitato e non è rapido o non c'è verifica collisioni, eseguo eventuale Vmill
|
||||
// se abilitato e non è rapido o non c'è verifica collisioni, eseguo eventuale Vmill
|
||||
if ( m_bEnableVm && ( nMoveType != 0 || ! NeedCollisionCheck())) {
|
||||
for ( int j = 0 ; j < int( m_VmTool.size()) ; ++ j) {
|
||||
Point3d ptNoseF ; Vector3d vtDirF ; Vector3d vtAuxF ;
|
||||
@@ -1412,7 +1412,7 @@ SimulatorMP::ManageSingleMove( int& nStatus, double& dMove)
|
||||
for ( size_t i = 0 ; i < m_AxesName.size() ; ++ i)
|
||||
m_AxesVal[i] = AxesEnd[i] ;
|
||||
}
|
||||
// richiamo gestione evento fine entità, senza gestirne eventuali errori
|
||||
// richiamo gestione evento fine entità, senza gestirne eventuali errori
|
||||
int nErr ;
|
||||
OnMoveEnd( nErr) ;
|
||||
}
|
||||
@@ -1427,14 +1427,14 @@ SimulatorMP::ManageSingleMove( int& nStatus, double& dMove)
|
||||
m_AxesVal[i] = AxesEnd[i] ;
|
||||
}
|
||||
nStatus = MCH_SIM_END_STEP ;
|
||||
// richiamo gestione evento fine entità
|
||||
// richiamo gestione evento fine entità
|
||||
int nErr ;
|
||||
if ( ! OnMoveEnd( nErr)) {
|
||||
nStatus = CalcStatusOnError( nErr) ;
|
||||
return false ;
|
||||
}
|
||||
}
|
||||
// Altrimenti sto muovendomi all'interno dell'entità
|
||||
// Altrimenti sto muovendomi all'interno dell'entità
|
||||
else
|
||||
nStatus = MCH_SIM_OK ;
|
||||
|
||||
@@ -1544,11 +1544,11 @@ SimulatorMP::ExecCollisionCheck( int& nCdInd, int& nObjInd, int nMoveType)
|
||||
return true ;
|
||||
// ciclo sui grezzi o equivalenti
|
||||
for ( int i = 0 ; i < int( m_CdId.size()) ; ++ i) {
|
||||
// se modo hidden è da saltare
|
||||
// se modo hidden è da saltare
|
||||
int nMode ;
|
||||
if ( m_pGeomDB->GetCalcMode( m_CdId[i], nMode) && nMode == GDB_MD_HIDDEN)
|
||||
continue ;
|
||||
// verifico se è il grezzo in lavorazione
|
||||
// verifico se è il grezzo in lavorazione
|
||||
bool bIsRaw = ( find( m_VmId.begin(), m_VmId.end(), m_CdId[i]) != m_VmId.end()) ;
|
||||
// recupero solido o trimesh, se altro lo salto
|
||||
const IVolZmap* pVZM = GetVolZmap( m_pGeomDB->GetGeoObj( m_CdId[i])) ;
|
||||
@@ -1559,16 +1559,16 @@ SimulatorMP::ExecCollisionCheck( int& nCdInd, int& nObjInd, int nMoveType)
|
||||
Frame3d frCd ; m_pGeomDB->GetGlobFrame( m_CdId[i], frCd) ;
|
||||
// ciclo sugli oggetti con cui verificare
|
||||
for ( int j = 0 ; j < int( m_CollObj.size()) ; ++ j) {
|
||||
// se modo hidden è da saltare
|
||||
// se modo hidden è da saltare
|
||||
int nMode ;
|
||||
if ( m_pGeomDB->GetCalcMode( m_CollObj[j].nFrameId, nMode) && nMode == GDB_MD_HIDDEN)
|
||||
continue ;
|
||||
// verifico se è l'utensile attivo
|
||||
// verifico se è l'utensile attivo
|
||||
string sHead ; m_pGeomDB->GetName( m_pGeomDB->GetParentId( m_CollObj[j].nFrameId), sHead) ;
|
||||
string sExit ; m_pGeomDB->GetName( m_CollObj[j].nFrameId, sExit) ;
|
||||
bool bIsTool = m_CollObj[j].bToolOn ||
|
||||
( sHead == m_sHead && ( sExit == "_T" + ToString( m_nExit) || sExit == "_TT" + ToString( m_nExit))) ;
|
||||
// se utensile attivo su grezzo in lavoro e non è rapido, salto
|
||||
// se utensile attivo su grezzo in lavoro e non è rapido, salto
|
||||
if ( bIsTool && bIsRaw && nMoveType != 0)
|
||||
continue ;
|
||||
// esecuzione controlli di collisione
|
||||
@@ -1692,7 +1692,7 @@ SimulatorMP::CallFunction( const string& sFun, bool bSetRecord, bool bSetModifie
|
||||
// verifico esistenza funzione
|
||||
if ( ! m_pMachine->LuaExistsFunction( sFun))
|
||||
return true ;
|
||||
// se richiesto, imposto modalità registrazione
|
||||
// se richiesto, imposto modalità registrazione
|
||||
if ( bSetRecord && ! m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_RECORD, true))
|
||||
return false ;
|
||||
// eventuale log di inizio esecuzione
|
||||
@@ -1700,7 +1700,7 @@ SimulatorMP::CallFunction( const string& sFun, bool bSetRecord, bool bSetModifie
|
||||
string sOut = "** " + sFun ;
|
||||
LOG_INFO( GetEMkLogger(), sOut.c_str())
|
||||
}
|
||||
// chiamo la funzione di inizio disposizione
|
||||
// chiamo la funzione
|
||||
bool bOk = m_pMachine->LuaCallFunction( sFun, bSetModifiedOff) ;
|
||||
// se necessario, annullo stato registrazione
|
||||
if ( bSetRecord && ! m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_RECORD, false))
|
||||
@@ -1856,44 +1856,8 @@ SimulatorMP::OnToolSelect( const string& sTool, const string& sHead, int nExit,
|
||||
m_pMachine->LuaGetGlobVar( GLOB_VAR + GVAR_CODET, m_CdId) ;
|
||||
// verifico codice di errore
|
||||
bOk = bOk && m_pMachine->LuaGetGlobVar( GLOB_VAR + GVAR_ERR, nErr) ;
|
||||
// recupero i dati di ritorno per assi ausiliari
|
||||
ResetAuxAxes() ;
|
||||
int nNumAuxAxes = 0 ;
|
||||
if ( ! m_pMachine->LuaGetGlobVar( GLOB_VAR + GVAR_AUXAXES, nNumAuxAxes) || nNumAuxAxes == 0)
|
||||
return ( bOk && nErr == ERR_NONE) ;
|
||||
m_AuxAxesName.reserve( nNumAuxAxes) ;
|
||||
m_AuxAxesToken.reserve( nNumAuxAxes) ;
|
||||
m_AuxAxesInvert.reserve( nNumAuxAxes) ;
|
||||
m_AuxAxesOffset.reserve( nNumAuxAxes) ;
|
||||
m_AuxAxesLinear.reserve( nNumAuxAxes) ;
|
||||
m_AuxAxesVal.reserve( nNumAuxAxes) ;
|
||||
m_AuxAxesEnd.reserve( nNumAuxAxes) ;
|
||||
for ( int i = 1 ; i <= nNumAuxAxes && bOk ; ++ i) {
|
||||
string sName ; string sToken ; bool bInvert ; double dOffset ; bool bLinear ; double dVal ;
|
||||
string sAuxAxName = GLOB_VAR + GVAR_ANN ; ReplaceString( sAuxAxName, "N", ToString( i)) ;
|
||||
if ( m_pMachine->LuaGetGlobVar( sAuxAxName, sName) &&
|
||||
m_pMachine->GetAxisToken( sName, sToken) &&
|
||||
m_pMachine->GetAxisInvert( sName, bInvert) &&
|
||||
m_pMachine->GetAxisOffset( sName, dOffset) &&
|
||||
m_pMachine->GetAxisType( sName, bLinear) &&
|
||||
m_pMachine->GetAxisPos( sName, dVal)) {
|
||||
// se non è già negli assi principali, lo aggiungo
|
||||
if ( find( m_AxesName.begin(), m_AxesName.end(), sName) == m_AxesName.end()) {
|
||||
m_AuxAxesName.emplace_back( sName) ;
|
||||
m_AuxAxesToken.emplace_back( sToken) ;
|
||||
m_AuxAxesInvert.push_back( bInvert) ;
|
||||
m_AuxAxesOffset.push_back( dOffset) ;
|
||||
m_AuxAxesLinear.push_back( bLinear) ;
|
||||
m_AuxAxesVal.emplace_back( dVal) ;
|
||||
m_AuxAxesEnd.emplace_back( dVal) ;
|
||||
m_AuxAxesLink.emplace_back( 0) ;
|
||||
}
|
||||
}
|
||||
else {
|
||||
bOk = false ;
|
||||
nErr = ERR_TOOL_SEL ;
|
||||
}
|
||||
}
|
||||
// recupero eventuali dati di ritorno per assi ausiliari
|
||||
bOk = ReadAuxAxesData( nErr) && bOk ;
|
||||
|
||||
return ( bOk && nErr == ERR_NONE) ;
|
||||
}
|
||||
@@ -2161,7 +2125,7 @@ SimulatorMP::OnMoveStart( const CamData* pCamData, const CamData* pNextCamData,
|
||||
}
|
||||
// se altrimenti specificato valore finale del movimento
|
||||
else if ( m_pMachine->LuaGetGlobVar( sAuxAxVal, dEnd)) {
|
||||
// se assi principali disabilitati o non è tra questi, lo aggiungo
|
||||
// se assi principali disabilitati o non è tra questi, lo aggiungo
|
||||
if ( ! m_bEnabAxes || find( m_AxesName.begin(), m_AxesName.end(), sName) == m_AxesName.end()) {
|
||||
m_AuxAxesName.emplace_back( sName) ;
|
||||
m_AuxAxesToken.emplace_back( sToken) ;
|
||||
@@ -2225,7 +2189,7 @@ SimulatorMP::OnCollision( int nCdInd, int nObjInd, int& nErr)
|
||||
return false ;
|
||||
// verifico codice di errore
|
||||
m_pMachine->LuaGetGlobVar( GLOB_VAR + GVAR_ERR, nErr) ;
|
||||
// l'errore standard di collisione è stato portato da 1 a 11 per non collidere con altri tipi di errori
|
||||
// l'errore standard di collisione è stato portato da 1 a 11 per non collidere con altri tipi di errori
|
||||
if ( nErr == 1) {
|
||||
nErr = ERR_COLLISION ;
|
||||
m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_ERR, nErr) ;
|
||||
@@ -2247,6 +2211,53 @@ SimulatorMP::OnResetMachine( void)
|
||||
return CallFunction( ON_RESET_MACHINE) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
SimulatorMP::ReadAuxAxesData( int& nErr)
|
||||
{
|
||||
bool bOk = true ;
|
||||
// recupero i dati di ritorno per assi ausiliari
|
||||
ResetAuxAxes() ;
|
||||
int nNumAuxAxes = 0 ;
|
||||
if ( ! m_pMachine->LuaGetGlobVar( GLOB_VAR + GVAR_AUXAXES, nNumAuxAxes) || nNumAuxAxes == 0)
|
||||
return ( bOk && nErr == ERR_NONE) ;
|
||||
m_AuxAxesName.reserve( nNumAuxAxes) ;
|
||||
m_AuxAxesToken.reserve( nNumAuxAxes) ;
|
||||
m_AuxAxesInvert.reserve( nNumAuxAxes) ;
|
||||
m_AuxAxesOffset.reserve( nNumAuxAxes) ;
|
||||
m_AuxAxesLinear.reserve( nNumAuxAxes) ;
|
||||
m_AuxAxesVal.reserve( nNumAuxAxes) ;
|
||||
m_AuxAxesEnd.reserve( nNumAuxAxes) ;
|
||||
for ( int i = 1 ; i <= nNumAuxAxes && bOk ; ++ i) {
|
||||
string sName ; string sToken ; bool bInvert ; double dOffset ; bool bLinear ; double dVal ;
|
||||
string sAuxAxName = GLOB_VAR + GVAR_ANN ; ReplaceString( sAuxAxName, "N", ToString( i)) ;
|
||||
if ( m_pMachine->LuaGetGlobVar( sAuxAxName, sName) &&
|
||||
m_pMachine->GetAxisToken( sName, sToken) &&
|
||||
m_pMachine->GetAxisInvert( sName, bInvert) &&
|
||||
m_pMachine->GetAxisOffset( sName, dOffset) &&
|
||||
m_pMachine->GetAxisType( sName, bLinear) &&
|
||||
m_pMachine->GetAxisPos( sName, dVal)) {
|
||||
// se non è già negli assi principali, lo aggiungo
|
||||
if ( find( m_AxesName.begin(), m_AxesName.end(), sName) == m_AxesName.end()) {
|
||||
m_AuxAxesName.emplace_back( sName) ;
|
||||
m_AuxAxesToken.emplace_back( sToken) ;
|
||||
m_AuxAxesInvert.push_back( bInvert) ;
|
||||
m_AuxAxesOffset.push_back( dOffset) ;
|
||||
m_AuxAxesLinear.push_back( bLinear) ;
|
||||
m_AuxAxesVal.emplace_back( dVal) ;
|
||||
m_AuxAxesEnd.emplace_back( dVal) ;
|
||||
m_AuxAxesLink.emplace_back( 0) ;
|
||||
}
|
||||
}
|
||||
else {
|
||||
bOk = false ;
|
||||
nErr = ERR_TOOL_SEL ;
|
||||
}
|
||||
}
|
||||
|
||||
return ( bOk && nErr == ERR_NONE) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
SimulatorMP::AddCollisionObj( int nInd, bool bToolOn, int nFrameId, int nType, const Vector3d& vtMove, double dPar1, double dPar2, double dPar3)
|
||||
@@ -2620,6 +2631,15 @@ SimulatorMP::ExecCmdData( int& nStatus)
|
||||
nStatus = MCH_SIM_ERR ;
|
||||
return false ;
|
||||
}
|
||||
// recupero dati per verifica collisione
|
||||
m_pMachine->LuaGetGlobVar( GLOB_VAR + GVAR_SAFEDIST, m_dSafeDist) ;
|
||||
m_pMachine->LuaGetGlobVar( GLOB_VAR + GVAR_CODET, m_CdId) ;
|
||||
// recupero eventuali dati di ritorno per assi ausiliari
|
||||
int nErr = ERR_NONE ;
|
||||
if ( ! ReadAuxAxesData( nErr)) {
|
||||
nStatus = MCH_SIM_ERR ;
|
||||
return false ;
|
||||
}
|
||||
// Aggiorno indice comandi eseguiti
|
||||
m_nCmdInd += 1 ;
|
||||
m_dCmdCoeff = 0 ;
|
||||
|
||||
Reference in New Issue
Block a user