[AI CC2018] Нужен скрипт для Illustrator

romyk

Участник
Топикстартер
Сообщения
725
Оценка реакций
92
Нужен скрипт, который находил бы в документе самый большой объект (либо по площади, либо по периметру), и перекрашивал его.
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
23 674
Оценка реакций
8 203
Какой объект?
 

romyk

Участник
Топикстартер
Сообщения
725
Оценка реакций
92
Это прямоугольник, без заливки, но с обводкой. Абсолютно точно будет существовать в каждом документе. Нужно найти его изменить обводку на None. Причем не удалить, а именно изменить. И сохранить файл по определенному, прямо указанному пути.
 
Последнее редактирование:

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
23 674
Оценка реакций
8 203
Он отдельно стоящий, ни с чем не сгруппирован? Какова конечная цель данного действия?
 

romyk

Участник
Топикстартер
Сообщения
725
Оценка реакций
92
Он отдельно стоящий, ни с чем не сгруппирован? Какова конечная цель данного действия?
Нет, сгруппирован с другими объектами. Цель - из горы файлов вот такого вида,
Снимок23423.JPG
получить тоже самое, но без внешнего контура штампа, а потом легко редактировать их через либо PitStop-вские экшены, либо через АЕ.
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
23 674
Оценка реакций
8 203
Так зачем тогда самый большой? Он же там вообще один. И почему вместо создания призрачного контура не уничтожить внешнюю рамку вообще?
 

romyk

Участник
Топикстартер
Сообщения
725
Оценка реакций
92
И почему вместо создания призрачного контура не уничтожить внешнюю рамку вообще?
Потом через PitStop или АЕ намного проще по этому пустому контуры выставить нужный размер документа по высоте, выделить остальные объекты, сделать им нужный Offset Path и залить цветом.
Изначальный размер артбода в документе произвольный, привязываться к нему нельзя.
 

Oleg Butrin

15 лет на форуме
Сообщения
1 565
Оценка реакций
845
JavaScript:
var doc = app.activeDocument;
var items = doc.pathItems;
var item = items[0];
for (var i = 0; i < items.length; i++) {
    if (items[i].area > item.area) {
        item = items[i];
    }
}
var color = new CMYKColor();
color.magenta = 70;
color.yellow = 30;
item.fillColor = color;
item.filled = true;
 

romyk

Участник
Топикстартер
Сообщения
725
Оценка реакций
92
А можно еще сохранение по указанному пути и закрытие активного документа сюда приделать? Все остальное работает отлично
 

Oleg Butrin

15 лет на форуме
Сообщения
1 565
Оценка реакций
845
JavaScript:
doc.saveAs(File('C:/Temp/test.ai'));
doc.close(SaveOptions.DONOTSAVECHANGES);
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
23 674
Оценка реакций
8 203
В конце
JavaScript:
activeDocument.saveAs("myfile.ai");
activeDocument.close();