Compare commits

...

8 Commits

Author SHA1 Message Date
andrea.villa 94e0ba559b Merge remote-tracking branch 'origin/develop' 2025-09-18 11:32:51 +02:00
andrea.villa 2bde93681f update version e log 2025-09-18 11:32:28 +02:00
andrea.villa bc467fc784 In PanelSaw migliorata gestione scrittura dati. Dato F7 uniformato a F1 e F2. Versione funzionante, testata in macchina. 2025-09-18 11:30:16 +02:00
andrea.villa fc5071a9ae In PanelSaw, tolto debug 2025-09-17 15:50:54 +02:00
andrea.villa 036c782671 - Aggiunto campo descrizione su pezzo
- Aggiunto materiale su Master-Panel
- Possibilità di indicare il numero di caratteri di un campo
2025-09-17 15:49:54 +02:00
luca.mazzoleni 5a6ac3ac8d - in PanelSaw rimossa l'estensione dal nome della cutting list generata 2025-09-16 17:08:17 +02:00
luca.mazzoleni 234692545d Merge branch 'master' into develop 2025-09-16 12:27:47 +02:00
luca.mazzoleni 4b0334ab65 Merge tag '2.7i1' into develop
2.7i1
2025-09-16 12:24:47 +02:00
3 changed files with 58 additions and 31 deletions
+54 -30
View File
@@ -3,6 +3,7 @@
-- Intestazioni
require( 'EgtBase')
EgtEnableDebug( false)
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( ValuesList, ValuesPlaceholders, FieldFixLength)
local sLine = ''
local Values = ValuesList
local nPos = 1 -- posizione partenza linea
for j, Value in ipairs( Values) do
local Placeholder = ValuesPlaceholders[j]
local sFormatted = string.format( Placeholder, Value)
-- se il campo ha lunghezza fissa, si aggiungono spazi
if FieldFixLength and FieldFixLength[j] then
local sFieldLength = 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 = {
@@ -129,19 +166,7 @@ local function BuildCuttingList_Cutty( PanelList, SheetList, ProjectInfo)
{ 164, 164},
{ 150, 150}
},
ValuesPlaceholders = {
{ '%s', '%s'},
{ '%s', '%s'},
{ '%s', '%s'},
{ '%s', '%s'},
{ '%s', '%s'},
{ '%s', '%s'},
{ '%s', '%s'},
{ '%s', '%s'},
{ '%s', '%s'},
{ '%s', '%s'},
{ '%s', '%s'}
}
ValuesPlaceholders = { '%s', '%s'}
}
local F7b = {
@@ -187,9 +212,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.ValuesList[i], F1.ValuesPlaceholders, F1.FieldFixLength)
table.insert( Lines, sLine)
end
-- linea vuota
@@ -198,9 +222,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.ValuesList[i], F2.ValuesPlaceholders, F2.FieldFixLength)
table.insert( Lines, sLine)
end
-- linea vuota
@@ -209,9 +232,8 @@ local function BuildCuttingList_Cutty( PanelList, SheetList, ProjectInfo)
-- F7
table.insert( Lines, string.format( table.concat( F7.HeaderPlaceholders, ' '), table.unpack( F7.Header)))
for i = 1, #F7.ValuesList do
local Values = F7.ValuesList[i]
local Placeholders = F7.ValuesPlaceholders[i]
table.insert( Lines, string.format( table.concat( Placeholders, ' '), table.unpack( Values)))
local sLine = GetFormattedLine( F7.ValuesList[i], F7.ValuesPlaceholders, F7.FieldFixLength)
table.insert( Lines, sLine)
end
-- linea vuota
@@ -262,7 +284,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
@@ -321,7 +344,8 @@ function PanelSaw.GenerateCuttingList( sOutputType)
local LinesToWrite = BuildCuttingList( PanelListSingleMaterial, sOutputType)
-- scrittura file
local sFilename = sCurrentNgePath .. 'CutList-' .. sCurrentNgeName .. '-' .. key .. '.' .. sOutputType
local sFilename = sCurrentNgePath .. 'CutList-' .. sCurrentNgeName .. '-' .. key .. '-' .. sOutputType
sFilename = sFilename:gsub( '%.', '_')
local hFile, nFileErr = io.open( sFilename, 'w')
if not hFile then
EgtOutLog( 'Error creating cutting list : IO error ' .. tostring( nFileErr))
+3
View File
@@ -1,5 +1,8 @@
==== Wall Update Log ====
Versione 2.7i2 (18/09/2025)
- Modif : in PanelSaw gestione campi a lunghezza fissa
Versione 2.7i1 (16/09/2025)
- Added : per cabinet aggiunta esportazione cutting list e modalità nesting semplice
+1 -1
View File
@@ -2,5 +2,5 @@
-- Gestione della versione di Wall
NAME = 'Wall'
VERSION = '2.7i1'
VERSION = '2.7i2'
MIN_EXE = '2.7f2'