From d2a6d7e75ce0a7aec01e9a7688dd23654b9860a2 Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Wed, 6 Dec 2023 10:44:21 +0100 Subject: [PATCH 1/3] in ProcessDoubleCut -> Classify si forza la rotazione della trave se inclinata in Y e la lama non riesce a lavorare solo da un lato --- LuaLibs/ProcessDoubleCut.lua | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/LuaLibs/ProcessDoubleCut.lua b/LuaLibs/ProcessDoubleCut.lua index fdf582c..246e356 100644 --- a/LuaLibs/ProcessDoubleCut.lua +++ b/LuaLibs/ProcessDoubleCut.lua @@ -54,10 +54,23 @@ function ProcessDoubleCut.Classify( Proc, b3Raw) local dNzLimDwnUp = BL.GetNzLimDownUp( b3Raw, vtN) local bDownCut = ( vtN:getZ() <= dNzLimDwnUp) if bDownCut then + -- recupero i dati della lama + local sCutType = EgtIf( Proc.Head, 'HeadSide', 'TailSide') + local sCutting = ML.FindCutting( sCutType, true, false) + -- recupero i dati dell'utensile + local dMaxDepth = 0 + local dMaxMat = 0 + if EgtMdbSetCurrMachining( sCutting) then + local sTuuid = EgtMdbGetCurrMachiningParam( MCH_MP.TUUID) + if EgtTdbSetCurrTool( EgtTdbGetToolFromUUID( sTuuid) or '') then + dMaxDepth = EgtTdbGetCurrToolMaxDepth() or dMaxDepth + dMaxMat = EgtTdbGetCurrToolParam( MCH_TP.MAXMAT) or dMaxMat + end + end -- calcolo l'ingombro orizzontale della faccia - local _, DimH, DimV = BL.GetFaceHvRefDim( Proc.Id, nFac) + local _, DimH = BL.GetFaceHvRefDim( Proc.Id, nFac) -- confronto questo ingombro con il doppio della massima dimensione del DiceCut (impossibile lavorare sotto da sopra se più di 2 tagli) - if DimH > 2 * BD.MAX_DIM_DICE then + if DimH > 2 * BD.MAX_DIM_DICE or ( abs( vtN:getY()) > 0.1 and dMaxMat < DimH) then return true, true end end From 306b5b6dffe9ac1fbe427a6dc2192136d361d8c9 Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Wed, 6 Dec 2023 15:12:08 +0100 Subject: [PATCH 2/3] in ProcessCut -> Classify si forza la rotazione della trave se inclinata in Y e la lama non riesce a lavorare solo da un lato, come per doublecut --- LuaLibs/ProcessCut.lua | 14 +++++++++++++- LuaLibs/ProcessDoubleCut.lua | 1 - 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/LuaLibs/ProcessCut.lua b/LuaLibs/ProcessCut.lua index 331e050..429f6f7 100644 --- a/LuaLibs/ProcessCut.lua +++ b/LuaLibs/ProcessCut.lua @@ -67,10 +67,22 @@ function ProcessCut.Classify( Proc, b3Raw) local dNzLimDwnUp = BL.GetNzLimDownUp( b3Raw) local bDownCut = ( vtN:getZ() <= dNzLimDwnUp) if bDownCut then + -- recupero i dati della lama + local sCutType = EgtIf( Proc.Head, 'HeadSide', 'TailSide') + local sCutting = ML.FindCutting( sCutType, true, false) + local dMaxDepth = 0 + local dMaxMat = 0 + if EgtMdbSetCurrMachining( sCutting) then + local sTuuid = EgtMdbGetCurrMachiningParam( MCH_MP.TUUID) + if EgtTdbSetCurrTool( EgtTdbGetToolFromUUID( sTuuid) or '') then + dMaxDepth = EgtTdbGetCurrToolMaxDepth() or dMaxDepth + dMaxMat = EgtTdbGetCurrToolParam( MCH_TP.MAXMAT) or dMaxMat + end + end -- calcolo l'ingombro orizzontale della faccia local _, DimH, DimV = BL.GetFaceHvRefDim( Proc.Id, 0) -- confronto questo ingombro con il doppio della massima dimensione del DiceCut (impossibile lavorare sotto da sopra se più di 2 tagli) - if DimH > 2 * BD.MAX_DIM_DICE then + if DimH > 2 * BD.MAX_DIM_DICE or ( abs( vtN:getY()) > 0.1 and dMaxMat < DimH) then return true, true end end diff --git a/LuaLibs/ProcessDoubleCut.lua b/LuaLibs/ProcessDoubleCut.lua index 246e356..e8d4591 100644 --- a/LuaLibs/ProcessDoubleCut.lua +++ b/LuaLibs/ProcessDoubleCut.lua @@ -57,7 +57,6 @@ function ProcessDoubleCut.Classify( Proc, b3Raw) -- recupero i dati della lama local sCutType = EgtIf( Proc.Head, 'HeadSide', 'TailSide') local sCutting = ML.FindCutting( sCutType, true, false) - -- recupero i dati dell'utensile local dMaxDepth = 0 local dMaxMat = 0 if EgtMdbSetCurrMachining( sCutting) then From d1c014e20c9854420f6c8e264a961a8ca92f804d Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Thu, 7 Dec 2023 09:55:19 +0100 Subject: [PATCH 3/3] =?UTF-8?q?In=20ProcessCut=20e=20DoubleCut=20correzion?= =?UTF-8?q?e=20in=20scelta=20ribaltamento=20trave=20quando=20si=20=C3=A8?= =?UTF-8?q?=20in=20condizioni=20downUp.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LuaLibs/ProcessCut.lua | 5 +++-- LuaLibs/ProcessDoubleCut.lua | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/LuaLibs/ProcessCut.lua b/LuaLibs/ProcessCut.lua index 429f6f7..fe94f6e 100644 --- a/LuaLibs/ProcessCut.lua +++ b/LuaLibs/ProcessCut.lua @@ -23,6 +23,7 @@ -- 2023/08/01 In caso di pezzi alti su macchina tipo PF i tagli doppi di lato non vengono usati, si usa il metodo standard. -- 2023/09/12 In MakeFromTop abbassato a 590 mm il limite per convertire in LongCut. -- 2023/10/27 In MakeFromTop corretto massimo materiale in caso di lavorazione da sotto. +-- 2023/12/07 Correzione in Classify in scelta ribaltamento trave quando si è in condizioni downUp. -- Tabella per definizione modulo local ProcessCut = {} @@ -81,8 +82,8 @@ function ProcessCut.Classify( Proc, b3Raw) end -- calcolo l'ingombro orizzontale della faccia local _, DimH, DimV = BL.GetFaceHvRefDim( Proc.Id, 0) - -- confronto questo ingombro con il doppio della massima dimensione del DiceCut (impossibile lavorare sotto da sopra se più di 2 tagli) - if DimH > 2 * BD.MAX_DIM_DICE or ( abs( vtN:getY()) > 0.1 and dMaxMat < DimH) then + -- confronto questo ingombro con il doppio della massima dimensione del DiceCut (impossibile lavorare sotto da sopra se più di 2 tagli oppure se tipo PF, taglio inclinato in Y e non taglio singolo orizzontale) + if DimH > 2 * BD.MAX_DIM_DICE or ( BD.C_SIMM and abs( vtN:getY()) > 0.1 and dMaxMat < DimH + BD.CUT_EXTRA) then return true, true end end diff --git a/LuaLibs/ProcessDoubleCut.lua b/LuaLibs/ProcessDoubleCut.lua index e8d4591..39981b4 100644 --- a/LuaLibs/ProcessDoubleCut.lua +++ b/LuaLibs/ProcessDoubleCut.lua @@ -2,6 +2,7 @@ -- Gestione calcolo doppi tagli di lama per Travi -- 2022/08/29 Implementata la fresatura dal lato per tagli problematici per PF1250. -- 2023/03/22 Eliminata SetOpenSide locale, si usa quella di libreria. +-- 2023/12/07 Correzione in Classify in scelta ribaltamento trave quando si è in condizioni downUp -- Tabella per definizione modulo local ProcessDoubleCut = {} @@ -68,8 +69,8 @@ function ProcessDoubleCut.Classify( Proc, b3Raw) end -- calcolo l'ingombro orizzontale della faccia local _, DimH = BL.GetFaceHvRefDim( Proc.Id, nFac) - -- confronto questo ingombro con il doppio della massima dimensione del DiceCut (impossibile lavorare sotto da sopra se più di 2 tagli) - if DimH > 2 * BD.MAX_DIM_DICE or ( abs( vtN:getY()) > 0.1 and dMaxMat < DimH) then + -- confronto questo ingombro con il doppio della massima dimensione del DiceCut (impossibile lavorare sotto da sopra se più di 2 tagli oppure se tipo PF, taglio inclinato in Y e non taglio singolo orizzontale) + if DimH > 2 * BD.MAX_DIM_DICE or ( BD.C_SIMM and abs( vtN:getY()) > 0.1 and dMaxMat < DimH + BD.CUT_EXTRA) then return true, true end end