EgtGeomKernel :
- in Vmill ulteriore velocizzazione nel taglio dexel con cilindri.
This commit is contained in:
+18
-2
@@ -4544,6 +4544,10 @@ VolZmap::CompCyl_Milling( int nGrid, const Point3d& ptS, const Point3d& ptE,
|
||||
double dLongLen = vtMoveLong.Len() ;
|
||||
double dOrtLen = vtMoveOrt.Len() ;
|
||||
|
||||
// Parametri di contenimento
|
||||
Vector3d vtPerp = vtToolDir ^ Z_AX ; vtPerp.Normalize() ;
|
||||
if ( vtPerp * vtMove < 0)
|
||||
vtPerp.Invert() ;
|
||||
int nSkip = 0 ;
|
||||
|
||||
for ( int i = nStartI ; i <= nEndI ; ++ i) {
|
||||
@@ -4552,17 +4556,29 @@ VolZmap::CompCyl_Milling( int nGrid, const Point3d& ptS, const Point3d& ptE,
|
||||
Point3d ptC( ( i + 0.5) * m_dStep, ( j + 0.5) * m_dStep, 0) ;
|
||||
|
||||
// salto il controllo degli spilloni sotto il piano limite in basso o sopra il piano limite in alto
|
||||
if ( ( ptC - ptITip) * vtToolDir < -EPS_SMALL &&
|
||||
if ( ( ptC + Z_AX * m_dMinZ[nGrid] - ptITip) * vtToolDir < -EPS_SMALL &&
|
||||
( ptC + Z_AX * m_dMaxZ[nGrid] - ptITip) * vtToolDir < -EPS_SMALL) {
|
||||
++ nSkip ;
|
||||
continue ;
|
||||
}
|
||||
if ( ( ptC - ptI - vtMoveLong) * vtToolDir > EPS_SMALL &&
|
||||
if ( ( ptC + Z_AX * m_dMinZ[nGrid] - ptI - vtMoveLong) * vtToolDir > EPS_SMALL &&
|
||||
( ptC + Z_AX * m_dMaxZ[nGrid] - ptI - vtMoveLong) * vtToolDir > EPS_SMALL) {
|
||||
++ nSkip ;
|
||||
continue ;
|
||||
}
|
||||
|
||||
// salto il controllo degli spilloni prima del piano di fianco verticale di inizio o dopo il piano di fianco verticale di fine
|
||||
if ( ( ptC + Z_AX * m_dMinZ[nGrid] - ptI + vtPerp * dRad) * vtPerp < -EPS_SMALL &&
|
||||
( ptC + Z_AX * m_dMaxZ[nGrid] - ptI + vtPerp * dRad) * vtPerp < -EPS_SMALL) {
|
||||
++ nSkip ;
|
||||
continue ;
|
||||
}
|
||||
if ( ( ptC + Z_AX * m_dMinZ[nGrid] - ptF - vtPerp * dRad) * vtPerp > EPS_SMALL &&
|
||||
( ptC + Z_AX * m_dMaxZ[nGrid] - ptF - vtPerp * dRad) * vtPerp > EPS_SMALL) {
|
||||
++ nSkip ;
|
||||
continue ;
|
||||
}
|
||||
|
||||
Point3d ptInt1, ptInt2 ;
|
||||
Vector3d vtN1, vtN2 ;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user