DataBeam :

- correzioni e migliorie varie.
This commit is contained in:
Dario Sassi
2019-07-29 15:01:19 +00:00
parent 7e3c951901
commit 8dee1a0c97
12 changed files with 325 additions and 159 deletions
+18 -5
View File
@@ -1,4 +1,4 @@
-- BeamLib.lua by Egaltech s.r.l. 2019/07/24
-- BeamLib.lua by Egaltech s.r.l. 2019/07/25
-- Libreria globale per Travi
-- Tabella per definizione modulo
@@ -355,6 +355,12 @@ function BeamLib.GetFaceWithMostAdj( nSurfId)
end
vUcut[i] = bUcut
end
-- 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
return -1, GEO.INFINITO
end
end
-- recupero le facce non in sottosquadra e con il maggior numero di adiacenze
local nFacInd = {}
local nMaxAdj = 0
@@ -370,18 +376,25 @@ function BeamLib.GetFaceWithMostAdj( nSurfId)
end
end
-- premio la faccia con minore elevazione
local nFacOpt
local dMinElev = GEO.INFINITO
local nFacOpt, nFacOpt2
local dMinElev, dMinElev2 = GEO.INFINITO, GEO.INFINITO
for i = 1, #nFacInd do
local ptC, vtN = EgtSurfTmFacetCenter( nSurfId, nFacInd[i], GDB_ID.ROOT)
local frOCS = Frame3d( ptC, vtN) ;
local b3Box = EgtGetBBoxRef( nSurfId, GDB_BB.STANDARD, frOCS)
if b3Box:getDimZ() < dMinElev then
if dMinElev < dMinElev2 then
nFacOpt2 = nFacOpt
dMinElev2 = dMinElev
end
nFacOpt = nFacInd[i]
dMinElev = b3Box:getDimZ()
elseif b3Box:getDimZ() < dMinElev2 then
nFacOpt2 = nFacInd[i]
dMinElev2 = b3Box:getDimZ()
end
end
return nFacOpt, dMinElev
return nFacOpt, dMinElev, nFacOpt2, dMinElev2
end
---------------------------------------------------------------------
@@ -661,7 +674,7 @@ function BeamLib.MakeOneFaceBySaw( nSurfId, nFacet, sCutting, dSawDiam, nOrthoOp
local b3Box = BBox3d( b3Raw)
b3Box:expand( dCutSic)
local dLiTang, dLiPerp, dLoTang, dLoPerp
if ( vtV1:getZ() > -0.1 or vtV2:getZ() > -0.1) then
if ( vtV1:getZ() > -0.1 or vtV2:getZ() > -0.1) and vtN:getZ() < 0.95 then
dLiTang, dLiPerp, dLoTang, dLoPerp = BeamLib.CalcLeadInOutGeom( ptP1, ptP2, vtV1, vtV2, vtN, dSawDiam/2, vtRef, dCutExtra, b3Box)
else
dLiTang, dLiPerp, dLoTang, dLoPerp = BeamLib.CalcLeadInOutTangGeom( ptP1, ptP2, vtN, dSawDiam/2, vtRef, dCutExtra, b3Box)