Meine persönliche EAGLE CAD-Seite  

mein Eagle-Logo

Kontext-Funktionen der Objekte erweitern


Für jeden EAGLE-Editor kann man sich eigene Kontextmenüs erstellen.

Hier geht's zu den Beispielen wie ich sie mir zusammensetzte.
Aber nicht erschrecken, manche Menüs brauchen mehr als des halbe Fenster, je nach dem wie groß die Auflösung des Bildschirm ist (bei mir 1920 x 1200 Pixel * 6 :-D).


Zu jedem Objekt gibt es ein Kontext-Menü das mit Strg (Crtl) und re. Maustaste geöffnet wird.

Klickt man wie oben beschrieben ein Objekt an, öffnet sich das Kontext-Menü des entsprechenden Objekt.
In der Grundeinstellung sind zuerst nur die in EAGLE definierten Befehle vorhanden, die an diieser Stelle Sinn machen,
aber man kann das Menü um eigene Funktionen erweitern.
Dazu gibt es den Befehl

SET CONTEXT objecttype text commands;

Eine Beschreibung zur Erstellung von selbst definierten Kontext-Befehlen/Funktionen findet sich hier um EAGLE selber um Funktionen zu erweitern.
Das ist die Zweite geniale Möglichkeit EAGLE für seine persönlichen Zwecke aufzurüsten, neben dem Textbutton-Menü.

Ein kleines grundlegendes Problem zeigt sich allerdings bei dem Objekt WIRE.

Durch selektieren des Objektes wie oben beschrieben, erkennt EAGLE zuert nur das OBJEKT selbst,
unterscheidet aber erst später um welches Unterobjekt es sich handelt.

Das WIRE-Objekt kennt folgende Unterarten:

WIRE plain Ein WIRE der für sich alleine steht. Also zu keinem übergeordneten Objekt gehört.
Kann aber zu einer längeren Kette von WIRE gehören.
WIRE Polygon plain Der WIRE gehört zu einem POLYGON das aus mindesten 3 WIRE-Segmenten oder mehr besteht.
Damit kann man Flächen mit bel. Kontur definieren.
WIRE Bus  Der WIRE gehört zu einem BUS. Ein BUS definiert im Schaltplan eine Zusammenfassung
von mehreren NETzen.
Ein BUS ist dann von Vorteil, wenn man z.B. Microcontroller-Schaltungen erstellt.
Da Microcontroller meistens 8 Bit und mehr als Datenbus besitzen, macht es keinen Sinn alle 8 Leitungen
quer über den Schaltplan zu zeichnen.
1. Unnötiger Platzverbrauch
2. macht den Plan nur konfuser.
3. Bei 16 Bit wird's nicht besser.
Dann gibt's da noch den Adressbus, der je nach Größe des adressierbaren Speicherbereich 16 und mehr
Leitungen benötigt.
Und nicht vergessen den Control-Bus, mit den Clock, Enable, R/W, Reset, Interrupt und sonstigen Signalen,
die auch zu den entsprechenden Bauteilen gelegt werden müssen.
Da bestünde der Schaltplan fast nur aus Linien.
WIRE Net  Der WIRE gehört zu einem NET. Ein NET definiert im Schaltplan eine elektrische Verbindung zwischen 2
oder beliebig vielen PINs.
Anmerkung zu NET (WIRE):
Werden 2 PIN eines Gate im Schaltplan übereinander abgelegt, dann erzeugt EAGLE dafür auch ein NET,
allerdings entsteht dadurch ein WIRE-Loses NET, mit der Länge 0.
Dieses NET kann mit dem Kontext WIRE nicht erreicht werden, da es zwar als NET existiert, nicht aber
als WIRE (Wire-Länge 0).
Zieht man mit MOVE eines der Gates von dem überlagernden PINs weg, dann erzeugt EAGLE dafür einen WIRE
mit dem Namen des NET. * Für die Erzeugung und Behandlung von NET-Namen gibt es interne Regeln.
WIRE Signal Der WIRE gehört zu einem SIGNAL.
Anmerkung:
Ein Signal besteht zuerst mal aus einer Luftlinie mit der Breite 0 im Layer 19 "Unrouted".
Soll heißen, ein NET im Schaltplan erzeugt die Netz/Signal-Liste im Board mit
direkten Verbindungen zwischen den Kontakten (PAD/SMD).
Wird das SIGNAL geroutet, verlegt man mit einstellbarer Breite in einem Kupferlayer (1 bis 16)
eine entsprechende Anzahl von WIRE die zu diesem SIGNAL gehören.
WIRE Polygon Signal Der WIRE gehört zu einem Polygon das wiederum zu einem SIGNAL gehört.
Damit kann man Flächen erzeugen die zu einem SIGNAL gehören. Typisch: Versorgungssignale, GND, VCC....
Die WIRE eines Polygon das zu einem Signal gehö sihet man zuerst mal mit ihrer gezeichneten Kontur.
Nach RATSNEST werden die Polygone entsprechend der Design-Regeln aktuell berechnet, wobei u.U. scheinbar
die Konturen verschwinden.
Keine Panik, es wird die Kontur gespeichert und nach neu laden der Datei wird diese Kontur wieder angezeigt.
Ebenso wenn man mit RIPUP @ auf die Scheinbar verschwunden Kontur klickt.
Dadurch wird die mit RATSNEST berechnete Füllung und Kontur des Polygon entfernt wieder die
definierte Kontur angezeigt, die Füllung des Polygon verschwindet.
ARCDer ARC ist im Wesentlichen ein WIRE mit Krümmung. Er kann wie oben beschrieben ein
einzelnes Objekt sein oder zu einer Kette der Unterart gehören.

Und jetzt zeigt sich ein kleines Manko des Kontextmenü.

Da EAGLE durch das selektieren des Objekt erst mal nur das Objekt selbst erkennt, kann er an dieser Stelle
noch nicht unterscheiden zu welcher Unterart oder Übergeordneter Objektstruktur der Wire gehört.
Hier muß dann das entsprechende ULP das mit diesem Mausklick gesartet wird in der Laufzeit ermitteln
zu welcher Struktur das Objekt gehört.
Das ULP sucht dann in der Datenstruktur durch alle übergeordnete Objekte der Klasse WIRE und ermittelt
mit ingroup() welches Objekt selektiert wurde.

Dadurch mußen jetzt im Kontextmenü für WIRE alle Möglichen Funktionen des Objekt mit
übergeordneter Struktur angezeigt werden.
Das dann bei entsprechender Erweiterung des Kontaxtmenü etwas umfangreich werden kann.
Wie das dann in der Praxis für WIRE aussehen kann zeigt sich hier:

Beispiel WIRE Kontext <<< hier den Mauscursor hinstellen. ;-)

Durch die Anzahl der Einträge und die endliche Höhe des Windows-Fenster reicht eine Spalte allein
für das Kontext-Menü für WIRE im Schaltplan nicht mehr aus und wird leicht unübersichtlich.
Leider kann man die Einträge die EAGLE per Default mitschleppt nicht entfernen.
Aus meiner Sicht braucht es die nicht, es sind die oberen Einträge mit den kleinen Icons wie im Befehlsmenü
auf der linken Seite.

Wie man sieht, habe ich das Kontextmenü schon ziemlich erweitert. :-D
Um es ein bisschen Übersichtlicher zu machen, kann man ja Einträge ohne Funktion erstellen, wie:

--------- GROUP --------------
--------- MARK ---------------
--------- ARC -----------------
--------- Polygon -------------
--------- Verschiedenes ------
--------- Schematic -----------

Was das Menü etwas übersichtlicher macht.

 


Bei Fragen: