- Introduzione uso variabili in WallData per riconoscere fori lunghi

- Aggiunta gestione dei fori lunghi orizzontali non passanti con creazione grezzo rispettando minima dimensione grezzo
This commit is contained in:
Emmanuele Sassi
2021-12-16 09:46:30 +01:00
parent 0f25503bde
commit d382620a1e
2 changed files with 57 additions and 5 deletions
+19 -1
View File
@@ -223,6 +223,11 @@ if bToProcess then
sOut = sOut:sub( 1, -3)
EgtOutLog( 'Pareti trovate : ' .. sOut, 1)
end
-- variabile che indica se ci sono fori orizzontali lunghi
local bUseMinRawYForLongDrill = false
-- recupero libreria fori
_G.package.loaded.WProcessDrill = nil
local Drill = require( 'WProcessDrill')
-- Ne recupero le dimensioni
for i = 1, #vWall do
local Ls = EgtGetFirstNameInGroup( vWall[i].Id, 'Box')
@@ -236,10 +241,23 @@ if bToProcess then
else
vWall[i].Box = b3Solid
end
-- recupero lista feature e ciclo
local vPartProc = WE.CollectFeatures( vWall[i].Id)
for nInd = 1, #vPartProc do
if Drill.Identify( vPartProc[nInd]) and Drill.UseMinYForLongDrill(vPartProc[nInd]) then
bUseMinRawYForLongDrill = true
end
end
end
-- se parete con fori lunghi orizzontali
local dMinY = 0
if bUseMinRawYForLongDrill then
-- considero minima larghezza per permettere di farli
dMinY = WD.MINRAWY_HOR_DRILL
end
-- Assegno dimensioni del pannello
dPanelLen = vWall[1].Box:getDimX() + 20
dPanelWidth = vWall[1].Box:getDimY() + 20
dPanelWidth = math.max( vWall[1].Box:getDimY() + 20, dMinY)
-- Assegno posizione prima ed unica parete
vWall[1].PosX = 10
vWall[1].PosZ = 10