Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как сделать много скринов
Форум .:3DCenter.ru:. > Пакеты 3D моделирования > 3ds Max
cad
Добрый день. У меня такая задача: на винте много макс - файлов (неск. тыс), распиханных по разным папкам. Нужно сделать к каждому файлу картинку - скрин с вьюпорта, которая будет иметь такое-же имя файла, как и сама сцена. Сейчас делаю так: открываю файл, выставляю удобную ориентацию сцены, делаю принтскрин, иду в папку, копирую имя файла, перехожу в граф. редактор, создаю картинку и сохраняю с именем из буфера. Как-то много движений получается. Можно ли как-то автоматизировать?

Например,

назначить хоткей или сделать кнопку на Tools - Preview - Grab Viewport - Capture Still Image - но в разделе хоткеев этой ф-ии нет
чтоб по умолчанию там был выбран тип файла JPG. Если бы автоматом вставлялось имя исходной сцены - вообще ништяк
igorznag2
Цитата(cad @ 10/01/2017, 13:23) *
Например, назначить хоткей или сделать кнопку на Tools - Preview - Grab Viewport - Capture Still Image - но в разделе хоткеев этой ф-ии нет
чтоб по умолчанию там был выбран тип файла JPG. Если бы автоматом вставлялось имя исходной сцены - вообще ништяк

Попробуйте такой вариант. Пример. Запускаем скрипт.
Меню Customize > Customize UI > Keyboard > Category:"_igorznag"
Назначаем клавишу для действия igorznag_grab_and_save.
Скрипт делает скрин с вьюпорта и сохраняет его в папке сцены с названием сцены и в формате jpg.
Код
macroscript igorznag_grab_and_save category:"_igorznag"
(  m=maxFileName; if m!="" do
(    b=gw.getViewportDib(); bn=substring m 1 (m.count-4)
    bfn=maxFilePath+bn+".jpg"; b.filename=bfn; save b; close b ))
Jahman
батчер

или вот накидал по быстрому

IOG
Цитата(igorznag2 @ 10/01/2017, 15:22) *
Код
macroscript igorznag_grab_and_save category:"_igorznag"
(  m=maxFileName; if m!="" do
(    b=gw.getViewportDib(); bn=substring m 1 (m.count-4)
    bfn=maxFilePath+bn+".jpg"; b.filename=bfn; save b; close b ))

а что тут добавить чтобы каждый раз jpeg не перезаписывался, а сохранялся с новым номером? спасибо заранее!
Jahman
QUOTE
doesFileExist <filename_string>

перех сохранением проверить нет ли такого имени и как-то индексировать имя файла если есть
igorznag2
Цитата(IOG @ 10/01/2017, 18:01) *
а что тут добавить чтобы каждый раз jpeg не перезаписывался, а сохранялся с новым номером? спасибо заранее!

Код
macroscript igorznag_grab_and_save category:"_igorznag"
(  
    m=maxFileName;
    if m!="" do
    (    
        b=gw.getViewportDib(); bn=substring m 1 (m.count-4)
        bfn=maxFilePath+bn+".jpg";
        i=1; while doesFileExist bfn do (bfn=maxFilePath+bn+(i as string)+".jpg"; i+=1)
        b.filename=bfn; save b; close b
    )
)
IOG
Сделал немного по-другому, под свои нужды, перезапись не включал :
Нажмите для просмотра прикрепленного файла
Код
(  
    global gl_ScreenMePos
    global gl_ScreenMeEt
    global gl_ScreenMeFolder
       if gl_ScreenMePos == undefined do gl_ScreenMePos = [300,300]
       if gl_ScreenMeEt == undefined do gl_ScreenMeEt = ""
       if gl_ScreenMeFolder == undefined do gl_ScreenMeFolder = ""
          
rollout ScreenMe "ScreenMe!" width:250 height:80 (
    button setFolder "set folder" width:240
    editText eT "Name:" text:gl_ScreenMeEt   pos:[5,30] width:240 height:20
    button btn1 "Save" pos:[40,55] width:60
fn fn_FolderText = (
      if gl_ScreenMeFolder != "" do (
            if gl_ScreenMeFolder.count > 40 then (
                setFolder.text = "..." + (substring gl_ScreenMeFolder (gl_ScreenMe.count - 37) gl_ScreenMe.count)
                          )
                 else setFolder.text = gl_ScreenMeFolder
        )
    )
on ScreenMe open do fn_FolderText()
on setFolder pressed do (
        gl_ScreenMeFolder = getSavePath()
        fn_FolderText()
)
on ScreenMe close do ( gl_ScreenMePos = GetDialogPos ScreenMe )
on eT changed A do gl_ScreenMeEt = eT.text
on btn1 pressed do (
    if eT.text != "" and setFolder.text !="" do (
    local b=gw.getViewportDib()
    b.filename=gl_ScreenMeFolder + "\\" + eT.text + ".jpg"
    save b
    close b )
    )
)
createdialog ScreenMe pos:gl_ScreenMePos
)
cad
Цитата(igorznag2 @ 10/01/2017, 17:39) *
Цитата(IOG @ 10/01/2017, 18:01) *
а что тут добавить чтобы каждый раз jpeg не перезаписывался, а сохранялся с новым номером? спасибо заранее!

Код
macroscript igorznag_grab_and_save category:"_igorznag"
(  
    m=maxFileName;
    if m!="" do
    (    
        b=gw.getViewportDib(); bn=substring m 1 (m.count-4)
        bfn=maxFilePath+bn+".jpg";
        i=1; while doesFileExist bfn do (bfn=maxFilePath+bn+(i as string)+".jpg"; i+=1)
        b.filename=bfn; save b; close b
    )
)



Спасибо огромное!!!!!!!! Супер!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2017 IPS, Inc.