EgtMachKernel 2.2g3 :
- modificata distanza di sicurezza per verifica collisioni in link - corretto approccio/retrazione su tagli di lama inclinati di segmenti di retta.
This commit is contained in:
Binary file not shown.
+2
-1
@@ -2345,9 +2345,10 @@ Operation::TestCollisionAvoid( const DBLVECTOR& vAxStart, const DBLVECTOR& vAxEn
|
||||
INTVECTOR vCollId ;
|
||||
pMch->GetCurrHeadCollGroups( vCollId) ;
|
||||
// distanza di sicurezza
|
||||
const double TOL_SAFEDIST = 10.0 ;
|
||||
const double MIN_SAFEDIST = 10.0 ;
|
||||
double dSafeDist = m_pMchMgr->GetCurrMachiningsMgr()->GetSafeZ() ;
|
||||
dSafeDist = min( dSafeDist, max( 0.5 * dSafeDist, MIN_SAFEDIST)) ;
|
||||
dSafeDist = max( dSafeDist - TOL_SAFEDIST, MIN_SAFEDIST) ;
|
||||
// Vado nelle posizioni da controllare
|
||||
const int COLL_STEP = 16 ;
|
||||
bool bCollide = false ;
|
||||
|
||||
+5
-7
@@ -2022,10 +2022,8 @@ Sawing::GenerateLineCl( const ICurveLine* pLine, const Vector3d& vtTool, const V
|
||||
SetCorrAuxDir( vtCorr) ;
|
||||
// recupero distanza di sicurezza
|
||||
double dSafeZ = m_pMchMgr->GetCurrMachiningsMgr()->GetSafeZ() ;
|
||||
// lunghezza di approccio/retrazione
|
||||
// distanza di approccio/retrazione
|
||||
double dAppr = m_Params.m_dStartPos ;
|
||||
if ( abs( m_Params.m_dSideAngle) > EPS_ANG_SMALL)
|
||||
dAppr /= cos( m_Params.m_dSideAngle * DEGTORAD) ;
|
||||
// valori di step
|
||||
double dActStep = m_Params.m_dStep ;
|
||||
double dActBstep = GetStepBack() ;
|
||||
@@ -2195,12 +2193,12 @@ Sawing::GenerateLineCl( const ICurveLine* pLine, const Vector3d& vtTool, const V
|
||||
if ( i != 0) {
|
||||
// movimento di risalita sopra il punto finale
|
||||
SetFeed( GetEndFeed()) ;
|
||||
Point3d ptP4 = pLine->GetEnd() + vtCorr * ( dElev + dAppr) ;
|
||||
Point3d ptP4 = pLine->GetEnd() + vtCorr * ( dElev + dAppr / vtCorr.z) ;
|
||||
if ( AddLinearMove( ptP4) == GDB_ID_NULL)
|
||||
return false ;
|
||||
// movimento di ritorno spora il punto iniziale
|
||||
SetFeed( GetEndFeed()) ;
|
||||
Point3d ptP5 = pLine->GetStart() + vtCorr * ( dElev + dAppr) ;
|
||||
Point3d ptP5 = pLine->GetStart() + vtCorr * ( dElev + dAppr / vtCorr.z) ;
|
||||
if ( AddLinearMove( ptP5) == GDB_ID_NULL)
|
||||
return false ;
|
||||
}
|
||||
@@ -2966,10 +2964,10 @@ Sawing::GenerateExtCurveCl( const ICurveComposite* pCrv,
|
||||
// ricavo punto di risalita e punto iniziale
|
||||
Point3d ptP4 ;
|
||||
pCrv->GetEndPoint( ptP4) ;
|
||||
ptP4 += vtEndCorr * ( dElev + dAppr) ;
|
||||
ptP4 += vtEndCorr * ( dElev + dAppr / vtEndCorr.z) ;
|
||||
Point3d ptP5 ;
|
||||
pCrv->GetStartPoint( ptP5) ;
|
||||
ptP5 += vtStaCorr * ( dElev + dAppr) ;
|
||||
ptP5 += vtStaCorr * ( dElev + dAppr / vtStaCorr.z) ;
|
||||
// se sono diversi o le direzioni utensile sono diverse
|
||||
if ( ! AreSamePointApprox( ptP4, ptP5) ||
|
||||
! AreSameVectorApprox( vtEndTool, vtStaTool)) {
|
||||
|
||||
Reference in New Issue
Block a user