EgtMachKernel 1.8e5 :

- gestione da parametri lavorazione di angoli iniziali suggeriti e asse rotante bloccato
- in fresatura, svuotatura, incisione e lav. generica aggiunta possibilità di invertire direzione utensile
- in fresatura aggiunto parametro per tipo lavorazione faccia (perpendicolare, parallela, ...)
- differenziata distanza sicurezza standard da distanza sicurezza per rinvio da sotto
- migliorati approcci e retrazioni con rinvio da sotto
- migliorata segnalazione errori.
This commit is contained in:
Dario Sassi
2017-05-31 14:18:11 +00:00
parent c9ab1c76ed
commit 6c7a60b60a
48 changed files with 1214 additions and 234 deletions
+74 -5
View File
@@ -26,12 +26,15 @@ using namespace std ;
//----------------------------------------------------------------------------
enum nMillingKey {
KEY_DH = 0,
KEY_AB = 0,
KEY_AI,
KEY_DH,
KEY_EAL,
KEY_F,
KEY_FE,
KEY_FS,
KEY_FT,
KEY_FU,
KEY_INV,
KEY_LICL,
KEY_LIEL,
@@ -60,6 +63,7 @@ enum nMillingKey {
KEY_TA,
KEY_TD,
KEY_TH,
KEY_TI,
KEY_TL,
KEY_TNAME,
KEY_TUUID,
@@ -68,12 +72,15 @@ enum nMillingKey {
KEY_ZZZ} ; // rappresenta il numero di elementi
static const std::array<std::string,KEY_ZZZ> sMillingKey = {
"AB",
"AI",
"DH",
"EAL",
"F",
"FE",
"FS",
"FT",
"FU",
"INV",
"LICL",
"LIEL",
@@ -102,6 +109,7 @@ static const std::array<std::string,KEY_ZZZ> sMillingKey = {
"TA",
"TD",
"TH",
"TI",
"TL",
"TN",
"TU",
@@ -143,6 +151,8 @@ MillingData::CopyFrom( const MachiningData* pMdata)
m_sName = pSdata->m_sName ;
m_ToolUuid = pSdata->m_ToolUuid ;
m_sToolName = pSdata->m_sToolName ;
m_sBlockedAxis = pSdata->m_sBlockedAxis ;
m_sInitAngs = pSdata->m_sInitAngs ;
m_nSolCh = pSdata->m_nSolCh ;
m_dSpeed = pSdata->m_dSpeed ;
m_dFeed = pSdata->m_dFeed ;
@@ -151,6 +161,8 @@ MillingData::CopyFrom( const MachiningData* pMdata)
m_dTipFeed = pSdata->m_dTipFeed ;
m_dOffsL = pSdata->m_dOffsL ;
m_dOffsR = pSdata->m_dOffsR ;
m_bToolInvert = pSdata->m_bToolInvert ;
m_nFaceUse = pSdata->m_nFaceUse ;
m_bInvert = pSdata->m_bInvert ;
m_nWorkSide = pSdata->m_nWorkSide ;
m_sDepth = pSdata->m_sDepth ;
@@ -197,6 +209,8 @@ MillingData::SameAs(const MachiningData* pMdata) const
m_sName == pSdata->m_sName &&
m_ToolUuid == pSdata->m_ToolUuid &&
m_sToolName == pSdata->m_sToolName &&
m_sBlockedAxis == pSdata->m_sBlockedAxis &&
m_sInitAngs == pSdata->m_sInitAngs &&
m_nSolCh == pSdata->m_nSolCh &&
abs( m_dSpeed - pSdata->m_dSpeed) < EPS_MACH_ANG_PAR &&
abs( m_dFeed - pSdata->m_dFeed) < EPS_MACH_LEN_PAR &&
@@ -205,6 +219,8 @@ MillingData::SameAs(const MachiningData* pMdata) const
abs( m_dTipFeed - pSdata->m_dTipFeed) < EPS_MACH_LEN_PAR &&
abs( m_dOffsL - pSdata->m_dOffsL) < EPS_MACH_LEN_PAR &&
abs( m_dOffsR - pSdata->m_dOffsR) < EPS_MACH_LEN_PAR &&
m_bToolInvert == pSdata->m_bToolInvert &&
m_nFaceUse == pSdata->m_nFaceUse &&
m_bInvert == pSdata->m_bInvert &&
m_nWorkSide == pSdata->m_nWorkSide &&
m_sDepth == pSdata->m_sDepth &&
@@ -270,6 +286,12 @@ MillingData::FromString( const string& sString, int& nKey)
nKey = FindMillingKey( ToUpper( sKey)) ;
bool bOk = ( nKey >= 0) ;
switch ( nKey) {
case KEY_AB :
m_sBlockedAxis = sVal ;
break ;
case KEY_AI :
m_sInitAngs = sVal ;
break ;
case KEY_DH :
m_sDepth = sVal ;
if ( m_sDepth.empty())
@@ -290,6 +312,9 @@ MillingData::FromString( const string& sString, int& nKey)
case KEY_FT :
bOk = ::FromString( sVal, m_dTipFeed) ;
break ;
case KEY_FU :
bOk = ::FromString( sVal, m_nFaceUse) ;
break ;
case KEY_INV :
bOk = ::FromString( sVal, m_bInvert) ;
break ;
@@ -375,6 +400,9 @@ MillingData::FromString( const string& sString, int& nKey)
case KEY_TH :
bOk = ::FromString( sVal, m_dTabHeight) ;
break ;
case KEY_TI :
bOk = ::FromString( sVal, m_bToolInvert) ;
break ;
case KEY_TL :
bOk = ::FromString( sVal, m_dTabLen) ;
break ;
@@ -402,12 +430,15 @@ string
MillingData::ToString( int nInd) const
{
switch ( nInd) {
case KEY_AB : return ( sMillingKey[KEY_AB] + "=" + m_sBlockedAxis) ;
case KEY_AI : return ( sMillingKey[KEY_AI] + "=" + m_sInitAngs) ;
case KEY_DH : return ( sMillingKey[KEY_DH] + "=" + m_sDepth) ;
case KEY_EAL : return ( sMillingKey[KEY_EAL] + "=" + ::ToString( m_dEndAddLen)) ;
case KEY_F : return ( sMillingKey[KEY_F] + "=" + ::ToString( m_dFeed)) ;
case KEY_FE : return ( sMillingKey[KEY_FE] + "=" + ::ToString( m_dEndFeed)) ;
case KEY_FS : return ( sMillingKey[KEY_FS] + "=" + ::ToString( m_dStartFeed)) ;
case KEY_FT : return ( sMillingKey[KEY_FT] + "=" + ::ToString( m_dTipFeed)) ;
case KEY_FU : return ( sMillingKey[KEY_FU] + "=" + ::ToString( m_nFaceUse)) ;
case KEY_INV : return ( sMillingKey[KEY_INV] + "=" + ::ToString( m_bInvert)) ;
case KEY_LICL : return ( sMillingKey[KEY_LICL] + "=" + ::ToString( m_dLiCompLen)) ;
case KEY_LIEL : return ( sMillingKey[KEY_LIEL] + "=" + ::ToString( m_dLiElev)) ;
@@ -436,6 +467,7 @@ MillingData::ToString( int nInd) const
case KEY_TA : return ( sMillingKey[KEY_TA] + "=" + ::ToString( m_dTabAngle)) ;
case KEY_TD : return ( sMillingKey[KEY_TD] + "=" + ::ToString( m_dTabDist)) ;
case KEY_TH : return ( sMillingKey[KEY_TH] + "=" + ::ToString( m_dTabHeight)) ;
case KEY_TI : return ( sMillingKey[KEY_TI] + "=" + ::ToString( m_bToolInvert)) ;
case KEY_TL : return ( sMillingKey[KEY_TL] + "=" + ::ToString( m_dTabLen)) ;
case KEY_TNAME : return ( sMillingKey[KEY_TNAME] + "=" + m_sToolName) ;
case KEY_TUUID : return ( sMillingKey[KEY_TUUID] + "=" + ::ToString( m_ToolUuid)) ;
@@ -449,9 +481,10 @@ MillingData::ToString( int nInd) const
bool
MillingData::IsOptional( int nKey) const
{
return ( nKey == KEY_EAL || nKey == KEY_F || nKey == KEY_FE || nKey == KEY_FS || nKey == KEY_FT ||
nKey == KEY_NNS || nKey == KEY_NNU || nKey == KEY_OL || nKey == KEY_OR || nKey == KEY_S ||
nKey == KEY_SAL || nKey == KEY_SCC) ;
return ( nKey == KEY_AB || nKey == KEY_AI || nKey == KEY_EAL || nKey == KEY_F ||
nKey == KEY_FE || nKey == KEY_FS || nKey == KEY_FT || nKey == KEY_FU ||
nKey == KEY_NNS || nKey == KEY_NNU || nKey == KEY_OL || nKey == KEY_OR ||
nKey == KEY_S || nKey == KEY_SAL || nKey == KEY_SCC || nKey == KEY_TI) ;
}
//----------------------------------------------------------------------------
@@ -461,6 +494,16 @@ MillingData::VerifySolCh( int nVal) const
return IsValidOperationScc( nVal) ;
}
//----------------------------------------------------------------------------
bool
MillingData::VerifyFaceUse( int nVal) const
{
return ( nVal == MILL_FU_NONE ||
( nVal >= MILL_FU_PARAL_DOWN && nVal <= MILL_FU_PARAL_RIGHT) ||
( nVal >= MILL_FU_ORTHO_DOWN && nVal <= MILL_FU_ORTHO_CONT) ||
( nVal >= MILL_FU_ORTUP_DOWN && nVal <= MILL_FU_ORTUP_CONT)) ;
}
//----------------------------------------------------------------------------
bool
MillingData::VerifyWorkSide( int nVal) const
@@ -532,9 +575,12 @@ MillingData::SetParam( int nType, bool bVal)
case MPA_INVERT :
m_bInvert = bVal ;
return true ;
case MPA_LEAVETAB :
case MPA_LEAVETAB :
m_bLeaveTab = bVal ;
return true ;
case MPA_TOOLINVERT :
m_bToolInvert = bVal ;
return true ;
}
return false ;
}
@@ -569,6 +615,11 @@ MillingData::SetParam( int nType, int nVal)
return false ;
m_nSolCh = nVal ;
return true ;
case MPA_FACEUSE :
if ( ! VerifyFaceUse( nVal))
return false ;
m_nFaceUse = nVal ;
return true ;
}
return false ;
}
@@ -686,6 +737,12 @@ MillingData::SetParam( int nType, const string& sVal)
case MPA_USERNOTES :
m_sUserNotes = sVal ;
return true ;
case MPA_INITANGS :
m_sInitAngs = sVal ;
return true ;
case MPA_BLOCKEDAXIS :
m_sBlockedAxis = sVal ;
return true ;
}
return false ;
}
@@ -710,6 +767,9 @@ MillingData::GetParam( int nType, bool& bVal) const
case MPA_LEAVETAB :
bVal = m_bLeaveTab ;
return true ;
case MPA_TOOLINVERT :
bVal = m_bToolInvert ;
return true ;
}
bVal = false ;
return false ;
@@ -738,6 +798,9 @@ MillingData::GetParam( int nType, int& nVal) const
case MPA_SCC :
nVal = m_nSolCh ;
return true ;
case MPA_FACEUSE :
nVal = m_nFaceUse ;
return true ;
}
nVal = 0 ;
return false ;
@@ -854,6 +917,12 @@ MillingData::GetParam( int nType, string& sVal) const
case MPA_USERNOTES :
sVal = m_sUserNotes ;
return true ;
case MPA_INITANGS :
sVal = m_sInitAngs ;
return true ;
case MPA_BLOCKEDAXIS :
sVal = m_sBlockedAxis ;
return true ;
}
sVal = "" ;
return false ;