[AI CC-CC2021] Как нормализовать Compound Path?

Veniamin-kHz

Участник
Сообщения
163
Реакции
18
lipatkin, я имею в виду другое: есть там какие-то внутренние дополнительное скрытые конструкции или нет. С тем, что там точно есть и так всё понятно, вопрос заключался в том, как гарантированно убрать всё, кроме того, что необходимо. О наличии чего-то лишнего косвенно указывает разница в файлах, полученных с прямым сохранением и с сохранением через SVG.
 

eugeny

15 лет на форуме
Сообщения
855
Реакции
210
lipatkin, я имею в виду другое: есть там какие-то внутренние дополнительное скрытые конструкции или нет. С тем, что там точно есть и так всё понятно, вопрос заключался в том, как гарантированно убрать всё, кроме того, что необходимо. О наличии чего-то лишнего косвенно указывает разница в файлах, полученных с прямым сохранением и с сохранением через SVG.
там нет дополнительных конструкций.
учитывая требования топикстартера, ему необходимо разобрать контур, потом если появились группы, вытащить их на уровень выше. Т.е. макрос выглядит так: разобрать; найти группы и переместить объекты из них на уровень выше. По необходимости второе действие повторить.
 

dosp

Участник
Сообщения
1 143
Реакции
369
Если разобрать Compound Path, групп там не должно быть.
PS: Сам написал, сам опровергаю. Иллюстратор оставляет группы даже в Compound Path. Для меня такая логика непонятна. :(
 
Последнее редактирование:

eugeny

15 лет на форуме
Сообщения
855
Реакции
210
Если разобрать Compound Path, групп там не должно быть.
я сам удивлен, но на скриншотах так.
но если делать, то надо копать в следующую сторону:
items -- это объекты группы gg
Код:
 for(var i=items.length-1; i>=0; i--) {
      
             items[i].move (gg, ElementPlacement.PLACEAFTER);
       
    }
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 137
Реакции
10 835
Или даже лучше такое новейшее средство для очистки compaundpath от порчи

JavaScript:
var cmp=app.selection[0];
var newcmp=cmp.duplicate(cmp,ElementPlacement.PLACEBEFORE);

newcmp.pathItems=null;

for (var i=1;i<cmp.pathItems.length;i++)
{
          cmp.pathItems[i].duplicate(newcmp,ElementPlacement.PLACEATEND);
}
cmp.remove();
 
  • Спасибо
Реакции: eugeny

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 137
Реакции
10 835

dosp

Участник
Сообщения
1 143
Реакции
369
Я в скриптах не силен. Но разве эти 2 действия сложно запихнуть в скрипт?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 137
Реакции
10 835
2 действия сложно запихнуть в скрипт?
Не сложно, а очень сложно. К PathFinder доступа из скриптинга нет вообще, разве что экшн вызывать, а специфика топикстартера, как я понимаю, делает это весьма затруднительным
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
Unite вроде можно командой меню вызвать
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 137
Реакции
10 835

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 137
Реакции
10 835
Хотя, стоп, какой Unite, а как же дырки и прочие отверстия?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 137
Реакции
10 835

Linxy

Девушка с битой
10 лет на форуме
Сообщения
2 277
Реакции
3 836
Сейчас нет под рукой Иллюстратора, поэтому не могу сама проверить, но не поможет ли вот этот плагин?
Там точно есть очистка лишних групп, но как оно отработает, надо смотреть.
У плагина есть 14 дней для бесплатного теста.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 137
Реакции
10 835
Аня, неужели и ты?????
1568374589749.png
 

Linxy

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

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 137
Реакции
10 835

Linxy

Девушка с битой
10 лет на форуме
Сообщения
2 277
Реакции
3 836
Что есть АЕ?
Если задача просто почистить путь, то может и хватит просто плагина, вообще не обязательно к скриптам прибегать. Если это только часть большого проекта, то ой, тогда я не буду мешать вам развлекаться.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 137
Реакции
10 835
Насколько я понял, тема запилена в разделе скриптинг именно потому что нужно не ручное решение, но таки
функцию normaliseCompoundPath(), которая бы приводила изображенное состояние составного контура справа к левому изображению
которую можно было бы использовать в автоматизации