From c2a2d696f6328ad3f98e4c49bb0d04f0be065376 Mon Sep 17 00:00:00 2001 From: SaraP Date: Fri, 19 Jun 2026 15:21:39 +0200 Subject: [PATCH] 3dPrinting : - correzione errore di mancata applicazione reduce shell number con ribs merged shells. --- LuaLibs/CalcPaths.lua | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/LuaLibs/CalcPaths.lua b/LuaLibs/CalcPaths.lua index f2f17c1..5192f8b 100644 --- a/LuaLibs/CalcPaths.lua +++ b/LuaLibs/CalcPaths.lua @@ -3142,25 +3142,32 @@ end local function AdjustRibsMergedExtraShellLink( nLinkId, vExtraShells, nGrp) local vLinks = {} - + -- devo conservare solo i tratti comuni fra link ed extra shell + local _, dE = EgtCurveDomain( nLinkId) for i = 1, #vExtraShells do - local dParS = EgtCurveParamAtPoint( nLinkId, EgtSP( vExtraShells[i]), 100 * GEO.EPS_SMALL) local dParE = EgtCurveParamAtPoint( nLinkId, EgtEP( vExtraShells[i]), 100 * GEO.EPS_SMALL) + if dParS or dParE then - local nCrv = EgtCopyGlob( nLinkId, nGrp) + local nCrv if dParS and dParE then - EgtTrimCurveStartEndAtParam( nCrv, dParS, dParE) + if dParS < dParE then + nCrv = EgtCopyParamRange( nLinkId, dParS, dParE, nGrp) + else + -- ottengo due sottotratti + local nCrv1 = EgtCopyParamRange( nLinkId, dParS, dE, nGrp) + table.insert( vLinks, nCrv1) + nCrv = EgtCopyParamRange( nLinkId, 0, dParE, nGrp) + end elseif dParS then - EgtTrimCurveStartAtParam( nCrv, dParS) + nCrv = EgtCopyParamRange( nLinkId, dParS, dE, nGrp) elseif dParE then - EgtTrimCurveEndAtParam( nCrv, dParE) + nCrv = EgtCopyParamRange( nLinkId, 0, dParE, nGrp) end - EgtModifyCurveExtrusion( nCrv, s_vtSlicing, GDB_ID.ROOT) table.insert( vLinks, nCrv) + else - -- verifico se il link originale è già corretto local dPar1 = EgtCurveParamAtPoint( vExtraShells[i], EgtSP( nLinkId), 100 * GEO.EPS_SMALL) local dPar2 = EgtCurveParamAtPoint( vExtraShells[i], EgtEP( nLinkId), 100 * GEO.EPS_SMALL) @@ -3172,6 +3179,10 @@ local function AdjustRibsMergedExtraShellLink( nLinkId, vExtraShells, nGrp) -- cancello il link originale EgtErase( nLinkId) + -- setto estrusione ai link + for i = 1, #vLinks do + EgtModifyCurveExtrusion( vLinks[i], s_vtSlicing, GDB_ID.ROOT) + end return vLinks end