From c701d4132f1c7effaf88d93558b58d833de51913 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Tue, 28 Nov 2023 15:56:10 +0100 Subject: [PATCH] DataBeam : - in MakeTwo di FacesBySaw raffinamento calcolo vtRef per casi dubbi. --- LuaLibs/FacesBySaw.lua | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/LuaLibs/FacesBySaw.lua b/LuaLibs/FacesBySaw.lua index 5dcb405..9a18d4d 100644 --- a/LuaLibs/FacesBySaw.lua +++ b/LuaLibs/FacesBySaw.lua @@ -1,4 +1,4 @@ --- FacesBySaw.lua by Egaltech s.r.l. 2023/09/26 +-- FacesBySaw.lua by Egaltech s.r.l. 2023/11/28 -- Gestione taglio con lama di feature con una o due facce -- 2021/01/06 Cambiato limite per attacco Tg con lama e CalcLeadInOutGeom rinominata in CalcLeadInOutPerpGeom. -- 2021/02/03 In taglio lama si accettano anche due lati con deviazione minore di 20deg. @@ -20,6 +20,7 @@ -- 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 +-- 2023/11/28 In MakeTwo raffinamento calcolo vtRef per casi dubbi. -- Tabella per definizione modulo local FacesBySaw = {} @@ -191,6 +192,7 @@ function FacesBySaw.MakeOne( nSurfId, nFacet, sCutting, dSawDiam, Par5, dVzLimDw nOrthoOpposite = Par5 vtOrthO = BL.GetVersRef( Par5) end + EgtOutLog( 'VtOrthO='..tostring( vtOrthO)..' FaceUse='..tostring( nOrthoOpposite), 1) -- verifico se testa da sotto oppure se lavorazione sotto con testa da sopra if not dVzLimDwnUp then dVzLimDwnUp = BL.GetNzLimDownUp( b3Raw, vtN, vtOrthO) end local bDownHead = ( dVzLimDwnUp and dVzLimDwnUp < - 1.5) @@ -485,14 +487,14 @@ function FacesBySaw.MakeTwo( Proc, nPhase, nRawId, nPartId, dOvmHead, sCutType, vtRef[1] = vtN[1] ^ vtTg if vtRef[1] * vtN[2] < 0 then vtRef[1] = - vtRef[1] end vtRef[1]:normalize() - if abs( vtTg:getZ()) < 0.708 and abs( vtRef[1]:getZ()) < 0.577 and abs( abs( vtRef[1]:getX()) - abs( vtRef[1]:getY())) < 0.1 then + if abs( vtTg:getZ()) < 0.708 and abs( vtRef[1]:getZ()) < 0.577 and abs( abs( vtRef[1]:getX()) - abs( vtRef[1]:getY())) < 0.05 then vtRef[1] = ptC[1] - ptM vtRef[1]:normalize() end vtRef[2] = vtN[2] ^ vtTg if vtRef[2] * vtN[1] < 0 then vtRef[2] = - vtRef[2] end vtRef[2]:normalize() - if abs( vtTg:getZ()) < 0.708 and abs( vtRef[2]:getZ()) < 0.577 and abs( abs( vtRef[2]:getX()) - abs( vtRef[2]:getY())) < 0.1 then + if abs( vtTg:getZ()) < 0.708 and abs( vtRef[2]:getZ()) < 0.577 and abs( abs( vtRef[2]:getX()) - abs( vtRef[2]:getY())) < 0.05 then vtRef[2] = ptC[2] - ptM vtRef[2]:normalize() end @@ -549,6 +551,7 @@ function FacesBySaw.MakeTwo( Proc, nPhase, nRawId, nPartId, dOvmHead, sCutType, local vCuts = DC.GetDice( nAddGrpId, b3Solid, ptC[nUpInd], vtN[nUpInd], false, ptC[nOtInd], vtN[nOtInd]) --DC.PrintOrderCut( vCuts) if #vCuts > 0 then + EgtOutLog( 'FacesBySaw.MakeTwo', 4) -- sistemo posizione nel DB, nome e info for i = 1, #vCuts do for j = 1, #vCuts[i] do