Progettazione PCB utilizzando il codice anziché fare clic con il mouse? [chiuso]


14

Mi sto solo occupando della progettazione di PCB e generalmente ho difficoltà a imparare a utilizzare le GUI con i menu e il clic del mouse. Alcuni ingegneri usano qualcosa di più simile al codice per generare PCB?


7
Non consiglierei di scrivere semplici file Gerber ...
Huisman,

31
Il layout del PCB è principalmente un compito visivo: spostare e ruotare le cose per adattarle. Farlo con il codice sembra doloroso.
JRE

3
Di solito ci sono tasti di scelta rapida per la maggior parte (se non tutte) le voci di menu; la maggior parte degli strumenti consente l'inserimento di testo per posizione e orientamento (ma è molto più doloroso farlo che spostare semplicemente le cose con il mouse). Uso gli strumenti di testo per ottenere un posizionamento preciso di cose come vias e coppie differenziali.
Peter Smith,

4
Alcuni pacchetti CAD sono più cliccabili di altri. Nella mia esperienza, Orcad Allegro è il peggiore per averti fatto passare molte azioni della GUI inutili per fare le cose più semplici. Diptrace è praticamente l'esperienza utente più semplice e fluida. PADS è una toolchain molto bella con un'interfaccia utente intuitiva e molte funzionalità di fascia alta. PADS è per gli ingegneri a cui piace fare le cose, Orcad è per i masochisti. : D
Wossname

2
Esistono scorciatoie da tastiera e casi unici in cui la generazione programmatica di modelli ha senso, ma il layout del PCB è principalmente un'attività grafica interattiva. Al contrario, le situazioni in cui la logica domina la forma di realizzazione fisica come FPGA e (molte parti del) design ASIC sono generalmente guidate da linguaggi di descrizione hardware che alimentano compilatori logici che alimentano strumenti automatici di localizzazione e percorso. Se stessimo ancora costruendo processori mainframe da grandi schede piene di TTL, potrebbe esserci un flusso di progettazione comparabile per HDL e PCB ... ma per fortuna non lo siamo.
Chris Stratton,

Risposte:


19

Altium ha in effetti un linguaggio di scripting, diverse lingue diverse. In alcuni casi può essere logico utilizzare algoritmi, ad esempio per creare layout o parti ripetitivi posizionati esattamente in determinate posizioni.

Ad esempio, l'ho visto usato per posizionare le parti (LED) in un modello circolare, anche se con la loro introduzione di griglie a scatto con coordinate polari è molto meno probabile che valga la pena.

Abbiamo usato algoritmi per creare forme (pensate alle antenne e quel genere di cose) direttamente in formato .dxf che possono quindi essere importati in uno strato di rame.

In generale, il codice non è adatto per scopi di layout PCB, in particolare per l'attività di routing.


17

In EAGLE CAD, tutto ciò che puoi fare con un mouse puoi farlo dalla riga di comando. Ha anche una lingua utente in cui puoi essenzialmente programmare.


2
Molto utile quando si eseguono motivi, ecc. Anche se si esegue manualmente il 99% del layout, è comunque possibile disporre parti / funzioni con il codice.
Wesley Lee,

1
Spesso codice in Matlab o in un elaboratore di testi per generare un linguaggio di scripting.
Scott Seidman,

3
Sì! Lo facevo in Python :)
Wesley Lee il

1
Questo è uno dei vantaggi chiave di Eagle. Una volta iniziato, utilizzerai solo la riga di comando.
D Duck

7

Uso il codice per generare la netlist per i miei PCB. (È molto, molto più veloce scrivere un for-loop per costruire un multiplexer N-bit piuttosto che disegnare faticosamente tutta quella roba in uno schema.) Fortunatamente, i file della netlist KiCAD sono solo testo, in un formato non documentato ma ragionevolmente facile da invertire -ingegnere.

Ho scritto una piccola libreria C # che mi permette di digitare ciò che voglio connesso a ciò (in termini di blocchi parametrici riutilizzabili di circuiti) e sputa automaticamente una netlist. Ora posso semplicemente importarlo direttamente in KiCAD e iniziare a costruire il PCB, senza dover perdere un'ora o così inutilmente disegnandone uno schema. (La biblioteca fa anche alcuni controlli molto basilari per assicurarsi che le mie istruzioni non siano completamente fasulle, anche se sospetto che KiCAD stesso farebbe meglio quel lavoro.)

Lime del PWB Kicad, d'altra parte, sono anche il testo, ma sembrano essere di gran lunga troppo complesso per generare a livello di codice. È un peccato, perché KiCAD ha come impostazione predefinita lo scaricamento di tutti i componenti direttamente uno sopra l'altro, il che mi richiede di dedicare più di 20 minuti noiosamente a separarli di nuovo in modo da poter vedere cosa diavolo sto facendo. (KiCAD ha la brutta abitudine di provare a spostare il testo anziché il componente a cui è collegato , presumibilmente solo per rendere i PCB più difficili da progettare?)

Forse un giorno riuscirò anche ad automatizzare il layout del componente iniziale; Sospetto, come altri hanno già detto, che l'attuale bit di "progettazione PCB" coinvolgerà sempre la GUI.


Sarebbe bello collegare uno dei motori di layout di graphviz a KiCAD per il posizionamento iniziale. Ho usato graphviz per creare file LTspice per layout molto semplici e ha funzionato abbastanza bene.
pipe

3
Ci sono alcuni strumenti in kicad per distribuire inizialmente i componenti, si chiama "diffusione e luogo globali". Per evitare di spostare il testo, di solito disabilito solo i livelli di testo per il layout. Dopo tutto si può vedere il testo facendo clic se necessario.
jpa,

4

Non lo consiglierei, ma se lo desideri davvero puoi scrivere tu stesso la grafica del PCB, senza alcun programma PCB. Il codice è simile al seguente:

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

I numeri di riga all'estrema destra non fanno parte del file. Esaminando questo file senza alcuna conoscenza preliminare di Gerber si dedurrebbe correttamente che ogni riga rappresenta un comando macchina particolare e che l'asterisco (*) è la fine del carattere di comando. Sembra che ci siano diversi tipi di comandi: istruzioni che iniziano con G, D, M e x, y coordinate dei dati.

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

Ecco una specifica che mostra i diversi comandi


2
Gerber (RS-274X) è correlato ai file di codice G (RS-274) utilizzati nella programmazione CNC. A volte scrivo G-code direttamente con un editor di testo per semplici compiti 2.5D.
Spehro Pefhany,

5
Solo un'osservazione: se sei un gerber di codifica diretta, allora non c'è nessun controllo delle regole di progettazione diverso da quello che visualizzi nella tua testa. Non riesco a immaginare di scrivere un file gerber di testo, inviandolo a fab house senza mai aprire il file in uno strumento GUI a guardarlo, a meno che tu non sia un esperto di livello successivo di qualche tipo.
mkeith,

1
Non ero sicuro che Gerber fosse legato al codice G, ma avevo un sospetto. Se fosse necessario scrivere un semplice strato superiore per un'antenna o un filtro, potrebbe non essere troppo male codificare qualcosa da soli. Ho modificato solo il codice G, ma non ho mai provato a scriverlo.
Voltage Spike,

6
Chiunque possa lavorare meglio con il codice G di uno strumento visivo di qualche tipo per una scheda complessa sarebbe sicuramente una persona eccezionale. Chiunque possa lavorare direttamente nel G-code ed essere produttivo dovrebbe essere considerato un esperto, credo.
mkeith,

1
Non conosco tutti i 7,5 miliardi di persone nel mondo, ma posso dire con certezza che non esiste una sola persona che farebbe un lavoro migliore guardando il codice gerber di un display grafico per qualsiasi serio scopo multi-livello professionale stiro.
whatsisname

1

Se stai usando Kicad, guarda alcuni dei video dei colloqui al primo KiCon (2019) su Youtube. Un paio di discorsi riguardavano esplicitamente gli strumenti di scrittura dei presentatori per generare le parti, uno anche sulle connessioni. Almeno un pitone usato, che è citato come linguaggio di scripting.


1
Potresti per favore elaborare e aggiungere collegamenti ai video e agli strumenti. (Fare un cenno verso una conferenza potrebbe essere un commento utile, ma non si qualifica come una risposta.)
Nick Alexeev
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.