Merge remote-tracking branch 'origin/master' into feature/SvuotatureConIsole
This commit is contained in:
Binary file not shown.
@@ -37,6 +37,7 @@ static const string EVAR_TOTDIAM = ".TOTDIAM" ; // (num) diametro di in
|
||||
static const string EVAR_TOTLEN = ".TOTLEN" ; // (num) lunghezza di ingombro dell'utensile
|
||||
static const string EVAR_DIST = ".DIST" ; // (num) distanza dell'utensile (per seghe a catena)
|
||||
static const string EVAR_EXITPOS = ".EXITPOS" ; // (point) posizione attuale dell'uscita
|
||||
static const string EVAR_TCPOS = ".TCPOS" ; // (string) posizione nell'attrezzaggio
|
||||
static const string EVAR_L1 = ".L1" ; // (num) valore del primo asse lineare
|
||||
static const string EVAR_L2 = ".L2" ; // (num) valore del secondo asse lineare
|
||||
static const string EVAR_L3 = ".L3" ; // (num) valore del terzo asse lineare
|
||||
@@ -229,6 +230,7 @@ Machine::SetCurrTool( const string& sTool, const string& sHead, int nExit)
|
||||
double dTOvLen = 0 ;
|
||||
double dTOvDiam = 0 ;
|
||||
double dTDist = 0 ;
|
||||
string sTcPos = "" ;
|
||||
// se definito
|
||||
if ( ! sTool.empty()) {
|
||||
// carico anche gli utensili su eventuali altre uscite della testa
|
||||
@@ -249,6 +251,8 @@ Machine::SetCurrTool( const string& sTool, const string& sHead, int nExit)
|
||||
! m_pMchMgr->TdbGetCurrToolParam( TPA_TOTDIAM, dTOvDiam))
|
||||
return false ;
|
||||
m_pMchMgr->TdbGetCurrToolParam( TPA_DIST, dTDist) ; // opzionale
|
||||
if ( ! m_pMchMgr->GetCurrSetupMgr().GetToolSetupPos( sTool, sTcPos))
|
||||
m_pMchMgr->TdbGetCurrToolParam( TPA_TCPOS, sTcPos) ;
|
||||
}
|
||||
// altrimenti casi speciali senza utensile
|
||||
else {
|
||||
@@ -261,6 +265,7 @@ Machine::SetCurrTool( const string& sTool, const string& sHead, int nExit)
|
||||
dTOvLen = 0 ;
|
||||
dTOvDiam = 0 ;
|
||||
dTDist = 0 ;
|
||||
sTcPos = "" ;
|
||||
m_pMchMgr->TdbSetCurrTool( "") ;
|
||||
}
|
||||
// assegno tutti i dati
|
||||
@@ -289,6 +294,7 @@ Machine::SetCurrTool( const string& sTool, const string& sHead, int nExit)
|
||||
bOk = bOk && LuaSetGlobVar( EMC_VAR + EVAR_TOTDIAM, dTOvDiam) ;
|
||||
bOk = bOk && LuaSetGlobVar( EMC_VAR + EVAR_TOTLEN, dTOvLen) ;
|
||||
bOk = bOk && LuaSetGlobVar( EMC_VAR + EVAR_DIST, dTDist) ;
|
||||
bOk = bOk && LuaSetGlobVar( EMC_VAR + EVAR_TCPOS, sTcPos) ;
|
||||
// chiamo funzione
|
||||
bOk = bOk && LuaCallFunction( ON_SET_HEAD) ;
|
||||
// reset variabili
|
||||
|
||||
@@ -1895,6 +1895,8 @@ Operation::AdjustStartEndMovements( bool bVerifyPreviousLink)
|
||||
}
|
||||
// altrimenti aggiungo uscita per cambio utensile alla lavorazione precedente e parto da questa
|
||||
else {
|
||||
// imposto la lavorazione precedente come corrente
|
||||
m_pMchMgr->SetCurrMachining( pPrevOp->GetOwner()) ;
|
||||
// imposto l'utensile precedente per i calcoli macchina
|
||||
if ( ! m_pMchMgr->SetCalcTool( pPrevOp->GetToolName(), pPrevOp->GetHeadName(), pPrevOp->GetExitNbr()))
|
||||
return false ;
|
||||
@@ -1908,6 +1910,8 @@ Operation::AdjustStartEndMovements( bool bVerifyPreviousLink)
|
||||
if ( ! m_pMchMgr->GetAllCurrAxesHomePos( vAxVal))
|
||||
return false ;
|
||||
}
|
||||
// ripristino la lavorazione corrente
|
||||
m_pMchMgr->SetCurrMachining( GetOwner()) ;
|
||||
// imposto l'utensile per i calcoli macchina
|
||||
if ( ! m_pMchMgr->SetCalcTool( GetToolName(), GetHeadName(), GetExitNbr()))
|
||||
return false ;
|
||||
|
||||
+11
-14
@@ -478,21 +478,18 @@ Processor::UpdateTool( const string& sTool)
|
||||
{
|
||||
// Salvo l'utensile attuale come precedente
|
||||
m_sPrevTool = m_sTool ;
|
||||
// Se cambiato utensile ...
|
||||
if ( sTool != m_sTool) {
|
||||
// lo imposto come corrente
|
||||
if ( ! m_pMchMgr->TdbSetCurrTool( sTool))
|
||||
return false ;
|
||||
// lo carico in macchina (se esiste attrezzaggio prendo i dati da questo)
|
||||
string sTcPos ; string sHead ; int nExit ;
|
||||
if ( ! m_pMchMgr->GetCurrSetupMgr().GetToolData( sTool, sTcPos, sHead, nExit)) {
|
||||
m_pMchMgr->TdbGetCurrToolParam( TPA_HEAD, sHead) ;
|
||||
m_pMchMgr->TdbGetCurrToolParam( TPA_EXIT, nExit) ;
|
||||
}
|
||||
if ( ! m_pMchMgr->SetCalcTool( sTool, sHead, nExit))
|
||||
return false ;
|
||||
m_sTool = sTool ;
|
||||
// Lo imposto come corrente
|
||||
if ( ! m_pMchMgr->TdbSetCurrTool( sTool))
|
||||
return false ;
|
||||
// Lo carico in macchina (se esiste attrezzaggio prendo i dati da questo)
|
||||
string sTcPos ; string sHead ; int nExit ;
|
||||
if ( ! m_pMchMgr->GetCurrSetupMgr().GetToolData( sTool, sTcPos, sHead, nExit)) {
|
||||
m_pMchMgr->TdbGetCurrToolParam( TPA_HEAD, sHead) ;
|
||||
m_pMchMgr->TdbGetCurrToolParam( TPA_EXIT, nExit) ;
|
||||
}
|
||||
if ( ! m_pMchMgr->SetCalcTool( sTool, sHead, nExit))
|
||||
return false ;
|
||||
m_sTool = sTool ;
|
||||
return true ;
|
||||
}
|
||||
|
||||
|
||||
@@ -49,6 +49,8 @@ class SetupMgr
|
||||
bool FindTool( const std::string& sName) const ;
|
||||
bool GetPosData( int nPos, std::string& sTcPos, std::string& sHead, int& nExit, std::string& sName) const ;
|
||||
bool GetToolData( const std::string& sName, std::string& sTcPos, std::string& sHead, int& nExit, int* pnPos = nullptr) const ;
|
||||
bool GetToolSetupPos( const std::string& sName, std::string& sTcPos) const
|
||||
{ std::string sH ; int nE ; return GetToolData( sName, sTcPos, sH, nE) ; }
|
||||
bool GetToolName( const std::string& sHead, int nExit, std::string& sName) const ;
|
||||
bool GetToolsInSetupPos( const std::string& sTcPos, STRVECTOR& vsTools) const ;
|
||||
|
||||
|
||||
+40
-34
@@ -435,45 +435,51 @@ Simulator::UpdateTool( bool bFirst)
|
||||
// ripristino l'utensile corrente
|
||||
m_pMchMgr->TdbSetCurrTool( m_sTool) ;
|
||||
}
|
||||
// verifico se cambierà
|
||||
bool bDiffTool = ( sTool != m_sTool) ;
|
||||
// se cambierà ed esiste il corrente, lo scarico
|
||||
if ( sTool != m_sTool && ! m_sTool.empty()) {
|
||||
if ( bDiffTool && ! m_sTool.empty()) {
|
||||
// eventuale lancio script per scarico utensile
|
||||
if ( ! OnToolDeselect( sTool, sHead, nExit, sTcPos))
|
||||
return false ;
|
||||
}
|
||||
// se cambiato oppure prima volta, attivo l'utensile della lavorazione
|
||||
if ( sTool != m_sTool || bFirst) {
|
||||
// se prima volta, pulisco la testa
|
||||
if ( bFirst)
|
||||
m_pMchMgr->ResetHeadSet( sHead) ;
|
||||
// carico l'utensile (e lo rendo corrente)
|
||||
if ( ! m_pMchMgr->SetCalcTool( sTool, sHead, nExit))
|
||||
return false ;
|
||||
m_sTool = sTool ;
|
||||
m_sHead = sHead ;
|
||||
m_nExit = nExit ;
|
||||
m_pMchMgr->TdbGetCurrToolParam( TPA_DIAM, m_dTDiam) ;
|
||||
// aggiorno gli assi macchina
|
||||
if ( ! UpdateAxes())
|
||||
return false ;
|
||||
// eventuali offset per Vmill (per adattare lo ZeroT macchina con quello di Zmap)
|
||||
int nToolType ; m_pMchMgr->TdbGetCurrToolParam( TPA_TYPE, nToolType) ;
|
||||
if ( nToolType == TT_MORTISE_STD) {
|
||||
double dThick ; m_pMchMgr->TdbGetCurrToolParam( TPA_THICK, dThick) ;
|
||||
m_dVmTdOffs = 0 ;
|
||||
m_dVmAdOffs = 0.5 * dThick ;
|
||||
}
|
||||
else if ( nToolType == TT_SAW_STD || nToolType == TT_SAW_FLAT) {
|
||||
double dLen ; m_pMchMgr->TdbGetCurrToolParam( TPA_LEN, dLen) ;
|
||||
double dThick ; m_pMchMgr->TdbGetCurrToolParam( TPA_THICK, dThick) ;
|
||||
m_dVmTdOffs = ( ( dLen <= dThick) ? -dLen + dThick : 0) ;
|
||||
m_dVmAdOffs = 0 ;
|
||||
}
|
||||
else {
|
||||
m_dVmTdOffs = 0 ;
|
||||
m_dVmAdOffs = 0 ;
|
||||
}
|
||||
// eventuale lancio script
|
||||
// se prima volta, pulisco la testa
|
||||
if ( bFirst)
|
||||
m_pMchMgr->ResetHeadSet( sHead) ;
|
||||
// recupero la lavorazione corrente e imposto la nuova
|
||||
int nCurrMchId = m_pMchMgr->GetCurrMachining() ;
|
||||
m_pMchMgr->SetCurrMachining( m_nOpId) ;
|
||||
// carico l'utensile (e lo rendo corrente)
|
||||
if ( ! m_pMchMgr->SetCalcTool( sTool, sHead, nExit))
|
||||
return false ;
|
||||
m_sTool = sTool ;
|
||||
m_sHead = sHead ;
|
||||
m_nExit = nExit ;
|
||||
m_pMchMgr->TdbGetCurrToolParam( TPA_DIAM, m_dTDiam) ;
|
||||
// ripristino la lavorazione corrente
|
||||
m_pMchMgr->SetCurrMachining( nCurrMchId) ;
|
||||
// aggiorno gli assi macchina
|
||||
if ( ! UpdateAxes())
|
||||
return false ;
|
||||
// eventuali offset per Vmill (per adattare lo ZeroT macchina con quello di Zmap)
|
||||
int nToolType ; m_pMchMgr->TdbGetCurrToolParam( TPA_TYPE, nToolType) ;
|
||||
if ( nToolType == TT_MORTISE_STD) {
|
||||
double dThick ; m_pMchMgr->TdbGetCurrToolParam( TPA_THICK, dThick) ;
|
||||
m_dVmTdOffs = 0 ;
|
||||
m_dVmAdOffs = 0.5 * dThick ;
|
||||
}
|
||||
else if ( nToolType == TT_SAW_STD || nToolType == TT_SAW_FLAT) {
|
||||
double dLen ; m_pMchMgr->TdbGetCurrToolParam( TPA_LEN, dLen) ;
|
||||
double dThick ; m_pMchMgr->TdbGetCurrToolParam( TPA_THICK, dThick) ;
|
||||
m_dVmTdOffs = ( ( dLen <= dThick) ? -dLen + dThick : 0) ;
|
||||
m_dVmAdOffs = 0 ;
|
||||
}
|
||||
else {
|
||||
m_dVmTdOffs = 0 ;
|
||||
m_dVmAdOffs = 0 ;
|
||||
}
|
||||
// se cambiato oppure prima volta, lancio lo script di selezione
|
||||
if ( bDiffTool || bFirst) {
|
||||
if ( ! OnToolSelect( m_sTool, sHead, nExit, sTcPos, bFirst))
|
||||
return false ;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user