Скрипт округления координат

Статус
Закрыто для дальнейших ответов.

SAS

Топикстартер
15 лет на форуме
Сообщения
685
Оценка реакций
28
Добрый день!
В работе очень часто приходиться быстро расставлять объекты на глаз, а потом уже выставлять их ровно по координатам.

Был бы признателен тому, кто напишет маленький скриптец который просто у выделенных объектов округляет координаты X и Y.

2.23 → 2.00
3.99 → 3.00
45.01 → 45.00

Работа ведется по актуальным мерам. То есть если в документе мм то в мм, если px —*соответственно px.

За ноль объекта берется левый верхний угол. Если ничего не выделено, то скрипт не выполняет ничего.

Группы учитываются как один объект.
Обещаю освещение в личном блоге и мою признательность.

Спасибо.
 

AirGraph

Участник
Сообщения
244
Оценка реакций
21
Ответ: Скрипт округления координат

1. Какой Illustrator?
2. Что делает скрипт, если выделен Guide (сам по себе и/или в том числе)?
3. Что делает скрипт, если выделен NodePoint (сам по себе и/или в том числе)?
4. И т.д. и т.п.

Короче, сформулируйте ТЗ, а там будет видно. Пока только ясно, что ничего не ясно... ;-)

AirGraph.
 

SAS

Топикстартер
15 лет на форуме
Сообщения
685
Оценка реакций
28
Ответ: Скрипт округления координат

1. CS4
2. Ничего не делает. Гайды не двигать.
3. Тоже ничего.

Я не знаю есть ли там в скриптинге понятие разницы выделения, что-то Selection Tool или Direct Selection Tool. Но в общем мне нужно только первое.

Еще раз спасибо за отклик!
 

Mic256

15 лет на форуме
Сообщения
1 624
Оценка реакций
562
Ответ: Скрипт округления координат

А если задать в документе миллиметровую сетку и привязку объектов к оной - "на глаз" должно получаться гораздо точнее :)
Без скриптов 'opa!)'
 

AirGraph

Участник
Сообщения
244
Оценка реакций
21
Ответ: Скрипт округления координат

К сожалению у меня нет CS4, так что дальнейшие вопросы отпадают.

AirGraph.
 

Fog_patch

12 лет на форуме
Сообщения
3 163
Оценка реакций
996
Ответ: Скрипт округления координат

Судя по задаче, скрипт для cs2-3 заработает под cs4 без вопросов. Пишите AirGraph. :y)
 

AirGraph

Участник
Сообщения
244
Оценка реакций
21
Ответ: Скрипт округления координат

Вот вариант на попробовать. Ничего не проверяется, все что выделено сдвигается в круглые координаты. У меня в CS3 с одним прямоуольником работает... ;-))))

Пишите замечания и предложения.

AirGraph.
 

Вложения

Fog_patch

12 лет на форуме
Сообщения
3 163
Оценка реакций
996
Ответ: Скрипт округления координат

В cs4 работает без проблем.
 

Korino

Участник
Сообщения
18
Оценка реакций
0
Ответ: Скрипт округления координат

Добрый вечер!
Пытался тоже решить Вашу задачу и учитывая, что скрипт уже написан, выкладываю его. Проверите на работоспособность.
Группированные объекты позиционируются как один объект. Да, коеффициенты не все, просто не было под рукой.
У меня CS4.
 

Вложения

Fog_patch

12 лет на форуме
Сообщения
3 163
Оценка реакций
996
Ответ: Скрипт округления координат

О, уже есть выбор. :)

Насколько я понимаю, скрипт от AirGraph точнее соответствует условиям тех.задания, а именно 3.99 → 3.00 (округление без изменения целой части).
 

AirGraph

Участник
Сообщения
244
Оценка реакций
21
Ответ: Скрипт округления координат

Ага, забавно, народ уже и скриптов понаписал и потестил их, а топикстартер как-то про все это дело как-бы призабыл... ;-)))))

AirGraph.
 

Korino

Участник
Сообщения
18
Оценка реакций
0
Ответ: Скрипт округления координат

Fog_patch. Это не проблема, меняем Math.round() на Math.floor() и будет браться только целая часть числа.
 

Fog_patch

12 лет на форуме
Сообщения
3 163
Оценка реакций
996
Ответ: Скрипт округления координат

Я понимаю что не проблема. Скрипты выложены, я сравнил.
 

SAS

Топикстартер
15 лет на форуме
Сообщения
685
Оценка реакций
28
Ответ: Скрипт округления координат

Почему-то новые сообщения не приходили на почту.

Большое спасибо всем кто откликнулся!
Очень здорово все работает.
 

SAS

Топикстартер
15 лет на форуме
Сообщения
685
Оценка реакций
28
Столкнулся с проблемой со скриптом от [SIZE=13px][FONT=Trebuchet MS]Korino[/FONT]
Он хорошо работает на СS6, но координаты выглядят так: 370,001 то есть везде присутствует одна тысячная. Было бы круто исправить.
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
26 494
Оценка реакций
8 831
Как такое может быть? Даже для поинтов???
 

SAS

Топикстартер
15 лет на форуме
Сообщения
685
Оценка реакций
28
Сам не знаю...
Но проблема исчерпалась переносом всего в новый документ. Там скрипт сработал как надо.
----
А вот тогда попутный вопрос. Можно ли сделать, еще скрипт, который округлял бы размеры выделенных объектов исключая текст.
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
26 494
Оценка реакций
8 831
Разве что если текст ни с чем не сгруппирован.
 

SAS

Топикстартер
15 лет на форуме
Сообщения
685
Оценка реакций
28
Да, так подходит.
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
26 494
Оценка реакций
8 831
Тогда исправить это
Код:
art.position = Array(Math.round(art.position[0]/koeff )*koeff, Math.round(art.position[1]/koeff )*koeff);
art.selected = true;
art = null;
на
Код:
if (art.typename != "TextFrame" )
{
art.position = Array(Math.round(art.position[0]/koeff )*koeff, Math.round(art.position[1]/koeff )*koeff);
art.selected = true;
art = null;
}
 
Статус
Закрыто для дальнейших ответов.