diff --git a/LuaLibs/ProcessCut.lua b/LuaLibs/ProcessCut.lua index 96d54ba..e69e809 100644 --- a/LuaLibs/ProcessCut.lua +++ b/LuaLibs/ProcessCut.lua @@ -466,23 +466,25 @@ local function MakeFromTop( sCutting, Proc, nPhase, nRawId, nPartId, dOvmHead, b end end end - - local bDoubleCutOk = false - local nSurfToCut - if i % 2 == 0 then - local _, dDiceFaceH = BL.GetFaceHvRefDim( vCuts[i][1], 0) - bDoubleCutOk = dDiceFaceH < 2 * ( dMaxDepth - BD.CUT_EXTRA) - nSurfToCut = EgtSurfTmBySewing( nAddGrpId, vCuts[i], false) - end + local _, dDiceFaceH = BL.GetFaceHvRefDim( vCuts[i][1] or GDB_ID.NULL, 0) -- caso speciale con rischio cubetto sul motore - if bDangerousReliefCut and bDoubleCutOk then + if ( i % 2 == 0) and bDangerousReliefCut and ( dMaxDepth * 2 > dDiceFaceH + BD.CUT_EXTRA) then + local bDoubleCut = false + local nSurfToCut + local dCutExtra = BD.CUT_EXTRA + if dMaxDepth < dDiceFaceH + BD.CUT_EXTRA then + bDoubleCut = true + dCutExtra = - 0.5 * b3Raw:getDimY() + BD.CUT_EXTRA + end + nSurfToCut = EgtSurfTmBySewing( nAddGrpId, vCuts[i], false) local nFaceUseCut1, nFaceUseCut2 = MCH_MILL_FU.ORTHO_BACK, MCH_MILL_FU.ORTHO_FRONT if Proc.Tail then nFaceUseCut1, nFaceUseCut2 = nFaceUseCut2, nFaceUseCut1 end - local dCutExtra = - 0.5 * b3Raw:getDimY() + BD.CUT_EXTRA_MIN - local bOk, sErr = Fbs.MakeOne( nSurfToCut, 0, sCutting, dSawDiam, nFaceUseCut1, nil, dCutExtra, BD.CUT_SIC, 0, 0, 0, '', b3Raw, true) - if not bOk then return false, sErr end + if bDoubleCut then + local bOk, sErr = Fbs.MakeOne( nSurfToCut, 0, sCutting, dSawDiam, nFaceUseCut1, nil, dCutExtra, BD.CUT_SIC, 0, 0, 0, '', b3Raw, true) + if not bOk then return false, sErr end + end local bOk2, sErr2 = Fbs.MakeOne( nSurfToCut, 0, sCutting, dSawDiam, nFaceUseCut2, nil, dCutExtra, BD.CUT_SIC, 0, 0, 0, '', b3Raw) if not bOk2 then return false, sErr2 end -- caso standard