diff --git a/Milling.cpp b/Milling.cpp index b7005fa..2f2921e 100644 --- a/Milling.cpp +++ b/Milling.cpp @@ -4371,6 +4371,9 @@ Milling::CalcTabsPositions( const ICurveComposite* pCompo, double dDepth, bool b while ( nTabId != GDB_ID_NULL) { Point3d ptCen ; if ( ExeCenterPoint( nTabId, GDB_ID_ROOT, ptCen) && b3Mill.EnclosesXY( ptCen)) { + // porto il centro alla quota del percorso + ptCen += vtExtr * ( dDepth - m_Params.m_dTabHeight) ; + // calcolo la distanza del centro dal percorso double dDist ; double dPar, dAdjLen ; int nFlag ; DistPointCurve distPC( ptCen, *pCompo) ; if ( distPC.GetDist( dDist) && dDist < dMaxDist && @@ -4440,7 +4443,9 @@ Milling::CalcTabsPositions( const ICurveComposite* pCompo, double dDepth, bool b Point3d ptCen ; if ( pCompo->GetParamAtLength( dPos + dTabLen / 2, dU) && pCompo->GetPointD1D2( dU, ICurve::FROM_MINUS, ptCen)) { + // porto il centro alla quota del tab ptCen -= vtExtr * ( dDepth - m_Params.m_dTabHeight) ; + // creo il cerchio PtrOwner pCircle( CreateCurveArc()) ; if ( ! IsNull( pCircle) && pCircle->Set( ptCen, vtExtr, m_TParams.m_dDiam / 2)) { int nCircId = m_pGeomDB->AddGeoObj( GDB_ID_NULL, nTabsId, Release( pCircle)) ;