diff --git a/LuaLibs/ProcessLongDoubleCut.lua b/LuaLibs/ProcessLongDoubleCut.lua index 35748c2..f7ccbe1 100644 --- a/LuaLibs/ProcessLongDoubleCut.lua +++ b/LuaLibs/ProcessLongDoubleCut.lua @@ -858,15 +858,25 @@ function ProcessLong2Cut.Make( Proc, nPhase, nRawId, nPartId, bForcedBladeMaster local dOffset local dLioPerp if j == 1 then -- il primo taglio lo faccio completo se angolo interno maggiore di 90 + local dMinOffsBigFace = max( vWidth[vOrd[j]] - dMaxDepth, 0) + -- se la faccia è più grande del massimo materiale lama, allora limito lavorazione + if dMinOffsBigFace > 0 then + dOffset = dMinOffsBigFace -- se angolo interno inferiore di 90° calcolo l'arretramento della lama + un piccolo delta di 0.3 - if dAng < - ( 90 + 10 * GEO.EPS_SMALL) then + elseif dAng < - ( 90 + 10 * GEO.EPS_SMALL) then dOffset = 0.3 + ((dToolThick* vtN[vOrd[1]]) * vtN[vOrd[2]] * vtN[vOrd[2]]):len() else dOffset = 0 end dLioPerp = vWidth[vOrd[j]] + BD.CUT_SIC else -- il secondo ridotto della distanza minima e della componente spessore della lama - dOffset = dDimStrip + ((dToolThick* vtN[vOrd[1]]) - (dToolThick* vtN[vOrd[1]]) * vtN[vOrd[2]] * vtN[vOrd[2]]):len() + local dMinOffsBigFace = max( vWidth[vOrd[j]] - dMaxDepth, 0) + -- se la faccia è più grande del massimo materiale lama, allora limito lavorazione + if dMinOffsBigFace > 0 then + dOffset = dMinOffsBigFace + else + dOffset = dDimStrip + ((dToolThick* vtN[vOrd[1]]) - (dToolThick* vtN[vOrd[1]]) * vtN[vOrd[2]] * vtN[vOrd[2]]):len() + end dLioPerp = vWidth[vOrd[j]] - dOffset + BD.CUT_SIC end local dLioTang = 0