Leiterplatten mit Gerbmerge kombinieren

Wir sind ein kleines Startup, das moderne Elektronik entwickelt. Natürlich stellen wir regelmäßig kleine Testchargen her, für deren Herstellung es keinen Sinn macht, eine vollwertige Produktion zu bestellen - die Vorbereitungskosten sind der größte Budgetposten. Daher überlegen wir uns regelmäßig, wie es schneller, billiger und effizienter ist, diese Chargen unabhängig voneinander zu sammeln. Manchmal wird dabei etwas Neues geboren oder etwas Altes hinzugefügt. Wir werden das Ergebnis regelmäßig mit Ihnen teilen.

Eine Möglichkeit, die Kosten für die Herstellung von Leiterplatten zu senken, besteht darin, mehrere Leiterplatten auf einem Werkstück zu kombinieren und dieses Werkstück als einzelnes Projekt an die Fabrik zu senden. Der Trick ist, dass ernsthafte Fabriken Geld für die Vorbereitung der Produktion jedes Boards benötigen und DIY-orientierte Chinesen häufig (z. B. Seeedstudio) einen festen Preis für eine feste Leiterplattengröße anbieten. Im ersten Fall wird ein einzelnes Projekt, auch wenn es letztendlich in mehrere Platten geschnitten wird, als eine Platte betrachtet, und im zweiten Fall ist es möglich, mehrere kleine Platten in einem Standardwerkstück unterzubringen.

Darüber hinaus ist das Kombinieren von Boards praktisch, wenn Sie feste Sets erstellen. Sie haben beispielsweise ein Steuermodul und vier Exekutivmodule in Ihrem Projekt. In diesem Fall ist es üblich, sie auf einen Rohling zu legen und immer mit einem solchen Kit zu bestellen.

In diesem Fall hatten wir das eine und das andere - sowohl das Kit als auch den Wunsch, bei der Produktion einer Testcharge zu sparen.



Dies ist ein Projekt. Es hat 32 Boards von 13 verschiedenen Typen. Wie man ein solches Projekt in einer Viertelstunde zusammenbaut - siehe unten.

Überraschenderweise führt der Versuch, vorgefertigte und zumindest relativ erschwingliche Software für eine solche Operation zu finden, schnell zu Depressionen - nach den ersten fünf Websites, die anbieten, die angegebene Telefonnummer anzurufen, um ein individuelles Preisangebot zu erhalten. Das Problem ist, dass Fabriken normalerweise direkt mit Dateien im Gerber RS-274X-Format arbeiten und daher die Kosten für all diese Software für den kommerziellen Gebrauch traditionell sind, ab einigen hundert Dollar pro Workstation.

Budgetvorschläge können entweder nur ein Board mit vielen Kopien multiplizieren (in Eagle ist dies beispielsweise eine native Funktion), aber nicht mehrere Dateien aus verschiedenen Projekten sammeln. oder - öfter - sie wissen nichts. Von den relativ billigen habe ich nur ViewMate Deluxe gefunden, was sich gelohnt hat, wenn auch nicht sehr viel, aber immer noch weniger als 100 US-Dollar und in der Lage ist, Gerbera zu bearbeiten - das funktioniert nur an Orten, die einer hoch entwickelten Folter sehr ähnlich sind.

Zusätzlich zu all dieser Größe gibt es ein Paket, das völlig kostenlos ist - GPLv3 - und genau für diese Aufgabe erstellt wurde: ein paar Gerbera aus verschiedenen Projekten zu schlucken und auf ein Blatt zu legen.

Dies ist GerbMerge , ein Python- Skript. Verschlingen Sie Ihre GerberaFür einige Minuten versucht er, sie auf tausende verschiedene Arten zu arrangieren und aus ihnen die beste auszuwählen - aus seiner Sicht.

GerbMerge kann nur mit Dateien des Gerber RS-274X- und Excellon-Formats arbeiten. Dies ist jedoch schwer als Nachteil zu betrachten. Jeder CAD, der zumindest theoretisch verwendet werden kann, kann Karten in diesen Formaten exportieren, und jede Fabrik kann sie akzeptieren. Wenn Sie außerdem die maximale Garantie für das Ergebnis und die minimale Chance für die krummen Hände der Fabrik wünschen, haben Sie Gerber + Excellon zuvor überprüft und müssen diese senden.

Ich gebe derzeit keinen Link zur GerbMerge-Website, da nicht klar ist, was man als Website betrachten soll. Gemessen an der Geschichte der Änderungen und Urheberrechte wechselte er ein paar Mal den Besitzer mit Pausen für ein oder zwei Jahre und jedes Mal, wenn er verlassen wurde. Als ich versuchte, es auszuführen, stellte ich schnell fest, dass:

  1. Es ist nicht installiert
  2. Einmal installiert, startet es nicht
  3. Beim Ausführen werden DipTrace-Dateien nicht verarbeitet
  4. Beim Push werden Dateien in metrischen Einheiten nicht verdaut
  5. Unter Cygwin funktioniert es überhaupt nicht
  6. Es gibt Versuche, das Installationsprogramm aufzuräumen - in die richtige Richtung, aber unvollständig
  7. Es gibt Versuche, metrische Einheiten in die richtige Reihenfolge zu bringen, aber unvollständig
  8. Alle Links zu vorgefertigten Installationspaketen für Windows sind vor Jahren im Allgemeinen schlecht geworden


Es gab jedoch überhaupt keine Alternativen. Daher setzte sich nach einiger Überlegung ein Team von professionellen Vermarktern, die noch nie eine Zeile in Python geschrieben hatten, zusammen und ordnete Gerbmerge.

Und jetzt - der Link: github.com/unwireddevices/gerbmerge

In Version 1.9.4, die jetzt unter diesem Link verfügbar ist, gerbmerge:

  • Läuft erfolgreich unter Linux, Windows und Cygwin
  • Es wird unter allen Systemen mit Standardwerkzeugen installiert, ohne dass etwas von Hand bearbeitet werden muss.
  • Versteht DipTrace-generierte Dateien
  • Funktioniert mit Zoll und Millimetern


Installieren Sie GerbMerge



GerbMerge ist ein Python-Skript, daher hat die Installation ihre eigenen Eigenschaften. Es kann unter Linux und Windows (nativ und unter Cygwin) gestartet werden, theoretisch auch unter MacOS, aber ich habe es nicht überprüft - es gibt nichts.

Linux .

Da Sie mit ziemlicher Sicherheit bereits Python, pip und gcc installiert haben, müssen Sie simpleparse installieren - pip simpleparse installieren und dann zu gerbmerge wechseln. Download von githaba Archivquellen , auspacken, gehen Sie in:

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


Der erste Befehl bereitet das Installationspaket für Ihr System vor, der zweite installiert es. Sie können sudo python setup.py natürlich sofort installieren . Wenn Sie sich jedoch von gerbmerge trennen oder aktualisieren möchten, löschen Sie die Dateien mit Handles.

Windows / Cygwin .

Installieren Sie Cygwin mit den Paketen python, python-setuptools und gcc (letzteres wird zum Erstellen von simpleparse benötigt). Laden Sie das Gerbmerge-Quellarchiv herunter, entpacken Sie es, starten Sie Cygwin und wechseln Sie in das Quellverzeichnis.

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


Der erste Befehl (anstelle von xy ist die Version Ihres Pythons, dh höchstwahrscheinlich 2.7) installiert pip, der Rest ist der gleiche wie unter Linux.

Windows native .

Laden Sie das Python-Installationsprogramm für Ihr System herunter und installieren Sie es. Standardmäßig ist es in C: \ Python27 \ installiert und zieht den benötigten Pip mit sich. Gerbmerge herunterladen, entpacken. Führen Sie cmd.exe aus und wechseln Sie zum Gerbmerge-Quellordner:

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


Das ist alles. Wenn in früheren Fällen gerbmerge tatsächlich mit dem Befehl gerbmerge gestartet wurde, müssen Sie zum Ausführen die Datei c: \ Python27 \ gerbmerge.bat aufrufen (wenn Sie Python in einem anderen Ordner ablegen, muss der Pfad entsprechend geändert werden).

Verwenden von GerbMerge



Gerbmerge benötigt eine Konfigurationsdatei und Dateigruppen mit Gerbera der Quellkarten. Auf dem Github im Beispielordner finden Sie Beispiele für beide, sowohl für Zollgerberas als auch für metrische.

In der Konfigurationsdatei werden mehrere grundlegende Parameter beschrieben. Anschließend werden alle Karten aufgelistet, die Sie zusammenbauen müssen. Sie geben an, wo sich ihre Dateien befinden und wie sie heißen und wie viele Teile von ihnen jeweils in das endgültige Projekt eingefügt werden sollen:

[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


In diesem Beispiel befinden sich zwei Karten in den Ordnern aa und bb . Die darin enthaltenen Dateien enthalten Standard-DipTrace-Exportnamen. Die Ordner befinden sich in der Nähe, gerbmerge beginnt genau dort, das Projektverzeichnis lautet also nur ".", Und die Pfade zu den Ordnern lauten "./aa" bzw. "./bb". Die erste Platte muss aus 10 Teilen auf einem Werkstück bestehen, die zweite aus sechs Teilen. Gerbera sind in Millimetern angegeben, die maximale Plattengröße beträgt 400 × 300 mm, zwischen den Platten müssen 2 mm Lücken gemacht werden, damit die Fabrik sie mit einem Fräser schneidet (fragen Sie die jeweilige Fabrik nach den Abmessungen der Platten und Lücken). Notieren Sie das Excellon-Format für die Bohrmaschine mit Nullen am Anfang, wenn keine Datei von oben vorhanden ist - schwören Sie. Das Ergebnis muss im zusammengeführten Ordner mit den angegebenen Dateinamen gespeichert werden.

Bitte beachten Sie, dass alle Dateien außer BoardOutline und Drills mit einem Sternchen beginnen - dies ist der richtige Weg. Wenn Sie AllowMissingLayers in das Gerät einfügen, fehlen möglicherweise Dateien mit Sternchen. Aber das Sternchen sollte auf jeden Fall sein (nicht sehr logisch, aber solche Kleinigkeiten sind bereits zu faul, um sie zu reparieren, sie stören niemanden).

Nach dem Erstellen der Konfiguration muss nur noch gerbmerge als einziger Parameter ausgeführt werden:

gerbmerge layout.cfg


Oder wenn Sie sich noch nicht der Welt der Freiheit, Gleichheit und Brüderlichkeit angeschlossen haben (wie ich) und Cygwin auch nicht mögen (nicht wie ich), dann:

C:\Python27\gerbmerge.bat layout.cfg


Wenn Sie mit gerbmerge beginnen, hängt das Blatt des Haftungsausschlusses heraus und wartet, bis das "y" gedrückt wird. Wenn Sie es satt haben, fügen Sie den Parameter "-s" hinzu.



Sofern in der Konfiguration nicht anders angegeben, funktioniert gerbmerge für immer und meldet regelmäßig, dass es nicht tot ist. Sie können es jederzeit stoppen, indem Sie Strg-C drücken. Dadurch wird die Konfiguration der Karten gespeichert, die zu diesem Zeitpunkt als die erfolgreichste in Dateien und vollständig angesehen wird. Leider ist es unmöglich zu verfolgen, wie erfolgreich das Ergebnis ist. Geben Sie ihm also genügend Zeit - von durchschnittlich fünf Minuten Core i * bis fünfzehn auf AMD Sempron reicht es aus, um auch für ein Projekt wie das vor dem Schnitt beschriebene eine ordentliche Platzierung zu erhalten.

Ein schönes Merkmal von Gerbmerge ist, dass es automatisch abschneidet, was aus den Kanten eines bestimmten Boards kommt. Wenn Sie beispielsweise Komponenten haben, deren Siebdruck nach außen ragt (z. B. ein Anschluss, der über die Kanten hinausragt), gelangt dieser Siebdruck im endgültigen Projekt nicht auf die benachbarte Platine. Das Trimmen von Löchern und das Siebdrucken können in den Befehlszeilenoptionen deaktiviert werden.

Die resultierenden Dateien sollten von jedem Gerber-Viewer (ich verwende normalerweise Viewplot ) vertraut überprüft werden - und wenn nichts schief gelaufen ist, senden Sie sie an das Werk.

Einschränkungen



  • : , - .
    , , , Placement.txt —  . , gerbmerge (--place-file=), . : gerbmerge .
  • Das Skript versteht die Mischung aus Zoll- und Metrikdateien nicht. Alle eingehenden Gerbera müssen sich in demselben System befinden, das dem in der Konfiguration angegebenen entspricht. Im Prinzip ist dies ein Anlass zur Weiterentwicklung, aber weil innen gerbmerge mit arbeit mit maßeinheiten jetzt noch brei, kaum werde ich mich jemals dafür verpflichten.


Proofpeak



Das gleiche Projekt von 32 Platinen mit 13 Typen, das von der Firma Microlit auf der Leiterplatte ausgeführt wurde:



Es gab keine Fragen ab Werk, es gab keine Beschwerden über die Qualität.

FAQ



F: Zum Teufel mit dir gibt es so viele Boards ???
A: Hier für dieses Projekt .

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


All Articles