diff --git a/LuaLibs/ProcessLapJoint.lua b/LuaLibs/ProcessLapJoint.lua index 1931197..0b63fe5 100644 --- a/LuaLibs/ProcessLapJoint.lua +++ b/LuaLibs/ProcessLapJoint.lua @@ -6966,8 +6966,10 @@ local function MakeLongMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead) -- superficie di fondo nSurfBottomId = EgtSurfTmPlaneInBBox( nAddGrpId, ptMaxBox, vtOrtho, b3SolidExtended, GDB_ID.ROOT) -- calcolo di quanto allargare le superfici - local dWidth = EgtIf( Proc.AffectedFaces.Front, Proc.Box:getDimZ(), Proc.Box:getDimY()) - dAddLen = min( dWidth, 100) / 2 + if dAddLen == 0 then + local dWidth = EgtIf( Proc.AffectedFaces.Front, Proc.Box:getDimZ(), Proc.Box:getDimY()) + dAddLen = min( dWidth, 100) / 2 + end end -- la divido in parti lungo X local vAddId = {} diff --git a/LuaLibs/ProcessLongDoubleCut.lua b/LuaLibs/ProcessLongDoubleCut.lua index 55cbd9f..85d44a2 100644 --- a/LuaLibs/ProcessLongDoubleCut.lua +++ b/LuaLibs/ProcessLongDoubleCut.lua @@ -442,6 +442,7 @@ function ProcessLong2Cut.Make( Proc, nPhase, nRawId, nPartId, bForcedBladeMaster local vWidth = {} _, _, vWidth[1] = BL.GetFaceHvRefDim( Proc.Id, tFaceLong[1]) _, _, vWidth[2] = BL.GetFaceHvRefDim( Proc.Id, tFaceLong[2]) + local vElevation = { vWidth[2], vWidth[1]} -- Se da sopra o ( da tutte i lati con testa da sotto) e taglio di lama e lunghezza facce maggiore del parametro lunghezza minima if ( bCanUseUnderBlade or bCanUseBlade) and bUseBlade and Proc.Box:getDimX() > dLimMinPiece - 1 then @@ -1328,7 +1329,13 @@ function ProcessLong2Cut.Make( Proc, nPhase, nRawId, nPartId, bForcedBladeMaster local dStep = 0 local dAgg = EgtIf( bConvex, 2 * BD.CUT_EXTRA, BD.CUT_EXTRA) local dLargh = vWidth[vOrd[i]] - if not bSide and dLargh > 0.8 * dToolDiam then + -- controllo se lavorazione completa + local dMachDepth = vElevation[vOrd[i]] + if dMachDepth > dMaxDepth - 10 * GEO.EPS_ANG_SMALL then + sWarn = 'Warning : elevation bigger than max tool depth' + EgtOutLog( sWarn) + end + if not bSide and dLargh > 0.8 * dToolDiam then nO = ceil( dLargh / ( 0.6 * dToolDiam)) if nO > 1 then dStep = dLargh / nO @@ -1405,7 +1412,8 @@ function ProcessLong2Cut.Make( Proc, nPhase, nRawId, nPartId, bForcedBladeMaster return false, sErr end local AddId = EgtCopyGlob( Proc.Id, nAddGrpId) or GDB_ID.NULL - local AddProc = { Id = AddId, Grp = 0, Prc = 12, Box = Proc.Box, Fct = Proc.Fct, Flg = Proc.Flg, PartId = Proc.PartId, bMoveAfterSplit = true} + local AddProc = { Id = AddId, Grp = 0, Prc = 12, Box = Proc.Box, Fct = Proc.Fct, Flg = Proc.Flg, + PartId = Proc.PartId, TaskId = Proc.TaskId, CutId = Proc.CutId, bMoveAfterSplit = true} Topology.Classify( AddProc, b3Raw) table.insert( AddedIds, AddProc) end diff --git a/LuaLibs/ProcessStepJointNotch.lua b/LuaLibs/ProcessStepJointNotch.lua index 6c01f95..dbb586a 100644 --- a/LuaLibs/ProcessStepJointNotch.lua +++ b/LuaLibs/ProcessStepJointNotch.lua @@ -132,7 +132,12 @@ local function MakePocket( Proc, nPartId, ptPs, vtN, nFaceRef, nDiffWidth, sMchF -- calcolo il diametro utensile local dDiamTool if nUseRoughTool == 1 then - dDiamTool = max( 80, min( tBHx[nFaceRef][1], tBHx[nFaceRef][2])) + -- se feature passante prendo utensile più grande possibile + if ( Proc.AffectedFaces.Top and Proc.AffectedFaces.Bottom) or ( Proc.AffectedFaces.Front and Proc.AffectedFaces.Back) then + dDiamTool = nil + else + dDiamTool = max( 80, min( tBHx[nFaceRef][1], tBHx[nFaceRef][2])) + end else -- se non uso truciolatore prendo il valore dalle dimensioni minime delle facce dDiamTool = min( tBHx[nFaceRef][1], tBHx[nFaceRef][2]) diff --git a/UpdateLog.txt b/UpdateLog.txt index c03e8fe..086b4c5 100644 --- a/UpdateLog.txt +++ b/UpdateLog.txt @@ -1,5 +1,11 @@ ==== Beam Update Log ==== +Versione 2.7f2 (18/06/2025) +- Modif : in LongDoubleCut aggiunto messaggio feature non completa se utensile non arriva sul fondo +- Modif : in StepJointNotch, se si forza truciolatore, si prende utensile più grande +- Fixed : in LapJoint, piccola correzione calcolo sovrapposizione trimesh per smuotatura +- Fixed : in LapJoint, per sovrapposizione in spezzatura, corretto caso tipo Tunnel + Versione 2.7f1 (03/06/2025) - Modif : in tenone coda di rondine modificato angolo limite tenone per lavorazione in sottosquadro - Modif : migliorie per lavorazioni su aggregato diff --git a/Version.lua b/Version.lua index 737836e..9e44e6f 100644 --- a/Version.lua +++ b/Version.lua @@ -2,5 +2,5 @@ -- Gestione della versione di Beam NAME = 'Beam' -VERSION = '2.7f1' +VERSION = '2.7f2' MIN_EXE = '2.6e5'