OrCAD. Allegro PCB Editor. Создание горячих клавиш

Разработчики, которые впервые столкнутся с OrCAD’ом и PCB Editor’ом в частности, удивятся, что нет дефолтных горячих клавиш для поворота компонентов при установке, добавления переходного отверстия при трассировке и т.д. На мой взгляд, это часть философии Cadence, что-то в стиле «Разработчик сам должен настраивать свой рабочий инструмент». Я не буду вдаваться в рассуждения, хорошо это или плохо — я рассмотрю в данной статье, как создавать горячие клавиши для любых действий.

ПРЕДВАРИТЕЛЬНЫЕ НАСТРОЙКИ

Для начала, если вы впервые пользуетесь OrCAD, необходимо включить командную строку, как показано на рисунке ниже.

set_command_window

После того, как в вашем пользовательском интерфейсе появилось это окно, вы можете использовать всю полноту PCB Editor в плане автоматизации задач и настройки среды под себя.

Более подробную информацию о доступных командах командной оболочки можно получить в справочном руководстве Cadence в разделе SPB16.60/Allegro PCB Editor/Allegro PCB and Package Physical Layout Command Reference

В принципе, этого было бы достаточно, но раз мы учимся использовать всю полноту софта, давайте включим очень полезную опцию, набрав в командной строке:

scriptmode +e

Как нам говорит руководство, данная команда предоставляет опции для работы скриптов. Использование параметра e со знаком плюс в данном случае означает, что будет включен эхо-режим — какие бы мы действия не выполняли, команды для этих действий будут отображаться в командной строке. Данная опция полезна, когда вы еще не знакомы с командами и хотите побыстрей навертеть нужных вам горячих клавиш. Теперь вы можете выполнять любые действия и смотреть, какие этим действиям соответствую команды. Отключение этой опции аналогично включению, только знак «+» меняем на «-»

scriptmode -e

ФУНКЦИИ СОЗДАНИЯ АЛИАСОВ И ГОРЯЧИХ КЛАВИШ

Для создания горячих клавиш и алиасов команд, используются две функции — alias и funckey. Их основное различие в том, что alias задает в основном алиасы для команд (т.е их нужно вводить в командную строку и нажимать Enter) и горячие клавиши (состоящие либо из одной не цифро-буквенной клавиши, либо из одной клавиши и модификатора — Shift, Control), в то время как funckey задает только горячие клавиши, которые могут быть как единичными цифро-буквенными клавишами, модификатор+клавиша, несколько клавиш подряд и не требуют нажатия Enter при вводе.

Документация от Cadence так описывает команду alias:

### Использование alias
alias 'user-defined-name' 'command-to-execute'
alias 'fkey' 'command-to-execute'
  • user-defined name — набор символов или аббревиатура, которая назначается как ссылка на выполнение команды. Не может содержать пробелов. Когда вы вводите user-defined name в командную строку, для выполнения команды необходмо нажать Enter;
  • command-to-execute — определяет команду(команды) для которых создается алиас, как для вызова через командную строку, так и через горячую клавишу. При вводе нескольких команд, их необходимо заключить в двойные кавычки (» «) и разделить точкой с зяпятой (;). Если команда одна и она принимает параметры (например, pop bbdrill — добавление переходного отверстия), то заключать ее в кавычки не нужно;
  • fkey — определяет горячую клавишу, назначенную для данной команды (команд). При нажатии горячей клавиши, нажимать Enter не требуется.

Команды и их параметры мы можем узнать из справки, а также консоли с включенным эхо. Для записи горячих клавиш используются следующие правила:

  • — функциональные клавиши (F1, F2 и т.д). Не зависят от раскладки клавиатуры;
  • SFx — Shift+Fx. Не зависят от раскладки клавиатуры;
  • CFx — Ctrl+Fx. Не зависят от раскладки клавиатуры;
  • CSFx — Ctrl+Shift+Fx. Не зависят от раскладки клавиатуры;
  • Left, Right, Up, Down — кнопки-стрелки. Не зависят от раскладки клавиатуры;
  • СLeft, СRight, СUp, СDown — Ctrl + кнопки-стрелки. Не зависят от раскладки клавиатуры;
  • SLeft, SRight, SUp, SDown — Shift + кнопки-стрелки. Не зависят от раскладки клавиатуры;
  • CSLeft, CSRight, CSUp, CSDown — Ctrl + Shift + кнопки-стрелки. Не зависят от раскладки клавиатуры;
  • ~G — Ctrl+G. Обратите внимание, что G обязательно заглавная. Не зависят от раскладки клавиатуры;
  • wheel_up, wheel_down — Колесико мыши вверх, вниз. Можно использовать с модификаторами С, S;
  • wheel — движение колесиком мыши. Используется, если не назначено действия wheel_up, wheel_down. Можно использовать с модификаторами С, S;
  • g, ng,mrg, 1, 2, 3, 4 — цифро-буквенные клавиши. Нельзя назначить такую клавишу с использованием alias — если вы введете зададите alias g define grid (вызов окна настройки сетки), она не будет являться горячей клавишей, а будет являться ссылкой на команду, т.е. для ее выполнения необходимо ввести g в командую строку и нажать Enter. Для цифро-буквенных горячих клавиш используется только funckey. Здесь важно упомянуть о том, что такие горячие клавиши регистро-зависимы и зависят от раскладки клавиатуры. Таким образом, на одну клавишу можно назначить две горячие клавиши — одну g и вторую — Shift+g, при отключенном CapsLock соответственно. С цифро-буквенными клавишами может использоваться модификатор ~ (Ctrl), но не могут использоваться модификаторы S, C, т.к. они будут интерпретироваться как буквы с зажатым Shift’ом. Для использования модификатора Shift, его нужно использовать только вместе с ~ (Ctrl), например ~SZ — Control + Shift + Z

Рассмотрим несколько примеров для alias:

### Добавление алиаса для команды "Добавить линию". Т.к. это команда, для ее использования необходимо ввести в командную строку и нажать Enter
alias al add line
### Добавления горячей клавиши Ctrl+G для вызова окна настройки сетки
alias ~G define grid
### Добавления горячей клавиши Shift+F9 для отражения компонента (переноса его на другую сторону платы)
alias SF9 pop mirror
### Та же самая команда, но через алиас. Т.к. это команда, для ее использования необходимо ввести в командную строку и нажать Enter
alias dg define grid
### Это алиас для команды вставки переходного отверстия при трассировке. Не путать с горячей клавишей!
alias v pop bbdrill

В документации на funckey написано следующее

funckey 'user-defined-name' 'command(s)-to-execute'
  • user-defined-name — аббревиатура, до 4 цифро-буквенных символов, которая исполняется как комманда. Будьте внимательны, что нельзя задавать однокоренные имена для команда, иначе вы не сможете получить доступ к команде с более длинным именем. Например, если вы создали две функции — al и all, вы не сможете запустить all, так как функции выполняются без нажатия Enter и выбранная вами аббревиатура означает, что вам нужно последовательно нажать несколько клавиш.
  • command(s)-to-execute — определяет команду (команды), которые должны быть запущены при нажатии горячей клавиши. ри вводе нескольких команд, их необходимо заключить в двойные кавычки (» «) и разделить точкой с зяпятой (;). Если команда одна и она принимает параметры (например, pop bbdrill — добавление переходного отверстия), то заключать ее в кавычки не нужно.

Примеры использования funckey:

### Горячая клавиша 2 для определения ширины линии в текущих единицах измерения (здесь - mil)
funckey 2 options acon_line_width 25
### Горячая клавиша 2 для определения угла поворота линий в 45 градусов
funckey 4 options lock_direction 45
### Горячая клавиша r для поворота компонента на 90 градусов при его перетаскивании
funckey r iangle 90
### Горячая клавиша Shift+R для поворота компонента на 45 градусов при его перетаскивании
funckey R iangle 45
### Горячая клавиша Ctrl+R для вызова инструмента "Поворот компонента"
funckey ~R rotate
### Горячая клавиша Ctrl+Left для добавления линии границы платы
funckey CLeft "add line ; class board geometry ; subclass Outline"
### Горячая клавиша с+t для добавления соединения на верхний слой
funckey ct "add connect; class Etch ; subclass Top"
### Горячая клавиша с+b для добавления соединения на нижний слой
funckey cb "add connect; class Etch ; subclass Bottom"
### Горячая клавиша Ctrl+F3 для вставки переходного отверстия
funckey CF3 pop bbdrill
### Горячая клавиша v для вставки переходного отверстия
funckey v pop bbdrill
### Горячая клавиша Ctrl+V для вставки переходного отверстия
funckey ~V pop bbdrill
### Горячая клавиша v для вставки переходного отверстия
funckey v pop bbdrill
### Горячая клавиша d+g (нажатые последовательно) для вызова окна настройки сетки
funckey dg define grid
### А вот эта команда неправильная, если определена предыдущая. Ее невозможно будет вызвать
funckey dgr define grid

Но представленными примерами все не ограничивается. Можно использовать всю полноту языка — переменные, списки, циклы и так далее. Например, вот команда для назначения клавише w перебора ширины линии из заданного списка (0.15, 0.2, 0.3, 0.4 0.5, 1, 2) и выводом текущего значения в окно командной строки:

funckey w "settoggle width 0.15 0.2 0.3 0.4 0.5 1 2; echo "Using width " $width; options acon_line_width $width"

Список существующих и назначенных горячих клавиш и алиасов, можно посмотреть в разделе меню, как показано ниже:

defined aliases_funckeys

ДОБАВЛЕНИЕ АЛИАСОВ И ГОРЯЧИХ КЛАВИШ В ФАЙЛ env

PCB Editor построен таким образом, что даже если и вы создали в текущем сеансе работы горячую клавишу или алиас, она будет действительна только на этот сеанс работы. Для того, чтобы закрепить эту горячую клавишу, команду для ее создания необходимо внести в файл настроек окружения env, которых существует два — глобальные настройки и настройки пользователя.

Файл глобальных настроек %КАТАЛОГ УСТАНОВКИ ORCAD%\share\pcb\text\env. В моем случае это C:\Cadence\SPB_16.6\share\pcb\text\env. В принципе, писать можно и в него, дело тут только в подходе и личных соображениях.

Настройки пользователя находятся в рабочем каталоге OrCAD \%РАБОЧИЙ КАТАЛОГ%\pcbenv\env. В моем случае, это E:\Workspaces\Cadence\pcbenv\env и для примера скрин этого файла:

env

На этом все — если есть вопросы — вы можете обратиться к документации Cadence, воспользоваться полезными ссылками или написать комментарий к статье.

ПОЛЕЗНЫЕ ССЫЛКИ

Видео от parsysEDA о создании горячих клавиш

Статья на referencedesigner.com о создании горячих клавиш

Добавить комментарий