Fast Align - 3d max script

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

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

Совсем недавно был блог, где автор рассказывал об одном из методов выравнивания с помощью инструмента "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

fastalignscriptrotateangleвыровнятьвыравниваниескриптугол

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

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

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

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

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

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

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

Приятного пользования ! )
0
SHAXZOD AZIMOVICH
Комментарий удален
+1
mak_er
didn`t work at 2017. sad.
0
StunBreaker
There are no restrictions for the 2017 max. send me a personal message - a screen with an error.
0
mak_er
it`s no error. simply do nothing.
0
glazsan
У меня вот эти два клика не выходят ни в какую, такое ощущение, что клик по привязке не попадает, приходиться кликать чётр знает сколько раз. Такая же беда с инструментом измерения, и с некоторыми Miauu script если бы кто то подсказал, что это за очередная шляпа в MAX , и как с этим бороться. Настройки привязки уже крутил перекрутил.
0
vladimir.drobzhev90
Купил, классно!) Однако я вспоминаю как все просто было, когда я работал в инженерных программах солидворкс и компас, привязки там это просто сказка и я поначалу не понимал почему в максе такая простая задача решается так сложно. Было бы круто если бы вы написали скрипт, который бы позволил делать привязки как в солиде, я понимаю что там векторное построение моделей, а здесь полигональное, но ведь как-то (хоть и убого) в максе тоже реализуются привязки по касательной и т.д. Основное что хотелось бы получить это привязку Poligon to Poligon, привязку цилиндр к плоскости по касательной, соосность цилиндров и т.д, можете загуглить видео о привязках в солиде и может быть какие-то из них вы сможете реализовать в одном скрипте. А за этот скрипт спасибо!
0
vladimir.drobzhev90
И я еще подумал почему обязательно использовать 2 точки? почему нельзя выравнивать с помощью ребер?
0
glazsan
Женя извини за фамильярность. Но... ладно бог с ним приходиться делать ".msr" к скриптам самому (ни к этому, катер к примеру), хотя я вот не программист, мне каждый раз приходиться врубаться : "а как же оно там, блин..." и начинается ролики статьи. А с твоим уровнем это две строчки.
Ладно фиг с ним, но этот то вообще не запускается на 2022. В одной теме написал в этой пишу, ну ты скажи хоть будет поддержка, или все аут и это не актуально. Если игра не стоит свеч и его переправить на 22 себе дороже все поймут, хотя пичалька конечно, но не критично.
0
StunBreaker
Доброго времени ! Определённо точно - пока не будет возможности редактировать уже опубликованную модель/скрипт без его удаления(повторной публикации) - этого к сожалению не произойдет с этим скриптом, лишь потому, что в ручном режиме я уже не физически не могу обрабатывать письма.. отпправлять обновлённые версии и при этом проверять покупки ) Как это уже происходит с другим продуктом под названием "Strokes Gen" для версий 2018 и выше.

И теперь выясняется что и там на 2022 какие-то проблемы, пока нет времени проверить это, но StrokesGen я в любом случае буду поддерживать в ручном режиме и дальше для версий 2018 и выше включая 2022.

p.s. У меня даже ещё нет 2022 макса ) что там такого что все в него отправились? )
0
glazsan
"p.s. У меня даже ещё нет 2022 макса ) что там такого что все в него отправились? )"

ну экструд внутрь геометрии на двух смежных гранях, без паразитных поликов, к примеру. Да там порядком интересного.