Помощь - Поиск - Пользователи - Календарь
Полная версия: Слои - в отдельные файлы AI
ProDTP > Графика и препресс > Скриптинг
arhip
Навеяно вот этим топиком на graphics.ru...
А ведь действительно это было бы удобно! Мне, к примеру, приходят иногда в работу визитки или другая мелочевка, сверстанные на одном листе в AI. А мне (коллегам) надо их обычно заверстать в кварк (по разным причинам). Приходится руками раскидывать в файлы. А вот если бы... (мечтательно глядя в небо :roll: ) А?

Это даже 2 варианта скрипта:
1. раскидывает в файлы слои документа (Layers2AIfiles).
2. то же делает с группами, не входящими в другие группы (Groups2AIfiles).
А если в таком скрипте будет опция - сохранить в AI или EPS, то ваще!...

ps. ой, надо скрипты учить...
steve
Layers2AIfiles еще актульно? или уже variables используем smile.gif ?
Вроде алгоритм простой:
-проверить что слоев в maindoc>1
//loop
-unlock/visible layer
-select layer
-copy
-newdoc
-paste
-save newdoc
-close newdoc
-activate maindoc
-deselect all
//end loop
vd
есть подозрение, что уже написал, да?  :-D

вчера, кстати вспомнил про этот скрипт (почему-то).... думал сделать все таки (кстати именно по такому алгоритму, в иллюстраторе лучше не сделаешь через скрипт)

...на счет вариаблов... вот думаю улучшить один скриптец, добавить visibility и links.... не знаю посмотрим.
vd
ладно.. раз никто не взялся - я напишу... (простой же скрипт)

http://ill-files.narod.ru/export_layers_to_files.zip

из того что тестировал удивили 2 вещи: скорость выполнения и размер получаемых файлов  :-D , ну да ладно, я вродь как завязываю со скриптами, которые самому не нужны.
steve
у меня соурса на VB5 (сейчас еще и VB.Net) хотя JS вроде универсальнее. Один скрипт у меня отказался запускаться.. что-то с open (open dialog ) /error is open неопределенная функция/. Вот нашел, скрипт который нехотел выполнятся "Тестирование скрипта Load Variables ".
==
а в JS нет "docref.Layers.Item(i).HasSelectedArtwork = True"?
arhip
Цитата
из того что тестировал удивили 2 вещи: скорость выполнения и размер получаемых файлов

Да, скорость... потестировал его на календаре формата А1 на весь год (ща кину его в архив, кстати) - думал, не дождусь, пока скрипт закончит копирование всех чисел smile.gif) Что, нет возможности копировать целый слой? Как профан спрашиваю.

И одну неувязочку нашел. В этом файле два слоя имели одинаковое имя - "bg", я так часто бекграунды обозначаю, а в этом случае он был разбит на 2. Так вот, естественно, в результате нижний слой перезаписал предыдущий файл. Не баг, конечно... но неплохо хотя бы уведомление получить о совпадении имен.
steve
Вот кусок кода на VB, только save надо настроить (кто как хочет)
If docref.Layers.Count > 1 Then
For i = 1 To docref.Layers.Count
docref.Activate
docref.Selection = aiNoSelection
docref.Layers.Item(i).Locked = False
docref.Layers.Item(i).Visible = True
docref.Layers.Item(i).HasSelectedArtwork = True
docref.Copy
appRef.Documents.Add
Set newdoc = appRef.ActiveDocument
newdoc.Paste
'save newdoc
'close newdoc
Next
End If
vd
Цитата
Вот нашел, скрипт который нехотел выполнятся \"Тестирование скрипта Load Variables \".


у меня тоже сначала не хотел, но потом я его попросил...

Цитата

а в JS нет \"docref.Layers.Item(i).HasSelectedArtwork = True\"?


docref.layers.pageItem.selected = true;

--
короче так: насколько я понял из референса, такой фишки как copy выделенного, а потом его paste куда нибудь жабаскрипт не умеет. вместо копи используется метод duplicate(), который работает с каждым объектом по-отдельности... вот из-за этого и тормоза.
Если кто-то знает как, то пожалуйста не стесняйтесь...

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

ну правда я все-таки сделал скрипт на жабаскрипте (хоть и бесполезный) как раз для календаря на А1, пришлось немного поменять алгоритм (с крупными файлами, конечно будет завал)... ну и сэйв если хотите надо настроить (sic!)  laugh.gif

http://ill-files.narod.ru/export_layers.zip


[i]Это сообщение было отредактировано:  vd, 08 Окт, 2004 - 10:40
vd
да, забыл сказать: в моем скрипте хайднутые слои не экспортируются умышленно.
steve
JS +10Илл
doc.layers[i].locked=true; - работает
doc.layers[i].HasSelectedArtwork=true; -не работает. Почему? может кто знает.
(в VB это работает docref.Layers.Item(i).HasSelectedArtwork = True - селектит слой, т.е. все pageitem для данного слоя)

Если JS может делать только duplicate (copy не могёт) для pageitems, то можно сделать группу из всех объектов слоя, поидее она должна стать как pageitem(1) и уже её "копировать"(duplicate). 
Но сделать группу на VB без использования cut / paste мне не удалось.
vd
...а чтобы сделать группу нужно сделать move() объекта в эту группу, а move() - тормозит не меньше чем duplicate()  :-D ... да я пробовал еще вчера.
vd
Цитата

doc.layers[i].HasSelectedArtwork=true; -не работает. Почему? может кто знает.


doc.layers[i].hasSelectedArtwork=true;
RIKITIKI
Может имело бы смысл сразу в eps-файлы слои экспротировать? Чтоб были готовые к верстке файлы...
JAW
А вы не думали о алгоритме:
Копировать текущий слой в новый документ, потом записывать?
А то у меня сильное подозрение, что он пишет ВЕСЬ документ в каждый файл.
vd
Цитата(JAW @ Aug 6 2006, 17:22) *

А вы не думали о алгоритме:
Копировать текущий слой в новый документ, потом записывать?
А то у меня сильное подозрение, что он пишет ВЕСЬ документ в каждый файл.

На сколько мне помнится, именно так оно и работает....

Гляньте еще вот сюда.


===============================
vd
(+) Предупреждение за чрезмерное цитирование
Админ
===============================
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2012 Invision Power Services, Inc.

Реклама

   Rambler's Top100    Яндекс цитирования