EgtMachKernel 1.6v8 :

- gestita posizione Tavola Home diversa da posizione 0 Macchina in disposizione
- in generazione si assegna il nome macchina
- nel confronto attrezzaggio utensili si tiene conto della posizione in ToolChanger
- se angoli indeterminati ma si determinano con asse ausiliario, li rendo tali direttamente
- aggiunto comando per ricaricare DB utensili e lavorazioni
- aggiunta funzione GetPhaseLastOperation
- ora inserimento lavorazione avviene alla fine della fase corrente
- migliorato split di grezzo con lavorazioni
- in taglio di lama e fresatura irrobustito allungamenti/accorciamenti percorso.
This commit is contained in:
Dario Sassi
2016-10-24 08:27:58 +00:00
parent 1a862d9758
commit d4e4ea3871
17 changed files with 229 additions and 108 deletions
+9 -5
View File
@@ -90,7 +90,7 @@ Generator::Run( const string& sCncFile, const std::string& sInfo)
}
// apertura file di output ed evento inizio programma
if ( bOk && ! OnProgramStart( sCncFile, sInfo)) {
if ( bOk && ! OnProgramStart( m_pMachine->GetMachineName(), sCncFile, sInfo)) {
bOk = false ;
LOG_INFO( GetEMkLogger(), "OnProgramStart error") ;
}
@@ -466,12 +466,14 @@ Generator::OnEnd( void)
//----------------------------------------------------------------------------
bool
Generator::OnProgramStart( const string& sCncFile, const string& sInfo)
Generator::OnProgramStart( const string& sMachName, const string& sCncFile, const string& sInfo)
{
// apro il file di output
bool bOk = m_pMachine->WriterOpen( sCncFile) ;
if ( ! bOk)
LOG_INFO( GetEMkLogger(), "Error opening Cnc file") ;
// assegno nome macchina
bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_MACHNAME, sMachName) ;
// assegno nome file
bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_FILE, sCncFile) ;
// assegno info
@@ -545,10 +547,11 @@ Generator::ProcessToolData( void)
return a.sHead < b.sHead ; }) ;
// emetto l'elenco degli utensili
bool bOk = true ;
string sPrevHead ; int nPrevExit = 0 ; string sPrevTool ;
string sPrevHead ; int nPrevExit = 0 ; string sPrevTcPos ; string sPrevTool ;
for ( size_t i = 0 ; i < vTdata.size() ; ++ i) {
// se posizione diversa
if ( vTdata[i].sHead != sPrevHead || vTdata[i].nExit != nPrevExit) {
// se posizione diversa (testa o uscita o toolchanger)
if ( vTdata[i].sHead != sPrevHead || vTdata[i].nExit != nPrevExit ||
vTdata[i].sTcPos != sPrevTcPos) {
bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_TOOL, vTdata[i].sName) ;
bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_HEAD, vTdata[i].sHead) ;
bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_EXIT, vTdata[i].nExit) ;
@@ -563,6 +566,7 @@ Generator::ProcessToolData( void)
sPrevHead = vTdata[i].sHead ;
nPrevExit = vTdata[i].nExit ;
sPrevTool = vTdata[i].sName ;
sPrevTcPos = vTdata[i].sTcPos ;
}
// altrimenti
else {