From a21d93cc6bd86b4c20868217dcdc9a4a773cb31f Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Thu, 5 Jan 2023 16:04:20 +0100 Subject: [PATCH] Improvement/SideMortisingAndMarking: - in presenza di offset Z tra grezzo e tavola, rese possibili le lavorazioni di mortising e marking sul fianco --- LuaLibs/WProcessMark.lua | 27 ++++++++++++++++++++------- LuaLibs/WProcessMortise.lua | 27 ++++++++++++++++++++------- 2 files changed, 40 insertions(+), 14 deletions(-) diff --git a/LuaLibs/WProcessMark.lua b/LuaLibs/WProcessMark.lua index 71af91f..6b6bd23 100644 --- a/LuaLibs/WProcessMark.lua +++ b/LuaLibs/WProcessMark.lua @@ -1,5 +1,6 @@ -- WProcessMark.lua by Egaltech s.r.l. 2021/04/20 -- Gestione calcolo marcatura per Pareti +-- 2023/01/05 Permesse le marcature laterali in presenza di offset Z, tra grezzo e tavola, di almeno 100 mm -- Tabella per definizione modulo local WPMK = {} @@ -33,8 +34,13 @@ function WPMK.Classify( Proc, b3Raw) if not vtN then return false end - -- verifico se la marcatura è lavorabile (solo da sopra) - return ( vtN:getZ() > WD.NZ_MINA) + -- verifico se la marcatura è lavorabile (solo da sopra o dal lato se con offset Z) + local dMinZRaw = b3Raw:getMin():getZ() + local b3Tab = EgtGetTableArea() + local dMaxZTable = b3Tab:getMax():getZ() + local dDeltaZ = dMinZRaw - dMaxZTable + local MIN_Z_OFFSET = 100 + return EgtIf( dDeltaZ < MIN_Z_OFFSET - GEO.EPS_SMALL, vtN:getZ() > WD.NZ_MINA, vtN:getZ() > -0.1) end ---------------------------------------------------------------------- @@ -79,11 +85,18 @@ function WPMK.Make( Proc, nRawId, b3Raw) EgtOutLog( sErr) return false, sErr end - -- verifico che la marcatura non sia orientata verso il basso - if vtExtr:getZ() < WD.NZ_MINA then - local sErr = 'Error : Mark from bottom impossible' - EgtOutLog( sErr) - return false, sErr + -- verifico se la marcatura è lavorabile (solo da sopra o dal lato se con offset Z) + local dMinZRaw = b3Raw:getMin():getZ() + local b3Tab = EgtGetTableArea() + local dMaxZTable = b3Tab:getMax():getZ() + local dDeltaZ = dMinZRaw - dMaxZTable + local MIN_Z_OFFSET = 100 + if vtExtr:getZ() < WD.NZ_MINA then + if dDeltaZ < MIN_Z_OFFSET - GEO.EPS_SMALL or vtExtr:getZ() <= -0.1 then + local sErr = 'Error : Mark from bottom impossible' + EgtOutLog( sErr) + return false, sErr + end end -- recupero la lavorazione local sMilling = WM.FindMilling( 'Text') diff --git a/LuaLibs/WProcessMortise.lua b/LuaLibs/WProcessMortise.lua index 860e751..52cd82d 100644 --- a/LuaLibs/WProcessMortise.lua +++ b/LuaLibs/WProcessMortise.lua @@ -1,5 +1,6 @@ -- WProcessMortise.lua by Egaltech s.r.l. 2021/07/30 -- Gestione calcolo mortase per Pareti +-- 2023/01/05 Permesse le mortase laterali in presenza di offset Z, tra grezzo e tavola, di almeno 100 mm -- Tabella per definizione modulo local WPM = {} @@ -45,8 +46,13 @@ function WPM.Classify( Proc, b3Raw) return true -- altrimenti è chiusa else - -- verifico se la mortasa è lavorabile da sopra - return ( vtN:getZ() > WD.NZ_MINA) + -- verifico se la mortasa è lavorabile da sopra o dal lato se con offset Z + local dMinZRaw = b3Raw:getMin():getZ() + local b3Tab = EgtGetTableArea() + local dMaxZTable = b3Tab:getMax():getZ() + local dDeltaZ = dMinZRaw - dMaxZTable + local MIN_Z_OFFSET = 100 + return EgtIf( dDeltaZ < MIN_Z_OFFSET - GEO.EPS_SMALL, vtN:getZ() > WD.NZ_MINA, vtN:getZ() > -0.1) end end @@ -182,11 +188,18 @@ function WPM.Make( Proc, nRawId, b3Raw) local bForceOneSide local bRevertSide if bClosedBtm then - -- verifico che la mortasa non sia orientata verso il basso (limite -5 deg) - if vtN:getZ() < WD.NZ_MINA then - local sErr = 'Error : Mortise from bottom impossible' - EgtOutLog( sErr) - return false, sErr + -- verifico se la mortasa è lavorabile da sopra o dal lato se con offset Z + local dMinZRaw = b3Raw:getMin():getZ() + local b3Tab = EgtGetTableArea() + local dMaxZTable = b3Tab:getMax():getZ() + local dDeltaZ = dMinZRaw - dMaxZTable + local MIN_Z_OFFSET = 100 + if vtExtr:getZ() < WD.NZ_MINA then + if dDeltaZ < MIN_Z_OFFSET - GEO.EPS_SMALL or vtExtr:getZ() <= -0.1 then + local sErr = 'Error : Mortise from bottom impossible' + EgtOutLog( sErr) + return false, sErr + end end -- altrimenti passante else