Hallo,
habe Gerbmerge entdeckt und möchte nun mit Eagle erstellte Gerberdaten
aus zwei Leiterplatten zusammensetzen.
Mein Problem ist nur das ich nicht weiß wie.
Installiert ist folgendes
Python 2.6
SimpleParse 2.1.1
Gerbmerge 1.6
Es gibt auch einen testdata Ordner mit Makefile und dem aus Eagle
bekannten
Hexapod board.
Hat jemand von euch Erfahrung mit Gerbmerge und könnte mir da etwas auf
die Sprünge helfen?
Gruß
Die Frage ist schon älter, da sie aber Google immer wieder ausspuckt,
will ich kurze eine Minimalantwort ergänzen:
Man muss mit seinem Platinenlayoutprogramm Gerberfiles erstellen.
Außerdem sollte eine Bohrdatei (Position und Durchmesser der Bohrungen)
exportiert werden.
Diese dienen Gerbmerge als Eingabewerte.
Vor dem Aufruf von gerbmerge.py muss für jedes Projekt eine layout.cfg
Datei angelegt werden. Dazu wählt man am besten eines der Beispiele aus
und passt die Vorgaben sowie die Namen zu den eigenen Files an.
Der Aufruf ist dann relativ einfach:
Kommandozeile (hier Linux: bash):
python pfad/gerbmerge.py layout.cfg
Damit wird der automatische Modus gestartet. Es gibt noch andere Modi,
die sind im Manual beschrieben.
Von Gerbmerge gibt es einige Forks:
https://github.com/space-age-robotics/gerbmerge-patched (Support für
Seeed Studio outlines)
https://github.com/provideyourown/gerbmerge (added metric support)
https://github.com/kkunzelm/gerbmerge (Support Seeed Studio und speziell
Kicad Gerber/Drill Files, die mit metrischen Einheiten exportiert wurden
(mm))
https://github.com/digistump/gerbmerge3 (für Python 3.x)
Man müsste diese Forks mal alle zusammenführen...
Viele Grüße
Karl-Heinz
Guten Morgen,
nun .. ich habe zu dem GerbMerge-Skript noch eine GUI in Delphi
gestrickt und einige Ergänzungen vorgenommen (Passmarken für
Fingertester, Format 3.3 metrisch fehlerbehoben, ...).
Nun bin ich aber Mechatroniker und programmiere entsprechend - den Zweck
erfüllt's, schön ist's aber nicht. Mit GitHub werde ich auch nicht so
recht grün ..
Vielleicht findet sich ja jemand, der meine Änderungen mal so mergen
kann / will wie es ein Informatiker (statt einem Mechatroniker) tun
würde.
Falls sich in Berlin ein Programmierer findet, der da einsteigen will -
ich habe noch ein paar Ideen, wie der derzeitige Algorithmus deutlich
verbessert werden kann - die Umsetzung scheitert aber an meinen
Programmierkenntnissen.
Viele Grüße,
Tasso Mulzer
Ich hatte letztens für einen Batch GerbMerge angesehen, war damit
aber nicht grün geworden.
Deren Gerber-Parser ist einfach so schmalspurig auf irgendwelche
Formate gestrickt, die ein ganz bestimmtes EDA-Tool gerade rauswirft,
statt sich an der Gerber-Spec zu orientieren.
Am Ende war ich bei gerbv gelandet. In der aktuellen Version (die
es leider auch nur als git-Repo gibt) kann man damit einigermaßen
gut interaktiv die Batches zusammenstellen. Ein wenig fummelig ist
es trotzdem noch, aber der große Vorteil ist, dass die Parser in
gerbv sich tatsächlich an den Specs orientieren und damit so ziemlich
alles parsen, was herumkreucht und fleucht. (Bei Excellon muss man
ggf. halt das exakte Format mit der Hand einstellen, falls die
Heuristik versagt.)
Anbei ein Screenshot des Nutzens, den ich damit zusammengestellt
und fertigen lassen habe. Der Input bestand aus 10 verschiedenen
Einzel-Designs (teilweise mehrfach eingebaut) von vier verschiedenen
Leuten und entsprechend verschiedenen EDA-Systemen.
Georg schrieb:> Nett, aber wie werden da die Steckkontakte vergoldet?
Sind keine. Das ist der Nachbau von HP10466A-Tastköpfen, da werden
an den Enden Steckverbinder aufgelötet.
Jörg W. schrieb:> Anbei ein Screenshot des Nutzens, den ich damit zusammengestellt> und fertigen lassen habe. Der Input bestand aus 10 verschiedenen> Einzel-Designs (teilweise mehrfach eingebaut) von vier verschiedenen> Leuten und entsprechend verschiedenen EDA-Systemen.
Fehlen da nicht die Stege zwischen den einzelnen Platinen um die
zusammenzuhalten?
Oder vereinzelt die schon der Fertiger für Dich?
Gerd E. schrieb:> Oder vereinzelt die schon der Fertiger für Dich?
Die Stege setzt der Fertiger. Der macht das besser als ich, der
setzt da auch noch 'ne Reihe feiner Bohrungen mit dran.
Jörg W. schrieb:> Die Stege setzt der Fertiger. Der macht das besser als ich, der> setzt da auch noch 'ne Reihe feiner Bohrungen mit dran.
Ich setze die lieber selber, dann sind sie an den richtigen Positionen.
Denn der Fertiger weiß nicht unbedingt an welchen Stellen die Reste der
Stege ein Problem werden können und an welchen nicht.
Ich hatte mal eine Platine da hat der Fertiger die Stege definiert. Und
just genau über einen Steg kamen 90°-gewinkelte Stecker die über den
Platinenrand überstehen. Der Bestücker hat geflucht diesen Steg dann
nach der Bestückung zu trennen ohne den Stecker zu beschädigen.
Gerd E. schrieb:> Ich setze die lieber selber
Ich inzwischen nicht mehr, nachdem ich bemerkt habe, dass der
Fertiger das einfach viel besser hinbekommt als ich. Die wissen,
welche Abstände sie brauchen, und die Reihe von 0,2er (oder was
weiß ich, wie klein) Bohrungen, die sie an die Ränder der Stege
setzen, hätte ich mir so nicht getraut.
Ist aber alles für manuelles Bestücken zu Hause.
Jörg W. schrieb:> Anbei ein Screenshot des Nutzens, den ich damit zusammengestellt> und fertigen lassen habe. Der Input bestand aus 10 verschiedenen> Einzel-Designs (teilweise mehrfach eingebaut) von vier verschiedenen> Leuten und entsprechend verschiedenen EDA-Systemen.
Wie hast Du denn die einzelnen Gerber-Files mit gerbv zusammengeführt?
Der Fertiger will ja nur 1 Gerber-File je Layer.
Hallo bingo.
bingo schrieb:> Wie hast Du denn die einzelnen Gerber-Files mit gerbv zusammengeführt?> Der Fertiger will ja nur 1 Gerber-File je Layer.
Aus: https://www.mikrocontroller.net/articles/Gerber-Tools#Gerber_Tools
Gerbmerge: Ein unter Python geschriebenes Tool, mit denen einzelne
Platinen zu größeren Nutzen zusammengefügt werden können. Seit 2008 GNU
GPL. Author: Andrew Sterian et al. Von Gerbmerge gibt es mehrere
Forks/Versionen für unterschiedliche Zwecke (zoll/metrisch ec.)
Mittlerweile gibt es auch eine Python 3 Version. Es handelt sich um ein
Kommandozeilentool. Eine Kurzbeschreibung der Bedienung und ein Verweis
auf die unterschiedlichen Versionen findet sich hier:
Beitrag "Re: GerbMerge Gerber Editor" Die Dokumentation
zum (originalen) Gerbmerge ist hier zu finden:
http://www.gedasymbols.org/user/stefan_tauner/tools/gerbmerge/doc/ Die
Python 3 Version findet sich hier:
https://github.com/digistump/gerbmerge3> Der Fertiger will ja nur 1 Gerber-File je Layer.
Indem man nur die jeweiligen Gerber Files aus den unterschiedlichen
Projekten, die zur gleichen Lage gehören, zusammenfügt.
Du kennst: https://www.mikrocontroller.net/articles/Gerber-Tools ?
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de
Jörg W. schrieb:> Am Ende war ich bei gerbv gelandet. In der aktuellen Version (die> es leider auch nur als git-Repo gibt) kann man damit einigermaßen> gut interaktiv die Batches zusammenstellen.
Dass es gerbmerge gibt, ist mir bekannt. Aber Jörg schreibt, er würde
die Dateien mit gerbv zusammenstellen. Darauf bezog sich meine Frage.
Bernd W. schrieb:> Indem man nur die jeweiligen Gerber Files aus den unterschiedlichen> Projekten, die zur gleichen Lage gehören, zusammenfügt.
Kann mann denn die einzelenen Gerber-Files einfach mit cat (Linux) oder
copy (Windows) bzw. einem Texteditor aneinanderhängen, man muss
natürlich das Layout entsprechend verschieben, aber das geht mit gerbv.
Hallo Bingo.
bingo schrieb:> Kann mann denn die einzelenen Gerber-Files einfach mit cat (Linux) oder> copy (Windows) bzw. einem Texteditor aneinanderhängen,
Jain mit überwiegendem Nein.. Das Problem ist, dass ausser den
Koordinateninformationen noch weitere Informationen im Header stehen,
auf die sich die Koordinatenangaben berufen, z.B. Blendeninformationen.
Grundsätzlich ist Gerber zwar Inkremental, d.h. wenn auf einmal ein
neuer Header im File auftaucht, gelten ab Einlesen dieses Headers für
die folgenden Zeilen dieser Header, aber was daraus die CAM-software in
der Leiterplattenfabrik macht, weisst Du nicht.
Darum enthält die Definition von Gerber ja auch mittlerweile den
Hinweis, das nur ein Header pro Gerberfile existieren soll.
Das heisst, um sicher zu sein, dass Dein Leiterplattenfertiger das
problemlos liest, müsstest Du alles irgendwie umrechnen, damit es in
einen konsistenten Header passt.
> man muss> natürlich das Layout entsprechend verschieben, aber das geht mit gerbv.
Auch das ist nicht in jedem Falle Trivial, wenn die Lagen anschliessend
noch zueinander passen sollen. Gerber enthält z.B. auch "Makros"
Der Teufel sitzt im Detail. Schau doch mal in die Gerber Spezifikation,
um einen Überblick zu bekommen.
Zu finden bei Ucamco:
https://www.ucamco.com/files/downloads/file/81/the_gerber_file_format_specification.pdf
Abgesehen davon existieren als Altbestand noch jede Menge Gerberfiles
mit
schrägen Gerberdaten aus Zeiten, als die Spezifikation noch nicht so
ausgereift und klar war. Besonderer Spass, wenn Du so etwas einbringen
möchtest. ;O)
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de
Hallo bingo.
bingo schrieb:> Jörg W. schrieb:>> Am Ende war ich bei gerbv gelandet. In der aktuellen Version (die>> es leider auch nur als git-Repo gibt) kann man damit einigermaßen>> gut interaktiv die Batches zusammenstellen.>> Dass es gerbmerge gibt, ist mir bekannt. Aber Jörg schreibt, er würde> die Dateien mit gerbv zusammenstellen. Darauf bezog sich meine Frage.
Jörg schreibt aber auch, das er Gerbv aus den aktuellen Sourcen
compiliert hat. In den Repositories der meisten Linux Versionen sind
ältere Ausführungen, die das nicht können, oder es sind Forks (z.B. weil
sich das Original auf nichtfreie oder inkompatible Bibliotheken
bezieht), die das nicht können.
Ein aktuelleres findest Du z.B. hier:
https://sourceforge.net/projects/gerbv/ vom Dezember 2017.
Keine Ahnung, ob es damit so funktioniert wie Du wünschst. Ich habe es
nicht getestet.
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de
Bernd W. schrieb:> Ein aktuelleres findest Du z.B. hier:> https://sourceforge.net/projects/gerbv/ vom Dezember 2017.> Keine Ahnung, ob es damit so funktioniert wie Du wünschst. Ich habe es> nicht getestet.
Im Ubuntu-Repository ist z.Zt. die 2.6.0, die hatte damals wohl auch
Jörg. ich werde mal die aktuelle 2.6.1 probieren.
Erst mal 'Danke' für Eure Hilfe.
Kann jetzt mal berichten, was ich gemacht habe:
Mit gerbv-2.6.1 eine Platine dupliziert und um Platinenbreite
verschoben, dann die Gerberfiles aus gerbv gesichert und mit cat jeweils
aneinandergehängt (das was Bernd mit 'jain' bezeichnet hat).
Schickt man das Ergebnis wieder durch gerbv werden die duplizierten
Platinen angezeigt, die Analyse sagt 'fehlerfrei', siehe Anlage.
Mal sehen, ob elecrow.com das auch so sieht, werde es mal probieren.
bingo schrieb:> Wie hast Du denn die einzelnen Gerber-Files mit gerbv zusammengeführt?
Du lädst sie erstmal alle.
Dann gehst du mit der rechten Maustaste auf eine Lage, da hast du einen
Punkt "Edit Layer". Dort gibt's die Möglichkeit der Rotation oder
Verschiebung. Die Maßeinheit ist dabei die, die man unten im
Dropdown-Menü ausgewählt hat (standardmäßig mil, kann man aber damit
auf mm umstellen).
Zweckmäßig ist es, wenn man im Gesamtnutzen die Sichtbarkeit aller
Lagen abschaltet und dann nur die eines einzelnen Teilnutzens
aktiviert. Dann kann man mit "Apply to Visible" alle diese auf einmal
verschieben oder rotieren.
Am Ende musst du alle die Lagen, die jeweils eine Ausgabelage ergeben
sollen, sichtbar machen und mit Export -> Export drill merge bzw.
Export -> Export Gerber merge ausgeben.
Ein bisschen viel Handarbeit, aber ergibt ein sauberes Resultat selbst
dann, wenn die Eingabedateien von völlig verschiedenen CAM-Systemen
stammten (wie bei mir damals).
Hallo Jörg.
Danke für die Tipps.
Jörg W. schrieb:> Dann gehst du mit der rechten Maustaste auf eine Lage, da hast du einen> Punkt "Edit Layer".
Der Punkt heisst bei mir "Modify Orientation"
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de
Bernd W. schrieb:> Der Punkt heisst bei mir "Modify Orientation"
Bei mir auch. Ich wähle links ein Layer als aktiv an, dieses wird dann
blau unterlegt, dann oben 'Layer' und 'Modify orientation' und ich kann
z.B. unter 'Translation' festlegen, wie weit der Layer nach x oder y
verschoben wird. Die Einheit muss man aber vor der ganzen Aktion am
unteren Fensterrand eingestellt haben (default ist mil). Danach 'File'
und 'Export' ...
Jörg W. schrieb:> Dann kann man mit "Apply to Visible" alle diese auf einmal> verschieben oder rotieren.
Das gibt es bei mir nicht (2.6.0 und 2.6.1), ich muss jedes Layer
einzeln bearbeiten.
bingo schrieb:> Das gibt es bei mir nicht (2.6.0 und 2.6.1), ich muss jedes Layer> einzeln bearbeiten.
Dann ist meine Version aus dem Sourcecode offenbar neuer. Sie nennt
sich 2.6A.
Jörg W. schrieb:> Dann ist meine Version aus dem Sourcecode offenbar neuer. Sie nennt> sich 2.6A.
Und woher hast Du die? Unter https://sourceforge.net/projects/gerbv/ ist
die letzte Version die 2.6.2, die kann ich aber unter Ubuntu nicht
compilieren, da angeblich 'Cairo' fehlt, obwohl ich es installiert habe.
bingo schrieb:> da angeblich 'Cairo' fehlt, obwohl ich es installiert habe
Hast du cairo-dev installiert? Die meisten Linux-Distributions
trennen die Headerdateien von den eigentlichen Bibliotheken ab.
bingo schrieb:> Package 'cairo', required by 'world', not found
Dann musst du wohl mal ins config.log schauen, worüber er stolpert.
Habe gerade mal spaßeshalber auf einem Ubuntu 16.04 den aktuellen
Git-Stand compiliert. Geht problemlos.
Falls jemand vor hat, rotierte Daten aus Projektdateien wieder
einzulesen, dafür habe ich hier noch einen Patch, der es bislang
noch nicht in den Upstream geschafft hat. Hintergrund ist, dass
die Genauigkeit der Zahlen in der Projektdatei limitiert ist, was
zur Folge hat, dass die Rotationen nach dem Rücklesen nicht mehr
als saubere ±90° erkannt werden. Nur solche Rotationen können aber
derzeit bei der Gerber-Ausgabe gehandhabt werden, „krumme“ Werte
funktionieren dort nicht.