[AI CC-CC2021] Использование CC Extension Builder for Brackets

fy

Топикстартер
15 лет на форуме
Сообщения
63
Реакции
5
Немного предыстории: несколько лет я потихоньку писал на VBS скрипт под AI для собственных нужд. Для создания окна использовал найденный на одном из форумов способ динамического создания окна. Про возможности оконного интерфейса при написании на JS ничего не знал на момент начала. Начинал, когда работал в одной типографии на CS5, потом продолжил уже в другой под CC. Несколько раз брал заказы по написанию jsx, пользуясь своими наработками, но можно сказать, js я практически не знаю. В один недавний не очень прекрасный момент DrWeb, которым пользуются на моём нанешнем месте работы, начал блокировать создание окна в моём скрипте как "подозрительное поведение". Админ ни шатко ни валко пытается помочь моей беде, но надежды тают. Переговоры с DrWeb тоже зашли в тупик.
Я начал пробовать сделать что-то на jsx с использованием palette, но, кажется (поправьте, если не прав), это невозможно: мой старый скрипт постоянно отслеживал выделенное (бесконечный скрипт и sleep), показывая мне список выделенных объектов и меняя доступность кнопок. Здесь попытка организовать подобный цикл сразу завесила Иллюстратор.
Я начал листать темы этого раздела (с аналоговыми языками у меня всегда было значительно тяжелее, чем с цифровыми, поэтому документация даётся мне мучительно, а примеров в ней мало). Наткнулся на тему Создание расширения (extension) для illustrator, подумал, что надо попробовать копать в эту сторону. Нашёл статью на Хабре С чего начать своё расширение для Photoshop, Illustrator и др. на HTML5, установил Brackets и в него упоминаемый в статье Extension Builder. Быстро увидел упоминаемые в вышеуказанной теме траблы, посмотрел на даты этого билдера на гитхабе (8-9 лет назад) и решил, что в Иллюстраторе тех лет всё должно ещё корректно работать. Потому что для первоначального изучения очень уж не быстро будет каждый раз создавать заново подписанный zxp-файл после каждой пробы. Даже с автоматизацией процесса.
Действительно, в Illustrator CC 2014 панель открылась корректно, кнопка срабатывает. Но. В описании в статье на Хабре была ещё упомянута очень важная и удобная кнопка, позволяющая перезапускать расширение, не перезапуская приложение, в котором оно работает.
1654971002556.png

Кнопка "Rf" в правом верхнем углу. У меня эта кнопка отсутствовала.
В статье также был скриншот файла index.html, где можно найти эту кнопку:
1654971258640.png

Я даже воспроизвёл код, добавляющий кнопку, но разумеется, при нажатии ничего не происходит, потому что обработчик у меня тоже отсутствует.
Собственно, вопрос: может кто-то помочь с этой кнопкой? Или это работает только на маковской платформе? У меня винда.
Второй вопрос. Объктную модель для обычных скриптов я знаю, где смотреть. А где найти информацию по расширениям? Нет ли каких-то ресурсов на русском языке? Примеров?
Третий вопрос. С какой версии началась поддержка расширений?
 
  • Спасибо
Реакции: ~RA~

qsedftghk

фея
15 лет на форуме
Сообщения
2 032
Реакции
1 198
Думается мне, что в иллюстраторе никакая кнопка рефреш ( location.reload () ) толком работать не будет, это скорее для фотошопа. Хотя я так давно уже не в теме, что может и не прав.
А вообще вот с 13 сообщения и далее
Инфа по расширениям и примеры.
Мне кажется расширения появились с первой СС-версии adobe.
ЗЫ. В иллюстраторе можно скриптом создавать диалоговые окна типа palette. Это, конечно, не раширение, но таким макаром можно создавать "плавающие панельки", которые всё время висят и ждут каких-то действий
например у меня вот такая заколбашена для собственных нужд. Работает во всех версиях начиная с CS3
1654975335907.png
 
Последнее редактирование:
  • Спасибо
Реакции: fy и dumbm1

dumbm1

10 лет на форуме
Сообщения
421
Реакции
196
мой старый скрипт постоянно отслеживал выделенное (бесконечный скрипт и sleep), показывая мне список выделенных объектов и меняя доступность кнопок.

Не по теме:
обалдеть, классно! что-то мне кажется, что через .jsx такого не сделаешь ни в панельках никак
 

qsedftghk

фея
15 лет на форуме
Сообщения
2 032
Реакции
1 198

Не по теме:
И, я бы стёр к чёрту др. веб и аналоги, ибо это как в недавном ахтунге маска - толку ноль.

Кстати, вы можете показать свой старый код, может кто вам и поможет его переделать под новый софт.
 
Последнее редактирование:

fy

Топикстартер
15 лет на форуме
Сообщения
63
Реакции
5

Не по теме:
обалдеть, классно! что-то мне кажется, что через .jsx такого не сделаешь ни в панельках никак
Я видел в одной из тем упоминание о том, что в расширениях есть событие изменения выделения - такое поможет сделать аналогичный функционал.
 
  • Спасибо
Реакции: dumbm1

fy

Топикстартер
15 лет на форуме
Сообщения
63
Реакции
5
Кстати, вы можете показать свой старый код, может кто вам и поможет его переделать под новый софт.
Выложить могу, но только файлом. Помочь мне можно только ответами на вопросы. Там только в основном скрипте под 4000 строк плюс подключаемых библиотек 6 файлов (с какого-то момента стало сложно ориентироваться в столь объёмном коде, разделил на части). Релиз самособирается в единый файл, в нём под 9000 строк. Ну может кто-то и найдёт для себя что-то полезное в смысле готовых решений.
 

qsedftghk

фея
15 лет на форуме
Сообщения
2 032
Реакции
1 198
Фигасе. Там иллюстратор в иллюстраторе? =))) А в кратце можно, что делает этот чудо-скрипт? Зачем он такой большой? (Мне, конечно, такое не осилить, я на сотой строке заскучаю и усну)
 

fy

Топикстартер
15 лет на форуме
Сообщения
63
Реакции
5
Фигасе. Там иллюстратор в иллюстраторе? =))) А в кратце можно, что делает этот чудо-скрипт? Зачем он такой большой? (Мне, конечно, такое не осилить, я на сотой строке заскучаю и усну)
Вкратце:
1654981776513.png

1654982225919.png
 

qsedftghk

фея
15 лет на форуме
Сообщения
2 032
Реакции
1 198
красивое и непонятное =)
Спрошу на всяк случай, для тех, кто с утра будет смотреть эту тему: если отключить антивирус, скрипт-то работает? И может, проще, всё-таки настроить dr. web, чтобы он не блочил ваш скрипт, чем переписывать его на js?
 
  • Спасибо
Реакции: ~RA~

fy

Топикстартер
15 лет на форуме
Сообщения
63
Реакции
5
Если бы я управлял антивирусом, я бы, наверное, нашёл выход. Он прямо сообщает, что заблокировано подозрительное поведение. Подозрительное поведение - это динамическое создание окна hta. Ну а с админом с каждым днём надежды всё меньше.
красивое и непонятное =)
Ну красота - явно не моя сильная сторона, я препресс-антидизайнер.
 
Последнее редактирование:

qsedftghk

фея
15 лет на форуме
Сообщения
2 032
Реакции
1 198
Ну, понятно, что hta, блокируется dr.web, раньше авторан всякий делали с помощью hta, а значит, и вирусню можно было запускать, но сейчас, в 2022 году? жесть. Сочувствую по поводу админа. В последнее время админы чё-то тупенькие какие-то попадаются, ненастоящие
 

_MBK_

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

fy

Топикстартер
15 лет на форуме
Сообщения
63
Реакции
5
Это был скрипт, который запускается из системы, а не из Иллюстратора. Висит в автозагрузке и каждую секунду проверяет, не может ли подключиться к объекту Иллюстратора. Смог - создал окно. Продолжает крутиться в цикле, анализирует массив выделения. И не вешает. Думаю, что именно потому, что из системы. Получается отдельный процесс WScript.
Вообще, начало его разработки уже не очень хорошо помню, это 2016 год.
 
Последнее редактирование:

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 195
Реакции
10 846
Жесть какая, а как оно на производительности иллюстратора сказывалось? 🙀
 

fy

Топикстартер
15 лет на форуме
Сообщения
63
Реакции
5
По ощущениям особо не сказывалось. Но были моменты, которых надо было избегать. Наблюдал интересные эффекты, например, при ручном масштабировании нескольких объектов в списке возникал ещё один виртуальный объект, соответствующий по размерам и координатам масштабируемым. По завершении масштабирования исчезал. Попытки читать размеры и координаты во время этого действия приводили к прекращению отрисовывания вообще, что лечилось только перезапуском Иллюстратора.
Перебор объектов в CS5 работал быстро, в CC - очень медленно. Для повышения скорости надо во время процесса или вызвать контекстное меню в Иллюстраторе, или просто меню, или какое-нибудь окошко: Aboud, например.
 

fy

Топикстартер
15 лет на форуме
Сообщения
63
Реакции
5
0.1.15 - последняя стабильная версия.
0.1.27 - последняя бета. В ней немного глючит Transform и не до конца решена автоматизация ускорения работы.
При закрытом Иллюстраторе закрыть скрипт можно только убиванием соответствующего процесса WScript, при открытом Иллюстраторе - закрытием окна скрипта.
Иногда возникают критические ошибки, которые лечатся только перезапуском скрипта. Но по статистике это редко на большой массе файлов.
Запускать из любого места, но не из Иллюстратора.
Скрипт создаёт папку в профиле ...\AppData\Roaming\FY73\AI Helper
Использовать в повседневной работе только на свой страх и риск.
 

Вложения

  • AI Helper 0.1.15.zip
    60.8 КБ · Просм.: 127
  • AI Helper 0.1.27.zip
    71.2 КБ · Просм.: 124

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 195
Реакции
10 846
Вы уж действительно какой то чудовищно заднепроходный способ выбрали, лично я б для реализации данной задачи до версии CS6 выбрал бы скриптографер
Но сейчас, конечно, увы и ах :(
 

fy

Топикстартер
15 лет на форуме
Сообщения
63
Реакции
5
Я на тот момент что знал, то и выбрал :)
Писал исключительно для себя.