- Prima versione funzionante ottimizzazione shortest-path
- creata nuova tabella globale DB_MACH_APPLIED che rispecchia il DB delle lavorazioni e fasi (il MachGroup) aggiunte da automatismo - ripristinata funzione di ordinamento StableSort, solo per lo stage - adeguamento funzioni ordinamento per operare su nuova tabella DB_MACH_APPLIED
This commit is contained in:
+10
-5
@@ -35,6 +35,7 @@ STRATEGIES = {} -- tabella contenente le strategie disponibili per ogni
|
||||
STRATEGIES_CONFIG = {} -- tabella contenente i parametri di default delle strategie disponibili
|
||||
MACHININGS = {} -- tabella contenente le lavorazioni da applicare
|
||||
MACHININGS.Info = {}
|
||||
DB_MACH_APPLIED = {} -- tabella contenente informazioni delle lavorazioni create e aggiunte in lista
|
||||
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 già letti e importati
|
||||
@@ -1600,6 +1601,11 @@ function BeamExec.ProcessMachinings( PARTS)
|
||||
-- si mette subito il pezzo nella fase
|
||||
if nOrd == 1 then
|
||||
EgtSetCurrPhase( 1)
|
||||
local nPhase = EgtGetCurrPhase()
|
||||
-- salvo info nuova fase aggiunta
|
||||
local MachExtraInfo = { sType = 'DISP',
|
||||
nPhase = nPhase}
|
||||
table.insert( DB_MACH_APPLIED, MachExtraInfo)
|
||||
else
|
||||
BeamLib.AddPhaseWithRawParts( PARTS[nPart].idRaw, BeamData.ptOriXR, BeamData.dPosXR, 0)
|
||||
end
|
||||
@@ -1693,11 +1699,10 @@ function BeamExec.ProcessMachinings( PARTS)
|
||||
|
||||
-- si preparano le lavorazioni assegnandole al proprio stage
|
||||
MACHININGS = MachiningLib.PrepareMachiningsForSorting( PARTS[nPart])
|
||||
|
||||
-- ordinamento lavorazioni
|
||||
-- TODO sostituire con sorting Egt
|
||||
MACHININGS = BeamLib.StableSort( MACHININGS, MachiningLib.CompareMachinings)
|
||||
|
||||
-- TODO la FinalizeSorting andrebbe rimossa e usato un sorting che non viola le dipendenze
|
||||
-- MACHININGS = BeamLib.StableSort( MACHININGS, MachiningLib.CompareMachinings)
|
||||
-- MACHININGS = MachiningLib.FinalizeSorting()
|
||||
|
||||
-- finiti i calcoli di applicazione delle lavorazioni, si riporta il pezzo nello zero della fase
|
||||
@@ -1783,12 +1788,12 @@ function BeamExec.ProcessMachinings( PARTS)
|
||||
MachiningLib.AddOperations( MACHININGS, PARTS[nPart], 'STD')
|
||||
|
||||
-- ottimizzazione con algoritmo ShortestPath
|
||||
-- TODO completare ordinamento. Mancano le dipendenze
|
||||
MACHININGS = MachiningLib.ShortestPathSorting( MACHININGS)
|
||||
MachiningLib.ShortestPathSorting()
|
||||
|
||||
EgtOutLog( ' *** End AddMachinings ***', 1)
|
||||
-- azzero lavorazioni per pezzo successivo
|
||||
MACHININGS = {}
|
||||
DB_MACH_APPLIED = {}
|
||||
MACHININGS.Info = {}
|
||||
-- indice pezzo successivo
|
||||
nOrd = nOrd + 1
|
||||
|
||||
Reference in New Issue
Block a user