From 036c782671f9ff14469a316935453d12d89e96cd Mon Sep 17 00:00:00 2001 From: "andrea.villa" Date: Wed, 17 Sep 2025 15:49:54 +0200 Subject: [PATCH] =?UTF-8?q?-=20Aggiunto=20campo=20descrizione=20su=20pezzo?= =?UTF-8?q?=20-=20Aggiunto=20materiale=20su=20Master-Panel=20-=20Possibili?= =?UTF-8?q?t=C3=A0=20di=20indicare=20il=20numero=20di=20caratteri=20di=20u?= =?UTF-8?q?n=20campo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LuaLibs/PanelSaw.lua | 62 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 49 insertions(+), 13 deletions(-) diff --git a/LuaLibs/PanelSaw.lua b/LuaLibs/PanelSaw.lua index 4ba1145..f5c72d2 100644 --- a/LuaLibs/PanelSaw.lua +++ b/LuaLibs/PanelSaw.lua @@ -3,6 +3,7 @@ -- Intestazioni require( 'EgtBase') +EgtEnableDebug( true) local PanelSaw = {} @@ -35,6 +36,7 @@ local function GetPanelList() PanelList[i].idPatt = EgtGetInfo( idMachGroup, 'PATTID', 'i') PanelList[i].nPdn = EgtGetInfo( idPart, 'PDN', 'i') PanelList[i].sName = EgtGetInfo( idPart, 'NAM', 's') + PanelList[i].sDescription = '' -- in questa modalità ogni MachGroup è 1 pezzo, non esistono multipli -- TODO valutare se raggruppare i pannelli uguali per la cutting list PanelList[i].nQuantity = 1 @@ -53,12 +55,14 @@ local function GetSheetList() { dLength = 2800, dWidth = 2070, - dThickness = 8 + dThickness = 8, + sMaterial = '' }, { dLength = 2800, dWidth = 2070, - dThickness = 18 + dThickness = 18, + sMaterial = '' } } @@ -76,6 +80,37 @@ local function GetProjectInfo() return ProjectInfo end +local function GetFormattedLine( Table, LineToPrint) + local sLine = '' + local Values = Table.ValuesList[LineToPrint] + local nPos = 1 -- posizione partenza linea + + for j, Value in ipairs( Values) do + local Placeholder = Table.ValuesPlaceholders[j] + local sFormatted = string.format( Placeholder, Value) + + -- se il campo ha lunghezza fissa, si aggiungono spazi + if Table.FieldFixLength and Table.FieldFixLength[j] then + local sFieldLength = Table.FieldFixLength[j] + -- troncamento se troppo lungo + if #sFormatted > sFieldLength then + sFormatted = string.sub( sFormatted, 1, sFieldLength) + end + sFormatted = sFormatted .. string.rep(" ", sFieldLength - #sFormatted) + end + + sLine = sLine .. sFormatted + nPos = nPos + #sFormatted + + -- Aggiungi spazio solo se non è l'ultimo campo + if j < #Values then + sLine = sLine .. " " + nPos = nPos + 1 + end + end + return sLine +end + local function BuildCuttingList_Cutty( PanelList, SheetList, ProjectInfo) @@ -97,20 +132,22 @@ local function BuildCuttingList_Cutty( PanelList, SheetList, ProjectInfo) Header = { 'F1', PanelList[1].dThickness, 0, 0, 0}, HeaderPlaceholders = { '%s', '%.3f', '%.3f', '%.3f', '%.3f'}, ValuesList = {}, - ValuesPlaceholders = { '%.3f', '%.3f', '%d', '%d', '%d', '%d', '%d', '%.3f', '%d', '%d', '%d', '%d'} + ValuesPlaceholders = { '%.3f', '%.3f', '%d', '%d', '%d', '%d', '%s', '%d', '%.3f', '%d', '%d', '%d', '%d'}, + FieldFixLength = { [6] = 29, [7] = 50} } for i = 1, #SheetList do - F1.ValuesList[i] = { SheetList[i].dLength, SheetList[i].dWidth, 99, 200, 1, 1, 0, 1, 0, 0, 0, 0} + F1.ValuesList[i] = { SheetList[i].dLength, SheetList[i].dWidth, 99, 200, 1, 1, SheetList[i].sMaterial, 0, 1, 0, 0, 0, 0} end local F2 = { Header = { 'F2', 0, 0, 0}, HeaderPlaceholders = { '%s', '%d', '%d', '%d'}, ValuesList = {}, - ValuesPlaceholders = { '%.3f', '%.3f', '%d', '%d', '%d', '%d', '%d', '%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%.3f', '%d', '%d', '%d', '%.3f', '%.3f'} + ValuesPlaceholders = { '%.3f', '%.3f', '%d', '%d', '%d', '%d', '%d', '%s', '%d', '%d', '%d', '%d', '%s', '%d', '%d', '%d', '%d', '%d', '%d', '%.3f', '%d', '%d', '%d', '%.3f', '%.3f'}, + FieldFixLength = { [8] = 20, [13] = 50, [23] = 85} } for i = 1, #PanelList do - F2.ValuesList[i] = { PanelList[i].dLength, PanelList[i].dWidth, PanelList[i].nQuantity, 0, 0, 0, 0, PanelList[i].nPdn, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1500, 0, 0, 0, 0, 0} + F2.ValuesList[i] = { PanelList[i].dLength, PanelList[i].dWidth, PanelList[i].nQuantity, 0, 0, 0, 0, PanelList[i].nPdn, 0, 0, 0, 0, PanelList[i].sDescription, 0, 0, 0, 0, 1, 0, 1500, 0, 0, 0, 0, 0} end local F7 = { @@ -187,9 +224,8 @@ local function BuildCuttingList_Cutty( PanelList, SheetList, ProjectInfo) -- F1 - sheets table.insert( Lines, string.format( table.concat( F1.HeaderPlaceholders, ' '), table.unpack( F1.Header))) for i = 1, #F1.ValuesList do - local Values = F1.ValuesList[i] - local Placeholders = F1.ValuesPlaceholders - table.insert( Lines, string.format( table.concat( Placeholders, ' '), table.unpack( Values))) + local sLine = GetFormattedLine( F1, i) + table.insert( Lines, sLine) end -- linea vuota @@ -198,9 +234,8 @@ local function BuildCuttingList_Cutty( PanelList, SheetList, ProjectInfo) -- F2 - panels table.insert( Lines, string.format( table.concat( F2.HeaderPlaceholders, ' '), table.unpack( F2.Header))) for i = 1, #F2.ValuesList do - local Values = F2.ValuesList[i] - local Placeholders = F2.ValuesPlaceholders - table.insert( Lines, string.format( table.concat( Placeholders, ' '), table.unpack( Values))) + local sLine = GetFormattedLine( F2, i) + table.insert( Lines, sLine) end -- linea vuota @@ -262,7 +297,8 @@ local function BuildCuttingList( PanelList, sOutputType) ActualSheetList[#ActualSheetList+1] = { dLength = SheetList[i].dLength, dWidth = SheetList[i].dWidth, - dThickness = SheetList[i].dThickness + dThickness = SheetList[i].dThickness, + sMaterial = SheetList[i].sMaterial } end end