From 640c8af05f8f42e307f330b8a8cabc1c2a414b06 Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Tue, 29 Oct 2024 11:56:40 +0100 Subject: [PATCH 1/6] - in ProcessCut lunghezza minima feature per considerare taglio lungo portata a 400 mm per macchine tipo Fast --- LuaLibs/ProcessCut.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LuaLibs/ProcessCut.lua b/LuaLibs/ProcessCut.lua index 6783093..8996916 100644 --- a/LuaLibs/ProcessCut.lua +++ b/LuaLibs/ProcessCut.lua @@ -274,7 +274,7 @@ local function MakeFromTop( sCutting, Proc, nPhase, nRawId, nPartId, dOvmHead, b if bFromBottom == nil then bFromBottom = ( vtN:getZ() > 0.25 and b3Solid:getDimX() < BD.LEN_SHORT_PART and not Proc.AdvTail and vtN:getX() < 0 and abs( vtN:getY()) < 0.259) end - local dMinFeatureLengthForLongCut = 590.000 + local dMinFeatureLengthForLongCut = EgtIf( BD.C_SIMM, 590, 400) -- verifico se da considerare taglio lungo ( non da sotto, inclinato non più di 30deg, largo come la trave e abbastanza lungo) local bLongCut = ( not bDownCut and vtN:getZ() > 0.865 and Proc.Box:getDimY() > b3Solid:getDimY() - 10 * GEO.EPS_SMALL and From e6a3e0c519e9f45fd97c50a419b00a83f48ffad3 Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Tue, 5 Nov 2024 11:17:39 +0100 Subject: [PATCH 2/6] - in Cut correzione a utilizzo Q07 (forzatura fresa) - in LapJoint se arriva da Cut si applica sempre svuotatura - in LapJoint se birdsmouth a L si applica svuotatura anche in caso di elevazione non raggiunta (non si tenta la fresatura che fallirebbe non trovando facce sul lato lungo) --- LuaLibs/ProcessCut.lua | 2 +- LuaLibs/ProcessLapJoint.lua | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/LuaLibs/ProcessCut.lua b/LuaLibs/ProcessCut.lua index 8996916..2981ba3 100644 --- a/LuaLibs/ProcessCut.lua +++ b/LuaLibs/ProcessCut.lua @@ -47,7 +47,7 @@ local ML = require( 'MachiningLib') -- Riconoscimento della feature function ProcessCut.Identify( Proc) -- se richiesto si forza fresatura - Proc.bForceMill = ( Proc.prc == 30 and ( ( EgtGetInfo( Proc.Id, 'Q07', 'd') or 0) == 1)) + Proc.bForceMill = ( ( ( Proc.Grp == 1 or Proc.Grp == 2) and Proc.Prc == 10) and ( ( EgtGetInfo( Proc.Id, 'Q07', 'd') or 0) == 1)) if Proc.bForceMill then return false diff --git a/LuaLibs/ProcessLapJoint.lua b/LuaLibs/ProcessLapJoint.lua index 9d482d0..4ed4761 100644 --- a/LuaLibs/ProcessLapJoint.lua +++ b/LuaLibs/ProcessLapJoint.lua @@ -117,6 +117,7 @@ local ProcessLapJoint = {} require( 'EgtBase') local BL = require( 'BeamLib') local Fbs = require( 'FacesBySaw') +local Fbp = require( 'FaceByPocket') local Cut = require( 'ProcessCut') local DoubleCut = require( 'ProcessDoubleCut') local LongCut = require( 'ProcessLongCut') @@ -6334,6 +6335,7 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa if sMyPocketing and ( dMyTMaxDepth > dFacElev + dCollSic - 10 * GEO.EPS_SMALL or ( dMyTMaxDepth > 0.8 * dFacElev + dCollSic and not bIsU) or ( bIsL and nUseRoughTool == 0) or + ( bIsL and Proc.Prc == 20) or ( Proc.Prc == 25 and not bIsU and not bIsL)) or ( dUserMaxElev and dUserMaxElev > 10 * GEO.EPS_SMALL) then sPocketing = sMyPocketing @@ -7419,6 +7421,14 @@ function ProcessLapJoint.Make( Proc, nPhase, nRawId, nPartId, dOvmHead) -- se è una spianatura a una faccia richiamo la LongCut elseif Proc.Prc == 90 then return LongCut.Make( Proc, nPhase, nRawId, nPartId) + -- se arriva da una cut si applica una svuotatura + elseif Proc.Prc == 10 then + local dDiam = min( Proc.Face[1].Height, Proc.Face[1].Width) * 3 + local bMillUp = ( BD.DOWN_HEAD and Proc.Face[1].VtN:getZ() > -0.259) + local bMillDown = ( BD.DOWN_HEAD and Proc.Face[1].VtN:getZ() < 0.342) + local sMchFindMaster = 'OpenPocket' + local _, sPocketing = VerifyPocket( Proc, dDiam, nil, nil, sMchFindMaster, bMillUp, bMillDown) + return Fbp.Make( Proc, Proc.Id, 0, sPocketing, nPartId, b3Solid) -- altrimenti, con lama else return Cut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead) From 242f5f4516940791d6bfc3e87a966d80fb78b3b8 Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Tue, 5 Nov 2024 14:29:23 +0100 Subject: [PATCH 3/6] -in Drill non si riclassificano come Down i fori fatti in doppio (risolve problemi di chariot collision su macchine tipo PF) --- LuaLibs/ProcessDrill.lua | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/LuaLibs/ProcessDrill.lua b/LuaLibs/ProcessDrill.lua index f6c1702..5826364 100644 --- a/LuaLibs/ProcessDrill.lua +++ b/LuaLibs/ProcessDrill.lua @@ -252,8 +252,11 @@ function ProcessDrill.Classify( Proc, b3Raw, sDownOrSideOrStd) if sDownOrSideOrStd == 'DOWN' then -- se foro fatto in doppio entrambe le forature (valore assoluto) devono essere sopra al valore limite, se foro singolo deve essere sopra al valore limite se ribaltato if ( abs( Proc.Flg) == 2 and ( abs( vtExtr:getZ()) < - BD.DRILL_VZ_MIN) or ( abs( Proc.Flg) ~= 2 and vtExtr:getZ() < - BD.DRILL_VZ_MIN)) then - Proc.Down = true - Proc.Side = false + -- in doppio non cambio di fase al foro perchè devo garantire il lato master su H1 + if not( Proc.Double) or Proc.Double == 0 then + Proc.Down = true + Proc.Side = false + end return true end end From ae6853cd3fc725db8fd746fd7701ae15d1359d8c Mon Sep 17 00:00:00 2001 From: "andrea.villa" Date: Tue, 12 Nov 2024 09:40:24 +0100 Subject: [PATCH 4/6] In Drill, se foro doppio si aumenta lo step per evitare collisione tra le punte durante lavorazione. --- LuaLibs/ProcessDrill.lua | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/LuaLibs/ProcessDrill.lua b/LuaLibs/ProcessDrill.lua index 5826364..5dbde23 100644 --- a/LuaLibs/ProcessDrill.lua +++ b/LuaLibs/ProcessDrill.lua @@ -604,6 +604,16 @@ function ProcessDrill.Make( Proc, nPhase, nRawId, nPartId) end -- se lavorazione in doppio if Proc.Double and Proc.Double > 0 then + -- calcolo gli step reali + local dStep = EgtGetMachiningParam( MCH_MP.STEP) + local nNumStep = ceil( dDepth/dStep) + local dRealStep = dDepth / nNumStep + -- Se nel penultimo step le punte si trovano più vicine del minimo ( MinDistX1X2 + Puntina centraggio H1 + puntina centraggio H2) ricalcolo facendo uno step in meno + if ( ( dLen / 2) - ( dRealStep * (nNumStep - 1))) * 2 < ( 40 + 10 + 10) then + dRealStep = ceil( dDepth / (nNumStep - 1)) + EgtSetMachiningParam( MCH_MP.STEP, dRealStep) + sMyWarn ='Warning in drill-double : step changed to ' .. tostring(dRealStep) .. 'mm' + end sUserNotes = EgtSetValInNotes( sUserNotes, 'DOUBLE', Proc.Double) if Proc.Double ~= Proc.PrevDouble then sUserNotes = EgtSetValInNotes( sUserNotes, 'StartZmax', 2) From fa139c84f363aa5278c921a6884bc05ad593e519 Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Fri, 15 Nov 2024 15:45:40 +0100 Subject: [PATCH 5/6] - piccola correzione in ProcessDovetail --- LuaLibs/ProcessDovetail.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/LuaLibs/ProcessDovetail.lua b/LuaLibs/ProcessDovetail.lua index 49546f5..d3ae9d4 100644 --- a/LuaLibs/ProcessDovetail.lua +++ b/LuaLibs/ProcessDovetail.lua @@ -1190,14 +1190,14 @@ local function Make2Faces( Proc, nPhase, nRawId, nPartId, dOvmHead, b3Raw, b3Sol return MakeByBlade( Proc, nPhase, nRawId, nPartId, dOvmHead, b3Raw, b3Solid) -- altrimenti provo con il truciolatore else + local sName = 'Mill_' .. ( EgtGetName( Proc.Id) or tostring( Proc.Id)) -- se non ho la lavorazione esco if not sMilling then - local sErr = 'Error, machining or tool not found ' .. sName .. '-' .. sMilling + local sErr = 'Error, machining or tool not found ' .. sName EgtOutLog( sErr) return false, sErr end -- inserisco la lavorazione di fresatura - local sName = 'Mill_' .. ( EgtGetName( Proc.Id) or tostring( Proc.Id)) local nMchFId = EgtAddMachining( sName, sMilling) if not nMchFId then local sErr = 'Error adding machining ' .. sName .. '-' .. sMilling From 9d6a5fb4962275019d36b82562343c95db3e175a Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Fri, 15 Nov 2024 15:58:29 +0100 Subject: [PATCH 6/6] update version e log --- UpdateLog.txt | 8 ++++++++ Version.lua | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/UpdateLog.txt b/UpdateLog.txt index f44ee86..dcf6615 100644 --- a/UpdateLog.txt +++ b/UpdateLog.txt @@ -1,5 +1,13 @@ ==== Beam Update Log ==== +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 +- 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) - Fixed : corretto caso in cui i fori passanti fatti con due teste finiviano nella rotazione sbagliata, provocando un errore di chariot collision diff --git a/Version.lua b/Version.lua index 55e4b32..d05a9c1 100644 --- a/Version.lua +++ b/Version.lua @@ -2,5 +2,5 @@ -- Gestione della versione di Beam NAME = 'Beam' -VERSION = '2.6j4' +VERSION = '2.6k1' MIN_EXE = '2.6e5'