Вопросы по maxScript

Автор
Сообщение
На сайте c 04.06.2009
Сообщений: 76

скриптоделы подскажите.

как заставить диалоговое окно getOpenFileName возвращать имя каталога, а не файла. по типу как getSavepath.

ну т.е. я хочу выбирать каталог не через это уродское дерево, а через стандартный выборщик файлов. да только он ждет что я обязательно выделю какой-то файл. а я выбираю собственно сам каталог.

На сайте c 31.03.2008
Сообщений: 1097
Москва
На сайте c 04.06.2009
Сообщений: 76

-NiK-

первый пример через dotNetObject "System.Windows.Forms.OpenFileDialog никак не решает проблему. там нет свойств разрешающих диалоговому окну подтверждать выбор папки. не пойму почему тс там благодарит.

второй пример на c#. я так понимаю его надо скомпилить, для подключения в виде библиотеки? или c# код можно как-то интегрировать на лету?

На сайте c 20.02.2011
Сообщений: 3

Всех приветствую. Помогите найти, готов купить скрипт Strokes-Gen очень нужен для работы. макс 2019 и планирую устанавливать версию выше. Тот что здесь не подходит.выдает ошибку. Автор не отвечает.

На сайте c 31.03.2008
Сообщений: 1097
Москва
Цитата AllanSchezar:
первый пример через dotNetObject "System.Windows.Forms.OpenFileDialog никак не решает проблему.

Сорян, почему-то не увидел ваш ответ. Вот этот вариант рабочий.

https://forums.autodesk.com/t5/3ds-max-programming/select-folder-dialog/td-p/8345900 

Кстати в свежих максах (не знаю с какой версии) getSavePath открывает нормальное окно, а не дерево.

На сайте c 04.06.2009
Сообщений: 76

поясните кто-нить, почему разрабатывая интерфейс в VisualMAXScript, конструктор генерит размеры больше чем они в окне макета. условно моя форма на экране ~500х515. а в коде 728х747.

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

что за ерунда?

upd. закинул код на другой комп, там макет интерпретируется 1:1.

На сайте c 31.03.2008
Сообщений: 1097
Москва

Вместо этого редактора рекомендую писать интерфейс вручную используя across и align (а не pos). На мой взгляд это удобней почти всегда.

Решение проблемы не знаю, не встречал. Но я его и не использую. После отключения масштабирования макс перезапускали?

На сайте c 04.06.2009
Сообщений: 76

перезагрузил винду, все заработало. все-таки дело в масштабировании.

-NiK-, мне тоже не нравится такое описание интерфейса. я пока не разобрался с иерархией ui-элементов, чтоб изобразить подобие "адаптивности".

На сайте c 14.11.2016
Сообщений: 41
Россия, Санкт-Петербург
Вопрос к знатокам.
Пишу скрипт для автоматического переключения вида из Camera или Light в Perspective при зажатом ALT+MMB, чтобы камера не сдвигалась и сразу произошло вращение вида в перспективе.

Столкнулся с проблемой, что при зажатом колёсике, если срабатывает любой скрипт, который переключает вид из камеры в перспективу (MMB+P), то в максе перестаёт действовать отмена до тех пор, пока не создашь вручную новый объект в сцене.

Если использовать функцию undo off на весь скрипт, то отмена всё же будет работать, но только до момента повторного использования скрипта, после чего она снова вырубается.

Вопрос, как это можно обойти? Возможно ли запустить функцию отмены через скрипт, а не через создание объекта вручную?
На сайте c 12.11.2008
Сообщений: 47
Москва
Полезный скрипт! Здорово было бы, если из плана или вида сбоку при зажатом ALT+колесико происходило бы вращение в ПЕРСПЕКТИВЕ, а не в ортографической проекции. Эх, мечты...
На сайте c 08.05.2008
Сообщений: 1593
страна Грёз
Цитата AI-Idrey:
Полезный скрипт! Здорово было бы, если из плана или вида сбоку при зажатом ALT+колесико происходило бы вращение в ПЕРСПЕКТИВЕ, а не в ортографической проекции. Эх, мечты...

Я не пользуюсь орто проекцией в принципе. поэтому этот скрипт тупо меняет орто на перспективу принудительно. Скопируй нижний код в блокнот и сохрани с расширением *.ms в папку 3ds Max ... \scripts\Startup\

/*KILL ORTO*/

global orthoToPersp(

struct otpStruct (

a , b,

fn sprawdz_TM=( if(viewport.GetType() == #view_iso_user) then (viewport.setType #view_persp_user) )

)

orthoToPersp = otpStruct())

callbacks.addScript #viewportChange "orthoToPersp.sprawdz_TM()" id:#zacnyPersp

На сайте c 14.11.2016
Сообщений: 41
Россия, Санкт-Петербург
В общем, как выяснилось, этот баг макса обычным скриптом убрать нельзя, а жаль.

Цитата Legion-236:
Цитата AI-Idrey:
Полезный скрипт! Здорово было бы, если из плана или вида сбоку при зажатом ALT+колесико происходило бы вращение в ПЕРСПЕКТИВЕ, а не в ортографической проекции. Эх, мечты...

Я не пользуюсь орто проекцией в принципе. поэтому этот скрипт тупо меняет орто на перспективу принудительно. Скопируй нижний код в блокнот и сохрани с расширением *.ms в папку 3ds Max ... \scripts\Startup\

Хороший скрипт, можно добавить проверку на активную камеру или источник света и зажатый Alt.
А то иногда нужно развернуть вид Top на 90 градусов, тогда он превращается в ортографию и нужно поработать именно в ней, а не в перспективе.

Можно добавить в код: 

fn sprawdz_TM=(
local ViewTp = viewport.getType()
if(ViewTp  == #view_iso_user or ViewTp ==#view_camera or ViewTp ==#view_spot ) and keyboard.altPressed then (viewport.setType #view_persp_user)
)

Читают эту тему: