From 993a0228949dedcea07d80bab1d0cf6582f40c8a Mon Sep 17 00:00:00 2001 From: "daniele.nicoli" Date: Thu, 19 Feb 2026 15:55:36 +0100 Subject: [PATCH 1/3] In LapJoint aggiunta gestione lato aperto in feature lunghe spezzate --- LuaLibs/ProcessLapJoint.lua | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/LuaLibs/ProcessLapJoint.lua b/LuaLibs/ProcessLapJoint.lua index 81935ed..1a15e11 100644 --- a/LuaLibs/ProcessLapJoint.lua +++ b/LuaLibs/ProcessLapJoint.lua @@ -3537,7 +3537,11 @@ local function MakePocket( Proc, nPartId, b3Solid, ptPs, tvtN, nFaceRef, sMchFin return false, sErr end -- aggiungo geometria - EgtSetMachiningGeometry( {{ Proc.Id, (nFaceRef)}}) + if Proc.LoopIdFacInd then + EgtSetMachiningGeometry( { Proc.LoopIdFacInd}) + else + EgtSetMachiningGeometry( {{ Proc.Id, (nFaceRef)}}) + end -- imposto uso faccia EgtSetMachiningParam( MCH_MP.FACEUSE, MCH_MILL_FU.ORTHO_CONT) -- imposto posizione braccio porta testa @@ -7235,6 +7239,11 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa nUseRoughTool = 1 end end + -- se presente curva da lavorare con lato aperto + if Proc.LoopIdFacInd and ( EgtGetInfo( Proc.LoopIdFacInd, 'OPEN', 'i') or -1) > -1 then + sMchFind = 'OpenPocket' + nUseRoughTool = 0 + end -- se abilitato rinvio da sotto if bLapJointAngTrasm then if not EgtEndsWith( sMchFind, '_AT') then @@ -8007,9 +8016,27 @@ local function MakeLongMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead) local bPrevBhSideMill for i = 1, #vAddId do local b3Box = EgtGetBBoxGlob( vAddId[i], GDB_BB.STANDARD) - local nFct = EgtSurfTmFacetCount( vAddId[i]) + local nFct = EgtSurfTmFacetCount( vAddId[i]) local AddProc = { Id = vAddId[i], Grp = Proc.Grp, Prc = Proc.Prc, Box = b3Box, TotBox = Proc.Box, Fct = nFct, Flg = Proc.Flg, PartId = Proc.PartId, TaskId = Proc.TaskId, FeatureId = Proc.FeatureId, IsSplittedLapJoint = true, AffectedFaces = Proc.AffectedFaces, OkFromBottom = Proc.OkFromBottom} Topology.Classify( AddProc, b3Raw) + + + if i > 1 and + ( ( Proc.Topology == 'Groove' and Proc.IsThrough and Proc.Fct == 3 and Proc.AffectedFaces.Left and Proc.AffectedFaces.Right) + or ( Proc.Topology == 'Groove' and Proc.Fct == 4 and ( Proc.AffectedFaces.Left or Proc.AffectedFaces.Right)) + or Proc.Topology == 'Pocket') then + local nFacInd = BL.GetFaceWithMostAdj( AddProc, nPartId) + if type( nFacInd) == "number" and nFacInd >= 0 then + local nLoopId, nLoopCnt = EgtExtractSurfTmFacetLoops( vAddId[i], nFacInd, nAddGrpId) + if nLoopId and nLoopCnt == 1 then + local nEdgeId = BL.GetEdgeToMachineFromVector( vAddId[i], nFacInd, -X_AX()) + EgtSetInfo( nLoopId, 'OPEN', nEdgeId) + AddProc.LoopIdFacInd = nLoopId + end + end + end + + -- lasciare il false nel sesto parametro (perchè internamente viene verificato se diverso da nil) local bOk, sMyWarn bOk, sMyWarn, bPrevBhSideMill = MakeMoreFaces( AddProc, nPhase, nRawId, nPartId, dOvmHead, bAllWithEndCap, bPrevBhSideMill, bAllWithEndCap) From f52bf933a15c03d6e2c19caf56c23e58ebc9255c Mon Sep 17 00:00:00 2001 From: "daniele.nicoli" Date: Thu, 19 Feb 2026 16:54:15 +0100 Subject: [PATCH 2/3] Aggiornamento Versione minima Cam5 --- Version.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Version.lua b/Version.lua index 8f921ab..9cc5dfb 100644 --- a/Version.lua +++ b/Version.lua @@ -3,4 +3,4 @@ NAME = 'Beam' VERSION = '3.1a1' -MIN_EXE = '2.7f2' +MIN_EXE = '3.1a4' From 2c3aaf01dcb33a79c3777a8179c67a9c6c448b57 Mon Sep 17 00:00:00 2001 From: "daniele.nicoli" Date: Fri, 20 Feb 2026 10:02:34 +0100 Subject: [PATCH 3/3] In ProcessLapJoint : - Eliminata forzatura ZigZag per tasche strette e utensili < 90 - Forzato OpenOutRaw se ce l'apertura sulla curva --- LuaLibs/ProcessLapJoint.lua | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/LuaLibs/ProcessLapJoint.lua b/LuaLibs/ProcessLapJoint.lua index 1a15e11..128ad47 100644 --- a/LuaLibs/ProcessLapJoint.lua +++ b/LuaLibs/ProcessLapJoint.lua @@ -3575,8 +3575,6 @@ local function MakePocket( Proc, nPartId, b3Solid, ptPs, tvtN, nFaceRef, sMchFin local _, dH, dV = EgtSurfTmFacetMinAreaRectangle( Proc.Id, nFaceRef, GDB_ID.ROOT) local bL = ( Proc.Fct < 4 or TestElleShape4( Proc) == 2) if bL and min( dH, dV) < 1.5 * dDiamTool then - EgtSetMachiningParam( MCH_MP.SUBTYPE, MCH_POCK_SUB.ZIGZAG) - EgtSetMachiningParam( MCH_MP.INVERT, false) if not bTipMill then EgtSetMachiningParam( MCH_MP.LEADINTYPE, MCH_POCK_LI.HELIX) EgtSetMachiningParam( MCH_MP.LITANG, dDiamTool) @@ -3601,7 +3599,7 @@ local function MakePocket( Proc, nPartId, b3Solid, ptPs, tvtN, nFaceRef, sMchFin local sUserNotes = EgtGetMachiningParam( MCH_MP.USERNOTES) or '' sUserNotes = EgtSetValInNotes( sUserNotes, 'MaxElev', EgtNumToString( dElev, 1)) sUserNotes = EgtSetValInNotes( sUserNotes, 'VMRS', 0) - if bOpenOutRaw then + if bOpenOutRaw or ( Proc.LoopIdFacInd and ( EgtGetInfo( Proc.LoopIdFacInd, 'OPEN', 'i') or -1) > -1) then sUserNotes = EgtSetValInNotes( sUserNotes, 'OpenOutRaw', 1) end EgtSetMachiningParam( MCH_MP.USERNOTES, sUserNotes)