diff --git a/LuaLibs/ProcessLapJoint.lua b/LuaLibs/ProcessLapJoint.lua index fae919f..f554442 100644 --- a/LuaLibs/ProcessLapJoint.lua +++ b/LuaLibs/ProcessLapJoint.lua @@ -69,6 +69,7 @@ -- 2023/16/12 Corretto il recupero dati utensile che, in alcune funzioni, puntava all'utensile errato. -- 2023/06/29 Se forzata lavorazione laterale permetto l'uso del truciolatore solo se non è una tasca chiusa. -- 2023/07/19 Correzioni e modifiche ad antischeggia con lama (#1351). +-- 2023/08/01 Aggiunta gestione rinvio angolare solo per tasche 5 lati, da sotto e perfettamente verticali. -- Tabella per definizione modulo local ProcessLapJoint = {} @@ -740,6 +741,13 @@ function ProcessLapJoint.Classify( Proc, b3Raw) return false end end + -- se è presente il rinvio angolare ed è una tasca cieca perfettamente verticale, da sotto, non ruoto + if BD.ANG_TRASM and Proc.Fct == 5 then + local vtNBottomFace = EgtSurfTmFacetNormVersor( Proc.Id, nFacInd, GDB_ID.ROOT) + if AreOppositeVectorApprox( vtNBottomFace, Z_AX()) then + return true, false + end + end -- se è una feature scanalatura (con 5 facce) e non è stata riconosciuta come fessura, eseguo altre verifiche if Proc.Prc == 16 and Proc.Fct == 5 and not bClosedOrthoFaces then -- recupero gruppo per geometria addizionale @@ -3092,7 +3100,7 @@ local function MakeAntiSplintBySaw( Proc, nFacet, vtN, b3Raw, nFacInd, bReduceDe end --------------------------------------------------------------------- -local function MakePocket( Proc, nPartId, b3Solid, ptPs, tvtN, nFaceRef, sMchFind, nUseRoughTool, sMasterPocket, dPrevFaceElev, tDimAndRef, dAng, bOpenOutRaw) +local function MakePocket( Proc, nPartId, b3Solid, ptPs, tvtN, nFaceRef, sMchFind, nUseRoughTool, sMasterPocket, dPrevFaceElev, tDimAndRef, dAng, bOpenOutRaw, bLapJointAngTrasm) -- calcolo l'elevazione dal punto medio local dElev @@ -3156,7 +3164,9 @@ local function MakePocket( Proc, nPartId, b3Solid, ptPs, tvtN, nFaceRef, sMchFin EgtSetMachiningParam( MCH_MP.FACEUSE, MCH_MILL_FU.ORTHO_CONT) -- imposto posizione braccio porta testa local nSCC = MCH_SCC.NONE - if not BD.C_SIMM and not BD.TURN then + if bLapJointAngTrasm then + nSCC = MCH_SCC.ADIR_NEAR + elseif not BD.C_SIMM and not BD.TURN then nSCC = MCH_SCC.ADIR_YM if AreSameVectorApprox( tvtN[2], Z_AX()) then nSCC = MCH_SCC.ADIR_YM @@ -4876,8 +4886,12 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa -- altrimenti lavorazione di svuotatura o contornatura else local bUseOtherFace + local bLapJointAngTrasm = false + -- se è presente il rinvio angolare ed è una tasca cieca perfettamente verticale, da sotto + if BD.ANG_TRASM and Proc.Fct == 5 and AreOppositeVectorApprox( vtN, Z_AX()) then + bLapJointAngTrasm = true -- se orientata verso il basso e non c'è testa da sotto, verifico l'alternativa - if vtN:getZ() < BD.NZ_MINA and not BD.DOWN_HEAD and nFacInd2 then + elseif vtN:getZ() < BD.NZ_MINA and not BD.DOWN_HEAD and nFacInd2 then ptC, vtN = EgtSurfTmFacetCenter( Proc.Id, nFacInd2, GDB_ID.ROOT) nFacInd, nFacInd2 = nFacInd2, nFacInd dFacElev, dFacElev2 = dFacElev2, dFacElev @@ -4885,7 +4899,7 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa end -- verifico non sia orientata verso il basso o ci sia una testa dal basso o la lavorazione sia dal lato. local bFaceDown = ( vtN:getZ() < BD.NZ_MINA) - if bFaceDown and not BD.DOWN_HEAD and not BD.TURN and not bForceSideMill then + if bFaceDown and not BD.DOWN_HEAD and not BD.TURN and not bForceSideMill and not bLapJointAngTrasm then local sErr = 'Error : LapJoint from bottom impossible' EgtOutLog( sErr) return false, sErr @@ -4934,6 +4948,7 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa local bMillDown = ( BD.DOWN_HEAD and vtN:getZ() < 0.342) -- settaggio voluto da Alessandro/Fabio (per fare angoli con fresa piccola) sMchFind = 'Pocket' + if bLapJointAngTrasm then sMchFind = 'Pocket_AT' end local dDiam = min( dH, dV) local bTailOnSide = ( Proc.Box:getMin():getX() - b3Solid:getMin():getX() < 0.1 and not Proc.Tail and not bAllWithEndCap) if ( Proc.Fct == 1) or (( Proc.Fct == 2 or Proc.Fct == 3) and bIsL) or ((( Proc.Fct == 3 and bIsU) or ( Proc.Fct == 4 and not bTailOnSide)) and bSinglePart) then @@ -5416,7 +5431,7 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa dMachiningDepth = dFacElev + dCollSic end local bOk, sWarn2 - bOk, sWarn2, sTuuidPk, dDiamTool = MakePocket( Proc, nPartId, b3Solid, ptC, tvtNx, nFacInd, sMchFind, nUseRoughTool, sPocketing, dMachiningDepth, nil, nil, bAllWithEndCap) + bOk, sWarn2, sTuuidPk, dDiamTool = MakePocket( Proc, nPartId, b3Solid, ptC, tvtNx, nFacInd, sMchFind, nUseRoughTool, sPocketing, dMachiningDepth, nil, nil, bAllWithEndCap, bLapJointAngTrasm) if not bOk then return false, sWarn2 end if sWarn2 then if not sWarn then sWarn = '' end diff --git a/UpdateLog.txt b/UpdateLog.txt index cace326..cc08c13 100644 --- a/UpdateLog.txt +++ b/UpdateLog.txt @@ -1,9 +1,15 @@ ==== Beam Update Log ==== +Versione 2.5g3 (01/08/2023) +- Added : aggiunta gestione tasche chiuse ad orientamento verticale con rinvio angolare [Ticket #1333] +- Modif : in LongCut ammesso uso lama da sotto fino a Norm +3deg in verticale +- Fixed : in Cut correzione calcolo offset per taglio doppio di lato [Ticket #1400]. + Versione 2.5g2 (31/07/2023) - Added : in FreeContour, solo se pocket, aggiunta Q06 per specificare un eventuale offset radiale del contorno [Ticket #1334] - Added : aggiunta gestione forature verticali con rinvio angolare [Ticket #1332] - Fixed : corretta gestione antischeggia con lama su LapJoint [Ticket #1351] +- Fixed : in ProfConvex, ProfConcave e ProfHead corretto e semplificato ModifySideInvertLead per invert [Ticket #1330] - Fixed : corretto il funzionamento delle mortase in doppio [Ticket #1404]. Versione 2.5g1 (05/07/2023) diff --git a/Version.lua b/Version.lua index 260c3c8..2d0648f 100644 --- a/Version.lua +++ b/Version.lua @@ -1,4 +1,4 @@ --- Version.lua by Egaltech s.r.l. 2023/07/31 +-- Version.lua by Egaltech s.r.l. 2023/08/01 -- Gestione della versione di Beam NAME = 'Beam'