[AI CS4-CS6] Подскажите, существует ли скрипт, удаляющий все прозрачности (сводит к 100%) и наложения прозрачности со всех объектов в сцене, в т.ч. внутри групп?

lakma

Топикстартер
10 лет на форуме
Сообщения
26
Реакции
2
Подскажите по инструменту. Нужен скрипт, удаляющий все прозрачности и наложения в сцене со всех объектов (в том числе, внутри групп), с сохранением иерархии (групп, групп групп и т.д). Готов заплатить разумную денежку.
 
А он так нужен?:)
1.gif
 
  • Спасибо
Реакции: lakma
А, ты про эппиренс? :) Да, там этот плагин не ищет.
 
А вроде уже поднималась эта тема...
Впрочем, плагин в любом случае ТС будет полезен и возможно даже в его случае достаточен.
 
  • Спасибо
Реакции: lakma
Спасибо за советы. Но ставить целый плагин под одну рутинную операцию не хочется.
Для обнуления прозрачностей в группах есть хороший скрипт - Random Opacity от Randomill (можно выставить диапазон 100%-100%). Но вот наложения он не правит.

А подобную тему не нашёл, только это - [AI CS4-CS6] - поиск опасити

Вопрос актуален. Сцены без сложных объектов (кистей, масок, символов и т.д.).
 

Вложения

  • Random-Opacity-Free-Illustrator-Script.png
    Random-Opacity-Free-Illustrator-Script.png
    11.6 КБ · Просм.: 9
Один файл закинуть в папку? :)) Да, сложно. Скрипт закинуть в папку проще :))
Дело не в этом. Возможно, я не очень умный человек, но пришлось удалить все плагины, в том числе Astute. Теперь ставлю только выборочно и на время использования. Заметил, что тяжёлые сцены начали сильно тупить, т.к. плагины (Astute точно) сильно замедляют работу на больших файлах. То же самое происходит с Scriptographer (древний плагин).
В отличии от скриптов. Они вообще не влияют на скорость. Думаю, Иллюстратор и не обращается к ним, видит их как дерево папок с файлами.
 
Для обнуления прозрачностей
Если это применено только к объекту, то все просто, если индивидуально в аппиренсах – все печально.

Пробуйте.
JavaScript:
#target illustrator

function main(){
    if (app.documents.length == 0) return;
    var doc = app.activeDocument;
    
    for (o = 0; o < doc.pageItems.length; o++)
    {
        doc.pageItems[o].blendingMode = BlendModes.NORMAL;
        doc.pageItems[o].opacity  = 100;   
    }
    for (o = 0; o < doc.layers.length; o++)
    {
        doc.layers[o].blendingMode = BlendModes.NORMAL;
        doc.layers[o].opacity  = 100;   
    }
}

main();
 
  • Спасибо
Реакции: lakma
Дело не в этом. Возможно, я не очень умный человек, но пришлось удалить все плагины, в том числе Astute. Теперь ставлю только выборочно и на время использования. Заметил, что тяжёлые сцены начали сильно тупить, т.к. плагины (Astute точно) сильно замедляют работу на больших файлах. То же самое происходит с Scriptographer (древний плагин).
В отличии от скриптов. Они вообще не влияют на скорость. Думаю, Иллюстратор и не обращается к ним, видит их как дерево папок с файлами.
Конкретно этот плагин на миллисекунды увеличит время запуска AI более он в работе не участвует, пока Вы к нему не обратитесь, зато очень часто бывает полезен. Не знаю, может и есть плагины которые постоянно требуют ресурсов, но имейте в виду, что половина функционала иллюстратора... это плагины изначально в нем установленные :))
 
Последнее редактирование:
  • Спасибо
Реакции: lakma
Если это применено только к объекту, то все просто, если индивидуально в аппиренсах – все печально.

Пробуйте.
JavaScript:
#target illustrator

function main(){
    if (app.documents.length == 0) return;
    var doc = app.activeDocument;
 
    for (o = 0; o < doc.pageItems.length; o++)
    {
        doc.pageItems[o].blendingMode = BlendModes.NORMAL;
        doc.pageItems[o].opacity  = 100;
    }
    for (o = 0; o < doc.layers.length; o++)
    {
        doc.layers[o].blendingMode = BlendModes.NORMAL;
        doc.layers[o].opacity  = 100;
    }
}

main();
Код:
#target illustrator;
var doc = app.activeDocument;

main();
function main(){
    if (app.documents.length == 0) return;
    var doc = app.activeDocument;
    //закомментировано ниже, деструктивная операция ExpandAppearance All
/* app.executeMenuCommand('selectall');
    app.executeMenuCommand('expandStyle');
    doc.selection = false; */
    for (o = 0; o < doc.pageItems.length; o++)
    {
        doc.pageItems[o].blendingMode = BlendModes.NORMAL;
        doc.pageItems[o].opacity  = 100; 
    }
    setLayersOpacityAndBlendModes(doc.layers);
}

function setLayersOpacityAndBlendModes(l) {
    for (var i = 0; i < l.length; i++) {
        l[i].blendingMode = BlendModes.NORMAL
        l[i].opacity = 100;
        if (l[i].layers.length) setLayersOpacityAndBlendModes(l[i].layers);
    };
};
Ну, так себе решение конечно :) Взять, и поделить...
Добавил перебор подслоев.
 
Последнее редактирование:
  • Спасибо
Реакции: lakma