В пакете CS3 идет программа "Adobe ExtendScript Toolkit 2.exe" (для мака как-то похоже, видимо. В CS2 был "Adobe ExtendScript Toolkit.exe"). Обычно устанавливается сюда:
C:\Program Files\Adobe\Adobe Utilities\ExtendScript Toolkit 2\ExtendScript Toolkit 2.exe
В ней можно писать и отлаживать скрипты, смотреть объектную модель.
Также с иллюстратором идут документация по скриптам (объектная модель, свойства и методы):
C:\Program Files\Adobe\Adobe Illustrator CS3\Scripting\Documentation\Illustrator CS3 JavaScript Reference.pdf
и примеры:
C:\Program Files\Adobe\Adobe Illustrator CS3\Scripting\Sample Scripts\JavaScript
Полезным бывает найти в сети скрипт с похожей функциональностью или ее частью и затем "заточить" ее под свои нужды.
Adobe ExtendScript Toolkit у меня есть, но что то тяжело разобраться. Большинство ссылок посещал уже. Скриптов полно, но все они сложные, в качестве примеров для обучения не совсем подходят. Попробую статью Борисова.
имхо, на всякий случай добавлю: прежде чем писать скрипт, обязательно надо оценить, насколько он поможет в дальнейшей работе, не получится ли так, что время, затраченное на его написание будет намного превышать то время, которое он позволит сэкономить. Я не раз попадался в такие ловушки (не касательно адобовских скриптов, а вообще касательно автоматизации работы).
Согласен но здесь все просчитано
Конкретно мучаюсь вот сижу. Есть "n" количество слоев. В каждом слое по одному контуру без обводки. Нужно "наростить каждый контур на заданную величину по периметру (не масштабирование).
Можно: Объект/контур/создать парралельный контур, потом удалить оригинал, останется нужный "увеличенный" контур, далее переход на следующий слой.
Все эти действия записать в экшен. Но у меня почему то запись экшена барахлит - не записываеся действие переход на другой слой и все. Нужно скрипт писать.
вроде тут не очень сложный скрипт должен получаться.
а в экшене - может как-то выкрутиться попробовать? Может попробовать делать не переход на другой слой, а выделение следующего объекта под/над текущим? это-то эшен должен делать.
Или еще проще, без экшена (или в экшене) - выделяем все нужные слои, сохраняем выделение, делаем увеличение контуров, вызываем сохраненнное выделение, удаляем выделенное (т.е. исходные объекты)???
dimol, красивое решение, здорово!
Про скрипты скажу, что многих вещей ими не сделать. Например увеличение контуров. Я так понял, что скриптами можно делать некоторые базовые вещи, а то что реализовано плагинами нельзя.
Конкретно эту задачу можно было бы решить сочетанием скрипта и экшена. Не нашел к сожалению как можно из скрипта выполнить экшен, хотя это и декларируется в руководстве. Но хорошо хоть можно в экшене выполнять скрипт.
Привожу, в образовательных целях, скрипт с подробными комментариями:
Код:
//----------------------------------------------------------------
// Скрипт для AI.
// Снимает любое выделение,
// переходит на слой лежащий выше текущего,
// выделяет первый объект на новом текущем слое.
// Проверок на залоченность невидимость и т.п. не производится.
//----------------------------------------------------------------
var myDoc = app.activeDocument; // текущий докумет
var myLayers = myDoc.layers; //все слои в документе
var curLayer = myDoc.activeLayer; //текущий активный слой
var zOrd = curLayer.zOrderPosition; // порядок активного слоя в стопке всех слоев
myDoc.selection = null; //снимаем выделение со всего
for(var i = myLayers.length-1; i >= 0; i--){ //проверяем все слои документа
if (myLayers[i].zOrderPosition == 1) {//если самый нижний слой
var layerWithLowerZOrd = myLayers[i]; //запоминаем его
}
if (myLayers[i].zOrderPosition == zOrd + 1) { //если выше текущего на один уровень
myDoc.activeLayer = myLayers[i]; //переходим на него
break;
}
}
if (myDoc.activeLayer == curLayer) { //если текущим остался прежний, то значит мы на самом верхнем уровне
myDoc.activeLayer = layerWithLowerZOrd; //тогда переходим на самый нижний
}
myDoc.activeLayer.pathItems[0].selected = true; //выделяем объект (предполагаем что объект единственный на слое) на текущем (уже после перехода) слое
Да, познавательно, буду учится и на этом примере.
Но я вчера всетаки победил задачу. Сделал только экшен. Решил с помощью клавиатурных сокращений Но так как в экшенах нет циклов, а обрабатывать нужно много слоев, пришлось написать другой экшен, который запускает предыдущий "n" количество раз. Все работает.
Надо изучать скриптинг. Нашел вот книжку которую куплю: http://oz.by/books/more108513.html?id_search=1292843
Всем здоровья и благополучия!
Не нашёл ответа на свой вопрос или плохо искал, направьте , пожалуйста, если обсуждалось! КАК правильно сделать для подачи на стоки: вариант "1" или вариант"2"? Примеры упрощённые но важна сама суть - применять к пересекающимся объектам и контурам pathfinder(2) или оставить как есть(1) (вид после Ctrl+Y)? Для печати, насколько я помню из проштудированного, очень важно чтоб области залитые цветом не пересекались а образовывали самостоятельный контур с заливкой. Заранее благодарю за отзывы или замечания!