diff --git a/LuaLibs/BeamExec.lua b/LuaLibs/BeamExec.lua index 369f6eb..1692450 100644 --- a/LuaLibs/BeamExec.lua +++ b/LuaLibs/BeamExec.lua @@ -1,4 +1,4 @@ --- BeamExec.lua by Egaltech s.r.l. 2020/10/15 +-- BeamExec.lua by Egaltech s.r.l. 2020/10/23 -- Libreria esecuzione lavorazioni per Travi -- 2019/07/11 Aggiunta gestione stato rotazione di feature per TS3. -- 2019/09/04 Corretto controllo feature di testa e coda con sovramateriale di testa elevato. @@ -17,7 +17,8 @@ -- 2020/07/25 Ricalcolati flag head e tail della prima parte del foro dopo lo split. -- 2020/07/27 Modifica a ordinamento fori. -- 2020/10/07 Aggiunta distanza libera dietro il pezzo (BDST) scritta nel suo grezzo. --- 2020/10/15 Per foro sdoppiato ricalcolo anche flag Head oltre a Tail . +-- 2020/10/15 Per foro sdoppiato ricalcolo anche flag Head oltre a Tail . +-- 2020/10/23 Corretto spostamento foro per tenone quando tenone nullo. -- Tabella per definizione modulo local BeamExec = {} @@ -962,7 +963,7 @@ local function MoveDrillsOnTenon( vProc) if not BD.OFFSET_DRILL_TENON or abs( BD.OFFSET_DRILL_TENON) < 0.1 then return end -- ciclo sulle feature for i = 1, #vProc do - if Tenon.Identify( vProc[i]) then + if vProc[i].Flg ~= 0 and Tenon.Identify( vProc[i]) then for j = 1, #vProc do if Drill.Identify( vProc[j]) then -- se esiste intersezione tra tenone e foro diff --git a/LuaLibs/ProcessProfHead.lua b/LuaLibs/ProcessProfHead.lua index bfe142d..ddf18ef 100644 --- a/LuaLibs/ProcessProfHead.lua +++ b/LuaLibs/ProcessProfHead.lua @@ -1,4 +1,4 @@ --- ProcessProfHead.lua by Egaltech s.r.l. 2020/10/14 +-- ProcessProfHead.lua by Egaltech s.r.l. 2020/10/24 -- Gestione calcolo profilo di testa per Travi -- Tabella per definizione modulo @@ -188,8 +188,15 @@ function ProcessProfHead.Make( Proc, nPhase, nRawId, nPartId, dCurrOvmH) local nLastFacet = EgtSurfTmFacetCount( Proc.Id) - 1 -- faccia finale -- determino la normale media local CvxHullId = EgtSurfTmConvexHullInBBox( EgtGetParent( Proc.Id), Proc.Id, b3Raw, GDB_ID.ROOT) - local vtN = EgtSurfTmFacetNormVersor( CvxHullId, 0, GDB_ID.ROOT) + local vtN = EgtSurfTmFacetNormVersor( CvxHullId or GDB_ID.NULL, 0, GDB_ID.ROOT) EgtErase( CvxHullId) + if not vtN then + local nRef= Proc.Fct // 3 + local vtN1 = EgtSurfTmFacetNormVersor( Proc.Id, nRef, GDB_ID.ROOT) + local vtN2 = EgtSurfTmFacetNormVersor( Proc.Id, 2 * nRef, GDB_ID.ROOT) + vtN = vtN1 + vtN2 + vtN:normalize() + end -- verifico se in testa o coda local bHead = ( vtN:getX() > 0) EgtOutLog( 'vtN=' .. tostring( vtN), 3)