DataBeam :
- correzioni e migliorie varie.
This commit is contained in:
+18
-5
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user