[ID CS4-CS6] Скрипт для точного размещения выделенных объектов (фреймов) на странице по координатам

Kostinello

Участник
Топикстартер
Сообщения
2
Реакции
0
Всем здравствуйте, подскажите пожалуйста.
Нужен скрипт, чтобы он размещал выделенный фрейм\объект на активной странице, по точным координатам. При этом чтобы сам фрейм или объект не менялся по размеру.
Например, нужно разместить текстовый фрейм в точку на странице x - 18 мм. y - 33, 301 мм. За точку отсчета берется верхний левый угол страницы и соответственно точка фрейма тоже берется левая верхняя.
Может что-то похожее есть?

Заранее спасибо
 
Возможно. Начну сначала. Есть материалы от заказчика, готовые, которые они присылают, газетные статьи. Обычно это полоса с 4-5 небольшими материалами на полосе, иногда бывает целая полоса. Которая помещается в многостраничный ИД файл. Количество колонок одинаковое - 6 колонник. Но размер полосы разные и колонки тоже разного размера. Там хоть и небольшая разница, но она есть. Разница с колонками в 0.5 мм а полосы различаются по ширине в 3 мм.
Можно вручную ужать всю полосу по ширине, но они тогда не встают ровно в колонки. Все выравниваю вручную в итоге. В текстовых колонках ширину задаю в опциях через ctrl+b. А сами фреймы приходится двигать вручную или в координатах. Причем фреймы есть и на 2 колонки и на 3 колонки.
Задумка такая: сделать несколько скриптов, которые будут выделенные фреймы выстраивать по определённым координатам. Но чтобы сам фрейм не менялся по размеру. Выделил, применил, фрейм подвинулся и встал в 1 или 2 или 3 колонку и Тд
 
Если без всяких проверок и наворотов, то выделенный объект* переместить на полосе в заданные координаты можно так:

JavaScript:
var x = 18;
var y = 33.301;

app.activeDocument.selection[0].move([x, y]);

* объект - фрейм или группа, но не несколько выделенных сущностей
 
Последнее редактирование:
Задумка такая: сделать несколько скриптов, которые будут выделенные фреймы выстраивать по определённым координатам. Но чтобы сам фрейм не менялся по размеру. Выделил, применил, фрейм подвинулся и встал в 1 или 2 или 3 колонку и Тд
Опять же без всяких доп. проверок (и оптимизаций) такая вот палетка.
Каждой кнопке соответствуют координаты. Выделяем фрейм, тыкаем на кнопку.

JavaScript:
#targetengine "session";

/*-----------------------  тут задать координаты  ------------------------*/
var xy1 = [10, 10];
var xy2 = [74.744, 10];
var xy3 = [139.489, 10];
var xy4 = [74.744, 80];
// var XYn= [Xn, Yn];

// =================
var b = createWindow();
b.show();

function createWindow () {
    var w = new Window ('palette', 'Move Frame');
    w.margins = 2;
    var g = w.add('group', undefined, '');
    g.orientation = 'row';
    g.spacing = 2;
// кнопки для координат
    var xy1_but = g.add('button', undefined, '1'); // "1" - название кнопки
    var xy2_but= g.add('button', undefined, '2');
    var xy3_but = g.add('button', undefined, '3');
    var xy4_but = g.add('button', undefined, '4');
    // var xyN_but = g.add('button', undefined, 'N');

xy1_but.onClick = function (){
    app.activeDocument.selection[0].move(xy1); // действие кнопки
    }
xy2_but.onClick = function (){
    app.activeDocument.selection[0].move(xy2);
    }
xy3_but.onClick = function (){
    app.activeDocument.selection[0].move(xy3);
    }
xy4_but.onClick = function (){
    app.activeDocument.selection[0].move(xy4);
    }
// xyN_but.onClick = function (){
//    app.activeDocument.selection[0].move(XYn);
//    }

return w;
}

Тестировала в ID CS6, но думаю и в других версиях будет работать.
 
Последнее редактирование: