EgtMachKernel :
- in generazione CN e stima si imposta fase a 1 prima dell'inizio e al termine - in simulazione aggiunta gestione errore in evento OnToolSelect.
This commit is contained in:
+8
-4
@@ -47,10 +47,12 @@ static const double MIN_STEP = 1.0 ;
|
||||
static const double MAX_STEP = 100.0 ;
|
||||
static const double MID_STEP = 50.0 ;
|
||||
static const double COLL_STEP = 10. ;
|
||||
static const double SQ_COEFF_ROT_MOVE = 100. ;
|
||||
static const double COEFF_LIM = 0.999 ;
|
||||
static const double SAFEDIST_STD = 5.0 ;
|
||||
static const int ERR_OUTSTROKE = 1 ;
|
||||
static const int ERR_COLLISION = 11 ;
|
||||
static const int ERR_TOOL_SEL = 21 ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
Simulator::Simulator( void)
|
||||
@@ -997,7 +999,7 @@ Simulator::ManageSingleMove( int& nStatus, double& dMove)
|
||||
double dSqDist = 0 ;
|
||||
for ( size_t i = 0 ; i < m_AxesName.size() ; ++ i) {
|
||||
// coefficiente moltiplicativo per differenziare assi lineari (primi 3) e rotanti (altri)
|
||||
double dSqCoeff = (( i < 3) ? 1 : 100) ;
|
||||
double dSqCoeff = (( i < 3) ? 1 : SQ_COEFF_ROT_MOVE) ;
|
||||
dSqDist += dSqCoeff * ( AxesEnd[i] - m_AxesVal[i]) * ( AxesEnd[i] - m_AxesVal[i]) ;
|
||||
}
|
||||
// Calcolo distanza di movimento eventuali assi ausiliari
|
||||
@@ -1006,7 +1008,7 @@ Simulator::ManageSingleMove( int& nStatus, double& dMove)
|
||||
if ( m_AuxAxesLink[i] != 0)
|
||||
continue ;
|
||||
// coefficiente moltiplicativo per differenziare assi lineari e rotanti
|
||||
double dSqCoeff = ( m_AuxAxesLinear[i] ? 1 : 100) ;
|
||||
double dSqCoeff = ( m_AuxAxesLinear[i] ? 1 : SQ_COEFF_ROT_MOVE) ;
|
||||
dSqDistAux += dSqCoeff * ( m_AuxAxesEnd[i] - m_AuxAxesVal[i]) * ( m_AuxAxesEnd[i] - m_AuxAxesVal[i]) ;
|
||||
}
|
||||
// Considero il massimo delle due distanze
|
||||
@@ -1188,7 +1190,7 @@ Simulator::ManageSingleMove( int& nStatus, double& dMove)
|
||||
double dSqDist = 0 ;
|
||||
for ( int i = 0 ; i < int( m_AuxAxesName.size()) ; ++ i) {
|
||||
// coefficiente moltiplicativo per differenziare assi lineari e rotanti
|
||||
double dSqCoeff = ( m_AuxAxesLinear[i] ? 1 : 100) ;
|
||||
double dSqCoeff = ( m_AuxAxesLinear[i] ? 1 : SQ_COEFF_ROT_MOVE) ;
|
||||
dSqDist += dSqCoeff * ( m_AuxAxesEnd[i] - m_AuxAxesVal[i]) * ( m_AuxAxesEnd[i] - m_AuxAxesVal[i]) ;
|
||||
}
|
||||
double dPrevCoeff = m_dCoeff ;
|
||||
@@ -1634,8 +1636,10 @@ Simulator::OnToolSelect( const string& sTool, const string& sHead, int nExit, co
|
||||
m_AuxAxesLink.emplace_back( 0) ;
|
||||
}
|
||||
}
|
||||
else
|
||||
else {
|
||||
bOk = false ;
|
||||
nErr = ERR_TOOL_SEL ;
|
||||
}
|
||||
}
|
||||
|
||||
return ( bOk && nErr == 0) ;
|
||||
|
||||
Reference in New Issue
Block a user