EgtMachKernel :

- aggiunta gestione Invert su asse (per ora solo in simulazione)
- possibilità di invertire lavorazione fori passanti
- in simulazione e generazione aggiunti punti estremi di box lavorazione.
This commit is contained in:
Dario Sassi
2016-12-12 09:18:50 +00:00
parent a706c667aa
commit 329136f5ca
11 changed files with 149 additions and 25 deletions
+24 -2
View File
@@ -832,6 +832,11 @@ Drilling::GenerateHoleCl( int nInd, const SelData& nCircId, const string& sPName
LOG_INFO( GetEMkLogger(), sOut.c_str()) ;
return true ;
}
// se richiesta inversione e foro passante, provvedo
if ( m_Params.m_bInvert && ! hole.bBlind) {
hole.ptIni -= hole.vtDir * hole.dLen ;
hole.vtDir.Invert() ;
}
// assegno il vettore estrazione al gruppo del percorso
m_pGeomDB->SetInfo( nPathId, KEY_EXTR, hole.vtDir) ;
// assegno il punto di inizio al gruppo del percorso
@@ -866,6 +871,13 @@ Drilling::GenerateHoleCl( int nInd, const SelData& nCircId, const string& sPName
LOG_INFO( GetEMkLogger(), sOut.c_str()) ;
}
}
// assegno al gruppo l'ingombro del percorso di lavoro
BBox3d b3Grp ;
m_pGeomDB->GetGlobalBBox( nPathId, b3Grp) ;
m_pGeomDB->SetInfo( nPathId, KEY_PMIN, b3Grp.GetMin()) ;
m_pGeomDB->SetInfo( nPathId, KEY_PMAX, b3Grp.GetMax()) ;
return true ;
}
@@ -1149,8 +1161,18 @@ Drilling::GetHoleData( SelData Id, Hole& hole)
hole.vtDir.ToGlob( frGlob) ;
hole.vtDir.Normalize() ;
hole.dLen = abs( dDepth) ;
// se verticale e arriva fino al fondo grezzo, allora passante altrimenti cieco
hole.bBlind = ! ( vtExtrG.IsZplus() && hole.dLen > dRbDist - EPS_SMALL) ;
// per default è cieco
hole.bBlind = true ;
// se verticale ed arriva fino al fondo grezzo, allora passante
if ( hole.vtDir.IsZplus() && hole.dLen > dRbDist - EPS_SMALL)
hole.bBlind = false ;
// altrimenti determino la distanza del fondo del foro dal bordo del grezzo
else {
Point3d ptEnd = hole.ptIni - hole.vtDir * hole.dLen ;
double dElev ;
if ( GetElevation( m_nPhase, hole.ptIni, - hole.vtDir, dElev) && dElev <= hole.dLen + 10)
hole.bBlind = false ;
}
return true ;
}