From 0c7a7daba47f0c0e13daf8a5ed88491832e49321 Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Tue, 28 Oct 2025 12:56:12 +0100 Subject: [PATCH 1/4] update log e version --- UpdateLog.txt | 7 +++++++ Version.lua | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/UpdateLog.txt b/UpdateLog.txt index f08e0ac..d8e23cf 100644 --- a/UpdateLog.txt +++ b/UpdateLog.txt @@ -1,5 +1,12 @@ ==== Beam Update Log ==== +Versione 2.7j1 (28/10/2025) +- Modif : migliorato ordinamento feature +- Modif : in mortasa si considera ora il raggio minimo impostato da parametro P +- Modif : migliorie in tenone a coda di rondine +- Fixed : in mortasa corretto percorso errato in caso di diametro utensile uguale a larghezza tasca +- Fixed : in profilo cambered (103) gestito correttamente inverti in lavorazione + Versione 2.7i2 (30/09/2025) - Modif : migliorie a mortasa e tenone a coda di rondine - Modif : migliorie a LongDoubleCut diff --git a/Version.lua b/Version.lua index e0717d7..671a097 100644 --- a/Version.lua +++ b/Version.lua @@ -2,5 +2,5 @@ -- Gestione della versione di Beam NAME = 'Beam' -VERSION = '2.7i2' +VERSION = '2.7j1' MIN_EXE = '2.7f2' From d79151c1d37da7a16bb9beb7a5d10ac220ca4e2c Mon Sep 17 00:00:00 2001 From: "andrea.villa" Date: Thu, 30 Oct 2025 12:38:23 +0100 Subject: [PATCH 2/4] =?UTF-8?q?in=20DoubleCut,=20gestione=20feature=20con?= =?UTF-8?q?=20pi=C3=B9=20di=20due=20facce=20(caso=20insolito)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LuaLibs/ProcessDoubleCut.lua | 37 +++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/LuaLibs/ProcessDoubleCut.lua b/LuaLibs/ProcessDoubleCut.lua index 6635955..dcca062 100644 --- a/LuaLibs/ProcessDoubleCut.lua +++ b/LuaLibs/ProcessDoubleCut.lua @@ -475,13 +475,36 @@ function ProcessDoubleCut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead) -- dati delle facce local ptC = {} local vtN = {} - ptC[1], vtN[1] = EgtSurfTmFacetCenter( Proc.Id, 0, GDB_ID.ROOT) - ptC[2], vtN[2] = EgtSurfTmFacetCenter( Proc.Id, 1, GDB_ID.ROOT) + local idFirstFace, idSecondFace + + -- se ci sono più di due face (caso insolito), si prendono le facce più grandi + if Proc.Fct > 2 then + local Area = {} + -- si prendono le due più grandi, potrebbero essercene più di due + for i = 1, Proc.Fct do + local _, dL, dW = EgtSurfTmFacetMinAreaRectangle( Proc.Id, i - 1) + table.insert( Area, { nIndex = i-1, dArea = dL*dW}) + end + -- ordina 'Area' in ordine decrescente + table.sort( Area, function( A, B) + return A.dArea > B.dArea + end + ) + idFirstFace = Area[1].nIndex + idSecondFace = Area[2].nIndex + else + idFirstFace = 0 + idSecondFace = 1 + end + + ptC[1], vtN[1] = EgtSurfTmFacetCenter( Proc.Id, idFirstFace, GDB_ID.ROOT) + ptC[2], vtN[2] = EgtSurfTmFacetCenter( Proc.Id, idSecondFace, GDB_ID.ROOT) + -- normale media per capire se taglio di testa o di coda local vtNm = ( vtN[1] + vtN[2]) ; vtNm:normalize() local bHead = ( vtNm:getX() > 0) -- angolo diedro per stabilire se taglio convesso - local bAdj, ptP1, ptP2, dAng = EgtSurfTmFacetsContact( Proc.Id, 0, 1, GDB_ID.ROOT) + local bAdj, ptP1, ptP2, dAng = EgtSurfTmFacetsContact( Proc.Id, idFirstFace, idSecondFace, GDB_ID.ROOT) local bConvex = true local bOnY = true local ptPs = ( ptC[1] + ptC[2]) / 2 @@ -492,8 +515,8 @@ function ProcessDoubleCut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead) bConvex = ( dAng > 0) end -- determino quale faccia è più grande - local _, dB1, dH1 = EgtSurfTmFacetMinAreaRectangle( Proc.Id, 0) - local _, dB2, dH2 = EgtSurfTmFacetMinAreaRectangle( Proc.Id, 1) + local _, dB1, dH1 = EgtSurfTmFacetMinAreaRectangle( Proc.Id, idFirstFace) + local _, dB2, dH2 = EgtSurfTmFacetMinAreaRectangle( Proc.Id, idSecondFace) local nBigInd = EgtIf( dB1 * dH1 >= dB2 * dH2, 1, 2) local nSmaInd = 3 - nBigInd -- inserimento smussi @@ -560,8 +583,8 @@ function ProcessDoubleCut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead) dMaxDepth = EgtTdbGetCurrToolMaxDepth() or dMaxDepth end end - local _, _, dDimV1 = BL.GetFaceHvRefDim( Proc.Id, 0, b3Raw) - local _, _, dDimV2 = BL.GetFaceHvRefDim( Proc.Id, 1, b3Raw) + local _, _, dDimV1 = BL.GetFaceHvRefDim( Proc.Id, idFirstFace, b3Raw) + local _, _, dDimV2 = BL.GetFaceHvRefDim( Proc.Id, idSecondFace, b3Raw) local bFace1TooLongForBlade, bFace2TooLongForBlade = ( dDimV1 >= dMaxDepth), ( dDimV2 >= dMaxDepth) local dFace1Ang, dFace2Ang = vtN[1]:getZ(), vtN[2]:getZ() if bFace1TooLongForBlade and dFace1Ang < ( BD.CUT_VZ_MIN or -0.484) or bFace2TooLongForBlade and dFace2Ang < ( BD.CUT_VZ_MIN or -0.484) then From d862e8a2c517b83a1a69793dbee6ed4a9f455218 Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Thu, 30 Oct 2025 15:54:38 +0100 Subject: [PATCH 3/4] update log --- UpdateLog.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/UpdateLog.txt b/UpdateLog.txt index d8e23cf..452d8d7 100644 --- a/UpdateLog.txt +++ b/UpdateLog.txt @@ -6,6 +6,7 @@ Versione 2.7j1 (28/10/2025) - Modif : migliorie in tenone a coda di rondine - Fixed : in mortasa corretto percorso errato in caso di diametro utensile uguale a larghezza tasca - Fixed : in profilo cambered (103) gestito correttamente inverti in lavorazione +- Fixed : in DoubleCut gestito il caso in cui si ha una terza faccia piccola da non lavorare Versione 2.7i2 (30/09/2025) - Modif : migliorie a mortasa e tenone a coda di rondine From 93e92da027cde9a21a4dc5cc4e5777f4e7b324d7 Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Thu, 30 Oct 2025 15:55:41 +0100 Subject: [PATCH 4/4] update log e version --- UpdateLog.txt | 4 +++- Version.lua | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/UpdateLog.txt b/UpdateLog.txt index 452d8d7..1108c23 100644 --- a/UpdateLog.txt +++ b/UpdateLog.txt @@ -1,12 +1,14 @@ ==== Beam Update Log ==== +Versione 2.7j2 (30/10/2025) +- Fixed : in DoubleCut gestito il caso in cui si ha una terza faccia piccola da non lavorare + Versione 2.7j1 (28/10/2025) - Modif : migliorato ordinamento feature - Modif : in mortasa si considera ora il raggio minimo impostato da parametro P - Modif : migliorie in tenone a coda di rondine - Fixed : in mortasa corretto percorso errato in caso di diametro utensile uguale a larghezza tasca - Fixed : in profilo cambered (103) gestito correttamente inverti in lavorazione -- Fixed : in DoubleCut gestito il caso in cui si ha una terza faccia piccola da non lavorare Versione 2.7i2 (30/09/2025) - Modif : migliorie a mortasa e tenone a coda di rondine diff --git a/Version.lua b/Version.lua index 671a097..c3c5547 100644 --- a/Version.lua +++ b/Version.lua @@ -2,5 +2,5 @@ -- Gestione della versione di Beam NAME = 'Beam' -VERSION = '2.7j1' +VERSION = '2.7j2' MIN_EXE = '2.7f2'