-- RunShowManager.lua by Egaltech s.r.l. 2022/07/03 -- Gestione visualizzazione per Stampa 3d -- Tabella per definizione modulo local RunShowManager = {} -- Intestazioni require( 'EgtBase') EgtOutLog( ' RunShowManager started', 1) -- Costanti generali local AMD = require( 'AddManData') --------------------------------------------------------------------- local function ShowImportedSolid( nPartId, bShow) local nSolidLayId = EgtGetFirstNameInGroup( nPartId, ORIGINAL_SOLID) EgtSetStatus( nSolidLayId or GDB_ID.NULL, EgtIf( bShow, GDB_ST.ON, GDB_ST.OFF)) local nRibsLayId = EgtGetFirstNameInGroup( nPartId, LAY_RIBS) EgtSetStatus( nRibsLayId or GDB_ID.NULL, EgtIf( bShow, GDB_ST.ON, GDB_ST.OFF)) end --------------------------------------------------------------------- function RunShowManager.Exec() -- Verifico esistenza gruppo stato visualizzazione progetto local nViewId = EgtGetFirstNameInGroup( GDB_ID.ROOT, VIEWPARAMS) local bImportedSolid = false local bOuterCrv = false local bPath = false local bSolid = false local bToolPath = false if not nViewId then nViewId = EgtGroup( GDB_ID.ROOT) EgtSetName( nViewId, VIEWPARAMS) else bImportedSolid = EgtGetInfo( nViewId, IMPORTED_SOLID, 'b') bOuterCrv = EgtGetInfo( nViewId, OUTER_CRV, 'b') bPath = EgtGetInfo( nViewId, PATH_GRP, 'b') bSolid = EgtGetInfo( nViewId, SOLID_GRP, 'b') bToolPath = EgtGetInfo( nViewId, TOOLPATH_GRP, 'b') end local bCurrImportedSolid = bImportedSolid local bCurrOuterCrv = bOuterCrv local bCurrPath = bPath local bCurrSolid = bSolid local bCurrToolPath = bToolPath if EgtGetUserLevel() == 1 then local ViewValues = EgtDialogBox( 'Show Manager', { 'Imported Solid', 'CK:' .. EgtIf( bImportedSolid, '1', '0')}, { 'Solid', 'CK:' .. EgtIf( bSolid, '1', '0')}, { 'ToolPath', 'CK:' .. EgtIf( bToolPath, '1', '0')}) if not ViewValues or #ViewValues < 3 then return end bCurrImportedSolid = ( ViewValues[1] == '1') bCurrSolid = ( ViewValues[2] == '1') bCurrToolPath = ( ViewValues[3] == '1') else local ViewValues = EgtDialogBox( 'Show Manager', { 'Imported Solid', 'CK:' .. EgtIf( bImportedSolid, '1', '0')}, { 'OuterCrv', 'CK:' .. EgtIf( bOuterCrv, '1', '0')}, { 'Path', 'CK:' .. EgtIf( bPath, '1', '0')}, { 'Solid', 'CK:' .. EgtIf( bSolid, '1', '0')}, { 'ToolPath', 'CK:' .. EgtIf( bToolPath, '1', '0')}) if not ViewValues or #ViewValues < 5 then return end bCurrImportedSolid = ( ViewValues[1] == '1') bCurrOuterCrv = ( ViewValues[2] == '1') bCurrPath = ( ViewValues[3] == '1') bCurrSolid = ( ViewValues[4] == '1') bCurrToolPath = ( ViewValues[5] == '1') end -- ciclo sui pezzi local nPartIndex = 1 local nPartId = EgtGetFirstNameInGroup( GDB_ID.ROOT, PART .. nPartIndex) while nPartId do if bImportedSolid ~= bCurrImportedSolid then ShowImportedSolid( nPartId, bCurrImportedSolid) end -- ciclo sui layer per dis/attivare il resto local nLayerIndex = 1 local nLayerId = EgtGetFirstNameInGroup( nPartId, SLICE_LAYER .. nLayerIndex) or EgtGetFirstNameInGroup( nPartId, "__" .. SLICE_LAYER .. nLayerIndex) while nLayerId do local nCrvId = EgtGetFirstGroupInGroup( nLayerId) while nCrvId do if bOuterCrv ~= bCurrOuterCrv then local nOuterCrvId = EgtGetFirstNameInGroup( nCrvId, OUTER_CRV) EgtSetStatus( nOuterCrvId or GDB_ID.NULL, EgtIf( bCurrOuterCrv, GDB_ST.ON, GDB_ST.OFF)) end if bPath ~= bCurrPath then local nPathId = EgtGetFirstNameInGroup( nCrvId, PATH_GRP) EgtSetStatus( nPathId or GDB_ID.NULL, EgtIf( bCurrPath, GDB_ST.ON, GDB_ST.OFF)) end if bSolid ~= bCurrSolid then local nSolidId = EgtGetFirstNameInGroup( nCrvId, SOLID_GRP) EgtSetStatus( nSolidId or GDB_ID.NULL, EgtIf( bCurrSolid, GDB_ST.ON, GDB_ST.OFF)) end if bToolPath ~= bCurrToolPath then local nToolPathId = EgtGetFirstNameInGroup( nCrvId, TOOLPATH_GRP) EgtSetStatus( nToolPathId or GDB_ID.NULL, EgtIf( bCurrToolPath, GDB_ST.ON, GDB_ST.OFF)) end nCrvId = EgtGetNext( nCrvId) end nLayerIndex = nLayerIndex + 1 nLayerId = EgtGetFirstNameInGroup( nPartId, SLICE_LAYER .. nLayerIndex) or EgtGetFirstNameInGroup( nPartId, "__" .. SLICE_LAYER .. nLayerIndex) end nPartIndex = nPartIndex + 1 nPartId = EgtGetFirstNameInGroup( GDB_ID.ROOT, PART .. nPartIndex) end -- riporto impostazioni in gruppo apposito EgtSetInfo( nViewId, IMPORTED_SOLID, bCurrImportedSolid) EgtSetInfo( nViewId, OUTER_CRV, bCurrOuterCrv) EgtSetInfo( nViewId, PATH_GRP, bCurrPath) EgtSetInfo( nViewId, SOLID_GRP, bCurrSolid) EgtSetInfo( nViewId, TOOLPATH_GRP, bCurrToolPath) EgtDraw() end --------------------------------------------------------------------- return RunShowManager