diff --git a/Generator.cpp b/Generator.cpp index 3bcfee1..d86252e 100644 --- a/Generator.cpp +++ b/Generator.cpp @@ -445,7 +445,7 @@ Generator::UpdateTool( const string& sTool) return false ; // lo carico in macchina (se esiste attrezzaggio prendo i dati da questo) string sTcPos ; string sHead ; int nExit ; - if ( ! m_stuMgr.GetToolData( m_sTool, sTcPos, sHead, nExit)) { + if ( ! m_stuMgr.GetToolData( sTool, sTcPos, sHead, nExit)) { m_pMchMgr->TdbGetCurrToolParam( TPA_HEAD, sHead) ; m_pMchMgr->TdbGetCurrToolParam( TPA_EXIT, nExit) ; } diff --git a/MachineCalc.cpp b/MachineCalc.cpp index 2d12ed8..6b65e5b 100644 --- a/MachineCalc.cpp +++ b/MachineCalc.cpp @@ -159,7 +159,7 @@ Machine::SetCurrTool( const string& sTool, const string& sHead, int nExit) // recupero i dati della testa Head* pHead = GetHead( nHeadId) ; if ( pHead == nullptr) { - string sOut = "Missing head " + sHead ; + string sOut = "Missing head " + sHead + " for tool " + sTool ; LOG_INFO( GetEMkLogger(), sOut.c_str()) return false ; } diff --git a/SetupMgr.cpp b/SetupMgr.cpp index ce11439..3b8508f 100644 --- a/SetupMgr.cpp +++ b/SetupMgr.cpp @@ -101,8 +101,12 @@ SetupMgr::Load( void) bool SetupMgr::FindTool( const string& sName) { + // verifico validità utensile + if ( IsEmptyOrSpaces( sName)) + return false ; + // eseguo ricerca for ( size_t i = 0 ; i < m_vStuData.size() ; ++ i) { - if ( EqualNoCase( sName, m_vStuData[i].m_sName)) + if ( m_vStuData[i].m_nExit > 0 && EqualNoCase( sName, m_vStuData[i].m_sName)) return true ; } return false ; @@ -113,14 +117,15 @@ bool SetupMgr::GetPosData( int nPos, string& sTcPos, string& sHead, int& nExit, string& sName) { // verifico che la posizione sia valida - if ( nPos < 1 || nPos > int( m_vStuData.size())) + int nI = nPos - 1 ; + if ( nI < 0 || nI >= int( m_vStuData.size())) return false ; // assegno i dati - sTcPos = m_vStuData[nPos - 1].m_sTcPos ; - if ( m_vStuData[nPos - 1].m_nExit > 0) { - sHead = m_vStuData[nPos - 1].m_sHead ; - nExit = m_vStuData[nPos - 1].m_nExit ; - sName = m_vStuData[nPos - 1].m_sName ; + sTcPos = m_vStuData[nI].m_sTcPos ; + if ( m_vStuData[nI].m_nExit > 0) { + sHead = m_vStuData[nI].m_sHead ; + nExit = m_vStuData[nI].m_nExit ; + sName = m_vStuData[nI].m_sName ; } else { sHead = "" ; @@ -134,10 +139,13 @@ SetupMgr::GetPosData( int nPos, string& sTcPos, string& sHead, int& nExit, strin bool SetupMgr::GetToolData( const string& sName, string& sTcPos, string& sHead, int& nExit, int* pnPos) { + // verifico validità utensile + if ( IsEmptyOrSpaces( sName)) + return false ; // cerco l'utensile int nI = - 1 ; for ( size_t i = 0 ; i < m_vStuData.size() ; ++ i) { - if ( EqualNoCase( sName, m_vStuData[i].m_sName)) { + if ( m_vStuData[i].m_nExit > 0 && EqualNoCase( sName, m_vStuData[i].m_sName)) { nI = int( i) ; break ; }