From 0baa4968e52f9d73d6e6052dce524133c17e18e3 Mon Sep 17 00:00:00 2001 From: DarioS Date: Mon, 12 Jul 2021 12:29:54 +0200 Subject: [PATCH] DataWall : - modifiche per pareti a layer (aggiunta gestione quota parete in lavoro nel grezzo). --- BatchProcess.lua | 10 ++++++++-- LuaLibs/WallExec.lua | 5 +++-- Process.lua | 10 ++++++++-- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/BatchProcess.lua b/BatchProcess.lua index 0eb86a5..4b8ec23 100644 --- a/BatchProcess.lua +++ b/BatchProcess.lua @@ -1,4 +1,4 @@ --- BatchProcess.lua by Egaltech s.r.l. 2021/06/23 +-- BatchProcess.lua by Egaltech s.r.l. 2021/07/08 -- 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). @@ -269,6 +269,12 @@ if bToProcess then for i = 1, #vWall do local PosX = EgtGetInfo( vWall[i].Id, 'POSX', 'd') vWall[i].PosX = PosX + min( dExtraL, 1200) + if WD.USE_POSY then + local PosY = EgtGetInfo( vWall[i].Id, 'POSY', 'd') + vWall[i].PosY = max( PosY, 0) + else + vWall[i].PosY = 0 + end local PosZ = EgtGetInfo( vWall[i].Id, 'POSZ', 'd') vWall[i].PosZ = PosZ + dExtraW / 2 end @@ -330,7 +336,7 @@ if bToProcess then end -- Ne verifico le dimensioni - local dRawH = vWall[1].Box:getDimZ() + local dRawH = vWall[1].Box:getDimZ() + vWall[1].PosY local vWallErr = {} for i = 2, #vWall do local dDimH = vWall[i].Box:getDimZ() diff --git a/LuaLibs/WallExec.lua b/LuaLibs/WallExec.lua index cac67ec..d610c1a 100644 --- a/LuaLibs/WallExec.lua +++ b/LuaLibs/WallExec.lua @@ -1,4 +1,4 @@ --- WallExec.lua by Egaltech s.r.l. 2021/06/30 +-- WallExec.lua by Egaltech s.r.l. 2021/07/08 -- Libreria esecuzione lavorazioni per Pareti -- Tabella per definizione modulo @@ -107,7 +107,8 @@ function WallExec.ProcessWalls( dRawL, dRawW, dRawH, vWall, bMachGroupOk, bPartO if bPartOriBL then ptPos = Point3d( vWall[i].PosX, vWall[i].PosZ, ( dRawH - PartHeight) / 2) + vtOffs else - ptPos = Point3d( dRawL - vWall[i].PosX - PartLen, vWall[i].PosZ, ( dRawH - PartHeight) / 2) + vtOffs + local dPosH = EgtIf( vWall[i].PosY < 0.1, ( dRawH - PartHeight) / 2, vWall[i].PosY) + ptPos = Point3d( dRawL - vWall[i].PosX - PartLen, vWall[i].PosZ, dPosH) + vtOffs end EgtAddPartToRawPart( Pz, ptPos, nRaw) end diff --git a/Process.lua b/Process.lua index f16ee8b..31dcdf2 100644 --- a/Process.lua +++ b/Process.lua @@ -1,4 +1,4 @@ --- Process.lua by Egaltech s.r.l. 2021/06/23 +-- Process.lua by Egaltech s.r.l. 2021/07/08 -- Gestione calcolo disposizione e lavorazioni per Pareti -- Si opera sulla macchina corrente -- 2020/12/09 Come per BatchProcess.lua si gestiscono anche rotazioni di inversione con valori negativi. @@ -96,6 +96,12 @@ local function MyProcessInputData() if not PosX then PosX = CurrX end vWall[i].PosX = PosX CurrX = CurrX + vWall[i].Box:getDimX() + 50 + if WD.USE_POSY then + local PosY = EgtGetInfo( vWall[i].Id, 'POSY', 'd') + vWall[i].PosY = max( PosY, 0) + else + vWall[i].PosY = 0 + end local PosZ = EgtGetInfo( vWall[i].Id, 'POSZ', 'd') or 50 vWall[i].PosZ = PosZ end @@ -160,7 +166,7 @@ local function MyProcessInputData() end -- Ne verifico le dimensioni - dRawH = vWall[1].Box:getDimZ() + dRawH = vWall[1].Box:getDimZ() + vWall[1].PosY local vWallErr = {} for i = 2, #vWall do local dDimH = vWall[i].Box:getDimZ()