From 077cb2c5863fc7cd0f7523cb1aabd6d47df9e1a1 Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Mon, 2 Dec 2024 17:51:59 +0100 Subject: [PATCH 1/2] =?UTF-8?q?-=20in=20HeadCut=20e=20Split=20si=20sceglie?= =?UTF-8?q?=20sempre=20la=20lama=20primaria=20pi=C3=B9=20grande=20-=20in?= =?UTF-8?q?=20LapJoint=20->=20SawPlusChain=20si=20sceglie=20la=20lama=20in?= =?UTF-8?q?=20base=20alla=20profondit=C3=A0=20della=20tasca?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LuaLibs/MachiningLib.lua | 6 +++--- LuaLibs/ProcessHeadCut.lua | 2 +- LuaLibs/ProcessLapJoint.lua | 2 +- LuaLibs/ProcessSplit.lua | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) 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..f4d1b89 100644 --- a/LuaLibs/ProcessLapJoint.lua +++ b/LuaLibs/ProcessLapJoint.lua @@ -5268,7 +5268,7 @@ function SawPlusChain.Saw.CalculateMachiningParameters( Proc, FaceToMachine, Edg end -- ricerca lavorazione - Cutting.Name = ML.FindCutting( 'HeadSide', true, false) + Cutting.Name = ML.FindCutting( 'HeadSide', true, false, EdgeToMachine.Elevation) if not Cutting.Name then Cutting.Message = 'Feature '.. Proc.FeatureId .. ' : strategy ' .. SawPlusChain.Name .. ' not applicable - saw blade not found' Cutting.CanApply = false 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) From d4c98435972587e6b12aebd6b9d7ec2929b025e3 Mon Sep 17 00:00:00 2001 From: "andrea.villa" Date: Wed, 4 Dec 2024 08:25:57 +0100 Subject: [PATCH 2/2] =?UTF-8?q?In=20LapJoint,=20la=20SawPlusChain=20=C3=A8?= =?UTF-8?q?=20estesa=20alla=20topologia=20"Groove-Through-RightAngles-NotP?= =?UTF-8?q?arallel-3"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LuaLibs/ProcessLapJoint.lua | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/LuaLibs/ProcessLapJoint.lua b/LuaLibs/ProcessLapJoint.lua index f4d1b89..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, EdgeToMachine.Elevation) + 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)