#target illustrator
//скрипт выделяет все (я надеюсь) объекты, цвет заливки или обводки у которых есть какое-то значение в каждой cmy компоненте, и от 70 до 100 в k компоненте. после поиска - объекты выделяются.
// v1.0 скрипт выделяет геометрические объекты с целевым цветом
//v1.1 исправлен косяк, который не позволял выделить объекты без заливки, только с обводкой
//v2.1 добавлен функционал, позволяющий работать с любыми текстовыми объектами
//v2.1.1 оптимизация кода
//v2.2 исправление ошибки с исключением, добавление алертов
var pi = app.activeDocument.pathItems; //все геометрические объекты
var tfs = app.activeDocument.textFrames; // все текстовые объекты
var all = [].concat.call(pi, tfs); // объединяем в массив
var arr = []; //массив для обнаруженных объектов
if (all.length > 0) { //если объектов чуть более чем нифига
for (var i = 0; i < all.length - 1; i++) { //запускаем цикл
var fill = all[i].fillColor; //заодно вводим переменные для заливки
var stroke = all[i].strokeColor; //и обводки
// объявляем условие для исключения. объекты с цветом равным критерию ниже - не будут выделены. это как бы наш местный "легальный" rich black.
if (
(fill.black == 100 &&
fill.magenta == 50.1 &&
fill.cyan == 50.1 &&
fill.yellow == 50.1)
||
(stroke.black == 100 &&
stroke.magenta == 50.1 &&
stroke.cyan == 50.1 &&
stroke.yellow == 50.1)
)
{
alert("В макете есть наш Rich Black ")
continue;
}
// основная проверка. тут проверяется диапазон значений цвета. если оно true - объекты будут выделены
if (
(fill.black >= 70 && fill.black <= 100 &&
fill.magenta >= 1 && fill.magenta <= 100 &&
fill.cyan >= 1 && fill.cyan <= 100 &&
fill.yellow >= 1 && fill.yellow <= 100) ||
(stroke.black >= 70 && stroke.black <= 100 &&
stroke.magenta >= 1 && stroke.magenta <= 100 &&
stroke.cyan >= 1 && stroke.cyan <= 100 &&
stroke.yellow >= 1 && stroke.yellow <= 100)
) {
arr[arr.length] = all[i]; //всё что соответствует критерию выше - добавляется в массив для последующего выделения
}
}
}
if (arr.length > 0) {
activeDocument.selection = arr //выделяем все объекты найденные с помощью всего скрипта
alert("Нашел составного черного: " + arr.length +" объектов")
} else {
alert("Не нашел составного черного")
}