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

Kolobokk

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

Вопросы
1. Как сделать линию контура контрастной, как в старых версиях PS?
2. Как команду преобразования всех текущих контуров в выделение записать в Action?
 

@diz@

отечеств. про
15 лет на форуме
Сообщения
4 203
Реакции
1 911
Странно, в CC2014 всё работает как и должно.
Выделяешь все пути (пусть они и составные), клик кнопку на панели и — вуаля.
И экшн без проблем создается.
Может попробовать его пересоздать? Мало ли, ещё варианты какие возможны.

Надо, чтобы другие счастливые обладатели более новых версий потестили.
 

Kolobokk

Топикстартер
15 лет на форуме
Сообщения
903
Реакции
82
@@diz@, Спасибо за ответ!
У меня там в Ation-е записана команда Set Selection. Может в этом дело?
И к сожалению забыл или не знал, какой командой можно сделать активными сразу все контуры в пределах Work Path?
 

Kolobokk

Топикстартер
15 лет на форуме
Сообщения
903
Реакции
82
Нашёл промежуточное решение - нажатие кнопки Esc перед запуском Action-а. Но это нажатие не записывается в Action.
Есть в PS какая-нибудь команда, которая бы делала активными или пассивными все контуры текущего Work Path-а и которую можно было бы записать в Action?
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
30 492
Реакции
10 025
Вам только рабочий контур нужен?
Попробуйте вставить в экшн вызов следующего скрипта:
Код:
app.activeDocument.pathItems.getByName("Рабочий контур").makeSelection();
Для нелокализованной версии, наверное, будет,соответственно, "Work path"
 

Kolobokk

Топикстартер
15 лет на форуме
Сообщения
903
Реакции
82
@_MBK_, спасибо, но это не работает. Вернее происходит то же самое, что и при использовании команды Make Selection. А мне нужно, чтобы все контура стали выглядеть одинаково на холсте, тогда Make Selection их подхватит.
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
30 492
Реакции
10 025
А мне нужно, чтобы все контура стали выглядеть одинаково на холсте, тогда Make Selection их подхватит.
Тогда как то поподробнее опишите проблему с картинками и примерами, что ли?
А то я, честно говоря, сути беды так толком и не понял 'hmmm'
 

Kolobokk

Топикстартер
15 лет на форуме
Сообщения
903
Реакции
82
@_MBK_,
Пожалуйста. Правый контур нарисован последним, поэтому он ещё активен.

two_paths.png
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
30 492
Реакции
10 025
А палитра слоев как выглядит?
Если это то, о чем я думаю, проблема решается достаточно просто
upload_2017-8-22_19-41-8.png
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
30 492
Реакции
10 025
А как такое вообще было нарисовано?
Какая то новая фишка CC2015? 'hmmm'
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
30 492
Реакции
10 025
просто пером обтравку делаю и всегда так делал, не задумываясь особо.
Ну у меня, когда я пером рисую каждый контур на собственном слое по умолчанию получается как на скриншоте 'hmmm'
 

Kolobokk

Топикстартер
15 лет на форуме
Сообщения
903
Реакции
82
@_MBK_, мне не нужно на разных слоях. Я один объект обычно обтравливаю. Скажем есть нечто, в чём имеется десять прорех. Я обтравливаю внешний контур и вырезаю объект. А потом из этого объекта вырезаю дырки. Но так как контуры плохо видно, то я каждый раз удаляю по несколько вырезанных частей. Когда было хорошо видно, то вырезал все прорехи. В конце концов остаётся два слой, бэкграунд и объект.
 

VVVSLAVA

Участник
Сообщения
16
Реакции
9
Первой командой Actions будет "Deselect curent patch", чтобы она записалась, перед началом записи становитесь на Work Patch, жмёте запись экшена и щёлкаете мышкой по любому свободному месту палитры "Patch". Следующей командой будет "Select Work Patch", просто тыкаете в Work Patch. Ну и для записи выделения, жмёте по Work Patch правой кнопкой мыши и "MAke Selection", задаёте параметры.
00.jpg
 
  • Спасибо
Реакции: Kolobokk

apg_777

15 лет на форуме
Сообщения
257
Реакции
78
Первую команду в Action записывать как Alt+click (Opt+click). Тогда вписывается выбор всего пути.
 
  • Спасибо
Реакции: Kolobokk

Kolobokk

Топикстартер
15 лет на форуме
Сообщения
903
Реакции
82
@apg_777, Alt+Click по холсту у меня вызывает появление новой точки, а по Work Path - ничего не изменяет. Но вы меня натолкнули на решение. Нужно деактивировать Work Path - Deselect current path, а потом снова активировать Select Work Path. Теперь всё работает и записывается в Action!
Всем спасибо, а вам apg_777 особенно!
 

Kolobokk

Топикстартер
15 лет на форуме
Сообщения
903
Реакции
82
@VVVSLAVA, Написал ответ, и только потом прочёл ваш пост. Где вы были раньше? :)
Спасибо большое вам за ответ!
Да решение лежало на поверхности, но я до него сам не дошёл. Редко стал работать в PS. А он как и все продукты Adobe не всегда меняется только в лучшую сторону. У меня массу времени отнимает адаптация к новым версиям продукта.
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
30 492
Реакции
10 025
Тогда чуть сложнее
Код:
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