[Python, API, CAD/CAM] Создание удобного и наглядного keymap/hotkey для PyCharm или любой другой программы

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
30-Мар-2021 01:31

ПредисловиеСовременные программы имеют богатый функционал. Беда в том, что на хорошее овладение этим богатым функционалом уходят килограммы времени. Некоторые приемы и лайфхаки могут здорово сократить эти самые затраты времени на изучение практически любой программы.Эта история началась с покорения CAD-системы 3D-моделирования NX от компании Siemens. Большая, навороченная, с множеством возможностей, модулей, команд, кнопок и менюшек программа, в которой на данный момент трудится добрая половина инженеров-конструкторов-авиастроителей Руси-матушки. Конечно, чтобы не шокировать обилием значков и команд, в программе есть так называемые "роли". Например в роли для начинающего показано ровно столько команд и менюшек, чтобы смоделировать что-нибудь квадратное/угловатое/простое. Потом, по мере прокачки навыков в этой программе, начинаешь открывать для себя новые кнопки, новые возможности и т.д. И для таких случаев, есть "роль" пожирнее и повкуснее. Однако, в этом вашем авиастроении детали настолько замученные и закрученные, что в конце концов начинает не хватать и "Расширенной роли с полными меню", и тут начинается... весь экран программы в кнопках и т.д. и т.п.
Со временем у каждого конструктора складывается характерный для него "стиль" работы в CAD-системе. Наиболее часто используемые кнопки вытаскиваются "поближе", редкие кнопки наоборот пропадают с "инструментальных панелей". И тут, к тебе подходит коллега, просит подойти к его компьютеру и чего-нибудь помочь с какой-нибудь там подсечкой на профиле. А там все команды в других местах, все по другому и не там где у тебя, в голове начинается дикий скрип.А потом подходит другой коллега и третий и пятый. И третий и пятый, и пятьдесят пятый раз в многочисленных выпадающих менюшках поиск нужной команды. ПАМАГИТИ.Hotkey или создание панацеиКритическая масса для создания серьезного решения этой проблемы была набрана быстро). Идея была в том, чтобы настроить горячие клавиши на 99% используемых в повседневной практике команд, и установить их вообще всем, и более никогда мучительно не вспоминать ГДЕ она, нужная кнопка. Идея в том, чтобы создать универсальный интерфейс, максимально удобный и для всех, но не задевающий "инструментальные панели".Пошли первые потуги. Стоит отдать должное, в CAD-системе NX почти на все команды есть иконки. Иконки показывают суть команды. Итак, первый этап это сбор иконок из программы. Если на какую-либо команду нет иконки, ничто не мешает воспользоваться готовыми например с сайта https://www.flaticon.com/. А если иконка есть, то на помощь приходят такие классные программы как: [url=https://getgreenshot.org/ ]скриншотер Greenshot[/url] для вырезания области экрана, и [url= https://www.gimp.org/]графический редактор GIMP[/url] для обрезания иконки уже "поточнее". Т.к. перепечатывание названий over9000 команд дело не самое бодрое и веселое, то крайне полезной может оказаться программа для распознавания текста с выделенной области экрана CaptureToText.Все opensourse.Далее создаем Word-файл, в нем табличку. В одной колонке будут названия команд, в другой иконки, в третьей перевод названия команд на великий и могучий для всяких там (как и автор) слабо понимающих энглиш лангуаге.Так уж сложилось, что все современные программы при невообразимо богатом функционале и пугающем количестве команд, в большинстве своем имеют весьма слабый набор горячих клавиш/hotkey. И даже те комбинации, которые идут "из коробки", доставляют мало удовольствия, потому что требуют обе руки, а иногда и ноги для нажатия. Это связано с тем, что используется идеология "первой буквы" команды. Например, Ctrl+P=Print(печать), Ctrl+O=Open(Открыть). Этот подход в создании горячих клавиш и эффективном взаимодействии с программой весьма и весьма и весьма ограничен количеством букв в алфавите. А количество возможных комбинаций для самой обычной клавиатуры оно же за 4 сотки переваливает.В CAD-приложениях 3D-моделирования так вообще, исключительно-желательно не отрывать правой руки от мышки/трекбола... особенно на чемпионатах по профмастерству в авиастроении. Т.е. для графических редакторов или программ 3D-моделирования ТРЕБУЕТСЯ, чтобы все бинды были так сказать на "левой свободной руке". Самые частые команды ближе всего к клавишам-модификаторам, те же команды что менее популярны- подальше. Собственно, почти готовый рецепт успеха.После того, как великий сбор названий команд и иконок окончен, можно приступить к самому интересному. А именно, можно приступить к перекомпоновке этих команд таким образом, чтобы было удобно до безобразия. Создаем еще один файл word. А в нем создаем могучую таблицу по образу и подобию. Системные сочетания клавиш никуда не денешь, хотя они по своему удобны.
Ну а дальше, начинаем перетаскивать из таблицы со всеми командами/иконками в таблицу нашей клавиатуры в соответствующие ячейки. Из первой таблицы убывает, вторая таблица заполняется. Перекомпоновываем команды согласно принципов удобства нажимания, удобства запоминания, смежности выполняемых действий, общности, в общем, создаем наглядную карту/keymap для программы. СОВЕТ: сразу проверяйте как нажимается та или иная комбинация, потому что есть зоны не самые удобные для нажатия одной рукой, например Ctrl+Alt+Shift+6 требует минимум длинных и гибких пальцев и владения слепым десятипальцевым кунг-фу набора текста).
На скриншоте показан вариант таблицы для PyCharm, т.е. без ряда с модификатором Shift, потому что Shift+буква=БОЛЬШАЯ БУКВА. Однако, такого ограничения нет в графических редакторах. В конце концов, получится первый экспериментальный вариант keymap, который будет много интереснее в обращении нежели огромной длины плохочитаемый список комбинаций. Человеческая голова хорошо запоминает местоположение и плохо списки. Поэтому распечатав keymap на листочке A4 и повесив рядом с монитором, за пару месяцев руки сами потянутся в поисках нужной комбинации. Я гарантирую это. В скриншоте ниже keymap/208 комбинаций на PyCharm. Наработки/исходники
После того как мегатаблица Менделеева с комбинациями готова, начинается самое скучное - забить все комбинации в программу. Потом конечно период озарений и перекомпоновки, допиливания, но это все будут мелкие улучшения.ИтогДля NX такой keymap на 160 комбинаций делал около двух недель и назвал BFR= BigFuc*ingRole, потому что по времени совпало с созданием некоей ракеты от некоей частной космокомпании). Долго потому что в первый раз, все вкривь и вкось, и вообще начал не оттуда, не в той программе, без нужного софта и не так, в общем, поиск он и есть поиск.Зато сейчас у многих конструкторов на ЭМЗ им. В.М. Мясищева такая штука есть и приносит удовольствие от использования каждый день. В скором времени надеюсь поделится с остальными авиаторами. Когда приходят молодые ребята, только только после университета где их "учили" компасу 3де/автосаду/сад системам там всяким, сразу учатся и осваивают NX "на комбинациях" и это оказалось очень даже удобно и продуктивно. Потому что запомнить 160 комбинаций много проще и быстрее, чем запомнить 160 путей по менюшкам до нужной команды (особенно когда подсказка перед глазами на а4 распечатанная висит). И если кому-то, что-то показать, то просто идешь за его рабочий комп и комбинациями хлоп хлоп. Единая универсальная система и всё тут. На PyCharm keymap на 208 комбинаций сделал за пару тройку вечеров. Осваиваю только.ЗаключениеКонечно, хотелось бы, чтобы спустя время, в любой сложной программе появилось окошко с такой вот мегатаблицей команд и иконок, и переназначение комбинаций осуществлялось простым перетаскиванием нужной иконки в нужную ячейку, а не как сейчас: "окно, а в нём список команд длиной с рулон туалетной бумаги". Вот это был бы EpicWin.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_python, #_api, #_cad/cam, #_keymap, #_hotkeys, #_kombinatsii_klavish (комбинации клавиш), #_gorjachie_klavishi (горячие клавиши), #_pycharm, #_nx, #_cad, #_python, #_cad/cam, #_python, #_api, #_cad/cam
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 18:59
Часовой пояс: UTC + 5