[AI CC-CC2021] Прогнать по каждому слою

Статус
Закрыто для дальнейших ответов.

Maslow

Участник
Топикстартер
Сообщения
11
Реакции
0
Помогите пожалуйста в коде избавиться от selection и заменить его на прогон по слоям. Код делает следующее на каждом слое складывает площади объектов и выводит в файл, вместе с названием слоя. Но он этого не делает, а выводит всю сумму всех слоев. Мне кажется проблема в selection. Как заменить его выбором каждого слоя?
Знаю ужас дикий, я в программировании дуб дубом.
Код:
fileVars = new File('C:\\Layers.txt');
fileVars.open('w:');
var totalvs = [];
numLayers = app.activeDocument.layers.length;

       var doc=app.activeDocument;
       for(j=0; j<numLayers; j++)    {
           
         var totalArea =0;   
        var firstLr = doc.layers[j];

if ( app.documents.length > 0 && app.activeDocument.pathItems.length > 0 ){
   
    for ( i = 0; i < doc.selection.length; i++ ){
        objectRef=doc.selection[i];
        if(objectRef.typename=="PathItem"&&objectRef.closed==true){
                 totalArea = Math.abs(totalArea) + Math.abs(objectRef.area);
}           
}
}
   totalArea = 12.4451 * totalArea / 10000;
   totalvs[j] = totalArea;
   fileVars.write(doc.layers[j].name +'    ' + totalvs[j]+ '\n');
   
}
 

qsedftghk

фея
15 лет на форуме
Сообщения
2 032
Реакции
1 198
Честно говоря, очень лень вникать в код. Но я бы добавил
Код:
doc.layers[j].hasSelectedArtwork=true;
после строки
Код:
var firstLr = doc.layers[j];
и
Код:
doc.layers[j].hasSelectedArtwork=false;
после
Код:
fileVars.write(doc.layers[j].name +'    ' + totalvs[j]+ '\n');

То есть, выбирал бы слой, выделял всё, что на нём есть, колбасил там, что надо, а потом снимал выделение. И так далее со следующими слоями.
ЗЫ. Перед запуском скрипта ничего не должно быть выделено.
 
  • Спасибо
Реакции: Maslow, _MBK_ и splxgf

Maslow

Участник
Топикстартер
Сообщения
11
Реакции
0
А-А-А-А! Супер! Работает!
Огромное человеческое спасибо!!!!
 

Linxy

Девушка с битой
10 лет на форуме
Сообщения
2 277
Реакции
3 836
Статус
Закрыто для дальнейших ответов.