diff --git a/LuaLibs/CalcPaths.lua b/LuaLibs/CalcPaths.lua index 3dd6dcf..6082aca 100644 --- a/LuaLibs/CalcPaths.lua +++ b/LuaLibs/CalcPaths.lua @@ -14,7 +14,7 @@ local AMD = require( 'AddManData') --------------------------------------------------------------------- local s_nPartId -local s_dOffsCorr = 50 * GEO.EPS_SMALL +local s_dOffsCorr = 10 * GEO.EPS_SMALL --------------------------------------------------------------------- local function GetLayerParamsForPathCalc() @@ -859,9 +859,11 @@ local function CalcRibsPaths( nSliceGrp, nRibsGrp, LayerParams, nIdx, nMaxStrand else table.insert( tOldNewIds[ vOrderedRibs[i]], nCrv + nInd) - -- controllo la direzione - local vtDir = EgtMV( nCrv + nInd) - local dVal = EgtIf( abs( vtDir:getX()) > abs( vtDir:getY()) - GEO.EPS_SMALL, vtDir:getX(), vtDir:getY()) + -- controllo la direzione (consideriamo inclinazione solo lungo X) + local vtDir = EgtMV( nCrv + nInd) + local dXl = sqrt( sqr( vtDir:getX()) + sqr( vtDir:getZ())) + local dYl = abs( vtDir:getY()) + local dVal = EgtIf( dXl > dYl - GEO.EPS_SMALL, vtDir:getX(), vtDir:getY()) if dVal < - GEO.EPS_SMALL then EgtInvertCurve( nCrv + nInd) EgtSetInfo( nCrv + nInd, KEY_INVERTED_CRV, 1) @@ -978,39 +980,6 @@ end -------------------------------------------------------------------- local function UpdateTotalShellSurf( nSrf, nCrv, dStrand, nGrpId) - - --[[local nCopyCrv = EgtCopyGlob( nCrv, nGrpId) - -- creo percorso chiuso corrispondente - if not EgtCurveIsClosed( nCrv) then - local nCopy2 = EgtCopyGlob( nCrv, nGrpId) - EgtInvertCurve( nCopy2) - EgtAddCurveCompoCurve( nCopyCrv, nCopy2) - end - - local nOffsP = EgtOffsetCurveAdv( nCopyCrv, dStrand - s_dOffsCorr, GDB_OT.EXTEND) - local vSrfIds = { nOffsP} - if EgtCurveIsClosed( nCrv) then - -- se curva รจ chiusa bisogna tenere conto dell'interno - local nOffsM, nCnt = EgtOffsetCurveAdv( nCopyCrv, - dStrand + s_dOffsCorr) - if nOffsM and nOffsM ~= GDB_ID.NULL then - for nId = nOffsM, nOffsM + nCnt - 1 do - table.insert( vSrfIds, nId) - end - end - end - - local nSrfExtraShell = EgtSurfFlatRegion( nGrpId, vSrfIds) - - if not EgtSurfFrSubtract( nSrf, nSrfExtraShell) then - EgtInvertSurf( nSrfExtraShell) - EgtSurfFrSubtract( nSrf, nSrfExtraShell) - end - --EgtErase( nCopyCrv) - --for i = 1, #vSrfIds do - -- EgtErase( vSrfIds[i]) - --end - --EgtErase( nSrfExtraShell) - ]]-- local nSrfExtraShell = EgtSurfFrFatCurve( nGrpId, nCrv, dStrand + s_dOffsCorr, false) if nSrfExtraShell then