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:
Dario Sassi
2020-07-13 06:32:29 +00:00
parent eb98dfcf07
commit 69bf8c8599
3 changed files with 7 additions and 8 deletions
BIN
View File
Binary file not shown.
+2 -1
View File
@@ -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
View File
@@ -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)) {