Найти-выделить слои с одинаковым началом названия слоя

  • Автор темы Автор темы xm
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

xm

иксэ́м
Топикстартер
R.I.P.
Сообщения
4 978
Реакции
2 667
Подозревая, что штатными средствами это не решить, хотел сразу запостить в ветку "Скриптинг в Adobe Photoshop", но таковой у него не оказалось.
Итак задача: есть куча слоёв, обозванных номерами пантонов, под каждый пантон -- отдельная куча )), разбросанная по всей палитре слоёв как Бог на душу. Вначале тему назвал "Найти-выделить слои с одинаковым названием слоя", но у копированных же слоёв добавляется copy или "копия", по сему нужно найти слои каждого пантона, в началах названий которых он указан (что-то типа "365*", или даже "*365*") и слить в один. "Сливание в один" можно в скрипте не прописывать, уж ctrl-e раз 12 нажать не так сложно, а вот найти их все, разбросанные по группам и подгруппам, не так просто.
Спасибо.
 
Ответ: Найти-выделить слои с одинаковым началом названия слоя

vbs скрипт, должен поставить видимость на нужных слоях и отключить на остальных, чтобы можно было сделать Merge Visible. С группами-сетами не заморачивался.
Код:
txt = InputBox("Чего ищем то?")
Set ph = CreateObject( "Photoshop.Application" )
Set d = ph.ActiveDocument
For Each l In d.Layers
  l.Visible = CBool(InStr (1,l.name,txt,1))
Next
 
Ответ: Найти-выделить слои с одинаковым началом названия слоя

В принципе, можно и так, единственно что, убрать русский вопрос в первом InputBox - кириллица не отображается.
 
Ответ: Найти-выделить слои с одинаковым началом названия слоя

убрать русский вопрос в первом InputBox
А что туда вписывать? И названия слоя вписывать прям в скрипте, или он вопрос спросит уже при выполнении?
И да, а этот vbs как, куда сохранять и запускать, как и jsx только с расширением vbs?


С группами-сетами не заморачивался.
Т.е. он тоже не работает, если в файле они есть?
 
Ответ: Найти-выделить слои с одинаковым началом названия слоя

И названия слоя вписывать прям в скрипте, или он вопрос спросит уже при выполнении?
И да, а этот vbs как, куда сохранять и запускать,
Пока ничего не меняй, попробуй так, просто при открытом фотошопе в эксплорере ткни на vbs файл как на обычной программе. Бейсиковские модули запускаются не из фотошопа, как jsx, а из системы, как отдельные приложения.
 
Ответ: Найти-выделить слои с одинаковым началом названия слоя

т.е. всё-таки из блокнота сохранить

как и jsx только с расширением vbs?

UPD
РАБОТАЕТ!!! ':=))'

как бы его ещё кнопкой к фотошопу прикрутить?
 
Ответ: Найти-выделить слои с одинаковым началом названия слоя

т.е. всё-таки из блокнота сохранить
Конечно. Сохраняешь этот текст как файл с расширением vbs а потом просто в эксплорере на него даблклик как на программу.
 
Ответ: Найти-выделить слои с одинаковым началом названия слоя

см. выше, поправил пост :)
 
Ответ: Найти-выделить слои с одинаковым началом названия слоя

С группами слоев пробовал? Просто на рабочий стол иконку вынеси. А!. У тебя ж в полноэкранном режиме даже таскбара нет... ':('
 
Ответ: Найти-выделить слои с одинаковым началом названия слоя

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

сейчас спробую.
неа, не работает, отключились все группы, т.е. стали скрытыми, но глаза внутри групп у всех слоёв включены. Наверно он попытался открыть глаза у нужных слоёв внутри групп, но у самих групп же сверху глаз закрыт, вот он и запутался ))
 
Ответ: Найти-выделить слои с одинаковым началом названия слоя

'otbline''PKrowr'
 
Ответ: Найти-выделить слои с одинаковым началом названия слоя

нинада... кому я буду респекты раздавать и пивом заливать? :)
 
Ответ: Найти-выделить слои с одинаковым началом названия слоя

В общем скриптом будет вот так:
Код:
var m=prompt("Input name: ","");
var d = app.activeDocument;
processLr(d.layers);

function processLr(l)
{

for (var i=0;i<l.length;i++)
{
  l1=l[i];
  if (l1.typename=="ArtLayer")
  {
    l1.visible=(l1.name.indexOf(m)!=-1);
 } else
 {
   processLr(l1.layers);
 }
}
}
Попробуй на CS5 и на группах, у меня на CS3 работает
 
Ответ: Найти-выделить слои с одинаковым началом названия слоя

Попробуй на CS5 и на группах
Тоже работает, а орать на тебя похвалы я уже устал, ничего больше непридумываеца )))) И респектов больше ставить некуда.
Только вот бяка -- когда сливаешь видимые слои из разных групп, он (фотошоп, а не твой мегаскрипт конечно же) эти группы рюхает, сами сеты в смысле а не слои внутри них... но это не суть важно... они уже и не нужны по сути.
 
Статус
Закрыто для дальнейших ответов.