From a239a096cd0e070bac3d8a56e77ad2b3e9d9e167 Mon Sep 17 00:00:00 2001 From: "andrea.villa" Date: Tue, 14 Nov 2023 12:22:25 +0100 Subject: [PATCH 1/2] FacesBySaw : In MakeOne migliorato calcolo scelta soluzione lama ( per macchina TURN) --- LuaLibs/FacesBySaw.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/LuaLibs/FacesBySaw.lua b/LuaLibs/FacesBySaw.lua index aec4327..5dcb405 100644 --- a/LuaLibs/FacesBySaw.lua +++ b/LuaLibs/FacesBySaw.lua @@ -19,6 +19,7 @@ -- 2023/06/14 Aggiunta MakeParallelOne e tolti parametri nForceWorkSide, nForceSCC da MakeOne. -- 2023/09/26 Piccola modifica per Turn su bInvert di MakeOne. -- 2023/10/24 In MakeOne migliorata gestione taglio con percorso bilinea. Aggiunta funzione GetNameSolidFaceIncludingLine. +-- 2023/11/14 In MakeOne migliorato calcolo scelta soluzione per macchina TURN -- Tabella per definizione modulo local FacesBySaw = {} @@ -371,7 +372,10 @@ function FacesBySaw.MakeOne( nSurfId, nFacet, sCutting, dSawDiam, Par5, dVzLimDw --local vtTest = EgtIf( bInvert, vtTg, -vtTg) local vtTest = -vtTg if abs( vtTest:getY()) > abs( vtTest:getZ()) then - nSCC = EgtIf( vtTest:getY() > 0, MCH_SCC.ADIR_YP, MCH_SCC.ADIR_YM) + -- calcolo direzione risultante da versore utensile e direzione di lavorazione inverso + -- se la risultante tende verso Y positiva, scelgo soluzione dietro + local vtRes = vtTest + vtAux ; vtRes:normalize() + nSCC = EgtIf( vtRes:getY() > 0, MCH_SCC.ADIR_YP, MCH_SCC.ADIR_YM) else nSCC = EgtIf( vtTest:getZ() > 0, MCH_SCC.ADIR_ZP, MCH_SCC.ADIR_ZM) end From 24e38cdad540c90b3616bdb8282dd6ff2ba92d11 Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Wed, 15 Nov 2023 12:26:08 +0100 Subject: [PATCH 2/2] in lapjoint modifiche a MakeStaircaseStep --- LuaLibs/ProcessLapJoint.lua | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/LuaLibs/ProcessLapJoint.lua b/LuaLibs/ProcessLapJoint.lua index c24ff45..7d23c74 100644 --- a/LuaLibs/ProcessLapJoint.lua +++ b/LuaLibs/ProcessLapJoint.lua @@ -5692,8 +5692,8 @@ local function MakeStaircaseStep( Proc, nRawId, b3Raw, nPartId) end -- angolo tra le facce local _, _, _, dAng = EgtSurfTmFacetsContact( Proc.Id, 0, 1, GDB_ID.ROOT) - -- l'angolo tra le facce deve essere compreso tra 80 e 90.5 deg - if ( dAng > -89.5 + 10 * GEO.EPS_ANG_SMALL) or ( dAng < -100 - 10 * GEO.EPS_ANG_SMALL) then return false end + -- l'angolo tra le facce deve essere compreso tra 80 e 95 deg + if ( dAng > -85 + 10 * GEO.EPS_ANG_SMALL) or ( dAng < -100 - 10 * GEO.EPS_ANG_SMALL) then return false end -- normali delle facce local vtNRiser = EgtSurfTmFacetNormVersor( Proc.Id, 0, GDB_ID.ROOT) local vtNTread = EgtSurfTmFacetNormVersor( Proc.Id, 1, GDB_ID.ROOT) @@ -5860,15 +5860,9 @@ local function MakeStaircaseStep( Proc, nRawId, b3Raw, nPartId) -- taglio di lama dell'alzata -- calcolo faceuse local nFaceUseRiser = EgtIf( vtNRiser * Z_AX() > -GEO.EPS_SMALL, MCH_MILL_FU.ORTHO_DOWN, MCH_MILL_FU.ORTHO_TOP) - -- divido in passate orizzontali - local nSawStepsRiser = ceil( ( dVRiser - 100 * GEO.EPS_SMALL) / ( dSawMaxDepth * 0.6)) - local dSawStepRiser = 0 - if nSawStepsRiser > 1 then - dSawStepRiser = ( dVRiser - ( dSawMaxDepth * 0.6)) / ( nSawStepsRiser - 1) - end -- lavorazioni della faccia - for i = nSawStepsRiser, 1, -1 do - local dCutRadialOffsetRiser = - dSawStepRiser * ( i - 1) + for i = 2, 1, -1 do + local dCutRadialOffsetRiser = - dVRiser / 2 * ( i - 1) -- componente limite del vettore Z per lama downUp; impostata a -2 per non farla mai rientrare in quel caso local dVzLimDwnUp = -2 local bOkSawRiser, sErr = Fbs.MakeOne( Proc.Id, nFacetRiser, sCutting, dSawDiam, nFaceUseRiser, dVzLimDwnUp, dCutRadialOffsetRiser + dCutExtraSaw, 0, 0, 0, 0, nil, b3Raw)