[AI CC-CC2021] Где в документации описана команда executeMenuCommand()?

seregasss435

Участник
Сообщения
142
Реакции
9
вот по ссылке все и написано

Бьюсь головой в перевод:

However, they also gave the ability to load and remove actions from .aia action files. Your .aia file just needs to be somewhere and app.loadAction() can read it right into the Actions panel. Same with app.unloadAction(setName, actionName) - where (thanks to qwertyfly) using (setName, "") an empty string argument for the action name will remove the entire set. And when you try to remove an action that does not exist, well, it throws an error - which is how you can check for making absolutely sure that an action set is completely removed.

И не могу понять в полной мере это что с помощью команды app.loadAction() можно загрузить с диска на панель действия экшен а потом необходимо его удалять. Если так то какой синтаксис, какой код должен быть? Разъясните пожалуйста
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
app.loadAction(файл.aia)
app.doScript(имя экшена, имя сета);
app.unloadAction(имя сета,"");
 
  • Спасибо
Реакции: seregasss435

seregasss435

Участник
Сообщения
142
Реакции
9
Я код малек подправил:
Код:
app.loadAction('trans.aia');
app.doScript('trans.aia', 'Transform_for_script');
app.unloadAction('Transform_for_script','');

Сам экшен поместил:
C:\Program Files\Adobe\Adobe Illustrator CC 2019\Presets\ru_RU\Действия


И мне выдает ошибку:
trouble_action.JPG
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
там объект типа File должен быть

File("/путь/к/экшенсет.aia")
 
  • Спасибо
Реакции: seregasss435

seregasss435

Участник
Сообщения
142
Реакции
9

seregasss435

Участник
Сообщения
142
Реакции
9
Я уже догадался но все ровно ошибки лепит - буду продолжать его бить , может из-за кирилици вообщем буду пробовать
 

_MBK_

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

seregasss435

Участник
Сообщения
142
Реакции
9
В общем получилось мне прикрутить action с наружи к скрипту, но вот беда у моего скрипта задача увеличить монтажную область с 1000*1000 px на 6000*6000 px что в принципе я делаю с помощью кода по увеличению координат, вторая ключевая задача теперь увеличить в том же маштабировании и объекты которые находяться на этой же монтажной области так чтобы они трансформировались как група (Выделение-Трансформация- Маштабирование а не как Трансформировать каждый) но не групироровались - операцию записать конечно просто но на выходе получаеться скрипт с кодом и операциями и когда я вызываю пакетную обработку используя экшен для запуска скрипта а скрипт исполняет код по увеличению артборда и вызывает другой экшен (что внешний экшен подгружаеться что тот который есть в панели экшенов)который увеличивает объекты, то Иллюстратор подвисает . И это увеличение должно быть к батчу файлов ( порядком 100 епс). Если запускать отдельно пакетную обработку скриптом и экшеном для нужных файлов то я получаю желаемый результат - но 21 век на улице и хочеться не производить пакетную обработку в два этапа. Количество объектов на монтажной области может быть разное от 1 и более. Конечно идеальным будет применение единого кода. Или одного экшена, но на сколько я понял экшены на изменения артбоарда не пишуться ПОДСКАЖИТЕ ГУРУ КАК ВЫЙТИ ИЗ ЭТОЙ СИТУАЦИИ.
 

romaya

Топикстартер
10 лет на форуме
Сообщения
317
Реакции
40
Ну как вариант, попробовать четко сформулировать задачу, выкинуть весь код и попробовать написать его заново, но уже без использования Actions и executeMenuCommand(), если это возможно.
:)
Без подгружения и вызова экшенов, а также команд меню, чисто теоретически, тормозов должно быть меньше.
 
Последнее редактирование:
  • Спасибо
Реакции: seregasss435

seregasss435

Участник
Сообщения
142
Реакции
9
Задача следуючая :
- нужен скрипт для послующего применения в пакетной обработке
- необходимо увеличить монтажную область и все объекты (как группу но без объединения в групу ) на ней или объект пропорционально на 600 % . Для одного объекта это решаемо но если их больше , то что делать не знаю.

Код для монтажных областей:
Код:
var margin=2500;
var art = activeDocument.artboards[0].artboardRect;
activeDocument.artboards[0].artboardRect=[art[0]-margin,art[1]+margin,art[2]+margin,art[3]-margin];
 

romaya

Топикстартер
10 лет на форуме
Сообщения
317
Реакции
40
Можно сгруппировать объекты на монтажной области, увеличить (можно и action, наверное использовать), а затем разгруппировать. В общем, пробовать надо разные варианты. Какой прокатит с точки зрения производительности, тот и использовать.
 
  • Спасибо
Реакции: seregasss435

seregasss435

Участник
Сообщения
142
Реакции
9
Можно сгруппировать объекты на монтажной области, увеличить (можно и action, наверное использовать), а затем разгруппировать. В общем, пробовать надо разные варианты. Какой прокатит с точки зрения производительности, тот и использовать.
Вы знаете как написать экшен по изменению размера артбоарда, если да то как?
Я бы выделил бы все объекты на монтажной области.
А потом к этому объекту применил бы resize - только кода вот не знаю. Подскажите пожалуйста если знаете.
 

romaya

Топикстартер
10 лет на форуме
Сообщения
317
Реакции
40
Шерстите этот форум (тема изменения размера артбоарда поднималась здесь не раз) и курите доки (про resize можно там узнать)!
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 187
Реакции
10 844
Так у вас же уже есть код изменения артборда, вы его только что приводили.
А какая проблема экшном выделить обьекты на текущем артборде и отмасштабировать их без группировки?
 

_MBK_

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

_MBK_

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

seregasss435

Участник
Сообщения
142
Реакции
9
Так у вас же уже есть код изменения артборда, вы его только что приводили.
А какая проблема экшном выделить обьекты на текущем артборде и отмасштабировать их без группировки?
Да код есть на артборд