diff --git a/LuaLibs/BeamExec.lua b/LuaLibs/BeamExec.lua index c9ca8f8..8bae782 100644 --- a/LuaLibs/BeamExec.lua +++ b/LuaLibs/BeamExec.lua @@ -123,7 +123,6 @@ local FreeContour = require( 'ProcessFreeContour') local Decor = require( 'ProcessDecor') EgtOutLog( ' BeamExec started', 1) - EgtMdbSetGeneralParam( MCH_GP.MAXDEPTHSAFE, BD.COLL_SIC) EgtMdbSave() @@ -1322,7 +1321,7 @@ local function SetDrillingsToMachineAfterHeadOrTailCut( vProc, vMachineBeforeInt -- 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 - vProc[i].MachineAfterTailCutId = vMachineBeforeIntersectingDrillings.Tail.Id + vProc[i].MachineAfterTailCutId = vMachineBeforeIntersectingDrillings.Tail.Id end end end diff --git a/LuaLibs/ProcessDrill.lua b/LuaLibs/ProcessDrill.lua index 2264178..e387c63 100644 --- a/LuaLibs/ProcessDrill.lua +++ b/LuaLibs/ProcessDrill.lua @@ -395,25 +395,31 @@ function ProcessDrill.Make( Proc, nPhase, nRawId, nPartId) local sMyWarn -- test - if Proc.MachineAfterHeadCutId then + local dMaxElev = dDepth + if Proc.MachineAfterHeadCutId or Proc.MachineAfterTailCutId then local ptCen = EgtCP( AuxId, GDB_RT.GLOB) - local dMoveDistance, ptPointOnSurface = EgtPointSurfTmDist( ptCen, Proc.MachineAfterHeadCutId, GDB_RT.GLOB) - local vtMove = -vtExtr * dMoveDistance - EgtMove( AuxId, vtMove, GDB_RT.GLOB) - EgtModifyCurveThickness( Proc.MachineAfterHeadCutId, dLen - dMoveDistance) + if ( Proc.MachineAfterHeadCutId and vtExtr:getX() < 0) or ( Proc.MachineAfterTailCutId and vtExtr:getX() > 0) then + local vtMove = -vtExtr * dLen + ptCen:move( vtMove) + end + local bIntersectionOk, _, vDistance = EgtLineSurfTmInters( ptCen, -vtExtr, Proc.MachineAfterHeadCutId or Proc.MachineAfterTailCutId, GDB_RT.GLOB) + if bIntersectionOk == true then + dMaxElev = abs( vDistance[1]) + end end -- fine test - if dDepth > dMaxDepth + 10 * GEO.EPS_SMALL then + if dMaxElev > dMaxDepth + 10 * GEO.EPS_SMALL then sMyWarn = 'Warning in drill : depth (' .. EgtNumToString( dDepth, 1) .. ') bigger than max tool depth (' .. EgtNumToString( dMaxDepth, 1) .. ')' dDepth = dMaxDepth EgtOutLog( sMyWarn) end + EgtSetMachiningParam( MCH_MP.DEPTH, dDepth) -- Note utente con dichiarazione nessuna generazione sfridi per Vmill local sUserNotes = 'VMRS=0;' -- aggiungo alle note massima elevazione (coincide con affondamento) - sUserNotes = sUserNotes .. 'MaxElev=' .. EgtNumToString( dDepth, 1) .. ';' + sUserNotes = sUserNotes .. 'MaxElev=' .. EgtNumToString( dMaxElev, 1) .. ';' -- se foro passante, aggiungo questa qualifica alle note if ( sType == 'Drill' or sType == 'Drill_H2') and bOpen then sUserNotes = sUserNotes .. 'Open=1;'