diff --git a/LuaLibs/BeamLib.lua b/LuaLibs/BeamLib.lua index 74f7cfd..e3f34f5 100644 --- a/LuaLibs/BeamLib.lua +++ b/LuaLibs/BeamLib.lua @@ -1,4 +1,4 @@ --- BeamLib.lua by Egaltech s.r.l. 2023/03/22 +-- BeamLib.lua by Egaltech s.r.l. 2023/12/15 -- Libreria globale per Travi -- 2020/07/28 Corretto calcolo attacchi e uscite di lame per non uscire dalla faccia sotto. -- 2020/08/18 Aggiunto a GetNearestParalOpposite e GetNearestOrthoOpposite parametro opzionale vtNorm. @@ -27,6 +27,7 @@ -- 2023/09/26 In GetFaceWithMostAdj gestito primo parametro anche come Proc; gestito caso strip con facce tutte in sottosquadro. -- 2023/09/26 Spostata qui funzione IsFeatureCuttingEntireSection da BeamExec. -- 2023/11/30 Calcolo elevazione velocizzato e centralizzato tramite la funzione GetFaceElevation. Se l'elevazione è già calcolata la recupera da Proc, altrimenti la calcola al momento. +-- 2023/12/15 Correzione a GetFaceWithMostAdj per calcoli con facce che fanno ombra. -- Tabella per definizione modulo local BeamLib = {} @@ -560,12 +561,15 @@ function BeamLib.GetFaceWithMostAdj( Proc, nPartId, bCompare3Fc, dCosSideAng) local frOCSMaster = Frame3d( vPtC[i], vvtN[i]) EgtScale( nShadowContourId, frOCSMaster, 1, 1, 0, GDB_RT.GLOB) EgtModifyCurveExtrusion( nShadowContourId, vvtN[i], GDB_RT.GLOB) + -- se non troppo ortogonale (almeno 0.5deg di delta) local dResV = vvtN[i] * vvtN[j] - EgtOffsetCurve( nShadowContourId, EgtIf( dResV > GEO.EPS_SMALL, - 50, 50) * GEO.EPS_SMALL) - local nShadowSurfFlatId = EgtSurfFlatRegion( nAddGrpId, nShadowContourId) - local bShadowSurfIsExternal = EgtSurfFrTestExternal( nMasterSurfFlatId, nShadowSurfFlatId) - if not bShadowSurfIsExternal then - bUcut = true + if abs( dResV) > 0.087 then + EgtOffsetCurve( nShadowContourId, EgtIf( dResV > GEO.EPS_SMALL, - 50, 50) * GEO.EPS_SMALL) + local nShadowSurfFlatId = EgtSurfFlatRegion( nAddGrpId, nShadowContourId) + local bShadowSurfIsExternal = EgtSurfFrTestExternal( nMasterSurfFlatId, nShadowSurfFlatId) + if not bShadowSurfIsExternal then + bUcut = true + end end EgtErase( { nMasterSurfFlatId, nShadowSurfFlatId}) end diff --git a/Version.lua b/Version.lua index 78762ec..d6d4230 100644 --- a/Version.lua +++ b/Version.lua @@ -1,6 +1,6 @@ --- Version.lua by Egaltech s.r.l. 2023/11/16 +-- Version.lua by Egaltech s.r.l. 2023/12/15 -- Gestione della versione di Beam NAME = 'Beam' -VERSION = '2.5l1' +VERSION = '2.5l2' MIN_EXE = '2.5l1'