Eagle CAD: copy-past like a boss

Одним из серьезных недостатков Eagle CAD являет ни разу не интуитивный интерфейс. С другой стороны, он удобен, а значит RTFM. Но по скольку с FM туго, то в некоторых вещах приходится разбираться методом тыка и разных шаманств, а также курения буржуйских форумов.

Первейшей темой о которой расшибаются новички в Eagle это копирование и вставка кусков схем. Как банальное тиражирование платы, чтобы напечатать сразу побольше, так и копирование кусков схемы вместе с разведенным куском платы. Вот эти случаи мы сейчас и разберем. Начнем с простого..

▌Копипаст групп. Из серии не знал, да забыл
Как выделяются, таскаются и копируются группы чего бы то ни было в Eagle. Ну это просто. Внизу даже есть подсказка. Берем инструмент групповое выделение:

и рамкой, или просто натыкивая контур, выделяем то что нам нужно. Да, выделением можно выкусить контур сложной формы, а не только прямоугольное выделение. Эт если вы не знали.

После выделения элемент схемы будет подвечен. Дальше выделяем нужный инструмент, например, копирование:

Зажимаем CTRL и ПРАВОЙ кнопкой мыши кликаем, получая копию. Правда же просто и интуитивно понятно ;)

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

А попробуешь сделать тот же фокус в BRD части и получишь облом. Игл матюгнется, мол он не может найти связь со схемой и потому делать это не будет. Вот гаденыш… Такова цена за привязку. Ничего страшного. Лезем в каталог проекта и копируем наш BRD файл, дав ему другое имя. Например *_print.BRD

В результате у нас получается печатка без схемотехники. А для игла она набор линий, не больше. Без всякой структуры. И если ее открыть, то с ней невозбранно можно творить любые гнусности. Как то добавлять элементы, удалять что угодно и копипастить как угодно:

Главное не забыть включить все слои:

А то можно и забыть чего.

Но это все элементарщина и многократно разжевана везде где только можно. Я лишь для солидности ее добавил сюда. Рассказать я хотел о другом. Пойдем дальше…

▌Тиражирование куска схемы сам в себя
Допустим у нас есть схема. На ней какая то управляющая обвязка, а также хренова куча совершенно одинаковых каналов. Вот как у меня тут. Есть контроллер, есть аналоговый коммутатор и 16 каналов измерений токов и напряжений, с силовой релюшкой, транзисторами, все это дергающими, токоограничивающими цепочками и защитными диодами. До кучи клеммники и прочая обвязка. И вот эту тряхомудию надо повторить 16 раз. Да, схему я могу копипастнуть сколько угодно раз. Но что делать с печаткой то? Разводить кажыдый раз заново? Да, по имеющемуся образцу первого канала это сделать несложно. Один-два раза. Но не 16 же раз подряд???

Как скопировать в EAGLE CAD кусок схемы вместе с платой?

Не скажу, что прям просто, не скажу что в два клика, но возможно. Надо делать все четко по шагам и обращать внимание на детали.

Итак, есть у нас вот такая схема:


Крупнее

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

Для любопытных: Это проект 16 канального тестера литий ионных аккумуляторов TrustFire. У меня тут товарищи купили их целый вагон на продажу, а половина оказались натуральным браком не дающим и 30% емкости. Теперь им это говно надо отсеять. Если кто следит за группкой моей лабы, то видели куски этого треша под названием Висячие Ады.

Алгоритм копирования схемы с печаткой очень жесткий и отходить от него нельзя.

1 Копирование схематики
1.1 Сохраняем все и BRD и SCH.
1.2 Закрываем BRD окно. Это очень важно.
1.3 С помощью инструмента копирования, с выделением рамкой, копируем нужный кусок:

1.4 Сохраняем SCH.
1.5 Закрываем SCH.

2 Копирование разводки.
2.1 Открываем BRD.
2.2 Игл ругнется, что дескать у него не совпадает схема с печаткой. Говорим ОК

2.3 Закрываем автоматом открывшийся схематик. Это важно!

2.4 Включаем все слои!
2.5 С помощью группового выделения копируем кусок разведенной печатки, как мы это делали в схематике со схемой.

2.6 Сохраняем BRD.
2.7 Закрываем BRD.

3. Стыковка схемы и печатки.
3.1 Открываем схему. Попутно должна открыться и печатка.
3.2 Игл ругнется, что схема и печатка не совпадают. Говорим ОК:

3.3 Делаем ERC проверку. Это проверка электрических цепей и их соответствий.

3.4 Выскочит хренова куча ошибок. Счет может идти на десятки. Не стоит по этому поводу париться, исчезают после мельчайших правок они тоже десятками. Так что реально не все так страшно.


Крупнее

3.5 Правим ошибки. Рекомендую тут открыть оба окна схематехники и печатки так, чтобы их видеть. Идеально если есть два монитора. Но можно и на одном извернуться, просто открыв два окна.

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

Теперь внимательно читаем что за ошибка:

Игл говорит, что у нас дескать тут что то подключено не туда. А конкретно у нас на схеме цепь +12V при копипастинге схемы сохранила свое название, а при копипастинге печатки Игл автоматом присвоил ей индекс +12V1. Это легко проверить, потыква инструментом Name на эту цепь в печатке и в схеме. На схеме он будет +12V, а на печатке +12V1. Исправляем. Берем и переименовываем с помощью инструмента Name эту цепь на +12V…


Крупнее

Игл спросит, как назвать результирующую цепь?

Говорим, что +12V. Все, эта ошибка исправлена.

Следующая ошибка уже про GND и GND1. Тут аналогично, в схеме земля скопировалась без индекса, а в BRD приплюсовался индекс. Также, через, NAME переименовываем в BRD цепь с GND1 на GND и список ошибок резко редеет.


Крупнее

То же надо будет сделать и с VCC/VCC1, а также со всеми цепями которые сдублировались в итоге. Обычно это именованные цепи, т.е. цепи которые имеют не порядковые номера вида N$**, а конкретные названия. Вроде VCC или RxD или, как у меня I1, U1 и так далее.

Но тут надо смотреть что приоритетней и где возникла ошибка. Например, цепи VCC, +12V, GND на всех копиях узла одинаковые, т.к. питание. А вот сигналы выходные: напряжения, токи, управляющие выводы разные для каждого блока. А на схеме скопировались один к одному. Ведь это клон:

И если посмотреть на печатку, то там то они как раз автоматом увеличили индекс на единичку и стали именоваться правильно

Т.е. править NAME надо уже не в печатке, а в схемотехнике. Но аналогично. А вообще, по хорошему, это надо было сделать еще на этапе копипаста самой схемы. Сразу же поправить индексы. Но я забыл :) Но игл не даст вам тут накосорезить и слить сигнальные цепи в одну кашу. Ругнется либо тут либо там.

После правки имен остаются всего несколько ничего не значащих ошибок и предупреждений, связанных в первую очередь с компонентом FTDI, где разработчик компонента упоролся и назадавал условий для линий. Все эти ошибки гласят о том, что дескать линии висят в воздухе, да питание подключено куда-то не туда. Но я то знаю, что туда :) Все там ок :)))


Крупнее

Иногда может возникнуть ошибка с названиями элементов. Т.е. на схеме будет R4, а на печатке что то другое. Тоже решается переименованием элемента либо в схеме, либо в печатке.

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

▌Библиотека узлов
Раз можно таскать куски SCH/BRD в пределах одного листа, так что мешает скопировать готовый кусок с разводкой в другой проект? Да ничего не мешает. Технология практически такая же. С небольшими отличиями.

Допустим есть у нас библиотека узлов. Отдельная папочка где собраны уже разведенные узлы разных схем в виде связок файлов BRD+SCH. Какие? Да мало ли какие. Разведенный контроллер со всей необходимой обвязкой, выведенным разъемом программирования, кварцем, кнопкой сброса. Или, например, готовый импульсный питальничек, который только воткни на схему, подведи дорожки на вход, да сними с выхода. Контроллер зарядки батарейки или токовый измеритель. Да что угодно. Куда приятней городить схему не придумывая заново с нуля все, а набрасывая готовые и проверенные узлы и соединяя их дорожками.

Итак, приступим. Есть у нас узел, пусть это будет интерфейс USB-UART на FT232RL.

И есть узел с уже разведенным контроллером со всеми необходимыми элементами. Попробуем его куда-нибудь воткнуть копипастом.

1. Для этого создадим пустой проект:

2. Сохраняем его.
3. Копируем схему контроллера.
3.1 Закрываем схему и печатку нашего проекта.
3.2 Открываем схему модуля с контроллером.
3.3 Автоматом откроется и его печатка. Закрываем ее нафиг.
3.4 Выделив рамкой всю схему, с зажатым CTRL, делаем правой кнопкой мыши на схеме CUT (Ножницы). Какой наркоман так обозвал Copy to Buffer (о чем гласит подсказка) я не знаю.
3.5 Закрываем схематику модуля.
3.6 Открываем схематику нашего проекта.
3.7 Автоматом открывшийся BRD закрываем нахрен.
3.8 Через Paste вставляем кусок схемы.
3.9 Сохраняем схематику и закрываем.
3.10 Идем в BRD файл модуля.
3.11 Там через CUT вырезаем уже кусок разведенной платы.
3.12 Закрываем схематику и плату модуля.
3.13 Открываем плату нашего проекта.
3.14 Закрываем схематику, открывшуюся автоматом. Он там еще ругнется, что мол несовпадение. Говорим ок и закрываем.
3.15 Через PASTE вставляем кусок печатки.
3.16 Сохраняем и закрываем файл печатки.
4.Открываем наш проект. Печатку или схему. Вуаля — кусок модуля уже тут. Схема привязана. Делаем ERC тест, чтобы убедиться, что все воткнулось как надо и даже ошибок нет.

Но это несложно, в проекте же ничего нет, а имена и цепи и так совпадали. Добавляем второй узел. Все точно также. Закрываем наш проект, открываем проект узла. Делаем там CUT на участке схемы. Потом PASTE на схеме в нашем проекте, разумеется не забываем закрывать перед этим BRD файл, чтобы он не воткнул туда элементов неразведенных автоматом. Сохраняем.

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

А дальше открываем проект и делаем ERC тест. Будет похожая картина:


Крупнее

Как видим, с элементами и их нумерацией он сам как то разобрался, а что делать с VCC/VCC1 и GND/GND1 мы уже в курсе. Берем и правим их на месте. В моем случае, хоть и выглядело страшно, но поправить потребовалось только цепи питания. После чего все эти ошибки исчезли. Обычно так и бывает.

Теперь можно сделать беглый тест на адекватность имен. Это просто. Тыкаем глазиком в схеме по элементам и цепям и смотрим, чтобы они подсвечивались на печатке и наоборот. Если в цепи есть хоть один криво названный элемент, то подсветка перестает работать. В смысле сквозная подсветка. Т.е. выделяться будет только на схеме или только на печатке, но никак не везде сразу.

А вот если не работает, то вам не повезло. Придется вручную искать косяк, перебирая все элементы и сравнивая их номера и цепи на которых они сидят. Но это случается крайне редко. Обычно игл сам на них ткнет в ERC списке и останется только им назначить верные имена.

16 thoughts on “Eagle CAD: copy-past like a boss”

  1. «Одним из серьезных недостатков Eagle CAD являет ни разу не интуитивный интерфейс. С другой стороны, он удобен, а значит RTFM. »
    Кхм, вы это P-CAD’у скажите :D

  2. Вообще если открыть файлы печатки и/или схемы тектовым редатором то можно увидеть обычный xml который достаточно понятный и реплейсом менять всякие GND1 -> GND гороздо удобнее чем кликать по плате 100500 раз.

    1. Вот, я тоже предпочитаю править вручную XML, если править нужно много.
      С помощью ручной правки (если точнее, я маленький скриптик написал для этого) я даже обхожу ограничения бесплатной версии на размер платы. Мне всего пары сантиметров не хватило в ширину, так я автоматом сдвинул все координаты влево (уменьшил все абсциссы на константу), развёл невлезшее, затем сдвинул все абсциссы на то же число, только не с минусом, а с плюсом.

      А вот о том, что EAGLE позволяет копировать разводку, если перед этим закрыть схему, я не догадывался. Спасибо, DI HALT, очень актуально!

  3. Немного заморочено, но всё же. Спасибо за инфу! Очень не хватало своего мозга чтоб дотюмкать до этого.

  4. Еще один нюанс. При копировании нескольких однотипных плат на одном листе то нумерация элементов идет с прибавлением ( был один разъем X1- получились X2,X3…) Я с помощью скрипта copy-silk-screen.ulp перед клонированием плат создаю новые слои шелкографии и для создания gerber использую новие слои silk

  5. Добрый день. Уважаемый DI HALT, не могу найти на сайте Вашу почту. Свяжитесь, пожалуйста, со мной по емайлу «мой ник»@майл.ру
    Есть предложение.

  6. Хм… Метода с копированием куска платы, в принципе, универсальная. Должна сработать и для DipTrace, надо попробовать. А то я недавно тибидохался с этим. Хорошо у меня 4 фрагмента было, а не 16 :)

  7. Иглу нужно накрыться тряпочкой и сдохнуть, с его интерфейсом.
    Ну и да, дождаться пока Диптрейс начнет нормально такие макросы поддерживать.

  8. Спасибо, огромное! Сэкономили мне кучу времени! Плата 12-ти фазного инвертора отняла бы кучу времени. А так, размножение фаз заняло 15 минут.

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

Ваш e-mail не будет опубликован.

Перед отправкой формы:
Human test by Not Captcha