- in MachiningLib corretto ordinamento nel caso di lavorazioni disattivate

This commit is contained in:
luca.mazzoleni
2026-01-23 16:46:05 +01:00
parent 18fe9ceccb
commit c14377fb67
+23 -6
View File
@@ -1768,17 +1768,34 @@ function MachiningLib.ShortestPathSorting()
i = i + 1
end
local nStopIndex = nStartIndex + nMachInDisp - 1
-- cliclo su tutte le lavorazioni
for k = nStartIndex, nStopIndex do
for j = nStartIndex, nStopIndex do
for k = 1, #MachiningOptList do
if not DB_MACH_APPLIED[MachiningOptList[k]].Dependances then
DB_MACH_APPLIED[MachiningOptList[k]].Dependances = {}
end
for j = 1, #MachiningOptList do
-- se non è stessa lavorazione, imposto dati e dipendenze
if k ~= j then
local MachiningK = MACHININGS[DB_MACH_APPLIED[MachiningOptList[k]].nIndexInMachinings]
local MachiningJ = MACHININGS[DB_MACH_APPLIED[MachiningOptList[j]].nIndexInMachinings]
-- se stessa Proc
if MACHININGS[DB_MACH_APPLIED[k].nIndexInMachinings].Proc.id == MACHININGS[DB_MACH_APPLIED[j].nIndexInMachinings].Proc.id then
if MachiningK.Proc.id == MachiningJ.Proc.id then
-- se lavorazioni della stessa feature, obbligatorio rispettare ordine
if MACHININGS[DB_MACH_APPLIED[k].nIndexInMachinings].Machining.nFeatureInternalIndex <= MACHININGS[DB_MACH_APPLIED[j].nIndexInMachinings].Machining.nFeatureInternalIndex then
EgtOptMachAddDependence( k, j)
if MachiningK.Machining.nFeatureInternalIndex < MachiningJ.Machining.nFeatureInternalIndex then
local bOk = EgtOptMachAddDependence( MachiningOptList[k], MachiningOptList[j])
if not bOk then
error( 'Machining sorting : error in dependencies')
end
table.insert( DB_MACH_APPLIED[MachiningOptList[k]].Dependances, MachiningOptList[j])
-- se l'indice interno è uguale, sono cloni: si ordinano in base all'ordine in tabella
elseif MachiningK.Machining.nFeatureInternalIndex == MachiningJ.Machining.nFeatureInternalIndex then
if k < j then
local bOk = EgtOptMachAddDependence( MachiningOptList[k], MachiningOptList[j])
if not bOk then
error( 'Machining sorting : error in dependencies')
end
table.insert( DB_MACH_APPLIED[MachiningOptList[k]].Dependances, MachiningOptList[j])
end
end
-- se tra due Proc diverse
else