diff --git a/LuaLibs/BeamLib.lua b/LuaLibs/BeamLib.lua index 616a7e5..0c19524 100644 --- a/LuaLibs/BeamLib.lua +++ b/LuaLibs/BeamLib.lua @@ -588,7 +588,7 @@ function BeamLib.GetFaceWithMostAdj( Proc, nPartId, bCompare3Fc, dCosSideAng) end local bEveryFaceHasUndercut = ( nFacesWithUnderCut == nFacCnt) -- tunnel o assimilabile - if Proc.Topology == 'Tunnel' or ( bCompare3Fc and Proc.Topology == 'Groove' and Proc.IsThrough and not (Proc.AffectedFaces.Left or Proc.AffectedFaces.Right)) or ( Proc.Topology == 'Strip' and bEveryFaceHasUndercut) then + if Proc.Topology == 'Tunnel' or ( bCompare3Fc and Proc.Topology == 'Groove' and Proc.IsThrough) or ( Proc.Topology == 'Strip' and bEveryFaceHasUndercut) then if Proc.IsParallel or Proc.AllRightAngles then return -1, GEO.INFINITO, true else diff --git a/LuaLibs/ProcessLapJoint.lua b/LuaLibs/ProcessLapJoint.lua index 4143ff2..fea7633 100644 --- a/LuaLibs/ProcessLapJoint.lua +++ b/LuaLibs/ProcessLapJoint.lua @@ -3408,7 +3408,9 @@ local function MakeByChainOrSaw( Proc, nPhase, nRawId, nPartId, nFacInd, bGoFromHead = false -- continuo di testa se fessura con tre facce o non รจ tunnel else - bGoFromHead = (( bIs3Faces and dMaxElev) or not bOrthoFaces) + bGoFromHead = (( bIs3Faces and ( dMaxElev + or ( Proc.Topology == 'Groove' and Proc.IsThrough and (Proc.AffectedFaces.Left or Proc.AffectedFaces.Right) and not Proc.IsParallel))) + or not bOrthoFaces) end end -- se continuo a lavorare di testa @@ -3477,7 +3479,7 @@ local function MakeByChainOrSaw( Proc, nPhase, nRawId, nPartId, nFacInd, local dToolEntryAngle, _, _, dTanToolEntryAngle = GetToolEntryAngle( Proc, rfFac:getVersZ()) -- se necessario, avverto limitazione dell'affondamento if dElev > dMaxDepth + 10 * GEO.EPS_SMALL then - if Proc.Fct == 3 and Proc.Topology == 'Groove' and Proc.IsThrough and (Proc.AffectedFaces.Left or Proc.AffectedFaces.Right) then + if Proc.Fct == 3 and Proc.Topology == 'Groove' and Proc.IsThrough and (Proc.AffectedFaces.Left or Proc.AffectedFaces.Right) and not Proc.IsParallel then local Edges = BL.GetEdgesInfo( Proc, Proc.Face[nFacAdj+1]) local dWorkEdgeWidth for i = 1, #Edges do