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

ITIT

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

Вложения

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

densen

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

lmn1

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

ITIT

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

Untitled-1.jpg
 

Skvoznyak

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

Skvoznyak

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

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

_MBK_

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

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

_MBK_

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

Drawer

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

Drawer

Участник
Сообщения
1 120
Реакции
444
Вот так под 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 495
Реакции
2 172
А, по моему, то самое.
Надо не скрипт из экшна вызывать, а делать из скрипта экшн со вставками скриптов, как то так
нет, не то самое.

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

Drawer

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

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
32 587
Реакции
10 666
Вот так под 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 120
Реакции
444