From e3f8783c182dde5801479f8bfeca5193c04ad1a9 Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Fri, 29 Mar 2024 09:29:08 +0100 Subject: [PATCH] - in SawPlusChain piccole correzioni --- LuaLibs/ProcessLapJoint.lua | 59 ++++++++++++++++++++++++++----------- 1 file changed, 42 insertions(+), 17 deletions(-) diff --git a/LuaLibs/ProcessLapJoint.lua b/LuaLibs/ProcessLapJoint.lua index fd7c76d..d6697fd 100644 --- a/LuaLibs/ProcessLapJoint.lua +++ b/LuaLibs/ProcessLapJoint.lua @@ -4753,7 +4753,12 @@ function SawPlusChain.GetSCC( vtMachiningDirection) end function SawPlusChain.GetVerticalSteps( Proc, Machining) - VerticalSteps = {} + if not Proc.Pocket or not Proc.Pocket.Height then + error( 'Missing pocket depth') + elseif not Machining.Tool or not Machining.Tool.Thickness then + error( 'Missing tool thickness') + end + local VerticalSteps = {} VerticalSteps.StepLength = 0 VerticalSteps.Count = ceil( ( Proc.Pocket.Height - 10 * GEO.EPS_SMALL) / Machining.Tool.Thickness) if VerticalSteps.Count > 1 then @@ -4766,7 +4771,10 @@ function SawPlusChain.GetVerticalSteps( Proc, Machining) end function SawPlusChain.GetHorizontalSteps( Machining) - HorizontalSteps = {} + if not Machining.Depth then + error( 'Missing machining depth') + end + local HorizontalSteps = {} HorizontalSteps.StepLength = 0 HorizontalSteps.Count = 1 if Machining.Tool.SideStep then @@ -4807,8 +4815,8 @@ function SawPlusChain.GetLeadInOut( Proc, Machining) end end - LeadIn = {} - LeadOut = {} + local LeadIn = {} + local LeadOut = {} LeadIn.Type = MCH_MILL_LI.LINEAR LeadOut.Type = MCH_MILL_LI.LINEAR LeadIn.TangentDistance = 0 @@ -4865,6 +4873,9 @@ function SawPlusChain.ApplyMachining( Machining, sOperationNamePrefix, b3Raw) sNotes = EgtSetValInNotes( sNotes, 'MaxElev', Machining.VerticalSteps.MaxElev) end EgtSetMachiningParam( MCH_MP.BLOCKEDAXIS, BL.GetBlockedAxis( Machining.Name, Machining.BlockedAxis.Orientation, b3Raw, Machining.FaceToMachine.VtN, Machining.BlockedAxis.VtOut)) + EgtSetMachiningParam( MCH_MP.OVERL, Machining.Overlap) + EgtSetMachiningParam( MCH_MP.INITANGS, Machining.SuggestedAngles) + EgtSetMachiningParam( MCH_MP.STARTPOS, max( Machining.StartSafetyLength, EgtGetMachiningParam( MCH_MP.STARTPOS))) EgtSetMachiningParam( MCH_MP.USERNOTES, sNotes) local bIsApplyOk = ML.ApplyMachining( true, false) @@ -4877,7 +4888,7 @@ function SawPlusChain.ApplyMachining( Machining, sOperationNamePrefix, b3Raw) return true end -function SawPlusChain.Make( Proc, b3Raw) +function SawPlusChain.Make( Proc, b3Raw, bOnlySaw) Proc.Pocket = {} Proc.Pocket.Strategy = 'SawPlusChain' @@ -4887,6 +4898,7 @@ function SawPlusChain.Make( Proc, b3Raw) end -- se tasca su faccia sotto la strategia non è applicabile (la sega a catena in generale non può lavorare da sotto) + -- TODO se OnlySaw questo test è da rimuovere ma bisogna considerare anche la lama da sotto if Proc.AffectedFaces.Bottom then local sErr = 'Feature '.. Proc.FeatureId .. ': Strategy not applicable - pocket on bottom face' return false, sErr @@ -4930,7 +4942,7 @@ function SawPlusChain.Make( Proc, b3Raw) return false, sErr end -- se tasca meno spessa della sega a catena la strategia non è applicabile - if Chainsawing.Tool.Thickness > Proc.Pocket.Height - 10 * GEO.EPS_SMALL then + if not bOnlySaw and Chainsawing.Tool.Thickness > Proc.Pocket.Height - 10 * GEO.EPS_SMALL then local sErr = 'Feature '.. Proc.FeatureId .. ': Strategy ' .. Proc.Pocket.Strategy .. ' not applicable - pocket too narrow for chainsaw thickness' return false, sErr end @@ -4941,7 +4953,7 @@ function SawPlusChain.Make( Proc, b3Raw) return false, sErr end -- se tasca più stretta della sega a catena la strategia non è applicabile - if Chainsawing.Tool.Width > Proc.Pocket.Width - 10 * GEO.EPS_SMALL then + if not bOnlySaw and Chainsawing.Tool.Width > Proc.Pocket.Width - 10 * GEO.EPS_SMALL then local sErr = 'Feature '.. Proc.FeatureId .. ': Strategy ' .. Proc.Pocket.Strategy .. ' not applicable - pocket too narrow for chainsaw width' return false, sErr end @@ -4971,14 +4983,6 @@ function SawPlusChain.Make( Proc, b3Raw) Cutting.Depth = Cutting.Tool.MaxDepth Cutting.RadialOffset = Proc.Pocket.Depth - Cutting.Depth end - -- faceuse - Cutting.Faceuse = BL.GetNearestOrthoOpposite( Proc.Pocket.Direction) - -- SCC - Cutting.SCC = SawPlusChain.GetSCC( Proc.Pocket.Direction) - -- asse bloccato - Cutting.BlockedAxis = {} - Cutting.BlockedAxis.Orientation = 'perpendicular' - Cutting.BlockedAxis.VtOut = EgtIf( Cutting.FaceToMachine.VtN:getX() > 0, X_AX(), -X_AX()) -- step verticale e offset longitudinale Cutting.VerticalSteps = SawPlusChain.GetVerticalSteps( Proc, Cutting) if Cutting.ToolInvert and Cutting.VerticalSteps.Count > 1 then @@ -4986,8 +4990,20 @@ function SawPlusChain.Make( Proc, b3Raw) else Cutting.LongitudinalOffset = 0 end + Cutting.StartSafetyLength = 10 + Cutting.Overlap = 0 -- step orizzontale Cutting.HorizontalSteps = SawPlusChain.GetHorizontalSteps( Cutting) + -- faceuse + Cutting.Faceuse = BL.GetNearestOrthoOpposite( Proc.Pocket.Direction) + -- SCC + Cutting.SCC = SawPlusChain.GetSCC( Proc.Pocket.Direction) + -- angoli suggeriti + Cutting.SuggestedAngles = '' + -- asse bloccato + Cutting.BlockedAxis = {} + Cutting.BlockedAxis.Orientation = 'perpendicular' + Cutting.BlockedAxis.VtOut = EgtIf( Cutting.FaceToMachine.VtN:getX() > 0, X_AX(), -X_AX()) -- approccio e retrazione Cutting.LeadIn, Cutting.LeadOut = SawPlusChain.GetLeadInOut( Proc, Cutting) @@ -5000,8 +5016,16 @@ function SawPlusChain.Make( Proc, b3Raw) bOk, sErr = SawPlusChain.ApplyMachining( Cutting, 'Cut_', b3Raw) end + if bOnlySaw then + return bOk, sErr + end + -- parametri della lavorazione con sega a catena + + + + -- lavorazione con sega a catena return bOk, sErr @@ -5037,10 +5061,11 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa -- rimuovere true or!!!!!! - if true or EgtGetInfo( Proc.Id, Q_SAW_PLUS_CHAIN, 'i') == 1 then --TEST + if true or EgtGetInfo( Proc.Id, Q_SAW_PLUS_CHAIN, 'i') > 0 then --TEST local bOk local sErr - bOk, sErr = SawPlusChain.Make ( Proc, b3Raw) + local bOnlySaw = EgtGetInfo( Proc.Id, Q_SAW_PLUS_CHAIN, 'i') == 1 + bOk, sErr = SawPlusChain.Make ( Proc, b3Raw, bOnlySaw) return bOk, sErr end