diff --git a/LuaLibs/CalcPaths.lua b/LuaLibs/CalcPaths.lua index 1761a85..0423498 100644 --- a/LuaLibs/CalcPaths.lua +++ b/LuaLibs/CalcPaths.lua @@ -3114,26 +3114,38 @@ end -------------------------------------------------------------------- local function AdjustRibsMergedExtraShellLink( nLinkId, vExtraShells, nGrp) - - local frLoc = Frame3d( ORIG(), s_vtSlicing) - local nGrpLoc = EgtGroup( nGrp, frLoc) + local vLinks = {} - -- devo conservare solo le intersezioni fra link ed extra shell + -- devo conservare solo i tratti comuni fra link ed extra shell for i = 1, #vExtraShells do - local nRes, nPntCnt, nCrvCnt = EgtCurveCurveInters( nLinkId, vExtraShells[i], nGrpLoc) - if nRes then - for nId = nRes + nPntCnt, nRes + nPntCnt + nCrvCnt - 1 do - EgtRelocateGlob( nId, nGrp) - EgtModifyCurveExtrusion( nId, s_vtSlicing, GDB_ID.ROOT) - table.insert( vLinks, nId) + + 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) + if dParS and dParE then + EgtTrimCurveStartEndAtParam( nCrv, dParS, dParE) + elseif dParS then + EgtTrimCurveStartAtParam( nCrv, dParS) + elseif dParE then + EgtTrimCurveEndAtParam( nCrv, dParE) + 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) + if dPar1 and dPar2 then + return { nLinkId} end end end -- cancello il link originale EgtErase( nLinkId) - EgtErase( nGrpLoc) return vLinks end diff --git a/Version.lua b/Version.lua index 7f53c0f..41ef6af 100644 --- a/Version.lua +++ b/Version.lua @@ -1,4 +1,4 @@ -- Version.lua by Egaltech s.r.l. 2025/09/12 -- Gestione della versione di 3dPrinting -VERSION = '2.7j1' \ No newline at end of file +VERSION = '2.7l1' \ No newline at end of file