diff --git a/LuaLibs/BeamExec.lua b/LuaLibs/BeamExec.lua index d402a87..6f101f2 100644 --- a/LuaLibs/BeamExec.lua +++ b/LuaLibs/BeamExec.lua @@ -1402,18 +1402,18 @@ local function CheckMirrorDtMortise( Proc, ProcMirror, b3Raw, AuxId) local ptCenRaw = b3Raw:getCenter() -- controllo che il centro delle due mortase sia allineato e che queste siano equidistanti dalla mezzeria della trave if AreSameOrOppositeVectorApprox( vtExtr, Y_AX()) then - bIsMirror = vtDisplacement:getX() < 500 * GEO.EPS_SMALL and vtDisplacement:getZ() < 500 * GEO.EPS_SMALL and + bIsMirror = abs( vtDisplacement:getX()) < 500 * GEO.EPS_SMALL and abs( vtDisplacement:getZ()) < 500 * GEO.EPS_SMALL and ( abs( ptBC:getY() - ptCenRaw:getY()) - abs( ptBCMirror:getY() - ptCenRaw:getY())) < 500 * GEO.EPS_SMALL elseif AreSameOrOppositeVectorApprox( vtExtr, Z_AX()) then - bIsMirror = vtDisplacement:getX() < 500 * GEO.EPS_SMALL and vtDisplacement:getY() < 500 * GEO.EPS_SMALL and + bIsMirror = abs( vtDisplacement:getX()) < 500 * GEO.EPS_SMALL and abs( vtDisplacement:getY()) < 500 * GEO.EPS_SMALL and ( abs( ptBC:getZ() - ptCenRaw:getZ()) - abs( ptBCMirror:getZ() - ptCenRaw:getZ())) < 500 * GEO.EPS_SMALL end -- controllo che le dimensioni dei due box siano le stesse - bIsMirror = abs( b3DtMrt:getDimX() - b3DtMrtMirror:getDimX()) < 500 * GEO.EPS_SMALL and + bIsMirror = bIsMirror and abs( b3DtMrt:getDimX() - b3DtMrtMirror:getDimX()) < 500 * GEO.EPS_SMALL and abs( b3DtMrt:getDimY() - b3DtMrtMirror:getDimY()) < 500 * GEO.EPS_SMALL and abs( b3DtMrt:getDimZ() - b3DtMrtMirror:getDimZ()) < 500 * GEO.EPS_SMALL -- controllo che l'asse delle due mortase sia allineato - bIsMirror = AreSameVectorApprox( vtAx, vtAxMirror) + bIsMirror = bIsMirror and AreSameVectorApprox( vtAx, vtAxMirror) end return bIsMirror end