DataBeamWall :

- piccole migliorie a trasformazione di TriMesh in oggetti BTL.
This commit is contained in:
Dario Sassi
2025-01-20 15:24:59 +01:00
parent 01cdf7396c
commit d568808608
+6 -9
View File
@@ -1,4 +1,4 @@
-- 2024/12/30
-- 2025/01/13
-- Parti solide gestite come travi BTL
@@ -10,11 +10,12 @@ EgtEnableDebug( false)
-- calcolo del riferimento del minimo box
local function SolidMinBox( nId, dMinFaceArea)
-- parto con orientamento corrente
local refMin = Frame3d()
local b3Min = EgtGetBBoxRef( nId, GDB_BB.STANDARD, refMin)
local dVolMin = 0.98 * b3Min:getDimX() * b3Min:getDimY() * b3Min:getDimZ()
-- ciclo sulle facce della superficie
local nFacCnt = EgtSurfTmFacetCount( nId)
local dVolMin
local refMin
local b3Min
for i = 1, nFacCnt do
local refFace, dL, dW = EgtSurfTmFacetMinAreaRectangle( nId, i - 1, GDB_ID.ROOT)
if refFace and ( not dMinFaceArea or dL * dW > dMinFaceArea) then
@@ -46,7 +47,7 @@ local function ProcessOneSolid( nId1, ptPos)
return false, 0
end
-- Modifico il riferimento in modo che X sia sul più lungo, quindi Z e poi Y
-- Modifico il riferimento in modo che X sia sul più lungo
local dDimX = b3Min:getDimX()
local dDimY = b3Min:getDimY()
local dDimZ = b3Min:getDimZ()
@@ -58,10 +59,6 @@ local function ProcessOneSolid( nId1, ptPos)
refMin:rotate( refMin:getOrigin(), refMin:getVersY(), 90)
dDimX, dDimZ = dDimZ, dDimX
end
if dDimZ < dDimY then
refMin:rotate( refMin:getOrigin(), refMin:getVersX(), 90)
dDimZ, dDimY = dDimY, dDimZ
end
-- Porto il solido nell'origine
refMin:invert()