From f9439199aeaed283ba27107430230b30a2974370 Mon Sep 17 00:00:00 2001 From: DarioS Date: Mon, 16 May 2022 07:55:26 +0200 Subject: [PATCH] DataBeam : - modifiche per macchina Turn. --- LuaLibs/FacesBySaw.lua | 8 ++++++-- LuaLibs/ProcessLongDoubleCut.lua | 14 +++++++++++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/LuaLibs/FacesBySaw.lua b/LuaLibs/FacesBySaw.lua index 102f8ff..140c65b 100644 --- a/LuaLibs/FacesBySaw.lua +++ b/LuaLibs/FacesBySaw.lua @@ -149,8 +149,12 @@ function FacesBySaw.MakeOne( nSurfId, nFacet, sCutting, dSawDiam, Par5, dVzLimDw nSCC = EgtIf( ( vtAux:getY() > -GEO.EPS_SMALL), MCH_SCC.ADIR_YP, MCH_SCC.ADIR_YM) end else - if abs( vtOut:getY()) > abs( vtOut:getZ()) then - nSCC = EgtIf( ( vtAux:getY() > -GEO.EPS_SMALL), MCH_SCC.ADIR_YP, MCH_SCC.ADIR_YM) + if abs( vtN:getZ()) > GEO.EPS_SMALL then + if dLiPerp > 10 * GEO.EPS_SMALL or dLoPerp > 10 * GEO.EPS_SMALL then + nSCC = EgtIf( ( vtOut:getY() > -GEO.EPS_SMALL), MCH_SCC.ADIR_YP, MCH_SCC.ADIR_YM) + else + nSCC = MCH_SCC.ADIR_YP + end else nSCC = MCH_SCC.ADIR_ZP end diff --git a/LuaLibs/ProcessLongDoubleCut.lua b/LuaLibs/ProcessLongDoubleCut.lua index 86342ff..d2b425a 100644 --- a/LuaLibs/ProcessLongDoubleCut.lua +++ b/LuaLibs/ProcessLongDoubleCut.lua @@ -855,7 +855,7 @@ function ProcessLong2Cut.Make( Proc, nPhase, nRawId, nPartId, bForcedBladeMaster end -- se non è sotto e non uso fresa di fianco: lavorazione Long2Cut - elseif ( ( nSide ~= -1 or BD.DOWN_HEAD) or ( nSide == -1 and BD.DOWN_HEAD)) and nUseMillOnSide == 0 then + elseif ( nSide ~= -1 or BD.DOWN_HEAD or BD.TURN) and nUseMillOnSide == 0 then -- determino la massima elevazione local dElev = 0 local dFacElev1 = BL.GetFaceElevation( Proc.Id, tFaceLong[1], nPartId) @@ -1025,7 +1025,7 @@ function ProcessLong2Cut.Make( Proc, nPhase, nRawId, nPartId, bForcedBladeMaster -- valore sovrapposizione tra passate con fresa di fianco local dOverLapExtend = 2 -- Verifico se da fare di fianco perchè normale troppo verso il basso (minore di -30deg) - local bSide = ( vtN[vOrd[i]]:getZ() < dLimitAngle and not ( nSide == -1 and BD.DOWN_HEAD)) + local bSide = ( vtN[vOrd[i]]:getZ() < dLimitAngle and not ( nSide == -1 and ( BD.DOWN_HEAD or BD.TURN))) -- Limitazioni della lavorazione local nPos = EgtIf( i == 1, j, nC - j + 1) local dSal = EgtIf( nPos == 1, - EgtIf( i == nIni, dStartDist, dEndDist), - EgtIf( i == nIni, dStartAccDist, dEndAccDist) - ( nPos - 2) * dC + EgtIf( bSide, dOverLapExtend, 0)) @@ -1033,7 +1033,15 @@ function ProcessLong2Cut.Make( Proc, nPhase, nRawId, nPartId, bForcedBladeMaster -- Posizione braccio portatesta local nSCC = MCH_SCC.NONE if not BD.C_SIMM then - nSCC = EgtIf( ( j == 1 or j == nC - 1), MCH_SCC.ADIR_XP, MCH_SCC.ADIR_XM) + if not BD.TURN then + nSCC = EgtIf( ( j == 1 or j == nC - 1), MCH_SCC.ADIR_XP, MCH_SCC.ADIR_XM) + else + if vtN[vOrd[i]]:getY() < -0.1 then + nSCC = MCH_SCC.ADIR_YM + else + nSCC = MCH_SCC.ADIR_YP + end + end end if bSide and not bConvex then dSal, dEal = dEal, dSal