Menggabungkan PCB dengan Gerbmerge

Kami adalah startup kecil yang mengembangkan elektronik modern. Tentu saja, kami secara teratur membuat batch pengujian kecil untuk pembuatan yang tidak masuk akal untuk memesan produksi penuh - biaya persiapan akan menjadi item anggaran terbesar. Oleh karena itu, kami secara teratur menemukan cara lebih cepat, lebih murah, dan lebih efisien untuk mengumpulkan kumpulan ini secara mandiri. Terkadang dalam proses itu sesuatu yang baru lahir atau sesuatu yang lama ditambahkan. Kami akan membagikan hasilnya secara berkala kepada Anda.

Salah satu cara untuk mengurangi biaya pembuatan papan sirkuit tercetak adalah dengan menggabungkan beberapa papan pada satu benda kerja dan mengirimkan benda kerja ini ke pabrik sebagai satu proyek. Kuncinya adalah bahwa pabrik-pabrik yang serius mengambil uang untuk menyiapkan produksi setiap papan, dan Cina yang berorientasi DIY sering menawarkan (Seeedstudio, misalnya) harga tetap untuk ukuran PCB tetap. Dalam kasus pertama, satu proyek, bahkan jika pada akhirnya dipotong menjadi beberapa papan, akan dianggap sebagai satu papan, dan yang kedua, dimungkinkan untuk mengakomodasi beberapa papan kecil menjadi satu benda kerja standar.

Selain itu, menggabungkan papan nyaman jika Anda membuat set tetap - misalnya, Anda memiliki satu modul kontrol dan empat modul eksekutif di proyek Anda; Dalam hal ini, itu adalah hal biasa untuk menempatkan mereka pada satu kosong dan selalu memesan hanya dengan kit seperti itu.

Dalam hal ini, kami memiliki satu dan yang lain - baik kit dan keinginan untuk menghemat produksi batch percobaan.



Ini adalah satu proyek. Ini memiliki 32 papan dari 13 jenis. Cara merakit proyek semacam itu dalam seperempat jam - di bawah.

Anehnya, upaya untuk menemukan perangkat lunak yang siap pakai dan setidaknya relatif terjangkau untuk operasi semacam itu dengan cepat membuat seseorang depresi - setelah lima situs pertama yang menawarkan untuk memanggil nomor telepon tertentu untuk mendapatkan penawaran harga individual. Masalahnya adalah bahwa pabrik biasanya terlibat dalam pekerjaan langsung dengan file format Gerber RS-274X, dan oleh karena itu biaya semua perangkat lunak tersebut tradisional untuk penggunaan komersial, dari beberapa ratus dolar per workstation.

Proposal anggaran hanya dapat mengalikan satu papan dengan banyak salinan (di Eagle, misalnya, ini adalah fungsi asli), tetapi tidak mengumpulkan beberapa file dari proyek yang berbeda. atau - lebih sering - mereka tidak tahu apa-apa. Dari yang relatif murah, saya berhasil menemukan hanya ViewMate Deluxe, yang sepadan, meskipun tidak terlalu banyak, tetapi masih kurang dari $ 100 dan dapat mengedit gerberas - itu hanya bekerja di tempat yang sangat mirip dengan siksaan canggih.

Selain semua kemegahan ini, ada satu paket, benar-benar gratis - GPLv3 - dan dibuat persis untuk tugas ini: untuk menelan sekelompok gerberas dari proyek yang berbeda dan menempatkannya di satu lembar.

Ini adalah GerbMerge , skrip python . Menumbuk gerbera Anda, selama beberapa menit ia mencoba mengaturnya dalam ribuan cara berbeda, memilih yang terbaik dari mereka - dari sudut pandangnya.

GerbMerge hanya dapat bekerja dengan file Gerber RS-274X dan Excellon, tetapi ini sulit untuk mempertimbangkan kelemahan - CAD apa pun yang dapat digunakan setidaknya secara teoritis dapat mengekspor papan dalam format ini, dan pabrik mana pun dapat menerimanya. Selain itu, jika Anda menginginkan jaminan maksimum dari hasil dan peluang minimum untuk tangan yang bengkok dari pabrik - itu adalah Gerber + Excellon yang sebelumnya Anda periksa, dan Anda harus mengirimnya.

Saya tidak memberikan tautan ke situs web GerbMerge sekarang, karena tidak jelas apa yang dianggap sebagai situs - menilai riwayat suntingan dan hak cipta, ia berpindah tangan beberapa kali dengan jeda selama satu atau dua tahun, dan setiap kali ia ditinggalkan. Akibatnya, ketika saya mencoba menjalankannya, saya segera menemukan bahwa:

  1. Itu tidak diinstal
  2. Setelah diinstal, itu tidak dimulai
  3. Saat berjalan, itu tidak mencerna file DipTrace
  4. Didorong, file dalam satuan metrik tidak dicerna
  5. Di bawah Cygwin itu tidak berfungsi sama sekali
  6. Ada upaya untuk merapikan installer - ke arah yang benar, tetapi tidak lengkap
  7. Ada upaya untuk mengurutkan unit metrik - ke arah yang benar, tetapi tidak lengkap
  8. Semua tautan ke paket instalasi siap pakai untuk Windows umumnya rusak tahun lalu


Namun, tidak ada alternatif sama sekali. Oleh karena itu, setelah beberapa pertimbangan, tim pemasar profesional, yang tidak pernah menulis baris dengan Python, duduk dan menertibkan gerbmerge.

Dan sekarang - tautan: github.com/unwireddevices/gerbmerge

Dalam versi 1.9.4, yang sekarang tersedia di tautan ini, gerbmerge:

  • Berhasil berjalan di Linux, Windows dan Cygwin
  • Itu diinstal di bawah semua sistem menggunakan alat standar tanpa mengedit apa pun dengan tangan.
  • Memahami DipTrace Generated Files
  • Bekerja dengan inci dan milimeter


Instal GerbMerge



GerbMerge adalah skrip python, jadi instalasi memiliki karakteristiknya sendiri. Itu dapat diluncurkan di Linux dan Windows (asli dan di bawah Cygwin), secara teoritis juga di MacOS, tapi saya tidak memeriksa - tidak ada apa-apa.

Linux .

Karena Anda hampir pasti sudah menginstal python, pip, dan gcc, ia tetap menginstal simpleparse - pip install simpleparse , dan kemudian pergi ke gerbmerge. Unduh arsip sumber dari github , unzip, masuk ke dalam:

python setup.py sdist
sudo pip install dist/gerbmerge-1.9.4.tar_gz


Perintah pertama akan menyiapkan paket instalasi untuk sistem Anda, yang kedua akan menginstalnya. Anda dapat, tentu saja, segera membuat sudo python setup.py menginstal , tetapi kemudian jika Anda ingin meninggalkan gerbmerge atau memperbaruinya, Anda akan menghapus file-nya dengan pegangan.

Windows / Cygwin .

Instal Cygwin dengan paket python, python-setuptools dan gcc (yang terakhir diperlukan untuk membangun simpleparse). Unduh arsip sumber gerbmerge, unzip, buka Cygwin dan buka direktori sumber.

easy_install-x.y pip
pip install simpleparse
python setup.py sdist
pip install dist/gerbmerge-1.9.4.tar_gz


Perintah pertama (bukannya xy akan menjadi versi python Anda, yaitu, kemungkinan besar 2,7) akan menginstal pip, sisanya akan sama seperti di Linux.

Windows asli .

Unduh penginstal python untuk sistem Anda dan instal - secara default terinstal di C: \ Python27 \ dan menyeret pip yang kami butuhkan bersama Anda. Unduh gerbmerge, unzip. Jalankan cmd.exe dan buka folder sumber gerbmerge:

c:\python27\scripts\pip.exe install simpleparse
c:\python27\python.exe setyp.py sdist
c:\python27\scripts\pip.exe istall dist\gerbmerge-1.9.4.zip


Itu saja. Jika dalam kasus-kasus sebelumnya gerbmerge dimulai, pada kenyataannya, dengan perintah gerbmerge, maka untuk menjalankannya, Anda perlu memanggil file c: \ Python27 \ gerbmerge.bat (jika Anda meletakkan Python di folder yang berbeda, path harus diubah sesuai dengan itu).

Menggunakan GerbMerge



Gerbmerge membutuhkan file konfigurasi dan set file dengan gerberas dari papan sumber. Pada github di folder contoh ada contoh keduanya, baik untuk gerberas inci dan metrik.

File konfigurasi menjelaskan beberapa parameter dasar, dan setelah mereka mendaftar semua papan yang perlu Anda kumpulkan - menunjukkan di mana file-file mereka berada dan apa namanya, serta berapa banyak masing-masing untuk dimasukkan ke dalam tugas akhir:

[DEFAULT]
projdir = .

[Options]
ExcellonLeadingZeros = 1
PanelWidth = 400
PanelHeight = 300
XSpacing = 2
YSpacing = 2
MeasurementUnits = mm
AllowMissingLayers = 0

[MergeOutputFiles]
Prefix = %(projdir)s/merged
*TopLayer=%(prefix)s/Top.gbr
*BottomLayer=%(prefix)s/Bottom.gbr
*TopSilkscreen=%(prefix)s/TopSilk.gbr
*BottomSilkscreen=%(prefix)s/BottomSilk.gbr
*TopSoldermask=%(prefix)s/TopMask.gbr
*BottomSoldermask=%(prefix)s/BottomMask.gbr
Drills=%(prefix)s/Drills.txt
BoardOutline=%(prefix)s/BoardOutline.gbr
ToolList = %(prefix)s/Tools.drl
Placement = %(prefix)s/Placement.txt

[aa]
Prefix=%(projdir)s/aa
*TopLayer=%(prefix)s/Top.gbr
*BottomLayer=%(prefix)s/Bottom.gbr
*TopSilkscreen=%(prefix)s/TopSilk.gbr
*TopSoldermask=%(prefix)s/TopMask.gbr
*BottomSilkscreen=%(prefix)s/BottomSilk.gbr
*BottomSoldermask=%(prefix)s/BottomMask.gbr
Drills=%(prefix)s/Through.drl
BoardOutline=%(prefix)s/BoardOutline.gbr

Repeat = 10

[bb]
Prefix=%(projdir)s/bb
*TopLayer=%(prefix)s/Top.gbr
*BottomLayer=%(prefix)s/Bottom.gbr
*TopSilkscreen=%(prefix)s/TopSilk.gbr
*TopSoldermask=%(prefix)s/TopMask.gbr
*BottomSilkscreen=%(prefix)s/BottomSilk.gbr
*BottomSoldermask=%(prefix)s/BottomMask.gbr
Drills=%(prefix)s/Through.drl
BoardOutline=%(prefix)s/BoardOutline.gbr

Repeat = 6


Dalam contoh ini, ada dua papan yang terletak di folder aa dan bb , file di dalamnya dengan nama ekspor DipTrace standar. Folder di dekatnya, gerbmerge dimulai di sana, sehingga direktori proyek hanya ".", Dan path ke folder, masing-masing, "./aa" dan "./bb". Papan pertama harus dibuat 10 buah pada satu benda kerja, yang kedua - enam. Gerberas berada dalam milimeter, ukuran panel maksimum adalah 400 × 300 mm, celah 2 mm harus dibuat di antara papan sehingga pabrik memotongnya dengan pemotong frais (tanyakan pada pabrik spesifik untuk dimensi panel dan celah). Rekam format Excellon untuk mesin bor dengan nol di awal, tanpa adanya file dari atas - bersumpah. Hasilnya harus disimpan dalam folder gabungan dengan nama file yang ditentukan.

Harap dicatat bahwa semua file kecuali BoardOutline dan Latihan dimulai dengan tanda bintang - ini adalah cara yang harus dilakukan. Jika Anda memasukkan AllowMissingLayers di unit, file dengan tanda bintang mungkin hilang. Tetapi tanda bintang harus dalam hal apapun (tidak terlalu logis, tetapi hal-hal sepele itu sudah terlalu malas untuk diperbaiki, mereka tidak mengganggu siapa pun).

Setelah membuat konfigurasi, tetap hanya menjalankan gerbmerge dengan itu sebagai satu-satunya parameter:

gerbmerge layout.cfg


Atau, jika Anda masih belum bergabung dengan dunia Kebebasan, Kesetaraan dan Persaudaraan (seperti saya), dan juga tidak suka Cygwin (tidak seperti saya), maka:

C:\Python27\gerbmerge.bat layout.cfg


Ketika Anda mulai gerbmerge, hang out lembar disclaimer dan tunggu sampai "y" ditekan, jika Anda bosan dengan ini, tambahkan parameter "-s".



Kecuali dinyatakan lain dalam konfigurasi, gerbmerge berfungsi selamanya, secara berkala melaporkan bahwa ia tidak mati. Anda dapat menghentikannya kapan saja dengan menekan Ctrl-C - itu akan menyimpan konfigurasi papan, yang pada saat ini akan dianggap paling sukses, dalam file, dan lengkap. Sayangnya, tidak mungkin untuk melacak seberapa sukses hasilnya, jadi cukup beri dia waktu - dari rata-rata lima menit Core i * hingga lima belas pada AMD Sempron sudah cukup untuk mendapatkan penempatan yang rapi bahkan untuk proyek seperti yang dijelaskan sebelum pemotongan.

Fitur bagus dari gerbmerge adalah secara otomatis memotong apa yang keluar dari tepi papan tertentu. Karena itu, misalnya, jika Anda memiliki komponen dengan layar sutra yang menonjol ke luar (misalnya, konektor yang menonjol keluar dari tepi), pencetakan layar sutra ini dalam tugas akhir tidak akan sampai ke papan tetangga. Pemangkasan lubang dan pencetakan layar dapat dinonaktifkan di opsi baris perintah.

File-file yang dihasilkan harus diperiksa dengan akrab oleh Gerber-viewer (saya biasanya menggunakan Viewplot ) - dan jika tidak ada yang salah, maka kirimkan ke pabrik.

Keterbatasan



  • : , - .
    , , , Placement.txt —  . , gerbmerge (--place-file=), . : gerbmerge .
  • Skrip tidak memahami campuran file inci dan metrik. Semua gerbera yang masuk harus dalam sistem yang sama yang cocok dengan yang ditentukan dalam konfigurasi. Pada prinsipnya, ini adalah kesempatan untuk pengembangan lebih lanjut, tetapi karena di dalam gerbmerge dengan bekerja dengan unit ukuran sekarang yang masih bubur, hampir tidak akan pernah saya lakukan untuk itu.


Proofpeak



Proyek yang sama dari 32 papan dari 13 jenis, dilaksanakan di PCB oleh perusahaan Microlit:



Tidak ada pertanyaan dari pabrik, tidak ada keluhan tentang kualitas.

Faq



T: Persetan dengan Anda ada begitu banyak papan ???
A: Di sini untuk proyek ini .

Source: https://habr.com/ru/post/id389775/


All Articles