From 028688b88a9278531b9bbd35a374bdf7e8b0da9d Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Wed, 17 Jul 2024 16:06:26 +0200 Subject: [PATCH] - in SawPlusChain con tunnel passante fatto da un solo lato, se apply della sega a catena fallisce per finecorsa, si riapplica dal lato opposto --- LuaLibs/ProcessLapJoint.lua | 43 ++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/LuaLibs/ProcessLapJoint.lua b/LuaLibs/ProcessLapJoint.lua index 6d26ba0..63feadd 100644 --- a/LuaLibs/ProcessLapJoint.lua +++ b/LuaLibs/ProcessLapJoint.lua @@ -5110,22 +5110,29 @@ function SawPlusChain.ApplyMachining( Machining, b3Raw) local nErr nErr, sErr = EgtGetLastMachMgrError() -- se mortasatura e l'errore è compatibile (Axes values not calculable) si prova con l'altra configurazione dell'asse bloccato - -- TODO valutare se c'è modo di capire preventivamente la configurazione dell'asse bloccato e quindi rimuovere questa parte di codice - if Machining.Type == MCH_OY.MORTISING and nErr == 2507 then - if Machining.BlockedAxis.Orientation == 'perpendicular' then - Machining.BlockedAxis.Orientation = 'parallel' - else - Machining.BlockedAxis.Orientation = 'perpendicular' + if Machining.Type == MCH_OY.MORTISING then + -- se errore "Axes values not calculable" si prova con l'altra configurazione dell'asse bloccato + if nErr == 2507 then + if Machining.BlockedAxis.Orientation == 'perpendicular' then + Machining.BlockedAxis.Orientation = 'parallel' + else + Machining.BlockedAxis.Orientation = 'perpendicular' + end + EgtSetMachiningParam( MCH_MP.BLOCKEDAXIS, BL.GetBlockedAxis( Machining.Name, Machining.BlockedAxis.Orientation, b3Raw, Machining.BlockedAxis.VtN, Machining.BlockedAxis.VtOut)) + if Machining.SuggestedAngles.Index == 1 then + Machining.SuggestedAngles.Index = 2 + else + Machining.SuggestedAngles.Index = 1 + end + EgtSetMachiningParam( MCH_MP.INITANGS, BL.GetChainSawInitAngs( Machining.SuggestedAngles.VtN, Machining.SuggestedAngles.VtOrtho, Machining.SuggestedAngles.Index)) + sErr = '' + bIsApplyOk = ML.ApplyMachining( true, false) + -- se errore "Outstroke" e permesso ToolInvert provo ad invertire il lato di lavorazione + elseif Machining.AllowToolInvert and nErr == 2508 then + EgtSetMachiningParam( MCH_MP.TOOLINVERT, not Machining.ToolInvert) + sErr = '' + bIsApplyOk = ML.ApplyMachining( true, false) end - EgtSetMachiningParam( MCH_MP.BLOCKEDAXIS, BL.GetBlockedAxis( Machining.Name, Machining.BlockedAxis.Orientation, b3Raw, Machining.BlockedAxis.VtN, Machining.BlockedAxis.VtOut)) - if Machining.SuggestedAngles.Index == 1 then - Machining.SuggestedAngles.Index = 2 - else - Machining.SuggestedAngles.Index = 1 - end - EgtSetMachiningParam( MCH_MP.INITANGS, BL.GetChainSawInitAngs( Machining.SuggestedAngles.VtN, Machining.SuggestedAngles.VtOrtho, Machining.SuggestedAngles.Index)) - sErr = '' - bIsApplyOk = ML.ApplyMachining( true, false) end if not bIsApplyOk then nErr, sErr = EgtGetLastMachMgrError() @@ -5334,6 +5341,7 @@ function SawPlusChain.Chainsaw.CalculateMachiningParameters( Proc, FaceToMachine Mortising.CanApply = true Mortising.Message = '' Mortising.ProcId = Proc.Id + Mortising.AllowToolInvert = false local bNeedToMachineOtherSide = false local dTestCornerRadius = 43 -- OneSide | OneSideAndExtend | BothSides | BothSidesAndExtend @@ -5382,6 +5390,11 @@ function SawPlusChain.Chainsaw.CalculateMachiningParameters( Proc, FaceToMachine Mortising.Type = MCH_OY.MORTISING Mortising.Tool = SawPlusChain.GetToolFromMachining( Mortising.Name) + -- in caso di tunnel da un lato permetto eventuale inversione lato di lavoro in caso di errori di applicazione (es: Outstroke) + if Proc.Topology == 'Tunnel' and sMortisingType == 'OneSide' or sMortisingType == 'OneSideAndExtend' then + Mortising.AllowToolInvert = true + end + -- verifica dimensioni tasca compatibili -- se tasca meno spessa della sega a catena la strategia non è applicabile if Mortising.Tool.Thickness > dPocketHeight + 10 * GEO.EPS_SMALL then