- Aggiunto campo descrizione su pezzo

- Aggiunto materiale su Master-Panel
- Possibilità di indicare il numero di caratteri di un campo
This commit is contained in:
andrea.villa
2025-09-17 15:49:54 +02:00
parent 5a6ac3ac8d
commit 036c782671
+49 -13
View File
@@ -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