diff --git a/LuaLibs/DiceCut.lua b/LuaLibs/DiceCut.lua index 911abb2..d07cfff 100644 --- a/LuaLibs/DiceCut.lua +++ b/LuaLibs/DiceCut.lua @@ -1,4 +1,4 @@ --- DiceCut.lua by Egaltech s.r.l. 2023/01/09 +-- DiceCut.lua by Egaltech s.r.l. 2023/02/05 -- Gestione dei piano paralleli nei tagli lunghi: equidistanziamento dei piani paralleli -- Tabella per definizione modulo @@ -144,8 +144,8 @@ local function GetOrtoCutCenter( FacetId, ptC, vtN, vtO, dOffsetEff, dNzLimDwnUp EgtErase( IdAuxLocal) EgtSetGridFrame(Frame3d()) -- riferimento intrinseco - local asseX = vtO - local asseY = asseX ^ vtN + local asseX = Vector3d( vtO) + local asseY = vtN ^ asseX local Frame = Frame3d( ptC, ptC + asseX, ptC + asseY) -- ingombro della faccia secondo questo riferimento local Box = EgtGetBBoxRef( FacetId, GDB_BB.STANDARD, Frame) @@ -160,12 +160,11 @@ local function GetOrtoCutCenter( FacetId, ptC, vtN, vtO, dOffsetEff, dNzLimDwnUp end local N = ceil( dLen / dOffsetEff) - local dOffsetRel = dLen / N + local dOffsetRel = ( dLen / N) + 10 * GEO.EPS_SMALL local dCopyPlane local dCenOffs = ( Box:getMax():getX() + Box:getMin():getX()) / 2 if dLen <= dOffsetRel then - --dOffsetRel = 0 dCopyPlane = 1 elseif dLen <= 2 * dOffsetRel then dOffsetRel = dOffsetEff @@ -177,8 +176,7 @@ local function GetOrtoCutCenter( FacetId, ptC, vtN, vtO, dOffsetEff, dNzLimDwnUp dCopyPlane = 0.5 end end - - + return dOffsetRel, dCopyPlane, dCenOffs, ptS end diff --git a/LuaLibs/FacesBySaw.lua b/LuaLibs/FacesBySaw.lua index ab3d144..60b35c6 100644 --- a/LuaLibs/FacesBySaw.lua +++ b/LuaLibs/FacesBySaw.lua @@ -141,8 +141,8 @@ function FacesBySaw.MakeOne( nSurfId, nFacet, sCutting, dSawDiam, Par5, dVzLimDw ( not bDownHead or abs( vtTg:getZ()) < 0.51) and abs( vtTg:getX()) < 0.9848 and ( ( abs( vtTg:getZ()) < 0.17 and ( vtV1:getZ() < -0.5 or vtV2:getZ() < -0.5) and not bDownHead) or - ( abs( vtTg:getZ()) < 0.51 and b3Box:getDimZ() > 300 and BD.C_SIMM and BD.MAX_HEIGHT > 450) or - ( Ktp * dLenLi2 < dLenLi and Ktp * dLenLo2 < dLenLo) or Ktp * ( dLenLi2 + dLenLo2) < ( dLenLi + dLenLo)) then + ( abs( vtTg:getZ()) < 0.51 and b3Box:getDimZ() > 300 and BD.C_SIMM and BD.MAX_HEIGHT > 450 and b3Box:getDimX() > BD.LEN_SHORT_PART) or + ( abs( vtTg:getZ()) < 0.51 and ( dLenLi2 + dLenLo2) < ( dLenLi + dLenLo)) or Ktp * ( dLenLi2 + dLenLo2) < ( dLenLi + dLenLo)) then dLiTang, dLiPerp, dLoTang, dLoPerp = dLi2Tang, dLi2Perp, dLo2Tang, dLo2Perp if BD.TURN then bTurnTang = true