From 723713707f6d3b326fd65e2f651fd72ff4d86d1e Mon Sep 17 00:00:00 2001 From: "daniele.nicoli" Date: Wed, 20 May 2026 13:36:03 +0200 Subject: [PATCH 1/3] ProcessCut.Classify - Aggiunta Q18 che evita che la trave ruoti in caso di taglio di testa se la dimensione del taglio richiede dicecut. --- LuaLibs/ProcessCut.lua | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/LuaLibs/ProcessCut.lua b/LuaLibs/ProcessCut.lua index 8689717..3ac3f4f 100644 --- a/LuaLibs/ProcessCut.lua +++ b/LuaLibs/ProcessCut.lua @@ -63,6 +63,7 @@ function ProcessCut.Classify( Proc, b3Raw) if ( BD.C_SIMM and BD.DOWN_HEAD) or BD.TURN then return true end + local bForceNoBeamRotation = EgtGetInfo( Proc.Id, 'Q18', 'd') or 0 == 1 -- recupero i dati del taglio local ptC, vtN = EgtSurfTmFacetCenter( Proc.Id, 0, GDB_ID.ROOT) -- calcolo le massime estensioni lineari orizzontale e verticale della faccia @@ -73,7 +74,7 @@ function ProcessCut.Classify( Proc, b3Raw) then -- confronto queste estensioni con la massima dimensione del DiceCut (impossibile lavorare se entrambe maggiori) if DimH > BD.MAX_DIM_DICE + 100 * GEO.EPS_SMALL and DimV > BD.MAX_DIM_DICE + 100 * GEO.EPS_SMALL then - return true, true + return true, not bForceNoBeamRotation end end -- se è un taglio da sotto, lo verifico @@ -96,7 +97,7 @@ function ProcessCut.Classify( Proc, b3Raw) _, 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 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 + return true, not bForceNoBeamRotation end end return true, false From 3445fb2525258499296f4d58bd3da4f0bdb60711 Mon Sep 17 00:00:00 2001 From: "andrea.villa" Date: Fri, 22 May 2026 14:08:01 +0200 Subject: [PATCH 2/3] Smussi di testa in senso orario --- LuaLibs/ProcessHeadCut.lua | 3 ++- LuaLibs/ProcessSplit.lua | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/LuaLibs/ProcessHeadCut.lua b/LuaLibs/ProcessHeadCut.lua index b6671f4..67a3465 100644 --- a/LuaLibs/ProcessHeadCut.lua +++ b/LuaLibs/ProcessHeadCut.lua @@ -254,7 +254,8 @@ local function MakeHeadChamfer( idProc, nPartId) EgtSetMachiningParam( MCH_MP.DEPTH, dDepthHeadChamfer + dExtra) EgtSetMachiningParam( MCH_MP.OFFSR, dExtra) -- assegno lato di lavoro - EgtSetMachiningParam( MCH_MP.WORKSIDE, MCH_MILL_WS.RIGHT) + EgtSetMachiningParam( MCH_MP.WORKSIDE, MCH_MILL_WS.LEFT) + EgtSetMachiningParam( MCH_MP.INVERT, true) -- eseguo if not ML.ApplyMachining( true, false) then local _, sErr = EgtGetLastMachMgrError() diff --git a/LuaLibs/ProcessSplit.lua b/LuaLibs/ProcessSplit.lua index 5f8a800..58f393b 100644 --- a/LuaLibs/ProcessSplit.lua +++ b/LuaLibs/ProcessSplit.lua @@ -258,7 +258,8 @@ local function MakeTailChamfer( idProc, nPartId, dDepthTailChamfer) EgtSetMachiningParam( MCH_MP.DEPTH, dDepthTailChamfer + dExtra) EgtSetMachiningParam( MCH_MP.OFFSR, dExtra) -- assegno lato di lavoro - EgtSetMachiningParam( MCH_MP.WORKSIDE, MCH_MILL_WS.RIGHT) + EgtSetMachiningParam( MCH_MP.WORKSIDE, MCH_MILL_WS.LEFT) + EgtSetMachiningParam( MCH_MP.INVERT, true) -- eseguo if not ML.ApplyMachining( true, false) then local _, sErr = EgtGetLastMachMgrError() From bf58b58b478d65f06e3e14e6de47d58bd21be7e5 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Mon, 1 Jun 2026 07:47:20 +0200 Subject: [PATCH 3/3] DataBeam 3.1e2 : - piccoli aggiustamenti - sistemazioni a DtMortise per macchina Oikos XL. --- LuaLibs/ProcessCut.lua | 2 +- LuaLibs/ProcessDtMortise.lua | 32 ++++++++++++++++++++++++++++---- LuaLibs/ProcessHeadCut.lua | 8 +++++--- Version.lua | 4 ++-- 4 files changed, 36 insertions(+), 10 deletions(-) diff --git a/LuaLibs/ProcessCut.lua b/LuaLibs/ProcessCut.lua index 3ac3f4f..064e709 100644 --- a/LuaLibs/ProcessCut.lua +++ b/LuaLibs/ProcessCut.lua @@ -63,7 +63,7 @@ function ProcessCut.Classify( Proc, b3Raw) if ( BD.C_SIMM and BD.DOWN_HEAD) or BD.TURN then return true end - local bForceNoBeamRotation = EgtGetInfo( Proc.Id, 'Q18', 'd') or 0 == 1 + local bForceNoBeamRotation = ( EgtGetInfo( Proc.Id, 'Q18', 'i') == 1) -- recupero i dati del taglio local ptC, vtN = EgtSurfTmFacetCenter( Proc.Id, 0, GDB_ID.ROOT) -- calcolo le massime estensioni lineari orizzontale e verticale della faccia diff --git a/LuaLibs/ProcessDtMortise.lua b/LuaLibs/ProcessDtMortise.lua index dcaf46a..720c031 100644 --- a/LuaLibs/ProcessDtMortise.lua +++ b/LuaLibs/ProcessDtMortise.lua @@ -362,7 +362,7 @@ function ProcessDtMortise.Make( Proc, nPhase, nRawId, nPartId, dCurrOvmH) dMaxMat = 30 dSideAng = 0 bCW = true - bMillOnAggregate = sMchExt == '_AT' + bMillOnAggregate = ( sMchExt == '_AT') if EgtMdbSetCurrMachining( sMilling) then local sTuuid = EgtMdbGetCurrMachiningParam( MCH_MP.TUUID) if EgtTdbSetCurrTool( EgtTdbGetToolFromUUID( sTuuid) or '') then @@ -424,8 +424,16 @@ function ProcessDtMortise.Make( Proc, nPhase, nRawId, nPartId, dCurrOvmH) end -- aggiungo geometria EgtSetMachiningGeometry( {{ Aux2Id, -1}}) - -- dichiaro non si generano sfridi per VMill + -- recupero note utente per aggiornarle local sUserNotes = EgtGetMachiningParam( MCH_MP.USERNOTES) or '' + -- eventuali impostazioni per 3° asse rot + local sAuxDir, sInitAngs = BL.GetAuxDir( sPocketing, "", b3Solid, vtExtr, vtExtr) + if sAuxDir then + sUserNotes = EgtSetValInNotes( sUserNotes, 'VtAuxDir', sAuxDir) + EgtSetMachiningParam( MCH_MP.INITANGS, sInitAngs) + EgtSetMachiningParam( MCH_MP.SCC, MCH_SCC.STD) + end + -- dichiaro non si generano sfridi per VMill sUserNotes = EgtSetValInNotes( sUserNotes, 'MaxElev', EgtNumToString( dMaxMat - 0.1, 1)) sUserNotes = EgtSetValInNotes( sUserNotes, 'VMRS', 0) EgtSetMachiningParam( MCH_MP.USERNOTES, sUserNotes) @@ -537,8 +545,16 @@ function ProcessDtMortise.Make( Proc, nPhase, nRawId, nPartId, dCurrOvmH) if nSCC then EgtSetMachiningParam( MCH_MP.SCC, nSCC) end - -- dichiaro non si generano sfridi per VMill + -- recupero note utente per aggiornarle local sUserNotes = EgtGetMachiningParam( MCH_MP.USERNOTES) or '' + -- eventuali impostazioni per 3° asse rot + local sAuxDir, sInitAngs = BL.GetAuxDir( sMilling, "", b3Solid, vtExtr, vtExtr) + if sAuxDir then + sUserNotes = EgtSetValInNotes( sUserNotes, 'VtAuxDir', sAuxDir) + EgtSetMachiningParam( MCH_MP.INITANGS, sInitAngs) + EgtSetMachiningParam( MCH_MP.SCC, MCH_SCC.STD) + end + -- dichiaro non si generano sfridi per VMill sUserNotes = EgtSetValInNotes( sUserNotes, 'MaxElev', EgtNumToString( dAltMort, 1)) sUserNotes = EgtSetValInNotes( sUserNotes, 'VMRS', 0) -- se lavorazione in doppio @@ -697,12 +713,20 @@ function ProcessDtMortise.Make( Proc, nPhase, nRawId, nPartId, dCurrOvmH) if nSCC then EgtSetMachiningParam( MCH_MP.SCC, nSCC) end + -- recupero note utente per aggiornarle + local sUserNotes = EgtGetMachiningParam( MCH_MP.USERNOTES) or '' + -- eventuali impostazioni per 3° asse rot + local sAuxDir, sInitAngs = BL.GetAuxDir( sMilling, "", b3Solid, vtExtr, vtExtr) + if sAuxDir then + sUserNotes = EgtSetValInNotes( sUserNotes, 'VtAuxDir', sAuxDir) + EgtSetMachiningParam( MCH_MP.INITANGS, sInitAngs) + EgtSetMachiningParam( MCH_MP.SCC, MCH_SCC.STD) + end -- dichiaro massima elevazione e assenza sfridi per VMill local dMaxElev = dMaxMat if bMultipleZPasses then dMaxElev = dVerticalStep end - local sUserNotes = EgtGetMachiningParam( MCH_MP.USERNOTES) or '' sUserNotes = EgtSetValInNotes( sUserNotes, 'MaxElev', EgtNumToString( dMaxElev - 0.1, 1)) sUserNotes = EgtSetValInNotes( sUserNotes, 'VMRS', 0) -- in presenza di pocket dichiaro che non sto entrando e uscendo nel grezzo diff --git a/LuaLibs/ProcessHeadCut.lua b/LuaLibs/ProcessHeadCut.lua index 67a3465..e075c0d 100644 --- a/LuaLibs/ProcessHeadCut.lua +++ b/LuaLibs/ProcessHeadCut.lua @@ -162,10 +162,11 @@ end --------------------------------------------------------------------- -- smussi in testa local function MakeHeadChamfer( idProc, nPartId) + local dDepthHeadChamfer = EgtGetInfo( idProc, 'Q08', 'd') or 0 -- se non attivo esco subito if dDepthHeadChamfer < 100 * GEO.EPS_SMALL then - return + return true, nil end -- recupero gruppo per geometria aggiuntiva @@ -640,11 +641,12 @@ function ProcessHeadCut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead, bNeedHCut local bOk, sErr = MakeStandardCuts( Proc, b3Raw, nCuts, dOffsL, HeadCutType, Cutting1Data, Cutting2Data, nil, dOvmHead) - -- alla fine del taglio si aggiungono gli smussi in testa local _, sErrHeadChamfer = MakeHeadChamfer( nOriId or Proc.Id, nPartId) if sErr then - sErr = sErr..'\n'..sErrHeadChamfer + if sErrHeadChamfer then + sErr = sErr..'\n'..sErrHeadChamfer + end else sErr = sErrHeadChamfer end diff --git a/Version.lua b/Version.lua index 8d60f54..f09b9a3 100644 --- a/Version.lua +++ b/Version.lua @@ -1,6 +1,6 @@ --- Version.lua by Egaltech s.r.l. 2026/02/09 +-- Version.lua by Egaltech s.r.l. 2026/05/31 -- Gestione della versione di Beam NAME = 'Beam' -VERSION = '3.1e1' +VERSION = '3.1e2' MIN_EXE = '3.1b1'