From caf8e5f144e68910cc80b77284df81fa627e94d7 Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Fri, 18 Jul 2025 16:20:57 +0200 Subject: [PATCH] - in BLADETOWASTE -> CutWholeWaste, in caso di taglio da due lati, si fa per ultima la lavorazione che va verso l'alto --- StrategyLibs/BLADETOWASTE.lua | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/StrategyLibs/BLADETOWASTE.lua b/StrategyLibs/BLADETOWASTE.lua index ff8dfd2..7f64510 100644 --- a/StrategyLibs/BLADETOWASTE.lua +++ b/StrategyLibs/BLADETOWASTE.lua @@ -512,6 +512,14 @@ local function GetDualSideCutStrategy( Proc, OptionalParameters) -- se lama ci arriva si assegnano utensili e profondità da ritornare if ToolInfo.nToolIndex and ToolInfo.dResidualDepth < 10 * GEO.EPS_SMALL then + -- si deve decidere se fare per primo il taglio opposto oppure no + local bIsOppositeCutFirst = false + local vtTemp = EdgeToMachine.vtN ^ FaceToMachine.vtN + local bIsEdgeLeftSide = vtTemp:getZ() < 10 * GEO.EPS_SMALL + if ( TOOLS[ToolInfo.nToolIndex].bIsCCW and bIsEdgeLeftSide) or ( not TOOLS[ToolInfo.nToolIndex].bIsCCW and not bIsEdgeLeftSide) then + bIsOppositeCutFirst = true + end + CuttingParametersList = { { nToolIndex = ToolInfo.nToolIndex, @@ -520,7 +528,8 @@ local function GetDualSideCutStrategy( Proc, OptionalParameters) { nToolIndex = ToolInfo.nToolIndex, dDepthToMachine = dDepthToMachine - } + }, + bIsOppositeCutFirst = bIsOppositeCutFirst } else EdgeToMachine = nil @@ -592,6 +601,10 @@ local function CutWholeWaste( Proc, Part, OptionalParameters) dExtendAfterTail = dExtendAfterTail, bReduceBladePath = bReduceBladePath } + -- se necessario, si inverte l'ordine delle lavorazioni per avere il secondo taglio verso l'alto + if not CuttingParametersList.bIsOppositeCutFirst then + OptionalParametersFaceByBlade, OptionalParametersFaceByBladeDouble = OptionalParametersFaceByBladeDouble, OptionalParametersFaceByBlade + end Cutting = FaceByBlade.Make( Proc, Part, Proc.Faces[1], EdgeToMachine, OptionalParametersFaceByBlade) CuttingDouble = FaceByBlade.Make( Proc, Part, Proc.Faces[1], EdgeToMachine, OptionalParametersFaceByBladeDouble)