3DCenter.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Reply to this topicStart new topic
> Как сделать много скринов
cad
сообщение 10/01/2017, 12:23
Сообщение #1


Наш человек
Иконка группы

Группа: Пользователи
Сообщений: 490
Регистрация: 02/10/2006
Из: Харьков
Пользователь №: 37 887



Добрый день. У меня такая задача: на винте много макс - файлов (неск. тыс), распиханных по разным папкам. Нужно сделать к каждому файлу картинку - скрин с вьюпорта, которая будет иметь такое-же имя файла, как и сама сцена. Сейчас делаю так: открываю файл, выставляю удобную ориентацию сцены, делаю принтскрин, иду в папку, копирую имя файла, перехожу в граф. редактор, создаю картинку и сохраняю с именем из буфера. Как-то много движений получается. Можно ли как-то автоматизировать?

Например,

назначить хоткей или сделать кнопку на Tools - Preview - Grab Viewport - Capture Still Image - но в разделе хоткеев этой ф-ии нет
чтоб по умолчанию там был выбран тип файла JPG. Если бы автоматом вставлялось имя исходной сцены - вообще ништяк

Сообщение отредактировал cad - 10/01/2017, 12:38
Go to the top of the page
 
+Quote Post
igorznag2
сообщение 10/01/2017, 14:22
Сообщение #2


MaxMan
Иконка группы

Группа: Пользователи
Сообщений: 153
Регистрация: 14/08/2015
Пользователь №: 109 394



Цитата(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 ))
Go to the top of the page
 
+Quote Post
Jahman
сообщение 10/01/2017, 16:33
Сообщение #3


уже всё сделал
Иконка группы

Группа: Пользователи
Сообщений: 2 456
Регистрация: 01/06/2005
Из: z3л3№гр@d
Пользователь №: 13 838



батчер

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


Прикрепленные файлы
Прикрепленный файл  saveMultipleScenesViewportScreenshot.zip ( 1,14 килобайт ) Кол-во скачиваний: 35
 
Go to the top of the page
 
+Quote Post
IOG
сообщение 10/01/2017, 17:01
Сообщение #4


Уважаемый
Иконка группы

Группа: Участник
Сообщений: 862
Регистрация: 05/12/2004
Из: Минск
Пользователь №: 8 716



Цитата(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 не перезаписывался, а сохранялся с новым номером? спасибо заранее!
Go to the top of the page
 
+Quote Post
Jahman
сообщение 10/01/2017, 17:05
Сообщение #5


уже всё сделал
Иконка группы

Группа: Пользователи
Сообщений: 2 456
Регистрация: 01/06/2005
Из: z3л3№гр@d
Пользователь №: 13 838



QUOTE
doesFileExist <filename_string>

перех сохранением проверить нет ли такого имени и как-то индексировать имя файла если есть
Go to the top of the page
 
+Quote Post
igorznag2
сообщение 10/01/2017, 17:39
Сообщение #6


MaxMan
Иконка группы

Группа: Пользователи
Сообщений: 153
Регистрация: 14/08/2015
Пользователь №: 109 394



Цитата(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
    )
)
Go to the top of the page
 
+Quote Post
IOG
сообщение 10/01/2017, 18:41
Сообщение #7


Уважаемый
Иконка группы

Группа: Участник
Сообщений: 862
Регистрация: 05/12/2004
Из: Минск
Пользователь №: 8 716



Сделал немного по-другому, под свои нужды, перезапись не включал :
Прикрепленное изображение
Код
(  
    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
)


Сообщение отредактировал IOG - 10/01/2017, 18:43
Go to the top of the page
 
+Quote Post
cad
сообщение 11/01/2017, 11:43
Сообщение #8


Наш человек
Иконка группы

Группа: Пользователи
Сообщений: 490
Регистрация: 02/10/2006
Из: Харьков
Пользователь №: 37 887



Цитата(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
    )
)



Спасибо огромное!!!!!!!! Супер!
Go to the top of the page
 
+Quote Post
Bots
сообщение Системное сообщение






Reply to this topicStart new topic

1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 28/03/2024 - 20:22