From a95080797923311da641021119db9ca344c4b14e Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Fri, 5 Apr 2024 19:17:17 +0200 Subject: [PATCH] - in SawPlusChain aggiunto messaggio danneggiamento pezzo successivo --- LuaLibs/ProcessLapJoint.lua | 49 ++++++++++++++++++++++++++++++++++--- 1 file changed, 45 insertions(+), 4 deletions(-) diff --git a/LuaLibs/ProcessLapJoint.lua b/LuaLibs/ProcessLapJoint.lua index fed5992..d83bc94 100644 --- a/LuaLibs/ProcessLapJoint.lua +++ b/LuaLibs/ProcessLapJoint.lua @@ -4593,6 +4593,8 @@ end -- 4 facce con faccia di fondo grande: la faccia da lavorare è piccola (3 adj) e le facce laterali sono le due piccole -- 3 facce: la faccia di fondo è il fondo della tasca, la faccia da lavorare è grande, non ci sono facce laterali +-- TODO: gestione messaggi in funzione apposita ( almeno per append) + local SawPlusChain = {} SawPlusChain.Saw = {} SawPlusChain.Chainsaw = {} @@ -4947,6 +4949,7 @@ function SawPlusChain.Saw.CalculateMachiningParameters( Proc) if not Cutting.Name then Cutting.Message = 'Feature '.. Proc.FeatureId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not applicable - saw blade not found' Cutting.CanApply = false + EgtOutLog( Cutting.Message) return Cutting end Cutting.Type = MCH_OY.MILLING @@ -4958,6 +4961,7 @@ function SawPlusChain.Saw.CalculateMachiningParameters( Proc) if Cutting.Tool.Thickness > Proc.Pocket.Height - 10 * GEO.EPS_SMALL then Cutting.Message = 'Feature '.. Proc.FeatureId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not applicable - pocket too narrow for saw blade thickness' Cutting.CanApply = false + EgtOutLog( Cutting.Message) return Cutting end if Proc.Pocket.SideOpeningsCount == 0 then @@ -4965,6 +4969,7 @@ function SawPlusChain.Saw.CalculateMachiningParameters( Proc) if Cutting.Tool.Diameter > Proc.Pocket.Width - 10 * GEO.EPS_SMALL then Cutting.Message = 'Feature '.. Proc.FeatureId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not applicable - pocket too narrow for saw blade diameter' Cutting.CanApply = false + EgtOutLog( Cutting.Message) return Cutting end end @@ -5027,6 +5032,18 @@ function SawPlusChain.Saw.CalculateMachiningParameters( Proc) Cutting.HorizontalSteps.StepLength = 0 end + -- eventuale avviso di danneggiamento pezzo successivo + local dOffsideLength = max( Cutting.LeadIn.StartAddLength, Cutting.LeadOut.EndAddLength) + Cutting.Tool.Diameter / 2 + 10 * GEO.EPS_SMALL + if ( not Proc.Tail or Proc.AdvTail) and Proc.AffectedFaces.Left and ( Proc.Pocket.DistanceToNextPart < dOffsideLength) then + local sDamageNextPieceMessage = 'Feature '.. Proc.FeatureId .. ' : sawblade can damage next piece.' + if #Cutting.Message > 0 then + Cutting.Message = Cutting.Message .. '\n' .. sDamageNextPieceMessage + else + Cutting.Message = sDamageNextPieceMessage + end + EgtOutLog( sDamageNextPieceMessage) + end + return Cutting end @@ -5106,13 +5123,26 @@ function SawPlusChain.Chainsaw.CalculateMachiningParameters( Proc) -- eventuale step verticale Chainsawing.VerticalSteps = SawPlusChain.GetVerticalSteps( Proc, Chainsawing) + -- eventuale avviso di danneggiamento pezzo successivo + local dOffsideLength = max( Chainsawing.LeadIn.StartAddLength, Chainsawing.LeadOut.EndAddLength) + Chainsawing.Tool.Width / 2 + 10 * GEO.EPS_SMALL + if ( not Proc.Tail or Proc.AdvTail) and Proc.AffectedFaces.Left and ( Proc.Pocket.DistanceToNextPart < dOffsideLength) then + local sDamageNextPieceMessage = 'Feature '.. Proc.FeatureId .. ' : chainsaw can damage next piece.' + if #Chainsawing.Message > 0 then + Chainsawing.Message = Chainsawing.Message .. '\n' .. sDamageNextPieceMessage + else + Chainsawing.Message = sDamageNextPieceMessage + end + EgtOutLog( sDamageNextPieceMessage) + end + return Chainsawing end -function SawPlusChain.Make( Proc, b3Raw, bOnlySaw) +function SawPlusChain.Make( Proc, nRawId, nPhase, bOnlySaw) Proc.Pocket = {} Proc.Pocket.Strategy = 'SawPlusChain' + local b3Raw = EgtGetRawPartBBox( nRawId) if not SawPlusChain.IsTopologyOk( Proc) then local sErr = 'Feature '.. Proc.FeatureId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not implemented for topology ' .. Proc.TopologyLongName @@ -5134,6 +5164,7 @@ function SawPlusChain.Make( Proc, b3Raw, bOnlySaw) Proc.Pocket.Height = Proc.Pocket.BottomFace.Height Proc.Pocket.Depth = Proc.Pocket.BottomFace.Elevation Proc.Pocket.Direction = Proc.Pocket.BottomFace.VtN + Proc.Pocket.DistanceToNextPart = BL.GetDistanceToNextPart( nRawId, nPhase) -- parametri lavorazione di lama local Cutting = SawPlusChain.Saw.CalculateMachiningParameters( Proc) @@ -5154,11 +5185,16 @@ function SawPlusChain.Make( Proc, b3Raw, bOnlySaw) bIsCuttingOk, sCuttingApplyMessage = SawPlusChain.ApplyMachining( Cutting, 'Cut_', b3Raw) -- update messaggi if sCuttingApplyMessage and #sCuttingApplyMessage > 0 then - Cutting.Message = Cutting.Message .. '\n' .. 'Apply : ' .. sCuttingApplyMessage + Cutting.Message = Cutting.Message .. 'Apply : ' .. sCuttingApplyMessage .. '\n' end end end + -- se tasca passante e la lama è arrivata sul fondo, non servono ulteriori lavorazioni + if #Proc.Pocket.SideFaces == 0 and Cutting.RadialOffset == 0 then + bOnlySaw = true + end + if bOnlySaw or not bIsCuttingOk then return bIsCuttingOk, Cutting.Message end @@ -5184,7 +5220,12 @@ function SawPlusChain.Make( Proc, b3Raw, bOnlySaw) end end - return bIsChainsawingOk, Chainsawing.Message + local sFinalMessage = '' + if #Cutting.Message > 0 or #Chainsawing.Message > 0 then + sFinalMessage = Cutting.Message .. '\n' .. Chainsawing.Message + end + + return bIsChainsawingOk, sFinalMessage end --#endregion SawPlusChain @@ -5221,7 +5262,7 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa local bOk local sErr local bOnlySaw = EgtGetInfo( Proc.Id, Q_SAW_PLUS_CHAIN, 'i') == 1 - bOk, sErr = SawPlusChain.Make ( Proc, b3Raw, bOnlySaw) + bOk, sErr = SawPlusChain.Make ( Proc, nRawId, nPhase, bOnlySaw) return bOk, sErr end