Forum: Platinen [EAGLE] Gerber-Datei mit ULP importieren


von ich (Gast)


Lesenswert?

Hallo erstmal,
ich möchte 3 GerberX-Dateien nacheinander in mein Layout importieren. Es 
ist erstmal weniger wichtig, wie das geht. Mein bisheriges vorgehen war, 
mit "Eagle PCB Power Tools" aus der Gerberdatei eine Script Datei zu 
machen und diese dann auszuführen. Hierbei gibt es aber 2 Probleme:

1) Da ich das gerne mit anderen Dingen über eine ULP laufen lassen will, 
müsste ich die exe mit ein paar Parametern (Quell-/Zieldatei, 
Einstellungen...) aufrufen, was das Programm aber nicht anbietet. Damit 
könnte ich aber noch leben, auch wenn es ein Mehraufwand ist.

2) In der Freeware-Version kann man nur bis zu 1000 Zeilen einlesen. Bei 
2 von 3 zu importierenden Layern wird das aber nicht reichen.


Da das Gerber-Format ja bekannt und verbreitet ist, gibt es dazu doch 
bestimmt noch alternative Programme oder gar eine ULP!? Ich wäre über 
jeden Rat/Tipp/Link dankbar. Ich habe leider nach langer Suche nur 
besagtes Tool gefunden.

Vielen Dank

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Hallo ich.

ich schrieb:

>
> 1) Da ich das gerne mit anderen Dingen über eine ULP laufen lassen will,
> müsste ich die exe mit ein paar Parametern (Quell-/Zieldatei,
> Einstellungen...) aufrufen, was das Programm aber nicht anbietet. Damit
> könnte ich aber noch leben, auch wenn es ein Mehraufwand ist.

So ganz habe ich das jetzt nicht verstanden.....aber ich vermute mal, du 
suchst ein Verfahren, die Script Datei zu überspringen? Nun, ein ULP 
könnte das machen. Eine Gerber Datei parsen und dann die einzelnen 
Elemente in ein Board setzten.

Du könntest auch ein externes Programm schreiben, was Dir das Gerber 
File direkt in ein Eagle File überträgt. Ich glaube, neuere Eagle 
Versionen verwenden ein XML abgeleitetes Format....ganz sicher bin ich 
mir aber nicht.

Alle diese Verfahren führen aber dazu, dass Du ein Board hast, aber 
keinen Schaltplan und keine Netzliste. Die musst Du immer noch von Hand 
machen.
Oder ein ULP dafür schreiben.


>
> 2) In der Freeware-Version kann man nur bis zu 1000 Zeilen einlesen. Bei
> 2 von 3 zu importierenden Layern wird das aber nicht reichen.

Ok. Dann probiere es doch mal mit KiCad. KiCad biet von Hause aus die 
Möglichkei, ein Gerber File als Board einzulesen. Und zwar über den 
Projekt eigenen Gerberviewer und dann als .kicad_pcb exportieren. 
allerdings aktzeptiert der Gerberviewer nur Gerber, das auch dem von 
KiCad selbst erzeugten Gerber entspricht *).  Es ist aber garantiert 
weniger Aufwand, ein Script zu schreiben, das einen Gerber-Dialekt in 
einen anderen, neueren übersetzt, als etwas zu schreiben, das Gerber in 
Eagle-Boards übersetzt.

Trozdem gilt das gleiche wie für Eagle:
Alle diese Verfahren führen aber dazu, dass Du ein Board hast, aber 
keinen Schaltplan und keine Netzliste. Die musst Du immer noch von Hand 
machen.
KiCad kann beim Board Python2-Skripte verwenden (Vergleichbar den ULPs 
bei Eagle). Es ist mir alledings keins bekannt, das aus reinen Board 
Dateien eine Netzliste oder einen Schaltplan macht.

Da KiCad überall offene Formate verwendet, bist Du aber nicht auf diese 
Skriptmöglichkeit angewiesen, sondern kannst das extern mit 
Skriptprogrammen Deiner Wahl machen. Also auch Python3, Pearl, Java, 
Gambas/Basic und natürlich alle anderen Programmiersprachen. sie müssen 
lediglich Text Files bearbeiten können.


> Da das Gerber-Format ja bekannt und verbreitet ist, gibt es dazu doch
> bestimmt noch alternative Programme oder gar eine ULP!?

Siehe oben.

Weitere Info zu Gerber: 
https://www.mikrocontroller.net/articles/Gerber-Tools

Weitere Infos zu KiCad: https://www.mikrocontroller.net/articles/KiCAD

*) Das bezieht sich meiner löchrigen Erinnerung gemäß in erster Linie 
auf das Zahlenformat, und das KiCad Gerber keinen Circle-Befehl 
verwendet, sondern Kreise grundsätzlich als Polygon aufbaut. Wie es 
aktuell aussieht, darüber habe ich auch keine Erkenntnis, aber 
Erfahrungsgemäß ist KiCad Gerber extrem an den aktuellen 
Gerberdefinitionen angelegt. Es ist ein sehr sauberes Gerber. KiCad 
aktzeptiert auch negative Werte in den Koordinaten.
Älteres Eagle-Gerber hat gelegentlich einen Bug im Zahlenformat. Fällt 
dir aber vermutlich sofort auf, wenn Du damit umgehst, und ist somit 
leicht zu umgehen.

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de

: Bearbeitet durch User
von Georg (Gast)


Lesenswert?

Bernd W. schrieb:
> Alle diese Verfahren führen aber dazu, dass Du ein Board hast, aber
> keinen Schaltplan und keine Netzliste.

Das ist noch das kleinere Problem, das grössere ist: es gibt keine 
Bauteile. Gerber kennt nur Pads und selbst die sind nicht so ohne 
weiteres von Leiterbahnen unterscheidbar, ein TQFP100 besteht also auf 
der Bestückungsseite aus 100 Rechtecken, und so ist die ganze Lage 
aufgebaut - was zusammengehört kann man nur selbst nachzeichnen und die 
100 Rechtecke, Kreise oder was manuell durch einen Footprint ersetzen. 
Ist sehr viel Arbeit und ein brauchbares Layout entsteht ohne das nicht, 
in der eingelesenen Form kann man das nur zur Archivierung und für 
kleine Änderungen gebrauchen.

Georg

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Hallo Georg.

Georg schrieb:

>> Alle diese Verfahren führen aber dazu, dass Du ein Board hast, aber
>> keinen Schaltplan und keine Netzliste.
>
> Das ist noch das kleinere Problem, das grössere ist: es gibt keine
> Bauteile.

Richtig.
Allerdings ist es mit Schaltplan und Netzliste relativ einfach, diese 
nachzuflicken. Oder bin ich da zusehr in der KiCad Denkweise verhaftet?

> Gerber kennt nur Pads und selbst die sind nicht so ohne
> weiteres von Leiterbahnen unterscheidbar,

Wenn Das Gerber sauber aufgebaut ist, schon. Pads sind nur Blinks, und 
Leiterbahnen nur Draws. In dem Zusammenhang sind eben auch Draws der 
Länge null wichtig. Ein Draw der Länge null unterscheidet sich 
physikalisch nicht von einem Blink mit gleicher Apertur, aber er sollte 
immer nur eine Leiterbahn repräsentieren, und nie ein Pad.

Darum ist es ja auch ein Problem, wenn Du in Footprints mit Draws im 
Kupfer herummalst. Das gilt auch und vor allem, wenn Du mit dem Kram den 
CAM-Input in der Leiterplattenfabrik machen willst.

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de

von Georg (Gast)


Lesenswert?

Bernd W. schrieb:
> Pads sind nur Blinks

Da muss ich aber widersprechen, darauf kann man sich schon deshalb nicht 
verlassen, weil das mit Blendentellern garnicht realisierbar war, da 
waren praktisch alle länglich rechteckigen Pads Draws mit einem Quadrat 
der entsprechenden Breite, länglich abgerundete ebenso. Wenn man dann 
dummerweise ein solches Pad mit einer Leiterbahn gleicher Breite 
kontaktiert hat, wurde der Übergang von der Leiterbahn zum Pad glatt 
wegoptimiert. Gerber transportiert eben keine Semantik.

Ich würde mich auch heute nicht darauf verlassen, dass alles was ein Pad 
sein soll auch mit einem einzigen Flash ausgegeben wird, bei Pads mit 
Sonderformen geht das garnicht, das ist dann eine Art gemaltes 
Unterprogramm.

Wir haben Frontline im Einsatz, die führende CAM-Software, da gibt es 
eine Art Lernfunktion, man kann ein gemaltes Pad selektieren und das 
System wandelt dann alle gleich aufgebauten in Flash um, so dass es als 
Pad indentifizierbar ist. Aber selbst das funktioniert oft nicht 
zuverlässig, weil durch Rundungsfehler die Pads eben doch nicht genau 
gleich aufgebaut sind.

Georg

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Hallo Georg.

Georg schrieb:

>> Pads sind nur Blinks
> Da muss ich aber widersprechen, darauf kann man sich schon deshalb nicht
> verlassen, weil das mit Blendentellern garnicht realisierbar war, da
> waren praktisch alle länglich rechteckigen Pads Draws mit einem Quadrat
> der entsprechenden Breite, länglich abgerundete ebenso.

Das ist aber nun über 20 Jahre her. Als ich anfing, mich damit 
dienstlich zu beschäftigen, so Mitte der 90er, waren Blendenteller schon 
unüblich.

Mittlerweile gibt es diese Sorte Photoplotter überhaupt nicht mehr. Auch 
nicht in Osteuropa. Das Gerberformat funktioniert zwar noch 
grundsätzlich so, und das ist auch ein Vorteil, weil es die Abstraktion 
und das Vorstellungsvermögen dazu erleichtert, aber letztlich hast Du 
keine Beschränkung bei blendentellern mehr.

> Wenn man dann
> dummerweise ein solches Pad mit einer Leiterbahn gleicher Breite
> kontaktiert hat, wurde der Übergang von der Leiterbahn zum Pad glatt
> wegoptimiert. Gerber transportiert eben keine Semantik.

Richtig. "Wurde". Und Gerber soll ja auch keine Semantik transportieren. 
In den Fällen, wo das ausdrücklich erwünscht ist, hat man ja seit 
einiger Zeit die Extensions.

Sooo altes Gerber, wo das noch eine Nummer war, bekomme ich nur noch 
ganz selten zu sehen.

> Ich würde mich auch heute nicht darauf verlassen, dass alles was ein Pad
> sein soll auch mit einem einzigen Flash ausgegeben wird, bei Pads mit
> Sonderformen geht das garnicht, das ist dann eine Art gemaltes
> Unterprogramm.

Richtig, verlassen kann man sich nicht darauf, weil es genug Sonderfälle 
mit unüblichen Pads gibt. Aber für 95% aller Fälle kommt es hin, und 
dann erleichtert die Einhaltung von Pad = Blink und Leiterbahn = Draw 
die Arbeit.

> Wir haben Frontline im Einsatz, die führende CAM-Software, da gibt es
> eine Art Lernfunktion, man kann ein gemaltes Pad selektieren und das
> System wandelt dann alle gleich aufgebauten in Flash um, so dass es als
> Pad indentifizierbar ist. Aber selbst das funktioniert oft nicht
> zuverlässig, weil durch Rundungsfehler die Pads eben doch nicht genau
> gleich aufgebaut sind.

Besser ist es darum halt, man versucht bei der Erstellung eines 
Footprintes für Pads nur Blinks zu verwenden. Dann entsteht das 
Rundungsproblem erst garnicht.

Ich habe mal anderthalb Monate mit Expedition CAM-Input gemacht. Solche 
Funktionen gab es dort auch.

Aber dazu war ich dann letztlich nicht schnell genug. Power Gamer sind 
dort besser im Training mit dem schnellen Mausklickfinger. ;O)


Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://wwwl.l02.de

von ich (Gast)


Lesenswert?

So, sorry, dass ich am Wochenende keine Zeit gefunden habe..

Bernd W. schrieb:
> So ganz habe ich das jetzt nicht verstanden....

Ich hab mich vermutlich nicht so gut ausgedrückt. Ich möchte 3 Layer 
einer Platine importieren. Die Outline und Bestückungsdruck Top und 
Bottom. Dies dient lediglich der Veranschaulichung und Netzlisten etc 
sind garnicht nötig und möglich. Anhand der Daten ist es aber bedeutend 
einfacher, die Bauteile auf der in Eagle zu entwickelnden Platine zu 
platzieren.


Bernd W. schrieb:
> Ok. Dann probiere es doch mal mit KiCad.

Das ist leider keine Option :/


Ich habe es nun so gelöst, dass ich in der ULP die Gerberdateien angebe 
und die nach 2500 Zeilen geteilt wird (die Demoversion kann max 3000 
Zeilen und nicht 1000, hatte ich falsch im Kopf). An einer Stelle wartet 
die ulp dann, bis ich mit dem externen Tool die Dateien in Script Datein 
umgewandelt habe. Erfordert eben immernoch ein externes Tool und es muss 
manuell bedient werden. Wenn ich da eine alternative hätte, wo ich mir 
das Teilen sparen kann, ein anderes Programm oder eben eine ULP, dann 
wäre das sehr gut. Mich so sehr in Gerber einzulesen und dann dafür eine 
ulp selber zu schreiben, scheint mir aber unverhältnismäßig viel Aufwand 
zu sein. Eine Automation ist aber gut, weil ich das immer wieder mal mit 
unterschiedlichen Platinen/Gerberdateien machen muss.

Kurz gesagt: so wie es gerade ist, bin ich erstmal zufrieden. Wenn 
jemand für mich aber eine fertige ulp oder Tip für ein anderes Programm 
hat, immer her damit :)

Danke aber an alle für die Hilfe

von Joe F. (easylife)


Lesenswert?

Kaufe halt die Vollversion von "Eagle PCB Power Tools".

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Hallo ich.

ich schrieb:
> So, sorry, dass ich am Wochenende keine Zeit gefunden habe..

Das ist ok. ;O)
>

> Ich hab mich vermutlich nicht so gut ausgedrückt. Ich möchte 3 Layer
> einer Platine importieren. Die Outline und Bestückungsdruck Top und
> Bottom. Dies dient lediglich der Veranschaulichung und Netzlisten etc
> sind garnicht nötig und möglich. Anhand der Daten ist es aber bedeutend
> einfacher, die Bauteile auf der in Eagle zu entwickelnden Platine zu
> platzieren.


Mmmmh. "Ansehen" könntest Du Dir die Daten auch mit einem Gerber-Viewer.
Also ganz ohne ein Layout Programm. Du bist vom Layoutprogrammen 
unabhängig. Was, nebenbei gesagt, mit einer der Gründe für die 
Verwendung von Gerber ist.
Auch unter den freien Gerber-Viewern gibt es einige komfortable mit 
Messmöglichkeiten.

Irgendwie habe ich Dein Problem an exakt dieser Stelle noch nicht ganz 
verstanden.

Wenn Du das aus irgendwelchen Gründen als Layer in Eagle haben willst, 
um dort bequemer zu schauen, gäbe es noch die Option, aus den Gerber 
Dateien nicht benötigte Daten zu löschen. Doch das ist auch nicht ganz 
so einfach, und vor allem müsstest Du ja als Ziel unter die 1000 Zeilen 
kommen.


Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de

: Bearbeitet durch User
von ich (Gast)


Lesenswert?

Joe F. schrieb:
> Kaufe halt die Vollversion von "Eagle PCB Power Tools".

Könnte ich, die Begrenzung auf 3000 Zeilen ist aber nicht mehr das 
Problem.

Bernd W. schrieb:
> Irgendwie habe ich Dein Problem an exakt dieser Stelle noch nicht ganz
> verstanden.

Wenn alles fertig ist, habe ich 2 Platinen, die übwreinander liegen. 
Eine davon mache ich mit Eagle selber, die andere wird mit von jemand 
anderes mit einem anderen Tool gemacht. Von dieser Platine habe ich die 
Gerberdateien. Die fremde Platine kommt quasi auf meine drauf. Deshalb, 
und weil ich auch ein paar simple mechanische Dinge entwickeln und 
fertigen muss/will, möchte ich die fremde Platine in meinem Layout sehen 
können, eben die Outline und den Bestückungsdruck. Daher brauche ich 
auch keine Netzlisten usw, sondern lediglich die 3 Layer, die ruhig aus 
den Standard "Striche" bestehen kann. Die Platine mir einzeln angucken 
kann ich, aber die Umrisse und Bestückung beeinflusst mein Layout. Da 
ist es deutlich kompfortabler, die 3 Layer in meinem Layout  einblenden 
zu können.

Prinzipiell funktioniert das alles schon. Nur wäre ich um eine 
Lösung/Software/ULP dankbar, mit der ich die einzelne manuelle 
Umwandlung umgehen kann. Also entweder direkt eine ulp oder ein Programm 
(exe), das ich zusammen mit den nötigen Parametern aus einer ulp 
aufrufen kann.

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Hallo ich.

ich schrieb:

> Wenn alles fertig ist, habe ich 2 Platinen, die übwreinander liegen.
~~~
~~
~
> ist es deutlich kompfortabler, die 3 Layer in meinem Layout  einblenden
> zu können.

Danke für die Info!
Ich denke, jetzt habe ich verstanden. ;O)

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de

von Joe F. (easylife)


Lesenswert?

ich schrieb:
> die andere wird mit von jemand
> anderes mit einem anderen Tool gemacht.

Mit welchem Tool denn? P-CAD/Altium/Protel?
Dann wäre der Weg über ACCEL ASCII (in Altium als "P-CAD ASCII" 
speichern) vielleicht einfacher als über Gerber.

Auch Ultiboard (.DDF) kann von Eagle wohl direkt importiert werden.

Auch DXF wäre evtl. eine Lösung (Outline + relevante Connectorpositionen 
als DXF exportieren).

von ich (Gast)


Lesenswert?

Joe F. schrieb:
> Mit welchem Tool denn? P-CAD/Altium/Protel?

Nein, leider nicht.

Ich habe mich jetzt nochmal ein bisschen mit dem Gerberformat 
auseinander gesetzt und mir einen eigenen Interpreter in die ULP 
geschrieben. Funktioniert ganz gut und vollautomatisch. Das Thema hat 
sich somit erledigt.

Trotzdem danke an alle

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.