Как сделать скрипт в иллюстраторе

Обновлено: 05.07.2024

Adobe Illustrator Scripts

Это коллекция авторских скриптов для Adobe Illustrator.

По ссылкам описание и демонстрация скриптов в каждой категории.

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

  • BatchRenamer
  • DuplicateArtboards
  • MoveArtboards
  • RenameArtboardAsLayer
  • RenameArtboardAsSize
  • RenameArtboardAsTopObj

Скрипты для работы с цветом объектов.

  • ConvertToGradient
  • CycleColors
  • CycleGradient
  • DistributeGradientStops
  • GradientToFlat
  • RemoveGradientStops
  • ReverseGradientColor
  • StrokeColorFromFill (upd, 12.01.2022)

Скрипты, которые что-либо рисуют.

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

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

  • CenterClipsToArtboards
  • ExtUngroup
  • MoveToGroup
  • TrimMasks

Скрипты, управляющие выбранными объектами.

  • MakeEnvelopesWithTops
  • RememberSelectionLayers (new, 22.01.2022)
  • RenameItems
  • Rescale
  • ResizeOnLargerSide
  • ResizeToSize
  • RoundCoordinates

Скрипты, изменяющие пути.

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

  • NamedItemsFinder
  • SelectBySwatches
  • SelectOnlyPoints
  • SelectPointsByType

Скрипты, стилизующие объекты.

  • ChangeOpacity
  • GrayscaleToOpacity
  • OpacityMaskClip
  • StrokesWeightUp
  • StrokesWeightDown
  • FileVersionInformer
  • ObjectsCounter
  • SaveAllDocs
  • SyncGlobalColorsNames

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

Как запускать скрипты

Вариант 1 — Установка

    и распакуйте. Все скрипты находятся в папке jsx
  1. Поместите .jsx в папку скриптов Adobe Illustrator:
    • OS X: /Applications/Adobe Illustrator [vers.]/Presets.localized/en_GB/Scripts
    • Windows (32 bit): C:\Program Files (x86)\Adobe\Adobe Illustrator [vers.]\Presets\en_GB\Scripts\
    • Windows (64 bit): C:\Program Files\Adobe\Adobe Illustrator [vers.] (64 Bit)\Presets\en_GB\Scripts\
    • Русскоязычная версия: C:\Program Files\Adobe\Adobe Illustrator [версия]\Стили\ru_RU\Сценарии\
  2. Перезапустите программу

Вариант 2 — Drag & Drop

Перетащите файл скрипта из папки напрямую в окно Adobe Illustrator.

Вариант 3 — Расширения (Extension)

Если часто приходится запускать скрипты, то чтобы не открывать постоянно меню, можно установить бесплатные панели Scripshon Trees или LAScripts.

Вы можете поддержать мою работу над новыми скриптами и их распространение любой суммой через ЮMoney, Donatty или PayPal




  • Sergey, these scripts of yours are great — Terry Foxx
  • Wow. I just installed and successfully tested. Outstanding work. — Zak Lay
  • Попробовал ваш скрипт для экспорта выбранных объектов в отдельный Ai, работает замечательно — Дмитрий
  • Я просмотрел вашу статью. Полезные скрипты! — Асхат Гиляхов
  • Спасибо за такие замечательные скрипты — Олег Зубаилов
  • Очень мощные и удобные в использовании, покрывают множество потребностей — Егор Чистяков

Не забывайте поделиться ссылкой со знакомыми дизайнерами 🙂

Нашли ошибку? Создайте запрос на Github или напишите мне на почту.

Советы, трюки и баги при написании скриптов для Adobe Illustrator: English, Русский.

Скрипты распространяются по лицензии MIT.
Больше деталей во вложенном файле LICENSE.

Сейчас на странице 0 пользователей

Нет пользователей, просматривающих эту страницу.

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

PavelK

Скрипт для Adobe Illustrator, который позволит быстро подготовить номерки к гравировке и резке:
распределит по листу и сделает порядковую нумерацию для каждого.
Видео работы:

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

PavelK

Приветствую!
Часто ли Вам приходится подготавливать номерки, либо что-то другое, где требуется порядковая нумерация?
Лично мне не так уж часто, но вручную вводить номера хотя бы для 100 номерков достаточно утомительно.
Поэтому мной был сделан скрипт NumbersDistribution для Adobe Illustrator, который позволяет этот процесс автоматизировать.
Видео работы:

Кстати, можно сделать его быстрый запуск из панели "Операции" или по нажатию горячей клавиши

Может быть у Вас есть какие-либо другие предложения или пожелания - с радостью выслушаю и, по возможности, добавлю в новую версию.

Andrey171080

Здравствуйте. Такая задача. Есть множество изделий крупных и не очень разложенных на лист фанеры впритык. Как можно набросать ещё мелочёвки всякой между ними? Я понимаю что это можно сделать вручную в кореле, но есть ли какая прога которая делала бы это автоматом?

В этой подборке вы найдёте 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).




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


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


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


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


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

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


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


Скрипт рисует случайные глаза.

Ещё больше скриптов здесь:

Если вы знаете, где ещё есть хорошие скрипты, то оставляйте ссылки в комментариях.



Подпишитесь на нашу рассылку, чтобы не пропустить ничего нового:


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

Это можно интерпретировать так: сначала указывается объект наивысшего уровня в иерархии Illustrator (app — приложение, сокращённо от application), и далее выбор постепенно сужается до конкретного элемента (в активном документе работать на первом слое; затем в указанном слое выбрать второй по глубине залегания векторный объект и узнать у него толщину окантовки). Подобный метод обращения к элементам весьма удобен, поскольку позволяет легко ориентироваться во всём многообразии их типов, существующих в редакторе. С полной моделью взаимосвязей можно познакомиться по хорошо составленному описанию (входит в комплект Illustartor).

Тогда вышеприведённый участок кода будет иметь вид: pI[1].strokeWidth.

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

В объектно-ориентированной модели существуют: само приложение, классы (типы объектов, или, используя более привычное понятие, существительные: слои, векторные объекты, группы и т. п.), методы (способы взаимодействия с ними — глаголы: move, duplicate и т. п.) и свойства (прилагательные: strokeWidth, fillColor, selected и т. п.). Чтобы легче ориентироваться, представьте, что приложение — это дом, в котором есть различные предметы — аналог классов (окна, двери), обладающие некоторыми свойствами (пластиковые, деревянные), с которыми выполняют определённые действия — методы (открывают, закрывают). Понимая суть подобной иерархии, гораздо проще разобраться в скриптинге.

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

Классы Layer, Group, Text могут содержать объекты того же класса, у которых также могут иметься дочерние. Полезная возможность объектного подхода — наследование свойств. Так, все векторные контуры (pathItems) являются дочерними для более общего класса — элементов страницы (pageItems). Следовательно, назначив определённые свойства pageItems, мы автоматически назначаем его и pathItems.

Несмотря на похожесть, классы Layers и Layer всё же различны. Первый — коллекция всех слоёв в документе, второй — только какой-то определённый, соответственно отличаются их методы и свойства. К первому можно применять методы add, removeAll, а ко второму — все операции, доступные для отдельного слоя. Непосредственно к объекту обращаются как к элементу соответствующего массива — в нашем случае через Layers[1], Layers[2] и т. д.

Пример 1: объединение объектов

Начнём с самого простого — напишем скрипт, соединяющий линиями подчинённые объекты с основным (нередкая задача при создании блок-схем, технической документации и аналогичных работах). И коснёмся таких базовых вопросов, как работа с выделенными объектами, создание новых слоёв, размещение объектов, изменение их порядка, создание и включение кривых в сложный путь (compound path).

Работа с такого рода документами предполагает широкое использование символов (symbols) — внесение изменений в них автоматически обновляет все созданные копии. Однако с такими элементами Illustrator работает не всегда корректно: бывает, что не считывает названия у объектов, являющихся копиями символов. В результате их отбор по имени невыполним. Обработка же всех элементов данного типа в текущем слое практической пользы не имеет. В итоге, я склонился в пользу альтернативного варианта, при котором сначала необходимо выделить требуемые объекты (проще всего — выбором одного символа и поиском его копий через командой Select•Same Instances), а затем выделить опорный элемент, с которым они будут соединяться.

Итак, начинаем. Для сокращения введём переменную sel, к которой будем обращаться, когда нужно провести какие-либо действия над выделенным объектом. Затем проверим, сколько элементов выделено (хотя к массиву selection также относятся и любые выделенные символы текста, проверять, что выделен не текст, не будем). Запись if (sel.length alert (“Not enough objects to proceed! \nSelect at least 2 objects and the last — target object!”) >
else

Подготовительный этап

refObj_x = sel[0].position[0] + (sel[0].width/2);
refObj_y = sel[0].position[1] — (sel[0].height/2);

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

Создаём новый слой — он, как и любой элемент Illustrator, создаётся методом add(), применённым к соответствующему классу объектов. В скобках можно конкретизировать параметры действия: указать объект-назначение (им может быть, например, слой или даже новый документ, а также положение в месте назначения). В отличие от большинства методов, для add дополнительных параметров не предусмотрено, поэтому для переноса на самый верхний уровень воспользуемся специальным методом — zOrder, которому в качестве параметра укажем BRINGTOFRONT (зарезервированная константа, полный список которых приведён в документации). В принципе, если в документе всего один слой, специально указывать положение нового не требуется, поскольку Illustrator всегда располагает его выше текущего. Если же соединяемые объекты расположены не на самом верхнем уровне, вторая строчка будет нужна.

newlayer = activeDocument.layers.add();
newlayer.ZOrder(ZOrderMethod.BRINGTOFRONT);

В учебных целях создадим не разрозненные соединительные линии, а объединённые в объект типа Compound Path — для удобства редактирования. Создание такого объекта повторяет уже известную процедуру, на этот раз применённую к классу compoundPathItems:

Поскольку в прошлом шаге мы создали новый слой, он является активным — соответственно, создаваемые объекты будут располагаться на нём, и необходимости специально указывать его (activeDocument.newlayer) нет.

Определение координат подчинённых элементов

for( i=1; i , работа прекращается, если же согласиться, скрипт продолжит работу.

if (sel[0] isArray) weight = sel[0].strokeWidth;

Поскольку мы условились выделять только изменённые объекты, с самого опорного выделение нужно снять (обращаемся к его свойству selected):

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

Обстоятельства

Сравним его с аналогичным свойством у всех объектов в документе. Можно сразу перейти к поиску, но использование скрипта в повседневной работе потребовало учёта дополнительных обстоятельств — в макетах часто бывают как заблокированные слои, так и отдельные объекты. Следовательно, хоть в них поиск и работает, но вносить изменения нельзя. Чтобы обеспечить тотальную проверку, добавим в скрипт несколько операций: проверяя элементы на соответствие заданному критерию, одновременно разблокируем их, если это необходимо, и запомним индекс, чтобы после завершения проверки вернуть их в прежнее состояние. Вводим две переменные: первую для сокращённого доступа ко всем слоям в документе, а при помощи второй получим доступ только к заблокированным. Хранить порядковые номера последних будем в массиве, который создадим функцией JavaScript — new Array().

var dL = activeDocument.layers;
var blokedLayers = new Array();

Затем просмотрим все слои и у заблокированных (свойство locked=true) порядковый номер занесём в массив blokedLayers (при помощи функции push из JavaScript), после чего разрешим их редактирование (locked=false).

if (go == true) for (i=0; i if (dL[i].locked == true) blokedLayers.push(i);
dL[i].locked = false;Раньше мы условились исправленные объекты выделять, но после завершения работы скрипта на заблокированных слоях этого сделать не сможем — нужно вывести соответствующее предупреждение. Для этого используем признак lockedPresence, который установим, если хотя бы один слой заблокирован.

То же повторим и с отдельными заблокированными элементами. В простейшем случае достаточно проверить все векторные элементы (класс pathItems), в которые как подкласс входят compound pathes, — чтобы ничто не ускользнуло от всевидящего глаза скрипта.

Подводные камни

Для хранения индексов заблокированных объектов создадим массив blokedPathes, а для подсчёта количества изменённых введём переменную corrected.

bloсkedPathes = new Array();
corrected = 0;

for( i=0; i 0) retrievedPathes = blokedPathes.shift();
pI[retrievedPathes].locked = true;> >

Затем аналогичные действия предпримем в отношении слоёв:

for (i=0; i if (blokedLayers.length >0) retrieved = blokedLayers.shift();
dL[retrieved].locked = true; > >Вообще-то, для однотипных операций гораздо удобнее пользоваться функциями. Их преимущество в том, что единожды описав определённые действия, можно повторять их в полном объёме, просто вызывая в нужных местах функцию; так достигается компактность и читабельность сценария. Для повышения гибкости функции передают используемые в ней значения (параметры). Если же не хотите использовать функции, пропустите следующие два абзаца.

Составим две функции: первую — для разблокировки слоёв и объектов, вторую — для восстановления их атрибутов. Меняться в них будут только типы объектов (класс Layers и pageItems) и массивы для записи интересующих нас элементов (blokedLayers и blokedPathes) — они-то и будут фигурировать в качестве параметров функции. Первую запишем так:

function unlock(array, itemType)
if (itemType[i].locked == true) array.push(i);
itemType[i].locked = false;
locked = false;
>

Вместо array будем подставлять массив, вместо itemType — необходимый класс. Тогда получим два вызова — unlock (blockedLayers, dL) и unlock (blokedPathes, pgI). Аналогично запишем функцию для восстановления статуса:

function restore (array, itemType)
if (array.length > 0) retrieved = array.shift();
itemType[retrieved].locked = true;
>

Вывод информации о результатах проверки

if (type == “2”) < b = “\nCheck selected!” >
if (pluginItemExist == true) alert ( “Due to scripting restrictions some objects can't be affected” + b ) >

Логика выдачи предостережения о том, что не все исправленные могут быть выделены, такова:

if ( (lockedPresence == true ) && (pluginItemExist == false) ) warning= “\nBecause some of them are locked they can't be showed as selected” >

После чего выводим окончательные результаты:

Мы постарались сделать скрипт универсальным, что сказалось на его объёме. В самом же примитивном варианте (без учёта описанных выше особенностей и подводных камней) он занимает буквально пару строчек:

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

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

скрипт Adobe Illustrator

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

скрипт Adobe Illustrator

Select Open Path

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

Close All Paths / Close All Selected Paths

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

Devide Text Frames

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

скрипт Adobe Illustrator

Join Text Frames

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

Fleurify

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

скрипт Adobe Illustrator

Metaball

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

скрипт Adobe Illustrator

CMYK to Pantone v.2

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

Circle

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

скрипт Adobe Illustrator

Remove Anchors

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

скрипт Adobe Illustrator

Round Any Corner

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

скрипт Adobe Illustrator

Swap Objects

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

Читайте также: