Render.ru

Пара скриптов

#1
Накрапал тут парочку скриптов, представляющих собой модификацию выложенных мной ранее скриптов по замене объектов одним (подобно Swap Symbol). Новые скрипты взаимозаменяют 2 выделенных объекта.

1)
// Взаимозаменяет объекты, не меняя их изачальных размеров
mySelection = activeDocument.selection;
if (mySelection.length==2){
if (mySelection instanceof Array){
first=mySelection[0];
second=mySelection[1];
centerPointF=first.position[0]+(first.width/2);
centerPointVertF=first.position[1]-(first.height/2);
centerPointS=second.position[0]+(second.width/2);
centerPointVertS=second.position[1]-(second.height/2);
newFirst=first.duplicate();
newSecond=second.duplicate();
newFirst.position=Array((centerPointS-(first.width/2)),(centerPointVertS+(first.height/2)));
newFirst.artworkKnockout=second.artworkKnockout;
newFirst.clipping=second.clipping;
newFirst.isIsolated=second.isIsolated;
newFirst.evenodd=second.evenodd;
if(second.polarity){
newFirst.polarity=second.polarity
}
newFirst.moveBefore(second);
second.remove()
newSecond.position=Array((centerPointF-(newSecond.width/2)),(centerPointVertF+(newSecond.height/2)));
newSecond.artworkKnockout=first.artworkKnockout;
newSecond.clipping=first.clipping;
newSecond.isIsolated=first.isIsolated;
newSecond.evenodd=first.evenodd;
if(first.polarity){
newSecond.polarity=first.polarity
}
newSecond.moveBefore(first);
first.remove()
}
}


2)
// Взаимозаменяет объекты, подстраивая их размеры под размер
// заменяемого объекта
mySelection = activeDocument.selection;
if (mySelection.length==2){
if (mySelection instanceof Array){
first=mySelection[0];
second=mySelection[1];
centerPointF=first.position[0]+(first.width/2);
centerPointVertF=first.position[1]-(first.height/2);
centerPointS=second.position[0]+(second.width/2);
centerPointVertS=second.position[1]-(second.height/2);
ratio1=100/(first.width/second.width);
ratioV1=100/(first.height/second.height);
newFirst=first.duplicate();
newSecond=second.duplicate();
newFirst.position=Array((centerPointS-(first.width/2)),(centerPointVertS+(first.height/2)));
if(ratio1<ratioV1){
newFirst.resize(ratio1,ratio1,true,true,true,true,ratio1)
}else{
newFirst.resize(ratioV1,ratioV1,true,true,true,true,ratioV1)
}
newFirst.artworkKnockout=second.artworkKnockout;
newFirst.clipping=second.clipping;
newFirst.isIsolated=second.isIsolated;
newFirst.evenodd=second.evenodd;
if(second.polarity){
newFirst.polarity=second.polarity
}
newFirst.moveBefore(second);
second.remove()
ratio2=100/(newSecond.width/first.width);
ratioV2=100/(newSecond.height/first.height);
newSecond.position=Array((centerPointF-(newSecond.width/2)),(centerPointVertF+(newSecond.height/2)));
if(ratio2<ratioV2){
newSecond.resize(ratio2,ratio2,true,true,true,true,ratio2)
}else{
newSecond.resize(ratioV2,ratioV2,true,true,true,true,ratioV2)
}
newSecond.artworkKnockout=first.artworkKnockout;
newSecond.clipping=first.clipping;
newSecond.isIsolated=first.isIsolated;
newSecond.evenodd=first.evenodd;
if(first.polarity){
newSecond.polarity=first.polarity
}
newSecond.moveBefore(first);
first.remove()
}
}
 
#2
почему в скрипте с изменением размера один объект принимает ширину другого, а второй - высоту первого?
 
Сверху