diff --git a/VolZmapVolume.cpp b/VolZmapVolume.cpp index 37962a6..412a668 100644 --- a/VolZmapVolume.cpp +++ b/VolZmapVolume.cpp @@ -864,6 +864,8 @@ GetCylMoveRotBBox( const Point3d& ptP1, const Point3d& ptP2, const Vector3d& vtV Vector3d vtDirTop = ptP2 - ptP1 ; Vector3d vtDirTip = ptP2T - ptP1T ; + vtDirTop.Normalize() ; + vtDirTip.Normalize() ; // determino i punti laterali del top e del bottom(tip), nella posizione di partenza Vector3d vtAuxTopS = vtV1 ^ vtDirTop ; @@ -2376,7 +2378,7 @@ VolZmap::MillingGeneralMotionStep( const Point3d& ptPs, const Vector3d& vtDs, co const Point3d& ptPe, const Vector3d& vtDe, const Vector3d& vtAe) { // Flag per impostare vecchia (approssimativa) o nuova modalità di calcolo - constexpr bool OLD_LINEAR = true ; + constexpr bool OLD_LINEAR = false ; // Deve essere definito l'utensile corrente if ( m_nCurrTool < 0 || m_nCurrTool >= int( m_vTool.size())) @@ -2473,8 +2475,12 @@ VolZmap::MillingGeneralMotionStep( const Point3d& ptPs, const Vector3d& vtDs, co else n5AxisType = Move5Axis::NO_BASE_INTERS ; } - else if ( bAlong) - n5AxisType = Move5Axis::NO_BASE_INTERS ; + else if (bAlong) { + if (bAlongInters) + n5AxisType = Move5Axis::ACROSS; + else + n5AxisType = Move5Axis::NO_BASE_INTERS; + } Point3d ptLs[N_MAPS] ; Point3d ptLe[N_MAPS] ;