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:
Dario Sassi
2017-05-31 14:18:11 +00:00
parent c9ab1c76ed
commit 6c7a60b60a
48 changed files with 1214 additions and 234 deletions
+41 -7
View File
@@ -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 ;
}
//----------------------------------------------------------------------------