diff --git a/LuaLibs/WProcessLapJoint.lua b/LuaLibs/WProcessLapJoint.lua index cbc4541..5ecf8c0 100644 --- a/LuaLibs/WProcessLapJoint.lua +++ b/LuaLibs/WProcessLapJoint.lua @@ -2073,8 +2073,8 @@ local function MakeSideGrooveByMill( Proc, nFacet, nRawId, b3Raw, sCustomMach, d bInvert = not bIsToolCcw nWorkside = bIsToolCcw and MCH_MILL_WS.RIGHT or MCH_MILL_WS.LEFT end - EgtSetMachiningParam(MCH_MP.INVERT, bInvert) - EgtSetMachiningParam(MCH_MP.WORKSIDE, nWorkside) + EgtSetMachiningParam( MCH_MP.INVERT, bInvert) + EgtSetMachiningParam( MCH_MP.WORKSIDE, nWorkside) -- setto offset radiale per gestire le eventuali passate in orizzontale local dRadialOffset = dSideStep * ( nSideStep - i) EgtSetMachiningParam( MCH_MP.OFFSR, dRadialOffset) @@ -2902,6 +2902,8 @@ end --------------------------------------------------------------------- local function MakeMoreFaces( Proc, nRawId, b3Raw) + -- recupero parametri Q + local _, nUseMillOnSide = EvaluateQParam( Proc) -- con una faccia di fondo valida if Proc.Stype == 1 or Proc.Stype == 2 then -- recupero eventuale flag forzatura svuotatura @@ -2909,7 +2911,9 @@ local function MakeMoreFaces( Proc, nRawId, b3Raw) -- cerco la faccia con il maggior numero di adiacenze local nFacInd, dElev, nFacInd2, dElev2 = WL.GetFaceWithMostAdj( Proc.Id, Proc.PartId) -- se necessario scambio le facce - if Proc.Stype == 2 then + local bIsGroove3Blind = Proc.Fct == 3 and Proc.Topology == 'Groove' and not Proc.IsThrough + local bPreferSidemill = ( nUseMillOnSide == 2) + if Proc.Stype == 2 or ( bPreferSidemill and bIsGroove3Blind) then nFacInd, dElev, nFacInd2, dElev2 = nFacInd2, dElev2, nFacInd, dElev end local vtN = EgtSurfTmFacetNormVersor( Proc.Id, nFacInd, GDB_ID.ROOT) @@ -2917,7 +2921,7 @@ local function MakeMoreFaces( Proc, nRawId, b3Raw) local dMaxSlotThicknessForBlade = 19 local bIsSmallSlot = ( Proc.Fct == 3 and ( min( dH, dV) < dMaxSlotThicknessForBlade - 10 * GEO.EPS_SMALL) and ( vtN:getZ() > -0.01)) -- se di fianco - if not bPckt and Proc.Fct >= 3 and ( ( vtN:getZ() < WD.NZ_MINA) or bIsSmallSlot) then + if not bPckt and Proc.Fct >= 3 and ( ( bPreferSidemill and bIsGroove3Blind) or ( vtN:getZ() < WD.NZ_MINA) or bIsSmallSlot) then -- recupero elevazione faccia in feature local dSideElev = WL.GetFaceElevation( Proc.Id, nFacInd) -- se abilitata lavorazione ribasso con fresa di fianco e parametro Q03 abilitato @@ -2933,7 +2937,6 @@ local function MakeMoreFaces( Proc, nRawId, b3Raw) sMillOnSide = sMillOnSideBackup end end - local _, nUseMillOnSide = EvaluateQParam( Proc) -- se ho abilitata lavorazione di fresa di fianco if Proc.Fct >= 3 and sMillOnSide and nUseMillOnSide >= 1 and not bIsSmallSlot then -- cerco nei parametri utensili la nota di affondamento di fianco SIDEDEPTH