diff --git a/LuaLibs/ProcessHeadCut.lua b/LuaLibs/ProcessHeadCut.lua index e8ba1ef..840e9ed 100644 --- a/LuaLibs/ProcessHeadCut.lua +++ b/LuaLibs/ProcessHeadCut.lua @@ -3,7 +3,6 @@ -- 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 = {} @@ -230,17 +229,8 @@ function ProcessHeadCut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead, bNeedHCut end -- se tagli standard elseif not bDoubleHorizCut then - -- 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 + -- flag di lavorazione faccia + local nOrthoOpposite = EgtIf( bHorizCut, MCH_MILL_FU.ORTHO_DOWN, MCH_MILL_FU.ORTHO_FRONT) -- calcolo extra taglio ed accorciamento local dCutExtra = 0 local dAccStart = 0 @@ -261,14 +251,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, nOrthoOppositeFirstSide, nil, dCutExtra, BD.CUT_SIC, dCutOffset, dAccStart, dAccEnd, '', b3Raw) + local bOk, sErr = Fbs.MakeOne( Proc.Id, 0, sCutting, dSawDiam, MCH_MILL_FU.ORTHO_BACK, 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, EgtIf( bDoubleCut, nOrthoOppositeOtherSide, nOrthoOppositeFirstSide), nil, dCutExtra, BD.CUT_SIC, dCutOffset, dAccStart, dAccEnd, '', b3Raw) + local bOk, sErr = Fbs.MakeOne( Proc.Id, 0, sCutting, dSawDiam, nOrthoOpposite, 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 diff --git a/LuaLibs/ProcessSplit.lua b/LuaLibs/ProcessSplit.lua index 9eedaa3..53aff8d 100644 --- a/LuaLibs/ProcessSplit.lua +++ b/LuaLibs/ProcessSplit.lua @@ -3,7 +3,6 @@ -- 2022/05/31 Aggiunta gestione sezioni alte e larghe con taglio con sega a catena seguito da rifinitura con lama (aggiunta funzione MakeSplitByChainSaw); gestione eventuale creazione nuova fase dall'interno della Make. -- 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 ProcessSplit = {} @@ -284,6 +283,8 @@ function ProcessSplit.Make( Proc, nPhase, nRawId, nPartId, nOrd, sDownOrSideOrSt local bDoubleCut = ( not bBigSectionCut and not bHorizCut and not bDoubleHorizCut and b3Raw:getDimY() > dDimYRef - BD.CUT_EXTRA + 10 * GEO.EPS_SMALL) -- dati geometrici del taglio local ptC, vtN = EgtSurfTmFacetCenter( Proc.Id, 0, GDB_ID.ROOT) + -- flag di lavorazione faccia + local nOrthoOpposite = EgtIf( bHorizCut, MCH_MILL_FU.ORTHO_DOWN, MCH_MILL_FU.ORTHO_BACK) -- separazione solo se esiste grezzo successivo con pezzi o scaricabile local nNextRawId = EgtGetNextRawPart( nRawId) local bSplit = ( nNextRawId and ( EgtGetPartInRawPartCount( nNextRawId) > 0 or EgtGetRawPartBBox( nNextRawId):getDimX() >= BD.MinRaw)) @@ -406,17 +407,6 @@ function ProcessSplit.Make( Proc, nPhase, nRawId, nPartId, nOrd, sDownOrSideOrSt end -- se tagli standard elseif not bDoubleHorizCut then - -- 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_BACK, MCH_MILL_FU.ORTHO_FRONT - -- 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 @@ -438,7 +428,7 @@ function ProcessSplit.Make( Proc, nPhase, nRawId, nPartId, nOrd, sDownOrSideOrSt for i = nCuts, 1, -1 do local dCutOffset = ( i - 1) * dOffsL local sNotes = EgtIf( bSplit, 'Presplit;', 'Precut;') - local bOk, sErr = Fbs.MakeOne( Proc.Id, 0, sCutting, dSawDiam, nOrthoOppositeFirstSide, nil, dCutExtra, BD.CUT_SIC, dCutOffset, dAccStart, dAccEnd, sNotes, b3Raw) + local bOk, sErr = Fbs.MakeOne( Proc.Id, 0, sCutting, dSawDiam, MCH_MILL_FU.ORTHO_FRONT, nil, dCutExtra, BD.CUT_SIC, dCutOffset, dAccStart, dAccEnd, sNotes, b3Raw) if not bOk then return false, sErr end end end @@ -451,7 +441,7 @@ function ProcessSplit.Make( Proc, nPhase, nRawId, nPartId, nOrd, sDownOrSideOrSt else sNotes = EgtIf( i == 1, 'Cut;', 'Precut;') end - local bOk, sErr = Fbs.MakeOne( Proc.Id, 0, sCutting, dSawDiam, EgtIf( bDoubleCut, nOrthoOppositeOtherSide, nOrthoOppositeFirstSide), nil, dCutExtra, BD.CUT_SIC, dCutOffset, dAccStart, dAccEnd, sNotes, b3Raw) + local bOk, sErr = Fbs.MakeOne( Proc.Id, 0, sCutting, dSawDiam, nOrthoOpposite, nil, dCutExtra, BD.CUT_SIC, dCutOffset, dAccStart, dAccEnd, sNotes, b3Raw) if not bOk then return false, sErr end end -- altrimenti necessari tagli da sopra e sotto con testa opportuna