[AI CC-CC2021] Слет системы координат после вызова open - баг или фича?

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

_MBK_

Пикирующий бомбардировщик
Топикстартер
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Столкнулся со странной и неприятной особенностью иллюстратора CC
Есть открытый документ, в нем набор неких объектов. Открываем другой документ:
Код:
var ad=app.activeDocument;
alert(ad.pageItems[0].position);
var sk=open(new File(fpath));
alert(sk.pageItems[0].position);
Запускаем и видим, что первый алерт выдает правильные координаты, а второй - нет!
Все до единого объекта из файла sk имеют координаты, сдвинутые на одну и ту же величину.
Причем, эта величина меняется в зависимости от непонятных причин.
Можно перед вторым алертом активировать открытый документ - значение иногда меняется, но правильным не становится.
В CS6 все нормально - баг повторяем только в CC
Может, я снова что-то делаю вопреки заветам Будды и Ганеши?
sm322.gif
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
ну установи систему координат явно после открытия файла
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
app.coordinateSystem = CoordinateSystem.ARTBOARDCOORDINATESYSTEM

и потом, я вообще не понял, почему ты сравниваешь координаты объекта их одного файла с координатами объекта из другого файла - с чего им вдруг обязательно быть одинаковыми?

и что есть правильные - ты хочешь, чтоб они совпадали с теми, что в интерфейсе? тогда надо 0,0 в интерфейсе в нижний правый угол перенести. вот только зачем, не понимаю


в общем, в скрипте используется другая координатная четверть
Ruler updates in Illustrator CS5
 
Последнее редактирование:

_MBK_

Пикирующий бомбардировщик
Топикстартер
15 лет на форуме
Сообщения
33 228
Реакции
10 851
и что есть правильные - ты хочешь, чтоб они совпадали с теми, что в интерфейсе? тогда надо 0,0 в интерфейсе в нижний правый угол перенести. вот только зачем, не понимаю
Нет ты не понял.
Они не должны совпадать, просто во втором файле они реально сбиваются с правильных, т.е, скажем, если было два объекта с координатами [100,200] и [150,300] то теперь position возвращает, например, [550,350] и [600,450] - Реальное начало координат сдвинулось на [450,150], причем, только для объектов, что самое характерное, artboardRect и cropBox остались правильными. Все объекты, оставаясь визуально на своих местах, для скрипта какбэ сдвинулись относительно страницы. Причем, баг повторяется стабильно именно в CC, на CS6 все нормально :(
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
залей файлы, я посмотрю.

если было два объекта с координатами [100,200] и [150,300]

последовательность воспроизведения - нарисовал объект, запустил скрипт, посмотрел координаты, сохранил файл, закрыл, открыл снова, запустил скрипт - координаты другие?

а если еще раз после этого скрипт запустить на уже открытом документе - координаты те показывает?
 

_MBK_

Пикирующий бомбардировщик
Топикстартер
15 лет на форуме
Сообщения
33 228
Реакции
10 851
В общем, благодаря этой теме найдено костыльное решение и данной проблемы.
Необходимо просто сохранять все нужные координаты объектов в независимый массив и брать их после активации другого документа уже оттуда, а не из pageItems исходного. Заднепроходно, но вроде, работает. 'dans))'
 
Статус
Закрыто для дальнейших ответов.