From 587f4c61e29cbad2c846247c44aeb43f616f2983 Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Wed, 3 May 2023 15:13:28 +0200 Subject: [PATCH] - in Longcut corretto SCC in caso di asse utensile allineato con Z - tolleranza su sezione portata a 0.1 mm anche per BatchProcess vecchia --- BatchProcess.lua | 5 +++-- LuaLibs/ProcessLongCut.lua | 13 +++++++------ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/BatchProcess.lua b/BatchProcess.lua index 1dd8a29..9948bb7 100644 --- a/BatchProcess.lua +++ b/BatchProcess.lua @@ -23,6 +23,7 @@ -- 2021/06/16 Se disponibile si aggiunge la versione dell'eseguibile alle info del programma CN. -- 2021/08/04 Direzione vista simulazione da BD.SIMUL_VIEW_DIR se esiste. -- 2022/04/28 In info generazione aggiunta indicazione se 64bit. +-- 2023/05/03 Tolleranza su sezione portata a 0.1 mm (100 * GEO.EPS_SMALL). -- Intestazioni require( 'EgtBase') @@ -291,8 +292,8 @@ if bToProcess then for i = 2, #vBeam do local dDimW = vBeam[i].Box:getDimY() local dDimH = vBeam[i].Box:getDimZ() - if ( abs( dDimW - dRawW) > 10 * GEO.EPS_SMALL or abs( dDimH - dRawH) > 10 * GEO.EPS_SMALL) and - ( abs( dDimH - dRawW) > 10 * GEO.EPS_SMALL or abs( dDimW - dRawH) > 10 * GEO.EPS_SMALL) then + if ( abs( dDimW - dRawW) > 100 * GEO.EPS_SMALL or abs( dDimH - dRawH) > 100 * GEO.EPS_SMALL) and + ( abs( dDimH - dRawW) > 100 * GEO.EPS_SMALL or abs( dDimW - dRawH) > 100 * GEO.EPS_SMALL) then table.insert( vBeamErr, i) end end diff --git a/LuaLibs/ProcessLongCut.lua b/LuaLibs/ProcessLongCut.lua index 891ac4f..b2c6a76 100644 --- a/LuaLibs/ProcessLongCut.lua +++ b/LuaLibs/ProcessLongCut.lua @@ -1,4 +1,4 @@ --- ProcessLongCut.lua by Egaltech s.r.l. 2023/03/06 +-- ProcessLongCut.lua by Egaltech s.r.l. 2023/05/03 -- 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. @@ -26,6 +26,7 @@ -- 2023/03/15 Modifica alla lavorazione ulteriore con sega a catena per togliere il codolo e lasciare solo dei punti di supporto. -- 2023/03/22 Correzione a SCC lama a seguito di modifiche alle direzioni dei tagli. -- 2023/04/17 Gestione unificata SCC tramite funzione apposita GetSCC +-- 2023/05/03 Corretto SCC in caso di asse utensile allineato con Z. -- Tabella per definizione modulo local ProcessLongCut = {} @@ -165,17 +166,17 @@ function ProcessLongCut.GetSCC( Proc, nFacet, sMachining, nFaceUse, bInvert, nCu elseif nFaceUse == MCH_MILL_FU.ORTHO_BACK or ( nFaceUse == MCH_MILL_FU.PARAL_DOWN or nFaceUse == MCH_MILL_FU.PARAL_TOP) then nSCC = MCH_SCC.ADIR_YM end - -- se Fast e asse utensile diretto come Z posiziono l'aggregato in Y per avere il minore ingombro possibile - elseif not BD.C_SIMM and AreSameVectorApprox( vtN, Z_AX()) then + -- se Fast e fresa con asse utensile diretto come Z posiziono l'aggregato in Ym per avere il minore ingombro possibile + elseif not BD.C_SIMM and not bIsBlade and AreSameVectorApprox( vtN, Z_AX()) then nSCC = MCH_SCC.ADIR_YM - -- se Fast ( escluso caso speciale con taglio non passante e inclinato in X) posiziono l'aggregato in X per ottimizzare il pinzaggio - elseif not BD.C_SIMM and ( not ( bCustUseBlade and abs(vtN:getX()) > 0.009) or not bIsBlade) then + -- se Fast ( escluso caso speciale con taglio non passante e inclinato in X e escluso caso con lama esattamente diretta in Z) posiziono l'aggregato in X per ottimizzare il pinzaggio + elseif not BD.C_SIMM and ( not ( bCustUseBlade and abs(vtN:getX()) > 0.009) or not bIsBlade) and not ( bIsBlade and AreSameVectorApprox( vtN, Z_AX())) then if bAreCuttingStepsTowardsHead then nSCC = EgtIf( ( not ( nCuttingStep == 1 or nCuttingStep == nC - 1)), MCH_SCC.ADIR_XP, MCH_SCC.ADIR_XM) else nSCC = EgtIf( ( not ( nCuttingStep == 1 or nCuttingStep == nC - 1)), MCH_SCC.ADIR_XM, MCH_SCC.ADIR_XP) end - -- per Fast ( caso speciale con taglio non passante e inclinato in X) + -- per Fast ( caso speciale con taglio non passante e inclinato in X e caso lama diretta esattamente in Z) elseif not BD.C_SIMM then local vtAux = GetProcessSpecificVectors( Proc, nFacet, nFaceUse, bInvert, sMachining) if bCustUseBlade then