Files
egwwindowlua/ManPrepMachGroups.lua
Dario Sassi c8ec5c73ad Window 3.1h1 :
- aggiunta gestione flip pezzi per lavorare in prima fase interno invece di esterno
- aggiunta cancellazione di tutti i vecchi file risultato in modalità manuale.
2026-08-07 11:55:06 +02:00

74 lines
2.4 KiB
Lua

-- ManPrepMachGroups.lua by Egalware s.r.l. 2026/07/27
-- Creazione dei MachGroup del file già aperto in modalità manuale da EgtCAM5
-- 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', 'Prepara Macchinate - Window', 'INFO', 'OK')
return
end
-- dati generali del progetto
local sWinPath = EgtGetCurrFilePath()
local sDir = EgtSplitPath( sWinPath)
-- rimuovo eventuali macchinate già presenti
local nMGrpId = EgtGetFirstMachGroup()
while nMGrpId do
local nCurrMGrpId = nMGrpId
local sMGrpName = EgtGetMachGroupName( nMGrpId)
nMGrpId = EgtGetNextMachGroup( nMGrpId)
-- 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
-- cancello la macchinata
EgtRemoveMachGroup( nCurrMGrpId)
end
-- scrivo parametri di comando (OPT_TYPE = PIECE, WINDOW, FULL_LIST)
_G.WIN = { MACHINELIST = { 'Saomad-Just3500'},
OPT_TYPE = 'WINDOW'}
-- aggiungo le macchinate
local bOk, sErr = pcall( dofile, EgtGetSourceDir() .. 'CAMAuto\\CreateMachGroups.lua')
-- se errore, lo segnalo ed esco
if not bOk then
EgtOutBox( sErr, 'Prepara Macchinate - Window', 'OK', 'ERROR')
return
end
-- salvo il file del serramento
EgtSaveFile()