PCB-Design mit Code statt Mausklick? [geschlossen]


14

Ich befasse mich gerade mit PCB-Design und habe im Allgemeinen Probleme beim Erlernen der Verwendung von GUIs mit Menüs und Mausklicks. Verwenden einige Ingenieure eher Code, um Leiterplatten zu generieren?


7
Ich würde nicht empfehlen, einfache Gerber-Dateien zu schreiben ...
Huisman

31
Das Layout der Leiterplatten ist meistens eine visuelle Aufgabe - Bewegen und Drehen, um sie passend zu machen. Es klingt schmerzhaft, es durch Code zu tun.
JRE

3
Normalerweise gibt es Tastenkombinationen für die meisten (wenn nicht alle) Menüelemente. Die meisten Tools ermöglichen die Texteingabe zur Lokalisierung und Orientierung (es ist jedoch weitaus schmerzhafter, dies zu tun, als nur Dinge mit der Maus zu bewegen). Ich benutze die Textwerkzeuge, um die genaue Platzierung von Dingen wie Durchkontaktierungen und differentiellen Paaren zu erhalten.
Peter Smith

4
Einige CAD-Pakete sind klüger als andere. Nach meiner Erfahrung ist Orcad Allegro die schlechteste Lösung, um Sie durch viele sinnlose GUI-Aktionen zu führen, um die einfachsten Aufgaben zu erledigen. Diptrace ist so ziemlich die einfachste und flüssigste Benutzererfahrung. PADS ist eine sehr schöne Toolchain mit einer intuitiven Benutzeroberfläche und vielen High-End-Funktionen. PADS ist für Ingenieure, die gerne etwas erledigen, Orcad für Masochisten. : D
Wossname

2
Es gibt Tastaturkürzel und spezielle Fälle, in denen die programmgesteuerte Erzeugung von Mustern sinnvoll ist, das PCB-Layout jedoch meist eine interaktive grafische Aufgabe ist. In Kontrastsituationen, in denen die Logik die physische Ausführungsform wie FPGA und (viele Teile des) ASIC-Designs dominiert, werden diese normalerweise von Hardware-Beschreibungssprachen gesteuert, die Logik-Compiler mit automatisierten Place & Route-Tools versorgen. Wenn wir noch Mainframe-Prozessoren aus Big Boards mit TTL bauen würden, gäbe es möglicherweise einen vergleichbaren Design-Flow für HDL zu PCB ... aber zum Glück sind wir das nicht.
Chris Stratton

Antworten:


19

Altium hat eine Skriptsprache, in der Tat mehrere verschiedene Sprachen. In einigen Fällen kann es sinnvoll sein, Algorithmen zu verwenden, um beispielsweise sich wiederholende Layouts oder Teile zu erstellen, die genau an bestimmten Positionen platziert sind.

Ich habe zum Beispiel gesehen, dass es verwendet wurde, um Teile (LEDs) in einem kreisförmigen Muster zu platzieren, obwohl die Einführung von Polarkoordinaten-Fanggittern den Aufwand viel weniger wert ist.

Wir haben Algorithmen verwendet, um Formen (etwa Antennen) direkt im DXF-Format zu erstellen, die dann in eine Kupferschicht importiert werden können.

Im Allgemeinen ist Code für PCB-Layout-Zwecke, insbesondere für die Routing-Aufgabe, schlecht geeignet.


17

In EAGLE CAD können Sie alles, was Sie mit einer Maus tun können, über die Befehlszeile ausführen. Es hat auch eine Benutzersprache, in der Sie im Wesentlichen programmieren können.


2
Sehr nützlich beim Erstellen von Mustern usw. Auch wenn Sie 99% des Layouts manuell erstellen, können Sie Teile / Features mit Code anordnen.
Wesley Lee

1
Oft codiere ich in Matlab oder einem Textverarbeitungsprogramm, um Skriptsprache auszugeben.
Scott Seidman

3
Ja! Ich habe es in Python gemacht :)
Wesley Lee

1
Dies ist einer der Hauptvorteile von Eagle. Sobald Sie gestartet haben, verwenden Sie nur die Befehlszeile.
D Duck

7

Ich benutze Code um das zu generieren Netzliste für meine Leiterplatten . (Es ist weitaus schneller, eine for-Schleife zu schreiben, um einen N-Bit-Multiplexer zu erstellen, als mühsam alles in einen Schaltplan zu zeichnen.) Glücklicherweise sind KiCAD-Netzlistendateien nur Text in einem Format, das nicht dokumentiert ist, aber relativ einfach umzukehren ist -Ingenieur.

Ich habe eine kleine C # -Bibliothek geschrieben, mit der ich eingeben kann, was mit was verbunden werden soll (in Bezug auf wiederverwendbare parametrische Schaltungsblöcke), und die automatisch eine Netzliste ausspuckt. Jetzt kann ich das einfach direkt in KiCAD importieren und mit dem Erstellen der Leiterplatte beginnen, ohne etwa eine Stunde damit verschwenden zu müssen, einen Schaltplan dafür zu zeichnen. (Die Bibliothek führt sogar einige grundlegende Überprüfungen durch, um sicherzustellen, dass meine Anweisungen nicht vorhanden sind völlig falsch sind, obwohl ich vermute, dass KiCAD selbst diese Aufgabe besser erledigen würde.)

KiCAD-PCB-Dateien sind ebenfalls Textdateien, scheinen jedoch weit entfernt zu sein zu komplex zu sein, um sie programmgesteuert zu generieren. Das ist eine Schande, da KiCAD standardmäßig alle Komponenten direkt aufeinander legt und ich über 20 Minuten Zeit habe, um sie mühsam wieder herauszunehmen, damit ich sehen kann, was zum Teufel ich tue. (KiCAD hat die unangenehme Angewohnheit, den Text zu verschieben und nicht die Komponente, an die er angehängt ist. Vermutlich nur, um die Gestaltung von Leiterplatten zu erschweren?)

Vielleicht schaffe ich es eines Tages, auch das anfängliche Komponentenlayout zu automatisieren. Ich vermute, wie andere gesagt haben, dass das eigentliche "PCB-Design" -Bit immer die GUI betreffen wird.


Es wäre schön, eine der Layout-Engines von graphviz für die Erstplatzierung an KiCAD anzubinden . Ich habe graphviz verwendet, um LTspice-Dateien für sehr einfache Layouts zu erstellen, und es hat einigermaßen gut funktioniert.
Pipe

3
Es gibt einige Tools in kicad, um die Komponenten anfangs zu verteilen. Sie heißen "Global Spread and Place". Um zu vermeiden, dass Text verschoben wird, deaktiviere ich normalerweise nur die Textebenen für das Layout. Immerhin kann man den Text durch Anklicken bei Bedarf einsehen.
jpa

4

Ich würde es nicht empfehlen, aber wenn Sie es wirklich wollen, können Sie PCB-Grafiken selbst schreiben, ohne ein PCB-Programm. Der Code sieht folgendermaßen aus:

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

Die Zeilennummern ganz rechts sind nicht Bestandteil der Datei. Betrachtet man diese Datei ohne Vorkenntnisse von Gerber, so kann man richtig ableiten, dass jede Zeile einen bestimmten Maschinenbefehl darstellt und dass das Sternchen (*) das Befehlsendezeichen ist. Es scheint verschiedene Arten von Befehlen zu geben: Befehle, die mit G-, D-, M- und x-, y-Koordinatendaten beginnen.

Quelle: https://www.artwork.com/gerber/appl2.htm

Hier ist eine Spezifikation, die die verschiedenen Befehle zeigt


2
Gerber (RS-274X) bezieht sich auf die in der CNC-Programmierung verwendeten G-Code-Dateien (RS-274). Manchmal schreibe ich G-Code direkt mit einem Texteditor für einfache 2.5D-Aufgaben.
Spehro Pefhany

5
Nur eine Beobachtung: Wenn Sie direkt codierende Gerber sind, findet keine Designregelprüfung statt, außer Sie visualisieren in Ihrem Kopf. Ich kann mir nicht vorstellen, eine Text-Gerber-Datei auszutippen und sie an Fab House zu senden, ohne die Datei jemals in einem GUI-Tool zu öffnen, wenn Sie sie nur ansehen, es sei denn, Sie sind eine Art Savant der nächsten Stufe.
mkeith

1
Ich war mir nicht sicher, ob Gerber mit G-Code verwandt war, aber ich hatte einen Verdacht. Wenn man eine einfache Deckschicht für eine Antenne oder einen Filter schreiben muss, ist es möglicherweise nicht schlecht, selbst etwas zu codieren. Ich habe nur G-Code bearbeitet, aber nie versucht, ihn zu schreiben.
Voltage Spike

6
Jeder, der mit G-Code besser arbeiten kann als irgendein visuelles Werkzeug für ein komplexes Board, wäre auf jeden Fall eine außergewöhnliche Person. Wer direkt im G-Code arbeiten und produktiv sein kann, muss meiner Meinung nach als versiert gelten.
mkeith

1
Ich kenne nicht alle 7,5 Milliarden Menschen auf der Welt, aber ich kann mit Zuversicht sagen, dass es keine einzige Person gibt, die den Gerber-Code besser betrachten kann als eine grafische Anzeige für einen seriösen, mehrschichtigen professionellen Zweck Bretter.
Whatsisname

1

Wenn Sie Kicad verwenden, sehen Sie sich einige der Videos aus den Vorträgen auf der ersten KiCon (2019) auf Youtube an. In einigen Vorträgen ging es explizit darum, dass die Moderatoren Tools für die Erstellung der Teile und auch für die Zusammenhänge erstellen. Mindestens eine verwendete Python, die als Skriptsprache eingebunden ist.


1
Könntest du bitte Links zu Videos und den Tools erstellen und hinzufügen? (Auf eine Konferenz zuzuwinken ist zwar eine lohnende Bemerkung, aber als Antwort nicht geeignet.)
Nick Alexeev
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.