DataWall 2.7g2 :
- aggiunta gestione origine e offset da questa che non fanno riprocessare l'intero grezzo (ma solo aggiornare) - corretta BatchProcess per nome file anche se da non riprocessare.
This commit is contained in:
+37
-10
@@ -1,4 +1,4 @@
|
||||
-- BatchProcess.lua by Egaltech s.r.l. 2023/04/17
|
||||
-- BatchProcess.lua by Egaltech s.r.l. 2025/07/17
|
||||
-- Gestione calcolo batch disposizione e lavorazioni per Pareti
|
||||
-- 2020/07/24 Nuvola di punti riferita allo Zero Tavola.
|
||||
-- 2020/10/28 Corretto spostamento pezzi per rotazioni (0 o 180) e inversioni( 0, 90, 180, o 270).
|
||||
@@ -93,12 +93,6 @@ end
|
||||
local function UpdateAuxData( sAuxFile)
|
||||
local bModif = false
|
||||
local BtlInfoId = EgtGetFirstNameInGroup( GDB_ID.ROOT, 'BtlInfo') or GDB_ID.NULL
|
||||
-- Se definito LOAD90, aggiorno
|
||||
local sLoad90 = EgtGetStringFromIni( 'AuxData', 'LOAD90', '', sAuxFile)
|
||||
if sLoad90 ~= '' then
|
||||
EgtSetInfo( BtlInfoId, 'LOAD90', sLoad90)
|
||||
bModif = true
|
||||
end
|
||||
-- Se definito PROJID, aggiorno
|
||||
local sProjId = EgtGetStringFromIni( 'AuxData', 'PROJID', '', sAuxFile)
|
||||
if sProjId ~= '' then
|
||||
@@ -111,6 +105,36 @@ local function UpdateAuxData( sAuxFile)
|
||||
EgtSetInfo( BtlInfoId, 'PRODID', sProdId)
|
||||
bModif = true
|
||||
end
|
||||
-- Se definito LOAD90, aggiorno
|
||||
local sLoad90 = EgtGetStringFromIni( 'AuxData', 'LOAD90', '', sAuxFile)
|
||||
if sLoad90 ~= '' then
|
||||
EgtSetInfo( BtlInfoId, 'LOAD90', sLoad90)
|
||||
bModif = true
|
||||
end
|
||||
-- Se definito REFPOS, aggiorno
|
||||
local sRefPos = EgtGetStringFromIni( 'AuxData', 'REFPOS', '', sAuxFile)
|
||||
if sRefPos ~= '' then
|
||||
EgtSetInfo( BtlInfoId, 'REFPOS', sRefPos)
|
||||
bModif = true
|
||||
end
|
||||
-- Se definito PANELDELTAX, aggiorno
|
||||
local sPanelDeltaX = EgtGetStringFromIni( 'AuxData', 'PANELDELTAX', '', sAuxFile)
|
||||
if sPanelDeltaX ~= '' then
|
||||
EgtSetInfo( BtlInfoId, 'PANELDELTAX', sPanelDeltaX)
|
||||
bModif = true
|
||||
end
|
||||
-- Se definito PANELDELTAY, aggiorno
|
||||
local sPanelDeltaY = EgtGetStringFromIni( 'AuxData', 'PANELDELTAY', '', sAuxFile)
|
||||
if sPanelDeltaY ~= '' then
|
||||
EgtSetInfo( BtlInfoId, 'PANELDELTAY', sPanelDeltaY)
|
||||
bModif = true
|
||||
end
|
||||
-- Se definito PANELDELTAZ, aggiorno
|
||||
local sPanelDeltaZ = EgtGetStringFromIni( 'AuxData', 'PANELDELTAZ', '', sAuxFile)
|
||||
if sPanelDeltaZ ~= '' then
|
||||
EgtSetInfo( BtlInfoId, 'PANELDELTAZ', sPanelDeltaZ)
|
||||
bModif = true
|
||||
end
|
||||
return bModif
|
||||
end
|
||||
|
||||
@@ -151,7 +175,6 @@ end
|
||||
-- Carico le librerie
|
||||
_G.package.loaded.WallExec = nil
|
||||
local WE = require( 'WallExec')
|
||||
--local BL = require( 'BeamLib')
|
||||
|
||||
-- Carico i dati globali
|
||||
local WD = require( 'WallData')
|
||||
@@ -522,12 +545,16 @@ else
|
||||
UpdateAuxData( sBtmFile)
|
||||
|
||||
-- Anche se non è da riprocessare, imposto nome file CN.
|
||||
-- Se file TS7 importato da altro PC, 'BEAM.FILE' è cambiato da un PC all'altro. Di conseguenza si deve aggiornare nome file che si andrà a generare.
|
||||
local _, sName, _ = EgtSplitPath( BEAM.FILE)
|
||||
-- Se file TS7 importato da altro PC, 'WALL.FILE' è cambiato da un PC all'altro. Di conseguenza si deve aggiornare nome file che si andrà a generare.
|
||||
local _, sName, _ = EgtSplitPath( WALL.FILE)
|
||||
EgtSetInfo( EgtGetLastMachGroup(), 'NcName', sName .. '.cnc')
|
||||
|
||||
-- Passo in modalità lavora
|
||||
EgtSetCurrMachGroup( EgtGetLastMachGroup())
|
||||
-- Aggiorno posizione del grezzo
|
||||
if WE.MoveRaw() then
|
||||
bToRecalc = true
|
||||
end
|
||||
-- Se necessario eseguo aggiornamento con ricalcolo delle lavorazioni
|
||||
if bToRecalc or WALL.FLAG == 3 or WALL.FLAG == 4 then
|
||||
EgtOutLog( ' +++ Recalculating all dispositions and machinings >>>')
|
||||
|
||||
+46
-21
@@ -61,26 +61,10 @@ local Variant = require( 'WProcessVariant')
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
-- *** Inserimento delle pareti nel pannello ***
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
function WallExec.ProcessWalls( dRawL, dRawW, dRawH, vWall, bMachGroupOk, bNewProcess, nRawOutlineId)
|
||||
|
||||
-- Creazione nuovo gruppo di lavoro
|
||||
if not bMachGroupOk then
|
||||
local sMgName = EgtGetMachGroupNewName( 'Mach')
|
||||
local NewMgId = EgtAddMachGroup( sMgName)
|
||||
if not NewMgId then
|
||||
local sOut = 'Errore nella creazione del gruppo di lavoro ' .. sMgName
|
||||
return false, sOut
|
||||
end
|
||||
end
|
||||
|
||||
-- Impostazione della tavola
|
||||
EgtSetTable( 'Tab')
|
||||
|
||||
local function GetRawOrigAndDeltas()
|
||||
-- Area tavola
|
||||
local b3Tab = EgtGetTableArea()
|
||||
-- Calcolo posizione estremo di riferimento della tavola rispetto a sua origine in BL
|
||||
local OrigOnTab
|
||||
local nCorner
|
||||
local sOrigCorner = WD.ORIG_CORNER or 'BR'
|
||||
local BtlInfoId = EgtGetFirstNameInGroup( GDB_ID.ROOT, 'BtlInfo') or GDB_ID.NULL
|
||||
if WD.GetOrigCorner then
|
||||
@@ -95,6 +79,8 @@ function WallExec.ProcessWalls( dRawL, dRawW, dRawH, vWall, bMachGroupOk, bNewPr
|
||||
local DeltaY = EgtIf( dDeltaYFromBtl > 0, dDeltaYFromBtl, WD.DELTA_Y or 0)
|
||||
local DeltaZ = EgtIf( dDeltaZFromBtl > 0, dDeltaZFromBtl, WD.DELTA_Z or 0)
|
||||
|
||||
local nCorner
|
||||
local OrigOnTab
|
||||
if sOrigCorner == 'TL' then
|
||||
nCorner = MCH_CR.TL
|
||||
OrigOnTab = Point3d( 0 + abs( DeltaX), b3Tab:getDimY() - abs( DeltaY), DeltaZ)
|
||||
@@ -120,6 +106,28 @@ function WallExec.ProcessWalls( dRawL, dRawW, dRawH, vWall, bMachGroupOk, bNewPr
|
||||
nCorner = MCH_CR.BL
|
||||
OrigOnTab = Point3d( WD.NEW_REF + abs( DeltaX), abs( DeltaY), DeltaZ)
|
||||
end
|
||||
|
||||
return sOrigCorner, nCorner, OrigOnTab
|
||||
end
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
function WallExec.ProcessWalls( dRawL, dRawW, dRawH, vWall, bMachGroupOk, bNewProcess, nRawOutlineId)
|
||||
|
||||
-- Creazione nuovo gruppo di lavoro
|
||||
if not bMachGroupOk then
|
||||
local sMgName = EgtGetMachGroupNewName( 'Mach')
|
||||
local NewMgId = EgtAddMachGroup( sMgName)
|
||||
if not NewMgId then
|
||||
local sOut = 'Errore nella creazione del gruppo di lavoro ' .. sMgName
|
||||
return false, sOut
|
||||
end
|
||||
end
|
||||
|
||||
-- Impostazione della tavola
|
||||
EgtSetTable( 'Tab')
|
||||
|
||||
-- Recupero dati posizionamento grezzo
|
||||
local sOrigCorner, nCorner, OrigOnTab = GetRawOrigAndDeltas()
|
||||
-- Impostazione dell'attrezzaggio di default
|
||||
EgtImportSetup()
|
||||
-- Impostazione eventuale allargamento area disponibile per grezzo
|
||||
@@ -175,6 +183,23 @@ function WallExec.ProcessWalls( dRawL, dRawW, dRawH, vWall, bMachGroupOk, bNewPr
|
||||
return true
|
||||
end
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
function WallExec.MoveRaw()
|
||||
-- Recupero dati posizionamento grezzo
|
||||
local sOrigCorner, nCorner, OrigOnTab = GetRawOrigAndDeltas()
|
||||
-- Recupero identificativo del grezzo
|
||||
local nRaw = EgtGetFirstRawPart() or GDB_ID.NULL
|
||||
-- Posizione iniziale del centro grezzo
|
||||
local ptOriCen = EgtGetRawPartCenter( nRaw)
|
||||
-- Sposto il grezzo
|
||||
EgtMoveToCornerRawPart( nRaw, OrigOnTab, nCorner)
|
||||
EgtSetInfo( nRaw, 'ORIGCORNER', sOrigCorner)
|
||||
-- Posizione finale del centro grezzo
|
||||
local ptNewCen = EgtGetRawPartCenter( nRaw)
|
||||
-- Restituisco flag di movimento
|
||||
return not AreSamePointApprox( ptOriCen, ptNewCen)
|
||||
end
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
-- *** Inserimento delle lavorazioni nelle pareti ***
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
@@ -538,7 +563,7 @@ local function SortMach( nPhase, PrevMch, nPartId, nType, StartNames, bExistName
|
||||
end
|
||||
|
||||
if bByTool then
|
||||
function ToolCompare(a,b)
|
||||
local function ToolCompare(a,b)
|
||||
if a.ToolType < b.ToolType then
|
||||
return true
|
||||
elseif a.ToolType == b.ToolType then
|
||||
@@ -581,7 +606,7 @@ local function SortMach( nPhase, PrevMch, nPartId, nType, StartNames, bExistName
|
||||
end
|
||||
end
|
||||
|
||||
table.sort(TabCut, ToolCompare)
|
||||
table.sort( TabCut, ToolCompare)
|
||||
-- table.sort(TabCut, function(a,b) return a.ToolType < b.ToolType and a.ToolDiam > b.ToolDiam and a.Tool < b.Tool end)
|
||||
local SupportTabCut = {}
|
||||
local nPrevTUUID = 0
|
||||
@@ -669,7 +694,7 @@ end
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
-- setto la rimozione sfridi dopo le lavorazioni di outline
|
||||
function InsertScrapRemoval( nPhase)
|
||||
local function InsertScrapRemoval( nPhase)
|
||||
local nCurrentOperationId = EgtGetNextOperation( EgtGetPhaseDisposition( nPhase))
|
||||
local nActiveMachiningId = EgtGetCurrMachining()
|
||||
while nCurrentOperationId do
|
||||
@@ -1089,7 +1114,7 @@ local function SetMirroredOperations()
|
||||
end
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
function GetFeatureInfoAndDependency( vProc)
|
||||
local function GetFeatureInfoAndDependency( vProc)
|
||||
-- ciclo tutte le feature
|
||||
for i = 1, #vProc do
|
||||
local Proc = vProc[i]
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
==== Wall Update Log ====
|
||||
|
||||
Versione 2.7g2 (17/07/2025)
|
||||
- Added : aggiunta gestione origine e offset da questa che non fanno riprocessare l'intero grezzo (ma solo aggiornare)
|
||||
- Fixed : corretta BatchProcess per nome file anche se da non riprocessare.
|
||||
|
||||
Versione 2.7g1 (09/07/2025)
|
||||
- Fixed : in FreeContour corretta scelta del lato da lavorare in caso si abbiano lati inclinati
|
||||
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
-- Version.lua by Egalware s.r.l. 2024/08/20
|
||||
-- Version.lua by Egalware s.r.l. 2025/07/17
|
||||
-- Gestione della versione di Wall
|
||||
|
||||
NAME = 'Wall'
|
||||
VERSION = '2.7g1'
|
||||
VERSION = '2.7g2'
|
||||
MIN_EXE = '2.7f2'
|
||||
|
||||
Reference in New Issue
Block a user