From 4b9c4af1b5e3a573ce07c7c4704c83caa1d4ce7c Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Wed, 6 Jul 2022 15:11:32 +0200 Subject: [PATCH] Correzione per forature su feature di testa o coda: ora riconosce correttamente anche le forature aperte con versore opposto --- LuaLibs/BeamExec.lua | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/LuaLibs/BeamExec.lua b/LuaLibs/BeamExec.lua index a9db6a9..e6dc89f 100644 --- a/LuaLibs/BeamExec.lua +++ b/LuaLibs/BeamExec.lua @@ -1326,11 +1326,12 @@ local function SetDrillingsToMachineAfterHeadOrTailCut( vProc, vMachineBeforeInt end -- recupero il vettore estrusione local vtExtr = EgtCurveExtrusion( AuxId, GDB_RT.GLOB) + local bOpen = ( vProc[i].Fcs ~= 0 and vProc[i].Fce ~= 0) -- se esiste intersezione tra il foro e la feature di testa if vMachineBeforeIntersectingDrillings.Head.Box and vProc[i].Box:getMin():getX() < vMachineBeforeIntersectingDrillings.Head.Box:getMax():getX() + 100 * GEO.EPS_SMALL and vMachineBeforeIntersectingDrillings.Head.Box:getMin():getX() < vProc[i].Box:getMax():getX() + 100 * GEO.EPS_SMALL then -- verifico che il foro sia di testa - if ( vProc[i].Flg > 0 and vtExtr:getX() > 0) or ( vProc[i].Flg == -2 and vtExtr:getX() < 0) then + if ( bOpen or ( not bOpen and vtExtr:getX() > 0)) then vProc[i].MachineAfterHeadCutId = vMachineBeforeIntersectingDrillings.Head.Id vProc[i].Head = true end @@ -1338,7 +1339,7 @@ local function SetDrillingsToMachineAfterHeadOrTailCut( vProc, vMachineBeforeInt elseif vMachineBeforeIntersectingDrillings.Tail.Box and vProc[i].Box:getMin():getX() < vMachineBeforeIntersectingDrillings.Tail.Box:getMax():getX() + 100 * GEO.EPS_SMALL and vMachineBeforeIntersectingDrillings.Tail.Box:getMin():getX() < vProc[i].Box:getMax():getX() + 100 * GEO.EPS_SMALL then -- verifico che il foro sia di coda - if ( vProc[i].Flg > 0 and vtExtr:getX() < 0) or ( vProc[i].Flg == -2 and vtExtr:getX() > 0) then + if ( bOpen or ( not bOpen and vtExtr:getX() < 0)) then vProc[i].MachineAfterTailCutId = vMachineBeforeIntersectingDrillings.Tail.Id vProc[i].Tail = true end