From d13f108dad6aab96bc646ee7f8b030bd9f041a6c Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Wed, 7 Sep 2022 14:57:19 +0200 Subject: [PATCH] Improvement/Ticket#788: in HeadCut migliore scelta del lato di lavorazione in base alla posizione di default della lama --- LuaLibs/ProcessHeadCut.lua | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/LuaLibs/ProcessHeadCut.lua b/LuaLibs/ProcessHeadCut.lua index 840e9ed..e8ba1ef 100644 --- a/LuaLibs/ProcessHeadCut.lua +++ b/LuaLibs/ProcessHeadCut.lua @@ -3,6 +3,7 @@ -- 2022/05/31 Aggiunta gestione sezioni alte e larghe con taglio di tipo diceCut. -- 2022/06/10 Per sezioni alte e larghe aggiunta gestione finitura in base a sovramateriale e a parametro Q05 dell' eventuale lavorazione sostituita. -- 2022/08/18 Aggiunta gestione macchine con testa da sotto con lama da sotto disabilitata. +-- 2022/09/07 Scelta migliore del lato di lavorazione in base alla posizione di default della lama. -- Tabella per definizione modulo local ProcessHeadCut = {} @@ -229,8 +230,17 @@ function ProcessHeadCut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead, bNeedHCut end -- se tagli standard elseif not bDoubleHorizCut then - -- flag di lavorazione faccia - local nOrthoOpposite = EgtIf( bHorizCut, MCH_MILL_FU.ORTHO_DOWN, MCH_MILL_FU.ORTHO_FRONT) + -- scelta lato di lavorazione + -- default per Fast, Turn e macchine con lama principale posizionata sul frontside della macchina (PF1250) + local nOrthoOppositeFirstSide, nOrthoOppositeOtherSide = MCH_MILL_FU.ORTHO_FRONT, MCH_MILL_FU.ORTHO_BACK + -- ordine opposto per macchine con lama principale posizionata sul backside della macchina (PF, One), per limitare i movimenti preparatori della lama + if BD.BLADE_ON_BACK_SIDE then + nOrthoOppositeFirstSide, nOrthoOppositeOtherSide = nOrthoOppositeOtherSide, nOrthoOppositeFirstSide + end + -- se singolo taglio orizzontale + if bHorizCut then + nOrthoOppositeFirstSide, nOrthoOppositeOtherSide = MCH_MILL_FU.ORTHO_DOWN, nil + end -- calcolo extra taglio ed accorciamento local dCutExtra = 0 local dAccStart = 0 @@ -251,14 +261,14 @@ function ProcessHeadCut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead, bNeedHCut if bDoubleCut then for i = nCuts, 1, -1 do local dCutOffset = ( i - 1) * dOffsL - local bOk, sErr = Fbs.MakeOne( Proc.Id, 0, sCutting, dSawDiam, MCH_MILL_FU.ORTHO_BACK, nil, dCutExtra, BD.CUT_SIC, dCutOffset, dAccStart, dAccEnd, '', b3Raw) + local bOk, sErr = Fbs.MakeOne( Proc.Id, 0, sCutting, dSawDiam, nOrthoOppositeFirstSide, nil, dCutExtra, BD.CUT_SIC, dCutOffset, dAccStart, dAccEnd, '', b3Raw) if not bOk then return false, sErr end end end -- eseguo i tagli necessari for i = nCuts, 1, -1 do local dCutOffset = ( i - 1) * dOffsL - local bOk, sErr = Fbs.MakeOne( Proc.Id, 0, sCutting, dSawDiam, nOrthoOpposite, nil, dCutExtra, BD.CUT_SIC, dCutOffset, dAccStart, dAccEnd, '', b3Raw) + local bOk, sErr = Fbs.MakeOne( Proc.Id, 0, sCutting, dSawDiam, EgtIf( bDoubleCut, nOrthoOppositeOtherSide, nOrthoOppositeFirstSide), nil, dCutExtra, BD.CUT_SIC, dCutOffset, dAccStart, dAccEnd, '', b3Raw) if not bOk then return false, sErr end end -- altrimenti necessari tagli da sopra e sotto con testa opportuna