diff --git a/LuaLibs/ProcessLapJoint.lua b/LuaLibs/ProcessLapJoint.lua index b1d4d58..f220313 100644 --- a/LuaLibs/ProcessLapJoint.lua +++ b/LuaLibs/ProcessLapJoint.lua @@ -5743,7 +5743,12 @@ function ProcessLapJoint.Make( Proc, nPhase, nRawId, nPartId, dOvmHead) -- leggo i parametri Q per utilizzare la fresa di fianco e/o lama local nUseSideTool = EgtGetInfo( Proc.Id, Q_SIDE_ROUGH_TOOL, 'i') or 0 local bUseBlade = EgtGetInfo( Proc.Id, Q_ANTISPLINT_TYPE, 'i') == 1 - return Long2Cut.Make( Proc, nPhase, nRawId, nPartId, bUseBlade, nUseSideTool) + local bOK = Long2Cut.Make( Proc, nPhase, nRawId, nPartId, bUseBlade, nUseSideTool) + -- se non sono riuscito a farlo di lama, riprovo con la fresa + if not bOK and bUseBlade then + bUseBlade = false + return Long2Cut.Make( Proc, nPhase, nRawId, nPartId, bUseBlade, nUseSideTool) + end -- prima faccia terminale elseif b3Fac1:getDimX() < 1 and abs( vtN2:getX()) < GEO.EPS_SMALL then -- la faccia 0 deve essere quella lunga diff --git a/LuaLibs/ProcessLongDoubleCut.lua b/LuaLibs/ProcessLongDoubleCut.lua index f7ccbe1..a1d08f1 100644 --- a/LuaLibs/ProcessLongDoubleCut.lua +++ b/LuaLibs/ProcessLongDoubleCut.lua @@ -857,7 +857,18 @@ function ProcessLong2Cut.Make( Proc, nPhase, nRawId, nPartId, bForcedBladeMaster -- ciclo sulle passate local dOffset local dLioPerp + if j == 1 then -- il primo taglio lo faccio completo se angolo interno maggiore di 90 + + -- se devo limitare la lavorazione, verifico che sia effettivamente un taglio longitudinale, altrimenti ritorno errore + if not( ProcessLong2Cut.Identify( Proc)) then + for i = 1, #vOrd do + if vWidth[vOrd[i]] + BD.CUT_SIC > dMaxDepth then + return false + end + end + end + local dMinOffsBigFace = max( vWidth[vOrd[j]] - dMaxDepth, 0) -- se la faccia è più grande del massimo materiale lama, allora limito lavorazione if dMinOffsBigFace > 0 then