-- 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