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

Андрей1977

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

_MBK_

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

Андрей1977

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

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Я вас не понимаю - вы хотели выравнять из своего скрипта? Я вам скинул пример как это делается. Да, это оказалось внезапно непросто, через вызов создаваемого на лету экшна, харе Кришна!
Не нравится такой способ, считайте геометрические центры объекта и артборда и перемещайте. Других методов медицина не знает.
 
  • Спасибо
Реакции: Андрей1977

eugeny

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

Андрей1977

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

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Признаюсь, я посмотрел код и не разобрался. Подскажите, пожалуйста, где можно почитать о том, как через скрипт запускать экшн.
Там же, где и все остальное - в javascript reference. Проще некуда - метод doScript, одним параметром имя экшна, вторым - имя сета, в котором он содержится. В приложенном куске кода продемонстрирован более извращенный подход - экшн создается и загружается, прямо на лету, на время работы скрипта.
 

Oleg Butrin

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

_MBK_

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

Андрей1977

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

_MBK_

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

_MBK_

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

eugeny

15 лет на форуме
Сообщения
855
Реакции
210
Не могу в 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,'');
только учитывайте, что имя экшена сохраняется в файле в своей кодировке. Поэтому при выгрузке его из иллюстратора запомните точно название.
 
  • Спасибо
Реакции: Андрей1977