[ID CC-CC2021] Скрипт для изменения размера фрейма

Андрей Викторов

Топикстартер
15 лет на форуме
Сообщения
1 071
Реакции
265
Коллеги-скриптомастера, нужна Ваша помощь.
Ума не хватает на написать такой скрипт:
При выделенном фрейме и указанной опорной точке запускаем скрипт.
Скрипт: ставит фрейму атрибут «Auto-Fit», затем пропорционально масштабирует содержимое на N%
(процент может измениться, но тут я уже соображу как скрипт подправить).
Заранее благодарен за рецепт!
 
Последнее редактирование:

Андрей Викторов

Топикстартер
15 лет на форуме
Сообщения
1 071
Реакции
265
а auto-fit обратно отмасштабирует
Если перед масштабированием этот атрибут не поставить,
то размер фрейма измениться, а изображение останется прежним.

Опс! Ничего не понял, что сделал: теперь без AF и содержимое масштабируется'hmmm'
 
Последнее редактирование:

Андрей Викторов

Топикстартер
15 лет на форуме
Сообщения
1 071
Реакции
265
Прошу прощения: разобрался — если изменять размер в процентах,
то и фрейм и изображение меняет размер.
Если явно менять размер, то меняется только фрейм.
 

Oleg Butrin

20 лет на форуме
Сообщения
1 989
Реакции
1 213
JavaScript:
function uniformScale(obj, anchor, scale) {
    var matrix = app.transformationMatrices.add({
        horizontalScaleFactor: scale,
        verticalScaleFactor: scale
    });
    obj.transform(CoordinateSpaces.pasteboardCoordinates, anchor, matrix, undefined );
}

function main (percent) {
    if (app.selection.length != 1) {
        return false;
    }
    var frame = app.selection[0];
    var gfx = frame.allGraphics[0];
    frame.frameFittingOptions.autoFit = true;
    frame.frameFittingOptions.fittingOnEmptyFrame = EmptyFrameFittingOptions.FILL_PROPORTIONALLY;
    uniformScale(gfx, AnchorPoint.topLeftAnchor, (percent / 100));
}

main(110);