- Сообщения
- 6
- Реакции
- 1
Привет. Возникла сложность с определением размеров рабочей области (Workspace) в CS6. Есть у кого-то идеи как узнать размеры?
Я понимаю, что она должна быть 16384 на 16384 на CS6. Но как определить местоположение этой области относительно координатной сетки в текущем файле?
В Creative Cloud сработал следующий трюк:
Но CS6 не крэшится. Может есть какой-то другой способ определить размеры Workspace?
Я понимаю, что она должна быть 16384 на 16384 на CS6. Но как определить местоположение этой области относительно координатной сетки в текущем файле?
В Creative Cloud сработал следующий трюк:
Код:
MaiFuncs.getWorkspaceSize = function(){
var doc = app.activeDocument;
var res = {};
var step = 1000;
//Делаем шаг по тысяче пикселей. До тех пор пока артборд успешно не создастся
res.x_min = this.getWorkspaceCoord(-16000, step, "x");
res.x_max = this.getWorkspaceCoord(16000, -step, "x");;
res.y_min = this.getWorkspaceCoord(-16000, step, "y");;
res.y_max = this.getWorkspaceCoord(16000, -step, "y");;
return res;
}
MaiFuncs.getWorkspaceCoord = function(start, delta, coord) {
//Рассчитываем максимальные координаты артбордов - методом проб и ловли ошибок. К сожалению,
//в разных иллюстраторах разные размеры этих областей и в ЯваСкрипт никак иначе информацию не получить.
var artboards = app.activeDocument.artboards;
var aIndex = artboards.getActiveArtboardIndex();
var repeat = true;
var artboard;
while (repeat) {
try {
repeat = false;
var rect;
if (coord == "x")
rect = [start, 0, start+1, -1];
else
rect = [0 , start, 1, start-1];
artboard = artboards.add(rect);
}
catch (err) {
start = start+delta;
repeat = true;
}
}
artboard.remove();
artboards.setActiveArtboardIndex(aIndex);
return start;
}
Но CS6 не крэшится. Может есть какой-то другой способ определить размеры Workspace?