# pcb: краткая справка

## Стандартные привязки клавиш

### Все сочетания клавиш

Клавиша | Мнемоника | Описание
--- | --- | ---
`Esc` | select | включить режим выделения (то же, что и `Space` или `F11`)
`Esc` | end of action | завершить текущее действие, например остановить вычерчивание дорожек
`Insert` | insert point | включить режим добавления точек излома; для добавления точки щёлкните мышью по дорожке и потяните в сторону
`Return` | click | то же, что и щелчок левой кнопкой мыши
`Space` | select | включить режим выделения (то же, что и `Esc` или `F11`)
`Tab` | flip up/down | вид: вертикальный переворот
`Shift`+`Tab` | flip left/right | вид: горизонтальный переворот
`Ctrl`+`Shift`+`Tab` | far side | вид: смена ролей передней и обратной сторон
`Del` | delete | удалить объект под курсором мыши
`Shift`+`Del` | del-sel | удалить выделенные объекты
`Backspace` | del-sel | удалить выделенные объекты
`Shift`+`Backspace` | del-copper | удалить соединённые проводники под курсором; линии связи рассматриваются как соединение
`|` | thin-draw | переключить контурный вид
`A` | set same | считать параметры объекта под курсором для применения к новым объектам
`Alt`+`A` | select-all | выделить все объекты на активных слоях; неактивные слои игнорируются
`Shift`+`Alt`+`A` | unselect | снять выделение
`B` | to other side | перенести объект на другую сторону платы
`C` | center | вид: задать центр области просмотра в координатах позиции курсора
`Ctrl`+`C` | copy to buffer | копировать выделенное в буфер и снять выделение
`D` | display name | отобразить название вывода или контактной площадки
`Shift`+`D` | pinout dialog | открыть окно цоколёвки элемента под курсором мыши
`E` | eliminate rats | удалить все линии связи
`Shift`+`E` | eliminate some rats | удалить выделенные линии связи
`F` | find | подсветка найденных соединений объекта, находящегося под курсором мыши. Сюда также входит подсветка присоединённых линий связи и объектов на видимых слоях
`Ctrl`+`F` | add to found | добавить соединения объекта под курсором к набору найденных объектов
`Shift`+`F` | un-find | убрать подсветку найденных соединений
`G` | incr grid mil | увеличить шаг сетки на настроенное приращение в милах
`Shift`+`G` | decr grid mil | уменьшить шаг сетки на настроенное приращение в милах
`Ctrl`+`G` | incr grid mm | увеличить шаг сетки на настроенное приращение в миллиметрах
`Ctrl`+`Shift`+`G` | decr grid mm | уменьшить шаг сетки на настроенное приращение в миллиметрах
`H` | hide | переключить видимость позиционного обозначения или значения, прикреплённого к компоненту под курсором
`Shift`+`H` | hide sel | переключить видимость позиционных обозначений или значений, прикреплённых к выделенным компонентам
`Ctrl`+`H` | holeplate | переключить металлизацию перехода; используется для создания неметаллизированных крепёжных отверстий
`J` | lineclear | переключить флаг очистки полигонов для линии под курсором мыши
`Shift`+`J` | lineclear sel | переключить флаг очистки полигонов для выделенных линий
`K` | klear | увеличить зазор (между паяльной маской и краем контактной площадки)
`Shift`+`K` | klear (-) | уменьшить зазор (между паяльной маской и краем контактной площадки (ВНИМАНИЕ: может стать отрицательным)
`Ctrl`+`K` | klear sel | увеличить зазор выделенных объектов (между паяльной маской и краем контактной площадки)
`Shift`+`Ctrl`+`K` | klear sel (-) | уменьшить зазор выделенных объектов (между паяльной маской и краем контактной площадки)
`L` | increase line | увеличить ширину новых линий, добавляется к настройке текущего стиля линии
`Shift`+`L` | decrease line | уменьшить ширину новых линий
`M` | move to layer | переместить объект, находящийся под курсором мыши, на текущий слой
`Shift`+`M` | move selection to layer | переместить выделенные объекты на текущий рабочий слой (см. Советы по pcb)
`Ctrl`+`M` | move origin | установить относительное начало координат в текущую позицию курсора мыши
`N` | name | показать позиционное обозначение/номер вывода объекта под курсором мыши
`Shift`+`N` | next | выделить кратчайшую невыделенную линию связи на плате
`O` | optimize rats | оптимизировать и перерисовать все линии связи
`Shift`+`O` | optimize some rats | оптимизировать и перерисовать линии связи только для выделенных соединений
`Ctrl`+`O` | octagon | переключить флаг восьмиугольной формы для объекта под курсором мыши
`Shift`+`P` | polygon close | соединить первую точку полигона с последней
`Q` | square toggle | переключить прямую/скруглённую форму углов контактной площадки
`Shift`+`R` | redo | повторить последнее отменённое изменение
`Ctrl`+`R` | report | показать отчёт об объекте
`S` | size | увеличить размер объекта под курсором мыши
`Shift`+`S` | size (-) | уменьшить размер объекта под курсором мыши
`Alt`+`S` | sizehole | увеличить отверстие объекта под курсором мыши
`Alt`+`Shift`+`S` | sizehole (-) | уменьшить отверстие объекта под курсором мыши
`Ctrl`+`S` | sizehole | увеличить отверстие объекта под курсором мыши
`Ctrl`+`Shift`+`S` | sizehole (-) | уменьшить отверстие объекта под курсором мыши
`T` | text tool size | увеличить размер нового текста на 10 милов
`Shift`+`T` | text tool size (-) | уменьшить размер нового текста на 10 милов
`V` | view extents | показать всю рабочую область
`Shift`+`V` | via tool dia | увеличить диаметр новых переходов на 5 милов
`Ctrl`+`Shift`+`V` | via tool dia (-) | уменьшить диаметр новых переходов на 5 милов
`Alt`+`V` | via tool drill | увеличить диаметр отверстий новых переходов на 5 милов
`Shift`+`Alt`+`V` | via tool drill (-) | уменьшить диаметр отверстий новых переходов на 5 милов
`Z` | zoom | вид: увеличить масштаб
`Shift`+`Z` | un-zoom | вид: уменьшить масштаб
`F1` | via | выбрать инструмент добавления переходов VIA
`F2` | line | выбрать инструмент добавления линий LINE
`F3` | arc | выбрать инструмент добавления дуг ARC
`F4` | text | выбрать инструмент ввода текста TEXT
`F5` | rectangle | выбрать инструмент добавления прямоугольников RECT
`F6` | polygon | выбрать инструмент добавления полигонов POLY
`F7` | buffer | включить режим работы с буфером BUF
`F8` | delete | включить режим удаления DEL
`F9` | rotate | включить режим поворота ROT
`F10` | file menu | меню “Файл”
`F11` | select | включить режим выделения (то же, что и `Space` или `Esc`)
`F12` | lock | включить режим блокировки

### Сочетания клавиш для изменения области просмотра

Клавиша | Мнемоника | Описание
--- | --- | ---
`V` | view extents | показать всю рабочую область
`C` | center | центрировать вид по координатам курсора
`Z` | zoom | увеличить масштаб
`Shift`+`Z` | un-zoom | уменьшить масштаб
`|` | thin-draw | переключить контурный вид
`Tab` | flip up/down | вертикальный переворот
`Shift`+`Tab` | flip left/right | горизонтальный переворот
`Ctrl`+`Shift`+`Tab` | far side | смена ролей передней и обратной сторон

### Слои

Клавиша | Мнемоника | Описание
--- | --- | ---
`1` … `9` | - | выбор слоя 1 … 9
`0` | - | выбор слоя 10*
`Alt`+`1` … `Alt`+`9` | - | выбор слоя 11 … 19*
`Alt`+`0` | - | выбор слоя 20*
`Ctrl`+`1` … `Ctrl`+`9` | - | переключение видимости слоя 1 … 9*
`Ctrl`+`0` | - | переключение видимости слоя 10*
`Ctrl`+`Alt`+`1` … `Ctrl`+`Alt`+`9` | - | переключение видимости слоя 11 … 19*
`Ctrl`+`Alt`+`0` | - | переключение видимости слоя 20*

* Эти сочетания клавиш доступны в GTK-HID программы pcb в версиях после августа 2011 г.

# Справка по посадочным местам

Основным документом по созданию посадочных мест компонентов является Руководство пользователя pcb. Кроме того, есть ещё Footprint Creation for the Open-Source Layout Program PCB от Stuart Brorson.

## Общий синтаксис

Файл посадочного места pcb может содержать любые из следующих команд:

- `Element [element_flags, description, pcb-name, value, mark_x, mark_y, text_x, text_y, text_direction, text_scale, text_flags]`
- `Pad [x1 y1 x2 y2 thickness clearance mask name pad_number flags]`
- `Pin [x y thickness clearance mask drillholedia name number flags]`
- `ElementArc [x y r1 r2 startangle sweepangle thickness]`
- `ElementLine [x1 y1 x2 y2 thickness]` → `thickness != 1000 = 10 милов` почти для всех посадочных мест
- Строки комментариев начинаются со знака `#`.

## Элементы

`Element [element_flags, description, pcb-name, value, mark_x, mark_y, text_x, text_y, text_direction, text_scale, text_flags]`

Поле | Принимаемое значение | Описание | Комментарии
--- | --- | --- | ---
element_flags | шестнадцатеричное без знака |  |
description | строка | текстовое описание посадочного места | определяется создателем посадочного места
pcb name | строка | позиционное обозначение в данной топологии | xxx
value | строка | значение компонента в данной топологии | xxx
mark_x | сотые доли мила |  |
mark_y | сотые доли мила |  |
text_x | сотые доли мила |  |
text_y | сотые доли мила |  |
text direction | десятичное целое | направление текста: 0=0°; 1=-90°; 2=180°; 3=+90° |
text_scale | десятичное целое | масштаб текста | обычно 100
text_flags | шестнадцатеричное без знака | флаги текста |

## Контактные площадки

`Pad[x1 y1 x2 y2 thickness clearance mask name pad_number flags]`

Поле | Принимаемое значение | Описание | Комментарии
--- | --- | --- | ---
x1 | сотые доли мила | x (первая точка) |
y1 | сотые доли мила | y (первая точка) |
x2 | сотые доли мила | x (вторая точка) |
y2 | сотые доли мила | y (вторая точка) |
thickness | сотые доли мила | ширина металла, окружающего сегмент линии | см. `.pdf` от Brorson
clearance | сотые доли мила | расстояние до любого другого проводника на любом слое | фактически используется половина этого значения!
mask | сотые доли мила | ширина выреза маски | фактическая ширина выреза в маске с центром на контактной площадке
name | строка | название контактной площадки (произвольная строка) | например, "1" или "e" или любое другое
pad_number | строка | номер контактной площадки | используется для соединений; ДОЛЖЕН быть согласован с данными списка соединений
flags | шестнадцатеричное | xxx |

## Выводы

`Pin[x y thickness clearance mask drillholedia name number flags]`

Поле | Принимаемое значение | Описание | Комментарии
--- | --- | --- | ---
x | сотые доли мила | координата вывода x |
y | сотые доли мила | координата вывода y |
thickness | сотые доли мила | диаметр контактной площадки |
clearance | сотые доли мила | 2*(зазор между проводниками) | если вам нужен зазор 10 милов, задайте здесь 2000 (20 милов)
mask | сотые доли мила | диаметр апертуры маски | фактический диаметр отверстия в маске
drillholedia | сотые доли мила | диаметр отверстия |
name | строка | произвольное название вывода |
number | десятичное целое | номер вывода, используемый для соединений/линий связи |
flags | шестнадцатеричное | xxx |

## Примеры

- `Pad[-24606 14760 -19538 14760 1181 2000 3181 "" "6" "e"]`
- `Pad[-14760 19538 -14760 24606 1181 2000 3181 "" "7" "2"]`
- `Pin[0 0 12000 2000 12500 6400 "" "1" 0×00000001]`
- `ElementArc [0 0 6800 6800 0 360 1000]`
- `ElementLine [-26696 -26696 26696 -26696 1000]`
- `# комментарии внутри посадочных мест pcb идут после символа фунта ("решётки")`

# Справка по функциям командной строки pcb (в сокращении)

`:FreeRotateBuffer(<угол_в_градусах>)` | Произвольный поворот буфера
`:MoveObject(<x>,<y>,<единица_измерения>)` | Переместить в абсолютные координаты (x,y,единица_измерения) или относительно на (+x,-y,единица_измерения)
`:ChangeClearSize(Selected,<величина>,<единица_измерения>)` | Размер зазора
`:ChangeSize(SelectedPins, <размер> )` | Размер вывода
`:ChangeSize(SelectedLines,<+N>,<единица_измерения>)` | Размер линии
`:MinClearGap(Selected,<величина>,<единица_измерения>)` | Минимальный зазор

- единица_измерения может быть указана как 'mm' или 'mil'.
- Справка по функциям из руководства по pcb

# Справка по физическим слоям pcb

- Справка по слою контуров платы outline
- HOWTO по физическим слоям (outline, помещение посадочных мест в абсолютные координаты (x,y), вставка компонентов)