Desain PCB menggunakan kode alih-alih mengklik mouse? [Tutup]


14

Saya baru saja masuk ke desain PCB dan saya biasanya mengalami kesulitan belajar bagaimana menggunakan GUI dengan menu dan mengklik mouse. Apakah beberapa insinyur menggunakan sesuatu yang lebih seperti kode untuk menghasilkan PCB?


7
Saya tidak akan merekomendasikan menulis file gerber biasa ...
Huisman

31
Tata letak PCB sebagian besar tugas visual - memindahkan dan memutar barang agar pas. Melakukannya dengan kode terdengar menyakitkan.
JRE

3
Biasanya ada hot key untuk sebagian besar (jika tidak semua) item menu; sebagian besar alat memungkinkan input teks untuk lokasi dan orientasi (tetapi jauh lebih menyakitkan untuk melakukannya daripada hanya memindahkan barang dengan mouse). Saya menggunakan alat teks untuk mendapatkan penempatan yang tepat dari hal-hal seperti vias dan pasangan diferensial.
Peter Smith

4
Beberapa paket CAD lebih banyak klik daripada yang lain. Dalam pengalaman saya, Orcad Allegro adalah yang terburuk untuk membuat Anda melalui banyak tindakan GUI yang tidak berguna untuk menyelesaikan hal-hal sederhana. Diptrace adalah pengalaman pengguna yang paling mudah dan paling lancar. PADS adalah toolchain yang sangat bagus dengan UI yang intuitif dan banyak fitur kelas atas. PADS adalah untuk para insinyur yang suka menyelesaikan sesuatu, Orcad untuk para masokis. : D
Wossname

2
Ada cara pintas keyboard dan kasus-kasus unik di mana generasi pola terprogram masuk akal, tetapi tata letak PCB sebagian besar merupakan tugas grafis interaktif. Dalam situasi kontras di mana logika mendominasi perwujudan fisik seperti FPGA dan (banyak bagian) desain ASIC biasanya didorong oleh bahasa deskripsi perangkat keras penyusun logika yang menyuplai alat tempat & rute otomatis. Jika kita masih membangun prosesor mainframe dari papan besar penuh TTL mungkin ada aliran desain yang sebanding untuk HDL ke PCB ... tapi untungnya kita tidak.
Chris Stratton

Jawaban:


19

Altium sebenarnya memiliki bahasa scripting, beberapa bahasa yang berbeda. Dalam beberapa kasus mungkin masuk akal untuk menggunakan algoritma, misalnya untuk membuat tata letak berulang atau bagian yang ditempatkan tepat di posisi tertentu.

Sebagai contoh, saya telah melihatnya digunakan untuk menempatkan bagian-bagian (LED) dalam pola melingkar, meskipun dengan diperkenalkannya snap grid koordinat kutub yang jauh lebih kecil nilainya kerepotan.

Kami telah menggunakan algoritma untuk membuat bentuk (pikirkan antena dan hal semacam itu) secara langsung dalam format .dxf yang kemudian dapat diimpor ke dalam lapisan tembaga.

Secara umum, kode kurang cocok untuk keperluan tata letak PCB, terutama untuk tugas perutean.


17

Dalam EAGLE CAD, semua yang dapat Anda lakukan dengan mouse dapat Anda lakukan dari baris perintah. Ini juga memiliki bahasa pengguna yang pada dasarnya dapat Anda programkan.


2
Sangat berguna saat melakukan pola, dll. Bahkan jika Anda melakukan 99% tata letak secara manual, Anda masih dapat mengatur bagian / fitur dengan kode.
Wesley Lee

1
Seringkali, saya kode dalam Matlab atau prosesor teks untuk menghasilkan bahasa scripting.
Scott Seidman

3
Iya! Saya biasa melakukannya dengan Python :)
Wesley Lee

1
Ini adalah salah satu keunggulan utama Eagle. Setelah Anda mulai, Anda hanya akan menggunakan baris perintah.
D Duck

7

Saya menggunakan kode untuk menghasilkan netlist untuk PCB saya. (Jauh, jauh lebih cepat untuk menulis for-loop untuk membangun multiplexer N-bit daripada menggambar semua hal itu dengan susah payah.) Untungnya, file netlist KiCAD hanyalah teks, dalam format yang tidak terdokumentasi tetapi cukup mudah untuk dibalik -insinyur.

Saya menulis perpustakaan C # kecil yang memungkinkan saya mengetik apa yang ingin saya hubungkan dengan apa (dalam hal blok parametrik sirkuit yang dapat digunakan kembali), dan secara otomatis meludahkan netlist. Sekarang saya bisa mengimpor langsung ke KiCAD dan mulai membangun PCB, tanpa harus membuang satu jam atau lebih dengan tidak berguna menggambar skematis untuk itu. (Perpustakaan bahkan melakukan beberapa pemeriksaan yang sangat mendasar untuk memastikan instruksi saya tidak sepenuhnya palsu, meskipun saya curiga KiCAD sendiri akan melakukan pekerjaan itu dengan lebih baik.)

Kicad file PCB, di sisi lain, juga teks, tetapi tampaknya jauh terlalu rumit untuk menghasilkan pemrograman. Yang memalukan, karena KiCAD default untuk membuang semua komponen langsung di atas satu sama lain, mengharuskan saya untuk menghabiskan 20 + menit dengan susah payah memisahkan mereka lagi sehingga saya bisa melihat apa yang saya lakukan. (KiCAD memiliki kebiasaan buruk untuk mencoba memindahkan teks daripada komponen yang dilampirkan , mungkin hanya untuk membuat PCB lebih sulit untuk dirancang?)

Mungkin suatu hari nanti saya akan mengatur juga mengotomatiskan tata letak komponen awal; Saya menduga, seperti yang orang lain katakan, bahwa "desain PCB" yang sebenarnya akan selalu melibatkan GUI.


Akan lebih baik untuk menghubungkan salah satu mesin layout graphviz ke KiCAD untuk penempatan awal. Saya telah menggunakan graphviz untuk membuat file LTspice untuk tata letak yang sangat sederhana dan bekerja dengan cukup baik.
pipa

3
Ada beberapa alat dalamicicad untuk menyebar komponen awalnya, itu disebut "Global spread and place". Untuk menghindari memindahkan teks, saya biasanya menonaktifkan layer teks untuk tata letak. Setelah semua orang dapat melihat teks dengan mengklik jika diperlukan.
jpa

4

Saya tidak akan merekomendasikan itu, tetapi jika Anda benar-benar ingin Anda dapat menulis karya seni PCB sendiri, tanpa program PCB. Kode ini terlihat seperti ini:

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

Nomor baris di paling kanan bukan bagian dari file. Memeriksa file ini tanpa sepengetahuan Gerber sebelumnya, akan dengan benar menyimpulkan bahwa setiap baris mewakili perintah mesin tertentu dan bahwa tanda bintang (*) adalah akhir dari karakter perintah. Tampaknya ada berbagai jenis perintah: instruksi yang dimulai dengan G, D, M dan x, data koordinat y.

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

Berikut adalah spesifikasi yang menunjukkan berbagai perintah


2
Gerber (RS-274X) terkait dengan file G-code (RS-274) yang digunakan dalam pemrograman CNC. Terkadang saya menulis kode-G langsung dengan editor teks untuk tugas-tugas 2.5D sederhana.
Spehro Pefhany

5
Hanya sebuah pengamatan: jika Anda adalah pembuat kode pengkodean langsung, maka tidak ada pemeriksaan aturan desain yang terjadi selain yang Anda bayangkan di kepala Anda. Saya tidak bisa membayangkan mengetik file teks gerber, mengirimnya ke rumah hebat tanpa pernah membuka file dalam alat GUI hanya dengan melihatnya, kecuali jika Anda adalah ahli tingkat selanjutnya.
mkeith

1
Saya tidak yakin apakah Gerber terkait dengan kode-G, tetapi saya curiga. Jika seseorang perlu menulis lapisan atas sederhana untuk antena atau filter, mungkin tidak terlalu buruk untuk membuat kode sendiri. Saya hanya mengedit kode-G, tetapi tidak pernah mencoba menulisnya.
Voltage Spike

6
Siapa pun yang dapat bekerja lebih baik dengan G-code daripada alat visual semacam untuk papan kompleks pasti akan menjadi orang yang luar biasa. Siapa pun yang dapat bekerja secara langsung dalam G-code dan menjadi produktif harus dianggap sebagai orang yang berbakat, saya pikir.
mkeith

1
Saya tidak mengenal semua 7,5 miliar orang di dunia, tetapi saya dapat mengatakan dengan yakin bahwa tidak ada satu orang pun di dunia ini yang akan melakukan pekerjaan yang lebih baik dengan melihat kode gerber daripada tampilan grafis untuk tujuan profesional multi-layer yang serius dan multi-layer. papan.
whatsisname

1

Jika Anda menggunakan Kicad, lihat beberapa video dari pembicaraan di KiCon pertama (2019) di Youtube. Beberapa pembicaraan secara eksplisit tentang presenter alat menulis untuk menghasilkan bagian-bagian, satu juga tentang koneksi. Setidaknya satu python digunakan, yang dipanggang sebagai bahasa scripting.


1
Bisakah Anda menguraikan dan menambahkan tautan ke video, dan ke alat. (Melambaikan tangan ke sebuah konferensi mungkin merupakan komentar yang bermanfaat, tetapi itu tidak cukup memenuhi syarat sebagai jawaban.)
Nick Alexeev
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.