Телевизоры. Приставки. Проекторы и аксессуары. Технологии. Цифровое ТВ

Illustrator скрипт каждый цвет на отдельном слое. Скрипт для создания монтажных областей на основе выделенных элементов

Adobe Illustrator обладает множеством инструментов и функций для реализации любых задумок. Но даже имея в своём арсенале столько возможностей, чего-нибудь обязательно будет не хватать. В интернете сейчас можно найти множество скриптов и плагинов для Adobe Illustrator, расширяющих его функциональность. Без этих дополнений Adobe Illustrator может не справиться с выполнением некоторых заданий, либо добавит лишнюю работу для художника. Поэтому сегодня мы рассмотрим несколько полезных и бесплатных скриптов для Adobe Illustrator .

Установка скриптов

Для того, чтобы скрипт работал в Adobe Illustrator нам необходимо его поместить в папку Scripts, которая находится в директории Adobe Illustrator. В моём случае это …/Adobe/Adobe_Illustrator_CS5/Presets/en_GB/Scripts. Если вы используете более раннюю версию программы, вместо Adobe_Illustrator_CS5 в вашем случае может быть Adobe_Illustrator_CS4 , Adobe_Illustrator_CS3 и т.д.
Если вы скачали скрипты, которые сжаты в архив, то не забудьте их распаковать. После установки необходимо перезапустить Adobe Illustrator.

Доступные для использования скрипты можно найти на вкладке File в подменю Scripts.

Select Open Path

Этот скрипт найдет и выделит все фигуры с незамкнутым контуром. Данный скрипт будет полезен при создании вектора для микростоков, т.к. замкнутые контуры — это один из критериев приемки ваших работ в базу микростоков.

Close All Paths / Close All Selected Paths

Данный скрипт закрывает контур у всех фигур, либо у выбранных фигур. Так, например, после поиска незамкнутых контуров с помощью Select Open Path можно их сделать замкнутыми.

Devide Text Frames

C помощью этого скрипта можно разделить единое текстовое поле на более меньшие, причём местом разделения будет переход на новую строку.

Join Text Frames

Этот скрипт объединит несколько текстовых полей в одно.

Fleurify

Благодаря этому скрипту фигуры будут украшены красивыми цветочными изгибами.

Metaball

После использования этого скрипта несколько простых фигур будут превращаться в более сложные.

CMYK to Pantone v.2

Данный скрипт преобразует цветовой режим CMYK в Pantone

Circle

Благодаря этому скрипту можно создавать фигуры круга с необходимым количеством точек на ней.

Remove Anchors

Данный скрипт удалит выделенные точки на фигуре.

Round Any Corner

После использования этого скрипта острые углы фигуры будут преобразованы в закруглённые.

Swap Objects

Этот скрипт придаст одному объекту свойства второго, а второму — свойства первого. В качестве свойств будут использованы размер и местоположение на рабочей области.

Select Path By Size

Плагин поможет найти фигуры определённого размера.

Микростокер и иллюстратор Ольга Захарова поделилась своим набором скриптов, которым она пользуется ежедневно в своей работе. Сюда вошли скрипты как для создания иллюстраций, так и для автоматизации некоторых рабочих процессов в Adobe Illustrator.

Как вы уже, наверное, поняли, я всегда стараюсь максимально оптимизировать рабочий процесс:) И сегодня хочу рассказать вам о нескольких скриптах для иллюстратора, которые мне в этом очень помогают. Кликнув на название скрипта, вы попадете туда, где его можно скачать/купить.

Close All Paths

Стоимость : бесплатно
Что делает : избавляется от открытых путей, которых не должно быть в стоковой иллюстрации

Чтобы отправить векторную иллюстрацию на сток, нужно соблюсти ряд «правил» - в частности, избавить файл от открытых путей. Их количество в документе, кстати, узнать очень легко - нужно выделить все (ctrl + A), пойти в верхнее меню Window-Document Info - в появившемся окошке «отбросить» меню справа вверху и выбрать Objects. Если в скобках рядом с Paths написано Open: 0, я вас поздравляю, в вашей картинке нет ошибки (по крайней мере, не в открытых путях). Если цифра больше нуля - это нарушение стоковых правил. И я не знаю, сколько времени мы все бы тратили на поиск этих часто совершенно непонятно откуда образовывающихся открытых путей, если бы не этот чудесный бесплатный скрипт - cloth all paths, который позволяет обычно меньше, чем за минуту закрыть все открытые пути, не заморачиваясь их ручным поиском. При этом сама картинка совершенно не меняется. Маст-хев для всех стокеров!

Magic Eraser

Стоимость : $5
Что делает : обрезает иллюстрацию по краю рабочей области, удаляя все объекты, находящееся за ее пределами
Волшебный скрипт, без которого я уже не представляю своей жизни. Особенно актуален для любителей делать паттерны, но я использую его буквально для каждой иллюстрации - так он меня разбаловал. Вместо того, чтобы вымерять ровный квадрат, чтобы подложить его под фон, я делаю просто больше по размеру, чем рабочая область, а после завершения рисования включаю эрейзер - и он убирает все лишнее.

Когда я только училась рисовать в иллюстраторе и пробовала делать свои первые паттерны, меня очень угнетал процесс обрезки лишних кусков и поиска маленьких «остатков». Вроде все удалил - проверяешь размер, а там не ровный квадрат, а, скажем, 2001,38 вместо 2000 пикселей по высоте. И ты опять идешь искать - где же там затерялся лишний обрезанный, но не удаленный микро-кусочек… Теперь все паттерны у меня всегда идеально квадратные. И я точно знаю, что при попытке их размножить, я не столкнусь с «неплотным прилеганием» и прочими противными багами. Magic Eraser и обрезает все по краю, и удалет все обрезанное.

Нужно учитывать, что при обрезке тяжелого файла прогресс работы скрипта показывается не сразу (то есть несколько секунд - иногда 10-20 - прогресс-бар может оставаться пустым), главное его не трогать, а пойти попить чай-кофе, он обрежет. Векторные трейсы акварели на моем достаточно шустром маке он иногда обрезает по 15-20 минут, но все проще, чем вручную - представляете, сколько там лишних кусочков? :)

Vary Hues

Стоимость : бесплатно
Что делает : окрашивает выбранные объекты в рендомные цвета

Мне нравится применять этот скрипт при рисовании цветочков-листочков, когда есть много разных «частичек», которые скучно оставлять окрашенными одним цветом. Чтобы применить скрипт, нужно ввести число от 0 до 100, которое отражает «дальность» разброса новых рендомных цветов. Чем больше число - тем цветастее и разнообразнее получится иллюстрация. Я обычно ввожу 15-25, мне хватает:) Пляшет скрипт при этом от изначального цвета картинки. Хорош для включения вдохновения и добавления разнообразия в иллюстрации.

Dynamic Corners

Стоимость: $82 (за комплект из четырех скриптов, один купить отдельно нельзя)
Что делает: динамически скругляет углы, позволяя в любой момент вернуться и изменить радиус

Вообще говоря этот скрипт - один из четырех, которые входят в пакет Vector Scribe от известного создателя скриптов Astute Graphics. Они все - очень крутые, но из всех четырех я пока пользуюсь только динамик корнерс, потому что до изучения полного функционала других просто пока не дошли руки:)

Скрипт не бесплатный и не дешевый - пакет Vector Scribe стоит $82, но можно скачать триал и пробовать его бесплатно 30 дней. На скрипт динамик корнерс меня соблазнил Вон Глитчка (помните, я рассказывала про курсы lynda.com ) , сказав, что, попробовав этот скрипт в деле, уже невозможно представить, как жил без него. И это правда.

Я скачала его потестить - и так привыкла, что выполнявший до этого скругление углов round any corner, к которому пришлось вернуться после окончания тестового периода, начал казаться жутко доисторическим и неповоротливым инструментом, как будто топором чистишь картошку… И я решилась на покупку - и не пожалела. Он особенно помогает в рисовании графики, инфографики и иконок, а также всего, что можно нарисовать с помощью простых форм и пентула. Тем, кто рисует исключительно блоб брашем, он вряд ли нужен.

Autosaviour

Стоимость : бесплатно - после регистрации
Что делает : автоматически сохраняет иллюстрацию в заданные промежутки времени

Этот скрипт попал в список авансом, потому что пока что, к счастью, не было моментов, когда мне довелось бы попробовать его в деле. Но так как по каким-то непонятным логикам в иллюстраторе отсутствует функция «автосейв», этот скрипт - пока что единственное решение проблемы внезапного вылета и потери всех данных. У меня за полгода иллюстратор вылетал без предупреждения пять-шесть раз, и, конечно, каждый из них - за несколько секунд до сохранения какой-нибудь глобальной, отнявшей значительное количество времени работы:) Очень хочется верить, что этот плагин поможет минимизировать потери при следующем полете люстры.

После установки скрипт будет запускаться атоматически при создании нового документа или открытии старого. Нужно будет выбрать период сохранения (также можно выбрать, чтобы он не сохранял, а напоминал вам сохранить - видимо на случай, если вы боитесь случайно перезаписать файл).

Вообще в интернете можно найти сотни самых разных скриптов, но я на сегодняшний день пользуюсь только этими пятью купила пакет платных скриптов от Astute Graphics, которые буквально перевернули мой мир:)

Меня часто спрашивают о том, как установить скачанный/купленный скрипт, но тут я вам, увы, не помогу, так как это зависит от вашей операционной системы и ее версии. Глобально идея в том, чтобы найти папку, где у вас лежит иллюстратор, и в ней найти папку со скиптами. Инструкцию, которая сработает в вашем случае, вы легко найдете, погуглив фразу вроде «установка скриптов в иллюстратор на… (название операционной системы и версии)».

После установки скрипта доступ к нему осуществляется через верхнее меню File - Scripts - и далее можно выбрать тот, который нужен именно сейчас.

Работа дизайнера, связанная с реализацией каких-либо творческих идей, немыслима без многочисленных рутинных процессов, когда на повторение одной и той же операции приходится тратить массу времени и сил. Причин тому много. Во-первых, требуется оформлять немало графических элементов в едином стиле, что автоматически подразумевает многократное повторение однотипных операций. Во-вторых, в конкретных сферах дизайна существует немало стандартных операций, которые также приходится повторять изо дня в день (классическим примером в этом смысле является приведение к некоему стандартному виду десятков и даже сотен файлов с изображениями). Отдельный вопрос — пакетная обработка файлов, когда необходимо наложить одинаковые преобразования сразу на большую группу изображений.

Один из способов автоматизации повторяющихся процессов — использование скрипты, которые представляют собой некоторые последовательности команд, могут многократно воспроизводиться и являются наиболее мощным и в то же время самым сложным инструментом автоматизации работы в программе Adobe Illustrator. Скриптинг эффективен в самых разных ситуациях, если речь идет о большом числе однотипных действий, а применять скрипты можно как к отдельным изображениям, так и к группам изображений, эффективно сочетая их с макросами, что еще более облегчает и ускоряет процесс подготовки изображений и экономит немало времени.

В то же время на практике скрипты используются дизайнерами недостаточно широко. По всей видимости, из-за того, что для их написания необходимо знать один из языков объектно-ориентированного программирования: JavaScript, Visual Basic (Windows) или AppleScript (Mac OS). Однако все не так уж сложно, поскольку многие дизайнеры занимаются созданием Web-страниц, использующих JavaScript и потому имеют представление об объектно-ориентированном программировании, а этих знаний вполне хватает для написания скриптов. Есть и еще один аргумент в пользу JavaScript — данный язык относится к числу платформенно-независимых, а следовательно, написанные на нем скрипты будут работать как в Windows, так и в Mac OS. В данном уроке мы остановимся на технологии скриптинга на основе JavaScript в среде Adobe illustrator CS2, причем для повышения уровня доступности материала постараемся обойтись без сложных формулировок и без использования большого количества понятий — новых для рядовых пользователей, но принятых в программировании, поскольку многие из них при решении большинства стандартных дизайнерских задач необязательны. Желающие ознакомиться с JavaScript-скриптингом на более высоком уровне и с основами создания скриптов на Visual Basic и AppleScript могут обратиться к подробному руководству от компании Adobe (файлы документации вместе с примерами скриптов входят в поставку, и их можно найти в папке Scripting).

Теоретические аспекты работы со скриптами

В поставку Adobe Illustrator входит несколько готовых скриптов, ориентированных на решение наиболее часто повторяющихся задач, — в том числе скрипты для экспорта изображений в SVG-, PDF- и Flash-форматы. Входящие в поставку скрипты запускаются командой File=>Scripts (Файл=>Скрипты) (рис. 1), а хранятся в папке Presets\Scripts . Кроме того, в работе можно применять и демонстрационные скрипты, прилагающиеся к документации, — их можно выбрать из папки Scripting\Sample Scripts при помощи команды File=>Scripts=>Other Script (Файл=>Скрипты=>Другой скрипт).

Библиотеку встроенных скриптов можно неограниченно пополнять новыми скриптами, скачивая их из Интернета или создавая самостоятельно. В обоих случаях дополнительные скрипты просто копируют в эту же папку — после перезапуска программы они становятся доступными из меню File=>Scripts наряду со встроенными скриптами. В случае большого количества скриптов разумнее сохранять их не напрямую в папке Presets\Scripts , а в отдельных подпапках, число которых не ограниченно, причем все они будут представлены в виде отдельных подменю команды File=>Scripts (рис. 2).

В скриптах сохраняются практически все последовательности нужных действий и преобразований, которые в дальнейшем можно будет использовать при работе с другими изображениями. Однако есть и исключения: так, в скриптах не могут быть созданы такие объекты, как стили, кисти, графики, сеточные объекты и спирали, а кроме того, из скриптов не могут запускаться плагины.

Скрипты на языке программирования JavaScript представляют собой обычные текстовые файлы с расширением js и потому могут создаваться в любом текстовом редакторе, включая блокнот.

Концепция объектно-ориентированного программирования

Документ, созданный в программе Illustrator, представляет собой некий набор объектов, каждый из которых относится к тому или иному типу (например, является векторным, растровым, символьным и т.д.) и обладает определенными свойствами (шириной границы, цветом заливки и др.). К тому же каждый объект принадлежит некоторому документу, причем находится на его определенном слое и может быть подвергнут некоторым действиям (move, copy, duplicate и пр.).

В целом все эти принципы справедливы и в отношении объектно-ориентированного программирования, с той лишь разницей, что типы объектов здесь принято называть классами, а допустимые в отношении объектов действия — методами, однако свойства и здесь именуются свойствами. Чтобы лучше понять связь между классами и объектами, можно представить класс как своего рода чертеж для создания объектов. По этому чертежу как бы изготавливаются разные объекты, обладающие одними и теми же базовыми характеристиками, но при этом каждый объект существует независимо от других, то есть изменение его характеристик никак не влияет на характеристики других объектов. Например, все символьные объекты имеют единую природу, но у каждого из них будут свои размеры, своя настройка цветов и пр.

В JavaScript для обозначения каждого типа объектов, методов и свойств существуют свои зарезервированные имена (или операнды), например pathItems означает векторный объект, symbolItems — символьный объект, RasterItems — растровый объект, GroupItems — элемент группы, Selection — выделенный элемент и т.д. (полный набор зарезервированных имен представлен в руководстве по скриптингу).

На каждом слое конкретного документа может оказаться много объектов, поэтому все объекты, лежащие на любом из слоев, объединяются в массивы, в которых объекты различаются между собой по номерам (нумерация начинается с нуля). В итоге обращение к конкретному объекту предполагает последовательное указание обозначения слова app (сокращенно от application, что означает, что объект относится к загруженному приложению), имени документа, номера слоя, названия класса и номера элемента в соответствующем массиве. Например, конструкция app.activeDocument.layers.pathItems — это обращение к самому первому по глубине залегания векторному объекту, лежащему в активном документе на самом верхнем слое (обратите внимание, что нумерация слоев также начинается с нуля).

Полученные довольно длинные конструкции нетрудно сократить. Здесь можно не указывать ненужные в данном конкретном случае составляющие имени (в частности, если в документе всего один слой, то указывать его необязательно). Можно использовать ссылки на имена, вводя для обозначения части конструкции имени, которую придется многократно повторять, сокращенное имя (такие имена в языке программирования называют переменными). Имена лучше присваивать со смыслом, чтобы упростить ориентацию в теле кода. Например, если предварительно ввести конструкцию mypathItems=app.activeDocument.layers.pathItems , то рассматриваемый участок кода будет иметь вид mypathItems .

Не стоит использовать в качестве имен слова, задействованные в языке JavaScript для обозначения классов, свойств и методов, ибо это может привести к непредсказуемым результатам. Пример неверно определенной переменной — strokeWidth=app.activeDocument.layers.pathItems , слово strokeWidth используется для обозначения свойства «Ширина границы»).

До того, как приступать к экспериментам со скриптами, необходимо запомнить несколько правил:

  • в названиях переменных имеет значение регистр (то есть mypathItems и MyPathItems окажутся совершенно разными переменными);
  • номер элемента массива всегда указывается внутри квадратных скобок ;
  • любая конструкции скрипта (такие конструкции называют операторами) заканчивается либо символом «;», либо закрывающейся фигурной скобкой «}». Второй вариант имеет место лишь в тех случаях; когда в данной конструкции уже фигурирует открывающаяся фигурная скобка «{»;
  • количество закрывающихся фигурных скобок полностью совпадает с числом открывающихся;
  • каждую новую конструкцию лучше размещать на новой строке, а конструкции, размещаемые внутри фигурных скобок, лучше печатать со сдвигом по строке (рис. 3). Хотя данные приемы необязательны, но они значительно упрощают ориентацию в созданном скрипте и позволяют контролировать число открывающихся и закрывающихся фигурных скобок.

Принцип написания и отладки скриптов

Хотя язык JavaScript очень прост в освоении, он тем не менее остается языком программирования. На практике это означает, что довольно часто скрипты начинают правильно работать лишь после отладки, предполагающей исправление как явных, так и скрытых ошибок. Под явными ошибками понимаются неверные языковые конструкции, неверный синтаксис, попытки обратиться к несуществующим переменным и т.п. (о них сообщает Illustrator при попытке запуска скрипта). Причина появления скрытых ошибок — неверный алгоритм, и о таких ошибках можно догадаться только при внимательном анализе всех операций скрипта.

До того как скрипт заработает, его не раз придется редактировать и вновь запускать, поэтому лучше сразу поместить скрипт в меню File=>Scripts (Файл=>Скрипты), чем каждый раз долго выбирать его вручную при помощи команды File=>Scripts=>Other Script (Файл=>Скрипты=>Другой скрипт). Для этого откройте блокнот, сохраните пустой еще файл с расширением js в папке Presets\Scripts и перезапустите программу. Целесообразно специально отвести для отладки скриптов один пункт в меню File=>Scripts , например с именем debugging , — в этом случае, создавая очередной скрипт, можно будет вначале размещать его в файле debugging.js в папке Presets\Scripts , потом доводить «до ума» (удобство в том, что данный скрипт будет сразу виден в меню программы Illustrator), а после отладки сохранять в той же самой папке, но уже под персональным именем.

Освоение простейших конструкций языка JavaScript

Прежде чем переходить к примерам создания скриптов, которые могут автоматизировать процесс решения тех или иных дизайнерских задач, рассмотрим несколько простых учебных примеров, которые хотя и не имеют особой практической ценности, но помогут нам разобраться в принципах использования наиболее распространенных языковых конструкций. Для этого создайте в блокноте пустой файл debugging.js и сохраните его в папке Presets\Scripts. Далее загрузите программу Illustrator и создайте новый документ, разместив в нем три векторных контура, например три прямоугольника с широкой границей (рис. 4). Обратите внимание на размещение объектов в палитре Layers: находящийся в самом низу слоя объект был создан самым первым, а потому в разнообразных массивах он будет фигурировать под 0-м номером; при движении вверх по палитре Layers номера объектов будут увеличиваться.

Введите в файл debugging.js нижеприведенные строки

mypathItems = app.activeDocument.layers.pathItems;

mypathItems.strokeWidth=2.5;

mypathItems.strokeWidth=3.5;

mypathItems.strokeWidth=2.5;

и сохраните файл под тем же именем (рис. 5).

Конструкция mypathItems = app.activeDocument.layers.pathItems означает создание переменной с именем mypathItems , благодаря которой можно будет сократить обращение ко всем объектам первого слоя активного документа. Строка mypathItems.strokeWidth=2.5 говорит о том, что ширина границы (свойство strokeWidth ) у самого первого объекта станет равной 2,5 пикселам. Остальные строки идентичны.

Переключитесь на изображение в программе Illustrator и запустите созданный скрипт командой File=>Scripts=>debugging (Файл=>Скрипты=>Отладка). Результатом будет изменение ширины границы: у первого и третьего объектов на 2,5 пикселов, а у второго — на 3,5 пикселов. Поскольку в документе всего один слой, то рассмотренная конструкция может быть и короче (рис. 6).

На практике одинаковые преобразования (как в данном случае изменение ширины границы) чаще всего выполняются в отношении нескольких или даже всех объектов. Перечислять их вручную в скрипте, даже просто копируя строки, довольно долго; к тому же это чревато лишними ошибками и усложняет программный код. В таких случаях прибегают к циклам — при наличии в документе все тех же трех прямоугольников уменьшение границы в цикле у всех объектов до величины в 0,5 пиксела представлено на рис. 7. Наберите данные строки в файле debugging.js, сохраните и запустите скрипт для обработки рабочего изображения. Измененный скрипт дополнился оператором цикла:

for (условие цикла){

тело цикла

Условие цикла может выглядеть по-разному, но в большинстве случаев оно может быть представлено конструкцией i=0;i<имя_объекта.length;i++ , означающей изменение переменной i на одну единицу в сторону увеличения от нуля и до тех пор, пока ее значение не совпадет с числом объектов (length ) в активном слое активного документа. Тело цикла ограничено с обеих сторон фигурными скобками и может включать как одну, так и несколько строк (в зависимости от числа выполняемых в цикле действий), каждая из которых оканчивается символом «;».

Попробуем теперь изменить скрипт так, чтобы граница менялась лишь тогда, когда на изображении имеются выделенные объекты, и одновременно ознакомимся с оператором условного перехода, который в общем виде выглядит следующим образом:

if (условие) {

набор действий 1

набор действий 2

Подобная конструкция означает, что при истинности условия выполняется первый набор действий, а в противном случае — второй. В простейшем виде условие может быть представлено в виде равенства или неравенства, а любой набор действий заключается в фигурные скобки и может состоять из одного или нескольких действий, каждое из которых находится на отдельной строке и оканчивается символом «;». Попробуйте изменить скрипт в соответствии с рис. 8 и проверьте его на практике. Скрипт в этом случае дополнился новой переменной docSelected , используемой для обращения к выделенным объектам в цикле (переменная цикла увеличивается до тех пор, пока не станет равной числу выделенных объектов) и фигурирующей в операторе условия, который проверяется на наличие выделенных объектов. Как показывает проверка, данный скрипт при выполнении не выдает ошибок, но работает неверно — при наличии выделенных объектов ширина границы действительно меняется, но не у тех объектов, которые были выделены, а всего лишь у соответствующего числа объектов по порядку. Проблема кроется в строке mypathItems[i].strokeWidth=0.5 и будет разрешена в случае ее замены на конструкцию docSelected[i].strokeWidth=0.5 (рис. 9). Проверьте это сами, чтобы убедиться, что теперь ширина границы меняется только у тех объектов, которые были предварительно выделены.

Под конец введем в скрипт завершающий штрих — дополним его так, чтобы при отсутствии выделенных объектов на экране появлялось соответствующее сообщение (рис. 10 и 11). Для вывода сообщения воспользуемся оператором Alert , который обеспечивает отображение на экране произвольного текста, предварительно введенного в конструкции Alert в кавычках. Стоит отметить, что оператор Alert может оказаться полезным не только в случае необходимости сопровождать работу скрипта некоторыми сообщениями. Гораздо полезнее он может оказаться при отладке скрипта, когда совершенно непонятны причины неправильной работы скрипта. Применяя в таких ситуациях оператор Alert, можно проследить, как понимает программа ту или иную инструкцию, и таким образом вы сможете установить причину неверной работы программного кода.

Примеры создания и использования скриптов

Изменение оформления однотипных объектов

Часто бывает необходимо быстро изменить у всех однотипных объектов в документе те или иные свойства. Например, вам требуется изменить цвет заливки объектов либо слегка уменьшить или увеличить размер. В ручном варианте в этом случае придется выделять все интересующие вас объекты, что при значительном их количестве довольно утомительно. Поэтому создайте для таких операций серию скриптов, выполняющих данную работу автоматически. Допустим, вам требуется в уже готовом документе слегка уменьшить размеры большого количества символьных изображений (symbolItems ) (рис. 12), причем заранее неизвестно, на сколько пикселов необходимо уменьшить значения высоты (height ) и ширины (width ). В таком случае следует уменьшать на 1 пиксел, а если этого окажется недостаточно, то скрипт можно будет неоднократно запускать для дальнейшего уменьшения. Чтобы уменьшить значение свойства на некоторую величину в сравнении с первоначальным значением, перед знаком равенства в свойстве следует добавить знак «-» — в нашем случае соответствующая конструкция примет вид: mysymbolItems[i].height-=1 . Точно так же можно увеличивать значение свойства, введя вместо знака «-» знак «+». Созданный скрипт представлен на рис. 13, а результат его работы — на рис. 14.

Скрипты могут использоваться не только для изменения того или иного свойства объектов, но и для полного их оформления, что чаще всего осуществляется наложением графического стиля и тоже может быть автоматизировано. Графические стили (graphicStyles ), как и многие другие объекты, объединяются в массивы, и к ним можно обращаться по номерам. Для примера создадим скрипт, который будет накладывать определенный стиль на все векторные объекты, ширина границы которых меньше или равна 1 (на деле принцип проверки изображений зависит от особенностей их создания и может быть самым разным). Пример подобного скрипта приведен на рис. 15.

Утолщение слишком тонких границ

Довольно часто после разнообразных преобразований оказывается, что границы части объектов получаются слишком тонкими и могут быть практически невидимыми (рис. 16). Тогда ширину границы у таких объектов приходится увеличивать, а сделать это вручную при большом числе объектов — весьма проблематично. Гораздо удобнее выполнить данную работу при помощи подходящего скрипта, что займет считаные секунды. Задача такого скрипта состоит в том, чтобы перебрать все объекты, а те из них, которые имеют меньшую ширину границы (например 0,25 пикселов) — увеличить ширину границы до 0,5 пикселов. Остальные границы при этом должны оставаться неизменными. Созданный скрипт представлен на рис. 17, а результат его работы — на рис. 18.

Форматирование текстовых объектов

Нередко на каком-то этапе оформления документа появляется желание изменить принцип оформления входящих в него текстовых объектов. Однако выделять большое число объектов — занятие утомительное. В таких ситуациях можно создать скрипт, который способен перебирать текстовые объекты и менять их характеристики определенным образом, например уменьшая размер шрифта, его цвет, фонт, положение и т.д.

Вариантов таких скриптов можно придумать очень много, но мы остановимся на увеличении размера шрифта на 1 единицу и на изменении его цвета для всех текстовых объектов документа (рис. 19). Это предполагает перебор в цикле объектов из класса textFrames (так обозначают текстовые объекты) и корректировку их свойств characterAttributes.size (размер шрифта) и fillColor (в данном случае — цвет символов). Подобный скрипт представлен на рис. 20, а результат его работы — на рис. 21.

Выравнивание высоты и ширины объектов

При создании организационных, технологических и иных видов бизнес-диаграмм приходится работать с большим числом идентичных объектов, например обычных прямоугольников, которые различаются размерами в связи с разной длиной размещаемого в них текста (рис. 22). В конечном же счете все указанные элементы нередко должны быть равными по высоте. Выравнивать их вручную, конечно, хлопотно, но данную операцию можно быстро осуществить с помощью скрипта.

Создадим скрипт, который будет выравнивать высоту всех объектов по высоте контрольного объекта, созданного последним. Его следует создать, задав нужную высоту вручную (рис. 23), причем ширина объектов изменяться не должна. Для этого достаточно просто перебрать в цикле все объекты, пересчитывая для каждого новую высоту по обычной пропорции и затем изменяя ее. Для изменения высоты воспользуемся методом resize (scaleX, scaleY) , где scaleX и scaleY — изменение значений ширины и высоты в процентах (в сравнении со старыми значениями). В нашем случае вычислять нужно только значение scaleY , а scaleX будет равно 100, так как ширина остается без изменения. Созданный нами скрипт представлен на рис. 24, а результат его работы — на рис. 25.

Встречается и такая ситуация, когда объекты требуется выровнять по ширине, оставляя их высоту неизменной. Автоматизировать процесс тоже поможет скрипт, который можно получить из предыдущего, заменив свойство height (высота) на свойство width (ширина) и отредактировав принцип масштабирования объектов в методе resize (scaleX , scaleY ), где в этом случае неизменным должно оставаться значение scaleY (рис. 26).

Форматирование таблицы

Если приходится регулярно работать с однотипно оформленными объектами, например с таблицами, содержимое которых, как и количество строк, постоянно меняется, но стиль оформления при этом сохраняется, то можно значительно ускорить процесс оформления таблицы, создав соответствующий скрипт. Предположим, что все ячейки таблицы создаются в белом цвете и не имеют границ (рис. 27). При оформлении необходимо залить заголовочные ячейки некоторым цветом (иными словами изменить значение свойства fillColor ) и добавить им тонкую границу шириной в 0,5 пикселов, что предполагает изменение свойств strokeColor и strokeWidth .

Под заголовочными ячейками в данном случае будем понимать ячейки, имеющие определенную левую границу — в нашем примере 40 пикселов. Цвет заливки ячеек будет отличаться от цвета границы, поэтому нужно сформировать две переменные цвета — назовем их colorNew и colorNew1 , для каждой из которых придется определить красную, зеленую и синюю составляющие цвета. После этого потребуется перебрать все векторные объекты в цикле и изменить свойства fillColor , strokeColor и strokeWidth тех из них, у которых левая граница равна 40 пикселам. Созданный скрипт представлен на рис. 28, а результат его работы — на рис. 29.

Обратите внимание, что в рассматриваемом примере сами ячейки (то есть соответствующие им прямоугольные объекты) присутствовали в документе, поэтому их параметры можно было изменять. Это означает, что при создании таблицы ее ячейки были нарисованы в виде прямоугольных объектов, а затем были скопированы в буфер обмена и продублированы командой Edit=>Paste in Front (Редактировать=>Вставить на передний план). После этого в копии ячеек был вписан текст, сгруппированный вместе с соответствующей ему прямоугольной ячейкой. При другой технологии создания таблицы для ее оформления потребуется совсем иной скрипт.

Экспорт и сохранение открытых документов

Бывает, что после работы с несколькими и даже со многими документами в конце работы их все необходимо сохранить либо экспортировать в нужный формат. Рассмотрим вариант экспорта всех отрытых изображений в формат jpg. При создании скрипта для выполнения данной операции, во-первых, нужно добиться того, чтобы изображения сохранялись с разными именами и в конкретной папке, а во-вторых, следует как-то переключаться с документа на документ при условии, что имена документов произвольны.

Для решения первой проблемы есть два пути — либо задавать папку-приемник, равно как и имя документа вручную в ходе выполнения скрипта (но это довольно утомительно, особенно в случае большого числа изображений), либо формировать папку и имя документа по определенному принципу. Мы пойдем по второму пути, то есть в качестве папки-приемника зададим фиксированную папку C:/temp/ , имя документа оставим тем же, а расширение jpg будет присваиваться автоматически, за счет выбора нужного формата экспорта. В итоге соответствующая строка скрипта в данном примере будет выглядеть следующим образом: fileSpec = new File ("C:/temp/ " + doc.name ), где doc.name — имя активного документа.

Вторая проблема — переключение с документа на документ — в скрипте будет решаться автоматически вследствие того, что каждый уже экспортированный документ будет сразу же закрываться, а активным станет загруженный перед ним. Однако нужно иметь в виду, что число рабочих документов в данном скрипте окажется величиной переменной, так что не удастся использовать ее в качестве верхней границы выполнения цикла. Поэтому перед циклом нужно создать дополнительную переменную для хранения исходного числа документов — docLength=documents.length .

Кроме того, закрывать изображения лучше командой doc.close(SaveOptions.DONOTSAVECHANGES ), а не doc.close(), поскольку во втором случае при закрытии каждого изображения программа будет требовать соответствующего подтверждения. Скрипт для решения сформулированной проблемы представлен на рис. 30.

Проведение пакетной обработки файлов

Довольно часто бывает необходимо проводить одинаковую обработку для групп файлов, например при приведении большого числа файлов к определенному виду. В таких случаях целесообразно выполнение скрипта в пакетном режиме. Хотя такой возможности в программе Illustrator не предусмотрено, но в пакетном режиме можно запускать макрос, в качестве одной из команд которого может выступать запуск нужного скрипта.

Представьте, что имеется очень много файлов, разработанных разными пользователями, и что их нужно максимально уменьшить в размере и перезаписать в одном формате EPS. В отношении каждого файла нужно выполнить две операции: удалить утяжеляющие файл ненужные кисти, графические стили, символы и цвета, а затем сохранить изображение в формате EPS. Теоретически можно поместить обе операции в один скрипт, который в дальнейшем запускается в пакетном режиме из палитры Actions (Действия), но на практике придется поступать иначе — воспользоваться макросом Delete Unused Palette Items из набора Default Actions , который отвечает за удаление неиспользуемых кистей, графических стилей, символов и цветов. К сожалению, возможности JavaScript несколько ограниченны, и потому для решения этой задачи пришлось бы применять команды docRef.swatches.removeAll() , docRef.symbols.removeAll() и docRef.graphicStyles.removeAll() , которые приведут к удалению всех цветов, символов и пр., а не только неиспользуемых, что нельзя признать оптимальным решением. Можно удалять ненужные графические элементы по очереди, но это отнимет очень много времени и сил. Благодаря же макросу Delete Unused Palette Items нужное нам действие будет выполняться в считаные секунды, поэтому мы остановимся на комбинировании скрипта и макроса.

Откройте палитру Actions (Макросы) при помощи команды Window=>Actions (Окно=>Действия) и создайте в ней новый набор действий, щелкнув на кнопке Create New Set (Создать новый набор), расположенной в нижней части палитры. Выберите макрос Delete Unused Palette Items , продублируйте его командой Duplicate (Дублировать) и перетащите дублирующую операцию в созданный набор макросов. Теперь нужно дополнить макрос операцией сохранения файла в формате EPS — за данную операцию будет отвечать специально созданный скрипт SaveAsEPS (рис. 31). Сохранять файлы будем под их исходными именами в папке C:/temp/ .

Казалось бы, логичнее оформить запуск скрипта в виде второго макроса в созданном наборе действий, но это будет неудобно при дальнейшей обработки файлов. Дело в том, что в пакетном режиме можно запускать только один макрос, поэтому для того, чтобы операция обработки файлов осуществлялась в один прием, дополните макрос Delete Unused Palette Items запуском скрипта и измените имя макроса. Запуск скрипта можно включить в набор при помощи команды Insert Menu Item (Вставить пункт меню) меню палитры Actions, указав в открывшемся окне команду File=>Scripts=>SaveAsEPS (Файл=>Скрипты=>Сохранить как EPS), рис. 32.

Для выполнения созданного макроса в пакетном режиме из меню палитры Actions откройте команду Batch (Пакетная обработка), в открывшемся диалоговом окне выберите набор макросов в списке Set (Набор), а затем — нужный макрос в списке Action (Действие). Далее в списке Source (Источник) установите вариант Folder (Папка), щелкните на кнопке Choose (Выбрать) и укажите ранее созданную папку-источник. В списке Destination (Приемник) выберите вариант Save and Close (Сохранить и закрыть) (рис. 33) и щелкните на кнопке ОК. Результатом станет появление уменьшенных в размере файлов в папке C:/temp/ — все они будут в формате EPS.

В этой подборке вы найдёте 10 полезных скриптов для Adobe Illustrator. Эти скрипты совершенно бесплатные. Все ссылочки - в названиях скриптов. Если скрипт не хочет скачиваться по ссылке, а вместо этого в вашем браузере открывается код, то сделайте Правый клик > Сохранить ссылку как и сохраните скрипт на свой компьютер.

Небольшое лирическое отступление для тех, кто не встречался до этого со скриптами в иллюстраторе. Скрипт - это программа, которая может быть запущена в Adobe Illustrator через меню File > Scripts . Как это положено любой программе, скрипт выполняет какие-либо полезные действия, быстро и автоматически. Именно поэтому скрипты стали неотъемлемыми помошниками для микростокеров, так как рутины в нашей работе хоть отбавляй.

Представленные ниже скрипты для Adobe Illustrator помогают дизайнерам в самых разных задачах. Начиная от подготовки векторных файлов на микростоки и заканчивая авторисованием цветочков. Но если вам и этого мало, то в конце статьи есть ссылки на ещё целую кучу скриптов.

Чтобы установить скрипт на свой иллюстратор, нужно скопировать файл скрипта в папку со стандартными скриптами. Ищите её там, где установлен ваш иллюстратор.

Для винды это обычно: диск C > Program Files > Adobe > папка с вашей версией Adobe Illustrator > Стили (Presets) > en_GB или RU (там одна папка не промахнётесь) > Scripts .

Для маков: Applications > Adobe > ваша версия Adobe Illustrator > Presets > en_GB > Scripts .

Если стандартную папку никак не найти, то скрипты можно запускать в иллюстраторе без установки через File > Scripts > Other Script (Ctrl+F12) .

Итак, поехали!

Скрипт ищет и исправляет ошибки, которые не допустимы на микростоках. Векторный файл сканируется автоматически: скрипт находит открытые пути, контуры-призраки, неразобранные кисти, символы, растр и прочее. По ходу дела скрипт сразу предлагает исправить эти ошибки. Скачать бесплатно Free Stock Master можно на MAI Tools.

С помощью этого скрипта можно выборочно проверять наличие тех или иных объектов в векторном файле. Например, искать открытые пути, растр и т. п. Скачать скрипт можно на Arid Ocean. Зелёненькая кнопочка ExtendedSelect.zip там в самом верху.

Скрипт открывает многостраничный PDF целиком и полностью, а не по одной страничке, как это принято в иллюстраторе. В окошке скрипта указываем путь к PDF файлу, количество страниц, и он открывается в одном документе на нескольких артбордах.

Скрипт выравнивает выделенные объекты по пиксельной сетке. Работает аналогично опции Align to Pixel Grid.

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

Скрипт проводит линии из угла в угол у фигур. Получаются геометрические узоры и пиктограммы.

Скрипт крутит узлы из объектов, получаются интересные узоры. У скрипта есть удобные настройки, которые сразу применяются к выделенной фигуре. Сразу видно, что получается на рабочей области.

Скрипт изменяет положение линий и точек так, что геометрически правильный рисунок становится более живым. Либо кривым, но это уже как играться с настройками.

Скрипт делает из отдельных однострочных текстов ровную колонку как на постерах.



Похожие публикации