diff --git a/LuaLibs/DiceCut.lua b/LuaLibs/DiceCut.lua index 1e3f8f1..268f2a3 100644 --- a/LuaLibs/DiceCut.lua +++ b/LuaLibs/DiceCut.lua @@ -1,4 +1,4 @@ --- DiceCut.lua by Egaltech s.r.l. 2019/08/07 +-- DiceCut.lua by Egaltech s.r.l. 2019/10/17 -- Gestione dei piano paralleli nei tagli lunghi -- Tabella per definizione modulo @@ -359,7 +359,7 @@ function DiceCut.GetDice( nParent, BBoxRawPart, ptCPlanes, vtNPlanes, bGetOrtoPl end -- calcolo la direzione dei piani ortogonali local vtO = VectorFromUprightOrtho( vtNInner) - if vtNInner:getZ() > 0.05 or vtNInner:getZ() < -0.5 or abs( vtNInner:getY()) > 0.866 then + if vtNInner:getZ() > 0.05 or vtNInner:getZ() < -0.5 or abs( vtNInner:getY()) > 0.5 then vtO:rotate( vtNInner, 90) -- se diretto troppo ortogonalmente all'asse trave e taglio non da sotto, lo ruoto ulteriormente if abs( vtO:getY()) > abs( vtO:getX()) and vtNInner:getZ() > -0.5 then diff --git a/LuaLibs/ProcessCut.lua b/LuaLibs/ProcessCut.lua index e92efc6..2c04745 100644 --- a/LuaLibs/ProcessCut.lua +++ b/LuaLibs/ProcessCut.lua @@ -1,4 +1,4 @@ --- ProcessCut.lua by Egaltech s.r.l. 2019/09/19 +-- ProcessCut.lua by Egaltech s.r.l. 2019/10/17 -- Gestione calcolo singoli tagli di lama per Travi -- Tabella per definizione modulo @@ -85,7 +85,11 @@ function ProcessCut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead) local _, dCutH, dCutV = BL.GetFaceHvRefDim( Proc.Id, 0) local bHorizCut = (( dCutV < dMaxDepth + 10 * GEO.EPS_SMALL and dCutH > dCutV + 10 * GEO.EPS_SMALL) and not bDownCut) -- verifico se necessari tagli supplementari - local vCuts = DC.GetDice( EgtGetParent( Proc.Id), b3Solid, ptC, vtN, true) + EgtOutLog( string.format( 'MaxDepth=%.1f CutH=%.1f CutV=%.1f', dMaxDepth, dCutH, dCutV), 3) + local vCuts = {} + if dCutH > dMaxDepth - 3 * BD.COLL_SIC or dCutV > dMaxDepth - 3 * BD.COLL_SIC then + vCuts = DC.GetDice( EgtGetParent( Proc.Id), b3Solid, ptC, vtN, true) + end --DC.PrintOrderCut( vCuts) if #vCuts > 0 then -- recupero gruppo per geometria addizionale @@ -148,7 +152,7 @@ function ProcessCut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead) -- tutti gli altri casi vengono saltati -- caso generale else - local bOk, sErr = BL.MakeOneFaceBySaw( vCuts[i][j], 0, sCutting, dSawDiam, vtOrthoO, dNzLimDwnUp, -0.5, BD.CUT_SIC, 0, 0, nil, b3Raw) + local bOk, sErr = BL.MakeOneFaceBySaw( vCuts[i][j], 0, sCutting, dSawDiam, vtOrthoO, dNzLimDwnUp, -0.1, BD.CUT_SIC, 0, 0, nil, b3Raw) if not bOk then return bOk, sErr end