User Tools

Site Tools


geda:pcb_tips.ru

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
geda:pcb_tips.ru [2014/04/24 15:55]
vzh
geda:pcb_tips.ru [2015/08/25 07:50] (current)
vzh Updated
Line 1: Line 1:
 //Эта страница доступна также на следующих языках://​ [[pcb_tips|English]],​ //Эта страница доступна также на следующих языках://​ [[pcb_tips|English]],​
 [[pcb_tips.fr|Français]]. [[pcb_tips.fr|Français]].
 +
 +
 +====== Вопросы по посадочным местам ======
 +===== У меня вопрос по поводу посадочных мест =====
 +Смотрите страницу [[pcb_footprints.ru|Посадочные места в pcb]].
 +
  
 ====== О разработке топологии печатных плат и трассировке ====== ====== О разработке топологии печатных плат и трассировке ======
Line 83: Line 89:
 при плотной компоновке. Есть также дополнительная настройка **Заблокировать при плотной компоновке. Есть также дополнительная настройка **Заблокировать
 названия**. названия**.
- 
-====== Вопросы по посадочным местам ====== 
- 
-===== Как pcb работает с посадочными местами?​ ===== 
-**pcb** поддерживает два абсолютно разных формата библиотек посадочных мест: 
-  - Первый из них называют //oldlib//, //pcblib// или //​библиотека M4//. В этой системе для создания посадочных мест "на лету"​ используется макроязык //M4//. //​Библиотека M4// довольно велика. Она имеет мощную возможность быстрого определения целых семейств посадочных мест с помощью соответствующего базового макроса. В //pcblib// имеются определения для нескольких семейств корпусов. Начиная со среза **pcb-20070208** вся эта библиотека доступна в формате //newlib// (см. следующий параграф) под названием //​pcblib-newlib//​. 
-  - Вторая библиотека посадочных мест для **pcb** называется //newlib//. Посадочные места //newlib// определяются в текстовых файлах,​ в которых прописывается вызов каждого графического примитива в отдельности,​ из которых и составляется посадочное место. Посадочные места //newlib// могут создаваться или графически в **pcb**, или другими методами,​ производящими текстовые файлы (в текстовом редакторе,​ с помощью скриптов на awk/​perl/​ruby и т. д.). Особенно мощным является применение скриптов или языков программирования,​ так как с их помощью можно создавать посадочные места для больших корпусов или для целых семейств компонентов. 
- 
-Поэтому,​ при разработке топологической схемы платы вы можете либо 
-использовать посадочные места, поставляемые в комплекте с **pcb**, либо 
-найти их в сети интернет,​ либо создать свои собственные и поместить в 
-предназначенный для них каталог. ​ В 
-[[http://​pcb.geda-project.org/​pcb-cvs/​pcb.html|Руководстве пользователя 
-pcb]] есть полная и современная документация по формату файлов элементов. На 
-сайте [[http://​gedasymbols.org|gedasymbols.org]] имеется некоторое 
-количество посадочных мест, предоставленных пользователями. Несколько 
-неполное,​ но полезное руководство доступно на веб-странице 
-[[http://​www.brorson.com/​gEDA/​]] (ищите по ключевому слову «newlib»). 
- 
-===== Где найти готовые посадочные места для pcb? ===== 
-  * Поищите на своём жёстком диске каталоги //''​newlib''//​ и //''​pcblib-newlib''//​. В них находятся библиотеки,​ используемые в **pcb** по умолчанию. 
-  * Наилучшее место, где ещё можно найти посадочные места, --- это [[http://​www.gedasymbols.org|Веб-сайт символов gEDA]]. Если у вас есть свои посадочные места, вы можете помочь проекту и предоставить их в общее пользование. 
-  * На [[http://​www.luciani.org/​geda/​pcb/​pcb-footprint-list.html|веб-сайте у John Luciani]] есть большое количество посадочных мест и инструментария. 
-  * Прекрасный скрипт для создания посадочных мест предложил [[http://​www.dlharmon.com/​geda/​footgen.html|на своём веб-сайте]] //Darrell Harmon//. 
-  * Наконец,​ вы можете спросить [[geda:​mailinglists.ru|в списке рассылки geda-user]],​ и может быть кто-нибудь сжалится над вами и пошлёт вам посадочное место. 
- 
-===== Я хочу развести плату в pcb. Как узнать,​ какое значение задать атрибуту footprint? ===== 
-Этот вопрос является общим для новых пользователей gEDA. В самом деле вопрос 
-помощи новичкам в определении названий нужных им посадочных мест компонентов 
-лежит в основе продолжающихся дебатов о [[geda:​faq-gschem.ru#​Что за вопрос 
-насчёт тяжёлых символов против лёгких|лёгких символах против тяжёлых]]. В 
-текущей версии gEDA/gaf, содержащей лёгкие символы,​ вам надо прикреплять 
-атрибуты ''​footprint''​ на этапе редактирования схем (то есть в **gschem** 
-или **gattrib**). Какое название использовать для посадочного места, зависит 
-от того, какой вы пользуетесь библиотекой --- //newlib// или //M4// 
-(//​pcblib//​). 
- 
-==== newlib ==== 
-В библиотеке //newlib// каждое посадочное место лежит в отдельном файле и 
-имя данного файла является его названием. 
- 
-Определить названия нужных посадочных мест в //newlib// можно разными способами:​ 
-  * Можно пролистать имеющиеся посадочные места корпусов в окне библиотеки посадочных мест **pcb** (доступном из меню **//​Окно//​** -> **//​Библиотека//​**). Щёлкните по группе //newlib// и выберите вложенный раздел,​ чтобы посмотреть в нём элементы. Названия корпусов появятся в окне **Elements** справа от перечня библиотек((В более новых версиях **pcb** вложенные разделы раскрываются,​ там же отображаются элементы,​ а справа находится окно предпросмотра посадочных мест. --- //Прим. перев.//​)). Значение атрибута ''​footprint''​ в **gschem** или **gattrib** должно в точности соответствовать указанному в перечне названию. 
-  * Поставляемые с **pcb** посадочные места //newlib// сохраняются в подкаталогах каталога //''​${PREFIX}/​share/​pcb/​newlib''//​. (//''​${PREFIX}''//​ --- это каталог установки,​ задаваемый при конфигурировании/​сборке **pcb**.) В качестве значения атрибута ''​footprint''​ нужно задать имя файла нужного вам посадочного места.\\ Посадочное место 0805 (для поверхностно монтируемых резисторов или конденсаторов) находится в файле, путь доступа к которому\\ //''/​usr/​local/​geda/​share/​pcb/​newlib/​generic_SMD_packages/​0805_reflow_solder''//​.\\ Поэтому,​ чтобы задать для компонента этот корпус,​ я устанавливаю в **gschem** или **gattrib** значение атрибута ''​footprint''​ для него равным //​0805_reflow_solder//​.\\ Учтите,​ что если нужный вам элемент //newlib// находится в нестандартном каталоге,​ вам нужно указать путь доступа к этому каталогу для **gsch2pcb** либо в своём файле проекта (если вы используете таковой),​ либо с помощью ключа ''​%%--elements-dir%%''​ (из командной строки). 
-  * И наконец,​ так как для любого нового проекта обычно приходится чертить по крайней мере пару новых посадочных мест, скорее всего для них вам понадобится локальный каталог. Как уже сказано выше, названия посадочных мест корпусов будут определяться именами этих свежеиспечённых файлов. И ещё раз: не забудьте добавить в свой файл проекта строку,​ указывающую программе **gsch2pcb**,​ где искать ваши локальные корпуса. Или же **gsch2pcb** можно запускать с ключом ''​%%--elements-dir%%'',​ задавая в качестве параметра локальный каталог с файлами посадочных мест. 
- 
-==== Библиотека M4 ==== 
-В //​библиотеке M4// посадочные места сохраняются в виде макросов //M4//; 
-обычно в каждом файле определяется несколько (много) посадочных 
-мест. Различные посадочные места в одном и том же файле --- это, как 
-правило,​ вариации одного и того же шаблона (например,​ DIP-8, DIP-14, DIP-16 
-и т. д.). Легче всего найти подходящее значение для атрибута ''​footprint'',​ 
-пролистав библиотеку //pcblib// в окне библиотек **pcb**. Этот атрибут 
-отображается в описании элемента в квадратных скобках. Кроме того, список 
-посадочных мест из //pcblib// можно найти на 
-[[http://​www.gedasymbols.org/​footprints/​|веб-странице символов gEDA]]. 
- 
-Следующим //​библиотекам M4// уделялось больше внимания и в них вносилось больше улучшений,​ нежели в прочие:​ 
-  * //~amp//, содержащая соединители Amp; 
-  * //​~amphenol//,​ содержащая соединители Amphenol; 
-  * //~geda//, содержащая много разнообразных приборов для базовых проектов в gEDA (резисторы,​ конденсаторы и пр.); 
-  * //​~bourns//,​ содержащая такие изделия,​ как подстроечные резисторы от Bourns; 
-  * //~cts//, содержащая такие изделия,​ как наборы резисторов от CTS; 
-  * //​~johnstech//,​ содержащая разъёмы Johnstech; 
-  * //​~minicircuits//,​ содержащая специфические корпуса Minicircuits;​ 
-  * //​~panasonic//,​ содержащая специфические корпуса Panasonic. 
- 
-И в заключение добавим,​ что и для библиотеки //newlib//, и для //M4//, 
-чрезвычайно важно проверять,​ что для используемого вами названия посадочного 
-места при помещении элемента в **pcb** будет вставлено **именно то** 
-посадочное место, которое вам нужно. Поэтому очень важно внимательно 
-проверить посадочное место перед его использованием. Проверить посадочное 
-место можно щёлкнув по нему в окне библиотеки посадочных мест и поместив его 
-на пустое место в рабочей области **pcb**. ​ Внимательно рассмотрите 
-посадочное место и убедитесь в правильности количества выводов/​контактных 
-площадок,​ размеров и прочего. 
- 
-Если вы создаёте [[geda:​glossary.ru#​Gerber-файлы]],​ то прежде чем отправлять 
-свою разработку на производство,​ вам также следует [[#Я закончил разработку 
-топологии своей платы. Как мне проверить свой проект|проверить в них каждое 
-из посадочных мест]] с помощью **gerbv** (или другой подобной программы). 
- 
-===== Как быть с различными посадочными местами для одного типа прибора?​ ===== 
-Например,​ операционный усилитель может быть в корпусе DIP8 или SO8. Резистор 
-может быть одним из 0603, 0805, 1208 или для [[geda:​glossary.ru#​монтаж в 
-отверстия|выводного монтажа]]. Как узнать,​ какие использовать корпуса и 
-посадочные места, и как дальше работать с выбранными вариантами?​ 
- 
-Прежде всего, какое посадочное место вам нужно, решать вам, а не вашей 
-программе САПР. Вы ответственны за выбор предпочтительных типов корпусов или 
-посадочных мест и за прикрепление соответствующих атрибутов ''​footprint''​ к 
-компонентам в схеме. ​ И когда вы выбрали подходящий вам корпус (и посадочное 
-место для него), то вам надо или [[#Где найти готовые посадочные места для 
-pcb|найти соответствующее посадочное место]],​ или [[#Как начертить новое 
-посадочное место|начертить своё]] и сохранить его в локальном каталоге. 
- 
-Что касается дальнейшей работы с выбранными посадочными местами (и с 
-действительно большим количеством атрибутов компонентов,​ которые вам, 
-вероятно,​ придётся использовать):​ пользуйтесь программой 
-[[geda:​faq-attribs.ru#​Помогите В моём проекте сотни компонентов и ужасно 
-трудно добавлять каждый из атрибутов в gschem|gattrib]]. Это как раз то, для 
-чего она и нужна. 
- 
- 
- 
- 
- 
-===== Как начертить новое посадочное место? ===== 
-Все делают это по-разному. Кто-то чертит посадочные места целиком в 
-**pcb**. ​ Кто-то сначала делает в **pcb** заготовку и затем доводит её 
-вручную (например,​ в **emacs**). Кто-то пишет скрипты на Perl или Python для 
-автогенерации посадочных мест. 
- 
-  * Воспользуйтесь текстовым редактором. Подробности смотрите в [[http://​www.brorson.com/​gEDA/​land_patterns_20070818.pdf| руководстве по созданию посадочных мест]] от //Stuart Brorson//. 
-  * Начертите компонент в **pcb** и сохраните его как посадочное место. Смотрите [[http://​ronja.twibright.com/​guidelines/​footprints.php|HOWTO от Karel Kulhavy]]. 
-  * Или воспользуйтесь [[http://​dlharmon.com/​geda/​footgen.html| скриптом на Python]] от //Darrel Harmon// для типоразмеров с двумя выводами,​ SOxx, tabbed и QFP. 
-  * Или воспользуйтесь [[http://​www.brorson.com/​gEDA|скриптом на Perl]] от //Stuart Brorson// для двухвыводных компонентов для поверхностного монтажа. 
-  * Или воспользуйтесь [[http://​www.luciani.org/​geda/​pcb/​pcb-perl-library.html|скриптом на Perl]] от //John Luciani//, который можно приспособить для корпусов DIL, различных SOxx, QFP или даже для кругового расположения контактных площадок. 
-  * Или используйте веб-приложение [[http://​www.gedasymbols.org/​user/​dj_delorie/​tools/​dilpad.html|dilpad]] от //DJ Delorie// для посадочных мест вида SOxx. 
- 
- 
-===== Как мне изменить/​отредактировать имеющееся посадочное место? ===== 
-Можно преобразовать посадочное место в обычную топологию,​ отредактировать её части и обратно преобразовать в посадочное место. В следующем перечне жирным наклонным шрифтом выделены действия из меню **//​Буфер//​** (если не указан иной пункт меню). 
-  - Выделите элемент. 
-  - **//​Правка//​** -> **//​Копировать выделенное в буфер//​** (<​key>​Ctrl-c</​key>​). 
-  - **//​Разбить элементы в буфере на части//​**. Выводы станут переходами,​ а контактные площадки --- дорожками. К сожалению,​ часть информации при этом потеряется. А именно,​ [[geda:​glossary.ru#​флаг|флаги]] установки прямоугольной формы выводов и контактных площадок. Эту информацию позже придётся воссоздать. 
-  - **//​Вставить из буфера//​** 
-  - Произведите нужные изменения. Учтите,​ что можно работать только с переходами,​ дорожками и прямоугольниками. Не должно быть никакого текста,​ никаких дуг((В слое шелкографии дуги использовать можно. --- //Прим. перев.//​)),​ никаких полигонов. 
-  - Выделите все объекты,​ являющиеся частями посадочного места. 
-  - **//​Правка//​** -> **//​Копировать выделенное в буфер//​** (<​key>​Ctrl-c</​key>​). Положение перекрестия курсора будет определять точку привязки результирующего посадочного места. Эта точка будет отмечена маленьким ромбиком. 
-  - **//​Преобразовать буфер в элемент//​**. Переходы будут преобразованы в выводы. Дорожки и прямоугольники станут контактными площадками для поверхностного монтажа. 
-  - **//​Вставить из буфера//​**. 
-  - Наводя указатель мыши на контактные площадки,​ которые стали скруглёнными при выполнении шага 4, нажимайте <​key>​q</​key>,​ чтобы снова сделать их прямоугольными. 
-  - Пройдитесь по всем контактным площадкам и, нажимая <​key>​n</​key>,​ задайте для каждой название. 
-  - Переместив указатель мыши в то место, где нет ни площадок,​ ни выводов,​ задайте элементу название. 
-  - Переместите название в то место, в котором,​ по вашему мнению,​ должно отображаться позиционное обозначение или значение компонента (тип или номинал). 
-  - Выделите всё и скопируйте в буфер (**//​Правка//​** -> **//​Копировать выделенное в буфер//​** или <​key>​Ctrl-c</​key>​). 
-  - **//​Сохранить элементы из буфера в файл//​**. 
-Или же можно отредактировать исходный код посадочного места в своём любимом текстовом редакторе. 
- 
-===== Как переместить ромбик посадочного места? ===== 
-Точка привязки посадочного места отмечается маленьким ромбиком. Чтобы 
-переместить её в другое место по отношению к изображению посадочного места, 
-нужно изменить координаты всех объектов. Это можно сделать вручную в 
-текстовом редакторе. Если же вы хотите сделать это из графического 
-интерфейса **pcb**, нужно разбить посадочное место на части, а затем собрать 
-его снова. Подробный перечень шагов указан выше. Обратите внимание,​ что 
-положение ромбика определяется положением перекрестия курсора при 
-копировании в буфер. 
- 
-Да, это утомительно. Но проблема в том, что в **pcb** нет особого режима для 
-редактирования посадочных мест. Приглашаем вас написать таковой. 
- 
- 
- 
-===== pcb не сохраняет слой шелкографии,​ когда я пытаюсь начертить посадочное место ===== 
-В слое шелкографии посадочных мест могут быть только линии и дуги. Все 
-прочие объекты,​ такие как полигоны,​ прямоугольники и текст, при 
-преобразовании содержимого буфера в элемент (**//​Преобразовать буфер в 
-элемент//​**) молча игнорируются. Если вам нужен текст в изображении 
-посадочного места, придётся буквально начертить каждую букву с помощью 
-инструмента **LINE**. 
- 
-===== Как правильно сделать двухстороннее посадочное место? ===== 
-Для помещения контактных площадок на противоположную сторону платы можно 
-использовать флаг ''​onsolder''​. Для определения двухстороннего соединителя 
-вам понадобится что-то вроде этого: 
- 
-<​code>​ 
-Pad[-40000 -7000 -40000 7000 2700 2400 3000 "​B1"​ "​B1"​ "​square"​] 
-Pad[-40000 -7000 -40000 3000 2700 2400 3000 "​A1"​ "​A1"​ "​square,​onsolder"​] 
-</​code>​ 
- 
-Если вы начертите посадочное место в **pcb** и выберете **//​Преобразовать 
-буфер в элемент//​**,​ линии на втором слое станут контактными площадками с 
-флагом «onsolder». Да, имеется в виду именно второй слой, независимо от 
-того, как он называется. 
- 
-===== Как добиться того, чтобы некоторые контактные площадки были без паяльной пасты? ===== 
-Иногда открытые участки проводников не должны покрываться 
-[[geda:​glossary.ru#​Паяльная паста|паяльной пастой]]. ​ Общеизвестным примером 
-являются контактные площадки [[geda:​glossary.ru#​Соединитель 
-непосредственного сочленения|соединителя непосредственного сочленения]] 
-(концевые контакты печатной платы). Этого можно добиться установкой флага 
-''​nopaste''​. В настоящее время из графического интерфейса **pcb** этот флаг 
-установить невозможно. Его можно добавить для контактных площадок 
-посадочного места в текстовом редакторе. 
-===== Как добавить библиотеку посадочных мест для pcb? ===== 
-Библиотеки посадочных мест можно добавить из графического интерфейса:​\\ 
-**//​Файл//​** -> **//​Настройки...//​** -> **Библиотека** -> 
-//''​КАТАЛОГ_ПОСАДОЧНЫХ_МЕСТ''//​\\ Или можно отредактировать файл 
-//''​$HOME/​.pcb/​preferences''//​. Убедитесь,​ что не запущен ни один процесс 
-**pcb**. Поищите строку,​ начинающуюся с ''​library-newlib''​. ​ Не забудьте 
-подключить новый каталог в файле //''​gsch2pcbrc''//​ или в локальном 
-//''​gafrc''//​ (имеется в виду при использовании **gsch2pcb**). 
- 
-===== Как обновить посадочное место в моей топологии?​ ===== 
-Автоматического способа заместить все экземпляры посадочного места новой 
-версией пока нет. Но есть специальный режим вставки из буфера,​ который 
-поможет уменьшить количество щелчков мышью при ручной замене.\\ Откройте 
-диалоговое окно с помощью **//​Окно//​** -> **//​Библиотека//​** и выберите 
-новое посадочное место. Рабочим инструментом станет инструмент вставки из 
-буфера **BUF** и в буфер будет загружено новое посадочное место. ​ Если надо, 
-поверните его с помощью **//​Буфер//​** -> **//​Повернуть буфер//​**. 
-Расположите новое посадочное место над старым и, нажав [**Shift**],​ щёлкните 
-левой кнопкой мыши, чтобы заместить старое посадочное место новым. Следите,​ 
-чтобы не перевернуть его на 180 градусов,​ проверьте подключение 
-[[geda:​glossary.ru#​Линии связи|линий связи]] нажатием <​key>​o</​key>​ и, если 
-вдруг оказалось,​ что посадочное место расположено задом наперёд,​ отмените 
-операцию. 
- 
-===== pcb не находит моих посадочных мест. Почему?​ ===== 
-Путь доступа к посадочным местам,​ который использует программа **pcb**, 
-определяется переменной ''​Pcb.elementPath''​ в файле ресурсов app-defaults,​ 
-называющемся //''​PCB''//​((Речь здесь идёт о ресурсах **pcb** с 
-Xaw-интерфейсом,​ который заменён на GTK-интерфейс в 2005-ом году, поэтому 
-для более свежих версий данный ответ неактуален. --- 
-//Прим. перев.//​)). Путь к этому файлу задаётся с помощью переменной 
-окружения ''​XAPPLRESDIR'',​ обычно задаваемой из скрипта-обёртки **pcb**. 
- 
- 
-===== Вот я набрал себе посадочных мест. Куда их теперь складывать?​ ===== 
-Я предпочитаю «готовые для производства» посадочные места складывать в один 
-каталог,​ расположенный отдельно от каталога установки **pcb**. Когда выходит 
-новая версия **pcb**, я не меняю файлы проектов или библиотеки. Если в 
-библиотеке **pcb** есть посадочные места в формате //newlib//, которые я 
-хочу использовать,​ я копирую их в этот каталог посадочных мест, «готовых для 
-производства». 
- 
-Вместо того, чтобы менять файлы конфигурации,​ чтобы **gsch2pcb** находил 
-посадочные места, я создаю скрипт-обёртку **sch2pcb**,​ содержащий путь 
-доступа к посадочным местам. Все пользователи используют такой же скрипт и 
-имеют доступ к тем же самым посадочным местам для производства. 
- 
-Чтобы использовать скрипт **sch2pcb**,​ вместо ''​FOOTPRINT_DIR''​ задайте свой 
-каталог посадочных мест. Вот его содержимое:​ 
-<​code>​ 
-#!/bin/bash 
-gsch2pcb --elements-dir FOOTPRINT_DIR $@ 
-</​code>​ 
- 
-Или версия другого пользователя:​ 
-<​code>​ 
-#!/bin/bash 
-#Этот скрипт написал John Luciani 
-gsch2pcb --elements-dir /​home/​user/​pcb/​footprints/​user --use-files $@ 
-</​code>​ 
- 
-Или можно использовать файл проекта,​ из которого **gsch2pcb** читает свои 
-параметры. Например,​ файл ''​myproject''​ может выглядеть так: 
-<​code>​ 
-schematics myschematic.sch myschematic2.sch 
-elements-dir /​myfootprintdir 
-output-name mypcb 
-skip-m4 
-</​code>​ 
- 
-В файле примера задаётся поиск посадочных мест, используемых в 
-//''​myschematic.sch''//​ и //''​myschematic2.sch''//,​ в каталоге 
-//''​myfootprintdir''//,​ пропуск посадочных мест типа //M4// и создание 
-//''​mypcb.pcb''//​. Затем при запуске **gsch2pcb** в качестве аргумента нужно 
-задать имя файла проекта:​ 
-<​code>​ 
-gsch2pcb myproject 
-</​code>​ 
  
  
Line 618: Line 359:
 //''​$HOME/​.pcb/​preferences''//​. ​ Завершите все процессы **pcb** (закройте //''​$HOME/​.pcb/​preferences''//​. ​ Завершите все процессы **pcb** (закройте
 все окна) и поищите строку,​ начинающуюся с ''​rat-thickness''​. все окна) и поищите строку,​ начинающуюся с ''​rat-thickness''​.
- 
  
 Значения 0..19 задают фиксированную толщину в пикселах экрана. Любое большее Значения 0..19 задают фиксированную толщину в пикселах экрана. Любое большее
geda/pcb_tips.ru.txt · Last modified: 2015/08/25 07:50 by vzh