Группировка объектов в AI CS2

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

ldart

Участник
Топикстартер
Сообщения
2
Реакции
0
Привет!
Я новичек в скриптописании. Пишу скрипт в VB и столкнулся с проблемой.
Вопрос: можно ли в Люстре CS2 программно сгруппировать выделенные объекты и рзгруппировать группу. Если да, то как?
 
Ответ: Группировка объектов в AI CS2

В руководстве нашел только такой код:
PHP:
Dim appRef As New Illustrator.Application
Dim triangleGroup As Illustrator.GroupItem
'Create a new group in the active document.
'This will be the group that holds the new triangle art
Set triangleGroup = appRef.ActiveDocument.GroupItems.Add
'Create a triangle and add text inside the group
Dim trianglePath As Illustrator.PathItem
Dim captionText As Illustrator.TextFrame
Set trianglePath = triangleGroup.PathItems.Add
trianglePath.SetEntirePath Array(Array(100, 100), Array(300, 100), _
Array(200, Math.Tan(1.0471975) * 100 + 100))
Set captionText = triangleGroup.TextFrames.Add
captionText.Position = Array(100, 100)
captionText.Contents = "A triangle"
Судя по-всему создание групп в Илле существенно отличается от ИД.
Вот эта строчка:
PHP:
Set trianglePath = triangleGroup.PathItems.Add
добавляет в группу НОВЫЙ PathItems
Можно попробовать вместо строки
PHP:
trianglePath.SetEntirePath Array(Array(100, 100), Array(300, 100), _
Array(200, Math.Tan(1.0471975) * 100 + 100))
написать
PHP:
trianglePath = мойКакой-тоТамPath
 
ragman

Спасибо! (я уже не надеялся)
Попробую... о результатах сообщу.
 
Ответ: Группировка объектов в AI CS2

Кстат, можно покапаться с методом "Move (relativeObject as Object, insertionLocation as AiElementPlacement)"
 
Ответ: Группировка объектов в AI CS2

у меня другой вопрос - почему он добавляет обьекты в группу в шахматном порядке ? вот кусок скрипта :
--------------------------------------------------------
doc = app.activeDocument.layers[0];


var group = doc.groupItems.add();
group.name = "group";
group.move (doc, ElementPlacement.PLACEATEND);

for(i=0;i<doc.pathItems.length;i++)
{
obj=doc.pathItems;
obj.move (group,ElementPlacement.PLACEATEND)
}
 
Ответ: Группировка объектов в AI CS2

у меня другой вопрос - почему он добавляет обьекты в группу в шахматном порядке ? вот кусок скрипта :
--------------------------------------------------------
doc = app.activeDocument.layers[0];


var group = doc.groupItems.add();
group.name = "group";
group.move (doc, ElementPlacement.PLACEATEND);

for(i=0;i<doc.pathItems.length;i++)
{
obj=doc.pathItems;
obj.move (group,ElementPlacement.PLACEATEND)
}


добавь, например i=i-1:

for(i=0;i<doc.pathItems.length;i++)
{
obj=doc.pathItems;
obj.move (group,ElementPlacement.PLACEATEND)
i=i-1;
}


Насколько я понял, что когда ты какой-то объект включаешь в группу, то "нумерация" остальных объектов меняется, т.е. например у тебя три квадрата №1, №2, №3, ты начинаешь группировать:
- открываешь группу с каким-то именем
- заносишь туда квадрат №1
- после этого квадрат № 2 становиться квадратом №1, а квадрат №3 становиться квадратом №2
вот поэтому i=i-1... короче, не знаю как объяснить, не сенсей я... но у меня твой вышеприведенный код с моим малюсеньким добавлением работает нормально
 
Ответ: Группировка объектов в AI CS2

Там есть такая штука, Z-order, называется. Обратите внимание.

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