EgtMachKernel 1.6w1 :

- in simulazione si restituiscono info anche su assi ausiliari e info su tipo asse (lineare o rotante)
- in generazione assegnata max speed a EMT.SMAX su evento OnToolData.
This commit is contained in:
Dario Sassi
2016-11-01 19:05:50 +00:00
parent eb313337e4
commit 9819ad1e9f
9 changed files with 88 additions and 23 deletions
+9 -6
View File
@@ -499,7 +499,7 @@ Generator::OnProgramEnd( void)
bool
Generator::ProcessToolData( void)
{
struct ToolData {
struct MyToolData {
string sName ;
string sHead ;
int nExit ;
@@ -507,10 +507,11 @@ Generator::ProcessToolData( void)
int nComp ;
double dDiam ;
double dLen ;
ToolData( void)
: sName(), sHead(), nExit( 0), sTcPos(), nComp(0), dDiam( 0), dLen( 0) {}
double dMaxSpeed ;
MyToolData( void)
: sName(), sHead(), nExit( 0), sTcPos(), nComp(0), dDiam( 0), dLen( 0), dMaxSpeed( 0) {}
} ;
typedef vector<ToolData> TDATAVECTOR ;
typedef vector<MyToolData> TDATAVECTOR ;
TDATAVECTOR vTdata ;
// ciclo sulle lavorazioni per ricavare gli utensili utilizzati
int nOpId = m_pMchMgr->GetFirstActiveOperation() ;
@@ -526,7 +527,7 @@ Generator::ProcessToolData( void)
if ( ! m_pMchMgr->GetMachiningParam( MPA_TOOL, sTool))
return false ;
// Recupero i dati dell'utensile
ToolData Tdata ;
MyToolData Tdata ;
if ( m_pMchMgr->TdbSetCurrTool( sTool)) {
Tdata.sName = sTool ;
m_pMchMgr->TdbGetCurrToolParam( TPA_HEAD, Tdata.sHead) ;
@@ -535,6 +536,7 @@ Generator::ProcessToolData( void)
m_pMchMgr->TdbGetCurrToolParam( TPA_CORR, Tdata.nComp) ;
m_pMchMgr->TdbGetCurrToolParam( TPA_DIAM, Tdata.dDiam) ;
m_pMchMgr->TdbGetCurrToolParam( TPA_LEN, Tdata.dLen) ;
m_pMchMgr->TdbGetCurrToolParam( TPA_MAXSPEED, Tdata.dMaxSpeed) ;
vTdata.push_back( Tdata) ;
}
}
@@ -542,7 +544,7 @@ Generator::ProcessToolData( void)
nOpId = m_pMchMgr->GetNextActiveOperation( nOpId) ;
}
// ordino l'elenco degli utensili
std::sort( vTdata.begin(), vTdata.end(), []( const ToolData& a, const ToolData& b)
std::sort( vTdata.begin(), vTdata.end(), []( const MyToolData& a, const MyToolData& b)
{ if ( a.sHead == b.sHead)
return a.nExit < b.nExit ;
else
@@ -561,6 +563,7 @@ Generator::ProcessToolData( void)
bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_TCOMP, vTdata[i].nComp) ;
bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_TDIAM, vTdata[i].dDiam) ;
bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_TLEN, vTdata[i].dLen) ;
bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_SMAX, vTdata[i].dMaxSpeed) ;
// se esiste, chiamo la funzione di emissione dati utensile
if ( m_pMachine->LuaExistsFunction( ON_TOOL_DATA))
bOk = bOk && m_pMachine->LuaCallFunction( ON_TOOL_DATA) ;