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

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

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

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

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

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

Не по теме:
обалдеть, классно! что-то мне кажется, что через .jsx такого не сделаешь ни в панельках никак
Я видел в одной из тем упоминание о том, что в расширениях есть событие изменения выделения - такое поможет сделать аналогичный функционал.
 
  • Спасибо
Реакции: dumbm1
Кстати, вы можете показать свой старый код, может кто вам и поможет его переделать под новый софт.
Выложить могу, но только файлом. Помочь мне можно только ответами на вопросы. Там только в основном скрипте под 4000 строк плюс подключаемых библиотек 6 файлов (с какого-то момента стало сложно ориентироваться в столь объёмном коде, разделил на части). Релиз самособирается в единый файл, в нём под 9000 строк. Ну может кто-то и найдёт для себя что-то полезное в смысле готовых решений.
 
Фигасе. Там иллюстратор в иллюстраторе? =))) А в кратце можно, что делает этот чудо-скрипт? Зачем он такой большой? (Мне, конечно, такое не осилить, я на сотой строке заскучаю и усну)
 
Фигасе. Там иллюстратор в иллюстраторе? =))) А в кратце можно, что делает этот чудо-скрипт? Зачем он такой большой? (Мне, конечно, такое не осилить, я на сотой строке заскучаю и усну)
Вкратце:
1654981776513.png

1654982225919.png
 
красивое и непонятное =)
Спрошу на всяк случай, для тех, кто с утра будет смотреть эту тему: если отключить антивирус, скрипт-то работает? И может, проще, всё-таки настроить dr. web, чтобы он не блочил ваш скрипт, чем переписывать его на js?
 
  • Спасибо
Реакции: ~RA~
Если бы я управлял антивирусом, я бы, наверное, нашёл выход. Он прямо сообщает, что заблокировано подозрительное поведение. Подозрительное поведение - это динамическое создание окна hta. Ну а с админом с каждым днём надежды всё меньше.
красивое и непонятное =)
Ну красота - явно не моя сильная сторона, я препресс-антидизайнер.
 
Последнее редактирование:
Ну, понятно, что hta, блокируется dr.web, раньше авторан всякий делали с помощью hta, а значит, и вирусню можно было запускать, но сейчас, в 2022 году? жесть. Сочувствую по поводу админа. В последнее время админы чё-то тупенькие какие-то попадаются, ненастоящие
 
Это был скрипт, который запускается из системы, а не из Иллюстратора. Висит в автозагрузке и каждую секунду проверяет, не может ли подключиться к объекту Иллюстратора. Смог - создал окно. Продолжает крутиться в цикле, анализирует массив выделения. И не вешает. Думаю, что именно потому, что из системы. Получается отдельный процесс WScript.
Вообще, начало его разработки уже не очень хорошо помню, это 2016 год.
 
Последнее редактирование:
Жесть какая, а как оно на производительности иллюстратора сказывалось? 🙀
 
По ощущениям особо не сказывалось. Но были моменты, которых надо было избегать. Наблюдал интересные эффекты, например, при ручном масштабировании нескольких объектов в списке возникал ещё один виртуальный объект, соответствующий по размерам и координатам масштабируемым. По завершении масштабирования исчезал. Попытки читать размеры и координаты во время этого действия приводили к прекращению отрисовывания вообще, что лечилось только перезапуском Иллюстратора.
Перебор объектов в CS5 работал быстро, в CC - очень медленно. Для повышения скорости надо во время процесса или вызвать контекстное меню в Иллюстраторе, или просто меню, или какое-нибудь окошко: Aboud, например.
 
0.1.15 - последняя стабильная версия.
0.1.27 - последняя бета. В ней немного глючит Transform и не до конца решена автоматизация ускорения работы.
При закрытом Иллюстраторе закрыть скрипт можно только убиванием соответствующего процесса WScript, при открытом Иллюстраторе - закрытием окна скрипта.
Иногда возникают критические ошибки, которые лечатся только перезапуском скрипта. Но по статистике это редко на большой массе файлов.
Запускать из любого места, но не из Иллюстратора.
Скрипт создаёт папку в профиле ...\AppData\Roaming\FY73\AI Helper
Использовать в повседневной работе только на свой страх и риск.
 

Вложения

Вы уж действительно какой то чудовищно заднепроходный способ выбрали, лично я б для реализации данной задачи до версии CS6 выбрал бы скриптографер
Но сейчас, конечно, увы и ах :(
 
Я на тот момент что знал, то и выбрал :)
Писал исключительно для себя.