diff --git a/LuaLibs/ProcessCut.lua b/LuaLibs/ProcessCut.lua index b66d19a..6ba1675 100644 --- a/LuaLibs/ProcessCut.lua +++ b/LuaLibs/ProcessCut.lua @@ -249,17 +249,21 @@ local function MakeFromTop( sCutting, Proc, nPhase, nRawId, nPartId, dOvmHead, b Proc.Box:getDimY() > b3Solid:getDimY() - 10 * GEO.EPS_SMALL and ( Proc.Box:getDimX() > 0.75 * b3Solid:getDimX() or Proc.Box:getDimX() > 600.000)) -- verifico se da considerare taglio lungo dal lato, solo per macchine tipo PF1250, inclinato non più di 30deg - local bLongCutFromSide = ( not bDownCut and ( BD.C_SIMM and BD.DOWN_HEAD and ( vtN:getY() > 0.865 or vtN:getY() < -0.865) and + local bLongCutFromSide = ( not bDownCut and ( BD.C_SIMM and BD.DOWN_HEAD and ( abs(vtN:getY()) > 0.865) and Proc.Box:getDimZ() > b3Solid:getDimZ() - 10 * GEO.EPS_SMALL) and ( Proc.Box:getDimX() > 0.75 * b3Solid:getDimX() or Proc.Box:getDimX() > 600.000)) -- se taglio lungo e Q04 = 1 allora lancio il processo dell'L10 local bNoDicing = EgtGetInfo( Proc.Id, 'Q04', 'i') == 1 if bNoDicing then if bLongCut then - return LongCut.Make( Proc, nPhase, nRawId, nPartId, true) + local bOk, sErr = LongCut.Make( Proc, nPhase, nRawId, nPartId, true) + return bOk, sErr, bNoDicing elseif bLongCutFromSide then - return LongCut.Make( Proc, nPhase, nRawId, nPartId, false, 2) + local bOk, sErr = LongCut.Make( Proc, nPhase, nRawId, nPartId, false, 2) + return bOk, sErr, bNoDicing end + -- se non passa dal LongCut rimetto a false perchè ha fatto un taglio standard + bNoDicing = false end -- se pezzo ancora attaccato alla trave, per non rovinare quello successivo local bFillAreaPiece @@ -737,9 +741,11 @@ function ProcessCut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead, bFromBottom, EgtOutLog( sErr) return false, sErr end + local bNoDicing = false -- se taglio con testa da sopra if not bDownHead and not bDownTurn then - local bOk, sErr = MakeFromTop( sCutting, Proc, nPhase, nRawId, nPartId, dOvmHead, bFromBottom, bCustDiceCut, bForced, b3Raw, sNotes) + local bOk, sErr, bNoDicing2 = MakeFromTop( sCutting, Proc, nPhase, nRawId, nPartId, dOvmHead, bFromBottom, bCustDiceCut, bForced, b3Raw, sNotes) + bNoDicing = bNoDicing2 if not bOk then return false, sErr end -- altrimenti taglio con testa da sotto else @@ -747,7 +753,7 @@ function ProcessCut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead, bFromBottom, if not bOk then return false, sErr end end -- Aggiornamento ingombro (se vero taglio o richiesto) - if ProcessCut.Identify( Proc) or bUpdateIng then + if ( ProcessCut.Identify( Proc) or bUpdateIng) and not bNoDicing then UpdateEncumbrance( Proc, vtN, dOvmHead, nRawId, b3Solid, b3Raw) end return true diff --git a/LuaLibs/ProcessLongCut.lua b/LuaLibs/ProcessLongCut.lua index 57cb2f2..299c449 100644 --- a/LuaLibs/ProcessLongCut.lua +++ b/LuaLibs/ProcessLongCut.lua @@ -436,8 +436,8 @@ function ProcessLongCut.Make( Proc, nPhase, nRawId, nPartId, bCustUseBlade, nCus if ( nSide == -1 or abs(nSide) == 2) and vtN:getZ() <= -0.5 then bCanUseUnderBlade = true end - -- se faccia da sotto o di lato ma con versore Z negativo abilito la lavorazione con lame mixate - if ( nSide == -1 or abs(nSide) == 2) and vtN:getZ() <= -0.0175 then + -- se faccia da sotto o di lato ma con versore Z sotto l'orizzontale abilito la lavorazione con lame mixate + if ( nSide == -1 or abs(nSide) == 2) and vtN:getZ() <= 0.0175 then bCanUseUnderBlade = true end -- se faccia da sopra o di lato ma con versore Z negativo verifico che abbia un angolo compatibile (28deg) per non avere extracorsa