# gsch2pcb

## Обзор

gsch2pcb — это оболочка для gnetlist, предназначенная для автоматизации процесса переноса разработки из gschem в pcb. Он извлекает из схемы (или из набора схем) информацию о посадочных местах компонентов (атрибуты `footprint`) и о значениях элементов (атрибуты `value`) и пропускает их через генератор списка соединений. В результате получается набор файлов, в которых содержатся основные данные для разработки печатной платы в pcb: посадочные места компонентов, список соединений, определяющий все соединения между компонентами, физические размеры платы и любая заданная в схемах физическая информация, как например, графические объекты (контуры платы, к примеру).

Программа gsch2pcb входит в gEDA/gaf. По умолчанию она устанавливается вместе с gEDA/gaf. Из командной строки она запускается так: `./gsch2pcb`.

## Ресурсы по gsch2pcb

- Знаменитый учебник по gsch2pcb, который написал Bill Wilson.
- Скрипт-обёртка для gsch2pcb под названием sch2pcb.

## Откуда можно загрузить gsch2pcb?

Программа gsch2pcb — это утилита gEDA/gaf. Обычно она устанавливается по умолчанию (вместе со всеми остальными программами) при установке системы gEDA/gaf. Если по какой-либо причине на вашей машине она не установлена, то можно либо целиком загрузить tar-архив gEDA/gaf со страницы:

- http://wiki.geda-project.org/geda:download.ru

либо вытянуть её прямо из git по адресу:

- http://git.geda-project.org/geda-gaf/tree/utils/src

## gsch2pcb не может найти некоторые из моих посадочных мест или выдаёт ошибку. Как продиагностировать мою проблему?

Попробуйте запуск gsch2pcb в режиме удвоенных подробностей: `gsch2pcb -v -v`. Это вызовет фонтан сообщений о том, где программа пытается найти файлы посадочных мест. А также будет сказано, где она нашла те посадочные места, которые использует.

## Набор слоёв, используемый по умолчанию в gsch2pcb, мне не нравится. Как его изменить?

Отредактируйте `$INSTALLDIR/share/gEDA/scheme/gnet-gsch2pcb.scm` так, чтобы там были отражены ваши предпочтения на этот счёт. В частности можно изменить строку, определяющую группы слоёв:

        (display "Groups(\"1,2,3,s:4,5,6,c:7:8\")\n" port)

и собственно стек слоёв:

    (lambda (port)
        (display "Layer(1 \"bottom\")\n(\n)\n" port)
        (display "Layer(2 \"bott.-poly.\")\n(\n)\n" port)
     ...
        (display "Layer(8 \"lineout\")\n(\n)" port)
        (display "Layer(9 \"ignored\")\n(\n)\n" port)
        (display "Layer(10 \"ignored\")\n(\n)" port)
        (newline port)))

Учтите, последним двум слоям будут соответствовать слои шелкографии для обеих сторон платы. Поэтому вам придётся определить на два слоя больше, чем нужно для разработки топологии проводников.