diff --git a/LuaLibs/ProcessCut.lua b/LuaLibs/ProcessCut.lua index b7b4006..89ce155 100644 --- a/LuaLibs/ProcessCut.lua +++ b/LuaLibs/ProcessCut.lua @@ -36,7 +36,7 @@ function ProcessCut.Classify( Proc, b3Raw) end -- recupero i dati del taglio local ptC, vtN = EgtSurfTmFacetCenter( Proc.Id, 0, GDB_ID.ROOT) - if vtN:getZ() <= - 0.5 and abs( vtN:getY()) > 0.1 then + if vtN:getZ() <= - 0.5 and abs( vtN:getY()) > 0.1 or ( vtN:getZ() <= - 0.174 and abs( vtN:getY()) > 0.866) then local _, DimH, DimV = BL.GetFaceHvRefDim( Proc.Id, 0) if DimH > BD.MAX_DIM_DICE then return true, true diff --git a/LuaLibs/ProcessDoubleCut.lua b/LuaLibs/ProcessDoubleCut.lua index 671fb36..95c6f7a 100644 --- a/LuaLibs/ProcessDoubleCut.lua +++ b/LuaLibs/ProcessDoubleCut.lua @@ -35,7 +35,19 @@ function ProcessDoubleCut.Classify( Proc, b3Raw) -- verifico se convesso local bAdj, _, _, dAng = EgtSurfTmFacetsContact( Proc.Id, 0, 1, GDB_ID.ROOT) local bConvex = ( not bAdj or ( dAng > 0)) - if bConvex then return true, false end + if bConvex then + -- recupero i dati di ogni singola faccia + for i = 1, 2 do + local nFac = i - 1 + local vtN = EgtSurfTmFacetNormVersor( Proc.Id, nFac, GDB_ID.ROOT) + if ( vtN:getZ() <= - 0.5 and abs( vtN:getY()) > 0.1) or ( vtN:getZ() <= - 0.174 and abs( vtN:getY()) > 0.866) then + local _, DimH, DimV = BL.GetFaceHvRefDim( Proc.Id, nFac) + if DimH > BD.MAX_DIM_DICE then + return true, true + end + end + end + end -- verifico le normali delle facce per tagli da sotto local dNzLimDwnUp = BL.GetNzLimDownUp( b3Raw) for i = 1, 2 do