EgtMachKernel :
- correzioni per movimenti in rapido con robot.
This commit is contained in:
+9
-8
@@ -43,7 +43,7 @@ using namespace std ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
const double MAX_DIST_RAW = 200.0 ;
|
||||
const double MAX_ROBOT_G0_LEN = 299.0 ;
|
||||
const double MAX_ROBOT_G0_LEN = 101.0 ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
@@ -3721,15 +3721,16 @@ Operation::AddRise( DBLVECTOR& vAxVal, double dDelta, int nClPathId, int nToMinM
|
||||
if ( vAxVal.size() < 6)
|
||||
return false ;
|
||||
// verifico se richiesta Zmax
|
||||
bool bZmax = ( dDelta < 0) ;
|
||||
bool bZmax = ( ! isfinite( dDelta)) ;
|
||||
// calcolo gli assi (compresa verifica corse)
|
||||
double dNewDeltaZ ;
|
||||
Point3d ptEnd = pCamData->GetEndPoint() ;
|
||||
Vector3d vtTool = pCamData->GetToolDir() ;
|
||||
Vector3d vtAux = pCamData->GetAuxDir() ;
|
||||
bOk = CalcRobotAxesAbovePos( ptEnd, vtTool, vtAux, dDelta, vAxVal, &dNewDeltaZ) ;
|
||||
DBLVECTOR vAxRise = vAxVal ;
|
||||
double dNewDeltaZ ;
|
||||
bOk = CalcRobotAxesAbovePos( ptEnd, vtTool, vtAux, dDelta, vAxRise, &dNewDeltaZ) ;
|
||||
// assegno i dati
|
||||
pCam->SetAxes( ( bOk ? CamData::AS_OK : CamData::AS_OUTSTROKE), vAxVal) ;
|
||||
pCam->SetAxes( ( bOk ? CamData::AS_OK : CamData::AS_OUTSTROKE), vAxRise) ;
|
||||
pCam->SetMoveType( 0) ;
|
||||
pCam->SetFeed( 0) ;
|
||||
pCam->SetFlag( ( bZmax ? 3 : 0)) ;
|
||||
@@ -3737,7 +3738,7 @@ Operation::AddRise( DBLVECTOR& vAxVal, double dDelta, int nClPathId, int nToMinM
|
||||
// associo questo oggetto a quello geometrico
|
||||
m_pGeomDB->SetUserObj( nId, Release( pCam)) ;
|
||||
// aggiungo eventuali posizioni intermedie per garantire movimento lineare entro tolleranze
|
||||
int nStep = 1 + int( dNewDeltaZ / MAX_ROBOT_G0_LEN) ;
|
||||
int nStep = 1 + int( ( dNewDeltaZ - EPS_SMALL) / MAX_ROBOT_G0_LEN) ;
|
||||
double dStep = dNewDeltaZ / nStep ;
|
||||
for ( int i = 1 ; i < nStep ; ++ i) {
|
||||
// copio l'entità
|
||||
@@ -3988,7 +3989,7 @@ Operation::AddRobotClimb( int nEntId, double dDeltaZ)
|
||||
pCdEnt->SetFlag( 2) ;
|
||||
pCdEnt->SetFlag2( ( bZmax ? 1 : 0)) ;
|
||||
// aggiungo eventuali posizioni intermedie per garantire movimento lineare entro tolleranze
|
||||
int nStep = 1 + int( dNewDeltaZ / MAX_ROBOT_G0_LEN) ;
|
||||
int nStep = 1 + int( ( dNewDeltaZ - EPS_SMALL) / MAX_ROBOT_G0_LEN) ;
|
||||
double dStep = dNewDeltaZ / nStep ;
|
||||
for ( int i = 1 ; i < nStep ; ++ i) {
|
||||
// copio l'entità
|
||||
@@ -4023,7 +4024,7 @@ Operation::CalcRobotAxesAbovePos( const Point3d& ptP, const Vector3d& vtT, const
|
||||
return false ;
|
||||
}
|
||||
// se DeltaZ non specificata vado a Zmax
|
||||
if ( dDeltaZ < 0 ) {
|
||||
if ( ! isfinite( dDeltaZ)) {
|
||||
// recupero quota tavola
|
||||
Point3d ptRef1 ;
|
||||
pMch->GetCurrTableRef1( ptRef1) ;
|
||||
|
||||
Reference in New Issue
Block a user