From a61b27f29288af33391510145bdb6ac7ecde3ad1 Mon Sep 17 00:00:00 2001 From: "andrea.villa" Date: Tue, 4 Nov 2025 09:05:13 +0100 Subject: [PATCH] =?UTF-8?q?-=20Aggiunta=20tolleranza=20nel=20calcolo=20tip?= =?UTF-8?q?o=20di=20taglio=20-=20In=20BeamLib,=20la=20funzione=20GetFaceHv?= =?UTF-8?q?RefDim=20non=20tiene=20pi=C3=B9=20in=20considerazione=20il=20li?= =?UTF-8?q?mite=20del=20grezzo,=20ma=20sempre=20il=20rettangolo=20minimo?= =?UTF-8?q?=20che=20racchiude=20la=20faccia.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LuaLibs/BeamLib.lua | 22 ++++++++++++---------- LuaLibs/ProcessCut.lua | 4 +++- LuaLibs/ProcessSplit.lua | 2 +- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/LuaLibs/BeamLib.lua b/LuaLibs/BeamLib.lua index 25e85e1..ee66572 100644 --- a/LuaLibs/BeamLib.lua +++ b/LuaLibs/BeamLib.lua @@ -698,17 +698,19 @@ function BeamLib.GetFaceHvRefDim( nSurfId, nFacet, b3Raw) local b3HV = EgtSurfTmGetFacetBBoxRef( nSurfId, nFacet, GDB_BB.STANDARD, frHV) local dDimH = b3HV:getDimX() local dDimV = b3HV:getDimY() + + -- Si mantiene rettangolo minimo perchè in alcuni casi andava in collisione. Lascio il calcolo in caso si debba ripristinare. -- se definito grezzo (o solido), applico eventuali limiti - if b3Raw then - local dCoeffY = abs( frHV:getVersX():getY()) - if dCoeffY > GEO.EPS_SMALL then - dDimH = min( dDimH, b3Raw:getDimY() / dCoeffY) - end - local dCoeffZ = abs( frHV:getVersY():getZ()) - if dCoeffZ > GEO.EPS_SMALL then - dDimV = min( dDimV, b3Raw:getDimZ() / dCoeffZ) - end - end + -- if b3Raw then + -- local dCoeffY = abs( frHV:getVersX():getY()) + -- if dCoeffY > GEO.EPS_SMALL then + -- dDimH = min( dDimH, b3Raw:getDimY() / dCoeffY) + -- end + -- local dCoeffZ = abs( frHV:getVersY():getZ()) + -- if dCoeffZ > GEO.EPS_SMALL then + -- dDimV = min( dDimV, b3Raw:getDimZ() / dCoeffZ) + -- end + -- end -- restituisco i valori calcolati return frHV, dDimH, dDimV end diff --git a/LuaLibs/ProcessCut.lua b/LuaLibs/ProcessCut.lua index 1777de0..1cb7a62 100644 --- a/LuaLibs/ProcessCut.lua +++ b/LuaLibs/ProcessCut.lua @@ -379,7 +379,9 @@ local function MakeFromTop( sCutting, Proc, nPhase, nRawId, nPartId, dOvmHead, b local vCuts = {} local dDicingOffsetP local dDicingOffsetO - if ( ( not Proc.AdvTail) or bForceDicing) and ( dCutH > dMaxDepth - BD.CUT_EXTRA - 3 * BD.COLL_SIC or dCutV > dMaxVertDepth - BD.CUT_EXTRA - 3 * BD.COLL_SIC) then + if ( ( not Proc.AdvTail) or bForceDicing) and + ( dCutH - 100 * GEO.EPS_SMALL > dMaxDepth - BD.CUT_EXTRA - 3 * BD.COLL_SIC or + dCutV - 100 * GEO.EPS_SMALL > dMaxVertDepth - BD.CUT_EXTRA - 3 * BD.COLL_SIC) then local ptExtra, vtExtra local bAutoCalcSurf = true if Proc.AdvTail then diff --git a/LuaLibs/ProcessSplit.lua b/LuaLibs/ProcessSplit.lua index d50cbca..8f68f7b 100644 --- a/LuaLibs/ProcessSplit.lua +++ b/LuaLibs/ProcessSplit.lua @@ -662,7 +662,7 @@ function ProcessSplit.Make( Proc, nPhase, nRawId, nPartId, nOrd, sDownOrSideOrSt local dMinTailScrapForAdditionalCuts = 10.123 local bNeedVerticalAddedCuts = not bSplit and ( Proc.Face[1].WidthTrimmed > BD.MAX_LEN_DICE) and ( dLenEndRaw > dMinTailScrapForAdditionalCuts - 10 * GEO.EPS_SMALL) local bNeedHorizontalAddedCuts = not bSplit and not bBigSectionCut and - ( Proc.Face[1].HeightTrimmed > ( BD.MIN_HEIGHT_ADDED_CUTS or BD.MAX_LEN_DICE)) and + ( Proc.Face[1].HeightTrimmed > ( BD.MIN_HEIGHT_ADDED_CUTS or BD.MAX_LEN_DICE) + 100 * GEO.EPS_SMALL) and ( dLenEndRaw > dMinTailScrapForAdditionalCuts - 10 * GEO.EPS_SMALL) and dOffsL < BD.MAX_DIM_DICE -- dati lavorazioni sopra e sotto