Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 94e0ba559b | |||
| 2bde93681f | |||
| bc467fc784 | |||
| fc5071a9ae | |||
| 036c782671 | |||
| 5a6ac3ac8d | |||
| 234692545d | |||
| 4b0334ab65 |
+54
-30
@@ -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))
|
||||
|
||||
@@ -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
@@ -2,5 +2,5 @@
|
||||
-- Gestione della versione di Wall
|
||||
|
||||
NAME = 'Wall'
|
||||
VERSION = '2.7i1'
|
||||
VERSION = '2.7i2'
|
||||
MIN_EXE = '2.7f2'
|
||||
|
||||
Reference in New Issue
Block a user