[AI CS4-CS6] Artboard from Layer

NatalieRedFox_333

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

Вложения

  • Untitled.jpg
    Untitled.jpg
    55.2 КБ · Просм.: 28

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
32 071
Реакции
10 519
А что тут сложного - выделить все на слое - создать артборд из выделения - не?
 

NatalieRedFox_333

Чего мне бояться? - подумала Красная Шапочка...)))
Топикстартер
Сообщения
2 000
Реакции
143
А что тут сложного - выделить все на слое - создать артборд из выделения - не?
не.... каждый слой должен быть как отдельный Artboard ))) 'otbline' я пока что реализовала эту фичу только через экшен....но наверно можно сделать и через скрипт? правда там вроде есть засада....
 
Последнее редактирование:

NatalieRedFox_333

Чего мне бояться? - подумала Красная Шапочка...)))
Топикстартер
Сообщения
2 000
Реакции
143
ну вот же....
Код:
#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;

          };

};
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
32 071
Реакции
10 519
Пропущено [ i ] ?
 
  • Спасибо
Реакции: NatalieRedFox_333

dik973

15 лет на форуме
Сообщения
566
Реакции
75
Слои на артборды

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

NatalieRedFox_333

Чего мне бояться? - подумала Красная Шапочка...)))
Топикстартер
Сообщения
2 000
Реакции
143
Слои на артборды

Верхняя строка (символ или их сочетание в названии слоя) -- это слои кот дублируются на все артбоды
Средняя строка (символ или их сочетание в названии слоя) -- каждый слой на новый артборд
Нижняя строка(символ или их сочетание в названии слоя) -- слои кот не переносятся и не дублируются
мне надо каждый слой на новый artboard, причем сами слои - sublayers
1660208102732.png
 

dik973

15 лет на форуме
Сообщения
566
Реакции
75
Этот скрипт был немного под другую задачу,
но в целом надо понять сколько вообще уровней слоев и много ли их? если много может возникать проблема выхода из монтажной области
 

NatalieRedFox_333

Чего мне бояться? - подумала Красная Шапочка...)))
Топикстартер
Сообщения
2 000
Реакции
143
Этот скрипт был немного под другую задачу,
но в целом надо понять сколько вообще уровней слоев и много ли их? если много может возникать проблема выхода из монтажной области
как на картинке...2 уровня)))
 

dik973

15 лет на форуме
Сообщения
566
Реакции
75
Оперативно не сделаю, надо разбираться... Если нужно сейчас переносите наверх слои и должно работать
 

NatalieRedFox_333

Чего мне бояться? - подумала Красная Шапочка...)))
Топикстартер
Сообщения
2 000
Реакции
143
Оперативно не сделаю, надо разбираться... Если нужно сейчас переносите наверх слои и должно работать
да я понимаю что тут надо думать, я спросила может уже есть или кто видел готовый.... )))
 

qsedftghk

фея
15 лет на форуме
Сообщения
1 942
Реакции
1 099
Делал для себя когда-то по-тупому. Работает медленно, иногда тупит, никаких проверок и т.п., разбираться было некогда, для моих задач хватило.

Скрипт создает новый документ, где будут артбоарды из слоёв старого документа.
Заблоченные слои в старом документе - будут на всех новых артбоардах, типа как мастер пейдж.

Код:
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

NatalieRedFox_333

Чего мне бояться? - подумала Красная Шапочка...)))
Топикстартер
Сообщения
2 000
Реакции
143
тут вся суть в самих sublayers....))) а если будут слои то весь смысл теряется.... 'otbline'
 
Последнее редактирование:

NatalieRedFox_333

Чего мне бояться? - подумала Красная Шапочка...)))
Топикстартер
Сообщения
2 000
Реакции
143
половину нашла....)))
Код:
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_

NatalieRedFox_333

Чего мне бояться? - подумала Красная Шапочка...)))
Топикстартер
Сообщения
2 000
Реакции
143
Вроде получилось....)))
 

Вложения

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