EgtMachKernel 1.6l9 :
- aggiunta funzione per Info su extra-corse - aggiunte funzioni GetOperationMode e GetOperationStatus - migliorata simulazione con sole rotazioni - in simulazione, quando si incontra una extra-corsa è possibile richiedere info relative.
This commit is contained in:
+14
-6
@@ -145,9 +145,14 @@ Simulator::Move( int& nStatus)
|
||||
switch ( pCamData->GetAxesStatus()) {
|
||||
case CamData::AS_OK :
|
||||
break ;
|
||||
case CamData::AS_OUTSTROKE :
|
||||
case CamData::AS_OUTSTROKE : {
|
||||
DBLVECTOR OutAxes = pCamData->GetAxisVal() ;
|
||||
for ( size_t i = OutAxes.size() ; i < 5 ; ++ i)
|
||||
OutAxes.emplace_back( 0) ;
|
||||
int nStat ;
|
||||
m_pMchMgr->VerifyOutstroke( OutAxes[0], OutAxes[1], OutAxes[2], OutAxes[3], OutAxes[4], nStat) ;
|
||||
nStatus = MCH_SIM_OUTSTROKE ;
|
||||
return false ;
|
||||
return false ; }
|
||||
case CamData::AS_DIR_ERR :
|
||||
nStatus = MCH_SIM_DIR_ERR ;
|
||||
return false ;
|
||||
@@ -159,10 +164,13 @@ Simulator::Move( int& nStatus)
|
||||
// Verifico se movimento in rapido
|
||||
bool bRapid = ( pCamData->GetFeed() < EPS_SMALL) ;
|
||||
// Calcolo distanza di movimento
|
||||
double dDist = 0 ;
|
||||
for ( size_t i = 0 ; i < m_AxesName.size() ; ++ i)
|
||||
dDist += ( AxesEnd[i] - m_AxesVal[i]) * ( AxesEnd[i] - m_AxesVal[i]) ;
|
||||
dDist = sqrt( dDist) ;
|
||||
double dSqDist = 0 ;
|
||||
for ( size_t i = 0 ; i < m_AxesName.size() ; ++ i) {
|
||||
// coefficiente moltiplicativo per differenziare assi lineari (primi3) e rotanti (altri)
|
||||
double dSqCoeff = (( i >= 3) ? 100 : 1) ;
|
||||
dSqDist += dSqCoeff * ( AxesEnd[i] - m_AxesVal[i]) * ( AxesEnd[i] - m_AxesVal[i]) ;
|
||||
}
|
||||
double dDist = sqrt( dSqDist) ;
|
||||
m_dCoeff += ( bRapid ? 4 : 1) * m_dStep / dDist ;
|
||||
if ( m_dCoeff > 1)
|
||||
m_dCoeff = 1 ;
|
||||
|
||||
Reference in New Issue
Block a user