скриптом создать массив боксов |
Home· Статьи · Вакансии · Чертежи · 3D Галерея · 2D Галерея · Форум · Форум Realtime | Реклама |  Конкурсы | RAR Award | Правила |
Здравствуйте, гость ( Вход | Регистрация )
скриптом создать массив боксов |
06/05/2017, 21:28
Сообщение
#16
|
|
Ученик Группа: Пользователи Сообщений: 30 Регистрация: 04/05/2017 Пользователь №: 134 636 |
Jahman, спасибо за коды. результат тот что нужен. только у меня опять вопрос. как быть, если количество плиток будет не 2, а 6 или 11 ? может группировать все плитки, как в инструменте Array, а сдвигать по иксу и игрику значениями двух переменных? и мне было бы понятнее регулировка сдвигов. на рисунках варианты с шестью и одиннадцатью плитками. не могли бы изменить код под раскладку на этих рисунках. извиняюсь за свои просьбы. сам точно не справлюсь да и макро рекордер не записывает массивы.
второй вопрос буду решать инструментом Slice. правда, еще не проверял пишет ли действия этого инструмента макро рекордер.
Прикрепленные изображения
|
|
|
06/05/2017, 21:48
Сообщение
#17
|
|
уже всё сделал Группа: Пользователи Сообщений: 2 456 Регистрация: 01/06/2005 Из: z3л3№гр@d Пользователь №: 13 838 |
принцип я показал, дальше дело за вами. надо только правильно смещение посчитать.
как передвинуть и повернуть slice-plane тут точно где-то на форуме было, |
|
|
06/05/2017, 21:57
Сообщение
#18
|
|
Ученик Группа: Пользователи Сообщений: 30 Регистрация: 04/05/2017 Пользователь №: 134 636 |
ok. попробую сам.
|
|
|
07/05/2017, 08:10
Сообщение
#19
|
|
Ученик Группа: Пользователи Сообщений: 30 Регистрация: 04/05/2017 Пользователь №: 134 636 |
пробовал подогнать код из сообщения 14 уважаемого Jahman под раскладку из шести боксов рисунка 2 из сообщения 16, но из этого ничего не вышло. чересчур сложно для меня. может кто поспособствует и допишет этот код. желательно в коде работать с группой. по моему, так легче циклом размножать по иксу и игрику.
CODE max select all
max delete Box lengthsegs:1 widthsegs:1 heightsegs:1 length:200 width:200 height:10 mapcoords:on pos:[0,0,0] isSelected:on Box lengthsegs:1 widthsegs:1 heightsegs:1 length:200 width:100 height:10 mapcoords:on pos:[100,200,0] isSelected:on Box lengthsegs:1 widthsegs:1 heightsegs:1 length:100 width:200 height:10 mapcoords:on pos:[-50,150,0] isSelected:on Box lengthsegs:1 widthsegs:1 heightsegs:1 length:150 width:50 height:10 mapcoords:on pos:[-125,25,0] isSelected:on Box lengthsegs:1 widthsegs:1 heightsegs:1 length:100 width:100 height:10 mapcoords:on pos:[-150,-100,0] isSelected:on Box lengthsegs:1 widthsegs:1 heightsegs:1 length:50 width:50 height:10 mapcoords:on pos:[-175,-25,0] isSelected:on max select all group selection d=#group01 |
|
|
07/05/2017, 09:58
Сообщение
#20
|
|
уже всё сделал Группа: Пользователи Сообщений: 2 456 Регистрация: 01/06/2005 Из: z3л3№гр@d Пользователь №: 13 838 |
главное правильно посчитать смещение, не более того
Прикрепленные изображения
|
|
|
07/05/2017, 12:49
Сообщение
#21
|
|
Ученик Группа: Пользователи Сообщений: 30 Регистрация: 04/05/2017 Пользователь №: 134 636 |
с тем, чтобы посчитать смещение, я еще справлюсь. а, куда вводить данные в код из #14, с этим проблема. были бы четыре переменные, как #20. и в Tiles array выделены все плитки, а в коде #14 обрабатывается каждый план. или я и этого не понимаю . может, ткнете меня носом в параметры кода, регулирующие смещение ВСЕХ выделенных плиток. еще вопрос. гуглю в яндексе: Tiles Array - и никакого скрипта с таким названием не появляется. что за скрипт в сообщении #20?
|
|
|
07/05/2017, 13:22
Сообщение
#22
|
|
уже всё сделал Группа: Пользователи Сообщений: 2 456 Регистрация: 01/06/2005 Из: z3л3№гр@d Пользователь №: 13 838 |
конечно его нет в гугле, я его за завтраком сидел писал
погуглите maxscript reference, если планируете писать нечто подобное на максскрипте. ну или floor generator погуглите, может это решение всех ваших бед |
|
|
07/05/2017, 13:26
Сообщение
#23
|
|
уже всё сделал Группа: Пользователи Сообщений: 2 456 Регистрация: 01/06/2005 Из: z3л3№гр@d Пользователь №: 13 838 |
а что касается смещения всех выделенных
CODE for s in selection do (
s.pos += [ offsetX, offsetY, 0 ] ) |
|
|
07/05/2017, 13:58
Сообщение
#24
|
|
Ученик Группа: Пользователи Сообщений: 30 Регистрация: 04/05/2017 Пользователь №: 134 636 |
--я его за завтраком сидел писал--
Вам легче. Вы меня тоже поймите. я по профессии плиточник. с месяца три назад связался с 3d max. собирался клиентам бонусом делать визуализацию. с Max script знаком меньше двух недель. куда вставить эти три строки кода, я не додумаюсь. мне бы полностью код, более-менее понятный в настройках. с цифрами я справлюсь. |
|
|
12/05/2017, 10:44
Сообщение
#25
|
|
Ученик Группа: Пользователи Сообщений: 30 Регистрация: 04/05/2017 Пользователь №: 134 636 |
здравствуйте. опять у меня пару вопросов. не могли бы подсказать.
как вызвать мах скрипт из кода другого скрипта? что нибудь как в макросах excel - call название скрипта как установить кириллицу для комментариев ? вариант с заменой значения в файле MXS_Editor.properties code.page на 0 (вместо -1) не сработал. у меня 3d max 2009. |
|
|
14/05/2017, 18:03
Сообщение
#26
|
|
Ученик Группа: Пользователи Сообщений: 30 Регистрация: 04/05/2017 Пользователь №: 134 636 |
опять у меня есть вопрос. и снова не в тему названия темы. наверное, потому и нет ответов.
хотел узнать есть ли возможность переменной остановить дальнейшее выполнение скрипта? что то типа создал переменную K=270, и скрипт выполняется до 270-ой строки. в блокноте не нумеруются строки, зато в notepadе нумеруется. |
|
|
14/05/2017, 19:08
Сообщение
#27
|
|
уже всё сделал Группа: Пользователи Сообщений: 2 456 Регистрация: 01/06/2005 Из: z3л3№гр@d Пользователь №: 13 838 |
CODE iterations = 270 while iterations > 0 do ( iterations -= 1 ... ) или имеется ввиду строки скрипта что-ли? так не доходя до этой самой строки можно создать переменную, к примеру proceed = false а дальше в этой самой строке банальный if proceed then ( ... ) else ( ... ) а лучше на логические элементы/модули/функции разбить скрипт и весь этот головняк с процедурным подходом уйдет сам собой. |
|
|
14/05/2017, 20:17
Сообщение
#28
|
|
Ученик Группа: Пользователи Сообщений: 30 Регистрация: 04/05/2017 Пользователь №: 134 636 |
да, я про строки скрипта. уже набралось больше 200 строк, а самые нижние строки будут задействованы время от времени. и чтобы не удалять или наоборот, когда нада , добавлять строки искал какой нибудь выход чтобы ошибка не выскакивала. нельзя ли в самом начале кода скрипта эту строку <<proceed = false>> заменить примерно такой <<proceed = false после 270 строки>>?
|
|
|
15/05/2017, 06:12
Сообщение
#29
|
|
уже всё сделал Группа: Пользователи Сообщений: 2 456 Регистрация: 01/06/2005 Из: z3л3№гр@d Пользователь №: 13 838 |
ну так надо обернуть весь код начиная с 270 строки в if ... then ... else конструкцию. никакого волшебства. программа делает лишь то, что ей говорят.
псевдокод: если proceed равно true тогда ( выполняем то что в между этими скобками ) иначе ( выполняем то что в между этими скобками ) Сообщение отредактировал Jahman - 15/05/2017, 06:16 |
|
|
15/05/2017, 11:05
Сообщение
#30
|
|
Ученик Группа: Пользователи Сообщений: 30 Регистрация: 04/05/2017 Пользователь №: 134 636 |
Jahman, спасибо. буду делать по другому. код пусть выполняется полностью. а потом удалю все ненужное руками.
|
|
|
Bots |
Системное сообщение
|
|
|
|
|
Текстовая версия | Сейчас: 25/04/2024 - 07:14 |