From 3e542bd41f9a1d5581d0786a2bf30ef1a23fbf70 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Wed, 19 Jun 2019 18:42:35 +0000 Subject: [PATCH] EgtMachKernel : - corretto problema controllo affondamento in foratura introdotto con gestione MaxElev. --- Drilling.cpp | 13 +++++++------ GenMachining.cpp | 5 +++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/Drilling.cpp b/Drilling.cpp index de0ccc2..bbf3bcf 100644 --- a/Drilling.cpp +++ b/Drilling.cpp @@ -997,14 +997,15 @@ Drilling::GenerateHoleCl( int nInd, const SelData& nCircId, const string& sPName // se lavorazione del foro non arriva al suo fondo, lo considero cieco if ( hole.dLen < hole.dThick - 10 * EPS_SMALL) hole.bBlind = true ; - // imposto elevazione come lunghezza del foro - double dMaxElev = hole.dLen ; - // eventuale info con sovrascrittura manuale elevazione - FromString( ExtractInfo( m_Params.m_sUserNotes, "MaxElev="), dMaxElev) ; + // imposto elevazione da lunghezza foro con possibilità di sovrascrittura da info + double dElev = hole.dLen ; + double dMaxElev ; + if ( FromString( ExtractInfo( m_Params.m_sUserNotes, "MaxElev="), dMaxElev) && dElev > dMaxElev) + dElev = dMaxElev ; // limito lunghezza foro a massima lavorazione della punta double dAddLen = ( hole.bBlind ? 0 : m_Params.m_dThroughAddLen) ; - if ( ( dMaxElev + dAddLen) > m_TParams.m_dMaxMat + EPS_SMALL) { - hole.dLen = m_TParams.m_dMaxMat + max( hole.dLen - dMaxElev, 0.) ; + if ( ( dElev + dAddLen) > m_TParams.m_dMaxMat + EPS_SMALL) { + hole.dLen = m_TParams.m_dMaxMat + max( hole.dLen - dElev, 0.) ; hole.bBlind = true ; string sOut = "Drill bit too short for Hole " + ToString( nCircId) ; LOG_WARN( GetEMkLogger(), sOut.c_str()) ; diff --git a/GenMachining.cpp b/GenMachining.cpp index f86b0dc..81f95d7 100644 --- a/GenMachining.cpp +++ b/GenMachining.cpp @@ -648,8 +648,9 @@ GenMachining::Update( bool bPostApply) } // gestione movimenti all'inizio di ogni singolo percorso di lavorazione e alla fine della lavorazione - bool bVpl = true ; - FromString( ExtractInfo( m_Params.m_sUserNotes, "Vpl:"), bVpl) ; + bool bVpl ; + if ( ! FromString( ExtractInfo( m_Params.m_sUserNotes, "Vpl:"), bVpl)) + bVpl = true ; if ( ! AdjustStartEndMovements( bVpl)) { string sInfo = m_pMchMgr->GetOutstrokeInfo() ; if ( sInfo.empty())