[AI CS4-CS6] Выравнивание артбордов

DrEgor

Участник
Топикстартер
Сообщения
747
Реакции
68
Добрый день.
Подскажите пож-та, наверняка тема проскакивала уже, но что-то я найти не могу :(
Есть ли скрипт под иллюстратор который может поровнять координаты артбордов в иллюстраторе до ближайшего целого значения? :)
Сталкиваюсь с макетами, где в одном файле куча артбордов разного размера (чаще всего в px) хаотично разбросанных по всей площади рабочей области.
Хорошо бы как то подровнять, дабы при экспорте не вылезали белые края.




p.s. я знаю, что они никому не мешают, но ...

спасибо
 

Вложения

  • 1593001953335.png
    1593001953335.png
    10.4 КБ · Просм.: 161

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Чего то вы весьма специфичного хотите.
Ближайшего целого ЧЕГО? Поинтов?
Тогда белые края не будут вылазить - это вы откуда решили?
 

DrEgor

Участник
Топикстартер
Сообщения
747
Реакции
68
Чего то вы весьма специфичного хотите.
Ближайшего целого ЧЕГО? Поинтов?
поинтах/пикселях... в текущих единицах измерения

Тогда белые края не будут вылазить - это вы откуда решили?

вот ежели верхняя левая координата - целое число, то белого края (при черном фоне) обычно не вылазит...
во всяком случае у меня :)
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
С пенька посреди леса как то так
var doc=app.activeDocument;
for ( var j=0; j<doc.artboards.length)
for ( var i=0; i<4; i++) doc.artboatd[ j ].artboardrect[ i ]=Math.round(doc.artboatd[ j ].artboardrect[ i ]);
 
  • Спасибо
Реакции: Slx1

Gadalka

R.I.P.
Сообщения
2 530
Реакции
868

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835

DrEgor

Участник
Топикстартер
Сообщения
747
Реакции
68
С пенька посреди леса как то так
var doc=app.activeDocument;
for ( var j=0; j<doc.artboards.length)
for ( var i=0; i<4; i++) doc.artboatd[ j ].artboardrect[ i ]=Math.round(doc.artboatd[ j ].artboardrect[ i ]);
спасибо, но это, я так понял, только идея... а так как для иллюстратора я скрипты никогда не делал - буду ковырять на досуге
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
я так понял, только идея
Что мешает попробовать?
Я кстати действительно не уверен, что иллюстратор просто так возьмет и даст artboardrect по одному элементу менять, пробовать надо. Но это мелкие тонкости реализации
 
  • Спасибо
Реакции: Gad

DrEgor

Участник
Топикстартер
Сообщения
747
Реакции
68
Что мешает попробовать?
Я кстати действительно не уверен, что иллюстратор просто так возьмет и даст artboardrect по одному элементу менять, пробовать надо. Но это мелкие тонкости реализации
попробую когда посвободнее буду. то, что вы написали "как есть" не работает :)
а почему - нужно курить мануал
p.s. как вариант - пока буду руками ровнять первый, а по нему все остальные как было предложено выше
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835

Gad

Сообщения
2 971
Реакции
1 405
Я кстати действительно не уверен, что иллюстратор просто так возьмет и даст artboardrect по одному элементу менять
Ну так и есть похоже :)
Код:
var doc=app.activeDocument;
for ( var j=0; j<doc.artboards.length; j++){
var k = new Array(4);  
for ( var i=0; i<4; i++){
k[i] = Math.round(doc.artboards[j].artboardRect[i])
};
doc.artboards[j].artboardRect = k
};
Вот так получилось. Только это в пунктах естественно :)
 
  • Спасибо
Реакции: DrEgor

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835

DrEgor

Участник
Топикстартер
Сообщения
747
Реакции
68
Ну так и есть похоже :)
Код:
var doc=app.activeDocument;
for ( var j=0; j<doc.artboards.length; j++){
var k = new Array(4); 
for ( var i=0; i<4; i++){
k[i] = Math.round(doc.artboards[j].artboardRect[i])
};
doc.artboards[j].artboardRect = k
};
Вот так получилось. Только это в пунктах естественно :)

похоже именно оно, спасибо большое
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
Ну так и есть похоже :)
Код:
var doc=app.activeDocument;
for ( var j=0; j<doc.artboards.length; j++){
var k = new Array(4);  
for ( var i=0; i<4; i++){
k[i] = Math.round(doc.artboards[j].artboardRect[i])
};
doc.artboards[j].artboardRect = k
};
Вот так получилось. Только это в пунктах естественно :)

А в иллюстраторе все в пунктах. И пиксель равен пункту