Поехали браши, поехали крыши, поехали люди.
Локация, то бишь один или несколько брашей, после поворота на непрямые углы никому ничего не должны. Вроде бы кто-то и пытался объяснить почему, но вы тут все почему-то увлекаетесь переходом на личности и ничего толком не выясняете. Не тем делом занимаетесь. Разложим проблему по порядку:
1) Есть браш, прямой, сетке следующий, замечательный.
2) Берём этот браш и крутим его на 45 градусов или вообще на что угодно, что не делится без остатка на 90.
3) Браш получается кривой, с вертексами не на сетке, поганый.
В пункте 1 проблем нету, в пункте 3 проблемы есть. Смотрим чо происходит в пункте 2:
- Берёт хаммер центр браша. Ну или общий центр брашей.
- Берёт хаммер все их вертексы и заказанный вами угол поворота.
- Считает хаммер новые позиции вертексов согласно магическим формулам.
- И готово.
А как же он, гадина, всё-таки считает эти позиции? Через старые добрые функции из школьной программы - синус и косинус. Ежели интересно повторить - за этим уж, и правда, извольте обратиться к учебным материалам.
Принимают эти функции угол в градусах и выдают своё значение - от -1 до 1. И так для поворота на какой-то там угол в одной плоскости у нас получается два значения от этих двух функций. А жопа здесь в том, что они ну никак не хотят договариваться и выдавать два красивых числа, ну например 0.5 и 0.5.
Вот имеем браш, чисто теоретический. А для простоты смотрим пока на один вертекс наверху. Этот вертекс сидит пока что прямо над центром браша, в 256 юнитах. Сделаем поворот на 30 градусов через Ctrl+M. Синус от 30 - 0.5. Умножили 256 на этот синус, получили 128. Вот и часть новой позиции - по одной оси.
А косинус от 30 - 0.866 с длиннющим хвостом. Вот и жопа наша пришла, 256 * 0.866 = 221.696. Значит по другой оси наш вертекс уже съехал. И пару правильных, красивых значений тут ну никак не получишь.
Хотя вру, конечно. Не зря и про 90 градусов упоминал. При значениях, которые делятся на 90 без остатка, эти функции выдают -1/0/1. Тогда и проблем не будет.
А в этом вашем случае с 45 градусами и синус, и косинус равны 0.7071 с опять каким-то хвостом. Ну вы понели. Да, и Ctrl+B / Snap to grid тут не сильно поможет в исправлении из-за этих же самых синусов - какой-то вертекс окажется на сетке, а расстояние до других по X/Y осям целым больше не будет.
Так что ещё раз - строить всё надо с самого начала под нужными углами. А сейчас - спасать вручную то, что имеется.