Дизайн печатной платы с использованием кода вместо щелчка мышью? [закрыто]

14

Я только начинаю проектировать печатную плату, и у меня, как правило, возникают проблемы с изучением того, как использовать GUI с меню и щелчком мыши. Используют ли некоторые инженеры что-то более похожее на код для генерации печатных плат?

guidoism
источник
7
Я не рекомендовал бы писать простые файлы
Huisman
31
Компоновка печатной платы - это в основном визуальная задача - перемещать и вращать элементы, чтобы привести их в соответствие. Делать это с помощью кода звучит больно.
JRE
3
Обычно есть горячие клавиши для большинства (если не всех) пунктов меню; большинство инструментов позволяют вводить текст для определения местоположения и ориентации (но сделать это гораздо сложнее, чем просто перемещать объекты с помощью мыши). Я использую текстовые инструменты, чтобы получить точное расположение таких вещей, как переходные и дифференциальные пары.
Питер Смит
4
Некоторые пакеты САПР более клики, чем другие. По моему опыту, Orcad Allegro - худший способ заставить вас пройти через множество бессмысленных действий с графическим интерфейсом, чтобы выполнить самые простые вещи. Diptrace - это в значительной степени самый простой и плавный пользовательский интерфейс. PADS - очень хороший набор инструментов с интуитивно понятным пользовательским интерфейсом и множеством высококачественных функций. PADS для инженеров, которые любят делать вещи, Orcad для мазохистов. : D
Wossname
2
Существуют сочетания клавиш и уникальные случаи, когда имеет смысл программная генерация шаблонов, но компоновка печатной платы в основном представляет собой интерактивную графическую задачу. В отличие от ситуаций, когда логика доминирует над физическим вариантом осуществления, таким как FPGA и (многие части) проектирования ASIC, обычно приводятся в действие языками описания аппаратных средств, которые снабжают логические компиляторы, питающие автоматизированные инструменты определения местоположения и маршрута. Если бы мы все еще собирали процессоры для мэйнфреймов из больших плат, заполненных TTL, то можно было бы сопоставить процесс проектирования HDL и PCB ... но, к счастью, это не так.
Крис Страттон

Ответы:

19

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

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

Мы использовали алгоритмы для создания фигур (например, антенны и тому подобное) непосредственно в формате .dxf, который затем можно импортировать в медный слой.

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

Спехро Пефхани
источник
17

В EAGLE CAD все, что вы можете сделать с помощью мыши, вы можете сделать из командной строки. Он также имеет пользовательский язык, на котором вы можете программировать.

Скотт Сейдман
источник
2
Очень полезно при создании шаблонов и т. Д. Даже если вы делаете 99% макета вручную, вы все равно можете упорядочить детали / элементы с помощью кода.
Уэсли Ли
1
Часто я кодирую в Matlab или текстовом процессоре для вывода языка сценариев.
Скотт Сейдман
3
Да! Раньше я делал это на Python :)
Уэсли Ли
1
Это одно из ключевых преимуществ Eagle. После запуска вы будете использовать только командную строку.
D Duck
7

Я использую код для генерации списка соединений для моих печатных плат. (Писать цикл for для создания N-битного мультиплексора гораздо, гораздо быстрее, чем кропотливо рисовать все эти вещи на схеме.) К счастью, файлы списков соединений KiCAD - это просто текст, в недокументированном, но разумном формате. легко изменить -engineer.

Я написал небольшую библиотеку C #, которая позволяет мне вводить то, что я хочу подключить к чему-либо (с точки зрения многократного использования параметрических блоков схем), и оно автоматически выплевывает список соединений. Теперь я могу просто импортировать это прямо в KiCAD и приступить к сборке печатной платы, не тратя впустую час или около того, бесполезно рисуя для нее схему. (Библиотека даже выполняет некоторые базовые проверки, чтобы убедиться, что мои инструкции не являются полностью поддельными, хотя я подозреваю, что сам KiCAD справится с этой задачей лучше.)

Файлы PCB Kicad, с другой стороны, также текст, но , как представляется, далеко слишком сложными для создания программно. Это позор, потому что по умолчанию KiCAD сбрасывает все компоненты непосредственно друг на друга, и мне приходится тратить 20 с лишним минут, утомительно отделяя их друг от друга, чтобы я мог видеть, что, черт возьми, я делаю. (У KiCAD есть неприятная привычка пытаться перемещать текст, а не компонент, к которому он прикреплен , предположительно только для того, чтобы затруднить разработку печатных плат?)

Возможно, когда-нибудь мне удастся автоматизировать первоначальную компоновку компонентов; Я подозреваю, что, как уже говорили другие, фактический бит "PCB design" всегда будет включать GUI.

MathematicalOrchid
источник
Было бы хорошо , чтобы подключить один из GraphViz в компоновочных двигателей до Kicad для первичного размещения. Я использовал graphviz для создания файлов LTspice для очень простых макетов, и это работало достаточно хорошо.
труба
3
В kicad есть несколько инструментов для первоначального распределения компонентов, это называется «Глобальное распространение и размещение». Чтобы избежать перемещения текста, я обычно отключаю текстовые слои для макета. В конце концов можно увидеть текст, нажав, если это необходимо.
JPA
4

Я не рекомендовал бы это, но если вы действительно хотите, вы можете написать PCB обложку самостоятельно, без какой-либо программы для PCB. Код выглядит так:

G90 *
1 G70 *
2 G54D10 *
3 G01X0Y0D02 *
4 X450Y330D01 *
5 X455Y300D03 *
6 G54D11 *
7 Y250D03 *
8 Y200D03 *
9 Y150D03 *
10 X0Y0D02 *
11 M02 *
12

Номера строк в правом нижнем углу не являются частью файла. Изучив этот файл без каких-либо предварительных знаний о Гербере, можно было бы правильно сделать вывод, что каждая строка представляет определенную машинную команду и что звездочка (*) является символом конца команды. Кажется, есть разные виды команд: инструкции, начинающиеся с координатных данных G, D, M и x, y.

Источник: https://www.artwork.com/gerber/appl2.htm

Вот спецификация, которая показывает различные команды

Скачок напряжения
источник
2
Gerber (RS-274X) относится к файлам G-кода (RS-274), используемым в программировании ЧПУ. Иногда я пишу G-код напрямую с помощью текстового редактора для простых задач 2.5D.
Спехро Пефхани
5
Просто замечание: если вы работаете с герберами с прямым кодированием, тогда никакой проверки правил проектирования не происходит, кроме визуализации в вашей голове. Я не могу себе представить, как напечатать текстовый файл gerber, отправить его в потрясающий дом, даже не открывая файл в инструменте с графическим интерфейсом пользователя, просто глядя на него, если только вы не являетесь каким-то новым уровнем знаний.
mkeith
1
Я не был уверен, был ли Гербер связан с G-кодом, но у меня было подозрение. Если нужно написать простой верхний слой для антенны или фильтра, возможно, не так уж плохо кодировать что-то самостоятельно. Я только редактировал G-код, но никогда не пытался его написать.
напряжения
6
Любой, кто может лучше работать с G-кодом, чем какой-либо визуальный инструмент для сложной доски, определенно будет исключительным человеком. Я думаю, что любой, кто может работать непосредственно в G-коде и быть продуктивным, должен был бы считаться ученым.
mkeith
1
Я не знаю всех 7,5 миллиардов человек в мире, но я могу с уверенностью сказать, что нет ни одного существующего человека, который бы лучше смотрел код гербера, чем графический дисплей для любого серьезного, многослойного профессионального назначения. доски.
whatsisname
1

Если вы используете Kicad, посмотрите видео с выступлений на первом KiCon (2019) на Youtube. Пара бесед была явно о средствах написания докладчиков для создания частей, одна также о связях. По крайней мере один из них использовал Python, который используется как язык сценариев.

бандит
источник
1
Не могли бы вы разработать и добавить ссылки на видео и инструменты. (Размахивание в сторону конференции может быть полезным комментарием, но он не совсем подходит для ответа.)
Ник Алексеев