DataWall :

- aggiunta possibilità di posizionare i pezzi nei quattro angoli della tavola (da WD.ORIG_CORNER con valori BL,TL,BR,TR)
- corretta classificazione Tagli con Lama.
This commit is contained in:
Dario Sassi
2020-11-14 08:26:05 +00:00
parent ffe641a705
commit cd0d0fe1c9
3 changed files with 27 additions and 13 deletions
+2 -2
View File
@@ -1,4 +1,4 @@
-- ProcessCut.lua by Egaltech s.r.l. 2020/07/15
-- ProcessCut.lua by Egaltech s.r.l. 2020/11/13
-- Gestione calcolo taglio di testa o longitudinale per Pareti
-- Tabella per definizione modulo
@@ -30,7 +30,7 @@ function WPC.Classify( Proc, b3Raw)
if Proc.Fct ~= 1 then return false end
-- controllo la normale
local ptC, vtN = EgtSurfTmFacetCenter( Proc.Id, 0, GDB_ID.ROOT)
if abs( vtN:getZ()) < 0.5 then return false end
if abs( vtN:getZ()) < -0.5 then return false end
return true
end
+18 -4
View File
@@ -1,4 +1,4 @@
-- WallExec.lua by Egaltech s.r.l. 2020/07/15
-- WallExec.lua by Egaltech s.r.l. 2020/11/12
-- Libreria esecuzione lavorazioni per Pareti
-- Tabella per definizione modulo
@@ -41,13 +41,27 @@ function WallExec.ProcessWalls( dRawL, dRawW, dRawH, vWall)
EgtSetTable( 'Tab')
-- Area tavola
local b3Tab = EgtGetTableArea()
-- Calcolo posizione estremo BR della tavola rispetto a sua origine in BL
WD.OriBR = Point3d( b3Tab:getDimX(), 0, 0)
-- Calcolo posizione estremo di riferimento della tavola rispetto a sua origine in BL
local OrigOnTab
local nCorner
if WD.ORIG_CORNER == 'TL' then
nCorner = MCH_CR.TL
OrigOnTab = Point3d( 0, b3Tab:getDimY(), 0)
elseif WD.ORIG_CORNER == 'BL' then
nCorner = MCH_CR.BL
OrigOnTab = Point3d(0, 0, 0)
elseif WD.ORIG_CORNER == 'TR' then
nCorner = MCH_CR.TR
OrigOnTab = Point3d( b3Tab:getDimX(), b3Tab:getDimY(), 0)
else -- 'BR'
nCorner = MCH_CR.BR
OrigOnTab = Point3d( b3Tab:getDimX(), 0, 0)
end
-- Impostazione dell'attrezzaggio di default
EgtImportSetup()
-- Creazione del grezzo e suo posizionamento in macchina
local nRaw = EgtAddRawPart( Point3d(0,0,0), dRawL, dRawW, dRawH, WD.RAWCOL)
EgtMoveToCornerRawPart( nRaw, WD.OriBR, MCH_CR.BR)
EgtMoveToCornerRawPart( nRaw, OrigOnTab, nCorner)
-- Inserimento dei pezzi nel grezzo
for i = 1, #vWall do
-- assegno identificativo pezzo
+7 -7
View File
@@ -1,4 +1,4 @@
-- Process.lua by Egaltech s.r.l. 2020/07/07
-- Process.lua by Egaltech s.r.l. 2020/11/13
-- Gestione calcolo disposizione e lavorazioni per Pareti
-- Si opera sulla macchina corrente
@@ -89,18 +89,18 @@ local function MyProcessInputData()
end
-- Ne recupero la posizione
local CurrX = 100
local CurrX = 50
for i = 1, #vWall do
local PosX = EgtGetInfo( vWall[i].Id, 'POSX', 'd')
if not PosX then PosX = CurrX end
vWall[i].PosX = PosX
CurrX = CurrX + vWall[i].Box:getDimX() + 50
local PosZ = EgtGetInfo( vWall[i].Id, 'POSZ', 'd') or 100
local PosZ = EgtGetInfo( vWall[i].Id, 'POSZ', 'd') or 50
vWall[i].PosZ = PosZ
end
-- Recupero informazione se progetto o produzione
local bProj = ( EgtGetInfo( EgtGetFirstNameInGroup( GDB_ID.ROOT, 'BtlInfo'), 'PROJECT', 'i') == 1)
local bProj = ( EgtGetInfo( EgtGetFirstNameInGroup( GDB_ID.ROOT, 'BtlInfo') or GDB_ID.NULL, 'PROJECT', 'i') == 1)
-- Eseguo eventuali rotazioni e inversioni testa-coda
for i = 1, #vWall do
@@ -154,7 +154,7 @@ local function MyProcessInputData()
table.remove( vWall, vWallErr[i])
end
EgtOutLog( sOut, 1)
EgtOutBox( sOut, 'Lavora Travi', 'INFO')
EgtOutBox( sOut, 'Lavora Pareti', 'INFO')
EgtDraw()
return false
end
@@ -256,11 +256,11 @@ local function MyProcessFeatures()
end
if #sOutput > 0 then EgtOutLog( sOutput) end
if nErrCnt > 0 then
EgtOutBox( sOutput, 'Lavora Travi', 'ERRORS')
EgtOutBox( sOutput, 'Lavora Pareti', 'ERRORS')
EgtDraw()
return false
elseif nWarnCnt > 0 then
EgtOutBox( sOutput, 'Lavora Travi', 'WARNINGS')
EgtOutBox( sOutput, 'Lavora Pareti', 'WARNINGS')
EgtDraw()
return true
end