diff --git a/LuaLibs/MachiningLib.lua b/LuaLibs/MachiningLib.lua index f2b58f6..cfce39b 100644 --- a/LuaLibs/MachiningLib.lua +++ b/LuaLibs/MachiningLib.lua @@ -170,7 +170,7 @@ function VerifyTool( Machining, MachiningType, Params, bH2) return VerifyDrillPocket( Machining, Params.Diam, Params.Depth, bH2) end elseif MachiningType == MCH_MY.SAWING then - return true, { H2 = bH2} + return ( not Params.Depth or Machining.Tool.MaxMat > Params.Depth - GEO.EPS_SMALL), { H2 = bH2} elseif MachiningType == MCH_MY.MILLING then return VerifyMill( Machining, Params.Depth, Params.TuuidMstr, Params.MaxDiam, Params.MaxTotLen, bH2) elseif MachiningType == MCH_MY.POCKETING then @@ -450,8 +450,8 @@ local function FindMachining( MachiningType, sType, Params, bTopHead, bDownHead, end --------------------------------------------------------------------- -function MachiningLib.FindCutting( sType, bTopHead, bDownHead) - return FindMachining( MCH_MY.SAWING, sType, nil, bTopHead, bDownHead) +function MachiningLib.FindCutting( sType, bTopHead, bDownHead, dDepth, sSortingCriterion) + return FindMachining( MCH_MY.SAWING, sType, { Depth = dDepth}, bTopHead, bDownHead, nil, nil, sSortingCriterion) end --------------------------------------------------------------------- diff --git a/LuaLibs/ProcessHeadCut.lua b/LuaLibs/ProcessHeadCut.lua index 96f20a7..51873a5 100644 --- a/LuaLibs/ProcessHeadCut.lua +++ b/LuaLibs/ProcessHeadCut.lua @@ -365,7 +365,7 @@ function ProcessHeadCut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead, bNeedHCut -- eventuali informazioni sul tipo di finitura local nQ05 = EgtGetInfo( nOriId or GDB_ID.NULL, 'Q05', 'i') or 0 -- recupero la lavorazione - local sCutting = ML.FindCutting( 'HeadSide') + local sCutting = ML.FindCutting( 'HeadSide', nil, nil, nil, 'Longest') if not sCutting then local sErr = 'Error : cutting not found in library' EgtOutLog( sErr) diff --git a/LuaLibs/ProcessLapJoint.lua b/LuaLibs/ProcessLapJoint.lua index d362ae0..c3820e0 100644 --- a/LuaLibs/ProcessLapJoint.lua +++ b/LuaLibs/ProcessLapJoint.lua @@ -4750,6 +4750,7 @@ SawPlusChain.ApplyOnlySawblade = false function SawPlusChain.IsTopologyOk( Proc) if Proc.TopologyLongName == 'Pocket-Blind-RightAngles-Parallel-5' or Proc.TopologyLongName == 'Groove-Through-RightAngles-Parallel-3' or + Proc.TopologyLongName == 'Groove-Through-RightAngles-NotParallel-3' or Proc.TopologyLongName == 'Groove-Blind-RightAngles-Parallel-4' or Proc.TopologyLongName == 'Tunnel-Through-RightAngles-Parallel-4' then @@ -5268,11 +5269,16 @@ function SawPlusChain.Saw.CalculateMachiningParameters( Proc, FaceToMachine, Edg end -- ricerca lavorazione - Cutting.Name = ML.FindCutting( 'HeadSide', true, false) + Cutting.Name = ML.FindCutting( 'HeadSide', true, false, abs( EdgeToMachine.Elevation)) if not Cutting.Name then - Cutting.Message = 'Feature '.. Proc.FeatureId .. ' : strategy ' .. SawPlusChain.Name .. ' not applicable - saw blade not found' - Cutting.CanApply = false - EgtOutLog( Cutting.Message) + -- ricerca lavorazione senza considerare massima elevazione + Cutting.Name = ML.FindCutting( 'HeadSide', true, false, nil, 'Longest') + if not Cutting.Name then + Cutting.Message = 'Feature '.. Proc.FeatureId .. ' : strategy ' .. SawPlusChain.Name .. ' not applicable - saw blade not found' + Cutting.CanApply = false + EgtOutLog( Cutting.Message) + return Cutting + end end Cutting.Type = MCH_OY.MILLING Cutting.Tool = SawPlusChain.GetToolFromMachining( Cutting.Name) @@ -5673,7 +5679,7 @@ function SawPlusChain.Make( bOnlySaw, Proc, nRawId) end else -- se la lama non è arrivata sul fondo e c'è almeno un lato aperto va lavorato - if Cutting.RadialOffset > 10 * GEO.EPS_SMALL then + if Cutting.CanApply and Cutting.RadialOffset > 10 * GEO.EPS_SMALL then -- eventuale lavorazione di lama - lato della tasca da cui inizia la lavorazione if Proc.MainFaces.LongFace.Edges.BottomEdge.IsStartOpen then Cutting = SawPlusChain.Saw.CalculateMachiningParameters( Proc, Proc.MainFaces.LongFace, Proc.MainFaces.LongFace.Edges.SideEdges.StartEdge) diff --git a/LuaLibs/ProcessSplit.lua b/LuaLibs/ProcessSplit.lua index ff3a78d..4ee97e2 100644 --- a/LuaLibs/ProcessSplit.lua +++ b/LuaLibs/ProcessSplit.lua @@ -573,7 +573,7 @@ function ProcessSplit.Make( Proc, nPhase, nRawId, nPartId, nOrd, sDownOrSideOrSt if not bOkc then return bOkc, sErrC end end -- recupero la lavorazione - local sCutting = ML.FindCutting( 'TailSide') + local sCutting = ML.FindCutting( 'TailSide', nil, nil, nil, 'Longest') if not sCutting then local sErr = 'Error on process ' .. tostring( Proc.Id) .. ' cutting not found in library' EgtOutLog( sErr)