StunBreaker
Fast Align - 3d max script
StunBreaker 4925

Всем привет ! )

Рад снова представить вам свой очередной, простой и удобной скрипт для быстрого выравнивания объекта или целых групп. 

Совсем недавно был блог, где автор рассказывал об одном из методов выравнивания с помощью инструмента "Tape"

В целом метод вполне годный за исключением некоторых неудобств, которые могут возникнуть в частных случаях.. Мы разберём эти и другие случаи - которые не вызовут у вас аналогичных неудобств в работе со скриптом. 

Так же я заметил, что всё ещё слишком много людей "страдают" от этого выравнивания (в частности когда произведён "Reset XForm" - и вы уже не можете в свойствах увидеть угол поворота).

Так что поехали! 

ИНТЕРФЕЙС

В основу интерфейса, как всегда входит: минимализм и эффективность.

Тут собственно всё просто:

Set Align - самая важная кнопка, которая выравнивает по двум кликам ваш объект или группу объектов. По выбранной вами оси координат (X или Y). 

Align Axis (X, Y) - выбор нужной оси координат, по которой вы хотите выравнивать вашу геометрию.

Align Snap (2D, 3D) - выбор привязки 2D или 3D.  На примере разберём чем они отличаются между собой в работе со скриптом.

Help/About - помощь по скрипту которая ведёт на эту страницу.

Последовательность работы:

Просто выберите нужную ось по которой будет выравниваться ваша геометрия, выберите нужную вам привязку (2D  или 3D), после чего нажмите кнопку "Set Align".

Далее вы увидите, что ваш курсор изменился на перекрестие (крестик), в этом режиме вам нужно произвести два клика мышью по вертексам (точкам). Если вы внезапно передумали, то для отмены действия - можете просто нажать на ESC или правый клик мышки

Также немаловажно понимать простое правило: вектор который вычисляется из точек - имеет направление, и также вычисляется угол этого вектора к соотношению выбранной оси координат.. от направления вектора зависит в какую сторону будет произведён поворот вашей геометрии:

Для оси XСправа налево - поворот по часовой стрелке. Слева на право - против часовой

Для оси Y: Сверху вниз - поворот по часовой стрелке. Снизу вверх - против часовой.

На картинке сверху показана подробная схема - как производится поворот и в какую сторону.

Так же вы можете заметить что геометрия в первом случае повернута по часовой стрелке - и угол который при вычислении был равен 4, стал равен 0 - он выровнялся параллельно вашей выбранной оси.

Во втором случае - вектор был направлен в другую сторону, высчитывался угол (аналогично изначально равный 4) и геометрия повернулась уже против часовой стрелки ровно на этот угол - после чего уже угол стал равным 8.

Даже если вы ошиблись с направлением и повернули не в ту сторону куда хотели - ничего страшного, просто повторно нажмите "Set Align" и сделайте два клика мышкой в обратной последовательности по вашим вертексам.

Ниже постараюсь привести различные примеры в виде GIF картинок по применениям

(вы можете кликать по ним для воспроизведения).

Возможности выравнивания и как это выглядит: 

Обычное выравнивание по осям:

Как вы можете заметить выбран режим 3D привязки и во вьюпорте установлен вид сверху. Даже если ваша привязка будет попадать в разные точки по высотам Z оси - это не вызовет проблем.. Скрипт создаёт вектор направления из вертексов которые вы указываете, игнорируя их высоту.  Ниже пример из перспективы: 

Это весьма удобно в больших сценах или больших группах геометрии - в целом быстро и легко поворачивать.

Особенно когда идёт речь о группе вашей геометрии.. ниже пример:

И как немаловажно можно поворачивать объект относительно другого объекта, включая сплайны(чертежи) ! Пример:

Режим привязки в 2D осуществляется как правило в работе с чертежами (сплайнами), либо с геометрией которую вы создали из сплайнов (путём "экструда" или подобными вариантами)..  Далее пример :

Установка скрипта аналогична с моими всеми скриптами:

Просто скопируйте файлы из архива в папку Scripts вашей версии 3D Max.

(например для 2017 версии C:\Program Files\Autodesk\3ds Max 2017\scripts)

Далее перетащите во вьюпорт файл - Fast-Align.mcr  

После чего во вкладке "Customize User Interface" в ToolBars - вы увидите категорию (Category) 3DDD Scripts в ней сам скрипт Fast-Align.

p.s. если эти действия не понятны для вас можете просто запустите Fast-Align.ms через Run Script  smiley-smile.gif

Вывод таков: 

Просто, быстро и удобно.

Если вы использовали "линки" - то можете не переживать по этому поводу... Ничего ни к чему не линкуется! 

Выравнивание без надобности указывать точки одних и тех же высот. (особенно в виде сверху в режиме 3D привязки)

Выравнивание по другим объектам или сплайнам(чертежам).

Скрипт прошёл модерацию... и доступен к скачиванию в разделе: СКРИПТЫ  

Прямая ссылка

Так же учту любую вашу конструктивную критику и возможные советы по улучшению функционала!

Спасибо вам за внимание ! smiley-smile.gif

fast, align, script, rotate, angle, выровнять, выравнивание, скрипт, угол

Комментарии (39)

+2
mr.spoilt
mr.spoilt
Молодец, спасибо!
+6
StunBreaker
StunBreaker
рад стараться ! и вам спасибо )
+2
-NiK-
-NiK-
"от направления вектора зависит в какую сторону будет произведён поворот вашей геометрии".
Немножко тригонометрии, cross, dot, acos, и этого можно было бы избежать ;) Но с аналогичной штукой (в контексте анврапа) я и сам не справился пока мне не помогли.
+1
StunBreaker
StunBreaker
Спасибо NIK за отзыв - но у меня не было проблем чтоб избежать этого.. )
Напротив - может и не так часто - но поступает задача (как правило от архитекторов), повернуть геометрию ещё на столько же на сколько она уже повёрнута - (и когда угол уже не известен это может быть проблемой)..

Учту на будущее в любом случае - просто на этот момент не хотел пичкать лишние кнопки утяжеляющие интерфейс.. хотелось сделать очень лёгкий интерфейс. =)
+1
grdesigner
grdesigner
Просто шикарно, обязательно куплю.
0
StunBreaker
StunBreaker
вы меня совсем разбалуете ! ))
+5
grdesigner
grdesigner
Ну, разбаловать, если купить с двух аккаунтов :)
+1
art-ray
art-ray
Спасибо! Очень полезный скрипт. Иногда качнешь какую-нибудь модельку, а она криво стоит и начинаешь искать этот секретный угол)
0
StunBreaker
StunBreaker
Спасибо за отзыв ! )
Больше вам не придётся заниматься этими поисками )
+1
Jähman'
Jähman'
А во front/back/right/left проекциях тоже работает? Или X и Y это исключительно глобальные оси?
0
StunBreaker
StunBreaker
Да конечно это глобальные оси ). Лучшее выравнивание на практике это: вид сверху, ортогональный и перспективный(камера).

Просто представьте интерьер дома в виде с фронта, и что вы пытаетесь повернуть ваш диван, относительно стены ванной комнаты =)
0
-NiK-
-NiK-
А если я хочу выровнять криво висящую картину? :)
+1
Carpenter_M
Carpenter_M
Sergo Pogosyan - Rotate Selection by 3 points )
0
-NiK-
-NiK-
Не ну другие то скрипты я тоже знаю ;)
0
StunBreaker
StunBreaker
Ну варианты всегда есть и они в любом случае проще, чем делать это руками )
На крайний случай можно повернуть на 90 градусов под любую удобную ось ) имхо
+1
-NiK-
-NiK-
На самом деле не всегда проще. Скрипты для выравнивания, которые я пробовал требуют какой-то невероятной точности при выборе точек, по которым будут выравнивать. Это скорее всего особенность функции pickPoint и вьюпортов макса, а не недостаток самих скриптов. А может я просто криворукий :)

А вот трюк с Tape мне приглянулся. Он дает возможность ошибиться и интерактивно двигать target пока не надоест.
0
StunBreaker
StunBreaker
)
+1
Jähman'
Jähman'
именно поэтому я вместо pickPoint использую mouseTool и в mouseMove эвенте для интерактивности обновляю поворот согласно той точки, которая в данный момент выбрана.
к тому же pickpoint иногда рандомно не возвращает точку с первого клика и пользователь банально путается нажал ли он или нет и какую по счету точку в данный момент он выбирает.
таки дела
0
StunBreaker
StunBreaker
звучит интересно - однозначно ваш совет пригодится )
0
Uraken
Uraken
а он может работать аналогично команде Align в автокаде? ну т.е. сам скакать и масштабироваться на линию нужной длины (это как идея)
+4
In-design
In-design
Хороший скрипт.
Но одельное окошко под интерфейс скрипта - зло. Всё можно и нужно впихнуть в обычный тулбар одной кнопкой, и вывести всё на хоткей.
+1
StunBreaker
StunBreaker
Спасибо за отзыв!
Поэтому я старался сделать минимальным интерфейс, учту пожелание )
+1
gorefest
gorefest
Полезно, жду модерации
+1
justme2090
justme2090
выглядит очень и очень удобно)) жду модерации)
0
kofsh
kofsh
Очень часто бывает такое, что объект очень длинный и не очень удобно из точки А тащить что-то в точку Б, надо придумать что-то по принципу AutoGrid'a. выбрал ось которая будет основой и две точки бахнул на объекте и крути его как хочешь
0
-NiK-
-NiK-
http://www.polytools3d.com/tools/xformer/index.html
+1
StunBreaker
StunBreaker
Дак вам и не нужно вовсе кликать по всей длине )
Если конечно ваша геометрия не имеет один полигон на всю длину.

вот пример: http://rgho.st/8Cw4LZNj5/image.png 
0
Maketer
Maketer
Я пользуюсь miauu скриптами, там есть похожий, для сравнения и тестирования сделали бы демо версию)
0
StunBreaker
StunBreaker
Комментарий удален
0
Maketer
Maketer
Я конечно рад, но тратить >200р на то, что возможно не пригодится, не очень хочется
0
StunBreaker
StunBreaker
сори писал не вам естественно...
0
Jähman'
Jähman'
В этом и подобных скриптах нет никакой возможности предоставить пользователю на тест ограниченный функционал. Можно лишь ограничить по времени или еще как-то. Защитить исходники скрипта и написать свою систему лицензирования это на порядок более сложная задача, чем написать еще с десяток таких скриптов. Это просто нерационально.
+2
Maketer
Maketer
Тогда автор мог бы сделать наглядный обзор-сравнение своего скрипта и miauu, только платную версию, чтобы принять решение о покупке
0
StunBreaker
StunBreaker
Защитить исходники скрипта можно разными путями.. но в любом случае сломать защиту (тому кому это действительно станет нужным) дело времени...

Я не ставлю себе задач делать демки с ограниченным функционалом... А что рационально или нет - я уже решил для себя.
+3
StunBreaker
StunBreaker
Скрипт успешно прошёл модерацию - прямая ссылка на скачивание: https://3ddd.ru/3dmodels/show/fast_align_script_1 

Приятного пользования ! )
0
SHAXZOD AZIMOVICH
SHAXZOD AZIMOVICH
Комментарий удален
0
mak_er
mak_er
didn`t work at 2017. sad.
0
StunBreaker
StunBreaker
There are no restrictions for the 2017 max. send me a personal message - a screen with an error.
0
mak_er
mak_er
it`s no error. simply do nothing.