Forum: Platinen Eagle Library Export


von Stefan (Gast)


Lesenswert?

Hi Leute,

mit der ULP "exp-lbrs" kann ich aus einen Schaltplan heraus alle 
verwendeten Bauteile in eine neue Library exportieren. Mit dem Replace 
Befehl kann ich für jedes Bauteil einzeln angeben das die neue Library 
benutzt werden soll. Gibt es auch eine Möglichkeit diesen Schritt 
automatisch durchführen zu lassen? Sozusagen einen "Replace all" Befehl?

Wenn es diese Möglichkeit nicht gibt, wie genau ist es von CadSoft 
gedacht wie man mit exportierten Bibliotheken arbeiten soll/kann?

Viele Grüße
Stefan

von Falk B. (falk)


Lesenswert?

@Stefan (Gast)

>benutzt werden soll. Gibt es auch eine Möglichkeit diesen Schritt
>automatisch durchführen zu lassen? Sozusagen einen "Replace all" Befehl?

Sicher, im Menu Bibliothek -> Aktualisieren oder -> Alles aktualisieren

von Stefan (Gast)


Lesenswert?

Hi,
vielen Dank. Wenn ich auf "Alles aktualisieren" klicke werden die 
vorhandenen Bauteile nicht durch ihren Gegenpart aus der neuen 
Bibliothek ersetzt (Eagle v.6.6). Die alten Bibliotheken werden 
weiterhin benutzt. Ich frage mich nach dem Sinn einer Exportfunktion von 
Bibliotheken wenn diese im Anschluss daran nicht benutzen kann, bzw. nur 
wenn ich jedes Bauteil per Hand mit der Version aus der neuen Bibliothek 
ersetzt habe.

Grüße
Stefan

von Falk B. (falk)


Lesenswert?

@Stefan (Gast)

>vielen Dank. Wenn ich auf "Alles aktualisieren" klicke werden die
>vorhandenen Bauteile nicht durch ihren Gegenpart aus der neuen
>Bibliothek ersetzt (Eagle v.6.6). Die alten Bibliotheken werden
>weiterhin benutzt.

Richtig. Man muss halt die Bibliotheken einzeln aktualisieren lassen.

> Ich frage mich nach dem Sinn einer Exportfunktion von
>Bibliotheken wenn diese im Anschluss daran nicht benutzen kann, bzw. nur
>wenn ich jedes Bauteil per Hand mit der Version aus der neuen Bibliothek
>ersetzt habe.

Das muss man nicht. Vielleicht gibt es noch eine Einstellung oder Trick, 
wie man Eagle den einfachen Gesamtupdate auf die exportierten 
Bibliotheken machen läßt. Mal im Handbuch nachgeschaut?

von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

Handbuch Abschnitt 6.6

"Über das Menü Bibliothek/Alles aktualisieren werden automatisch alle
Bauteile eines Projekts mit den Definitionen der aktuellen Bibliotheken
verglichen. Stellt EAGLE Unterschiede fest, wird das Bauteil 
ausgetauscht.

Es werden Bibliotheken aus dem im Control Panel unter 
Optionen/Verzeichnisse
angegebenen BibliothekenPfad berücksichtigt."

Die Frage ist, was macht Eagle, wenn 2 Libs mit dem gleichen Namen 
existieren, eine im normalen lbr-Verzeichnis und eine neue, exportierte 
im Projektverzeichnis? Nimmt es dann einfach die erste oder die 2.? 
Vielleicht entscheidet darüber die Reihenfolge der Pfade im 
Control-Panel? Muss man mal probieren.

Ok, ich hab's mal getestet. Der Projektpfad mit den lokal erzeugten 
Bibliotheken muss VOR dem Standardpfad eingetragen werden!

Im Control Panel Menu Optionen -> Verzeichnisse

von Stefan (Gast)


Lesenswert?

Hi,

danke. Das geht auf jeden fall schon mal in die richtige Richtung. 
Leider ist diese Methode auf zwei Bibliotheken mit dem gleichen Namen 
beschränkt. Ich habe mir überlegt, ob es sinnvoll wäre eine .ulp zu 
schreiben die für jedes Bauteil einmal die Replace-Funktion aufruft.

von Falk B. (falk)


Lesenswert?

@ Stefan (Gast)

>danke. Das geht auf jeden fall schon mal in die richtige Richtung.
>Leider ist diese Methode auf zwei Bibliotheken mit dem gleichen Namen
>beschränkt.

Hää? Wo liegt denn da das Problem? Willst du Dutzende Bibliotheken mit 
gleichem Namen in der Gegend rumfliegen haben? Das ist so oder so eher 
ein Workaround, mit dem man vorsichtig umgehen sollten. Denn im 
Normalfall gibt es nur EINE Bibliothek und nur DORT sollten die 
Änderungen gemacht werden. Denn sonst holt man sich ganz fix das Chaos 
an den Hals.

> Ich habe mir überlegt, ob es sinnvoll wäre eine .ulp zu
>schreiben die für jedes Bauteil einmal die Replace-Funktion aufruft.

Wieso?

: Bearbeitet durch User
von Maik F. (Firma: ibfeew) (mf_hro)


Lesenswert?

Hallo Stefan,

> Ich habe mir überlegt, ob es sinnvoll wäre eine .ulp zu
> schreiben die für jedes Bauteil einmal die Replace-Funktion aufruft.

Wenn du wirklich alle Bauteile mit der neuen Projekt-Library verknüpfen 
willst, dann ist ein ulp ein gutes Mittel um das händische ersetzen 
aller Bauteile zu vermeiden. Du kannst ja mal unter
https://github.com/Sns22/Eagle_PCB_Libraries/blob/master/Eagle-ulp-files/exp-lbrs-replace.ulp
gucken, ob du dir da was abschauen kannst. Dann mußt du dein ulp nicht 
ganz von vorne neu schreiben.

Schönen Abend noch.

von Stefan (Gast)


Lesenswert?

Falk B. schrieb:

> Hää? Wo liegt denn da das Problem? Willst du Dutzende Bibliotheken mit
> gleichem Namen in der Gegend rumfliegen haben? Das ist so oder so eher
> ein Workaround, mit dem man vorsichtig umgehen sollten. Denn im
> Normalfall gibt es nur EINE Bibliothek und nur DORT sollten die
> Änderungen gemacht werden. Denn sonst holt man sich ganz fix das Chaos
> an den Hals.

Moin, meine Aussage war missverständlich, ich möchte gerade keine 
gleichnamigen Bibliotheken verwenden. Im Prinzip hat Eagle schon alle 
Boardmittel um meine originale Anforderung zu erfüllen. Mit "exp-lbrs" 
kann ich aus allen Bauteilen eine Bibliothek erstellen und mit "REPLACE" 
kann ich die Bauteile auf die neue Library referenzieren. Nur kenne ich 
keinen Befehl mit dem ich ein automatisches Replace durchführen kann. 
Darum auch die Idee mit der .ulp, ganz ohne Verzeichnispfad 
Tricksereien.

Maik F. schrieb:

> Wenn du wirklich alle Bauteile mit der neuen Projekt-Library verknüpfen
> willst, dann ist ein ulp ein gutes Mittel um das händische ersetzen
> aller Bauteile zu vermeiden. Du kannst ja mal unter
> https://github.com/Sns22/Eagle_PCB_Libraries/blob/...
> gucken, ob du dir da was abschauen kannst. Dann mußt du dein ulp nicht
> ganz von vorne neu schreiben.

Auf die ulp bin ich gestern auch gestoßen. Scheint mir aber das Gleiche 
zu mache wie die "exp-lbrs". Naja muss mir das Ganze mal genauer 
anschauen.

von Stefan (Gast)


Lesenswert?

Hi,

hab mir "exp-lbrs-replace.ulp" bzw. "exp-lbrs-replace2.ulp" noch mal 
genauer angeschaut. Das ULP erstellt nicht nur eine gemeinsame 
Bibliothek sondern erstellt auch eine "_ReplaceLibParts.scr" 
Scriptdatei, sobald diese aufgerufen wird werden alle Bauteile auf die 
neue Bibliothek referenziert. Genau das was ich gesucht habe.

Vielen Dank!
Stefan

von Sebastian S. (amateur)


Lesenswert?

Irgendwie erschließt sich mir das Problem nicht.

Der Export der verwendeten Bibliotheken erzeugt eine neue Bibliothek - 
aber keine neuen Bauteile!
Also unterstelle ich mal dass das Bauteil Xyz aus der ursprünglichen 
Bibliothek völlig identisch mit dem Bauteil Xyz aus der neu generierten 
Bibliothek ist.
Wozu also noch die Referenzen manipulieren?
Willst Du am Original rumfummeln - etwas was ich mir immer verkneife - 
so steht es Dir ja frei, das nächste Mal, den Hilfsauszug zu referieren.
Am Original fummel ich nur rum, wenn es einen Fehler gibt. In dem Falle 
kann es aber nicht schaden ein Update mit dem nun geänderten Bauteil 
anzustoßen. Andernfalls bringt die Änderung ja nichts.

von Sebastian S. (amateur)


Lesenswert?

Ich Vergaß:
Zumindest bei der von mir verwendeten Version 6.X, werden zusätzlich 
noch alle Bauteile, unabhängig von ihrem Ursprung, direkt in die 
.sch-Datei übernommen. Befinden sich die Bibliotheken gerade im Nirwana, 
so funktioniert die weitere Bearbeitung weiterhin.
Leider habe ich noch keine Möglichkeit gefunden aus einer "Ist schon 
eingefügt"-Liste weitere Bauteile auszuwählen. Das ist aber eine andere 
Baustelle.

von Stefan (Gast)


Lesenswert?

Hi,

mal zur Erklärung des Problems. Sagen wir ein Schaltplan besteht aus 
Bauteilen(Parts) aus 8 verschiedenen Bibliotheken, davon 3 aus 
Eagle-Standardbibliotheken und 5 Custum-Bibliotheken. Jetzt hat man die 
Wahl wie man mit diesen arbeitet:

1. Man lässt die Bibliotheken getrennt:
Die einfachste Methode. Hat aber das Problem das die Daten nicht 
gekapselt sind und das die Parts aus den Bibliotheken und die Parts aus 
dem Schaltplan mit der Zeit divergieren können. Zum Beispiel wenn man 
nach Zehn Jahren die Datei mit der neuseten Eagle Version öffnet und 
dann feststellt das es einige Bibliotheken gar nicht mehr gibt und 
andere sich stark verändert haben. Jetzt kann man natürlich die Bauteile 
aus den Schaltplan exporteieren. Problem dabei, man besitzt dann jede 
Bibliothek zweimal, einmal die aktuelle Version und einmal die 
exportierte Version. Zweites Problem, nachdem man die Bibliotheken 
exportiert hat, wie lässt man die Bauteile auf diese referenzieren?

2. Man fasst die Bibliotheken von Hand zusammen, entweder am Ende der 
Entwicklung oder während der Entwicklung. Ist eine gute Möglichkeit aber 
mit relativ großen manuellen Aufwand. Man muss jedes einzelne Bauteil 
kopieren und in die neue Bibliothek einfügen. Wenn man die Bauteile erst 
am Ende der Entwicklung zusammenfasst, wie referenziert man dan die 
Bauteile auf die neue Bibliothek? Man kann natürlich sagen, dass man die 
Bauteile erst dann der neu erstellten Bibliothek zuordnet wenn man diese 
auch wirklich verändern will. Dann hat man nicht nur acht (in unserem 
Beispiel) sondern neun unterschiedliche Bibliotheken. Die originalen 
acht und eine zusätzliche zusammengemixte aus den acht. Die Bauteile 
referenzieren wild durch die Gegend, zeigen mal auf eine alte mal auf 
die neue Bibliothek, sobald man 'Bibliothek/Alles aktualisieren' klickt 
passieren wunderliche Dinge.

3. Am Ende der Entwicklung fasst man alle verwendeten Bauteile zur einen 
Bibliothek zusammen, z.B. mit "exp-lbrs-replace2.ulp", die Bauteile 
zeigen aber alle noch auf die alten Bibliotheken. Man ruft 
"_ReplaceLibParts.scr" auf, alle Bauteile zeigen nur noch auf eine 
Bibliothek. Man speichert diese Bibliothek zusammen mit .brd und .sch. 
Nach zehn Jahren möchte man die Zeichnung mit der aktuellen Eagleversion 
öffnen, man kopiert die Bibliothek in einen gültigen lbr Ordner. Jetzt 
öffnet man .sch und .brd und kann sofort weiter arbeiten, so als wäre 
nie Zeit vergangen. Die verwendeten Bibliothek und die Parts aus der 
Zeichnung sind 100% konsistent. Man kann 'Bibliothek/Alles 
aktualisieren' klicken ohne das man schlimmes befürchten muss. Wenn man 
z.B ein Package ersetzen möchte kopiert man dieses einfach aus den 
vorhanden Bibliotheken und führt dann ein 'Alles aktualisieren' aus, 
alle betroffenen Bauteile werde aktualisiert und Bibliothek und 
Zeichnung sind weiterhin konsistent.

Gruß
Stefan

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.