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 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) 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 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) 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'