From 80c5035c744563240578d057af53ef7f5babb35e Mon Sep 17 00:00:00 2001 From: "andrea.villa" Date: Wed, 3 Sep 2025 10:28:53 +0200 Subject: [PATCH] =?UTF-8?q?#HOTFIX#=20Passaggio=20finitura=20tenone=20P14>?= =?UTF-8?q?0=20-=20Corretto=20calcolo=20FaceUse=20-=20Si=20cicla=20sulle?= =?UTF-8?q?=20ultime=205=20facce=20anzich=C3=A9=20solo=20ultima?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LuaLibs/ProcessDtTenon.lua | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/LuaLibs/ProcessDtTenon.lua b/LuaLibs/ProcessDtTenon.lua index 8bc0068..d8339ad 100644 --- a/LuaLibs/ProcessDtTenon.lua +++ b/LuaLibs/ProcessDtTenon.lua @@ -353,8 +353,15 @@ function ProcessDtTenon.Make( Proc, nPhase, nRawId, nPartId, dOvmHead) end end + -- si controllano le ultime 5 facce della feature + local nIndFace = -1 + for i = 1, 5 do + if abs( vtExtr * EgtSurfTmFacetNormVersor( Proc.Id, Proc.Fct-i, GDB_ID.ROOT)) < GEO.EPS_ANG_SMALL then + nIndFace = Proc.Fct-i + end + end -- controllo se serve passaggio di finitura in caso il tenone non cominci dal bordo della trave (P14 > 0) - if abs( vtExtr * EgtSurfTmFacetNormVersor( Proc.Id, Proc.Fct-1, GDB_ID.ROOT)) < GEO.EPS_ANG_SMALL then + if nIndFace > 0 then -- verifico se almeno uno dei punti iniziale e finale della curva giace in uno dei piani limite del pezzo, quindi se รจ un lato aperto local bOpen = false local ptIni = EgtSP( AuxId, GDB_RT.GLOB) @@ -396,7 +403,7 @@ function ProcessDtTenon.Make( Proc, nPhase, nRawId, nPartId, dOvmHead) return false, sErr end -- aggiungo geometria - EgtSetMachiningGeometry( {{ Proc.Id, Proc.Fct-1}}) + EgtSetMachiningGeometry( {{ Proc.Id, nIndFace}}) -- sistemo i parametri EgtSetMachiningParam( MCH_MP.DEPTH_STR, 'TH') -- sistemo il lato e la direzione di lavoro @@ -407,10 +414,14 @@ function ProcessDtTenon.Make( Proc, nPhase, nRawId, nPartId, dOvmHead) EgtSetMachiningParam( MCH_MP.LOTANG, 0.7 * dTDiam) EgtSetMachiningParam( MCH_MP.LOPERP, 20) - local nOrthoOpposite = BL.GetNearestParalOpposite( vtExtr, vtExtr) - -- imposto utilizzo faccia - EgtSetMachiningParam( MCH_MP.FACEUSE, nOrthoOpposite) - + local nFaceUse + if vtExtr:getX() > -GEO.EPS_SMALL then + nFaceUse = MCH_MILL_FU.PARAL_LEFT + else + nFaceUse = MCH_MILL_FU.PARAL_RIGHT + end + EgtSetMachiningParam( MCH_MP.FACEUSE, nFaceUse) + -- imposto elevazione local sUserNotes = EgtSetVal( 'MaxElev', EgtNumToString( dDtTenH, 1)) .. ';' EgtSetMachiningParam( MCH_MP.USERNOTES, sUserNotes) @@ -430,6 +441,12 @@ function ProcessDtTenon.Make( Proc, nPhase, nRawId, nPartId, dOvmHead) end end EgtSetMachiningParam( MCH_MP.SCC, nSCC) + -- eseguo + if not ML.ApplyMachining( true, false) then + local _, sErr = EgtGetLastMachMgrError() + EgtSetOperationMode( nMchFId, false) + return false, sErr + end end end end