EgtMachKernel :

- in taglio di lama aggiunta feed per passata di ritorno.
This commit is contained in:
Dario Sassi
2018-05-28 13:20:33 +00:00
parent a51f7119c9
commit b5833ab37c
6 changed files with 38 additions and 13 deletions
+2
View File
@@ -71,6 +71,8 @@ MPA2TPA( int nType)
case MPA_STARTFEED : return TPA_STARTFEED ;
case MPA_ENDFEED : return TPA_ENDFEED ;
case MPA_TIPFEED : return TPA_TIPFEED ;
case MPA_VERTFEED : return TPA_FEED ;
case MPA_BACKFEED : return TPA_FEED ;
case MPA_OFFSR : return TPA_RADOFFSET ;
case MPA_OFFSL : return TPA_LONOFFSET ;
}
+4 -4
View File
@@ -798,8 +798,8 @@ MachiningsMgr::SetCurrMachiningParam( int nType, double dVal)
return m_pCurrMach->SetParam( nType, dVal) ;
}
// se feed
else if ( nType == MPA_FEED ||
nType == MPA_STARTFEED || nType == MPA_ENDFEED || nType == MPA_TIPFEED || nType == MPA_VERTFEED) {
else if ( nType == MPA_FEED || nType == MPA_STARTFEED || nType == MPA_ENDFEED ||
nType == MPA_TIPFEED || nType == MPA_VERTFEED || nType == MPA_BACKFEED) {
// recupero valore da utensile
const ToolData* pTdata ;
if ( ! m_pCurrMach->GetTool( m_pTsMgr, pTdata))
@@ -945,8 +945,8 @@ MachiningsMgr::GetCurrMachiningParam( int nType, double& dVal) const
return pTdata->GetParam( MPA2TPA( nType), dVal) ;
}
// se feed
else if ( nType == MPA_FEED ||
nType == MPA_STARTFEED || nType == MPA_ENDFEED || nType == MPA_TIPFEED || nType == MPA_VERTFEED) {
else if ( nType == MPA_FEED || nType == MPA_STARTFEED || nType == MPA_ENDFEED ||
nType == MPA_TIPFEED || nType == MPA_VERTFEED || nType == MPA_BACKFEED) {
// recupero il valore
if ( ! m_pCurrMach->GetParam( nType, dVal))
return false ;
+7 -1
View File
@@ -296,6 +296,9 @@ Sawing::SetParam( int nType, double dVal)
case MPA_TIPFEED :
m_Params.m_dTipFeed = ( AreSameLenValue( dVal, m_TParams.m_dTipFeed) ? 0 : dVal) ;
return true ;
case MPA_BACKFEED :
m_Params.m_dBackFeed = ( AreSameLenValue( dVal, m_TParams.m_dFeed) ? 0 : dVal) ;
return true ;
case MPA_OFFSR :
m_Params.m_dOffsR = ( AreSameLenValue( dVal, m_TParams.m_dOffsR) ? UNKNOWN_PAR : dVal) ;
return true ;
@@ -676,6 +679,9 @@ Sawing::GetParam( int nType, double& dVal) const
case MPA_TIPFEED :
dVal = GetTipFeed() ;
return true ;
case MPA_BACKFEED :
dVal = GetBackFeed() ;
return true ;
case MPA_OFFSR :
dVal =GetOffsR() ;
return true ;
@@ -1738,7 +1744,7 @@ Sawing::GenerateLineCl( const ICurveLine* pLine, const Vector3d& vtTool, const V
if ( AddLinearMove( ptP2) == GDB_ID_NULL)
return false ;
// movimento di lato
SetFeed( GetFeed()) ;
SetFeed( ( IsEven( i) ? GetBackFeed() : GetFeed())) ;
if ( AddLinearMove( ptP3) == GDB_ID_NULL)
return false ;
}
+2
View File
@@ -137,6 +137,8 @@ class Sawing : public Machining
{ return ( IsNullLenValue( m_Params.m_dEndFeed) ? m_TParams.m_dEndFeed : m_Params.m_dEndFeed) ; }
double GetTipFeed( void) const
{ return ( IsNullLenValue( m_Params.m_dTipFeed) ? m_TParams.m_dTipFeed : m_Params.m_dTipFeed) ; }
double GetBackFeed( void) const
{ return ( IsNullLenValue( m_Params.m_dBackFeed) ? m_TParams.m_dFeed : m_Params.m_dBackFeed) ; }
double GetOffsL( void) const
{ return ( IsUnknownValue( m_Params.m_dOffsL) ? m_TParams.m_dOffsL : m_Params.m_dOffsL) ; }
double GetOffsR( void) const
+15 -1
View File
@@ -33,6 +33,7 @@ enum nSawingKey {
KEY_DH,
KEY_EAL,
KEY_F,
KEY_FB,
KEY_FE,
KEY_FS,
KEY_FT,
@@ -72,6 +73,7 @@ static const std::array<std::string,KEY_ZZZ> sSawingKey = {
"DH",
"EAL",
"F",
"FB",
"FE",
"FS",
"FT",
@@ -145,6 +147,7 @@ SawingData::CopyFrom( const MachiningData* pMdata)
m_dEndFeed = pSdata->m_dEndFeed ;
m_dStartFeed = pSdata->m_dStartFeed ;
m_dTipFeed = pSdata->m_dTipFeed ;
m_dBackFeed = pSdata->m_dBackFeed ;
m_dOffsL = pSdata->m_dOffsL ;
m_dOffsR = pSdata->m_dOffsR ;
m_bInvert = pSdata->m_bInvert ;
@@ -196,6 +199,7 @@ SawingData::SameAs(const MachiningData* pMdata) const
AreSameLenValue( m_dEndFeed, pSdata->m_dEndFeed) &&
AreSameLenValue( m_dStartFeed, pSdata->m_dStartFeed) &&
AreSameLenValue( m_dTipFeed, pSdata->m_dTipFeed) &&
AreSameLenValue( m_dBackFeed, pSdata->m_dBackFeed) &&
AreSameLenValue( m_dOffsL, pSdata->m_dOffsL) &&
AreSameLenValue( m_dOffsR, pSdata->m_dOffsR) &&
m_bInvert == pSdata->m_bInvert &&
@@ -281,6 +285,9 @@ SawingData::FromString( const string& sString, int& nKey)
case KEY_F :
bOk = ::FromString( sVal, m_dFeed) ;
break ;
case KEY_FB :
bOk = ::FromString( sVal, m_dBackFeed) ;
break ;
case KEY_FE :
bOk = ::FromString( sVal, m_dEndFeed) ;
break ;
@@ -388,6 +395,7 @@ SawingData::ToString( int nInd) const
case KEY_DH : return ( sSawingKey[KEY_DH] + "=" + m_sDepth) ;
case KEY_EAL : return ( sSawingKey[KEY_EAL] + "=" + ::ToString( m_dEndAddLen)) ;
case KEY_F : return ( sSawingKey[KEY_F] + "=" + ::ToString( m_dFeed)) ;
case KEY_FB : return ( sSawingKey[KEY_FB] + "=" + ::ToString( m_dBackFeed)) ;
case KEY_FE : return ( sSawingKey[KEY_FE] + "=" + ::ToString( m_dEndFeed)) ;
case KEY_FS : return ( sSawingKey[KEY_FS] + "=" + ::ToString( m_dStartFeed)) ;
case KEY_FT : return ( sSawingKey[KEY_FT] + "=" + ::ToString( m_dTipFeed)) ;
@@ -426,7 +434,7 @@ bool
SawingData::IsOptional( int nKey) const
{
return ( nKey == KEY_AB || nKey == KEY_AI ||
nKey == KEY_F || nKey == KEY_FE || nKey == KEY_FS || nKey == KEY_FT ||
nKey == KEY_F || nKey == KEY_FB || 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_SCC || nKey == KEY_STB || nKey == KEY_STEA || nKey == KEY_STIA ||
nKey == KEY_STSA || nKey == KEY_STSAB) ;
@@ -605,6 +613,9 @@ SawingData::SetParam( int nType, double dVal)
case MPA_TIPFEED :
m_dTipFeed = dVal ;
return true ;
case MPA_BACKFEED :
m_dBackFeed = dVal ;
return true ;
case MPA_OFFSL :
m_dOffsL = dVal ;
return true ;
@@ -766,6 +777,9 @@ SawingData::GetParam( int nType, double& dVal) const
case MPA_TIPFEED :
dVal = m_dTipFeed ;
return true ;
case MPA_BACKFEED :
dVal = m_dBackFeed ;
return true ;
case MPA_OFFSL :
dVal = m_dOffsL ;
return true ;
+8 -7
View File
@@ -24,10 +24,11 @@ struct SawingData : public MachiningData
std::string m_sBlockedAxis ; // eventuale asse rotante bloccato (Nome=val)
int m_nSolCh ; // criterio scelta soluzione (quando possibili molteplici)
double m_dSpeed ; // velocità di rotazione (+ se CCW, - se CW) ( se 0 da utensile)
double m_dFeed ; // velocità di lavorazione normale ( se 0 da utensile)
double m_dStartFeed ; // velocità di lavorazione iniziale ( se 0 da utensile)
double m_dEndFeed ; // velocità di lavorazione finale ( se 0 da utensile)
double m_dTipFeed ; // velocità di lavorazione di testa ( se 0 da utensile)
double m_dFeed ; // velocità di lavorazione normale ( se 0 da utensile)
double m_dStartFeed ; // velocità di lavorazione iniziale ( se 0 da utensile)
double m_dEndFeed ; // velocità di lavorazione finale ( se 0 da utensile)
double m_dTipFeed ; // velocità di lavorazione di testa ( se 0 da utensile)
double m_dBackFeed ; // velocità di lavorazione al ritorno ( se 0 da utensile)
double m_dOffsR ; // offset radiale ( se UNKNOWN_PAR da utensile)
double m_dOffsL ; // offset longitudinale ( se UNKNOWN_PAR da utensile)
bool m_bInvert ; // flag di inversione direzione lavorazione
@@ -36,9 +37,9 @@ struct SawingData : public MachiningData
std::string m_sDepth ; // affondamento (espressione numerica)
double m_dStartPos ; // quota di inizio lavorazione (sempre >= 0)
double m_dStep ; // passo di affondamento (0=nessun passo)
double m_dStepBack ; // passo di affondamento all'indietro (0=nessun passo)
double m_dStepBack ; // passo di affondamento al ritorno (0=nessun passo)
double m_dStepSideAng ; // passo di affondameto su tagli inclinati (0=nessun passo)
double m_dStepSideAngBack ;// passo di affondameto su tagli inclinati all'indietro (0=nessun passo)
double m_dStepSideAngBack ;// passo di affondameto su tagli inclinati al ritorno (0=nessun passo)
double m_dStepExtArc ; // passo di affondamento su esterno archi (0=nessun passo)
double m_dStepIntArc ; // passo di affondamento su interno archi (0=nessun passo)
int m_nStepType ; // tipo di lavorazione a step (a gradini, una via, va e vieni)
@@ -54,7 +55,7 @@ struct SawingData : public MachiningData
std::string m_sUserNotes ; // note dell'utente
SawingData( void)
: m_ToolUuid(), m_nSolCh( 0), m_dSpeed( 0), m_dFeed( 0), m_dStartFeed( 0), m_dEndFeed( 0), m_dTipFeed( 0),
: m_ToolUuid(), m_nSolCh( 0), m_dSpeed( 0), m_dFeed( 0), m_dStartFeed( 0), m_dEndFeed( 0), m_dTipFeed( 0), m_dBackFeed( 0),
m_dOffsR( UNKNOWN_PAR), m_dOffsL( UNKNOWN_PAR),
m_bInvert( false), m_nWorkSide( 0), m_nHeadSide(0), m_dStartPos( 0), m_dStep( 0), m_dStepBack( UNKNOWN_PAR),
m_dStepSideAng( UNKNOWN_PAR), m_dStepSideAngBack( UNKNOWN_PAR), m_dStepExtArc( 0), m_dStepIntArc( 0), m_nStepType( 0),