From 23c0e1c8d586a67d6d5228bcd79a7a6d58259a32 Mon Sep 17 00:00:00 2001 From: DarioS Date: Sun, 10 Oct 2021 20:04:54 +0200 Subject: [PATCH] EgtMachKernel 2.3j4 : - in fresatura corretta gestione elevazione di attacco e uscita con OneWay. --- EgtMachKernel.rc | Bin 11782 -> 11782 bytes Milling.cpp | 18 ++++++++++++++---- ToolData.cpp | 6 +++--- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/EgtMachKernel.rc b/EgtMachKernel.rc index b8c0b43e3c44897a88fe76289205af0c1dd41a41..f6e423b73f43ee0918f135febf1b724b37ae7238 100644 GIT binary patch delta 97 zcmZpRX^YwLhmFx>^ItYwW=50Aj>5W|vxM9jH?QON0rG*u7nvrX5iEd9O=7{OSQ@Kh Hr8(RHQ1Kv2 delta 97 zcmZpRX^YwLhmFyA^ItYwW=7-5j>5W|vxM9jH?QON0rG*u7nvrX5iEd9O=7{OSQ@Kh Hr8(RHPhB8F diff --git a/Milling.cpp b/Milling.cpp index 719d55f..332fee6 100644 --- a/Milling.cpp +++ b/Milling.cpp @@ -2747,14 +2747,19 @@ Milling::AddOneWayMilling( const ICurveComposite* pCompo, const Vector3d& vtTool // aggiungo approccio per frese normali if ( ( m_TParams.m_nType & TF_SAWBLADE) == 0) { // correggo elevazione iniziale per punto inizio attacco (se testa da sopra senza aggregato approccio mai Z-) + Point3d ptP1m = ptP1 - 10 * EPS_SMALL * vtTool ; Vector3d vtEscape = vtTool ; if ( m_bAboveHead && ! m_bAggrBottom && vtTool.z < - EPS_SMALL) { vtEscape.z = 0 ; vtEscape.Normalize() ; } double dNewStElev ; - if ( GetElevation( m_nPhase, ptP1 - 10 * EPS_SMALL * vtTool, vtTool, GetRadiusForStartEndElevation(), vtEscape, dNewStElev) && dNewStElev > EPS_SMALL) - dStElev = min( dStElev, dNewStElev) ; + if ( GetElevation( m_nPhase, ptP1m, vtTool, GetRadiusForStartEndElevation(), vtEscape, dNewStElev) && dNewStElev > EPS_SMALL) { + if ( bAboveStartEnd) + dStElev = min( dStElev, dNewStElev) ; + else + dStElev = max( dStElev, dNewStElev) ; + } // determino se l'inizio dell'attacco è esattamente sotto il grezzo, nel qual caso ricalcolo l'elevazione bool bUnderStart = m_bAboveHead && GetPointUnderRaw( ptP1, vtTool, 0, GetRadiusForStartEndElevation(), m_TParams.m_dLen, false, dSafeZ, dStElev) ; @@ -2864,14 +2869,19 @@ Milling::AddOneWayMilling( const ICurveComposite* pCompo, const Vector3d& vtTool // aggiungo retrazione per frese normali (esclusi step intermedi senza retrazione) if ( ( m_TParams.m_nType & TF_SAWBLADE) == 0 && ( j == nStep || bMidRetract)) { // correggo elevazione finale per punto fine uscita (se testa da sopra senza aggregato approccio mai Z-) + Point3d ptP1m = ptP1 - 10 * EPS_SMALL * vtTool ; Vector3d vtEscape = vtTool ; if ( m_bAboveHead && ! m_bAggrBottom && vtTool.z < - EPS_SMALL) { vtEscape.z = 0 ; vtEscape.Normalize() ; } double dNewEndElev ; - if ( GetElevation( m_nPhase, ptP1 - 10 * EPS_SMALL * vtTool, vtTool, GetRadiusForStartEndElevation(), vtEscape, dNewEndElev) && dNewEndElev > EPS_SMALL) - dEndElev = min( dEndElev, dNewEndElev) ; + if ( GetElevation( m_nPhase, ptP1m, vtTool, GetRadiusForStartEndElevation(), vtEscape, dNewEndElev) && dNewEndElev > EPS_SMALL) { + if ( bAboveStartEnd) + dEndElev = min( dEndElev, dNewEndElev) ; + else + dEndElev = max( dEndElev, dNewEndElev) ; + } // determino se l'inizio dell'uscita è esattamente sotto il grezzo, nel qual caso ricalcolo l'elevazione bool bUnderEnd = m_bAboveHead && GetPointUnderRaw( ptP1, vtTool, 0, GetRadiusForStartEndElevation(), m_TParams.m_dLen, false, dSafeZ, dEndElev) ; diff --git a/ToolData.cpp b/ToolData.cpp index f69acfa..40b62a7 100644 --- a/ToolData.cpp +++ b/ToolData.cpp @@ -354,19 +354,19 @@ ToolData::SetParam( int nType, double dVal) m_dMinFeed = dVal ; return true ; case TPA_DIST : - if ( abs( dVal) > 0) + if ( abs( dVal) > EPS_SMALL) SetValInNotes( TSI_DIST, dVal, m_sSysNotes) ; else RemoveValInNotes( TSI_DIST, m_sSysNotes) ; return true ; case TPA_STEMDIAM : - if ( abs( dVal) > 0) + if ( abs( dVal) > EPS_SMALL) SetValInNotes( TSI_STEM_DIAM, dVal, m_sSysNotes) ; else RemoveValInNotes( TSI_STEM_DIAM, m_sSysNotes) ; return true ; case TPA_CORE : - if ( abs( dVal) > 0) + if ( abs( dVal) > EPS_SMALL) SetValInNotes( TSI_CORE, dVal, m_sSysNotes) ; else RemoveValInNotes( TSI_CORE, m_sSysNotes) ;