From 45712e604b422152d3b047c7013b2c13832e8f19 Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Wed, 12 Mar 2025 12:21:48 +0100 Subject: [PATCH] - in STR0005 piccola correzione --- Strategies/Standard/STR0005/STR0005.lua | 29 ++++++++++++++++--------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/Strategies/Standard/STR0005/STR0005.lua b/Strategies/Standard/STR0005/STR0005.lua index 2eadf32..8247cb5 100644 --- a/Strategies/Standard/STR0005/STR0005.lua +++ b/Strategies/Standard/STR0005/STR0005.lua @@ -25,20 +25,28 @@ local function CompareEdges( EdgeA, EdgeB) return true elseif abs( EdgeA.vtN:getX()) > abs( EdgeB.vtN:getX()) + 10 * GEO.EPS_SMALL then return false - -- se stessa X si preferiscono i lati più in basso + -- se stessa X si preferiscono i lati più lunghi (nel caso di 5 lati è quello non spezzato) else - if EdgeA.vtN:getZ() > EdgeB.vtN:getZ() + 10 * GEO.EPS_SMALL then + if EdgeA.dLength > EdgeB.dLength + 10 * GEO.EPS_SMALL then return true - elseif EdgeA.vtN:getZ() < EdgeB.vtN:getZ() - 10 * GEO.EPS_SMALL then + elseif EdgeB.dLength < EdgeB.dLength - 10 * GEO.EPS_SMALL then return false - -- se stessa Z si preferiscono i lati verso il fronte della trave + -- se stessa lunghezza si preferiscono i lati più in basso + -- TODO qui dipenderà dalla lama scelta else - if EdgeA.vtN:getY() > EdgeB.vtN:getY() + 10 * GEO.EPS_SMALL then + if EdgeA.vtN:getZ() > EdgeB.vtN:getZ() + 10 * GEO.EPS_SMALL then return true - elseif EdgeA.vtN:getY() < EdgeB.vtN:getY() - 10 * GEO.EPS_SMALL then + elseif EdgeA.vtN:getZ() < EdgeB.vtN:getZ() - 10 * GEO.EPS_SMALL then return false + -- se stessa Z si preferiscono i lati verso il fronte della trave else - return false + if EdgeA.vtN:getY() > EdgeB.vtN:getY() + 10 * GEO.EPS_SMALL then + return true + elseif EdgeA.vtN:getY() < EdgeB.vtN:getY() - 10 * GEO.EPS_SMALL then + return false + else + return false + end end end end @@ -95,8 +103,8 @@ function Blade.AddMachiningAllSteps( Proc, Cutting, AuxiliaryData) AuxiliaryData.Clones[i].LeadOut = {} AuxiliaryData.Clones[i].dRadialOffset = dOriginalRadialOffset + Cutting.HorizontalSteps.dStep * ( Cutting.HorizontalSteps.nCount - i) -- update distanza perpendicolare attacco per contemplare l'offset applicato - AuxiliaryData.Clones[i].LeadIn.dPerpDistance = dOriginalLeadInPerpDistance - Cutting.dRadialOffset - AuxiliaryData.Clones[i].LeadOut.dPerpDistance = dOriginalLeadOutPerpDistance - Cutting.dRadialOffset + AuxiliaryData.Clones[i].LeadIn.dPerpDistance = dOriginalLeadInPerpDistance - AuxiliaryData.Clones[i].dRadialOffset + dOriginalRadialOffset + AuxiliaryData.Clones[i].LeadOut.dPerpDistance = dOriginalLeadOutPerpDistance - AuxiliaryData.Clones[i].dRadialOffset + dOriginalRadialOffset end bMachiningAdded = MachiningLib.AddNewMachining( Proc, Cutting, AuxiliaryData) @@ -160,7 +168,8 @@ function STR0005.Make( bAddMachining, Proc, Part, CustomParameters) Cutting1 = FaceByBlade.Make( Proc, Part, Proc.Faces[1], EdgesSorted[1], OptionalParameters) Blade.AddResult( Cutting1) -- secondo lato - Cutting2 = FaceByBlade.Make( Proc, Part, Proc.Faces[1], EdgesSorted[2], OptionalParameters) + OptionalParameters.bOppositeToolDirection = true + Cutting2 = FaceByBlade.Make( Proc, Part, Proc.Faces[1], EdgesSorted[1], OptionalParameters) Blade.AddResult( Cutting2) -- lavorazioni raggruppate in unica lista