Мне нужно повернуть рисунок, который я сделал в Adobe Illustrator.
Сложность в том, что нужно вращать только слой со стрелкой (вокруг центра изображения). Это исключает возможность простого добавления файла в какую-либо программу и его вывода через каждые 5 градусов, иначе значок автобуса в центре тоже будет вращаться. Ему нужно специально поворачивать слой со стрелкой вокруг центра каждые 5 градусов, так что, по-видимому, это ограничивает меня внутренними сценариями Illustrator/Photoshop?
Есть также несколько различных цветовых вариаций. Делать это вручную нужно много часов. Есть ли способ упростить это с помощью сценария, который может вращать для меня слой со стрелкой, а затем сохранять файл?
Это очень быстрый скрипт, который должен делать то, что вам нужно:
#target illustrator
var doc = app.activeDocument;
var docName = doc.name.replace(/\.[^\.]+$/, ''),
docDir = ( doc.path != '' ) ? doc.path : '~';
var angle = 5,
iterations = 71,
layerToRotate = 'rotateMe',
destFolder = 'files';
rotateAndExport();
/**
* This is where the magic happens...
*/
function rotateAndExport() {
// loop through layers
for ( var i = 0; i < doc.layers.length; i++ ) {
// loop through layer's pageItems
var layer = doc.layers[i];
if ( layer.name == layerToRotate ) {
for ( var j = 0; j < layer.pageItems.length; j++ ) {
var item = layer.pageItems[j];
// rotate and export
for ( var r = 0; r < iterations; r++ ) {
item.rotate( angle );
exportFileAs( 'PNG', r );
exportFileAs( 'SVG', r );
}
}
}
}
}
/**
* Export as PNG or SVG
*/
function exportFileAs( fileType, iteration ) {
// create folder if it doesn't exist
var destPath = docDir + '/' + destFolder;
if ( false == Folder( destPath ).exists ) {
new Folder( destPath ).create();
}
// export options
var destFile;
var type;
var exportOptions;
if ( 'PNG' == fileType ) {
// create folder if it doesn't exist
var pngPath = destPath + '/PNG/';
if ( false == Folder( pngPath ).exists ) {
new Folder( pngPath ).create();
}
destFile = new File( pngPath + '/' + docName + '_' + iteration.toString() );
type = ExportType.PNG24;
exportOptions = new ExportOptionsPNG24();
exportOptions.artBoardClipping = true;
exportOptions.transparency = true;
} else if ( 'SVG' == fileType ) {
// create folder if it doesn't exist
var svgPath = destPath + '/SVG/';
if ( false == Folder( svgPath ).exists ) {
new Folder( svgPath ).create();
}
destFile = new File( svgPath + '/' + docName + '_' + iteration.toString() );
type = ExportType.SVG;
exportOptions = new ExportOptionsSVG();
exportOptions.preserveEditability = false;
exportOptions.embedRasterImages = true;
exportOptions.embedAllFonts = false;
exportOptions.encoding = SVGDocumentEncoding.UTF8;
exportOptions.fontType = SVGFontType.OUTLINEFONT;
}
// export
doc.exportFile( destFile, type, exportOptions );
}
Измените angle
и iterations
на то, что вам нужно.
Измените layerToRotate
имя слоя, который нужно повернуть.
Измените destFolder
имя папки для сохранения файлов, которое будет создано в том же месте, где сохранен ваш файл (или в вашем домашнем каталоге).
Скрипт экспортирует в PNG и SVG в свои папки. Вы можете добавить больше типов файлов, изменив type
и exportOptions
на exportFile()
что-то другое.
Вращение будет происходить в центре всех объектов на слое, поэтому вы должны нарисовать невидимый прямоугольник с центром на монтажной области (или там, откуда вы хотите повернуть) над стрелкой и сгруппировать все, как я сделал здесь:
Запустите скрипт, и вы должны получить что-то вроде этого:
Обратите внимание, все это делается в CS6; Я не знаю, изменилось ли что-то, и не могу проверить новые версии.
svg
, и png
поэтому обновил, чтобы экспортировать обаObject
→ Transform
→ Transform Each
и вращайте и перемещайте по мере необходимости. В этом примере я использовал 5º и 20px. Нажмите Copy
, чтобы перевести новую копию.⌘D
71 раз, чтобы создать преобразованные дубликаты.A
, чтобы выбрать инструмент прямого выбора.Select
→ Same
→ Fill Color
, чтобы выбрать все объекты ограничивающей рамки.Object
→ Transform
→ Transform Each
и переместите по мере необходимости. Нажмите Copy
, чтобы перевести новую копию.⌘D
71 раз, чтобы создать преобразованные дубликаты.Теперь у вас есть рисунок, вы можете использовать фрагменты или монтажные области, чтобы экспортировать их по мере необходимости.
Западная сторона
jskidd3