EgtMachKernel :
- a CamData aggiunto parametro m_dOrigFeed per gestire trasformazioni di feed da tip utensile a assi macchina - modifiche a Sawing per utilizzare questa modifica quando si opera su archi.
This commit is contained in:
+27
-2
@@ -49,7 +49,10 @@ static int CAM_PARAM_V5 = 20 ;
|
||||
static std::string CAM_BDIR = "BDir" ;
|
||||
static int CAM_PARAM_V6 = 21 ;
|
||||
static std::string CAM_INDEX = "Idx" ;
|
||||
static int CAM_TOTPARAM =CAM_PARAM_V6 ;
|
||||
static int CAM_PARAM_V7 = 22 ;
|
||||
static std::string CAM_ORIGFEED = "OrFeed" ;
|
||||
static int CAM_TOTPARAM =CAM_PARAM_V7 ;
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
USEROBJ_REGISTER( "EMkCamData", CamData) ;
|
||||
@@ -83,6 +86,7 @@ CamData::Clone( void) const
|
||||
pCam->m_vtN = m_vtN ;
|
||||
pCam->m_dDeltaN = m_dDeltaN ;
|
||||
pCam->m_dFeed = m_dFeed ;
|
||||
pCam->m_dOrigFeed = m_dOrigFeed ;
|
||||
pCam->m_nFlag = m_nFlag ;
|
||||
pCam->m_nIndex = m_nIndex ;
|
||||
pCam->m_nAxesStatus = m_nAxesStatus ;
|
||||
@@ -118,6 +122,8 @@ CamData::Dump( string& sOut, bool bMM, const char* szNewLine) const
|
||||
sOut += CAM_ACEN + "=" + ToString( m_dAngCen) + szNewLine ;
|
||||
sOut += CAM_NDIR + "=" + ToString( m_vtN) + szNewLine ;
|
||||
sOut += CAM_FEED + "=" + ToString( m_dFeed) + szNewLine ;
|
||||
if ( m_dOrigFeed >= 0)
|
||||
sOut += CAM_ORIGFEED + "=" + ToString( m_dOrigFeed) + szNewLine ;
|
||||
sOut += CAM_FLAG + "=" + ToString( m_nFlag) + szNewLine ;
|
||||
sOut += CAM_INDEX + "=" + ToString( m_nIndex) + szNewLine ;
|
||||
sOut += CAM_AXSTS + "=" + ToString( m_nAxesStatus) + szNewLine ;
|
||||
@@ -189,6 +195,8 @@ CamData::Save( int nBaseId, STRVECTOR& vString) const
|
||||
vString[++k] = CAM_BDIR + "=" + ToString( m_vtBackAux) ;
|
||||
// parametri aggiunti V6
|
||||
vString[++k] = CAM_INDEX + "=" + ToString( m_nIndex) ;
|
||||
// parametri aggiunti V7
|
||||
vString[++k] = CAM_ORIGFEED + "=" + ToString( m_dOrigFeed) ;
|
||||
}
|
||||
catch( ...) {
|
||||
return false ;
|
||||
@@ -263,7 +271,15 @@ CamData::Load( const STRVECTOR& vString, int nBaseGdbId)
|
||||
return false ;
|
||||
}
|
||||
else {
|
||||
m_vtBackAux = V_NULL ;
|
||||
m_nIndex = 0 ;
|
||||
}
|
||||
// parametri aggiunti V7
|
||||
if ( int( vString.size()) >= CAM_PARAM_V7) {
|
||||
if ( ! GetVal( vString[++k], CAM_ORIGFEED, m_dOrigFeed))
|
||||
return false ;
|
||||
}
|
||||
else {
|
||||
m_dOrigFeed = -1 ;
|
||||
}
|
||||
return true ;
|
||||
}
|
||||
@@ -519,6 +535,7 @@ CamData::CamData( void)
|
||||
m_dAngCen = 0 ;
|
||||
m_dDeltaN = 0 ;
|
||||
m_dFeed = 0 ;
|
||||
m_dOrigFeed = -1 ;
|
||||
m_nFlag = 0 ;
|
||||
m_nIndex = 0 ;
|
||||
m_nAxesStatus = AS_NONE ;
|
||||
@@ -617,6 +634,14 @@ CamData::SetFeed( double dFeed)
|
||||
return true ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
CamData::SetOrigFeed( double dOrigFeed)
|
||||
{
|
||||
m_dOrigFeed = dOrigFeed ;
|
||||
return true ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
CamData::SetFlag( int nFlag)
|
||||
|
||||
@@ -55,6 +55,7 @@ class CamData : public IUserObj
|
||||
bool SetNormDir( const Vector3d& vtDir) ;
|
||||
bool SetDeltaN( double dDeltaN) ;
|
||||
bool SetFeed( double dFeed) ;
|
||||
bool SetOrigFeed( double dOrigFeed) ;
|
||||
bool SetFlag( int nFlag) ;
|
||||
bool SetIndex( int nIndex) ;
|
||||
bool SetAxes( int nStatus, const DBLVECTOR& vAxVal) ;
|
||||
@@ -90,6 +91,8 @@ class CamData : public IUserObj
|
||||
{ return m_dDeltaN ; }
|
||||
double GetFeed( void) const
|
||||
{ return m_dFeed ; }
|
||||
double GetOrigFeed( void) const
|
||||
{ return m_dOrigFeed ; }
|
||||
int GetFlag( void) const
|
||||
{ return m_nFlag ; }
|
||||
int GetIndex( void) const
|
||||
@@ -142,6 +145,7 @@ class CamData : public IUserObj
|
||||
Vector3d m_vtN ; // vettore normale al piano di giacitura per archi
|
||||
double m_dDeltaN ; // delta fine rispetto a inizio su normale
|
||||
double m_dFeed ; // velocità di avanzamento in lavorazione
|
||||
double m_dOrigFeed ; // velocità originale di avanzamento (sul tip utensile)
|
||||
int m_nFlag ; // flag per usi vari
|
||||
int m_nIndex ; // indice per usi vari
|
||||
int m_nAxesStatus ; // stato dei valori degli assi
|
||||
|
||||
+8
-5
@@ -733,9 +733,8 @@ Sawing::Update( bool bPostApply)
|
||||
return false ;
|
||||
}
|
||||
|
||||
// aggiustamento feed per movimenti 4 assi (se lavorazione ricalcolata)
|
||||
if ( m_nStatus == MCH_ST_TO_VERIFY)
|
||||
AdjustFeeds() ;
|
||||
// aggiustamento feed per movimenti 4 assi
|
||||
AdjustFeeds() ;
|
||||
|
||||
// gestione movimenti all'inizio di ogni singolo percorso di lavorazione e alla fine della lavorazione
|
||||
if ( ! AdjustStartEndMovements()) {
|
||||
@@ -794,8 +793,12 @@ Sawing::AdjustFeeds( void)
|
||||
// correggo la feed di movimento
|
||||
if ( dTipLen > EPS_SMALL && dAxLen > EPS_SMALL) {
|
||||
double dCoeff = dAxLen / dTipLen ;
|
||||
double dFeed = pCamData->GetFeed() ;
|
||||
pCamData->SetFeed( dFeed * dCoeff) ;
|
||||
double dOrigFeed = pCamData->GetOrigFeed() ;
|
||||
if ( dOrigFeed < 0) {
|
||||
dOrigFeed = pCamData->GetFeed() ;
|
||||
pCamData->SetOrigFeed( dOrigFeed) ;
|
||||
}
|
||||
pCamData->SetFeed( dOrigFeed * dCoeff) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user