Files
Dario Sassi 9a3274b56c DataBeamWall :
- introduzione chiamata nuove funzioni multithread per calcolo solidi.
2025-10-13 08:53:35 +02:00

43 lines
1.4 KiB
Lua

-- ShowSolid.lua by Egaltech s.r.l. 2025/10/12
-- Gestione calcolo solido di una Trave
require( 'EgtBase')
_ENV = EgtProtectGlobal()
EgtEnableDebug( false)
-- Se premuto Shift devo processare tutti i pezzi del progetto
if EgtGetKeyPressed( GEN_VK.SHIFT) then
-- dal primo pezzo riconosco se da visualizzare o nascondere
local SolidId = EgtBeamGetSolid( EgtGetFirstPart() or GDB_ID.NULL)
local bShow = not ( SolidId and EgtGetInfo( SolidId, 'VALID') and EgtGetCalcStatus( SolidId) ~= GDB_ST.OFF)
if bShow then
EgtBeamCalcAllSolids( true)
else
EgtBeamShowAllSolids( false)
end
-- altrimenti solo il pezzo selezionato
else
-- Recupero il pezzo del primo oggetto selezionato
local ObjId = EgtGetFirstSelectedObj()
local PartId = EgtGetParent( EgtGetParent( ObjId or GDB_ID.NULL) or GDB_ID.NULL)
if not PartId or not EgtIsPart( PartId) then
EgtOutBox( 'Nessuna trave selezionata', 'Show Solid', 'ERROR')
return
end
EgtDeselectAll()
-- Se il solido già esiste, ne aggiorno lo stato di visualizzazione
local SolidId = EgtBeamGetSolid( PartId)
if SolidId and EgtGetInfo( SolidId, 'VALID') then
EgtBeamShowSolid( PartId, ( EgtGetCalcStatus( SolidId) == GDB_ST.OFF))
EgtDraw()
return
end
-- Creazione e visualizzazione del solido
EgtBeamCalcSolid( PartId, true)
EgtBeamShowSolid( PartId, true)
-- Aggiorno visulaizzazione
EgtDraw()
end
-- end