From abe3465514fbcaf5f1d75f7f1dbde46807607dcc Mon Sep 17 00:00:00 2001 From: "andrea.villa" Date: Fri, 11 Oct 2024 12:38:28 +0200 Subject: [PATCH] - In FacesBySaw, se taglio orizzontale (con componente Z del vtTg a zero) si orienta SCC aggregato lama verso l'interno. In modo che quando si stacca il pezzo non cada sopra l'aggregato. - In LapJoint, se si utilizza fresa per BlockHaus, si considera sempre di coda --- LuaLibs/FacesBySaw.lua | 14 ++++++++++++-- LuaLibs/ProcessLapJoint.lua | 4 +++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/LuaLibs/FacesBySaw.lua b/LuaLibs/FacesBySaw.lua index 1ebf125..bb5277e 100644 --- a/LuaLibs/FacesBySaw.lua +++ b/LuaLibs/FacesBySaw.lua @@ -467,9 +467,19 @@ function FacesBySaw.MakeOne( nSurfId, nFacet, sCutting, dSawDiam, Par5, dVzLimDw if BD.C_SIMM and bMaximizeVerticalDepth then nSCC = MCH_SCC.ADIR_ZM elseif abs( vtAux:getX()) > abs( vtAux:getY()) - GEO.EPS_SMALL then - nSCC = EgtIf( ( vtAux:getX() > -GEO.EPS_SMALL), MCH_SCC.ADIR_XP, MCH_SCC.ADIR_XM) + -- se il taglio è orizzontale, si gira aggregato lama per facilitare caduta del legno + if BD.C_SIMM and abs( vtTg:getZ()) < GEO.EPS_SMALL and abs( vtOrthO:getZ()) > GEO.EPS_SMALL then + nSCC = EgtIf( ( vtAux:getX() > -GEO.EPS_SMALL), MCH_SCC.ADIR_XM, MCH_SCC.ADIR_XP) + else + nSCC = EgtIf( ( vtAux:getX() > -GEO.EPS_SMALL), MCH_SCC.ADIR_XP, MCH_SCC.ADIR_XM) + end else - nSCC = EgtIf( ( vtAux:getY() > -GEO.EPS_SMALL), MCH_SCC.ADIR_YP, MCH_SCC.ADIR_YM) + -- se il taglio è orizzontale, si gira aggregato lama per facilitare caduta del legno + if BD.C_SIMM and abs( vtTg:getZ()) < GEO.EPS_SMALL and abs( vtOrthO:getZ()) > GEO.EPS_SMALL then + nSCC = EgtIf( ( vtAux:getY() > -GEO.EPS_SMALL), MCH_SCC.ADIR_YM, MCH_SCC.ADIR_YP) + else + nSCC = EgtIf( ( vtAux:getY() > -GEO.EPS_SMALL), MCH_SCC.ADIR_YP, MCH_SCC.ADIR_YM) + end end else if BD.TURN == 2 then diff --git a/LuaLibs/ProcessLapJoint.lua b/LuaLibs/ProcessLapJoint.lua index 0f1a03c..9d482d0 100644 --- a/LuaLibs/ProcessLapJoint.lua +++ b/LuaLibs/ProcessLapJoint.lua @@ -783,14 +783,16 @@ function ProcessLapJoint.IsTailFeature( Proc, b3Raw) local nPartId = EgtGetParent( EgtGetParent( Proc.Id) or GDB_ID.NULL) local b3Solid = EgtGetBBoxGlob( EgtGetFirstNameInGroup( nPartId, 'Box') or GDB_ID.NULL, GDB_BB.STANDARD) -- verifico se è in coda + local dEndDist = Proc.Box:getMin():getX() - b3Solid:getMin():getX() - if dEndDist > BD.MAX_DIST_HTFEA then + if ( dEndDist > BD.MAX_DIST_HTFEA) or bUseBHSideMill then if not( BD.BH_MACHINE) and bUseBHSideMill and ( Proc.Box:getMax():getX() - b3Solid:getMin():getX()) < 400 then return true else return false end end + -- se lunga come trave, oppure non è trave corta e la sua lunghezza supera il massimo o il 80% della lunghezza della trave if Proc.Box:getDimX() > b3Solid:getDimX() - 1 or ( b3Solid:getDimX() > BD.LEN_SHORT_PART and Proc.Box:getDimX() > min( BD.MAX_LEN_HTFEA, 0.8 * b3Solid:getDimX())) then