- Prima versione con gestione parametri generali
- Possibilità di aprire più configurazioni delle strategie - Gestione parametri ereditati - Nuovo JSON parametri generali - Adeguamento strategie per gestione parametri generali
This commit is contained in:
+35
-14
@@ -29,12 +29,13 @@ EgtMdbSave()
|
||||
-- *** variabili globali ***
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
TOOLS = {} -- tabella contenente tutti gli utensili
|
||||
STRATEGIES = nil -- tabella contenente le strategie disponibili per ogni feature
|
||||
STRATEGIES = {} -- tabella contenente le strategie disponibili per ogni feature
|
||||
STRATEGIES_CONFIG = {} -- tabella contenente i parametri di default delle strategie disponibili
|
||||
MACHININGS = {} -- tabella contenente le lavorazioni da applicare
|
||||
MACHININGS.Info = {}
|
||||
PROCESSINGS = {} -- tabella contenente tutte le informazioni di ogni feature, processate per ogni rotazione
|
||||
RESULT = {} -- tabella contenente il risultato, feature per feature, dell'applicazione della strategia scelta e il resoconto dell'analisi fatta
|
||||
GENERAL_PARAMETERS = {} -- tabella contenente i parametri generali
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
-- *** COSTANTI *** TODO -> DA SPOSTARE IN BEAMDATA???
|
||||
@@ -206,23 +207,38 @@ function BeamExec.GetToolsFromDB()
|
||||
end
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
function BeamExec.GetStrategiesFromJSONinBD()
|
||||
-- si legge il JSON contenente la configurazione da utilizzare (nome del file salvato nel BeamData)
|
||||
local sMachDir = EgtGetCurrMachineDir()
|
||||
if BeamData.STRATEGIES_CONFIG_FILE then
|
||||
local sFile = sMachDir .. '\\Beam\\AISetup\\' .. BeamData.STRATEGIES_CONFIG_FILE
|
||||
function BeamExec.GetGeneralParameters()
|
||||
local CompleteList = {}
|
||||
local sFile = BEAM.BASEDIR .. '\\Strategies\\GeneralParameters.json'
|
||||
-- se non esiste file JSON, esco subito
|
||||
if not EgtExistsFile( sFile) then
|
||||
return
|
||||
end
|
||||
|
||||
CompleteList = BeamLib.ImportFileJSON( sFile)
|
||||
|
||||
GENERAL_PARAMETERS = BeamLib.LoadGeneralParametersInList( CompleteList)
|
||||
end
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
function BeamExec.GetStrategiesFromJSONinBD( sAISetupConfigName)
|
||||
-- si legge il JSON contenente la configurazione da utilizzare solo se non è già stato importato
|
||||
if sAISetupConfigName and not STRATEGIES[sAISetupConfigName] then
|
||||
local sMachDir = EgtGetCurrMachineDir()
|
||||
local sFile = sMachDir .. '\\Beam\\AISetup\\' .. sAISetupConfigName .. '.json'
|
||||
-- se non esiste file JSON, annullo la lista contenente le strategie
|
||||
if not EgtExistsFile( sFile) then
|
||||
STRATEGIES = nil
|
||||
STRATEGIES[sAISetupConfigName] = nil
|
||||
return
|
||||
end
|
||||
|
||||
|
||||
local FeatureList = {}
|
||||
FeatureList = BeamLib.ImportFileJSON( sFile)
|
||||
|
||||
-- metto la tabella letta nella lista globale STRATEGIES
|
||||
STRATEGIES = {}
|
||||
STRATEGIES.FeatureList = FeatureList
|
||||
STRATEGIES[sAISetupConfigName] = {}
|
||||
STRATEGIES[sAISetupConfigName].FeatureList = FeatureList.FEATURE
|
||||
STRATEGIES[sAISetupConfigName].sAISetupConfigName = sAISetupConfigName
|
||||
end
|
||||
end
|
||||
|
||||
@@ -463,6 +479,11 @@ function BeamExec.ProcessBeams( dRawW, dRawH, dRawL, dOvmHead, dOvmMid, PARTS, b
|
||||
PARTS[i].SplittingPoints = BeamLib.GetPartSplittingPoints( PARTS[i])
|
||||
PARTS[i].NotClampableLength = { STD = { dHead = 0, dTail = 0}, SIDE = { dHead = 0, dTail = 0}, DOWN = { dHead = 0, dTail = 0}}
|
||||
PARTS[i].dHeadOverMaterial = dDeltaS
|
||||
PARTS[i].sAISetupConfig = EgtGetInfo( PARTS[i].id, 'AISETUP', 's') or nil
|
||||
PARTS[i].GeneralParameters = {}
|
||||
-- si carica configurazione lavorazioni
|
||||
BeamExec.GetStrategiesFromJSONinBD( PARTS[i].sAISetupConfig)
|
||||
-- TODO leggere qui i parametri generali pezzo?
|
||||
else
|
||||
local sOut = 'Error: part L(' .. EgtNumToString( dPartLen, 1) .. ') too big for raw part L(' .. EgtNumToString( dLen - 0.1, 1) .. ')'
|
||||
return false, sOut
|
||||
@@ -522,11 +543,11 @@ end
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
local function GetStrategies( Proc)
|
||||
local function GetStrategies( Proc, sAISetupConfigName)
|
||||
local AvailableStrategiesForProc = nil
|
||||
-- se la lista STRATEGIES è stata letta da JSON (quindi non è vuota), ritorno le strategie possibili
|
||||
if STRATEGIES and #STRATEGIES.FeatureList > 0 then
|
||||
AvailableStrategiesForProc = BeamLib.GetStrategiesFromList( Proc, STRATEGIES)
|
||||
if STRATEGIES and sAISetupConfigName and STRATEGIES[sAISetupConfigName] and #STRATEGIES[sAISetupConfigName].FeatureList > 0 then
|
||||
AvailableStrategiesForProc = BeamLib.GetStrategiesFromList( Proc, STRATEGIES[sAISetupConfigName])
|
||||
end
|
||||
-- se non ho trovato strategie disponibili nel JSON, o se JSON non presente, lancio script che setta le strategie in modo statico, come definito con cliente
|
||||
if not AvailableStrategiesForProc then
|
||||
@@ -638,7 +659,7 @@ local function CollectFeatures( Part, dRotIndex)
|
||||
Proc.AvailableStrategies = vForcedStrategy
|
||||
-- altrimenti cerco tra le strategie disponibili
|
||||
else
|
||||
Proc.AvailableStrategies = GetStrategies( Proc)
|
||||
Proc.AvailableStrategies = GetStrategies( Proc, Part.sAISetupConfig)
|
||||
end
|
||||
-- se ci sono strategie disponibili, aggiungo a lista delle feature da lavorare
|
||||
if Proc.AvailableStrategies and #Proc.AvailableStrategies > 0 then
|
||||
|
||||
Reference in New Issue
Block a user