diff --git a/LuaLibs/BeamExec.lua b/LuaLibs/BeamExec.lua index e6dc89f..0e12b87 100644 --- a/LuaLibs/BeamExec.lua +++ b/LuaLibs/BeamExec.lua @@ -1327,17 +1327,18 @@ local function SetDrillingsToMachineAfterHeadOrTailCut( vProc, vMachineBeforeInt -- recupero il vettore estrusione local vtExtr = EgtCurveExtrusion( AuxId, GDB_RT.GLOB) local bOpen = ( vProc[i].Fcs ~= 0 and vProc[i].Fce ~= 0) + local ptCen = EgtCP( AuxId, GDB_RT.GLOB) + local _, _, vDistHead = EgtLineSurfTmInters( ptCen, -vtExtr, vMachineBeforeIntersectingDrillings.Head.Id, GDB_RT.GLOB) + local _, _, vDistTail = EgtLineSurfTmInters( ptCen, -vtExtr, vMachineBeforeIntersectingDrillings.Tail.Id, GDB_RT.GLOB) -- 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 + if #vDistHead > 0 then -- verifico che il foro sia di testa if ( bOpen or ( not bOpen and vtExtr:getX() > 0)) then vProc[i].MachineAfterHeadCutId = vMachineBeforeIntersectingDrillings.Head.Id vProc[i].Head = true end -- se esiste intersezione tra il foro e la feature di coda - 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 + elseif #vDistTail > 0 then -- verifico che il foro sia di coda if ( bOpen or ( not bOpen and vtExtr:getX() < 0)) then vProc[i].MachineAfterTailCutId = vMachineBeforeIntersectingDrillings.Tail.Id