EgtMachKernel 1.8e5 :
- gestione da parametri lavorazione di angoli iniziali suggeriti e asse rotante bloccato - in fresatura, svuotatura, incisione e lav. generica aggiunta possibilità di invertire direzione utensile - in fresatura aggiunto parametro per tipo lavorazione faccia (perpendicolare, parallela, ...) - differenziata distanza sicurezza standard da distanza sicurezza per rinvio da sotto - migliorati approcci e retrazioni con rinvio da sotto - migliorata segnalazione errori.
This commit is contained in:
+41
-7
@@ -26,6 +26,9 @@
|
||||
|
||||
using namespace std ;
|
||||
|
||||
//------------------------------ Errors --------------------------------------
|
||||
// 1001 = "Error with setup : xxx"
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
Simulator::Simulator( void)
|
||||
{
|
||||
@@ -76,11 +79,17 @@ bool
|
||||
Simulator::Start( bool bFirst)
|
||||
{
|
||||
// Verifico ci sia una macchinata corrente
|
||||
if ( m_pMchMgr == nullptr || m_pMchMgr->GetCurrMachGroup() == GDB_ID_NULL)
|
||||
if ( m_pMchMgr == nullptr || m_pGeomDB == nullptr || m_pMachine == nullptr ||
|
||||
m_pMchMgr->GetCurrMachGroup() == GDB_ID_NULL)
|
||||
return false ;
|
||||
m_pMchMgr->ResetLastError() ;
|
||||
|
||||
// forzo aggiornamento attrezzaggio della macchinata
|
||||
m_pMchMgr->UpdateSetup() ;
|
||||
// Forzo aggiornamento attrezzaggio della macchinata
|
||||
bool bOk = m_pMchMgr->UpdateSetup() ;
|
||||
|
||||
// Se avvio vero, verifico attrezzaggio
|
||||
if ( bFirst && ! VerifySetup())
|
||||
bOk = false ;
|
||||
|
||||
// Reset utensile e assi correnti
|
||||
m_sTool.clear() ;
|
||||
@@ -88,20 +97,45 @@ Simulator::Start( bool bFirst)
|
||||
ResetAuxAxes() ;
|
||||
// porto la macchina in home
|
||||
if ( ! GoHome())
|
||||
return false ;
|
||||
bOk = false ;
|
||||
|
||||
// Verifico la disposizione iniziale della macchinata
|
||||
m_nOpId = m_pMchMgr->GetFirstActiveOperation() ;
|
||||
m_nOpInd = 1 ;
|
||||
if ( m_pMchMgr->GetOperationType( m_nOpId) != OPER_DISP)
|
||||
return false ;
|
||||
bOk = false ;
|
||||
|
||||
// Definisco tabella variabili globali
|
||||
bool bOk = m_pMachine->LuaCreateGlobTable( GLOB_VAR) ;
|
||||
if ( ! m_pMachine->LuaCreateGlobTable( GLOB_VAR))
|
||||
bOk = false ;
|
||||
|
||||
// Arrivo alla preparazione per la prima lavorazione
|
||||
int nStatus ;
|
||||
return FindAndManageOperationStart( true, bFirst, nStatus) ;
|
||||
if ( ! FindAndManageOperationStart( true, bFirst, nStatus))
|
||||
bOk = false ;
|
||||
|
||||
return bOk ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Simulator::VerifySetup( void)
|
||||
{
|
||||
// se attrezzaggio non definito, nulla da verificare
|
||||
if ( ! m_pMchMgr->GetCurrSetupMgr().Exists())
|
||||
return true ;
|
||||
|
||||
// lancio la verifica
|
||||
STRVECTOR vsErr ;
|
||||
if ( m_pMchMgr->VerifyCurrSetup( vsErr))
|
||||
return true ;
|
||||
|
||||
// gestisco errore
|
||||
string sErr = "Error with setup :" ;
|
||||
for each( const auto& sTmp in vsErr)
|
||||
sErr += " " + sTmp ;
|
||||
m_pMchMgr->SetLastError( 1001, sErr) ;
|
||||
return false ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user