diff --git a/EgtMachKernel.rc b/EgtMachKernel.rc index 96de4e8..94f155d 100644 Binary files a/EgtMachKernel.rc and b/EgtMachKernel.rc differ diff --git a/WaterJetting.cpp b/WaterJetting.cpp index fb69f5a..5c3f56d 100644 --- a/WaterJetting.cpp +++ b/WaterJetting.cpp @@ -358,6 +358,13 @@ WaterJetting::SetParam( int nType, double dVal) m_nStatus |= MCH_ST_PARAM_MODIF ; m_Params.m_dTipFeed = dVal ; return true ; + case MPA_THICKREF : + if ( ! m_Params.VerifyThickRef( dVal)) + return false ; + if ( abs( dVal - m_Params.m_dThickRef) > EPS_MACH_LEN_PAR) + m_nStatus |= MCH_ST_PARAM_MODIF ; + m_Params.m_dThickRef = dVal ; + return true ; case MPA_OFFSR : if ( abs( m_TParams.m_dOffsR - dVal) < EPS_MACH_LEN_PAR) dVal = UNKNOWN_PAR ; @@ -826,6 +833,9 @@ WaterJetting::GetParam( int nType, double& dVal) const case MPA_TIPFEED : dVal = GetTipFeed() ; return true ; + case MPA_THICKREF : + dVal = m_Params.m_dThickRef ; + return true ; case MPA_OFFSR : dVal = GetOffsR() ; return true ; diff --git a/WaterJettingData.cpp b/WaterJettingData.cpp index 7934c48..741ddc1 100644 --- a/WaterJettingData.cpp +++ b/WaterJettingData.cpp @@ -61,6 +61,7 @@ enum nWaterJetting { KEY_SA, KEY_SAL, KEY_SCC, + KEY_THREF, KEY_TNAME, KEY_TUUID, KEY_UUID, @@ -103,6 +104,7 @@ static const std::array sWaterJettingKey = { "SA", "SAL", "SCC", + "THREF", "TN", "TU", "UUID", @@ -149,6 +151,7 @@ WaterJettingData::CopyFrom( const MachiningData* pMdata) m_dSpeed = pSdata->m_dSpeed ; m_dFeed = pSdata->m_dFeed ; m_dTipFeed = pSdata->m_dTipFeed ; + m_dThickRef = pSdata->m_dThickRef ; m_dOffsR = pSdata->m_dOffsR ; m_bInvert = pSdata->m_bInvert ; m_nWorkSide = pSdata->m_nWorkSide ; @@ -203,6 +206,7 @@ WaterJettingData::SameAs( const MachiningData* pMdata) const abs( m_dSpeed - pSdata->m_dSpeed) < EPS_MACH_ANG_PAR && abs( m_dFeed - pSdata->m_dFeed) < EPS_MACH_LEN_PAR && abs( m_dTipFeed - pSdata->m_dTipFeed) < EPS_MACH_LEN_PAR && + abs( m_dThickRef - pSdata->m_dThickRef) < EPS_MACH_LEN_PAR && abs( m_dOffsR - pSdata->m_dOffsR) < EPS_MACH_LEN_PAR && m_bInvert == pSdata->m_bInvert && m_nWorkSide == pSdata->m_nWorkSide && @@ -376,6 +380,9 @@ WaterJettingData::FromString( const string& sString, int& nKey) case KEY_SCC : bOk = ::FromString( sVal, m_nSolCh) ; break ; + case KEY_THREF : + bOk = ::FromString( sVal, m_dThickRef) ; + break ; case KEY_TNAME : m_sToolName = sVal ; break ; @@ -435,6 +442,7 @@ WaterJettingData::ToString( int nInd) const case KEY_SA : return ( sWaterJettingKey[KEY_SA] + "=" + ::ToString( m_dSideAngle)) ; case KEY_SAL : return ( sWaterJettingKey[KEY_SAL] + "=" + ::ToString( m_dStartAddLen)) ; case KEY_SCC : return ( sWaterJettingKey[KEY_SCC] + "=" + ::ToString( m_nSolCh)) ; + case KEY_THREF : return ( sWaterJettingKey[KEY_THREF] + "=" + ::ToString( m_dThickRef)) ; case KEY_TNAME : return ( sWaterJettingKey[KEY_TNAME] + "=" + m_sToolName) ; case KEY_TUUID : return ( sWaterJettingKey[KEY_TUUID] + "=" + ::ToString( m_ToolUuid)) ; case KEY_UUID : return ( sWaterJettingKey[KEY_UUID] + "=" + ::ToString( m_Uuid)) ; @@ -449,7 +457,8 @@ WaterJettingData::IsOptional( int nKey) const { return ( nKey == KEY_FA || nKey == KEY_PRB || nKey == KEY_PRBMAX || nKey == KEY_PRBMIN || nKey == KEY_ECT || nKey == KEY_ICT || nKey == KEY_CSL || nKey == KEY_CSP || - nKey == KEY_LIH || nKey == KEY_LIHR || nKey == KEY_LPT || nKey == KEY_HPT) ; + nKey == KEY_LIH || nKey == KEY_LIHR || nKey == KEY_LPT || nKey == KEY_HPT || + nKey == KEY_THREF) ; } //---------------------------------------------------------------------------- @@ -520,6 +529,14 @@ WaterJettingData::VerifyForwardAngle( double dVal) const return ( ( dVal > - EPS_ZERO && dVal < MAX_FORW_ANG) || abs( dVal - AUTO_FORW_ANG) < EPS_ANG_SMALL) ; } +//---------------------------------------------------------------------------- +bool +WaterJettingData::VerifyThickRef( double dVal) const +{ + const double MIN_THICKREF = 1 ; + return ( abs( dVal) < EPS_SMALL || dVal >= MIN_THICKREF) ; +} + //---------------------------------------------------------------------------- bool WaterJettingData::VerifyTool( const ToolsMgr* pToolsMgr, const std::string& sVal, const ToolData*& pTdata) const @@ -626,6 +643,11 @@ WaterJettingData::SetParam( int nType, double dVal) case MPA_TIPFEED : m_dTipFeed = dVal ; return true ; + case MPA_THICKREF : + if ( ! VerifyThickRef( dVal)) + return false ; + m_dThickRef = dVal ; + return true ; case MPA_OFFSR : m_dOffsR = dVal ; return true ; @@ -795,6 +817,9 @@ WaterJettingData::GetParam( int nType, double& dVal) const case MPA_TIPFEED : dVal = m_dTipFeed ; return true ; + case MPA_THICKREF : + dVal = m_dThickRef ; + return true ; case MPA_OFFSR : dVal = m_dOffsR ; return true ; diff --git a/WaterJettingData.h b/WaterJettingData.h index 37df7f2..319ce6f 100644 --- a/WaterJettingData.h +++ b/WaterJettingData.h @@ -26,6 +26,7 @@ struct WaterJettingData : public MachiningData double m_dSpeed ; // velocità afflusso abrasivo ( se 0 da utensile) double m_dFeed ; // velocità di lavorazione normale ( se 0 da utensile) double m_dTipFeed ; // velocità di lavorazione di testa ( se 0 da utensile) + double m_dThickRef ; // spessore di riferimento per la feed double m_dOffsR ; // offset radiale ( se UNKNOWN_PAR da utensile) bool m_bInvert ; // flag di inversione direzione lavorazione int m_nWorkSide ; // lato di lavoro (destra, sinistra, centro) @@ -57,7 +58,7 @@ struct WaterJettingData : public MachiningData std::string m_sUserNotes ; // note dell'utente WaterJettingData( void) - : m_ToolUuid(), m_nSolCh( 0), m_dSpeed( 0), m_dFeed( 0), m_dTipFeed( 0), + : m_ToolUuid(), m_nSolCh( 0), m_dSpeed( 0), m_dFeed( 0), m_dTipFeed( 0), m_dThickRef( 0), m_dOffsR( UNKNOWN_PAR), m_bInvert( false), m_nWorkSide( 0), m_dOverlap( 0), m_dSideAngle( 0), m_dForwardAngle( 0), @@ -96,6 +97,7 @@ struct WaterJettingData : public MachiningData bool VerifyLeadOutType( int nVal) const ; bool VerifySideAngle( double dVal) const ; bool VerifyForwardAngle( double dVal) const ; + bool VerifyThickRef( double dVal) const ; } ; //----------------------------------------------------------------------------