Render.ru

Несколько скриптов

#1
Решил я выложить несколько скриптов, которые были написаны уже давно, но не выкладывались, ввиду их узкоспецифического назначения (я думал, что это мало кому нужно). Но теперь подумал, что, фиг его знает, может кому это и понадобится. Все они связаны с перекладыванием некоторых операций на горячие клавиши. Для тех, кто не знает, скрипт можно поместить в Action, (через "Insert menu item"), которому и назначить хоткей.

Работая в Фотошопе я привык к возможности увеличения/уменьшения диаметра кисти горячими клавишами. В илле такого нет, и я решил возместить это дело скриптом. Итак:

//скрипт увеличивает Stroke всех выделенных объектов на 0,5pt.

for(i=0;i<activeDocument.pageItems.length;i++){
obj=activeDocument.pageItems;
if(obj.selected){
try{
obj.strokeWidth+=0.5;
}catch(exc){
continue
}
}
}

//скрипт уменьшает Stroke всех выделенных объектов на 0,5pt.

for(i=0;i<activeDocument.pageItems.length;i++){
obj=activeDocument.pageItems;
if((obj.selected)&&(obj.strokeWidth)){
obj.strokeWidth-=0.5;
if(obj.strokeWidth<0){
obj.strokeWidth=0
}
}
}


Часто по работе мне приходится обрисовывать растровые картинки или логотипы. Работаю я таким образом: помещаю растровый рисунок на первый слой, а обрисовываю на втором. При надобности, всегда можно оставить видимым только нижний слой, или только верхний, или включить оба этих слоя. Что б не тыкать постоянно на палитре Layers, я решил связать это дело с горячими клавишами. Можно, конечно, всё это делать и через сохранённые Views, но они сохраняют и масштаб. Итак, вот эти скрипты:

// Делает видимым только первый слой

activeDocument.layers[activeDocument.layers.length-1].visible=true;
if(activeDocument.layers.length>1){
for(i=activeDocument.layers.length-2;i>=0;i--){
activeDocument.layers.visible=false;
}
}


// Делает видимым только второй слой

activeDocument.layers[activeDocument.layers.length-1].visible=false;
if(activeDocument.layers.length>1){
activeDocument.layers[activeDocument.layers.length-2].visible=true;
if(activeDocument.layers.length>2){
for(i=activeDocument.layers.length-3;i>=0;i--){
activeDocument.layers.visible=false;
}
}
}


// Делает видимыми оба слоя

activeDocument.layers[activeDocument.layers.length-1].visible=true;
if(activeDocument.layers.length>1){
activeDocument.layers[activeDocument.layers.length-2].visible=true;
}
 
#3
Спасибо за скрипты!
В Illustrator СS можно обойтись и без экшена. Сразу назначив горячие кнопки скриптам.
 
#4
Давно не понимал, почему такая полезная штука есть во Фрихенде и нет в Иле.
 
#5
Скрипт по удалению лишних точек.
Работает в 10 и не работает в CS. Как бы его "починить"?

mySelection = activeDocument.selection;
if (mySelection.length>0){
for(i=0;i<mySelection.length;i++){
if(mySelection.pathPoints){
papo=mySelection.selectedPathPoints;
for(q=0;q<papo.length;q++){
if(papo[q].selected==2){
papo[q].remove();
}
}
}
}
}else{}
 
#6
Sergio, к сожалению, я пока не установил CS, та что, проверить сейчас не могу. Но уже уверен, что дело в этом значении:
if(papo[q].selected==2)
Нужно просто попробовать подставить другую цифру (от 0 до 4)
 
#8
Всё, исправил. Классно, что в Илле есть теперь возможность назначать скриптам хоткеи. Так что, теперь товарищи, привыкшие в других прогах удалять кучу точек одним движением мыши, могут этим воспользоваться и в илле.
Да, кстати, я обнаружил, что мой скрипт по "разлинкованию" линков теперь (в CS) работает и с PSD, не содержащими векторов.
напоминаю, что скрипты лежат на www.zadomnaperod.by.ru/scripts/scripts.htm
Не все они пока оптимизированы под CS, хотя, почти все работают в CS.

mySelection = activeDocument.selection;
if (mySelection.length>0){
for(i=0;i<mySelection.length;i++){
if(mySelection.pathPoints){
papo=mySelection.selectedPathPoints;
for(q=0;q<papo.length;q++){
if(papo[q].selected==PathPointSelection.ANCHORPOINT){
papo[q].remove();
}
}
}
}
}else{}
 
Сверху