Files
egwwindowlua/ManProcOneMachGroup.lua
Dario Sassi d90659b4f6 Window :
- in modalità manuale aggiunta la possibilità di caricare una macchina già lavorata.
2026-08-07 13:25:31 +02:00

129 lines
3.9 KiB
Lua

-- ManProcOneMachGroup.lua by Egalware s.r.l. 2026/08/07
-- Creazione delle lavorazioni del MachGroup selezionato
-- Intestazioni
require( 'EgtBase')
_ENV = EgtProtectGlobal()
EgtEnableDebug( false)
-- Verifico che il progetto sia un serramento
local nAreaId = EgtGetFirstNameInGroup( GDB_ID.ROOT, 'Area(Frame)')
if not nAreaId then
EgtOutBox( 'Caricare il progetto di una finestra', 'Lavora Una Macchinata - Window', 'INFO', 'OK')
return
end
-- Verifico che il progetto contenga già le macchinate
if not EgtGetFirstMachGroup() then
EgtOutBox( 'Preparare le macchinate della finestra', 'Lavora Una Macchinata - Window', 'INFO', 'OK')
return
end
-- dati generali del progetto
local sWinPath = EgtGetCurrFilePath()
local sDir = EgtSplitPath( sWinPath)
-- Se va solo caricata una macchinata già fatta
if EgtGetKeyPressed( GEN_VK.SHIFT) then
local sMGrpList
local nMGrpId = EgtGetFirstMachGroup()
while nMGrpId do
local sMGrpName = EgtGetMachGroupName( nMGrpId)
if EgtExistsFile( sDir .. sMGrpName .. '.bwe') then
if not sMGrpList then
sMGrpList = 'CB:' .. sMGrpName
else
sMGrpList = sMGrpList .. ',' .. sMGrpName
end
end
nMGrpId = EgtGetNextMachGroup( nMGrpId)
end
if not sMGrpList then
EgtOutBox( 'Non ci sono macchinata già lavorate', 'Scegli Una Macchinata - Window', 'INFO', 'OK')
return
end
local vRes = EgtDialogBox( 'Scegli Una Macchinata - Window', { 'Macchinata', sMGrpList})
if not vRes or #vRes < 1 then
return
end
EgtOpenFile( sDir .. vRes[1] .. '.bwe')
EgtSetCurrMachGroup()
EgtZoom( SCE_ZM.ALL)
return
end
-- Scelta della macchinata da lavorare
local sMGrpList
local nMGrpId = EgtGetFirstMachGroup()
while nMGrpId do
local sMGrpName = EgtGetMachGroupName( nMGrpId)
local sDone = ''
if EgtExistsFile( sDir .. sMGrpName .. '.bwe') then
sDone = ' [===]'
end
if not sMGrpList then
sMGrpList = 'CB:' .. sMGrpName .. sDone
else
sMGrpList = sMGrpList .. ',' .. sMGrpName .. sDone
end
nMGrpId = EgtGetNextMachGroup( nMGrpId)
end
local vRes = EgtDialogBox( 'Lavora Una Macchinata - Window', { 'Macchinata', sMGrpList})
if not vRes or #vRes < 1 then
return
end
local sMGrpName = EgtReplaceString( vRes[1], ' [===]', '')
-- cancello eventuali file generati dalla macchinata
local sMGrpFile = sDir .. sMGrpName .. '.bwe'
if EgtExistsFile( sMGrpFile) then
local nOrigCtx = EgtGetContext()
local nCtx = EgtCreateContext()
if nCtx and EgtOpenFile( sMGrpFile) then
local nMgId = EgtGetFirstInGroup( EgtGetFirstNameInGroup( GDB_ID.ROOT, 'MachBase') or GDB_ID.NULL)
if nMgId then
local sNcName = EgtGetInfo( nMgId, 'NcName')
if sNcName then
local _, sSpecName, _ = EgtSplitPath( sNcName)
local vFiles = EgtFindAllFiles( sDir .. sSpecName .. '*.*') or {}
for i = 1, #vFiles do
local sFileToErase = sDir .. vFiles[i]
EgtEraseFile( sFileToErase)
end
end
end
end
EgtDeleteContext( nCtx)
EgtSetContext( nOrigCtx)
end
-- cancello tutti i file del direttorio con il nome della macchinata
local vFiles = EgtFindAllFiles( sDir .. sMGrpName .. '.*') or {}
for i = 1, #vFiles do
local sFileToErase = sDir .. vFiles[i]
EgtEraseFile( sFileToErase)
end
-- salvo la macchinata scelta in un nuovo file
local sMGrpPath = sDir .. sMGrpName .. '.bwe'
EgtSaveMachGroupToFile( EgtGetMachGroupId( sMGrpName), sMGrpPath)
-- lancio
local _, sBaseDir = EgtEndsWith( EgtGetSourceDir(), '\\')
sBaseDir = sBaseDir .. '\\CAMAuto'
_G.WIN = { BASEDIR = sBaseDir,
FILE = sMGrpPath,
MACHINE = 'Saomad-Just3500',
FLAG = 1}
-- aggiungo le lavorazioni
local bOk, sErr = pcall( dofile, sBaseDir .. '\\BatchProcessWin.lua')
-- salvo il file
EgtSaveFile()
EgtSetCurrMachGroup()
EgtZoom( SCE_ZM.ALL)