Meine persönliche EAGLE CAD-Seite  

mein Eagle-Logo

Ein sehr wichtiges Thema: Bibliothekspflege


Bibliotheken verliert man nicht, so lange es noch den Schaltplan oder das Board gibt

EAGLE speichert wie schon erwähnt in den SCH- und BRD-Dateien die Bauteildefinition (PACKAGE, SYMBOL, DEVICESET).
Sollte doch mal eine Bibliothek gelöscht worden sein, dann kann man sich aus dem Schaltplan das kompette Deviceset wieder herstellen.
Dafür hab ich mal das exp-project-lbr-ingroup.ulp geschrieben. Die ULPs gibt es hier .

Dieses ULP wird von dem context-all.ulp in folgender Weise benutzt:

Damit lässt sich aus dem Schaltplan das komplette Deviceset wieder extrahieren.
Entweder als Projekt-Bibliothek, dann wird die Bibliothek so benannt wie der Schaltplan, oder als Original-Bibliothek, aber im Verzeichnis des Schaltplan.
Damit man sich keine Symbole oder Packages zerstört, erzeugt das ULP die Original-Bibliothek im Verzeichnis des Schaltplan.

Problem, zur Laufzeit des ULP wird ein SCRIPT erzeugt in dem die EAGLE-Befehle geschrieben werden um die Packages und Symbole wieder aufzubauen.
Aber erst bei der Ausführung des erzeugten SCRIPT, passiert es dann.
Mit EDIT name.pac bzw. EDIT name.sym wird das entsprechende Objekt angelegt, dann die WIRE [1], RECT, CIRCLE, TEXT, DIMENSION, FRAME
und schliesslich auch die PIN, PAD, SMD, HOLE gezeichnet.
Gibt es das PAC oder SYM schon in der LBR, dann platziert das SCRIPT die genannten Zeichen-Objekte noch einmal.[2]
Spätestens wenn ein PIN oder PAD/SMD auf einer Koordinate abgesetzt werden soll, an der dieses Objekt schon existiert,
meldet Eagle das mit entsprechender Nachricht.
Denn an einer Koordinate kann es nur einen Kontakt geben (Gruß vom Highlander). Würde EAGLE hier den Kontakt platzieren,
wäre das Bauteil somit zerstört, da dann die Anzahl der CONNECT nicht mehr zur Anzahl der PIN/PAD/SMD stimmt, da sich diese verdoppeln würden.

[1] EAGLE hat eine Besonderheit bei WIRE.
  Zeichnet man einen WIRE exakt über einen bestehenden WIRE, also Anfangskoordinate und Endkoordinate, dann werden diese zwei WIRE zu einem vereint.
  Das bedeutet, es kann nur einen geben (da war doch was mit Highlander).
  Zeichnet man einen WIRE in der selben Ausrichtung, aber versetzt, also Anfangskoordinate im bestehenden WIRE und Endkoordinate ebenfalls
  im bestehenden WIRE oder auch außerhalb, dann wird der bestehende Wire gesplitet. Aber spätestens beim nächsten MOVE des WIRE oder
  OPTIMIZE werden die WIRE wieder zu einem vereint und die einzelnen Enden/Split-Punkte dadurch eliminiert (Highlander). ;-)
  Alle anderen Zeichenobjekte bleiben mehrfach erhalten wie sie gezeichnet wurden.
  Man merkt es spätestens wenn man mehrfach angelegte Objekte mit MOVE oder entsprechende, anderen Befehl selektieren will.
  Dann bekommt der Cursor das typische Aussehen das dem Anwender mitteilt, er weiß jetzt nicht welches der Objekte selektiert werden soll.
  Hier kann/muß man mit der rechten Maustaste durchtracen...

[2] Auch die Zeichenobjekte WIRE, RECT, CIRCLE, TEXT, können das Package unbrauchbar machen, wenn sich z.B. die Bauform bzw. die Darstellung
  leicht unterscheidet. Manche Anwender legen ein vorhandenes Package in einer LBR komplett neu an, auch wenn das schon in einer anderen LBR existiert.
  Und hier kann sich das Aussehen schon etwas unterscheiden. Oder wenn die Hersteller für das gleiche Package eine eigene Form benutzen.
  SO14. Viele Hersteller benutzen die gleiche Form, zwischen Pad 1 und Pad 14 ist an der Kante des Gehäuse eine abgerundete Einkerbung.
  Andere Hersteller verpassen dem Gehäuse an der Kante von Pad 1 bis Pad 7 eine Phase (Abschrägung).
  Dann kommt es noch darauf an, wie Maßstabsgetreu der einzelne Anwender das Package angelegt hat.
  Jede Abweichung von der schon bestehenden Zeichnung wird hier nochmal erzeugt.

 


Bei Fragen: