diff --git a/LuaLibs/ProcessCut.lua b/LuaLibs/ProcessCut.lua index e3cba8a..de5c5ba 100644 --- a/LuaLibs/ProcessCut.lua +++ b/LuaLibs/ProcessCut.lua @@ -1,4 +1,4 @@ --- ProcessCut.lua by Egaltech s.r.l. 2023/04/05 +-- ProcessCut.lua by Egaltech s.r.l. 2023/08/01 -- Gestione calcolo singoli tagli di lama per Travi -- 2021/05/18 I due tagli con testa da sotto di un cubetto sono fatti di seguito. -- 2021/06/06 Correzioni per tagli con testa da sotto. @@ -19,6 +19,7 @@ -- 2022/09/23 Corretta la condizione per cui รจ richiesto l'aggiornamento del grezzo. -- 2023/01/26 Migliorata la direzione di lavoro della lama in alcuni casi in cui il truciolo veniva scaricato dal lato errato. -- 2023/06/19 Aggiunti tagli speciali per evitare il rischio che il cubetto rimanga appoggiato al motore. +-- 2023/08/01 Correzione su offset per taglio doppio di lato. -- Tabella per definizione modulo local ProcessCut = {} @@ -468,19 +469,23 @@ local function MakeFromTop( sCutting, Proc, nPhase, nRawId, nPartId, dOvmHead, b end end local dDiceFaceMaxH = 0 + local dDiceFaceMinH = GEO.INFINITO if ( i % 2) == 0 and bDangerousReliefCut then for j = 1, #vCuts[i] do - local _, dDiceFaceH = BL.GetFaceHvRefDim( vCuts[i][j] or GDB_ID.NULL, 0) + local _, dDiceFaceH, dDiceFaceV = BL.GetFaceHvRefDim( vCuts[i][j], 0) dDiceFaceMaxH = max( dDiceFaceMaxH, dDiceFaceH) + -- calcolo lato orizzontale minore ipotizzando sia un trapezio + local dDiceFaceH2 = ( 2 * EgtSurfArea( vCuts[i][j]) ) / dDiceFaceV - dDiceFaceH + dDiceFaceMinH = min( dDiceFaceMinH, dDiceFaceH2) end end -- caso speciale con rischio cubetto sul motore - if ( i % 2) == 0 and bDangerousReliefCut and ( dMaxDepth > dDiceFaceMaxH / 2 + BD.CUT_EXTRA_MIN) then + if ( i % 2) == 0 and bDangerousReliefCut and ( dMaxDepth > dDiceFaceMaxH - 0.5 * dDiceFaceMinH + BD.CUT_EXTRA_MIN) then local bDoubleCut = false local dCutExtra = BD.CUT_EXTRA if dMaxDepth < dDiceFaceMaxH + BD.CUT_EXTRA then bDoubleCut = true - dCutExtra = - 0.5 * b3Raw:getDimY() + BD.CUT_EXTRA_MIN + dCutExtra = - 0.5 * dDiceFaceMinH + BD.CUT_EXTRA_MIN end local nSurfToCut = EgtSurfTmBySewing( nAddGrpId, vCuts[i], false) local nFaceUseCut1, nFaceUseCut2 = MCH_MILL_FU.ORTHO_BACK, MCH_MILL_FU.ORTHO_FRONT diff --git a/LuaLibs/ProcessLongCut.lua b/LuaLibs/ProcessLongCut.lua index e6cd8b7..e515674 100644 --- a/LuaLibs/ProcessLongCut.lua +++ b/LuaLibs/ProcessLongCut.lua @@ -1,4 +1,4 @@ --- ProcessLongCut.lua by Egaltech s.r.l. 2023/05/19 +-- ProcessLongCut.lua by Egaltech s.r.l. 2023/08/01 -- Gestione calcolo taglio longitudinale per Travi -- 2021/02/03 Corretto FaceUse con fresa orizzontale su taglio orizzontale. -- 2021/05/18 Possibile taglio con lama anche di fianco su macchina con testa da sotto. @@ -28,6 +28,7 @@ -- 2023/04/17 Gestione unificata SCC tramite funzione apposita GetSCC -- 2023/05/03 Corretto SCC in caso di asse utensile allineato con Z. -- 2023/05/19 Migliorato calcolo e verifica affondamento per lavorazione con lama con codolo in mezzo. +-- 2023/08/01 Ammesso uso lama da sotto fino a N +3deg in verticale. -- Tabella per definizione modulo local ProcessLongCut = {} @@ -694,8 +695,8 @@ function ProcessLongCut.Make( Proc, nPhase, nRawId, nPartId, bCustUseBlade, nCus if ( nSide == -1 or abs(nSide) == 2) and vtN:getZ() <= -0.5 then bCanUseUnderBlade = true end - -- se faccia da sotto o di lato ma con versore Z sotto l'orizzontale abilito la lavorazione con lame mixate - if ( nSide == -1 or abs(nSide) == 2) and vtN:getZ() <= 0.0175 then + -- se faccia da sotto o di lato ma con versore Z sotto l'orizzontale abilito la lavorazione con lame mixate (limite 3 deg verso alto) + if ( nSide == -1 or abs(nSide) == 2) and vtN:getZ() <= 0.053 then bCanUseUnderBlade = true end -- se faccia da sopra o di lato ma con versore Z negativo verifico che abbia un angolo compatibile (28deg) per non avere extracorsa