Page MenuHome

Absolute grid snapping: Half unit offset issue with edges, if their total length in units is an odd number
Closed, InvalidPublic

Description

System Information
Win10 64 bit - I7 3770 CPU - AMD 77xx GPU - 24 Gigs RAM

Blender Version
Broken: hash 26f9844
Worked: never

Short description of error
When moving grid-aligned edges (with absolute grid snapping enabled), edges with a unit length that is an even number will work properly, while edges with a unit length that is an odd number will at least see a half-unit offset. You instead need to move each vertex individually if you want the geometry to stay aligned to the grid.

Exact steps for others to reproduce the error
Take the two unit edge and move it, see how it stays aligned to the grid. Now move the one unit edge and notice how it offsets by a half unit. Move the three unit edge and see how it is the same. Move the four unit edge and see how it works properly. Now take the three unit edge and the two unit edge and move them at the same time, notice how there is an offset of a quarter unit.

.blend

Thanks in advance if this gets fixed.

Details

Type
Bug

Event Timeline

LazyDodo (LazyDodo) triaged this task as Needs Information from User priority.

I think you just need to turn absolute grid snapping off while you move the odd sized pieces? it'll still move in grid sized increments so should work?

That does work, but I don't see a reason why the absolute snapping must be turned off for moving to absolute positions.

On top of that, I just did a quick test and the offset bug does not care if the odd pieces are already snapped to the grid (move the pieces out of alignment a little with snap mode off and then turn it back on, the selected odd edges when grabbed will still be half a unit off). In this case it's not even possible to avoid having to do it one vertex at a time.

It is completely logical.
Pivot of transformation is Median point of selection.
So, with an odd number, this median point starts at half of a unit. When it is moved ; median point is snapped at a grid point and there is a logical offset of half-unit for vertices that were originally placed on grid.

To avoïd that, you just have to use active element as pivot of transformation and choose a vertex as active element.

You have to consider that case is really strict. All vertices of your starting selection are already on grid.
Absolute grid snapping can't snap vertices of a multiple selection to grid in most of cases. It would resize your edges in a way that would destroy shape of your selection.
You are still free to use median point as pivot point and then use Shift S snap menu Selection to Grid if you don't care about edges length.

Bastien Montagne (mont29) closed this task as Invalid.
Bastien Montagne (mont29) claimed this task.

Thanks @ronan ducluzeau (zeauro) for the detailed explanation, nothing to add here, no bug. :)