[AI CS4-CS6] Artboard from Layer

NatalieRedFox_333

Чего мне бояться? - подумала Красная Шапочка...)))
Топикстартер
Сообщения
2 089
Реакции
145
Здравствуйте господа!
Ищу скрипт который делает Artboard from Layer )))
может кто - нибудь встречал...?
1659802235703.png
 

Вложения

  • Untitled.jpg
    Untitled.jpg
    55.2 КБ · Просм.: 164
А что тут сложного - выделить все на слое - создать артборд из выделения - не?
 
А что тут сложного - выделить все на слое - создать артборд из выделения - не?
не.... каждый слой должен быть как отдельный Artboard ))) 'otbline' я пока что реализовала эту фичу только через экшен....но наверно можно сделать и через скрипт? правда там вроде есть засада....
 
Последнее редактирование:
ну вот же....
Код:
#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;

          };

};
 
Пропущено [ i ] ?
 
  • Спасибо
Реакции: NatalieRedFox_333
Слои на артборды

Верхняя строка (символ или их сочетание в названии слоя) -- это слои кот дублируются на все артбоды
Средняя строка (символ или их сочетание в названии слоя) -- каждый слой на новый артборд
Нижняя строка(символ или их сочетание в названии слоя) -- слои кот не переносятся и не дублируются
 
Последнее редактирование:
  • Спасибо
Реакции: NatalieRedFox_333
Слои на артборды

Верхняя строка (символ или их сочетание в названии слоя) -- это слои кот дублируются на все артбоды
Средняя строка (символ или их сочетание в названии слоя) -- каждый слой на новый артборд
Нижняя строка(символ или их сочетание в названии слоя) -- слои кот не переносятся и не дублируются
мне надо каждый слой на новый artboard, причем сами слои - sublayers
1660208102732.png
 
Этот скрипт был немного под другую задачу,
но в целом надо понять сколько вообще уровней слоев и много ли их? если много может возникать проблема выхода из монтажной области
 
Этот скрипт был немного под другую задачу,
но в целом надо понять сколько вообще уровней слоев и много ли их? если много может возникать проблема выхода из монтажной области
как на картинке...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

А в данном случае, можно немного и напрячься, и вытащит слои на верхний уровень до запуска скрипта, ничего сложного в этом нет. Выделил слои и мышкой вытянул наверх. Ну, либо найти ещё один скрипт, который помещает sublayers наверх, либо подождать, когда уже софтина все будет делать сама.
 
  • Спасибо
Реакции: ITIT
тут вся суть в самих sublayers....))) а если будут слои то весь смысл теряется.... 'otbline'
 
Последнее редактирование:
половину нашла....)))
Код:
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];
}
 
Последнее редактирование:
  • Спасибо
Реакции: _MBK_
Вроде получилось....)))
 

Вложения

  • Untitled.jpg
    Untitled.jpg
    77 КБ · Просм.: 159