DataBeam :

- correzioni e migliorie varie.
This commit is contained in:
Dario Sassi
2020-04-02 15:01:14 +00:00
parent c3be703a20
commit 511201107e
3 changed files with 191 additions and 25 deletions
+15 -2
View File
@@ -1,4 +1,4 @@
-- BeamLib.lua by Egaltech s.r.l. 2020/03/19
-- BeamLib.lua by Egaltech s.r.l. 2020/03/20
-- Libreria globale per Travi
-- Tabella per definizione modulo
@@ -388,6 +388,7 @@ function BeamLib.GetFaceWithMostAdj( nSurfId, nPartId, bCompare3Fc)
-- se 4 facce tutte con adiacenza 2, allora è un tunnel
if nFacCnt == 4 then
if vAdj[1] == 2 and vAdj[2] == 2 and vAdj[3] == 2 and vAdj[4] == 2 then
-- se tutte le facce sono ortogonali tra loro esco con un flag che ne indica questa propietà
if vOrtho[1] == true and vOrtho[2] == true and vOrtho[3] == true and vOrtho[4] == true then
return -1, GEO.INFINITO, true
else
@@ -395,8 +396,20 @@ function BeamLib.GetFaceWithMostAdj( nSurfId, nPartId, bCompare3Fc)
end
end
end
-- se 3 facce con una che ha 2 adiacenze e le altre hanno 1 adiacenza, allora è una semi-fessura
if bCompare3Fc and nFacCnt == 3 then
if vAdj[1] == 2 and vAdj[2] == 1 and vAdj[3] == 1 then
local nCount2Adc = 0
local nCount1Adc = 0
-- ottengo il numero di facce con due adiacenze e il numero di facce con una adiacenza
for i = 1, #vAdj do
if vAdj[i] == 2 then
nCount2Adc = nCount2Adc + 1
elseif vAdj[i] == 1 then
nCount1Adc = nCount1Adc + 1
end
end
-- se il numero di adiacenze corrisponde
if nCount2Adc == 1 and nCount1Adc == 2 then
if vOrtho[1] == true and vOrtho[2] == true and vOrtho[3] == true then
return -1, GEO.INFINITO, true
else