- Сообщения
- 2 057
- Реакции
- 1 220
Вчера понадобилось мне такое. Вот, может, кому пригодится.
Скрипт тупой, ибо делалось быстро и не особо заморачиваясь.
Слои раскидываются по монтажным областям. Каждый незаблокированный слой - это новый артбоард. Заблокированный слой - будет перемещен на все артбоарды (типа мастера, что ли)
Короче, проще попробовать, чем объяснять. Делаете три слоя. На каждом любой объект. Один слой заблокируйте. Запустите скрипт и увидите.
При большом кол-ве объектов и слоев иллюстратор, при работе скрипта, делает вид, что зависает (потому что скрипт туп и примитивен). Руками не трогать, а дождаться окончания работы скрипта.
Делалось под СS6, но думаю и в других версиях не ниже CS4 будет работать.
Скрипт тупой, ибо делалось быстро и не особо заморачиваясь.
Слои раскидываются по монтажным областям. Каждый незаблокированный слой - это новый артбоард. Заблокированный слой - будет перемещен на все артбоарды (типа мастера, что ли)
Короче, проще попробовать, чем объяснять. Делаете три слоя. На каждом любой объект. Один слой заблокируйте. Запустите скрипт и увидите.
При большом кол-ве объектов и слоев иллюстратор, при работе скрипта, делает вид, что зависает (потому что скрипт туп и примитивен). Руками не трогать, а дождаться окончания работы скрипта.
Делалось под СS6, но думаю и в других версиях не ниже CS4 будет работать.
Код:
app.userInteractionLevel=UserInteractionLevel.DONTDISPLAYALERTS;
app.selection=null;
doc = app.activeDocument;
layerlength=doc.layers.length;
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=doc.width;
DocumentPreset.height=doc.height;
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++;
}
}
app.userInteractionLevel=UserInteractionLevel.DISPLAYALERTS;