[AI CC2014] Как выравнять item или groupitem относительно артборда

Андрей1977

Участник
Топикстартер
Сообщения
22
Оценка реакций
0
Как выравнять скриптом item или groupitem относительно артборда по центру?
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
23 285
Оценка реакций
8 090
 

Андрей1977

Участник
Топикстартер
Сообщения
22
Оценка реакций
0
А более простых способов нет? Выравнивание одна из ключевых функций AI. А здесь целый скрипт. А как к нему обратиться через свой скрипт? Заранее спасибо.
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
23 285
Оценка реакций
8 090
Я вас не понимаю - вы хотели выравнять из своего скрипта? Я вам скинул пример как это делается. Да, это оказалось внезапно непросто, через вызов создаваемого на лету экшна, харе Кришна!
Не нравится такой способ, считайте геометрические центры объекта и артборда и перемещайте. Других методов медицина не знает.
 

lipatkin

12 лет на форуме
Сообщения
259
Оценка реакций
53
если не брать экшены, то @_MBK_ вам дело говорит про геометрические центры объекта и артборда.
В AI выравнивание через скрипт геморойнее, чем например, в Индизайне.
Вот здесь можете посмотреть мое решение по выравниванию в Иллюстраторе:
[AI CC2017] - Проблема с выравниванием
 

Андрей1977

Участник
Топикстартер
Сообщения
22
Оценка реакций
0
Я вас не понимаю - вы хотели выравнять из своего скрипта? Я вам скинул пример как это делается. Да, это оказалось внезапно непросто, через вызов создаваемого на лету экшна, харе Кришна!
Не нравится такой способ, считайте геометрические центры объекта и артборда и перемещайте. Других методов медицина не знает.
Признаюсь, я посмотрел код и не разобрался. Подскажите, пожалуйста, где можно почитать о том, как через скрипт запускать экшн.
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
23 285
Оценка реакций
8 090
Признаюсь, я посмотрел код и не разобрался. Подскажите, пожалуйста, где можно почитать о том, как через скрипт запускать экшн.
Там же, где и все остальное - в javascript reference. Проще некуда - метод doScript, одним параметром имя экшна, вторым - имя сета, в котором он содержится. В приложенном куске кода продемонстрирован более извращенный подход - экшн создается и загружается, прямо на лету, на время работы скрипта.
 

Oleg Butrin

15 лет на форуме
Сообщения
1 543
Оценка реакций
833
В приложенном куске кода продемонстрирован более извращенный подход - экшн создается и загружается, прямо на лету, на время работы скрипта.
Это, пожалуй, единственное более-менее прямое решение. Ибо скриптинг Иллюстратора писали сильно альтернативные программисты.
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
23 285
Оценка реакций
8 090
Это, пожалуй, единственное более-менее прямое решение.
Прямое решение - по возможности стараться обходиться средствами объектной модели. Если это невозможно - вызовами пунктов меню. И только если и это не помогает - экшнами. Создание экшна на лету и загрузка его - достаточно шаткое звено в цепи, поэтому, лично я сперва просто загружаю экшн и обращаюсь из скрипта к нему без всех этих акробатических этюдов
 

Андрей1977

Участник
Топикстартер
Сообщения
22
Оценка реакций
0
Там же, где и все остальное - в javascript reference. Проще некуда - метод doScript, одним параметром имя экшна, вторым - имя сета, в котором он содержится. В приложенном куске кода продемонстрирован более извращенный подход - экшн создается и загружается, прямо на лету, на время работы скрипта.
Не могу в javascript reference найти описания метода doScript. Хотел почитать. Подскажите пожалуйста, как вызывать пункт меню через скрипт.
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
23 285
Оценка реакций
8 090
Гм и вправду в референсе нет
 

lipatkin

12 лет на форуме
Сообщения
259
Оценка реакций
53
Не могу в javascript reference найти описания метода doScript. Хотел почитать. Подскажите пожалуйста, как вызывать пункт меню через скрипт.
JavaScript:
var setaction = 'my_set_action';
var nameaction = 'addusedcolors';
var putaction='//GRAFIC/_Work/my_set_action.aia';
var f = File(putaction);
    app.loadAction(f);
    app.doScript(nameaction, setaction);
    app.unloadAction(setaction,'');
только учитывайте, что имя экшена сохраняется в файле в своей кодировке. Поэтому при выгрузке его из иллюстратора запомните точно название.