From aeca298feb09f86049fba7a593c065f184d56f75 Mon Sep 17 00:00:00 2001 From: "andrea.villa" Date: Wed, 23 Apr 2025 15:21:13 +0200 Subject: [PATCH 1/5] =?UTF-8?q?In=20SplitCut,=20si=20riduce=20percorso=20d?= =?UTF-8?q?i=20taglio=20solo=20se=20il=20pezzo=20=C3=A8=20effettivamente?= =?UTF-8?q?=20alto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LuaLibs/ProcessSplit.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LuaLibs/ProcessSplit.lua b/LuaLibs/ProcessSplit.lua index b221d5d..f2d888d 100644 --- a/LuaLibs/ProcessSplit.lua +++ b/LuaLibs/ProcessSplit.lua @@ -374,7 +374,7 @@ local function MakeStandardCuts( Proc, b3Raw, nCuts, dOffsetBetweenCuts, TailCut local dCutExtra = 0 local dAccStart = 0 local dAccEnd = 0 - if TailCutType.bBigSectionCut and BD.C_SIMM then + if TailCutType.bBigSectionCut and BD.C_SIMM and b3Raw:getDimZ() > BD.MIN_DIM_HBEAM + 10 * GEO.EPS_SMALL then -- qui arrivano sezioni molto grandi su macchine tipo PF con materiale da asportare inferiore allo spessore lama local dSawRad = Cutting1Data.dSawDiam / 2 dCutExtra = - ( b3Raw:getDimY() - dSawRad) From 2ed5af96610a6f7b54a3904e242ae3e814aabf94 Mon Sep 17 00:00:00 2001 From: "andrea.villa" Date: Mon, 28 Apr 2025 15:08:16 +0200 Subject: [PATCH 2/5] =?UTF-8?q?In=20Drill,=20dopo=20che=20l'utensile=20?= =?UTF-8?q?=C3=A8=20stato=20scelto=20si=20verifica=20compatibilit=C3=A0=20?= =?UTF-8?q?considerando=20angolo=20foro.=20Se=20non=20arriva=20in=20fondo,?= =?UTF-8?q?=20si=20cerca=20utensile=20pi=C3=B9=20lungo.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LuaLibs/MachiningLib.lua | 10 +++++----- LuaLibs/ProcessDrill.lua | 27 +++++++++++++++++++++++---- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/LuaLibs/MachiningLib.lua b/LuaLibs/MachiningLib.lua index cfce39b..b8970c3 100644 --- a/LuaLibs/MachiningLib.lua +++ b/LuaLibs/MachiningLib.lua @@ -342,8 +342,8 @@ local function FindMachining( MachiningType, sType, Params, bTopHead, bDownHead, local ForStart = 1 local ForEnd = #Machinings local ForStep = 1 - -- le forature vanno scorse dal diametro maggiore al minore - if MachiningType == MCH_MY.DRILLING then + -- le forature vanno scorse dal diametro maggiore al minore, a meno che non sia stato passato un ordinamento specifico + if MachiningType == MCH_MY.DRILLING and ( not sSortingCriterion or sSortingCriterion == '') then ForStart = #Machinings ForEnd = 1 ForStep = -1 @@ -455,7 +455,7 @@ function MachiningLib.FindCutting( sType, bTopHead, bDownHead, dDepth, sSortingC end --------------------------------------------------------------------- -function MachiningLib.FindDrilling( dDiam, dDepth, bTopHead, bDownHead, bExcludeH2, bAngleTransmission, bIsPredrill) +function MachiningLib.FindDrilling( dDiam, dDepth, bTopHead, bDownHead, bExcludeH2, bAngleTransmission, bIsPredrill, bExcludeH3, sSortingCriterion) local MachiningName, MachiningType, Param1, Param2, Param3, Param4, Param5, sTypeMach -- se il foro è un predrill, cerco solo punte abilitate al Predrill if bIsPredrill then @@ -463,9 +463,9 @@ function MachiningLib.FindDrilling( dDiam, dDepth, bTopHead, bDownHead, bExclude else sTypeMach = EgtIf( bAngleTransmission, 'Drill_AT', 'Drill') end - MachiningName, MachiningType, Param1, Param2, Param3, Param4, Param5 = FindMachining( MCH_MY.DRILLING, sTypeMach, { Diam = dDiam, Depth = dDepth}, bTopHead, bDownHead, bExcludeH2) + MachiningName, MachiningType, Param1, Param2, Param3, Param4, Param5 = FindMachining( MCH_MY.DRILLING, sTypeMach, { Diam = dDiam, Depth = dDepth}, bTopHead, bDownHead, bExcludeH2, bExcludeH3, sSortingCriterion) if ( not MachiningName or MachiningName == '') then - MachiningName, MachiningType, Param1, Param2, Param3, Param4, Param5 = FindMachining( MCH_MY.DRILLING, EgtIf( bAngleTransmission, 'Pocket_AT', 'Pocket'), { Diam = dDiam, Depth = dDepth}, bTopHead, bDownHead) + MachiningName, MachiningType, Param1, Param2, Param3, Param4, Param5 = FindMachining( MCH_MY.DRILLING, EgtIf( bAngleTransmission, 'Pocket_AT', 'Pocket'), { Diam = dDiam, Depth = dDepth}, bTopHead, bDownHead, bExcludeH2, bExcludeH3, sSortingCriterion) end if MachiningName and MachiningName ~= '' then return MachiningName, MachiningType, Param1, Param2, Param3, Param4, Param5 diff --git a/LuaLibs/ProcessDrill.lua b/LuaLibs/ProcessDrill.lua index 9701ea4..a20505f 100644 --- a/LuaLibs/ProcessDrill.lua +++ b/LuaLibs/ProcessDrill.lua @@ -389,6 +389,25 @@ function ProcessDrill.Make( Proc, nPhase, nRawId, nPartId) -- primo gruppo di controlli con lunghezza utensile pari a metà foro se passante -- recupero la lavorazione local sDrilling, sType, dMaxDepth, dMaxToolLength, dToolDiam, dDiamTh, dToolFreeLen = ML.FindDrilling( dDiam, dCheckDepth, bDrillUp, bDrillDown, bExcludeH2, bDrillAngTrasm, Proc.IsPredrill) + + if sDrilling then + -- Determino la faccia di inizio del foro e dati correlati + local nFac, CosB, vFaces = GetHoleStartData( ptCen, vtExtr, b3Solid) + -- Calcolo acciorciamento affondamento utile per evitare collisione portautensile con faccia + local TgA = CosB / sqrt( 1 - CosB * CosB) + local dSubL = ( dDiamTh / 2 + ( Proc.Diam - dToolDiam) / 2 + 4) * TgA + -- Per fori molto inclinati ( < 30 gradi) si usa la testa della macchina per l'accorciamento. Fast esclusa + if BD.C_SIMM and CosB > 0.866 then + dSubL = ( 190 / 2 + ( Proc.Diam - dToolDiam) / 2 + 4) * TgA - 116 + end + local dMaxDepthOri = dMaxDepth + dMaxDepth = min( dMaxDepth, max( dToolFreeLen - dSubL, 0)) + -- se utensile scelto non arriva in fondo, cerco il più lungo + if dMaxDepth < GEO.EPS_SMALL * 10 then + sDrilling, sType, dMaxDepth, dMaxToolLength, dToolDiam, dDiamTh, dToolFreeLen = ML.FindDrilling( dDiam, dCheckDepth, bDrillUp, bDrillDown, bExcludeH2, bDrillAngTrasm, Proc.IsPredrill, nil, 'Longest') + end + end + if not sDrilling and dCheckDepth then sDrilling, sType, dMaxDepth, dMaxToolLength, dToolDiam, dDiamTh, dToolFreeLen = ML.FindDrilling( dDiam, 0, bDrillUp, bDrillDown, bExcludeH2, bDrillAngTrasm, Proc.IsPredrill) if sDrilling then dCheckDepth = nil end @@ -496,15 +515,15 @@ function ProcessDrill.Make( Proc, nPhase, nRawId, nPartId) end end -- Determino la faccia di inizio del foro e dati correlati - local nFac, CosB, vFaces = GetHoleStartData( ptCen, vtExtr, b3Solid) + nFac, CosB, vFaces = GetHoleStartData( ptCen, vtExtr, b3Solid) -- Calcolo acciorciamento affondamento utile per evitare collisione portautensile con faccia - local TgA = CosB / sqrt( 1 - CosB * CosB) - local dSubL = ( dDiamTh / 2 + ( Proc.Diam - dToolDiam) / 2 + 4) * TgA + TgA = CosB / sqrt( 1 - CosB * CosB) + dSubL = ( dDiamTh / 2 + ( Proc.Diam - dToolDiam) / 2 + 4) * TgA -- Per fori molto inclinati ( < 30 gradi) si usa la testa della macchina per l'accorciamento. Fast esclusa if BD.C_SIMM and CosB > 0.866 then dSubL = ( 190 / 2 + ( Proc.Diam - dToolDiam) / 2 + 4) * TgA - 116 end - local dMaxDepthOri = dMaxDepth + dMaxDepthOri = dMaxDepth dMaxDepth = min( dMaxDepth, max( dToolFreeLen - dSubL, 0)) -- Verifico inclinazione foro nei limiti local bTryDrill = EgtIf( dMaxDepth > 0, ( CosB < BD.DRILL_VX_MAX), false) From 7a972cccc8363fd61092b6115cb623824dc3b9d2 Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Mon, 28 Apr 2025 19:07:22 +0200 Subject: [PATCH 3/5] - in LapJoint se tunnel verticale lavorato solo da sopra e l'utensile non arriva, si restituisce warning --- LuaLibs/ProcessLapJoint.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/LuaLibs/ProcessLapJoint.lua b/LuaLibs/ProcessLapJoint.lua index 41ef03b..dc928d3 100644 --- a/LuaLibs/ProcessLapJoint.lua +++ b/LuaLibs/ProcessLapJoint.lua @@ -5848,10 +5848,11 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa local sMyMchFind = 'Pocket' local nOk, sErr nOk, sErr, dDimMin, dDimMax, dDepth, vtOrtho, - nLundIdFace = MakeByPockets( Proc, nPhase, nRawId, nPartId, nChamfer, dDepthCham, nAddGrpId, sMyMchFind, false, b3Solid, bClosedOrthoFaces) + nLundIdFace, sErr = MakeByPockets( Proc, nPhase, nRawId, nPartId, nChamfer, dDepthCham, nAddGrpId, sMyMchFind, false, b3Solid, bClosedOrthoFaces) if nOk < 0 then return false, sErr elseif nOk > 0 then + sWarn = sErr bTryWithBlades = false end end From 5331466c4f9ab8ef97319f40fc18fc6ef1ee6d9c Mon Sep 17 00:00:00 2001 From: "andrea.villa" Date: Wed, 30 Apr 2025 16:15:21 +0200 Subject: [PATCH 4/5] =?UTF-8?q?In=20BatchProcess,=20anche=20se=20non=20?= =?UTF-8?q?=C3=A8=20da=20riprocessare,=20si=20setta=20come=20nota=20sul=20?= =?UTF-8?q?MachGroup=20il=20nome=20del=20codice=20CNC=20da=20utilizzare?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BatchProcess.lua | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/BatchProcess.lua b/BatchProcess.lua index fb9cef2..04ad952 100644 --- a/BatchProcess.lua +++ b/BatchProcess.lua @@ -526,6 +526,12 @@ else end -- Aggiorno eventuali dati ausiliari UpdateAuxData( sBtmFile) + + -- Anche se non è da riprocessare, imposto nome file CN. + -- Se file TS7 importato da altro PC, 'BEAM.FILE' è cambiato da un PC all'altro. Di conseguenza si deve aggiornare nome file che si andrà a generare. + local _, sName, _ = EgtSplitPath( BEAM.FILE) + EgtSetInfo( EgtGetLastMachGroup(), 'NcName', sName .. '.cnc') + -- Passo in modalità lavora EgtSetCurrMachGroup( EgtGetLastMachGroup()) -- Se necessario eseguo aggiornamento con setup corrente e ricalcolo delle lavorazioni From e81d1aef66666c5bd1242cb2a9f8226f10fdeee0 Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Mon, 5 May 2025 16:57:35 +0200 Subject: [PATCH 5/5] update log e version --- UpdateLog.txt | 6 ++++++ Version.lua | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/UpdateLog.txt b/UpdateLog.txt index 6127303..e7aaa07 100644 --- a/UpdateLog.txt +++ b/UpdateLog.txt @@ -1,4 +1,10 @@ ==== Beam Update Log ==== + +Versione 2.7e1 (05/05/2025) +- Fixed : in taglio di separazione si riduce percorso di taglio solo se il pezzo è effettivamente alto +- Fixed : in foratura corretto caso in cui non si sceglieva l'utensile più lungo disponibile +- Fixed : In BatchProcess (Ts7) corretta generazione in caso di progetto senza ricalcolo +- Modif : in LapJoint se tunnel verticale lavorato solo da sopra e l'utensile non arriva, si restituisce warning Versione 2.7d3 (22/04/2025) - Fixed : in LapJoint corretta gestione errata Q04 diff --git a/Version.lua b/Version.lua index 50835a6..3cdf535 100644 --- a/Version.lua +++ b/Version.lua @@ -2,5 +2,5 @@ -- Gestione della versione di Beam NAME = 'Beam' -VERSION = '2.7d3' +VERSION = '2.7e1' MIN_EXE = '2.6e5'