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

ITIT

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

Вложения

  • Live_Pathinder_Add.zip
    710 байт · Просм.: 146

densen

15 лет на форуме
Сообщения
765
Реакции
656
В CS6 скрипт работает безупречно с разными вариантами выделения объектов, не выдавая ошибок. Нужно смотреть, какую ошибку выдает сообщение.
 
  • Спасибо
Реакции: ITIT

lmn1

15 лет на форуме
Сообщения
539
Реакции
224
Будьте осторожны. Если есть объекты с одинаковой заливкой и разной обводкой, то скрипт эти объекты не только группирует, но и обводку делает одинаковой (и цвет и размер).
 
  • Спасибо
Реакции: ITIT

ITIT

Топикстартер
15 лет на форуме
Сообщения
503
Реакции
194
Если сильно не копать, то так.
Спасибо большое,теперь скрипт работает без проблем если его не проигрывать через Action.
Если вставить в Action,то выдается такое сообщение

Untitled-1.jpg
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
а вы отметьте галочкой Don't Show Again
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
ну вот, отлично

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

_MBK_

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

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

_MBK_

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

Drawer

Участник
Сообщения
1 951
Реакции
875
Последнее редактирование:

Drawer

Участник
Сообщения
1 951
Реакции
875
Вот так под 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

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
А, по моему, то самое.
Надо не скрипт из экшна вызывать, а делать из скрипта экшн со вставками скриптов, как то так
нет, не то самое.

на экшен скрипт вешают видимо ради вызова по хоткею или как один из этапов в экшене 'hz' а когда выполняется "родительский" экшен, видимо экшен менеджер не даст запустить еще один
но с вызовом команд меню в таком случае, повторюсь, проблем нет
 
Последнее редактирование:

Drawer

Участник
Сообщения
1 951
Реакции
875

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 294
Реакции
10 865
Вот так под 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 в папку со скриптами, и его запускать из экшена...
Более того - подобным способом можно даже сделать подобие немодального диалога... ;)
 

Drawer

Участник
Сообщения
1 951
Реакции
875