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

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

SAS

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

Был бы признателен тому, кто напишет маленький скриптец который просто у выделенных объектов округляет координаты 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
Реакции
30
Ответ: Скрипт округления координат

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

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

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

Mic256

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

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

AirGraph

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

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

AirGraph.
 

Fog_patch

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

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

AirGraph

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

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

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

AirGraph.
 

Вложения

  • RoundCoordinate.jsx.zip
    642 байт · Просм.: 424

Fog_patch

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

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

Korino

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

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

Вложения

  • PositionRound.rar
    450 байт · Просм.: 413

Fog_patch

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

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

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

AirGraph

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

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

AirGraph.
 

Korino

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

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

Fog_patch

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

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

SAS

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

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

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

SAS

Топикстартер
15 лет на форуме
Сообщения
685
Реакции
30
Столкнулся с проблемой со скриптом от Korino
Он хорошо работает на СS6, но координаты выглядят так: 370,001 то есть везде присутствует одна тысячная. Было бы круто исправить.
 

_MBK_

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

SAS

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

_MBK_

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

SAS

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

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Тогда исправить это
Код:
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;
}
 
  • Спасибо
Реакции: Valentin и SAS
Статус
Закрыто для дальнейших ответов.