From be5bfb7d4b623f1e52e4b81b79a6914daa0d2f47 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Tue, 19 Jan 2016 18:00:02 +0000 Subject: [PATCH] EgtMachKernel : - migliorato confronto tra utensili e tra lavorazioni. --- DrillingData.cpp | 13 +++++++------ MachiningConst.h | 6 ++++++ MillingData.cpp | 34 +++++++++++++++++----------------- SawingData.cpp | 14 +++++++------- ToolData.h | 42 ++++++++++++++++++++++++------------------ 5 files changed, 61 insertions(+), 48 deletions(-) diff --git a/DrillingData.cpp b/DrillingData.cpp index e374ec5..3e0e1be 100644 --- a/DrillingData.cpp +++ b/DrillingData.cpp @@ -15,6 +15,7 @@ #include "stdafx.h" #include "DrillingData.h" #include "MachiningDataFactory.h" +#include "MachiningConst.h" #include "/EgtDev/Include/EmkToolConst.h" #include "/EgtDev/Include/EGnStringUtils.h" #include @@ -116,12 +117,12 @@ DrillingData::SameAs(const MachiningData* pMdata) const m_sToolName == pDdata->m_sToolName && m_bInvert == pDdata->m_bInvert && m_sDepth == pDdata->m_sDepth && - m_dStartPos == pDdata->m_dStartPos && - m_dStartSlowLen == pDdata->m_dStartSlowLen && - m_dEndSlowLen == pDdata->m_dEndSlowLen && - m_dThroughAddLen == pDdata->m_dThroughAddLen && - m_dStep == pDdata->m_dStep && - m_dReturnPos == pDdata->m_dReturnPos) ; + abs( m_dStartPos - pDdata->m_dStartPos) < EPS_MACH_LEN_PAR && + abs( m_dStartSlowLen - pDdata->m_dStartSlowLen) < EPS_MACH_LEN_PAR && + abs( m_dEndSlowLen - pDdata->m_dEndSlowLen) < EPS_MACH_LEN_PAR && + abs( m_dThroughAddLen - pDdata->m_dThroughAddLen) < EPS_MACH_LEN_PAR && + abs( m_dStep - pDdata->m_dStep) < EPS_MACH_LEN_PAR && + abs( m_dReturnPos - pDdata->m_dReturnPos) < EPS_MACH_LEN_PAR) ; } //---------------------------------------------------------------------------- diff --git a/MachiningConst.h b/MachiningConst.h index 168d3ab..04983e5 100644 --- a/MachiningConst.h +++ b/MachiningConst.h @@ -15,3 +15,9 @@ #include "/EgtDev/Include/EMkMachiningConst.h" #include "/EgtDev/Include/EMkMachiningGeoConst.h" +#include "/EgtDev/Include/EGkGeoConst.h" + +//---------------------------------------------------------------------------- +// Epsilon per parametri lavorazioni +const double EPS_MACH_LEN_PAR = 10 * EPS_SMALL ; +const double EPS_MACH_ANG_PAR = 10 * EPS_ANG_SMALL ; diff --git a/MillingData.cpp b/MillingData.cpp index 19de093..afed32d 100644 --- a/MillingData.cpp +++ b/MillingData.cpp @@ -15,8 +15,8 @@ #include "stdafx.h" #include "MillingData.h" #include "MachiningDataFactory.h" +#include "MachiningConst.h" #include "/EgtDev/Include/EmkToolConst.h" -#include "/EgtDev/Include/EgkGeoConst.h" #include "/EgtDev/Include/EGnStringUtils.h" #include #include @@ -163,26 +163,26 @@ MillingData::SameAs(const MachiningData* pMdata) const m_bInvert == pSdata->m_bInvert && m_nWorkSide == pSdata->m_nWorkSide && m_sDepth == pSdata->m_sDepth && - m_dStartPos == pSdata->m_dStartPos && - m_dOverlap == pSdata->m_dOverlap && - m_dStep == pSdata->m_dStep && + abs( m_dStartPos - pSdata->m_dStartPos) < EPS_MACH_LEN_PAR && + abs( m_dOverlap - pSdata->m_dOverlap) < EPS_MACH_LEN_PAR && + abs( m_dStep - pSdata->m_dStep) < EPS_MACH_LEN_PAR && m_nStepType == pSdata->m_nStepType && - m_dSideAngle == pSdata->m_dSideAngle && + abs( m_dSideAngle - pSdata->m_dSideAngle) < EPS_MACH_ANG_PAR && m_bLeaveTab == pSdata->m_bLeaveTab && - m_dTabLen == pSdata->m_dTabLen && - m_dTabDist == pSdata->m_dTabDist && - m_dTabHeight == pSdata->m_dTabHeight && - m_dTabAngle == pSdata->m_dTabAngle && + abs( m_dTabLen - pSdata->m_dTabLen) < EPS_MACH_LEN_PAR && + abs( m_dTabDist - pSdata->m_dTabDist) < EPS_MACH_LEN_PAR && + abs( m_dTabHeight - pSdata->m_dTabHeight) < EPS_MACH_LEN_PAR && + abs( m_dTabAngle - pSdata->m_dTabAngle) < EPS_MACH_ANG_PAR && m_nLeadInType == pSdata->m_nLeadInType && - m_dLiTang == pSdata->m_dLiTang && - m_dLiPerp == pSdata->m_dLiPerp && - m_dLiElev == pSdata->m_dLiElev && - m_dLiCompLen == pSdata->m_dLiCompLen && + abs( m_dLiTang - pSdata->m_dLiTang) < EPS_MACH_LEN_PAR && + abs( m_dLiPerp - pSdata->m_dLiPerp) < EPS_MACH_LEN_PAR && + abs( m_dLiElev - pSdata->m_dLiElev) < EPS_MACH_LEN_PAR && + abs( m_dLiCompLen - pSdata->m_dLiCompLen) < EPS_MACH_LEN_PAR && m_nLeadOutType == pSdata->m_nLeadOutType && - m_dLoTang == pSdata->m_dLoTang && - m_dLoPerp == pSdata->m_dLoPerp && - m_dLoElev == pSdata->m_dLoElev && - m_dLoCompLen == pSdata->m_dLoCompLen) ; + abs( m_dLoTang - pSdata->m_dLoTang) < EPS_MACH_LEN_PAR && + abs( m_dLoPerp - pSdata->m_dLoPerp) < EPS_MACH_LEN_PAR && + abs( m_dLoElev - pSdata->m_dLoElev) < EPS_MACH_LEN_PAR && + abs( m_dLoCompLen - pSdata->m_dLoCompLen) < EPS_MACH_LEN_PAR) ; } //---------------------------------------------------------------------------- diff --git a/SawingData.cpp b/SawingData.cpp index d44bbcc..a6242f1 100644 --- a/SawingData.cpp +++ b/SawingData.cpp @@ -15,8 +15,8 @@ #include "stdafx.h" #include "SawingData.h" #include "MachiningDataFactory.h" +#include "MachiningConst.h" #include "/EgtDev/Include/EmkToolConst.h" -#include "/EgtDev/Include/EGkGeoConst.h" #include "/EgtDev/Include/EGnStringUtils.h" #include #include @@ -140,17 +140,17 @@ SawingData::SameAs(const MachiningData* pMdata) const m_nWorkSide == pSdata->m_nWorkSide && m_nHeadSide == pSdata->m_nHeadSide && m_sDepth == pSdata->m_sDepth && - m_dStartPos == pSdata->m_dStartPos && - m_dStep == pSdata->m_dStep && + abs( m_dStartPos - pSdata->m_dStartPos) < EPS_MACH_LEN_PAR && + abs( m_dStep - pSdata->m_dStep) < EPS_MACH_LEN_PAR && m_nStepType == pSdata->m_nStepType && - m_dSideAngle == pSdata->m_dSideAngle && - m_dStartAddLen == pSdata->m_dStartAddLen && - m_dEndAddLen == pSdata->m_dEndAddLen && + abs( m_dSideAngle - pSdata->m_dSideAngle) < EPS_MACH_ANG_PAR && + abs( m_dStartAddLen - pSdata->m_dStartAddLen) < EPS_MACH_LEN_PAR && + abs( m_dEndAddLen - pSdata->m_dEndAddLen) < EPS_MACH_LEN_PAR && m_nLeadInType == pSdata->m_nLeadInType && m_nExtLinkType == pSdata->m_nExtLinkType && m_nLeadOutType == pSdata->m_nLeadOutType && m_nCurveUse == pSdata->m_nCurveUse && - m_dApprox == pSdata->m_dApprox) ; + abs( m_dApprox - pSdata->m_dApprox) < EPS_MACH_LEN_PAR) ; } //---------------------------------------------------------------------------- diff --git a/ToolData.h b/ToolData.h index 6f728ce..4b12c3a 100644 --- a/ToolData.h +++ b/ToolData.h @@ -13,6 +13,7 @@ #pragma once +#include "/EgtDev/Include/EGkGeoConst.h" #include "/EgtDev/Include/EGnEgtUUID.h" #include @@ -73,6 +74,11 @@ struct ToolData inline bool SameTool( const ToolData& Td1, const ToolData& Td2) { + const double EPS_TOOL_LEN = 10 * EPS_SMALL ; + const double EPS_TOOL_ANG = 10 * EPS_ANG_SMALL ; + const double EPS_SPEED = 0.5 ; + const double EPS_FEED = 0.5 ; + const double EPS_ABSORP = 0.5 ; return ( Td1.m_Uuid == Td2.m_Uuid && Td1.m_sName == Td2.m_sName && Td1.m_sDraw == Td2.m_sDraw && @@ -81,25 +87,25 @@ SameTool( const ToolData& Td1, const ToolData& Td2) Td1.m_nExit == Td2.m_nExit && Td1.m_nCorr == Td2.m_nCorr && Td1.m_nType == Td2.m_nType && - Td1.m_dMaxSpeed == Td2.m_dMaxSpeed && - Td1.m_dMaxMat == Td2.m_dMaxMat && - Td1.m_dDiam == Td2.m_dDiam && - Td1.m_dTDiam == Td2.m_dTDiam && - Td1.m_dLen == Td2.m_dLen && - Td1.m_dTLen == Td2.m_dTLen && - Td1.m_dThick == Td2.m_dThick && - Td1.m_dCornRad == Td2.m_dCornRad && - Td1.m_dSideAng == Td2.m_dSideAng && - Td1.m_dSpeed == Td2.m_dSpeed && - Td1.m_dFeed == Td2.m_dFeed && - Td1.m_dStartFeed == Td2.m_dStartFeed && - Td1.m_dEndFeed == Td2.m_dEndFeed && - Td1.m_dTipFeed == Td2.m_dTipFeed && - Td1.m_dOffsR == Td2.m_dOffsR && - Td1.m_dOffsL == Td2.m_dOffsL && + abs( Td1.m_dMaxSpeed - Td2.m_dMaxSpeed) < EPS_SPEED && + abs( Td1.m_dMaxMat - Td2.m_dMaxMat) < EPS_TOOL_LEN && + abs( Td1.m_dDiam - Td2.m_dDiam) < EPS_TOOL_LEN && + abs( Td1.m_dTDiam - Td2.m_dTDiam) < EPS_TOOL_LEN && + abs( Td1.m_dLen - Td2.m_dLen) < EPS_TOOL_LEN && + abs( Td1.m_dTLen - Td2.m_dTLen) < EPS_TOOL_LEN && + abs( Td1.m_dThick - Td2.m_dThick) < EPS_TOOL_LEN && + abs( Td1.m_dCornRad - Td2.m_dCornRad) < EPS_TOOL_LEN && + abs( Td1.m_dSideAng - Td2.m_dSideAng) < EPS_TOOL_ANG && + abs( Td1.m_dSpeed - Td2.m_dSpeed) < EPS_SPEED && + abs( Td1.m_dFeed - Td2.m_dFeed) < EPS_FEED && + abs( Td1.m_dStartFeed - Td2.m_dStartFeed) < EPS_FEED && + abs( Td1.m_dEndFeed - Td2.m_dEndFeed) < EPS_FEED && + abs( Td1.m_dTipFeed - Td2.m_dTipFeed) < EPS_FEED && + abs( Td1.m_dOffsR - Td2.m_dOffsR) < EPS_TOOL_LEN && + abs( Td1.m_dOffsL - Td2.m_dOffsL) < EPS_TOOL_LEN && Td1.m_nCoolant == Td2.m_nCoolant && - Td1.m_dMaxAbsorption == Td2.m_dMaxAbsorption && - Td1.m_dMinFeed == Td2.m_dMinFeed && + abs( Td1.m_dMaxAbsorption - Td2.m_dMaxAbsorption) < EPS_ABSORP && + abs( Td1.m_dMinFeed - Td2.m_dMinFeed) < EPS_FEED && Td1.m_sSysNotes == Td2.m_sSysNotes && Td1.m_sUserNotes == Td2.m_sUserNotes) ; } \ No newline at end of file