Render.ru

Тем, кто пишет скрипты (HELP!!!)

#1
Начну с того что в числе языков, которыми я владею, языки программирования не попадаются.
Но вот столкнулся с проблемой, когда это просто необходимо.
Огромная просьба, если у кого из скриптеров есть свободное время, напишите пож-та тельце для осуществления операции Shear для каждого из объектов группы относительно центра каждого объекта. А то в Люстре эта штука работает относительно либо центра группы, либо центра области выделения множества объектов.
На быстрый результат конечно не рассчитываю, но уверен, что данная фича
принесёт радость не только мне.
Заранее спасибо (даже если за попытку).
 
#2
Ё!.. :)) неужели так надо?

Ну если знатоки не захотят заморачиваться, тогда я могу попробовать. Есть у меня самопальный макрос для Корыла, который крутит, скашивает, уменьшает, увеличивает относительно любой точки как с использованием процентов (вроде Transform each в AI), так и с использованием точного значения в любых единицах измерения (что кстати в большинстве случаев более удобно чем проценты). Думаю что для AI сделать подобное несложно. Хотя обещать не буду — мои умения в этом деле на самом скромном уровне, а для AI писать, как мне кажется не так удобно как для Корела.
 
#4
Есть файл илла. Где много объектов -текстовых боксов. В некоторых из них текст не вместился полностью (text overflow). Можно ли написать скрипт который такие объекты все найдет и выделит. И еще сделать этим объектам fit frame to context.

Знатоки посоветуйте что-нибудь. Может такой скрипт существует?
 

Arkady 16790

Активный участник
Рейтинг
11
#5
>> А то в Люстре эта штука работает относительно либо центра группы

А точку привязки перетаскивать мышОй не пробовал? С <Alt'ом> кликать ее?
 
#6
2 Arkady: сто раз перетаскивать? Объекты, когда выполняется скос группы или просто множества объектов смещаются вслед за скашиваемой "гранью"
(левой и соответственно правой:)) области выделения. А мне надо, чтобы они на местах своих "поскашивались".
 

Arkady 16790

Активный участник
Рейтинг
11
#7
Скрипт в таком случае простой, наподобие этого:

var myTransform=new Matrix

myTransform=getTranslationMatrix(110,110)

myTransform.mValueA=1.1
myTransform.mValueB=2.2
myTransform.mValueC=3.3
myTransform.mValueD=4.4
myTransform.mValueTX=5.5
myTransform.mValueTY=6.6


mySelection=activeDocument.selection
for (i=0; i<mySelection.length; i++) {
myGroupObject=mySelection
if (myGroupObject.typename == "GroupItem") {
myPathes = myGroupObject.pathItems
for (j=0;j<myPathes.length;j++) {
myPathes[j].transform(myTransform)
}
}
}

Что такое матрица трансформаций, через которую осуществляются преобразования — ищи сам :)
 

Arkady 16790

Активный участник
Рейтинг
11
#8
например здесь: http://developer.apple.com/documentation/QuickTime/INMAC/QT/iqMovieToolbox.c.htm
или в учебнике по линейной аль-джебре
 
#9
Arkady... я вижу ты издеваешься =)))
Зачем так пугать человека? =)
Достаточно будет таких ссылок

http://www.w3schools.com/js/default.asp
http://partners.adobe.com/public/developer/en/illustrator/sdk/AIJavaScriptReference.pdf
http://mathworld.wolfram.com/ShearMatrix.html

-------
var myTransform = new Matrix()

// shear factor
s = 1;

myTransform.mValueA=1
myTransform.mValueB=0
myTransform.mValueC=s
myTransform.mValueD=1
myTransform.mValueTX=0
myTransform.mValueTY=0

mySelection=activeDocument.selection
for (i=0; i<mySelection.length; i++)
mySelection.transform(myTransform)
-------
значение C это горизонтальный шеар фактор
значение B это вертикальный шеар фактор

хотя я бы сделал иначе: сначала скриптом запомнил координаты объектов, а после операций над ними - скриптом эти координаты восстановил.
 
#11
>> По поводу скрипта для поиска объектов, может посоветуете чего

http://partners.adobe.com/public/developer/en/illustrator/sdk/AIJavaScriptReference.pdf
;-)
 
#12
Э-э, спасибо всем, кто откликнулся... А можете подсказать как всем вышенаписанным пользоваться? Куда и как это записывается и как подключается?
 
#14
я думаю достаточно почитать хелп иллюстратора (например раздел using scripts)
 
Сверху