- Сообщения
- 2 089
- Реакции
- 145
не.... каждый слой должен быть как отдельный Artboard )))А что тут сложного - выделить все на слое - создать артборд из выделения - не?
мне надо сделать Pdf - каждый слой отдельная страница....А что тут сложного - выделить все на слое - создать артборд из выделения - не?
да вроде это не то....)))Это не это?
![]()
Create Fitted Artboards from layers?
Hey everyone, Does anyone know of a script that will create artboards for each separate layer? Thanks in advance, Andycommunity.adobe.com
ну вот же....А что не так
#target illustrator
main();
function main() {
if ( app.documents.length == 0 ) { return; }
var doc = app.activeDocument;
doc.layers[0].hasSelectedArtwork = true;
doc.fitArtboardToSelectedArt( 0 );
doc.selection = null;
for ( var i = 1; i < doc.layers.length; i++ ) {
doc.artboards.add( [0,0,72,-72] );
doc.layers.hasSelectedArtwork = true;
doc.fitArtboardToSelectedArt( i );
doc.selection = null;
};
};
мне надо каждый слой на новый artboard, причем сами слои - sublayersСлои на артборды
Верхняя строка (символ или их сочетание в названии слоя) -- это слои кот дублируются на все артбоды
Средняя строка (символ или их сочетание в названии слоя) -- каждый слой на новый артборд
Нижняя строка(символ или их сочетание в названии слоя) -- слои кот не переносятся и не дублируются
как на картинке...2 уровня)))Этот скрипт был немного под другую задачу,
но в целом надо понять сколько вообще уровней слоев и много ли их? если много может возникать проблема выхода из монтажной области
да я понимаю что тут надо думать, я спросила может уже есть или кто видел готовый.... )))Оперативно не сделаю, надо разбираться... Если нужно сейчас переносите наверх слои и должно работать
app.userInteractionLevel=UserInteractionLevel.DONTDISPLAYALERTS;
app.selection=null;
mm = 2.834645;
doc = app.activeDocument;
doc.rulerOrigin = Array(0, 0);
xxx = doc.width;
yyy = doc.height;
layerlength=doc.layers.length;
var indexs = new Array();
j=0;
for(i=0; i<layerlength; i++)
{
if (doc.layers[i].locked==true)
{
doc.layers[i].locked=false;
doc.layers[i].hasSelectedArtwork=true;
indexs[j]=i;
j++;
}
}
app.copy();
for(i=0; i<indexs.length; i++)
{
doc.layers[indexs[i]].locked=true;
}
DocumentPreset.colorMode=DocumentColorSpace.CMYK;
DocumentPreset.units=RulerUnits.Millimeters;
DocumentPreset.rasterResolution=DocumentRasterResolution.HighResolution;
DocumentPreset.width=xxx;
DocumentPreset.height=yyy;
DocumentPreset.numArtboards=layerlength-indexs.length;
newdoc=app.documents.addDocument("BasicCMYK",DocumentPreset);
newdoc.activate();
app.executeMenuCommand('pasteInAllArtboard');
doc.activate();
j=0;
for(i=0; i<layerlength; i++)
{
if (!doc.layers[i].locked)
{
doc.layers[i].hasSelectedArtwork=true;
app.copy();
newdoc.activate();
newdoc.artboards.setActiveArtboardIndex(j);
app.executeMenuCommand('pasteInPlace');
doc.activate();
doc.layers[i].hasSelectedArtwork=false;
j++;
redraw();
}
}
app.userInteractionLevel=UserInteractionLevel.DISPLAYALERTS;
мне надо каждый слой на новый artboard, причем сами слои - sublayers
var doc = app.activeDocument;
for (var i=0; i<doc.artboards.length; i++) {
app.selection = null;
doc.artboards.setActiveArtboardIndex(i);
doc.selectObjectsOnActiveArtboard();
to_center(doc.artboards[i], app.selection[0]);
app.selection = null;
}
function to_center(artboard, item){
var artboard_x = artboard.artboardRect[0] + artboard.artboardRect[2];
var artboard_y = artboard.artboardRect[1] + artboard.artboardRect[3];
var x = (artboard_x - item.width)/2;
var y = (artboard_y + item.height)/2;
item.position = [x, y];
}
Экшен в студию...реализовала эту фичу только через экшен