Скрипты для иллюстратора купить. Полезные и бесплатные скрипты для Adobe Illustrator

30.10.2019 Принтеры и сканеры

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

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

При создании рисунка в любом графическом редакторе часто приходится выполнять одни и те же действия. Еще больше времени занимает мелкая рутинная работа по подгонке контуров или созданию небольших деталей. При создании изображений для стоков затраты времени и вовсе могут стать катастрофическими. К счастью многие задачи можно решить используя записанные действия или скрипты. Представляем вам подборку из 20 удобных и полезных скриптов для .

Как установить скрипты в Adobe Illustrator

В целом установка скриптов в Illustrator не представляет ничего тяжелого. После того, как вы скачали нужны вам скрипт просто откройте программу, зайдите в File > Scripts > Other Scripts и выберите его. Полезный совет: скрипты лучше всего хранить в одном месте. Также очень полезным будет сохранять описания скриптов в отдельных файлах - со временем их база у вас будет только расти, что может привести к путанице.

Adjust Dashes

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

Arc Correction

Скажем, вы хотите нарисовать тучку. Можно долго возиться с эллипсами и кривыми, а можно за секунду набросать её форму с помощью планшета. Но вот беда - дуги часто получаются очень неровными. Скрипт Arc Correction легко исправляет положение.

Arrow-A, Arrow-V

При создании инфографики зачастую используются стрелки. Если вы хотите нарисовать красивую изогнутую стрелку, попробуйте скрипт Arrow-A, Arrow-V. Он создаст на каждом выделенном конце кривой указатель в форме А или V.

Circumcircle

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

Common Tangents

Скрипт Common Tangents рисует общие касательные для каждой выбранной кривой (если такие касательные имеются).

Divide

Необходимо разделить сегмент на равные части? Используйте скрипт Divide. Он аккуратно и точно разрежен объект на нужное количество равных отрезков.

Extend Handles

Вечная проблема - равномерное растягивание ползунков у ключевой точки. Еще и есть риск испортить наклон кривой. Скрипт Extend Handles сделает всю работу за вас.

Например:
100: оригинал
120: расширить 20%
80: сжать 20%
0: убрать закругление
-100: обратить закругление

Merge Overlapped Anchors

Многие фигуры проще сначала нарисовать в виде кривой, затем развернуть её и работать уже как с полноценным объектом. Но практически всегда происходит одно и тоже - после преобразования кривой в заливку образуется огромное количество ненужных точек, которые жутко мешают при дальнейшем редактировании. Скрипт Merge Overlapped Anchors помогает справиться с проблемой и удаляет лишние точки не меняя форму объекта.


Скачать Merge Overlapped Anchors можно .

Round Any Corner

Сложную форму можно создать, объединив несколько простых форм или же набросав угловатое очертание. Дальше может потребоваться скруглить углы. Задача рутинная и требует времени. Скрипт Round Any Corner упростит эту задачу. Выделите нужные точки, запустите скрипт, введите значение угла закругления и наслаждайтесь результатом.

Tree-like

Деревья - один из часто используемых элементов. Рисовать дерево долго, а рисовать лес и можно вечность. Скрипт Tree-like рисует деревья на основе одной кривой и может менять вид дерева при изменении её размера. Быстро и красиво.

Tangents From A Point

Этот скрипт рисует касательные от точки к выбранному объекту. Точка может быть как на кривой, так и изолирована (в таком случае она исчезнет после работы скрипта). Полученные касательные можно изменять по своему усмотрению.



Add Highlight And Shadow Swatches

Нужны быстрые контуры затемнения и осветления? Используйте скрипт Add Highlight And Shadow Swatches. Он берет цвет из выбранного объекта, далее вам необходимо задать ему некое имя, после чего на панели цветов появятся его гармоничные оттенки.



Скачать Add Highlight And Shadow Swatches можно .

Layer Export

Скрипт Layer Export быстро сохранит каждый слой в отдельный файл в формате PNG или PDF. Имя файла будет соответствовать имени слоя, а располагаться они будут там же, где и исходный Ai.

Layer Compose

Скрипт Layer Compose позволяет быстро объединить content- и template-слои в композицию. Для этого необходимо назвать template-слой любым именем с нижним подчеркиванием вначале (_abc) и запустить скрипт.

Specify!

Выберите один объект, запустите скрипт Specify! и задайте направление измерения - у узнаете длину или ширину объекта. Выделите два объекта - вы узнаете расстояние между ними. Выделите группу - узнаете её длину.

В Illustrator есть целая куча инструментов, но даже со всем этим изобилием, всегда будет чего-то не хватать. Вот тут то и приходят на помощь скрипты и плагины. Используя их, вы можете выполнять такие задачи, которые сам по себе Illustrator выполнить не в состоянии. В этой статье вы познакомитесь с 10 бесплатными и наиболее полезными скриптами (сценарии) для Illustrator!

Скрипты?

Illustrator поддерживает сценарии от AppleScript, Visual Basic, JavaScript, и ExtendScript. В активированном состоянии они выполняют различные операции внутри Illustrator, а также могут вовлекать другие программы, такие как редакторы текстов, программы баз данных и электронных таблиц. Вы можете использовать как установленные по умолчанию или чужие готовые скрипты, так и создавать свои собственные. Для получения большей информации по сценариям в Illustrator, изучите документацию в папке Adobe Illustrator CS3/Scripting.

Устанавливаем скрипты

Скачайте желаемый скрипт. После поместите его в папку Adobe Illustrator CS3/Presets/Scripts и он появится в подменю скриптов. Чтобы запустить нужный вам скрипт в Illustrator нажмите File > Scripts и выберете его в выпавшем списке.


1) Закрыть все пути Закрыть все выделенные пути (Close All Paths / Close All Selected Paths)

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


3) Слияние текстовых рамок (Join Text Frames)

Этот скрипт может воссоединить разделенные текстовые рамки. Очень полезен, если вам понадобилось открыть файл pre-CS illustrator или же нужно скомбинировать несколько текстовых рамок вместе.


Этот скрипт способен создавать цветочные фигуры из обычных фигур. Отлично подходит для создания необычных узоров, логотипов и просто для экспериментирования.


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


6) Перевод CMYK в Pantone v.2 (CMYK to Pantone v.2)

Этот скрипт подберет для вас наиболее точное соответствие пантона из данного цвета CMYK.


7) Изменение оттенков Случайные цвета (Vary Hues / Randomize Colors

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

Adobe Illustrator имеет множество инструментов и функций, но продвинутому пользователю всегда будет чего-то не хватать. Поэтому разработчики создают скрипты и плагины, которые помогут решать разнообразные задачи и ускорять трудоемкие процессы. Сегодня мы подготовили для вас обзор лучших бесплатных скриптов для Illustrator. Их список систематизирован и разделен на несколько групп по функциональности. Это работа с путями и точками, различные типы распределения форм, генерирование объектов, работа с панелью Layers, текстовыми объектами, цветом и т.д.

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

Установить скрипт необходимо в следующие папки :

Для Windows : C:\Program Files\Adobe\Adobe Illustrator CC 2014\Presets\en_GB\Scripts

Для Mac OS : Applications/Adobe\Adobe Illustrator CC 2014\Presets\en_GB\Scripts

Для запуска скрипта переходим File > Scripts > …

Вы также можете поместить скрипты в любом другом удобном месте на вашем жестком диске. В этом случае для запуска скрипта переходим File > Scripts > Other Script… (Cmd/Ctrl + F12).

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

Теперь ознакомимся со списком скриптов, которые разделены по функциональности:

Скрипты для работы с путями, точками и ручками

Этот скрипт поворачивает ручки опорных точек, изменяя их длину одинаково. После запуска скрипта у вас есть возможность выбрать одну из пяти типов ручек, затем установить параметры для длин и углов.

Этот скрипт создает цветочки из обычных фигур. Отлично подходит для создания интересных узоров, логотипов и т.д.

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

Скрипт закрывает открытые пути в текущем документе. Не соединяет касающиеся пути.

Скрипт изменяет направление выделенных путей в соответствии с направлением верхнего сегмента. То есть, после применения скрипта все выбранные пути будут иметь одно направление.

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

Скрипты, распределяющие объекты

Скрипт заполняет форму кружочками.

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

Скрипт дублирует верхний объект и размещает копии в выделенных точках.

Скрипт поворачивает объекты к центру верхнего объекта.

Скрипт поворачивает все объекты в позицию верхнего объекта.

Скрипт дает возможность разделить площадь векторного объекта в соответствии с данными, которые могут быть представлены в абсолютном или процентном выражении.

Скрипт создает зеркальное отражение в соответствием с выбранным типом из панели.

Скрипты, генерирующие объекты на основании других объектов или данных

Скрипт соединяет формы в стиле мета-болл (вы знаете русское название такой формы? я нет).

Скрипт создает общие (все возможные) касательные к выделенным объектам.

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

Скрипт позволяет генерировать QR код в Иллюстраторе.

С помощью этого скрипта вы можете автоматически создать календарную сетку всего за несколько кликов. Поддерживает языки: EN, RU, DE, UA.

Скрипты со случайным параметром

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

Скрипт RandomSwatchesFill в случайном порядке окрашивает выделенные объекты в цвета выбранные в палитре Swatches.

Скрипт RandOpacity изменяет прозрачность выделенных объектов в случайном порядке в диапазоне от 0% до 100% от первоначальной прозрачности объектов.

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

Скрипт Random Order позволяет распределить объекты в случайном порядке в панели Слои. Я использовал этот скрипт при написании

Скрипты для работы in the Layers panel

Скрипт удаляет все пустые слои в текущем документе.

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

Один из способов автоматизации повторяющихся процессов — использование скрипты, которые представляют собой некоторые последовательности команд, могут многократно воспроизводиться и являются наиболее мощным и в то же время самым сложным инструментом автоматизации работы в программе 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.