EgtMachKernel :
- migliorie su approcci eretrazioni di fresature con lame.
This commit is contained in:
+10
-4
@@ -168,7 +168,7 @@ Operation::GetElevation( int nPhase, const Point3d& ptP,
|
||||
// verifico che il grezzo compaia nella fase
|
||||
if ( m_pMchMgr->VerifyRawPartPhase( nRawId, nPhase)) {
|
||||
// intersezione del raggio dal punto alla trimesh del grezzo
|
||||
const double RAY_LEN = 10000 ;
|
||||
const double RAY_LEN = 100000 ;
|
||||
int nStmId = m_pGeomDB->GetFirstNameInGroup( nRawId, MACH_RAW_SOLID) ;
|
||||
ISurfTriMesh* pStm = GetSurfTriMesh( m_pGeomDB->GetGeoObj( nStmId)) ;
|
||||
if ( pStm != nullptr) {
|
||||
@@ -197,9 +197,15 @@ Operation::GetElevation( int nPhase, const Point3d& ptP,
|
||||
else if ( Info.dCosDN > - COS_ORTO_ANG_ZERO) {
|
||||
dElev = min( dElev, Info.dU) ;
|
||||
}
|
||||
// se altrimenti è la prima, distante ed entra, salto tutto
|
||||
else if ( i == 0 && Info.dU > MAX_DIST_RAW && Info.dCosDN < - COS_ORTO_ANG_ZERO)
|
||||
break ;
|
||||
// se altrimenti è la prima ed entra
|
||||
else if ( i == 0 && Info.dCosDN < - COS_ORTO_ANG_ZERO) {
|
||||
// se una sola o distante salto tutto
|
||||
if ( vInfo.size() == 1 || Info.dU > ( dElev > INFINITO - 1 ? 0 : dElev) + MAX_DIST_RAW)
|
||||
break ;
|
||||
// altrimenti reset
|
||||
else
|
||||
dElev = INFINITO ;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user