From 0984e9a0172ef10f03b77c57b25a7cfd6942b1d4 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Tue, 30 Mar 2021 08:07:10 +0000 Subject: [PATCH] DataWall : - correzioni per rotazioni e inversioni pareti - corretto posizionamento parete nel grezzo (gestita differenza tra ingombro pezzo a ingombro solido) - nailing con indici minori di 10 vengono incrementati di 10 (provvisorio per macchina PodBau). --- BatchProcess.lua | 4 ++++ LuaLibs/WProcessFreeContour.lua | 3 +++ LuaLibs/WallExec.lua | 5 +++-- Process.lua | 4 ++++ 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/BatchProcess.lua b/BatchProcess.lua index 1040de1..efa8a94 100644 --- a/BatchProcess.lua +++ b/BatchProcess.lua @@ -313,6 +313,10 @@ if bToProcess then vWall[i].PosZ = vWall[i].PosZ - vWall[i].Box:getDimY() elseif abs( dRotAng - 180) < GEO.EPS_ANG_SMALL or abs( dRotAng + 180) < GEO.EPS_ANG_SMALL then vWall[i].PosX = vWall[i].PosX + vWall[i].Box:getDimX() + elseif abs( dRotAng - 270) < GEO.EPS_ANG_SMALL or abs( dRotAng + 90) < GEO.EPS_ANG_SMALL then + vWall[i].PosX = vWall[i].PosX + vWall[i].Box:getDimX() + elseif abs( dRotAng - 90) < GEO.EPS_ANG_SMALL or abs( dRotAng + 270) < GEO.EPS_ANG_SMALL then + vWall[i].PosX = vWall[i].PosX + vWall[i].Box:getDimX() end elseif abs( dInvAng - 270) < GEO.EPS_ANG_SMALL or abs( dInvAng + 90) < GEO.EPS_ANG_SMALL then if abs( dRotAng - 0) < GEO.EPS_ANG_SMALL then diff --git a/LuaLibs/WProcessFreeContour.lua b/LuaLibs/WProcessFreeContour.lua index 6a68dbe..98507c9 100644 --- a/LuaLibs/WProcessFreeContour.lua +++ b/LuaLibs/WProcessFreeContour.lua @@ -1763,6 +1763,9 @@ local function MakeByNail( Proc, nRawId, b3Raw) local b3Aux = EgtGetBBoxGlob( AuxId, GDB_BB.STANDARD) local bToolInv = ( vtExtr:getZ() < -0.1) local nCntData = EgtGetInfo( Proc.Id, 'CNT_DATA', 'i') or 0 + if nCntData < 10 then + nCntData = nCntData + 10 + end local dCntPar = EgtGetInfo( Proc.Id, 'CNT_PAR', 'd') or 100 -- recupero la lavorazione local sNailing = WM.FindNailing( nCntData) diff --git a/LuaLibs/WallExec.lua b/LuaLibs/WallExec.lua index 5e42848..f55ae86 100644 --- a/LuaLibs/WallExec.lua +++ b/LuaLibs/WallExec.lua @@ -83,6 +83,7 @@ function WallExec.ProcessWalls( dRawL, dRawW, dRawH, vWall, bMachGroupOk, bPartO local PartLen = b3Solid:getDimX() local PartWidth = b3Solid:getDimY() local PartHeight = b3Solid:getDimZ() + local vtOffs = b3Part:getMin() - b3Solid:getMin() -- creo o pulisco gruppo geometrie aggiuntive if not WL.CreateOrEmptyAddGroup( Pz) then local sOut = 'Error creating Additional Group in Part ' .. tostring( Pz) @@ -92,9 +93,9 @@ function WallExec.ProcessWalls( dRawL, dRawW, dRawH, vWall, bMachGroupOk, bPartO EgtDeselectPartObjs( Pz) local ptPos if bPartOriBL then - ptPos = Point3d( vWall[i].PosX, vWall[i].PosZ, ( dRawH - PartHeight) / 2) + 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) + ptPos = Point3d( dRawL - vWall[i].PosX - PartLen, vWall[i].PosZ, ( dRawH - PartHeight) / 2) + vtOffs end EgtAddPartToRawPart( Pz, ptPos, nRaw) end diff --git a/Process.lua b/Process.lua index 9df416c..6a7241a 100644 --- a/Process.lua +++ b/Process.lua @@ -143,6 +143,10 @@ local function MyProcessInputData() vWall[i].PosZ = vWall[i].PosZ - vWall[i].Box:getDimY() elseif abs( dRotAng - 180) < GEO.EPS_ANG_SMALL or abs( dRotAng + 180) < GEO.EPS_ANG_SMALL then vWall[i].PosX = vWall[i].PosX + vWall[i].Box:getDimX() + elseif abs( dRotAng - 270) < GEO.EPS_ANG_SMALL or abs( dRotAng + 90) < GEO.EPS_ANG_SMALL then + vWall[i].PosX = vWall[i].PosX + vWall[i].Box:getDimX() + elseif abs( dRotAng - 90) < GEO.EPS_ANG_SMALL or abs( dRotAng + 270) < GEO.EPS_ANG_SMALL then + vWall[i].PosX = vWall[i].PosX + vWall[i].Box:getDimX() end elseif abs( dInvAng - 270) < GEO.EPS_ANG_SMALL or abs( dInvAng + 90) < GEO.EPS_ANG_SMALL then if abs( dRotAng - 0) < GEO.EPS_ANG_SMALL then