Сортировка слоев по параметрам

  • Автор темы Автор темы bazzjr
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

bazzjr

Участник
Топикстартер
Сообщения
7
Реакции
0
Привет уважаемые эксперты.
Интересен следующий вопрос:

Имеем в Layers много объектов, у объектов(слоев) есть имена(например r123 или b123), возможно ли с помощью скрипта отсортировать объекты в Layers например на увеличение или уменьшение или по другим параметрам(r123, r124, r125 ...) ?

Мне пока вообще не разу не приходилось работать со скриптами в AI, если такая возможность есть, то расскажите поподробней.
 
Ответ: Сортировка слоев по параметрам

Скриптинг не знаю, но вопрос что делать с группами?
 
Ответ: Сортировка слоев по параметрам

Скриптинг не знаю, но вопрос что делать с группами?

С группами делать ничего не надо, просто нужно чтобы в слое была определенная последовательность например:

Layer
r1
r2
r3
r4
и т.д.


просто объектов может быть очень много, и вручную тратится много времени на сортироваку :(
 
Ответ: Сортировка слоев по параметрам

Если без групп то собрать имена объектов, отсортировать и посылать на самый низ по порядку.
 
Ответ: Сортировка слоев по параметрам

Если без групп то собрать имена объектов, отсортировать и посылать на самый низ по порядку.

Я так сейчас и делаю, но представляешь если у тебя 2000 объектов :(...
Т.е. я тыкаю в объект и посылаю его вниз, а объект еще найти надо в Layers
 
Ответ: Сортировка слоев по параметрам

Так чего надо, скрипт написать? тогда ТЗ подробное + файл и в работу. Если хочется сделать самостоятельно, то для начала нужно хоть попытаться что-то сделать, а потом уже спрашивать что не получается.
Мне пока вообще не разу не приходилось работать со скриптами в AI
А с не скриптами, а не в AI? Не приходилось и не хочется или не хочется, но надо?
нужно чтобы в слое была определенная последовательность
Пример не показателен. Объекты имеют однотипные имена из одной буквы и ряда цифр и отсортировать нужно по ряду возрастания убывания чисел? Что делать с разными буквами?
 
Ответ: Сортировка слоев по параметрам

Так чего надо, скрипт написать? тогда ТЗ подробное + файл и в работу. Если хочется сделать самостоятельно, то для начала нужно хоть попытаться что-то сделать, а потом уже спрашивать что не получается.

А с не скриптами, а не в AI? Не приходилось и не хочется или не хочется, но надо?

Пример не показателен. Объекты имеют однотипные имена из одной буквы и ряда цифр и отсортировать нужно по ряду возрастания убывания чисел? Что делать с разными буквами?

Пример файла тут и не нужен, ситуация простая. Сам я скрипты не писал, и даже не представляю как и где это делается а AI.
Напишу пример еще раз:
имеем основной слой Layer, в нем объекты с именами r1 - r100:
Layer
r77
r35
r5
r87
и т.д. в разнобой

Вот и вопрос как сделать так, чтобы было(по возрастанию в данном примере)
Layer
r1
r2
r3
r4
...

Насчет других программ спасибо за подсказку, буду пробовать. А если уже есть опыт подобной быстрой сортировки(желательно автоматом), то поделитесь пож-та.
 
Ответ: Сортировка слоев по параметрам

Нет ножек - нет мультиков.
Может скрипт кто и напишет у кого время есть и заняться нечем, но в вашем файле может быть такое, что это будет непригодно, и чревато потраченным временем и двойной работой.
 
Ответ: Сортировка слоев по параметрам

Нет ножек - нет мультиков.
Может скрипт кто и напишет у кого время есть и заняться нечем, но в вашем файле может быть такое, что это будет непригодно, и чревато потраченным временем и двойной работой.

Хорошо, если это важно я выкладываю пример файла, но в нем уже все отсортировано вручную.
Файл состоит из обычных "<Path>" и ничего больше, без каких либо эффектов и прочего.

Возможно коллеги возьмутся написать скрипт за деньги?...
 

Вложения

Ответ: Сортировка слоев по параметрам

Здравствуйте.
Попробуйте вот такой код:
#target 'illustrator'
var myPathArray = new Array;
var myDoc = app.activeDocument;
var myLayers = myDoc.layers;
for(l=0; l<myLayers.length; l++){
myPageitems = myLayers[l].pageItems;
for(i=0; i<myPageitems.length; i++){
myPathArray.push(myPageitems);
}
myPathArray.sort(f_sort);
for(i=0; i<myPathArray.length; i++){
myPathArray.zOrder(ZOrderMethod.BRINGTOFRONT);
}
}

function f_sort(Str1, Str2){
var Str1_1 = Str1.name;
var Str1_1 = Str1_1.replace(/\D/g, "");
var Str2_1 = Str2.name;
var Str2_1 = Str2_1.replace(/\D/g, "");
if (Str1_1-0<Str2_1-0) return 1;
if (Str1_1-0>Str2_1-0) return -1;
return 0;
}

Он перебирает слои и сортирует объекты по их имени игнорируя буквы.
На вашем файле работает 100%.
 
Ответ: Сортировка слоев по параметрам

Огромное спасибо Bmax77!
Работает!

И позвольте спрошу у вас, а сложно написать еще скрипт, который переименовывает все r123, r124... в b123, b124...(т.е. меняте букву r на b) ?
 
Ответ: Сортировка слоев по параметрам

Вот как то так:

#target 'illustrator'
var myDoc = app.activeDocument;
var myPageitems = myDoc.pageItems;
for(i=0; i<myPageitems.length; i++){
amyName = myPageitems.name;
amyName = amyName.replace (/r/, "b")
myPageitems.name = amyName;
}
 
Ответ: Сортировка слоев по параметрам

Нет ножек - нет мультиков.
Может скрипт кто и напишет у кого время есть и заняться нечем, ...
Ну вот нечем было заняться я и написал. А предоплату это само собой.
 
Ответ: Сортировка слоев по параметрам

Спасибо большое!
На данный момент я к сожалению не имею веб мани и прочего. Если устроит могу положить вам на телефон денег?
Ну или как-то перевести с банковской карты вам...
 
Статус
Закрыто для дальнейших ответов.