From e0f20d19f02e976d8760b15a07918b9978b24ca6 Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Wed, 20 Nov 2024 10:03:16 +0100 Subject: [PATCH 1/5] - in FacesBySaw migliorati i casi in cui si inverte l'SCC per facilitare la caduta del legno --- LuaLibs/FacesBySaw.lua | 4 ++-- UpdateLog.txt | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/LuaLibs/FacesBySaw.lua b/LuaLibs/FacesBySaw.lua index 4708298..c6a4138 100644 --- a/LuaLibs/FacesBySaw.lua +++ b/LuaLibs/FacesBySaw.lua @@ -468,14 +468,14 @@ function FacesBySaw.MakeOne( nSurfId, nFacet, sCutting, dSawDiam, Par5, dVzLimDw nSCC = MCH_SCC.ADIR_ZM elseif abs( vtAux:getX()) > abs( vtAux:getY()) - GEO.EPS_SMALL then -- se il taglio è orizzontale, si gira aggregato lama per facilitare caduta del legno - if abs( vtTg:getZ()) < GEO.EPS_SMALL and abs( vtOrthO:getZ()) > GEO.EPS_SMALL then + if abs( vtTg:getZ()) < 10 * GEO.EPS_SMALL and not AreSameOrOppositeVectorApprox( vtN, Z_AX()) then nSCC = EgtIf( ( vtAux:getX() > -GEO.EPS_SMALL), MCH_SCC.ADIR_XM, MCH_SCC.ADIR_XP) else nSCC = EgtIf( ( vtAux:getX() > -GEO.EPS_SMALL), MCH_SCC.ADIR_XP, MCH_SCC.ADIR_XM) end else -- se il taglio è orizzontale, si gira aggregato lama per facilitare caduta del legno - if abs( vtTg:getZ()) < GEO.EPS_SMALL and abs( vtOrthO:getZ()) > GEO.EPS_SMALL then + if abs( vtTg:getZ()) < 10 * GEO.EPS_SMALL and not AreSameOrOppositeVectorApprox( vtN, Z_AX()) then nSCC = EgtIf( ( vtAux:getY() > -GEO.EPS_SMALL), MCH_SCC.ADIR_YM, MCH_SCC.ADIR_YP) else nSCC = EgtIf( ( vtAux:getY() > -GEO.EPS_SMALL), MCH_SCC.ADIR_YP, MCH_SCC.ADIR_YM) diff --git a/UpdateLog.txt b/UpdateLog.txt index dcf6615..dfe4875 100644 --- a/UpdateLog.txt +++ b/UpdateLog.txt @@ -5,7 +5,6 @@ Versione 2.6k1 (15/11/2024) - Modif : in tacche si applica svuotatura anche nel caso di elevazione non raggiunta - Modif : in forature in doppio, se necessario, si aumenta lo step per evitare collisione tra le punte durante lavorazione - Fixed : in L010 correzione in utilizzo Q07 (forzatura frese) -- Fixed : risolto un problema di chariot collision in doppio in macchine tipo PF - Fixed : in coda di rondine corretto bug che causava un blocco anomalo del programma Versione 2.6j4 (06/11/2024) From d578194d43d148bb226f5aae31f3d84515f51863 Mon Sep 17 00:00:00 2001 From: "andrea.villa" Date: Wed, 20 Nov 2024 11:50:10 +0100 Subject: [PATCH 2/5] In DiceCut migliorato controllo rimozione del primo cubetto molto piccolo --- LuaLibs/DiceCut.lua | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/LuaLibs/DiceCut.lua b/LuaLibs/DiceCut.lua index d53cad2..ce6bd85 100644 --- a/LuaLibs/DiceCut.lua +++ b/LuaLibs/DiceCut.lua @@ -275,12 +275,15 @@ local function VerifyFirstOrthoCut( CutTable, OffsetP, BBoxRawPart, dNzLimDwnUp) -- normale alla faccia ortogonale local _, vtO = EgtSurfTmFacetCenter( CutOId, 0, GDB_ID.ROOT) vtO = vtO - vtO * vtN1 * vtN1 ; vtO:normalize() + local dMaxElev = EgtSurfTmFacetElevationInBBox( CutOId, 0, BBoxRawPart, true, GDB_ID.ROOT) -- calcolo lunghezza prima semi-faccia local asseX1 = vtO local asseY1 = vtN1 ^ asseX1 local Frame1 = Frame3d( ptC1, ptC1+asseX1, ptC1+asseY1) local Box1 = EgtGetBBoxRef( Cut1Id, GDB_BB.STANDARD, Frame1) local x1 = Box1:getDimX() + -- prendo il massimo tra la lugnhezza della faccia parallela e l'elevazione della corrispondente ortogonale + x1 = max( x1, dMaxElev) -- calcolo lunghezza seconda semi-faccia local asseX2 = vtO local asseY2 = vtN2 ^ asseX2 @@ -430,7 +433,7 @@ function DiceCut.GetDice( nParent, BBoxRawPart, ptCPlanes, vtNPlanes, bGetOrtoPl if dElevO then local m = ceil( dElevO / OffsetO) OffsetO = dElevO / m - end + end -- elenco di tutte le superfici generate dai tagli local TabFUCHSIA = {} From e18a816647e14a45eeeebf6e2ae467daad382de6 Mon Sep 17 00:00:00 2001 From: "andrea.villa" Date: Thu, 21 Nov 2024 11:24:46 +0100 Subject: [PATCH 3/5] In LapJoint, se forma a U si ricalcola dimensione della tasca --- LuaLibs/ProcessLapJoint.lua | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/LuaLibs/ProcessLapJoint.lua b/LuaLibs/ProcessLapJoint.lua index 4ed4761..d362ae0 100644 --- a/LuaLibs/ProcessLapJoint.lua +++ b/LuaLibs/ProcessLapJoint.lua @@ -6398,6 +6398,21 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa bUseOtherFace = true rfFac, dH, dV = EgtSurfTmFacetMinAreaRectangle( Proc.Id, nFacInd, GDB_ID.ROOT) end + + -- se forma a U (recupero la larghezza della faccia perpendicolarmente alle altre) + if Proc.Fct == 3 and bIsU then + local vtN2 = EgtSurfTmFacetNormVersor( Proc.Id, EgtIf( nFacInd == 0, 1, 0), GDB_ID.ROOT) + local vtX = vtN2 ^ vtN + if not vtX:isSmall() then + local frRef = Frame3d( ptC, ptC + 100 * vtX, ptC + 100 * vtN2) + local b3Ref = EgtSurfTmGetFacetBBoxRef( Proc.Id, nFacInd, GDB_BB.STANDARD, frRef) + if b3Ref then + dH = b3Ref:getDimX() + dV = b3Ref:getDimY() + end + end + end + -- eseguo bOk, sWarn, sStat = MakeByChainOrSaw( Proc, nPhase, nRawId, nPartId, nFacInd, rfFac, dH, dV, dFacElev, bForceUseBlade, From 570a65c7a11c373409f2bcdec49cd520ba5b62f5 Mon Sep 17 00:00:00 2001 From: "andrea.villa" Date: Thu, 21 Nov 2024 12:12:09 +0100 Subject: [PATCH 4/5] =?UTF-8?q?In=20FacesBySaw=20ridotto=20a=2015=C2=B0=20?= =?UTF-8?q?limite=20per=20accorciare=20geometria=20bilinea?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LuaLibs/FacesBySaw.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LuaLibs/FacesBySaw.lua b/LuaLibs/FacesBySaw.lua index c6a4138..bada866 100644 --- a/LuaLibs/FacesBySaw.lua +++ b/LuaLibs/FacesBySaw.lua @@ -309,7 +309,7 @@ function FacesBySaw.MakeOne( nSurfId, nFacet, sCutting, dSawDiam, Par5, dVzLimDw bIsBiLinea = true local vtTg1 = ptPm - ptP1 ; vtTg1:normalize() local vtTg2 = ptP2 - ptPm ; vtTg2:normalize() - local dCosMax = 0.951 -- cos( 18°) + local dCosMax = 0.966 -- cos( 15°) local dLenMin = 30 local dLenMax = max( 0.5 * dSawDiam * 0.17365 + 1, 2 * dLenMin) dCosAngleL1L2 = vtTg1 * vtTg2 From 339c6acb3784c3f1fe6e2b7804b238d2089a5b20 Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Thu, 28 Nov 2024 09:50:47 +0100 Subject: [PATCH 5/5] update log e version --- UpdateLog.txt | 6 ++++++ Version.lua | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/UpdateLog.txt b/UpdateLog.txt index dfe4875..718f1ed 100644 --- a/UpdateLog.txt +++ b/UpdateLog.txt @@ -1,5 +1,11 @@ ==== Beam Update Log ==== +Versione 2.6k2 (28/11/2024) +- Modif : nei tagli migliorati i casi in cui si inverte l'SCC per facilitare la caduta del legno +- Modif : nei tagli migliorato controllo rimozione del primo cubetto molto piccolo +- Modif : nei tagli migliorati i casi con bilinea +- Fixed : in lapjoint corretto un caso in cui si sbagliava a calcolare la dimensione della tasca + Versione 2.6k1 (15/11/2024) - Modif : in macchine tipo Fast lunghezza minima feature per considerare taglio lungo portata a 400 mm - Modif : in tacche si applica svuotatura anche nel caso di elevazione non raggiunta diff --git a/Version.lua b/Version.lua index d05a9c1..e423195 100644 --- a/Version.lua +++ b/Version.lua @@ -2,5 +2,5 @@ -- Gestione della versione di Beam NAME = 'Beam' -VERSION = '2.6k1' +VERSION = '2.6k2' MIN_EXE = '2.6e5'