Облачен таг скрипт в илюстратор. Как да инсталирате скриптове в Adobe Illustrator

Adobe Illustrator има много инструменти и функции за реализиране на всякакви идеи. Но дори и с толкова много възможности в арсенала си, нещо със сигурност ще пропусне. В Интернет вече можете да намерите много скриптове и плъгини за Adobe Illustrator, разширявайки функционалността му. Без тези допълнения Adobe Illustrator може да не може да се справи с някои задачи или да добави допълнителна работа за изпълнителя. Следователно днес ще разгледаме няколко полезни и безплатни скриптове за Adobe Illustrator.

Инсталиране на скриптове

За да работи скриптът в Adobe Illustrator, трябва да го поставим в папката Scripts, която се намира в директорията на Adobe Illustrator. В моя случай е ... / Adobe / Adobe_Illustrator_CS5 / Presets / bg_GB / Scripts. Ако използвате по-ранна версия на програмата, вместо Adobe_Illustrator_CS5, във вашия случай може да има Adobe_Illustrator_CS4, Adobe_Illustrator_CS3 и т.н.
  Ако сте изтеглили скриптове, които са компресирани в архив, тогава не забравяйте да ги разопаковате. След инсталирането трябва да рестартирате Adobe Illustrator.

Наличните скриптове могат да бъдат намерени в раздела File в подменюто Scripts.

Изберете отворен път

Този скрипт ще намери и подбере всички форми с отворен път. Този скрипт ще бъде полезен при създаването на вектор за микросток, защото Затворените контури са един от критериите за приемане на работата ви в базата данни на микросток.

Затваряне на всички пътища / Затваряне на всички избрани пътища

Този скрипт затваря контура за всички форми или за избрани фигури. Така например, след като потърсите отворени вериги с помощта на Select Open Path, можете да ги направите затворени.

Разделете текстови рамки

Използвайки този скрипт, можете да разделите едно текстово поле на по-малки, като преходът към нов ред е мястото на разделяне.

Присъединете се към текстови рамки

Този скрипт ще комбинира няколко текстови полета в едно.

Fleurify

Благодарение на този сценарий, фигурите ще бъдат украсени с красиви флорални извивки.

Metaball

След като използвате този скрипт, няколко прости форми ще се превърнат в по-сложни.

CMYK към Pantone v. 2

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

кръг

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

Извадете котвите

Този скрипт ще изтрие избраните точки на фигурата.

Закръглете всеки ъгъл

След като използвате този скрипт, острите ъгли на формата ще бъдат превърнати в заоблени.

Разменете обекти

Този скрипт ще даде на един обект свойствата на втория, а вторият - свойствата на първия. Като свойства ще се използват размерът и местоположението на работното пространство.

Изберете Path By Size

Плъгинът ще ви помогне да намерите фигури с определен размер.

Обикновено, когато става въпрос за програми за дизайнери, се дава предимство на артистичните възможности на приложенията - инструменти за рисуване, филтри и т.н. Но в ежедневието трябва да се справяте с рутината. За щастие, софтуерът на Adobe (включително Illustrator) започна да поддържа писането на скриптове (скриптове), което ви позволява да преместите монотонната работа върху раменете на машината. И вече не работите в Illustrator - управлявате го и това, както казват в Одеса, е две големи разлики!

Осъзнавайки, че по-голямата част от потребителите на Illustrator са художници и дизайнери, които не са се сблъсквали с програмирането, ще се опитам да създам преглед на функционалността на сценариите, така че читателите да не създават впечатление, че този урок се нуждае от някакъв „специален“ манталитет и дълго специално образование. В същото време се извинявам на професионалистите за някои опростявания във формулировката заради наличието на материали. Самият автор навремето е бил в подобна ситуация и в началото не е считал тази сфера за своя епархия. Но прекарах по-малко от две седмици в изучаването му и сега потвърждавам: да имам минимално разбиране на програмирането, овладяването на скриптове е напълно осъществима задача.

Сценариите за Illustrator могат да бъдат написани на всеки език: JavaScript, Visual Basic (Windows) и AppleScript (Mac OS). Тъй като по-голямата част от читателите са запознати с първия (много дизайнери за печат успешно се справят със създаването на интернет страници, в които се използва), ще разчитаме на него. Нещо повече, JavaScript е независим от платформата: написаните на него скриптове ще работят и в двете ОС - Windows и Mac OS. Начинът за достъп до елементите е обектно-ориентиран: за да разберете например дебелината на границата на втория векторен елемент върху първия слой, трябва да напишете следната конструкция:

app.activeDocument.Layer.pathItems.strokeWidth

Това може да се интерпретира по следния начин: първо се посочва обектът от най-високо ниво в йерархията на Illustrator (приложението е приложение, кратко за приложение), а след това селекцията постепенно се стеснява до конкретен елемент (в активния документ, работете върху първия слой; след това изберете втория най-дълбок вектор в указания слой обект и разберете дебелината на границата). Такъв метод за достъп до елементи е много удобен, защото ви позволява лесно да навигирате в цялото разнообразие от техните типове, които съществуват в редактора. Пълният модел на взаимоотношенията може да се намери в добре написано описание (включено в Illustartor).

Квадратните скоби показват, че елементът е част от масива. Масивът е съвкупност от няколко обекта, обединени от определен атрибут. Например Layers, pathItems, RasterItems, GroupItems, Selection и т.н. са масиви, състоящи се от обекти от един и същ тип (слоеве на документи, векторни пътеки, растерни изображения, групи и др.). В скоби посочете индекса (сериен номер) на необходимия елемент в масива. И така, записът на слоя обозначава първия слой, тъй като първият индекс винаги е "0".

Обектите могат да бъдат достъпни и чрез името Layer [“Chart”]. За да направите това, елементът трябва да бъде изрично кръстен - ръчно, използвайки палитрата на слоевете (двукратно щракване върху името на обекта отваря прозорец със неговите свойства) или от скрипт. За да не пишете тромава конструкция всеки път, когато изброявате всички „родословие“, използвайте препратките:

pI \u003d activeDocument.Layer.pathItems;

Тогава горният раздел с кодове ще изглежда като: pI.strokeWidth.

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

В обектно-ориентиран модел има: самото приложение, класове (типове обекти или, използвайки по-познато понятие, съществителни имена: слоеве, векторни обекти, групи и т.н.), методи (начини за взаимодействие с тях - глаголи: преместване, дублиране и и т.н.) и свойства (прилагателни: strokeWidth, fillColor, избрани и т.н.). За да улесните навигацията, представете си, че приложението е къща, в която има различни предмети - аналог на класове (прозорци, врати), които имат някои свойства (пластмасови, дървени), с които извършват определени действия - методи (отворени, затворени). Разбирайки същността на такава йерархия, много по-лесно е да разбереш сценариите.

На най-високо ниво е приложението и, буквално следвайки правилото за подчинение на обектите, то трябва да бъде посочено при всяко действие. За да се опрости, връзката към приложението може да се пропусне - освен в случаите, когато наистина трябва да знаете някои от неговите свойства (например налични шрифтове - app.fonts).

Класовете Layer, Group, Text могат да съдържат обекти от същия клас, които могат да имат и деца. Полезна характеристика на обектния подход е наследяване  свойства. И така, всички векторни пътеки (pathItems) са деца на по-общ клас - елементи на страница (pageItems). Следователно, присвоявайки определени свойства на pageItems, ние автоматично го присвояваме и pathItems.

Въпреки сходството си, класовете "Слоеве" и "Слоеве" все още са различни. Първият е съвкупност от всички слоеве в документа, вторият е само някакъв специфичен и съответно техните методи и свойства се различават. Можете да приложите методите добавяне, премахване на всички към първия и към втория всички операции, налични за отделен слой. Самият обект се осъществява като елемент от съответния масив - в нашия случай чрез Layers, Layers и т.н.

Избраният елемент съответства на отделен клас - селекция, която също е масив (може да бъде избрана група от обекти). На специален акаунт в Illustrator са плагинитеItems, Colors, Views класове. Първият има много ограничения, свързани с факта, че обектите от този тип не са местни за Illustrator. Те включват елементите Blend, Envelope, Mesh и други подобни. Ще разгледаме характеристиките на останалите, докато се използват.

За да бъде скриптът „видим“, той се поставя в папката Presets.Scripts, намираща се в тази, в която е инсталирано приложението. Ще разгледаме реални примери (това веднага ще усети полезността на скриптовете) и ще ги запишем под Illustrator CS, тъй като скриптът му е по-гъвкав от предишните версии.

Пример 1: комбиниране на обекти

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

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

И така, ето. За да съкратим, въвеждаме променливата sel, към която ще се позовем, когато трябва да извършим някакви действия върху избрания обект. Тогава ще проверим колко елементи са избрани (въпреки че всички избрани знаци от текста също принадлежат към масива за избор, няма да проверим дали избраният текст не е избран). Напишете дали (sel.length<2) означает, что мы сравниваем значение length (количество объектов класса sel) с двойкой — минимальным количеством для работы сценария. Если выделенных элементов меньше, будут выполняться действия, заключённые в первые идущие за оператором if фигурные скобки, иначе — идущие после else. При этом логично предусмотреть выдачу сообщения, чтобы сориентироваться в ситуации и понять, что нужно сделать.

sel \u003d activeDocument.selection
   ако (sel.length<2) {br>  предупреждение („Няма достатъчно обекти за продължаване! \\ nИзберете поне 2 обекта и последния целеви обект!“))
   друго (

Alert е стандартна JavaScript функция, която показва прозорец с посочения текст и бутона OK. "\\ N" означава да отидете на нов ред и се използва, за да поддържате малкия прозорец. Текстът, показан в прозореца, трябва да бъде затворен в кавички.

Подготвителна фаза

Вземете координатите на центъра на референтния обект. Тъй като се съгласихме, че той е най-високият, неговият брой (индекс) е „0“ (sel). За да изчислим координатите, ще използваме такива свойства на обекта като позиция (позиция), ширина и височина (височина и ширина). Стойностите на позицията се съхраняват в масив, състоящ се от двойка стойности - координатите съответно по оста X и Y. Затова всички трябва да бъдат разглеждани като позиция и позиция.

refObj_x \u003d sel.position + (sel.width / 2);
   refObj_y \u003d sel.position - (sel.height / 2);

Получихме координатите на центъра на референтния обект и ги присвоихме на две променливи за по-нататъшно използване. Вторият ред съдържа знак "-", защото Illustrator приема долния ляв ъгъл на документа като референтна точка, а позицията дава координатите на горния ляв ъгъл на елемента.

Тъй като удобството играе важна роля при работа с документ, ще се уверим, че създадените линии са на отделен слой - такава структурираност ще помогне да се поддържа ред в оформление с различна сложност.

Създайте нов слой - той, като всеки елемент на Illustrator, се създава по метода add (), приложен към съответния клас обекти. В скоби можете да зададете параметрите на действието: посочете обекта на местоназначение (той може да бъде например слой или дори нов документ, както и позицията в местоназначението). За разлика от повечето методи, за добавяне не са предвидени допълнителни параметри, следователно, за да прехвърлим на най-високо ниво, ще използваме специален метод - zOrder, който ще зададем BRINGTOFRONT като параметър (запазена константа, пълен списък на който е даден в документацията). По принцип, ако документът има само един слой, не е необходимо конкретно да се посочва позицията на новия, тъй като Illustrator винаги го поставя над текущия. Ако обектите, които ще бъдат свързани, не са разположени на най-високо ниво, ще е необходим вторият ред.

newlayer \u003d activeDocument.layers.add ();
   newlayer.ZOrder (ZOrderMethod.BRINGTOFRONT);

Първият ред може да се чете така: създайте нов елемент, като увеличите (добавите) броя на обектите от необходимия тип (слоеве) и присвоите връзка към новосъздадения елемент към променливата на нов слой. В началния момент слоят е празен, тъй като все още нищо не е поставено в него. За да опростите ориентацията в сложно оформление, дайте на слоя име „Connectors“ (по метода на името) - както можете да видите, имената на методите ясно показват извършените действия.

newlayer.name \u003d „Съединители“;

За образователни цели ще създадем не отделни линии, а комбинирани в обект от типа Compound Path за лесно редактиране. Създаването на такъв обект повтаря вече известната процедура, този път приложена към клас CompPathItems:

newCompoundPath \u003d activeDocument.compoundPathItems.add ();

Тъй като в последната стъпка създадохме нов слой, той е активен - съответно създадените обекти ще бъдат разположени върху него и няма нужда конкретно да го посочвате (activeDocument.newlayer).

Определяне на координатите на подчинените елементи

Ние комбинираме този процес с изхода на самите свързващи линии, тъй като техният брой трябва да съответства на броя на обектите. От своя страна започваме да сортираме всички избрани елементи („i ++“ означава увеличение по един) и четем техните координати. Ще започнем търсенето не от първия обект от масива Selection (както си спомняте, референтният обект действа като него), а от втория (sel). Следните редове са ни вече познати:

за (i \u003d 1; i< sel.length; i++) {
   obj_x \u003d sel [i] .position + sel [i] .width
   obj_y \u003d sel [i] .position - sel [i] .height

Получавайки координатите на центъра на детето, пристъпваме към създаването на линия, свързваща го с референтната. За всеки избран елемент създайте нов обект - векторна пътека, включена в класа CompoundPath, увеличавайки общия брой пътища:

newPath \u003d newCompoundPath.pathItems.add ();

За да зададете прости контури в Illustrator, има метод setEntirePath, параметрите на който са масив от координати на началната и крайната точка - които, както вече знаем, са на свой ред посочени като масиви от две стойности (позиции по две оси). Накрая завършваме условието „ако нещо е подчертано“, въведено в самото начало.

newPath.setEntirePath (Array (Array (refObj_x, refObj_y), Array (obj_x, obj_y))); )

Сценарият е готов. Както можете да видите, в него няма нищо сложно: имената на методите разкриват тяхната същност, а обектно-ориентираният модел помага да се разбере ясно йерархията на обектите на Illustrator. Скриптът не представлява никаква специална практическа стойност (по-скоро е тренировъчна), но в неговия пример бяха разгледани много основни понятия, на които ще разчитаме в бъдеще (работа с избрани обекти, принцип на тяхното номериране в масива за избор, определяне на координати, създаване на нови слоеве, извеждане линии).

Пример 2: откриване на твърде тънки контури

Операциите за мащабиране във векторната графика са много активни. Следователно, когато намалявате размера на обектите с тънки линии (ако параметърът на мащаба на щрихите е активиран), често дебелината на хода им става по-ниска от 0,25 pt (стойности, след които линиите стават лошо видими) и причиняват изчезването им, когато се отпечатат на мастиленоструен принтер. Не са предоставени вградените функции за търсене на Illustrator за обекти със стойности на инсулт по-малки от определената стойност. Ръчно намирането им е много трудно - трябва да изберете всеки обект поотделно, което бързо обезкуражава желанието да се включите в подобни проверки. Скриптът значително ще опрости операцията.

Самият скрипт в най-простата версия е малък, но ще си поставим цел да го направим по-универсален - ще разширим функционалността поради възможността да посочваме минималната дебелина в диалоговия прозорец. Разбира се, можете да регистрирате твърдо тази стойност в самия скрипт и, ако е необходимо, да я коригирате всеки път, но, виждате, това е неудобно. Ние също така предоставяме индикация за избрания елемент като референтен обект с минималната приемлива гранична стойност. Успоредно с това за статистиката изчисляваме броя на елементите с променена дебелина и ги избираме за яснота.

Целият скрипт е разделен на две части: начална (четене на стойността от диалоговия прозорец или избрания елемент) и крайна (търсене сред всички обекти в документа и преназначаване на дебелината на границата). В допълнение към демонстрирането на достъп до обекти на Illustrator, ще помислим за създаването на мини-интерфейс за въвеждане на персонализирани стойности.

Въвеждане на стойности

Първите два реда ще бъдат идентични с предишния пример, само че вместо „2” ще се появи 0, защото преди скрипта трябва да определим дали има избрани обекти. Сравнението се дава чрез двоен знак за равенство (единица присвоява стойност).

var mySel \u003d app.activeDocument.selection;
   var go \u003d true;
   ако (sel \u003d\u003d 0) (

Ако нищо не е избрано, минималната дебелина ще бъде зададена през диалоговия прозорец. Ние го извличаме с помощта на стандартната JavaScript функция - подкана. Той отваря прозорец с поле, в което можете да въведете стойност и да я използвате по-късно. Синтаксисът на функцията е следният: първо има текст на подсказка, който ще бъде показан в прозореца (като вземем предвид унифицирането на скрипта, няма да използваме кирилицата, защото често се показва неправилно), след това следва стойността, която ще бъде по подразбиране към полето за въвеждане. Има два плюса: възможността веднага да се зададе минималната допустима дебелина и да се посочи каквато и да е стойност. Създавайки променлива, на която е присвоена стойността на функцията за подканяне, след това можете да я използвате за собствени цели.

Гледайки напред, отбелязвам, че Illustrator не предоставя пълен достъп до всички видове обекти - някои са оставени извън борда. Следователно, ние ще осигурим визуализация не само на фиксирани елементи, но и на недостъпни за скрипта, за да не ги търсите ръчно - защото те също могат да съдържат проблемни обекти. За да не се показват два диалогови прозореца (за стойността на дебелината и да определим кои елементи да изберете), ще използваме възможностите за обработка на низове на JavaScript. Факт е, че съдържанието на поле, запълнено от потребителя, е „низ“ (блок информация), който може да съдържа произволен брой параметри (чрез разделители). Познавайки разделителя, стойностите на отделните параметри могат лесно да бъдат извлечени от низа.

Съответно текстът, който подтиква диалоговия прозорец, ще бъде следният: задаване на минималната дебелина на рамката и условно число: „1“, ако искате скриптът да подчертае коригираните елементи, „2“ - тези, до които не можете да „достигнете“.

value \u003d prompt („Посочете прага на ширината на хода (в pt), \\ n Какво да изберете: коригирани обекти (1) или недостъпни (2)“, „0.25, 1“)

Първоначално задайте полето на 0,25 точки (мерните единици в Illustrator по подразбиране), но когато го промените, ще се използва новата стойност и „1“. "2" трябва да се посочва само ако скриптът намери недостъпни обекти (ще се уверим, че той сигнализира за това в края на работата). И те ще бъдат подчертани, което ще ни спести от ръчно търсене (както знаете, вграденото търсене на Illustrator оставя много да се желае).

След като прочетохме стойностите от потребителското поле, разбрахме, пристъпваме към тяхната обработка. Проверете дали полето наистина не е празно (знакът "!" Обозначава отрицание, т.е. "! \u003d" Е еквивалентно на "не е равно", null е регистрираната дума за празна стойност). Ако има нещо в него, разбиваме низа на отделни блокове, използвайки функцията за разделяне на JavaScript (ще дефинираме комбинацията от знаци „,“ като разделител) и поставяме получените стойности в масива splitString. След това ще дадем описателни имена на стойностите от масива (първият ще определи дебелината, вторият - режим на работа).

ако (стойност! \u003d нула) (
   splitString \u003d value.split („,“);
   тегло \u003d splitString;
   тип \u003d splitString; )

Ако в полето на потребителя няма нищо, спираме скрипта. Последната затваряща скоба е знак за изпълнение на условието, което сме поставили в началото („ако нищо не е подчертано в документа“).

друго (go \u003d false)

Ако референтният обект е специално избран

Сега ще напишем последователност от действия, ако умишлено сме избрали елемент, чиято дебелина на границата искаме да използваме като прагова стойност. Ще покажем предупреждение за по-нататъшни действия на скрипта, използвайки стандартната функция за потвърждение (създава диалогов прозорец с два бутона - и). Ако щракнете<Сancel>, работата спира, ако сте съгласни, скриптът ще продължи да работи.

else (selectedMsg \u003d потвърди („Ширина на хода на избрания обект ще се използва като праг“)
   if (selectedMsg! \u003d true) (
   go \u003d фалшив;
   ) друго (

Преминаваме към основната част на сценария. Ние не съзнателно разглеждаме ситуацията, когато са маркирани няколко обекта, тъй като за задаване на дебелината на границата е достатъчно да изберете само един. И каква стойност трябва да използвам, ако се окаже различна за елементите? Както вече знаем, единственият избран обект ще има индекс "0", а за да получи дебелината на кант, Illustrator има свойство strokeWidth. Ще вземем предвид, че по принцип изборът може да съдържа не само отделни елементи, но и част от текста (например избран случайно), който не е включен в нашите планове, така че преди да започнете работа, проверете възможностите на JavaScript, за да изберете типа на избрания елемент, който принадлежи на масива:

ако (sel еArray) (
   тегло \u003d sel.strokeWidth;

Тъй като се съгласихме да изберем само променените обекти, трябва да премахнем избора от най-референтния (вижте избраното му свойство):

sel.selected \u003d невярно; )))

Сега сме напълно готови да изпълним основната задача на скрипта - търсене на обекти: стойността, която ще бъде използвана като минимална допустима дебелина, се съхранява в променливата wei.

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

Сравнете го с подобно свойство за всички обекти в документа. Можете веднага да пристъпите към търсенето, но използването на скрипта в ежедневната работа се изисква, като се вземат предвид допълнителни обстоятелства - в оформлението често има както заключени слоеве, така и отделни обекти. Следователно, въпреки че търсенето работи в тях, не можете да правите промени. За да гарантираме пълната проверка, добавяме няколко операции към скрипта: проверяваме елементите за съответствие с определения критерий, в същото време ги отключваме, ако е необходимо, и запомняме индекса, така че след приключване на проверката, да ги върнем в предишното им състояние. Въвеждаме две променливи: първата за намален достъп до всички слоеве в документа, а с втората получаваме достъп само до заключените. Ще съхраним серийните номера на последния в масив, който създаваме с функцията на JavaScript - нов Array ().

var dL \u003d activeDocument.layers;
   var blokedLayers \u003d нов масив ();

След това ще разгледаме всички слоеве и за заключените (свойството заключено \u003d вярно) ще поставим поредния номер в масива blokedLayers (използвайки функцията за натискане от JavaScript), след което ще позволим тяхното редактиране (заключено \u003d невярно).

if (go \u003d\u003d true) (
   за (i \u003d 0; i if (dL [i] .locked \u003d\u003d true) (
   blokedLayers.push (i);
   dL [i]. заключен \u003d невярно; Преди това се съгласихме да подчертаем фиксирани обекти, но след като скриптът приключи да работи върху заключени слоеве, няма да можем да направим това - трябва да покажем подходящо предупреждение. За да направите това, използвайте атрибута lockedPresence, който ще бъде зададен, ако поне един слой е заключен.

lockedPresence \u003d true;

Ще повторим същото с отделни заключени елементи. В най-простия случай е достатъчно да се проверят всички векторни елементи (клас pathItems), които включват сложни пачове като подклас - така че нищо да не избяга от всевиждащото око на скрипта.

капани

В допълнение към обмислената ситуация с блокирането, има и друг „провал“. Както вече беше отбелязано, някои елементи (по-специално Blend Group и Envelope) не са „местни“ за Illustrator, те принадлежат към специален тип pluginItem. В същото време Illustrator не предоставя достъп до такива обекти, те са „нещо само по себе си“. Можете да "достигнете" до тях само чрез клас от по-високо ниво - pageItems, чрез който най-малко можем да определим тяхното присъствие и да покажем предупреждение в края. Той ще каже, че като стартирате отново скрипта и посочите „2“ като втори параметър в полето за въвеждане, той ще подчертае тези „черни полета“.

pgI \u003d activeDocument.pageItems;

За да съхраним индексите на блокирани обекти, създайте масив, наречен blokedPathes, и за да изчислите броя на променените обекти, въвеждаме променливата коригирана.

bloskedPathes \u003d нов масив ();
   коригирана \u003d 0;

За всички обекти ще проверим дали принадлежат към типа PluginItem (свойство typename): ако има такива, задайте флаг pluginItemExist (състоянието му ще определи предупредителния изход за наличието на такива елементи). В случай на повторна проверка (когато вторият параметър в полето за въвеждане е "2"), ние ще ги изберем:

за (i \u003d 0; i< pgI.length; i++) {
   if (pgI [i] .typename \u003d\u003d „PluginItem“) (
   pluginItemExist \u003d true
   if (въведете \u003d\u003d "2") (pgI [i] .selected \u003d true)

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

Основна проверка

Сега дойде ред на действително да проверите оформлението за съответствие с определените критерии за ресни. Вземаме под внимание, че сред обектите може да има и такива, за които изобщо няма кантиране (определено от състоянието на атрибута на щрих) - следователно те трябва да бъдат изключени от сканирането.

if ((pgI [i] .strokeWidth)< weight)&&(pgI[i].stroked)) {
   if (pgI [i] .locked \u003d\u003d true) (
   blokedPathes.push (i);
   pgI [i] .locked \u003d невярно;

Този фрагмент от код може да се интерпретира по следния начин: ние определяме наличието на граница и нейната дебелина за всеки елемент. Ако е по-малък от минималния (ако (pI [i] .strokeWidth)< weight), и объект заблокирован, его индекс занести в специально созданный для такой цели массив blokedPathes, после чего разблокировать для внесения возможных изменений. Знак && обозначает логическое «И» (обязательное совпадение двух условий) — толщины меньше минимальной и присутствия окантовки.

След това поправяме присъствието на блокирани обекти (задаваме флагът на заключеното присъствие да показва предупреждение в бъдеще, че не всички променени могат да бъдат маркирани) и избираме коригирания, и присвояваме прагова стойност на неговата граница - и така нататък за всички елементи. За статистика ще изчислим едновременно броя на променените обекти.

lockedPresence \u003d true;
   pgI [i] .selected \u003d вярно;
   pgI [i] .strokeWidth \u003d тегло;
   коригиран ++;

По-рано бяха разгледани стъпките за подчертаване на непроверени елементи (type \u003d "2"). Сега дефинираме какво трябва да се случи в стандартната ситуация - с обичайното търсене на потенциално проблемни обекти.

if (type \u003d “1”) (pgI [i] .selected \u003d true)

Възстановяване на състоянието на блокираните елементи

Изпълнихме основната задача - проблемните обекти бяха фиксирани и маркирани. Остава да се възстанови статуквото - всички първоначално блокирани, за да се върнат в предишното си състояние. За да направите това, в текущия цикъл четем съдържанието на масива, където се съхраняват индексите на блокираните обекти, и задаваме атрибута заключен \u003d true за всеки съответен елемент (методът shift показва последната стойност, въведена в масива от масива). Тъй като общият брой обекти е повече от блокиран, трябва да се внимава да завършите цикъла на сканиране след изпразване на масива.

ако (blokedPathes.length\u003e 0) (
   retrievedPathes \u003d blokedPathes.shift ();
   pI.locked \u003d вярно;))

Тогава ще предприемем подобни действия по отношение на слоевете:

за (i \u003d 0; i if (blokedLayers.length\u003e 0) (
   извлечено \u003d blokedLayers.shift ();
   dL.locked \u003d вярно; )) Всъщност за подобни операции е много по-удобно да се използват функции. Тяхното предимство е, че след като опишете определени действия, можете да ги повторите изцяло, просто като извикате функцията на правилните места; по този начин се постига компактността и четливостта на скрипта. За да се увеличи гъвкавостта на функцията, стойностите (параметрите), използвани в нея, се предават. Ако не искате да използвате функциите, пропуснете следващите два абзаца.

Нека направим две функции: първата - за отключване на слоеве и обекти, втората - за възстановяване на техните атрибути. В тях ще се променят само типове обекти (клас Layers и pageItems) и масиви за записване на интересуващите ни елементи (blokedLayers и blokedPathes) - те ще се появят като параметри на функцията. Пишем първия такъв:

отключване на функция (масив, itemType)
   ако (itemType [i] .locked \u003d\u003d true) (
   array.push (i);
   itemType [i] .locked \u003d невярно;
   заключен \u003d невярно;
}

Вместо масив ще заменим масив, вместо itemType - необходимия клас. Тогава получаваме две обаждания - отключване (blockLayers, dL) и отключване (blokedPathes, pgI). По същия начин пишем функция за възстановяване на състоянието:

възстановяване на функция (масив, itemType)
   ако (array.length\u003e 0) (
   извлечено \u003d array.shift ();
   itemType.locked \u003d true;
}

Показва информация за резултатите от проверката

Това е последният етап от сценария. Първо дефинираме условието за показване на съобщението, ако е избрано търсенето на нередактируеми обекти, след това условието за предупреждението, че са открити такива обекти:

ако (напишете \u003d\u003d "2") (b \u003d "\\ nПроверете!")
   ако (pluginItemExist \u003d\u003d true) (
   предупреждение („Поради ограниченията за скриптове някои обекти не могат да бъдат засегнати“ + b))

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

if ((заключеноPresence \u003d\u003d true) && (pluginItemExist \u003d\u003d false)) (
   предупреждение \u003d „\\ nЗащото някои от тях са заключени, те не могат да бъдат показани като избрани“)

Тогава получаваме крайните резултати:

предупреждение („Брой коригирани обекти са:„ + коригирани + предупреждение)

Тук всъщност е целият сценарий. Както можете да видите, тези няколко реда вършат огромна работа, която едва ли някой би посмял да направи ръчно. Сценарият се изпълнява моментално (в мащабни проекти, като броят на елементите от порядъка на няколко хиляди, производителността на процесора започва да влияе). Необходимо е само да го изберете от списъка на наличните (дори не можете да направите това - Illustrator позволява на скриптовете да присвояват „горещи клавиши“) с командата Edit.Keyboard. Menu command.Scripts. Но обърнете внимание: имената на скриптове са сортирани по азбучен ред, така че добавянето на нови или изтриването на стари може да доведе до преназначаване на ключове към съседни скриптове. Заключение: след промени в папката Presets \\ Scripts, проверете съответствието на клавишите.

Опитахме се да направим сценария универсален, което се отрази на неговия обем. В най-примитивната версия (без да се вземат предвид описаните по-горе характеристики и клопки) е необходимо буквално няколко реда:

minWidth \u003d activeDocument.selection.strokeWidth;
   pI \u003d activeDocument.pathItems;
   за (i \u003d 0; i< pI.length; i++) {
   if ((pI [i] .strokeWidth)< minWidth) && (pI[i].stroked)) {
   pI [i] .strokeWidth \u003d minWidth;
}}

Ами десертът?

Следващият брой ще посветим на визитките: ще напишем скрипт, който автоматизира тяхното оформление на лист. Той обаче е полезен за по-широк спектър от задачи, тъй като няма референция за размера на обектите. Както се очаква, ще осигурим създаването на проблеми, за да избегнем проблеми с неточното рязане на листа, както и въртенето на визитките (ако горната и долната им част са значително различни). В същото време ще засегнем проблема с търсенето на обекти, чийто цветен модел се различава от дадения, което също не е рядкост при подобни работи.

Списанията са свободно достъпни.

По същата тема:

    Новини 2019-04-03

    Как допълнително бяло мастило помага за създаването на нови приложения за широкоформатен печат.

    Днес редица модели широкоформатни и ултра широкоформатни принтери могат да отпечатват с мастило с допълнителен цвят - бял, което създава нови възможности за използване на тези устройства. Но принтерите могат да внедрят различни технологии за печат с бяло мастило, а различните технологии имат свои възможности и ограничения.

Функционалността на Adobe Illustrator е огромна, но има и някои недостатъци, предимството на тази програма е скриптирането, което опростява и дори разширява възможностите на програмата. В допълнение към скриптовете има разширения - персонализирани панели за разширяване на програмата, но това е малко по-различна тема.

Инсталиране на скриптове

Ако никога не сте използвали скриптове в Adobe Illustrator, ето едно кратко ръководство за това как да стартирате скрипт.

Първо трябва да поставим скриптите, които искате да използвате, в папката „Сценарии“. Как да намерите пътя до тази папка? Това е просто, отиваме в корен на папката, където се намира самата програма Adobe Illustrator, след това "Presets -\u003e en_US -\u003e Scripts", вместо en_US може да има друга папка с локализация, какъв тип локализация има Illustrator, изберете такава папка.

След като поставите скриптите в папката, можете да ги стартирате по стандартния метод - това се стартира чрез „Файл -\u003e Скриптове“, списъкът на вашите скриптове ще бъде в падащото меню, щракнете върху някой от тях и ще стартирате скрипта. Дори ако вашите скриптове са в друга папка, можете да ги стартирате и по няколко начина:

  1. Отворете менюто "Файл -\u003e Скриптове -\u003e Други скриптове ...", изследователят ще се отвори, след което трябва да намерите файла на скрипта и след това да стартирате скрипта
  2. Можете просто да плъзнете и пуснете скрипта от Explorer към Illustrator, след което скриптът ще се стартира
  3. Можете да използвате разширения за стартиране на скриптове - това е панелът за Illustrator, който ви позволява да стартирате скриптове директно от програмата. Има няколко такива разширения. Препоръчвам да използвате LAScripts.

Harmonizer

Скрипт за подреждане на елементи върху решетка

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

ArtboardsResizeWithObjects

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

В Adobe Photoshop има функция "Размер на изображението", за да промените таблото заедно със съдържанието, но в Adobe Illustrator няма такава функция, извън кутията. Понякога може да се наложи да промените таблото заедно със съдържанието, така че след промяната всички състояния да бъдат запазени.

Да предположим, че решавате да промените таблото с ръце, реда на вашите действия: Променете артборда, след това изберете всички елементи на таблото и промените размера, но тук се появява само един проблем. Ако имате елементи с удар, тогава ако смените ръцете си, ходът няма да намалее заедно с намаляването на обекта, но можете да го заобиколите, като поставите отметка в квадратчето „Мащаб на ударите и ефектите“, но какво ще стане, ако трябва да промените размера на няколко дъски? За да опростите и спестите време, използвайте скрипта artboardsResizeWithObjects.jsx


  • Нов коефициент на мащаб  - мащаб на таблото като процент
  • Нова ширина на таблото  - нова ширина на таблото, височината ще се промени пропорционално
  • Нова височина на таблото  - нова височина на дънната платка, ширината ще се промени пропорционално
  • Само активен артборд  - сменете само активния борд
  • Всички артбордове  - смяна на всички дъски
  • Персонализирани платки  - сменяйте произволни полета, можете да пишете или като запетая, или като тире (като когато посочвате страници при печат)
  • Включете скрити и заключени елементи  - вземете под внимание заключените и скрити елементи
  • Поле за въвеждане за размер  - По подразбиране се взема ширината на активното табло.

ArtboardsRotateWithObjects

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

В Adobe Photoshop можете да завъртите таблото и съдържанието също ще се завърти, но в Adobe Illustrator няма такава функция от кутията.

Този скрипт ще бъде полезен, ако трябва да завъртите няколко дъски или ако не искате да губите време за регулиране на позицията спрямо артборда, след като се завърти.


Кратко описание на всеки от елементите в сценария:

  • Активно артборд №  - завъртете само активното табло
  • Всички артбордове  - завъртете всички дъски за изкуство
  • Ъгъл на въртене 90 CW  - завъртете зоната за монтаж по посока на часовниковата стрелка
  • Ъгъл на въртене 90 CCW  - завъртете зоната за монтаж обратно на часовниковата стрелка

InlineSVGToAI

Скрипт за вмъкване на SVG (и конвертиране на SVG код) в документ.

Във версията на Adobe Illustrator CC 2018 v.22.1 (март 2018 г.) е добавена възможността да се вмъкне svg обект, скриптът в този случай не е необходимо да се използва.

Винаги се дразнех, че svg не може да бъде поставен в програма, която е специализирана във вектора, искам да кажа, ако копирахме svg код от редактор или от някъде другаде, но под формата на текст няма да можем да го поставим в програма. Първо трябва да запазите кода във файл, едва след това отворете файла в Illustraor, копирайте съдържанието и го поставете в желания документ. Много ненужни действия, нали?

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


Кратко описание на всеки от елементите в сценария:

  • Просто е - поставете съдържанието в полето и кликнете върху „Поставяне“

Пъзел клипер


Скрипт за създаване на пъзели въз основа на обекти.

Сценарият създава групи с изрязващи маски, елементът, който ще бъде "изрязан", е най-ниският обект от избраните. Режими на работа, ако имате група отгоре и обект отдолу, всички елементи в групата ще бъдат преобразувани в групи с изрязваща маска и обект от самата дъна на избраните. Скриптът няма интерфейс, просто изберете необходимите елементи и стартирайте скрипта.


ReplaceItems

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

Например, трябва да замените някои елементи от оформлението, но да ги замените с ръцете си за дълго време, можете да използвате този скрипт, за да го замените, просто изберете елемента, който ви е необходим, копирайте го и след това стартирайте скрипта, изберете "Object Buffer".

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


Кратко описание на всеки от елементите в сценария:

  • Обект в буфер - обектът е в клипборда
  • Топ обект - обектът е първият от списъка с избрани
  • Всички в група (произволно) - произволно избира обект от групата
  • Мащабно поле - мащаб на вмъкнатия елемент
  • Замяна на елементи в група? - Заместените артикули в групата ли са? (ако елементите, които трябва да бъдат заменени са в групата, поставете отметка в това поле, в противен случай цялата група ще бъде заменена, а не всеки елемент от групата)
  • Copy Width & Height - Копирайте стойностите за широчина и височина от заменения елемент
  • Запазване на оригиналния елемент - запазване (не изтриване) заменен елемент
  • Копирайте цветове от елемент - копирайте запълването от заменения елемент
  • Случайно завъртане на елементи - завъртане на случаен принцип всеки елемент

CreateArtboardsFromTheSelection

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

Сценарият създава артборд въз основа на избраните елементи, както и за всеки от избраните.


Кратко описание на всеки от елементите в сценария:

  • Всеки в селекцията - създайте за всяка колекция от избрани елементи
  • Само граници за избор - създайте артборд въз основа на селекция.
  • Ограничения на артикулите Vsible - Видими граници на елементи
  • Ограничения на предметите Geometric - границите на геометричния елемент

TransferSwatches

Скрипт за импортиране на цветни образи от документ в активен документ.

Пуснете скрипта, изберете документ от списъка, можете също да поставите отметка в квадратчето, така че цветовете със същото име да бъдат заменени.


ArtboardItemsMoveToNewLayer

Скрипт, който поставя съдържанието на таблото в нов слой.

Стартирайте скрипта, изберете полетата, можете също да изберете „изтриване на празни слоеве и подслоеве“ и „Име на слоя от името на таблото“.


Adobe Illustrator има много инструменти и функции, но за напреднал потребител винаги ще липсва нещо. Следователно, разработчиците създават скриптове и плъгини, които ще помогнат за решаването на различни задачи и ще ускорят трудоемките процеси. Днес сме подготвили за вас преглед на най-добрите безплатни скриптове за Illustrator. Списъкът им е систематизиран и разделен на няколко групи според функционалността. Тази работа с пътища и точки, различни видове разпределение на формуляри, генериране на обекти, работа с панела Слоеве, текстови обекти, цвят и т.н.

Инсталиране и изпълнение на скриптове

Трябва да инсталирате скрипта в следните папки:

за Windows: C: \\ Program Files \\ Adobe \\ Adobe Illustrator CC 2014 \\ Предварителни настройки \\ en_GB \\ Scripts

за Mac OS: Приложения / Adobe \\ Adobe Illustrator CC 2014 \\ Предварителни настройки \\ en_GB \\ Скриптове

За да стартирате скрипта, отидете на Файл\u003e Сценарии\u003e ...

Можете също да поставите скриптове на всяко друго удобно място на вашия твърд диск. В този случай, за да стартирате скрипта, отидете на File\u003e Scripts\u003e Other Script ... (Cmd / Ctrl + F12).

Ако често използвате скриптове, тогава за удобен старт ще ви бъде полезен. Този безплатен плъгин ви дава достъп до скрипта от панела, който винаги може да бъде поставен на удобно място.

Сега нека разгледаме списъка със скриптове, които са разделени по функционалност:

Сценарии за работа с пътеки, точки и дръжки

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

Този сценарий създава цветя от обикновени форми. Чудесен за създаване на интересни шарки, лога и т.н.

Скриптът премахва припокриващи се точки и отчита колко са изтрити.

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

Скриптът променя посоката на избраните пътища в съответствие с посоката на горния сегмент. Тоест, след като приложите скрипта, всички избрани пътища ще имат една посока.

Скриптът копира най-горния обект в позицията и размерите на други обекти. Трудно е да се опише, по-лесно е да погледнете снимката по-долу.

Сценарии, разпространяващи обекти

Сценарият попълва формата с кръгове.

Скриптът поставя обекти на същото разстояние по избрания път. Можете да преразпределите обекти, които са в една или повече групи.

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

Скриптът завърта обектите в центъра на горния обект.

Скриптът завърта всички обекти до позицията на горния обект.

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

Скриптът създава огледално изображение в съответствие с избрания тип от панела.

Сценарии, които генерират обекти въз основа на други обекти или данни

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

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

Скриптът създава водачи от избраната точка до избраните извити сегменти.

Скриптът ви позволява да генерирате QR код в Illustrator.

С този скрипт можете автоматично да създадете решетка на календар само с няколко кликвания. Поддържани езици: EN, RU, DE, UA.

Сценарии със случаен параметър

Скриптът избира обекти в произволен ред според определеното число.

Скриптът RandomSwatchesFill произволно оцветява избраните обекти в цветовете, избрани в палитрата Swatches.

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

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

Скриптът Random Order ви позволява да разпределяте обекти в произволен ред в панела Слоеве. Използвах този скрипт при писане

Сценарии за работа в панела Слоеве

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

Имате уникална възможност да разширите функционалността на Adobe Illustrator. Няма нищо по-лесно от използването на скриптове (скриптови файлове), просто изберете обекта и стартирайте необходимия ви скрипт. Сценариите, представени в тази статия, ще ви спестят много време, ще направят работата ви по-приятна и ефективна. Повярвайте ми, те си заслужават вниманието ви. Всички скриптове бяха тествани във версии на Illustrator CS3 и CS4.

Ако се нуждаете от добавки за Illustrator с първокласно качество, можете да ги намерите в нашия раздел Действия и скриптове на Illustrator на нашия ресурс GraphicRiver, като например: Isometric Guides Grid Action, Pattern Maker и Long Екшън в сянка.

   Най-добри действия (операции) и скриптове за Illustrator на Graphic River.

В противен случай използвайте безплатните „благинки“, за които сега ще ви разкажем. Но първо, нека да видим как да инсталирате скриптове за Illustrator.

Инсталиране на скриптове

Препоръчително е винаги да запазвате скриптите, които ще използвате на едно и също място, например в директорията Scrips. За да стартирате скрипта, отидете на Файл\u003e Сценарии\u003e Друг скрипт (Command + F12) (Файл\u003e Сценарии\u003e Други скриптове).

Отворете директорията със скриптове и стартирайте желания файл.

Споделете това