Копирование группы

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

picsa

Участник
Топикстартер
Сообщения
6
Реакции
0
Добрый день.
Стоит задача, из двух разных файлов скопировать изображение в новый AI файл. Причем все объекты сгруппированы и находятся в отдельных слоях Необходимо создать новый файл ,в нем создать новый слой и скопировать группу из одного и другова слоя . А вот с копирование какие-то проблемы. Приведу тестовый скрипт.

srcDocObj = app.documents.getByName("1.ai");
srcDocOver = app.documents.getByName("2.ai");
targetLayersObj = srcDocObj.layers;
targetLayersOver = srcDocOver.layers;
……………………………………………
newDoc = app.documents.add(DocumentColorSpace.RGB, 100, 100);
newLayer = newDoc.layers.add();
newGroup = newLayer.groupItems.add();
newGroup.duplicate (targetLayersObj.groupItems[0] , ElementPlacement.PLACEATBEGINNING);

На newGroup.duplicate люстра падает. В чем проблема?

Все это делается Illustrator CS3.
 
Ответ: Копирование группы

Добрый вечер.

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

Появилась новая идея, но возникла опять непонятка. Как из скрипта выделить группу.

В документе сделаны 2 слоя, в каждом слое по одной группе
делаю из кода(пытаюсь выделить первый слой)
...
sourceDocObj = app.documents.getByName("Obj.ai");
sourceDocObj.selection[0] = sourceDocObj.layers[0].groupItems[0] ;
alert(sourceDocObj.selection.length);

показывает 0.

В чем проблема?
 
Ответ: Копирование группы

Честно говоря вообще не пойму что вы там наворотили. Какой-то хаос по-моему.
Ну например newGroup.duplicate (targetLayersObj.groupItems[0]

targetLayersObj — это что? Наверно слои (коллекция слоёв). Куда идет дубль? А никуда, в какой-то неведомый groupItems который не принадлежит никакому слою.

Предположим что это досадная ошибка или я ничего не понял (что не мудрено)

пишем (на бейсике): Set bb = newGroup.Duplicate(targetLayersObj(1), aiPlaceAtEnd)
т.е. на первый слой вниз.

Предположим что на этом первом слое уже есть какой-то groupItems

пишем: bb.Move targetLayersObj(1).GroupItems(1), aiPlaceAtEnd

Поместили группу нового документа в существующую группу документа "1.ai"
 
Ответ: Копирование группы

Рекомендую почитать описание - Illustrator CS3 JavaScript Reference.pdf, там куча примеров и по копированию и по селекции объектов.

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