[PS CC-CC2022] Как выделить несколько Path-ов Action-ом?

Kolobokk

Топикстартер
15 лет на форуме
Сообщения
955
Реакции
91
Когда-то для старой версии Photoshop-а создал Action, который превращал в выделение Work Path, в котором могло быть сколько угодно отдельных контуров. Сегодня попытался этот Action применить в CC 2015, а он не работает. В выделение превращается только контур, нарисованный последним. Хотя раньше выделялись сразу все контуры командой Make Selection.
Кнопка в панели Paths тоже не работает сразу для всех контуров. А вот Ctrl+клик по иконке текущего Path-а в палитре Paths всё ещё работает. Но это неудобно, так как я использую этот Action для обтравки сложных объектов. То есть обращаться нужно довольно часто, особенно с учётом того, что в последних версиях PS линию контура почти не видно на изображении.

Вопросы
1. Как сделать линию контура контрастной, как в старых версиях PS?
2. Как команду преобразования всех текущих контуров в выделение записать в Action?
 
Странно, в CC2014 всё работает как и должно.
Выделяешь все пути (пусть они и составные), клик кнопку на панели и — вуаля.
И экшн без проблем создается.
Может попробовать его пересоздать? Мало ли, ещё варианты какие возможны.

Надо, чтобы другие счастливые обладатели более новых версий потестили.
 
@@diz@, Спасибо за ответ!
У меня там в Ation-е записана команда Set Selection. Может в этом дело?
И к сожалению забыл или не знал, какой командой можно сделать активными сразу все контуры в пределах Work Path?
 
Нашёл промежуточное решение - нажатие кнопки Esc перед запуском Action-а. Но это нажатие не записывается в Action.
Есть в PS какая-нибудь команда, которая бы делала активными или пассивными все контуры текущего Work Path-а и которую можно было бы записать в Action?
 
Вам только рабочий контур нужен?
Попробуйте вставить в экшн вызов следующего скрипта:
Код:
app.activeDocument.pathItems.getByName("Рабочий контур").makeSelection();
Для нелокализованной версии, наверное, будет,соответственно, "Work path"
 
@_MBK_, спасибо, но это не работает. Вернее происходит то же самое, что и при использовании команды Make Selection. А мне нужно, чтобы все контура стали выглядеть одинаково на холсте, тогда Make Selection их подхватит.
 
А мне нужно, чтобы все контура стали выглядеть одинаково на холсте, тогда Make Selection их подхватит.
Тогда как то поподробнее опишите проблему с картинками и примерами, что ли?
А то я, честно говоря, сути беды так толком и не понял 'hmmm'
 
А палитра слоев как выглядит?
Если это то, о чем я думаю, проблема решается достаточно просто
upload_2017-8-22_19-41-8.png
 
А как такое вообще было нарисовано?
Какая то новая фишка CC2015? 'hmmm'
 
просто пером обтравку делаю и всегда так делал, не задумываясь особо.
Ну у меня, когда я пером рисую каждый контур на собственном слое по умолчанию получается как на скриншоте 'hmmm'
 
@_MBK_, мне не нужно на разных слоях. Я один объект обычно обтравливаю. Скажем есть нечто, в чём имеется десять прорех. Я обтравливаю внешний контур и вырезаю объект. А потом из этого объекта вырезаю дырки. Но так как контуры плохо видно, то я каждый раз удаляю по несколько вырезанных частей. Когда было хорошо видно, то вырезал все прорехи. В конце концов остаётся два слой, бэкграунд и объект.
 
Первой командой Actions будет "Deselect curent patch", чтобы она записалась, перед началом записи становитесь на Work Patch, жмёте запись экшена и щёлкаете мышкой по любому свободному месту палитры "Patch". Следующей командой будет "Select Work Patch", просто тыкаете в Work Patch. Ну и для записи выделения, жмёте по Work Patch правой кнопкой мыши и "MAke Selection", задаёте параметры.
00.jpg
 
  • Спасибо
Реакции: Kolobokk
Первую команду в Action записывать как Alt+click (Opt+click). Тогда вписывается выбор всего пути.
 
  • Спасибо
Реакции: Kolobokk
@apg_777, Alt+Click по холсту у меня вызывает появление новой точки, а по Work Path - ничего не изменяет. Но вы меня натолкнули на решение. Нужно деактивировать Work Path - Deselect current path, а потом снова активировать Select Work Path. Теперь всё работает и записывается в Action!
Всем спасибо, а вам apg_777 особенно!
 
@VVVSLAVA, Написал ответ, и только потом прочёл ваш пост. Где вы были раньше? :)
Спасибо большое вам за ответ!
Да решение лежало на поверхности, но я до него сам не дошёл. Редко стал работать в PS. А он как и все продукты Adobe не всегда меняется только в лучшую сторону. У меня массу времени отнимает адаптация к новым версиям продукта.
 
Тогда чуть сложнее
Код:
var id134 = charIDToTypeID( "Dslc" );
var desc26 = new ActionDescriptor();
var id135 = charIDToTypeID( "null" );
var ref16 = new ActionReference();
var id136 = charIDToTypeID( "Path" );
ref16.putClass( id136 );
desc26.putReference( id135, ref16 );
executeAction( id134, desc26, DialogModes.NO );

var id137 = charIDToTypeID( "slct" );
var desc27 = new ActionDescriptor();
var id138 = charIDToTypeID( "null" );
var ref17 = new ActionReference();
var id139 = charIDToTypeID( "Path" );
var id140 = charIDToTypeID( "WrPt" );
ref17.putProperty( id139, id140 );
desc27.putReference( id138, ref17 );
executeAction( id137, desc27, DialogModes.NO );

app.activeDocument.pathItems.getByName("Рабочий контур").makeSelection();

Или, чтобы не зависеть от локализации, даже так:
Код:
var id134 = charIDToTypeID( "Dslc" );
    var desc26 = new ActionDescriptor();
    var id135 = charIDToTypeID( "null" );
        var ref16 = new ActionReference();
        var id136 = charIDToTypeID( "Path" );
        ref16.putClass( id136 );
    desc26.putReference( id135, ref16 );
executeAction( id134, desc26, DialogModes.NO );

var id137 = charIDToTypeID( "slct" );
    var desc27 = new ActionDescriptor();
    var id138 = charIDToTypeID( "null" );
        var ref17 = new ActionReference();
        var id139 = charIDToTypeID( "Path" );
        var id140 = charIDToTypeID( "WrPt" );
        ref17.putProperty( id139, id140 );
    desc27.putReference( id138, ref17 );
executeAction( id137, desc27, DialogModes.NO );

var id144 = charIDToTypeID( "setd" );
    var desc29 = new ActionDescriptor();
    var id145 = charIDToTypeID( "null" );
        var ref18 = new ActionReference();
        var id146 = charIDToTypeID( "Chnl" );
        var id147 = charIDToTypeID( "fsel" );
        ref18.putProperty( id146, id147 );
    desc29.putReference( id145, ref18 );
    var id148 = charIDToTypeID( "T   " );
        var ref19 = new ActionReference();
        var id149 = charIDToTypeID( "Path" );
        var id150 = charIDToTypeID( "WrPt" );
        ref19.putProperty( id149, id150 );
    desc29.putReference( id148, ref19 );
    var id151 = charIDToTypeID( "AntA" );
    desc29.putBoolean( id151, true );
    var id152 = charIDToTypeID( "Fthr" );
    var id153 = charIDToTypeID( "#Pxl" );
    desc29.putUnitDouble( id152, id153, 0.000000 );
executeAction( id144, desc29, DialogModes.NO );
 
  • Спасибо
Реакции: Kolobokk