[AI CC-CC2021] аналог Swap Places для AI

Slx1

Топикстартер
15 лет на форуме
Сообщения
944
Реакции
106
Господа, а не попадался кому аналог ID скрипта Swap Places (Просто меняются местами два фрейма относительно координат, соответствующих transform reference point.)?
Именно просто смена мест, без искажений и трансформаций объектов
Спасибо за любую помощь
 

_MBK_

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

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Точнее в три
JavaScript:
var tmp=app.activeDocument.selection[0].position;
app.activeDocument.selection[0].position=app.activeDocument.selection[1].position;
app.activeDocument.selection[1].position=tmp;
 
  • Спасибо
Реакции: Slx1

Slx1

Топикстартер
15 лет на форуме
Сообщения
944
Реакции
106
Точнее в три
JavaScript:
var tmp=app.activeDocument.selection[0].position;
app.activeDocument.selection[0].position=app.activeDocument.selection[1].position;
app.activeDocument.selection[1].position=tmp;

круто! работает!
только на масках глючит
 

_MBK_

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

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
Для начала вопрос что выделяется - маска или вся группа?
 

Slx1

Топикстартер
15 лет на форуме
Сообщения
944
Реакции
106
Ну это можно было предвидеть - наверное, сама маска передвигается, а содержимое остается на месте?

Вроде все передвигается, только координаты берутся по маске
 

Вложения

  • 2222.png
    2222.png
    766.2 КБ · Просм.: 215

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Вроде все передвигается, только координаты берутся по маске
О! Это просто замечательно!
Но тогда в три строки не получится, придется реальные размеры маскированной части считать, а это довольно замороченно
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
Их не посчитать. Надо брать от clipping path
 

_MBK_

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

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
у меня такая функция для определения размеров
Код:
function getBounds(obj)
{
        if(obj.typename!="GroupItem") return obj.geometricBounds;
      
       if(obj.clipped)
        for(var i=0;i<obj.pageItems.length;i++)
        {
            if(obj.pageItems[i].clipping) return obj.pageItems[i].geometricBounds;
        }
    
        var result = getBounds(obj.pageItems[0]);
         for(var i=1;i<obj.pageItems.length;i++)
        {
            var currBounds = getBounds(obj.pageItems[i]);
            result[0] = Math.min(result[0],currBounds[0]);
            result[2] = Math.max(result[2],currBounds[2]);
            result[1] = Math.max(result[1],currBounds[1]);
            result[3] = Math.min(result[3],currBounds[3]);
        }
        
       return result;
}
 
  • Спасибо
Реакции: Килгор Траут

_MBK_

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

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
обычно наоборот ) кому нужна маска, которая ничего не маскирует
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Ну на примере она частично маскирует
А вообще говоря, топикстартер не уточнял что именно ему надо и по какому месту объекта позицию считать?
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
ну можно пересечение поискать у маски и всего контента, да
 

Slx1

Топикстартер
15 лет на форуме
Сообщения
944
Реакции
106
Коллеги, да я попробовал в примере маску которая частично скрывает объекты а частично "торчит", такое часто попадается
в принципе если будет по маске считать координаты было бы очень круто!

то есть центром группы считаем центр маски
 
Последнее редактирование:

_MBK_

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

Slx1

Топикстартер
15 лет на форуме
Сообщения
944
Реакции
106
во не могу точно понять, но центр сьезжает
 

Вложения

  • 333.png
    333.png
    790.8 КБ · Просм.: 252