Render.ru

Обход всех мешей

Byte_od

Знаток
Рейтинг
69
#1
Есть простенькая задача: обойти все меши в сцене и заменить фиксированный префикс в имени, а также удалить два объекта с фиксированным именем.
Т.е. есть
Object1_lalalalalala
Object2_lalalalalala
....
Object200_lalalalalala
Необходимо убрать _lalalalala
И, заодно, вообще удалить два меша с фиксированным именем. Нашел в инете универсальный скрипт для подобного, но он в формате mse, т.е. код не подсмотришь для изменени для своих нужд, да и необходимо вручную открывать каждый файл, вручную вводить _lalalalala и т.д. По идее это скриптик на 5-10 строк, для знающего человека на 2 минуты, подскажите плиз. И можно ли будет такой скрипт запускать из командной строки?
Спасибо.
 

Byte_od

Знаток
Рейтинг
69
#5
Какой вопрос такой ответ.
Вопрос из разряда "Как пройти на улицу Гоголя?". Простой, элементарный вопрос. Для получения адекватного ответа совсем необязательно строить вопрос так: "Вот у меня в руках карта города (ссылка на карту), я изучил маршруты и у меня получилось вот что (ссылка на изображение), попал на улицу Мышкина и заблудился, а мне надо на улицу Гоголя. Помогите".
Вопрос соответствует задаче: простой задаче, на десяток строк кода.
 

Byte_od

Знаток
Рейтинг
69
#6
Этот мир не выживет... альтруисты перевелись... проще сходить в ближайший ларек за картой, чем быть посланным куда подальше на вопрос: "как пройти...".
Сходил за картой, потратил время... может, кому еще поможет, время сэкономит.
Код:
coll = $*
for i in coll do
(
    strName = i.name
    location = findString strName "_lalalala"
    if  location != undefined then
    (
        strNewName = replace strName location 9 ""
        i.name = strNewName
    )
    -- print i.name
    if strName == "Fignya1" then delete i
    if strName == "Fignya2" then delete i
)
В replace strName location 9 "" цифру 9 заменяем на то, сколько символов в "_lalalala".

P.S. Прошло время когда технические форумы были для того, чтобы направить. Сейчас почти на любой технический вопрос можно найти ответ в готовом виде в Сети, но нужно время. Время на поиски, время на прочтения доступной в Сети литературы. Сейчас основная функция технических форумов - сэкономить время.

P.P.S.S. Пошел за следующей картой запуска скриптов из командной строки...
 

Byte_od

Знаток
Рейтинг
69
#7
Дополнение. При запуске из командной строки предыдущий скрипт дает ошибку. Необходимо удалить условия
Код:
if strName == "Fignya1" then delete i
if strName == "Fignya2" then delete i
и в конце за скобкой написать:
Код:
delete $Fignya1
delete $Fignya2
Запуск из командной строки следующий:

3dsmax.exe -q -silent -mip -U MAXScript script.ms file.max
Правда, в таком случае Max файл не сохраняет и не закрывается автоматически, но пока не нашел другого способа.
 
Сверху