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
+36 -2
View File
@@ -164,8 +164,11 @@ Machine::UnloadTool( const string& sHead, int nExit)
//----------------------------------------------------------------------------
bool
Machine::LoadTools( const string& sHead)
Machine::LoadTools( const string& sHead, int* pnCount)
{
// annullo eventuale parametro di conteggio
if ( pnCount != nullptr)
*pnCount = 0 ;
// controllo GeomDB e MachMgr
if ( m_pGeomDB == nullptr || m_pMchMgr == nullptr)
return false ;
@@ -188,7 +191,9 @@ Machine::LoadTools( const string& sHead)
// recupero l'utensile da attrezzare sull'uscita
string sTool ;
if ( m_pMchMgr->GetCurrSetupMgr().GetToolName( sHead, nExit, sTool) && ! sTool.empty()) {
LoadTool( pExit, sTool) ;
bool bOk = LoadTool( pExit, sTool) ;
if ( bOk && pnCount != nullptr)
++ ( *pnCount) ;
}
// se nessun utensile, allora pulisco il gruppo dell'uscita
else {
@@ -201,6 +206,35 @@ Machine::LoadTools( const string& sHead)
return EnableHeadInSet( sHead) ;
}
//----------------------------------------------------------------------------
bool
Machine::LoadAllTools( void)
{
// controllo GeomDB e MachMgr
if ( m_pGeomDB == nullptr || m_pMchMgr == nullptr)
return false ;
// verifico che l'attrezzaggio contenga qualcosa
if ( ! m_pMchMgr->GetCurrSetupMgr().Exists())
return true ;
// ciclo su tutte le teste
for each ( const auto& snGro in m_mapGroups) {
if ( IsHeadGroup( snGro.second)) {
// recupero l'insieme di appartenenza della testa
const STRVECTOR& vsHSet = GetHSet( snGro.first) ;
if ( vsHSet.empty())
continue ;
// se testa capofila dell'insieme
if ( vsHSet.front() == snGro.first) {
// carico prima testa con utensili dell'insieme
for ( int i = 0, nTools = 0 ; i < int( vsHSet.size()) && nTools == 0 ; ++ i) {
LoadTools( vsHSet[i], &nTools) ;
}
}
}
}
return true ;
}
//----------------------------------------------------------------------------
bool
Machine::UnloadTools( const string& sHead)