diff --git a/MachineLuaCL.cpp b/MachineLuaCL.cpp index a48c329..72f7e10 100644 --- a/MachineLuaCL.cpp +++ b/MachineLuaCL.cpp @@ -313,6 +313,8 @@ Machine::LuaEmtAddClimb( lua_State* L) Operation* pOper = GetOperation( m_pMchLua->m_pGeomDB->GetUserObj( nMachId)) ; // imposto la discesa (primo movimento del primo percorso della lavorazione) bool bOk = ( pOper != nullptr && pOper->AddSpecialClimb( vAxVal, ( nMask >= 0), GDB_ID_NULL, nFlag, nFlag2, nMask, sInfo, false)) ; + if ( ! bOk) + return luaL_error( L, " Error in EmtAddClimb") ; LuaSetParam( L, bOk) ; return 1 ; @@ -365,6 +367,8 @@ Machine::LuaEmtAddRise( lua_State* L) Operation* pOper = GetOperation( m_pMchLua->m_pGeomDB->GetUserObj( nMachId)) ; // aggiungo la risalita (ultimo movimento dell'ultimo percorso della lavorazione) bool bOk = ( pOper != nullptr && pOper->AddSpecialRise( vAxVal, ( nMask >= 0), GDB_ID_NULL, nFlag, nFlag2, nMask, sInfo)) ; + if ( ! bOk) + return luaL_error( L, " Error in EmtAddRise") ; LuaSetParam( L, bOk) ; return 1 ; diff --git a/Operation.cpp b/Operation.cpp index ef77197..af687f6 100644 --- a/Operation.cpp +++ b/Operation.cpp @@ -3464,14 +3464,11 @@ Operation::ManageSpecialLink( Operation* pPrevOpe, int nPrevClPathId, Operation* // in caso di errore eseguo inserimento con segnalazione di errore if ( ! bOk) { - if ( pPrevOpe != nullptr) { - if ( ! pPrevOpe->AddSpecialRise( vAxSta, false)) - return false ; - } - if ( pNextOpe != nullptr) { - if ( ! pNextOpe->AddSpecialClimb( vAxEnd, false)) - return false ; - } + if ( pPrevOpe != nullptr) + pPrevOpe->AddSpecialRise( vAxSta, false) ; + if ( pNextOpe != nullptr) + pNextOpe->AddSpecialClimb( vAxEnd, false) ; + return false ; } return true ; @@ -3895,6 +3892,14 @@ Operation::AddSpecialClimb( const DBLVECTOR& vAxVal, bool bOk, int nClPathId, CamData* pCamData = GetCamData( m_pGeomDB->GetUserObj( nEntId)) ; if ( pCamData == nullptr) return false ; + // verifico che il numero di valori sia corretto + int nValCnt = int( vAxVal.size()) ; + int nAxesCnt = int( pCamData->GetAxesVal().size()) ; + if ( nValCnt != nAxesCnt) { + string sOut = "Error : " + ToString( nValCnt) + " values vs " + ToString( nAxesCnt) + " axes" ; + LOG_ERROR( GetEMkLogger(), sOut.c_str()) + return false ; + } // creo oggetto punto per DB geometrico PtrOwner pGP( CreateGeoPoint3d()) ; if ( IsNull( pGP)) @@ -4163,6 +4168,14 @@ Operation::AddSpecialRise( const DBLVECTOR& vAxVal, bool bOk, int nClPathId, CamData* pCamData = GetCamData( m_pGeomDB->GetUserObj( nEntId)) ; if ( pCamData == nullptr) return false ; + // verifico che il numero di valori sia corretto + int nValCnt = int( vAxVal.size()) ; + int nAxesCnt = int( pCamData->GetAxesVal().size()) ; + if ( nValCnt != nAxesCnt) { + string sOut = "Error : " + ToString( nValCnt) + " values vs " + ToString( nAxesCnt) + " axes" ; + LOG_ERROR( GetEMkLogger(), sOut.c_str()) + return false ; + } // creo oggetto punto per DB geometrico PtrOwner pGP( CreateGeoPoint3d()) ; if ( IsNull( pGP))