- in NestProcess si fanno correttamente inversioni e rotazioni

This commit is contained in:
luca.mazzoleni
2026-05-19 09:50:58 +02:00
parent 08397ae102
commit 608f8da033
+17 -12
View File
@@ -160,7 +160,7 @@ function RawInventory:PrintDiagnosticReport()
-- Stampa tramite il sistema di logging proprietario EgtLog
EgtOutLog("==========================================================")
EgtOutLog(" EGALWARE NESTING ENGINE DIAGNOSTIC ")
EgtOutLog(" NESTING RESULT ")
EgtOutLog("==========================================================")
EgtOutLog(string.format("Total Parts Demanded : %d", #JobPool))
EgtOutLog(string.format("Parts Successfully Nested: %d", nActualNestedParts))
@@ -173,13 +173,13 @@ function RawInventory:PrintDiagnosticReport()
end
EgtOutLog(string.format("Total Bars Used : %d", nBeamsUsed))
EgtOutLog(string.format("Total Material Cut : %.2f mm", dTotalPartLength))
EgtOutLog(string.format("Total Material Cut : %.2f m", dTotalPartLength / 1000))
EgtOutLog("----------------------------------------------------------")
EgtOutLog(string.format("Gross Yield (Rendimento): %.2f%%", dGrossEfficiency))
EgtOutLog(string.format("Net Yield (Riutilizzato): %.2f%%", dNetEfficiency))
EgtOutLog("----------------------------------------------------------")
EgtOutLog(string.format("Total Usable Remnants : %.2f mm (Safe for Clamps)", dTotalUsableRemnants))
EgtOutLog(string.format("Total Pure Scrap (Sfrido): %.2f mm (Trash Zone)", dTotalScrap))
EgtOutLog(string.format("Total Usable Remnants : %.2f m (Safe for Clamps)", dTotalUsableRemnants / 1000))
EgtOutLog(string.format("Total Pure Scrap (Sfrido): %.2f m (Trash Zone)", dTotalScrap / 1000))
EgtOutLog("==========================================================")
end
@@ -544,7 +544,7 @@ while true do
end
-- 2 Si provano le barre ancora a stock SOLO SE NON TROVATA SOLUZIONE CON BARRE ATTIVE
-- VirtualBeam si resetta invece di crearne una nuova per velocizzare il calcolo
-- Per velocizzare il calcolo, VirtualBeam si resetta invece di crearne una nuova ogni volta
if not BestMove then
for i = 1, #RawInventory.Stock do
if RawInventory.Stock[i].nCount > 0 then
@@ -602,17 +602,22 @@ for i = 1, #RawInventory.ActiveBeams do
-- copia del pezzo (aggiunta duplo)
local idDuplo = EgtDuploNew( Part.id)
local Duplo = { id = idDuplo, idRaw = EgtGetRawPartFromPart( idDuplo)}
-- eventuale inversione
if EgtEndsWith( Part.sState, 'INV') then
BeamLib.InvertRawPart( Duplo, 2)
end
-- eventuale rotazione
if ( EgtStartsWith( Part.sState, '0010') and nInitialPosition == 1)
or ( EgtStartsWith( Part.sState, '1000') and nInitialPosition == 3) then
BeamLib.RotateRawPart( Duplo, 2)
local idSurfTmBoxDuplo = EgtGetFirstNameInGroup( idDuplo, "Box")
local b3Duplo = EgtGetBBoxGlob( idSurfTmBoxDuplo, GDB_BB.STANDARD)
EgtRotate( idDuplo, b3Duplo:getCenter(), X_AX(), 180, GDB_RT.GLOB)
EgtSetInfo( idDuplo, 'ROT', 180)
end
-- eventuale inversione
if EgtEndsWith( Part.sState, 'INV') then
local idSurfTmBoxDuplo = EgtGetFirstNameInGroup( idDuplo, "Box")
local b3Duplo = EgtGetBBoxGlob( idSurfTmBoxDuplo, GDB_BB.STANDARD)
EgtRotate( idDuplo, b3Duplo:getCenter(), Z_AX(), 180, GDB_RT.GLOB)
EgtSetInfo( idDuplo, 'FLIP', 180)
end
-- assegnazione info