From cd0d0fe1c9720ef511cfecb627a55a5062025dab Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Sat, 14 Nov 2020 08:26:05 +0000 Subject: [PATCH] =?UTF-8?q?DataWall=20:=20-=20aggiunta=20possibilit=C3=A0?= =?UTF-8?q?=20di=20posizionare=20i=20pezzi=20nei=20quattro=20angoli=20dell?= =?UTF-8?q?a=20tavola=20(da=20WD.ORIG=5FCORNER=20con=20valori=20BL,TL,BR,T?= =?UTF-8?q?R)=20-=20corretta=20classificazione=20Tagli=20con=20Lama.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LuaLibs/WProcessCut.lua | 4 ++-- LuaLibs/WallExec.lua | 22 ++++++++++++++++++---- Process.lua | 14 +++++++------- 3 files changed, 27 insertions(+), 13 deletions(-) diff --git a/LuaLibs/WProcessCut.lua b/LuaLibs/WProcessCut.lua index 489fbbd..6d3d000 100644 --- a/LuaLibs/WProcessCut.lua +++ b/LuaLibs/WProcessCut.lua @@ -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 diff --git a/LuaLibs/WallExec.lua b/LuaLibs/WallExec.lua index 1db2309..929f3c1 100644 --- a/LuaLibs/WallExec.lua +++ b/LuaLibs/WallExec.lua @@ -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 diff --git a/Process.lua b/Process.lua index cf80afe..aa83447 100644 --- a/Process.lua +++ b/Process.lua @@ -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