[AI CC2023] Скрипт ,,Сгруппировать объекты по одному цвету заливки,,.

  • Автор темы Автор темы ITIT
  • Дата начала Дата начала

ITIT

Топикстартер
15 лет на форуме
Сообщения
516
Реакции
196
Уважаемые господа нужна Ваша помощь понять,где ошибка в скрипте и как её исправить.
Задача сгруппировать несколько десятков объектов по одному цвету заливки.
Select> Same> Fill Color без скрипта трудоёмкая операция, требующая по очередного выделения
каждого цвета отдельно.
Нашёл в интернете скрипт,который делает эту операцию,но по окончании выдает сообщение о ошибке,но задачу выполняет.
Это не сильно большая проблема,беда в том,что после записи скрипта в Action полностью вылетает Adobe Illustrator.
Проблемный скрипт прилагаю.
Всем ответившим заранее спасибо.
 

Вложения

В CS6 скрипт работает безупречно с разными вариантами выделения объектов, не выдавая ошибок. Нужно смотреть, какую ошибку выдает сообщение.
 
  • Спасибо
Реакции: ITIT
Будьте осторожны. Если есть объекты с одинаковой заливкой и разной обводкой, то скрипт эти объекты не только группирует, но и обводку делает одинаковой (и цвет и размер).
 
  • Спасибо
Реакции: ITIT
Если сильно не копать, то так.
Спасибо большое,теперь скрипт работает без проблем если его не проигрывать через Action.
Если вставить в Action,то выдается такое сообщение

Untitled-1.jpg
 
а вы отметьте галочкой Don't Show Again
 
ну вот, отлично

если скрипт что-то делает через вызов экшена, то при запуске из экшена он работать не будет - я такой кейс уже описывал, хотя не уверен что это тот случай, код не смотрел
 
  • Спасибо
Реакции: ITIT
ну вот, отлично

если скрипт что-то делает через вызов экшена, то при запуске из экшена он работать не будет - я такой кейс уже описывал, хотя не уверен что это тот случай, код не смотрел
Он команды меню вызывает, что, в принципе, аналогично
 
  • Спасибо
Реакции: ITIT
Последнее редактирование:
Вот так под Win можно сделать операцию на гландах автогеном запустить любой скрипт с экшеном через экшен '%)'
JavaScript:
#target Illustrator
var run_javascriptFile = "d:\\папка_со_скриптами\\скрипт_с_экшеном.jsx"
var vbsFile = File("~/run_script_action.vbs")
vbsFile.encoding = 'UTF-8';
vbsFile.open('w');
var vbsText = 'Set AiApp = CreateObject("Illustrator.Application")\nAiApp.DoJavaScriptFile "'+ run_javascriptFile + '", null, 1\nAiApp.DoJavaScript "var vbsFile = File(""~/run_script_action.vbs""); vbsFile.remove();", null, 1 '
vbsFile.write(vbsText);
vbsFile.close();
vbsFile.execute();
Прописать путь к скрипту с экшеном, сохранить как jsx в папку со скриптами, и его запускать из экшена...
 
Последнее редактирование:
  • Спасибо
Реакции: ITIT
А, по моему, то самое.
Надо не скрипт из экшна вызывать, а делать из скрипта экшн со вставками скриптов, как то так
нет, не то самое.

на экшен скрипт вешают видимо ради вызова по хоткею или как один из этапов в экшене 'hz' а когда выполняется "родительский" экшен, видимо экшен менеджер не даст запустить еще один
но с вызовом команд меню в таком случае, повторюсь, проблем нет
 
Последнее редактирование:
Вот так под Win можно сделать операцию на гландах автогеном запустить любой скрипт с экшеном через экшен '%)'
JavaScript:
#target Illustrator
var run_javascriptFile = "d:\\папка_со_скриптами\\скрипт_с_экшеном.jsx"
var vbsFile = File("~/run_script_action.vbs")
vbsFile.encoding = 'UTF-8';
vbsFile.open('w');
var vbsText = 'Set AiApp = CreateObject("Illustrator.Application")\nAiApp.DoJavaScriptFile "'+ run_javascriptFile + '", null, 1\nAiApp.DoJavaScript "var vbsFile = File(""~/run_script_action.vbs""); vbsFile.remove();", null, 1 '
vbsFile.write(vbsText);
vbsFile.close();
vbsFile.execute();
Прописать путь к скрипту с экшеном, сохранить как jsx в папку со скриптами, и его запускать из экшена...
Более того - подобным способом можно даже сделать подобие немодального диалога... ;)