DataBeamWall :
- piccole migliorie a trasformazione di TriMesh in oggetti BTL.
This commit is contained in:
+6
-9
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user