diff --git a/Compile.bat b/Compile.bat index c0f2d30..56d5864 100644 --- a/Compile.bat +++ b/Compile.bat @@ -1,17 +1,18 @@ -REM Compilazione degli script BeamWall Egaltech 2025.07.24 +REM Compilazione degli script BeamWall Egaltech 2025.10.11 REM Per togliere info di debug aggiungere flag -s prima del nome del file di input REM Compilazione 32 e 64 bit erase bin\*.lua -\EgtProg\Dll32\luac54 -o bin\ClearProcess.lua ClearProcess.lua -\EgtProg\Dll32\luac54 -o bin\DisableFeatures.lua DisableFeatures.lua -\EgtProg\Dll32\luac54 -o bin\EnableFeatures.lua EnableFeatures.lua -\EgtProg\Dll32\luac54 -o bin\HideAll.lua HideAll.lua -\EgtProg\Dll32\luac54 -o bin\ShowAll.lua ShowAll.lua -\EgtProg\Dll32\luac54 -o bin\ShowBuilding.lua ShowBuilding.lua -\EgtProg\Dll32\luac54 -o bin\ShowNesting.lua ShowNesting.lua -\EgtProg\Dll32\luac54 -o bin\ShowSolid.lua ShowSolid.lua -\EgtProg\Dll32\luac54 -o bin\SolidProcess.lua SolidProcess.lua \ No newline at end of file +\EgtProg\Dll32\luac54 -o bin\ClearProcess.lua -s ClearProcess.lua +\EgtProg\Dll32\luac54 -o bin\DisableFeatures.lua -s DisableFeatures.lua +\EgtProg\Dll32\luac54 -o bin\EnableFeatures.lua -s EnableFeatures.lua +\EgtProg\Dll32\luac54 -o bin\HideAll.lua -s HideAll.lua +\EgtProg\Dll32\luac54 -o bin\ShowAll.lua -s ShowAll.lua +\EgtProg\Dll32\luac54 -o bin\ShowBuilding.lua -s ShowBuilding.lua +\EgtProg\Dll32\luac54 -o bin\ShowNesting.lua -s ShowNesting.lua +\EgtProg\Dll32\luac54 -o bin\ShowSolid.lua -s ShowSolid.lua +\EgtProg\Dll32\luac54 -o bin\SolidProcess.lua -s SolidProcess.lua +\EgtProg\Dll32\luac54 -o bin\Version.lua -s Version.lua diff --git a/ShowBuilding.lua b/ShowBuilding.lua index 6bafc63..45c92d0 100644 --- a/ShowBuilding.lua +++ b/ShowBuilding.lua @@ -1,4 +1,4 @@ --- ShowBuilding.lua by Egaltech s.r.l. 2025/07/24 +-- ShowBuilding.lua by Egaltech s.r.l. 2025/10/11 -- Gestione visualizzazione travi come struttura -- Intestazioni @@ -6,18 +6,54 @@ require( 'EgtBase') _ENV = EgtProtectGlobal() EgtEnableDebug( false) --- Verifico se previsto assemblaggio -local AsseBaseId = EgtGetFirstNameInGroup( GDB_ID.ROOT, 'AsseBase') -if not AsseBaseId or EgtGetGroupObjs( AsseBaseId) == 0 then - EgtOutBox( "There is no building", 'ShowBuilding', 'WARNING', 'OK') +-- Recupero elenco assemblaggi presenti +local AsseBaseId = EgtGetNameInGroup( GDB_ID.ROOT, 'AsseBase') +for i = #AsseBaseId, 1, -1 do + if EgtGetGroupObjs( AsseBaseId[i]) == 0 then + table.remove( AsseBaseId, i) + end +end + +-- Se nessun assemblaggio, esco con avvertimento +if #AsseBaseId == 0 then + EgtOutBox( "There are no assemblies", 'ShowBuilding', 'WARNING', 'OK') return end --- Recupero l'attivazione dell'assemblaggio -local bOn = EgtBeamGetBuildingIsOn() +-- Se un solo assemblaggio +if #AsseBaseId == 1 then + -- Recupero l'attivazione dell'assemblaggio + local bOn = EgtBeamGetBuildingIsOn() + -- Modifico lo stato dell'assemblaggio + EgtBeamShowBuilding( not bOn) --- Modifico lo stato dell'assemblaggio -EgtBeamShowBuilding( not bOn) +-- altrimenti più assemblaggi +else + -- Recupero gli assemblaggi attivi + local On = {} + for i = 1, #AsseBaseId do + if EgtBeamGetBuildingIsOn( AsseBaseId[i]) then + table.insert( On, i) + end + end + -- Se almeno uno attivo, li spengo tutti + if #On > 0 then + for j = 1, #On do + EgtBeamShowBuilding( AsseBaseId[On[j]], false) + end + -- altrimenti chiedo quale attivare + else + local sCombo = 'CB:1' + for i = 2, #AsseBaseId do + sCombo = sCombo .. ',' .. tostring( i) + end + local Res = EgtDialogBox( 'Choose Assembly', { 'To Activate', sCombo}) + if Res then + local nId = tonumber( Res[1]) + EgtBeamShowBuilding( AsseBaseId[nId], true) + end + end +end EgtZoom( SCE_ZM.ALL) diff --git a/Version.lua b/Version.lua new file mode 100644 index 0000000..feddbb5 --- /dev/null +++ b/Version.lua @@ -0,0 +1,6 @@ +-- Version.lua by Egaltech s.r.l. 2025/10/11 +-- Gestione della versione di Beam + +NAME = 'BeamWall' +VERSION = '2.7j1' +MIN_EXE = '2.7j1'