diff --git a/LuaLibs/ProcessCut.lua b/LuaLibs/ProcessCut.lua index 6783093..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 @@ -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 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 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) 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) 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'