EAGLE Help Version 9.6.2 | Copyright © 2020 Autodesk, Inc. All rights reserved Copyright |
Die Erklärung eines Befehls kann auch durch die Eingabe von
HELP befehlaufgerufen werden.
Ersetzen Sie "befehl" beispielsweise durch MOVE, dann rufen Sie die Hilfe-Seite für den MOVE-Befehl auf.
Von jeder anderen Stelle aus öffnet F1 eine "kontextsensitive" Hilfe-Seite.
Folgende Hilfe-Seiten geben Auskunft für den Einstieg in das Programm.
Für die Befehle ASSIGN und SET existieren auch Dialoge, die über das Options-Menü der Editor-Fenster aufgerufen werden.
Befehlsmenü | MENU-Befehl..; | |
Tastenbelegung | ASSIGN function_key-Befehl..; | |
Snap-Funktion | SET SNAP_LENGTH number; | |
SET CATCH_FACTOR value; | ||
SET SELECT_FACTOR value; | ||
Inhalt von Menüs | SET USED_LAYERS name | number; | |
SET WIDTH_MENU value..; | ||
SET DIAMETER_MENU value..; | ||
SET DRILL_MENU value..; | ||
SET SMD_MENU value..; | ||
SET SIZE_MENU value..; | ||
SET ISOLATE_MENU value..; | ||
SET SPACING_MENU value..; | ||
SET MITER_MENU value..; | ||
SET DLINE_WIDTH_MENU value..; | ||
SET DLINE_EXT_WIDTH_MENU value..; | ||
SET DLINE_EXT_LENGTH_MENU value..; | ||
SET DLINE_EXT_OFFSET_MENU value..; | ||
Kontextmenüs | SET CONTEXT type text commands; | |
Line/Wire Bend | SET WIRE_BEND bend_nr; | |
Beep ein/aus | SET BEEP OFF | ON; | |
Group Annotations | SET GROUP_ANNOTATIONS OFF | ON | HOVERONLY; |
Farbe für Grid-Linien | SET COLOR_GRID color; | |
Farbe für Layer | SET COLOR_LAYER layer color; | |
Fill Style für Layer | SET FILL_LAYER layer fill; | |
Grid-Parameter | SET MIN_GRID_SIZE pixels; | |
min. dargest. Textgröße | SET MIN_TEXT_SIZE size; | |
Darst. der Netzlinien | SET NET_WIRE_WIDTH width; | |
Darst. der Pads | SET DISPLAY_MODE REAL | NODRILL; | |
SET PAD_NAMES OFF | ON; | ||
Darst. der Buslinien | SET BUS_WIRE_WIDTH width; | |
DRC-Füllmuster | SET DRC_FILL fill_name; | |
Polygon-Berechnung | SET POLYGON_RATSNEST OFF | ON; | |
Vector Font | SET VECTOR_FONT OFF | ON; |
Package-Check | SET CHECK_CONNECTS OFF | ON; | |
Grid-Parameter | GRID options; | |
Replace-Modus | SET REPLACE_SAME NAMES | COORDS; | |
UNDO-Buffer | SET UNDO_LOG OFF | ON; | |
Line/Wire-Optimierung | SET OPTIMIZING OFF | ON; | |
Netz-Linien beenden | SET AUTO_END_NET OFF | ON; | |
Automatische Junctions | SET AUTO_JUNCTION OFF | ON; |
Single Layer Modus | SET SINGLE_LAYER_MODE OFF | ON; | |
Obstacle Modus | SET OBSTACLE_MODE IGNORE | WALKAROUND | PUSH; | |
Loop Removal | SET LOOP_REMOVAL OFF | ON; |
Pad-Form | CHANGE SHAPE shape; | |
Linienbreite | CHANGE WIDTH value; | |
Pad/Via-Durchmesser | CHANGE DIAMETER diameter; | |
Pad/Via/Hole-Bohrd. | CHANGE DRILL value; | |
Smd-Größe | CHANGE SMD width height; | |
Text-Höhe | CHANGE SIZE value; | |
Text-Linienbreite | CHANGE RATIO ratio; | |
Text-Font | CHANGE FONT font; | |
Text-Ausrichtung | CHANGE ALIGN align; | |
Polygon-Parameter | CHANGE THERMALS OFF | ON; | |
Polygon-Parameter | CHANGE ORPHANS OFF | ON; | |
Polygon-Parameter | CHANGE ISOLATE distance; | |
Polygon-Parameter | CHANGE POUR SOLID | HATCH | CUTOUT; | |
Polygon-Parameter | CHANGE RANK value; | |
Polygon-Parameter | CHANGE SPACING distance; | |
Bemaßungsart | CHANGE DTYPE value; |
eagle [ Optionen [ Dateiname [ Layer ] ] ]Unter Windows steht EAGLE auch als Konsolenapplikation 'eaglecon.exe' zur Verfügung (s.u.).
-Axxx | Bestückungsvariante | |
-Cxxx | den angegebenen Befehl ausführen | |
-Dxxx | Draw-Toleranz (0.1 = 10%) | |
-Exxx | Drill-Toleranz (0.1 = 10%) | |
-Fxxx | Flash-Toleranz (0.1 = 10%) | |
-N- | keine Rückfragen in der Kommandozeile | |
-O+ | Stift-Bewegungen optimieren | |
-Pxxx | Plotter-Stift (Layer=Stift) | |
-Rxxx | Bohrer-Datei | |
-Sxxx | Script-Datei | |
-Uxxx | Datei für Benutzereinstellungen | |
-Wxxx | Blenden-Datei | |
-X- | CAM-Prozessor ausführen | |
-c+ | positive Koordinaten | |
-dxxx | Ausgabegerät (-d? für Liste) | |
-e- | Blenden emulieren | |
-f+ | Pads ausfüllen | |
-hxxx | Seitenhöhe (inch) | |
-m- | Ausgabe spiegeln | |
-oxxx | Ausgabedateiname | |
-pxxx | Stiftdurchmesser (mm) | |
-q- | Quick-Plot | |
-r- | Ausgabe um 90 Grad drehen | |
-sxxx | Skalierungsfaktor | |
-u- | Ausgabe auf dem Kopf stehend | |
-vxxx | Stiftgeschwindigkeit | |
-wxxx | Seitenbreite (inch) | |
-xxxx | X-Versatz (inch) | |
-yxxx | Y-Versatz (inch) |
Hierbei bedeutet xxx, dass weitere Daten, z. B. ein Dateiname oder eine Dezimalzahl an den Optionsbuchstaben angehängt werden müssen (ohne oder mit Leerzeichen), wie zum Beispiel bei
-Wmywheel.whl -W mywheel.whl -e Blenden-Emulation ein -e+ dto. -e- Blenden-Emulation ausBei Schalter-Optionen bedeutet ein '-', dass der Schalter standardmäßig ausgeschaltet ist, während er bei '+' standardmäßig eingeschaltet ist.
Schalter-Optionen (z.B. -e) können ohne Wiederholung des '-'-Zeichens verwendet werden:
-ecfm | Blenden-Emulation ein, positive Koordinaten ein, Pads ausfüllen ein, Ausgabe spiegeln | |
-ec-f+ | Blenden-Emulation ein, positive Koordinaten aus, Pads ausfüllen ein |
Windows | c:\Users\$UserName\AppData\Roaming\Eagle\settings\X.Y.Z\eaglerc | |
MacOS | /Users/$UserName/Library/Application Support/Eagle/settings/X.Y.Z/eaglerc | |
Linux | /home/$UserName/.local/share/Eagle/settings/X.Y.Z/eaglerc |
Wird als Dateiname das Zeichen '-' angegeben, wie in -U-, so wird keine eaglerc-Datei gelesen bzw. geschrieben.
-D0.10 | stellt Draw-Toleranz auf ±10% ein | |
-D+0.1 -D-0.05 | stellt Draw-Toleranz auf +10% und -5% ein |
eagle -C "window (1 1) (2 2);" myboard.brdso lädt EAGLE die angegebene Datei und führt den Befehl so aus, als wäre er in der Kommandozeile des Editor-Fensters eingegeben worden.
Folgende Bedingungen gelten für die Option '-C':
eagle -C ""Beachten Sie bitte, dass in diesem speziellen Fall ein Leerzeichen zwischen dem Options-Buchstaben und den Anführungszeichen sein muss, damit das Programm den explizit leeren String sieht. Es muss dann auch kein Dateiname angegeben werden, da ja kein Befehl ausgeführt werden soll.
Wichtiger Hinweis zum Schließen:
Wann immer Koordinaten oder Abmessungen (z.B. Leiterbahnbreiten oder Pad-Durchmesser)
angegeben werden können, können diese mit Einheiten versehen werden, wie etwa 50mil
oder 0.8mm. Wird keine Einheit angegeben, so wird die aktuelle Grid-Einheit verwendet.
Bitte beenden Sie immer zuerst EAGLE, bevor Sie die Konsole schliessen!
Das vorherige Schliessen der Konsole bewirkt sonst ein unkontrolliertes "Abschiessen" von EAGLE,
so daß ungespeicherte Änderungen verloren gehen können usw.
Das gleiche Problem tritt auf wenn Sie über die Taskleiste die EAGLE-Fenster als
als Gruppe schliessen oder nur gezielt das Konsolen-Fenster.
Schnelle Einführung
Um schnell mit EAGLE zurechtzukommen, sollten Sie mehr über folgende Themen
wissen:
Control Panel und Editor-Fenster
Vom Control Panel aus können Sie über das Datei-Menü
oder durch Anklicken eines Icons die Fenster des Schaltplan-, Layout-
und Bibliotheks-Editors öffnen.
Eingabe von Parametern und Werten
Parameter und Werte können über die EAGLE-Kommandozeile oder,
wesentlich bequemer, über die Parameter-Toolbar eingegeben werden, die
erscheint, wenn ein Befehl aktiviert ist. Da dies keiner großen
Erklärung bedarf, wird an anderen Stellen im Hilfe-Text nicht explizit
darauf hingewiesen.
Schaltplan entwerfen
Schaltplan anlegen
Neuen Schaltplan mit "Datei/Neu" anlegen und mit "Datei/Speichern unter..." unter neuem
Namen abspeichern.
Zeichnungsrahmen laden
Bibliothek FRAMES mit USE laden und Rahmen mit ADD plazieren.
Symbole plazieren
Bibliotheken mit USE laden und Symbole plazieren (siehe ADD, MOVE,
DELETE, ROTATE, NAME, VALUE). Fehlt ein bestimmtes Bauelement, dann
mit Bibliotheks-Editor definieren.
Es entsteht eine Leerplatine, neben der die mit Luftlinien verbundenen Bauelemente plaziert sind. Versorgungs-Pins werden mit den Signalen verbunden, die ihrem Namen entsprechen, falls nicht explizit ein anderes Netz mit ihnen verbunden wurde.
Die Platine ist über die Forward&Back-Annotation mit dem Schaltplan verbunden. Damit ist gewährleistet, dass beide übereinstimmen. Um die Forward&Back-Annotation aufrechtzuerhalten, sollten Sie immer beide Dateien geladen haben, wenn Sie Änderungen am Schaltplan oder an der Platine durchführen.
Öffnen Sie eine Bibliothek mit Öffnen oder Neu im Datei-Menü.
Klicken Sie das Edit-Package-Icon an, und tragen Sie den gewünschten Namen in das New-Feld ein.
Legen Sie das Raster fest (GRID).
Plazieren Sie die Pads (PAD) und legen Sie deren Namen (NAME) und Parameter fest (CHANGE).
Plazieren Sie mit dem TEXT-Befehl die Strings >NAME und >VALUE (repräsentieren den aktuellen Namen und Wert in der Platine), und zeichnen Sie das Gehäuse (LINE-Befehl) in die entsprechenden Layer.
Klicken Sie das Edit-Symbol-Icon an, und tragen Sie den gewünschten Namen in das New-Feld ein.
Plazieren Sie die Pins (PIN) und legen Sie deren Namen (NAME) und Parameter fest (CHANGE).
Plazieren Sie mit dem TEXT-Befehl die Strings >NAME und >VALUE (repräsentieren den aktuellen Namen und Wert im Schaltplan), und zeichnen Sie das Symbol (LINE-Befehl) in die entsprechenden Layer.
Klicken Sie das Edit-Device-Icon an, und tragen Sie den gewünschten Namen in das New-Feld ein.
Weisen Sie dem Device ein Gehäuse zu (PACKAGE-Befehl).
Verwenden Sie den ADD-Befehl, um das Symbol oder die Symbole in das Device zu holen.
Klicken Sie auf das CONNECT-Icon, um festzulegen, welche Pins mit welchen Gehäuse-Pads verbunden sind.
Speichern Sie die Bibliothek, und sie kann anschließend vom
Schaltplan- oder vom Board-Editor aus mit USE geladen werden.
Control Panel
Das Control Panel ist EAGLEs Steuerzentrale.
Es enthält in der linken Fensterhälfte eine Baumstruktur und ein Informationsfenster
in der rechten Hälfte.
Verzeichnisse einstellen
Die Haupteinträge in der Baumansicht repräsentieren die verschiedenen EAGLE-Dateitypen.
Jeder der Einträge kann auf ein oder mehrere Verzeichnisse zeigen, die Dateien dieses
Typs enthalten.
Die Verzeichnisse werden im Directories-Dialog definiert.
Wenn einer der Haupteinträge auf ein Verzeichnis zeigt, sehen Sie nach dem Aufklappen
des Eintrags (entweder durch einen Klick auf das kleine Symbol links oder durch einen
Doppelklick auf den Eintrag selbst) direkt den Inhalt des Verzeichnisses.
Wenn ein Haupteintrag auf mehrere Verzeichnisse zeigt, werden nach dem Aufklappen alle
Verzeichniseinträge aufgelistet.
Verzeichnisse | Die Datei mit dem Namen DESCRIPTION darin | |
Bibliotheken | DESCRIPTION-Befehl in der Bibliothek | |
Devices | DESCRIPTION-Befehl im Device-Editor | |
Packages | DESCRIPTION-Befehl im Package-Editor | |
Design-Regeln | Die Beschreibung der Design-Regel-Datei im DRC-Dialog | |
User-Language-Programme | Text, durch die #usage-Anweisung gekennzeichnet | |
Script-Dateien | Der Kommentar am Anfang der Script-Datei | |
CAM-Jobs | DESCRIPTION-Befehl im CAM-Prozessor-Job |
Neu | Erzeugt eine neue Datei | |
Öffnen | Öffnet eine existierende Datei | |
Zuletzt geöffnete Projekte | Öffnet eines der zuletzt bearbeiteten Projekte | |
Alles speichern | Speichert alle modifizierten Editor-Dateien | |
Projekt schließen | Schließt das aktuelle Projekt | |
Beenden | Beendet das Programm |
Aktualisieren | Aktualisiert den Inhalt der Baumansicht | |
Suche | Sucht im Inhalt der Baumansicht (siehe unten) | |
Sortieren | Ändert die Sortierung der Baumansicht |
Verzeichnisse... | Öffnet den Verzeichnis-Dialog | |
Sicherung... | Öffnet den Sicherungs-Dialog | |
Benutzeroberfläche... | Öffnet den Benutzeroberfläche-Dialog | |
Datensammlung und Verwendung... | Öffnet den Dialog Datensammlung und Verwendung | |
Proxy-Einstellungen... | Öffnet den Dialog für Proxy-Einstellungen |
Control Panel | Zum Control Panel wechseln | |
1 Schaltplan - ... | Zu Fenster 1 wechseln | |
2 Board - ... | Zu Fenster 2 wechseln |
Allgemein | Öffnet eine allgemeine Hilfe-Seite | |
Kontext | Öffnet die Hilfe-Seite für den momentanen Kontext | |
Control Panel | Öffnet diese Hilfe-Seite | |
Auf Update prüfen | Prüft ob eine neue Version von EAGLE verfügbar ist | |
Über EAGLE | Zeigt Details zu Ihrer EAGLE Version und Lizenz an |
Wird eine Datei über dies Kontext-Menü Option ausgedruckt, so wird immer
die Datei von der Platte gelesen, auch wenn Sie ein offenes Editor Fenster
haben in dem Sie die Datei editieren! Benutzen Sie den
PRINT-Befehl um eine Zeichnung aus einem offenen
Editor Fenster heraus zu drucken.
Bitte beachten Sie, dass Polygone in Platinen beim Ausdrucken über das
Kontext-Menü nicht automatisch freigerechnet werden! Es werden lediglich die
Umrisse dargestellt. Um die Polygone freigerechnet auszudrucken, laden Sie
die Zeichnung in ein Editor-Fenster, geben Sie
RATSNEST ein und dann
PRINT.
Alle Felder können ein oder mehrere, durch Doppelpunkt (':') getrennte Verzeichnisse enthalten, in denen nach den verschiedenen Dateitypen gesucht wird.
![]() | Unter Windows werden die einzelnen Verzeichnisnamen durch Strichpunkte (';') getrennt. |
Die Example-Verzeichnisse enthalten Referenz-Projekte. Die Auswahl-Option "Include EAGLE examples" steuert deren Sichtbarkeit. Alle installierten Quellen und Beispiele sind im "Nur-lesen"-Modus.
Die Variablen $HOME und $EAGLEDIR werden verwendet, um das Home-Verzeichnis des Benutzers bzw. das EAGLE-Programm-Verzeichnis anzugeben.
![]() |
Unter Windows wird der Wert für $HOME entweder durch die Umgebungsvariable EAGLE_HOME (falls gesetzt) oder durch den Wert des Registry-Eintrags "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Personal", der den aktuellen Namen des "Dokumente"-Ordners festlegt, definiert.
Alle Dateien werden im Verzeichnis $HOME\EAGLE abgespeichert. |
![]() ![]() |
Unter MacOS und Linux wird der Wert für $HOME entweder durch die Umgebungsvariable EAGLE_HOME (falls gesetzt) oder die Umgebungsvariable HOME festgelegt.
Ist keine dieser Variablen gesetzt, entspricht $HOME dem Verzeichnis $EAGLEDIR.
Alle Dateien werden im Verzeichnis $HOME\Documents\EAGLE abgespeichert. |
Menüleiste | aktiviert das Pulldown-Menü am oberen Rand des Editor-Fensters | |
Aktionsleiste | aktiviert die Toolbar mit Buttons für "Datei", "Drucken" etc. | |
Parameterleiste | aktiviert die dynamische Parameter-Toolbar, die alle Parameter des gerade aktiven Befehls enthält | |
Befehlsmenü | aktiviert die Kommando-Toolbar | |
Textmenü | aktiviert das Text-Menü | |
Seitenvorschau | aktiviert die Vorschau für Schaltplanseiten |
Hintergrund | wählt die Hintergrundfarbe schwarz, weiß oder farbig im Layout-Editor | |
Mauszeiger | wählt einen kleines Kreuz oder ein großes Fadenkreuz als Mauszeiger im Layout-Editor |
Hintergrund | wählt die Hintergrundfarbe schwarz, weiß oder farbig im Schaltplan-Editor | |
Mauszeiger | wählt ein kleines Kreuz oder ein großes Fadenkreuz als Mauszeiger im Schaltplan-Editor | |
Group Annotations | selects display of group annotations off, on or hover only |
Direkthilfe | aktiviert die "Direkthilfe" Funktion, die einen kurzen Hinweis über die Bedeutung der Buttons gibt, wenn man den Mauszeiger über einen solchen bewegt | |
Benutzerführung | aktiviert die "Benutzerführung", die einen Hilfetext anzeigt, der dem Benutzer bei aktivem Befehl jederzeit den nächsten sinnvollen Schritt angibt |
Immer Vektor-Schrift | Texte in Zeichnungen werden immer im EAGLE-eigenen Vektor-Font dargestellt, unabhängig welche Schriftart für einen Text ursprünglich gewählt wurde. | |
Mausrad-Zoomfaktor | definiert den Zoom-Faktor für das Hinein- bzw. Herauszoomen mit einer Rädchenmaus in einem Editor-Fenster ('0' schaltet diese Funktion aus, das Vorzeichen bestimmt die Drehrichtung des Rädchens) |
Anonyme Analysen | erlaubt anonyme Datenberichte | |
Kommunikation | erlaubt Email-Kommunikation mit dem Anwender |
System-Einstellungen verwenden | EAGLE verwendet die System-Einstellungen | |
Kein Proxy | nutzt direkte Verbindungen | |
HTTP | ein transparenter HTTP Proxy wird verwendet | |
SOCKS5 | Socks5 Proxy wird verwendet |
Server | Host-Name des Proxys | |
Port | Port des Proxys | |
Proxy-Server erfordert Passwort | ermöglicht Proxy-Authentifizierung | |
Benutzername | Benutzername für die Proxy-Authentifizierung | |
Passwort | Passwort für die Proxy-Authentifizierung |
Der Konfigurieren-Button öffnet einen Dialog, in dem Sie angeben können ob und wie häufig eine automatische Überprüfung auf eine neue Version beim Programmstart stattfinden soll (standardmäßig geschieht dies einmal am Tag). Falls Sie einen Proxy benutzen müssen, um das Internet anzusprechen, so können Sie diesen auch im Konfigurationsdialog angeben. Geben Sie dazu im Feld "Host" den vollen Namen des Proxy-Rechners ein, ohne etwaigen http://-Präfix, und im Feld "Port" eine optionale Port-Nummer.
Falls Sie auch über Betaversionen von EAGLE informiert werden möchten, so
können sie die Option "Auch auf Betaversionen prüfen" einschalten.
Auf deutschen Tastaturen wird die Ctrl-Taste meist als Strg
bezeichnet und die Shift-Taste als "Umschalt-Taste". Da EAGLE an einigen
Stellen Code-Buchstaben für die Bezeichnung dieser Tasten verwendet (siehe
ASSIGN und Befehlseingabe)
verwenden wir durchgehend die Bezeichnungen Ctrl und Shift.
Tastatur und Maus
Die Steuertasten (Alt, Ctrl und Shift) werden benutzt
um das Verhalten bestimmter Maus-Aktionen zu verändern.
Beachten Sie bitte, dass abhänging vom verwendeten Betriebssystem bzw. Window-Manager
manche dieser Tasten (in Kombination mit Maus-Aktionen) möglicherweise nicht an
Applikationen weitergeleitet werden, was zur Folge hat, dass einige der hier beschriebenen
Funktionen dann nicht verfügbar sind.
Alt
Ein Druck auf die Alt-Taste schaltet auf ein alternatives GRID
um. Dies kann typischerweise ein feineres Raster als das normale sein, wodurch es
zum Beispiel schnell und einfach möglich ist etwas in einem dicht belegten Gebiet
fein zu positionieren, wofür das normal Raster zu grob wäre.
Das alternative Grid bleibt so lange aktiv, wie die Alt-Taste gedrückt
gehalten wird.
Die Ctrl-Taste zusammen mit der linken Maustaste steuert spezielle Funktionen der einzelnen Befehle, wie zum Beispiel das Aufnehmen eines Objektes an seinem Aufhängepunkt beim MOVE-Befehl.
Falls ein Befehl eine Gruppe selektieren kann, so muss die Ctrl-Taste zusammen mit der rechten Maustaste gedrückt werden, um die Gruppe zu selektieren (ansonsten würde ein Kontext-Menü für das ausgewählte Objekt geöffnet).
![]() | Unter Mac OS X ist anstatt der Ctrl-Taste die Cmd-Taste zu verwenden. |
Die Shift-Taste zusammen mit der linken Maustaste steuert spezielle Funktionen der einzelnen Befehle, wie zum Beispiel das Löschen eines übergeordneten Objektes beim DELETE-Befehl.
Folgende Befehle unterstützen die mittlere Maustaste:
ADD | Bauteil spiegeln | |
ARC | aktiven Layer wechseln | |
CIRCLE | aktiven Layer wechseln | |
COPY | Objekt spiegeln | |
INVOKE | Gatter spiegeln | |
LABEL | aktiven Layer wechseln | |
LINE | aktiven Layer wechseln | |
MOVE | Objekt oder Gruppe spiegeln | |
PASTE | Gruppe spiegeln | |
POLYGON | aktiven Layer wechseln | |
RECT | aktiven Layer wechseln | |
ROUTE | aktiven Layer wechseln | |
SMD | aktiven Layer wechseln | |
TEXT | aktiven Layer wechseln |
Click&Drag mit der mittleren Maustaste verschiebt die Zeichnung innerhalb des Editor-Fensters.
Wird ein Objekt mit der rechten Maustaste angeklickt, so wird ein kontextspezifisches Popup-Menü angezeigt, aus dem Befehle, die für dieses Objekt anwendbar sind, ausgewählt werden können. Falls gerade ein Befehl aktiv ist, der auf eine Gruppe angewendet werden kann, enthält das Popup-Menü einen entsprechenden Eintrag.
Folgende Befehle unterstützen die rechte Maustaste:
ADD | Bauteil drehen | |
ARC | Drehsinn des Kreisbogens ändern | |
BUS | Knickwinkel ändern | |
CHANGE | Change auf Gruppe anwenden | |
DELETE | Gruppe löschen | |
GROUP | Polygon schließen | |
INVOKE | Gatter drehen | |
LABEL | Label drehen | |
LINE | Knickwinkel ändern | |
MIRROR | Gruppe spiegeln | |
MOVE | Objekt drehen bzw. Gruppe selektieren | |
NET | Knickwinkel ändern | |
PAD | Pad drehen | |
PASTE | Gruppe drehen | |
PATTERN | Vervielfältigt und platziert ein gewähltes Objekt in einer linearen oder zirkularen Struktur. | |
PIN | Pin drehen | |
POLYGON | Knickwinkel ändern | |
RIPUP | Ripup auf Gruppe anwenden | |
ROTATE | Gruppe drehen | |
ROUTE | Knickwinkel ändern | |
SMD | Smd drehen | |
SPLIT | Knickwinkel ändern | |
TEXT | Text drehen |
Hervorgehobenes Objekt auswählen? (links=ja, rechts=weiter, ESC=abbrechen)
Drücken Sie die rechte Maustaste, um zyklisch durch alle in Frage kommenden Objekte "durchzutasten".
Mit der linken Maustaste wählen Sie das gewünschte Objekt aus.
Um die Auswahl ganz abzubrechen, drücken Sie die Esc-Taste.
Mit dem Befehl
SET Select_Factor select_radius;können Sie beeinflussen, wie groß der "Selektionsradius" sein soll.
Wurde die ursprüngliche Selektion mit der rechten Maustaste gemacht, so erscheint
ein kontextspezifisches Popup-Menü für das erste ausgewählte Objekt, welches als
ersten Eintrag "Weiterschalten" enthält. Durch Klicken auf diesen Eintrag wird
zyklisch durch die Objekte im Selektionsradius geschaltet.
Editor-Fenster
EAGLE kennt unterschiedliche Typen von Daten-Dateien. Jeder davon wird in
einem eigenen Editor-Fenster-Typ bearbeitet. Wenn Sie eines der Objekte
durch Doppelklick selektieren oder vom Control Panel
aus eine Datei mit Datei/Öffnen
laden, dann öffnet sich ein Editor-Fenster für diesen Dateityp.
Nach dem Öffnen des Bibliotheks-Editor-Fensters zeigt die Arbeitsfläche das
Inhaltsverzeichnis der Bibliothek; je eine Liste der Devices, Packages und Symbole
in dieser Bibliothek. Von hier aus kann man die Devices, Packages und Symbole
verwalten: Zum Editieren öffnen, Umbenennen, Löschen, Duplizieren usw. Mit einem
Klick auf eine der Schaltflächen Add unter der jeweiligen Liste kann man
neue Devices, Packages und Symbole anlegen oder von einer anderen Bibliothek
importieren.
Package: Die Gehäuse-Bauform.
Symbol: Das Schaltplan-Symbol.
Device: Definition des vollständigen Bauteils. Besteht aus ein oder
mehreren Packages und ein oder mehreren Symbolen. Die Symbole können unterschiedlich
sein (z.B. verschiedene Gatter).
Mit einem Klick auf eines der Devices-, Packages- oder
Symbols-Tabs werden die entsprechenden Objekte gezeigt.
Wenn Sie ein neues Objekt anlegen möchten, schreiben Sie den Namen des neuen
Objekts in die Zeile Neu. Sie können auch den Namen eines bereits existierenden
Objekts angeben und dieses editieren.
Um ein bestehendes Objekt aus einer anderen Bibliothek zu importieren, wählen
Sie das entsprechende Tab im Dialog und klicken Sie unten auf die Schaltfläche
Import.... Es öffnet sich ein neues Fenster, das alle Devices, Packages
und Symbole der Bibliotheken, die zur Zeit benutzt werden (also "in use" sind)
zeigt. Wählen Sie das Objekt, das Sie importieren wollen und klicken Sie OK.
Das Objekt wird in die geöffnete Bibliothek kopiert und zum Editieren geöffnet.
Beachten Sie, dass beim Importieren eines Devices auch alle zugehörigen
Packages und Symbole importiert werden.
Wenn im selben Verzeichnis eine Schaltplan-Datei (*.sch) mit
demselben Namen existiert, wird beim Öffnen eines Layouts automatisch
auch ein Schaltplan-Editor-Fenster
mit dieser Datei als Icon auf den Desktop
gelegt. Das ist notwendig, damit die Schaltplan-Datei geladen ist, wenn
Änderungen an der Platine die Back-Annotation
zum Schaltplan erforderlich machen.
Wenn im selben Verzeichnis eine Layout-Datei (*.brd) mit
demselben Namen existiert, wird beim Öffnen eines Layouts automatisch
auch ein Layout-Editor-Fenster
mit dieser Datei als Icon auf den Desktop
gelegt. Das ist notwendig, damit die Layout-Datei geladen ist, wenn
Änderungen an der Platine die
Forward-Annotation
zum Layout erforderlich machen.
Mit Hilfe der Combo-Box in der Action-Toolbar des Schaltplan-Editor-Fensters
können Sie zwischen den einzelnen Schaltplan-Seiten
wechseln oder neue Seiten anlegen. Sie können dazu auch den
EDIT-Befehl verwenden.
Die Textdatei muss eine reine ASCII-Datei sein und darf keine
Steuerzeichen enthalten. Als Anwendungen sind in erster Linie
vorgesehen: das Schreiben von
User-Language-Programmen und
Script-Dateien.
In diesem Befehl werden die folgenden Platzhalter durch aktuelle Werte ersetzt:
Bibliotheks-Objekt editieren
Im Bibliothekseditier-Modus kann man Devices, Packages und Symbole editieren
Layout-Editor
Der Layout-Editor dient dazu, Layouts (*.brd) zu editieren.
Schaltplan-Editor
Der Schaltplan-Editor dient dazu, Schaltpläne (*.sch)
zu editieren.
Text-Editor
Der Text-Editor dient dazu, Textdateien zu editieren.
Verwenden eines externen Text-Editors
Falls Sie anstatt des in EAGLE eingebauten lieber einen externen Text-Editor
verwenden wollen, so können Sie den zum Starten dieses Editors nötigen Befehl
im Dialog "Optionen/Benutzeroberfläche" eintragen.
%C | die Spalte, in die der Cursor positioniert werden soll (zur Zeit immer 1) | |
%F | der Name der zu ladenden Datei | |
%L | die Zeile, in die der Cursor positioniert werden soll |
Ist als Befehl lediglich ein Minuszeichen ('-') eingetragen, so wird EAGLE niemals ein Text-Editor-Fenster öffnen. Dies ist hilfreich für Benutzer, die ihren Text-Editor immer selbst starten wollen.
Folgende Einschränkungen gelten bei der Verwendung eines externen Text-Editors:
When using the GROUP command to select one or more objects in the design, the inspector will automatically update itself to reflect the properties of the selection. When you select a single object, the inspector will show all propertis of this object. However, when you select multiple objects, the inspector will show the common properties of these objects. If a variety of different types of object was selected, you can use the "Show Types" checkboxes to filter the shown properties to show only the properties of the sub-selection. When making a change to any of the properties through the inspector this change will be applied immediately to all selected objects.
The Quick Actions allow immediately apply an action/command on the selection without switching context. It supports Rotate, Mirror, Replace, Delete, Ripup, Align operations, and more.
When you have multiple objects selected in the editor, the system presents the Selected Objects table. This table allows you to verify the content of your selection, especially prior to performing a multi-object edit in the Inspector.
The inspector allows you to directly edit Attributes from within the panel. You can rename, change the value, add or delete attributes. The changes will have immediate effect. When you select multiple objects that contain attributes, only the attributes that are common to all selected objects are presented in the Inspector. When you perform an attribute addition, the system adds the attribute to all selected objects. If a subset of the selection already has this attribute, the attribute value on this particular object will remain unchanged.
The inspector can be controlled through the SET command: SET INSPECTOR OFF | ON | TOGGLE
The selection filter allows you to reduce the ambiguity experienced when working in designs with a large number of objects.
The Type Filter allows you to reduce the selection to only a subset of the available types. For example by highlighting rows "Wire" and "Via" only wires and vias will be selectable. When now invoking the MOVE command to start moving no more ambiguity will be experienced if for example a wire is overlapping with a device origin.
The Layer Filter allows you to only allow selectability on a certain layer without touching the visiblity.
Both the Type Filter as well as the Selection filter can be controlled using the SET command:
The selection filter can be controlled through the SET command: SET SELECTION_FILTER OFF | ON | TOGGLE
The sheets panel shows the availabe sheets inside the current schematic. It allows you to add/delete. Right-clicking will open the context menu which allows you to add and remove sheets as well as update their description.
The sheets panel can be controlled through the SET command: SET SHEETS OFF | ON | TOGGLE
Browser | The Browser tab includes multiple views (Parts, Nets, Groups, .. ) which can be selected from a dropdown. | |
Filters | The Filter tab provides a simple interface that allows for precise dynamic selections of design objects based on properties, memberships, type, and attributes. Filters can be saved in the design and/or in EAGLE settings. |
The Parts view takes a component-centric look at the document contents, focusing on the parts contained in each sheet, and the items belonging to each individual part.
The nets view gives a hierarchical set of panels allowing the user to see net information from the sheet level down to the segments and pin connections of individual nets.
The Devices view takes a component-centric look at the board, focusing on the devices placed on the Top and Bottom of the board and the items belonging to each.
The signal view gives a hierarchical set of views allowing the user to drill down from the top level netclass, to signals, and to items associated with the selected signals (pads, smds, etc)
The Groups view gives hierarchical view of groups in the design allowing the user to view and manipulate groups and group membership of the objects. For more about group operations, see NEWGROUP. There are two sections in groups view:
New Group | Creates an empty group. Not shown on right click menu. Does not depend on selected rows. | |
Add To | Adds selected groups to a group in sub-menu | |
Remove From | Removes selected groups from a group in sub-menu | |
Ungroup | Removes the group from design but does not remove the member items | |
Clear Group | Removes members from group and leaves the group empty. Both group and members are in design. | |
Delete | Removes the group and its members from the design | |
Properties | Only shown when single row is selected. Opens up the properties dialog box of group. |
New Group | Creates a new group from selected items | |
Add To | Adds selected items to an existing group in sub-menu | |
Remove From | Removes selected items from a group in sub-menu | |
Properties | Only shown when single row is selected. Open up properties dialog box of group. |
Double-clicking on any row in any section opens up the properties dialog for the object associated with that row.
Whether and how to display group annotations can be defined by the SET command:
SET GROUP_ANNOTATIONS OFF | ON | HOVER_ONLY
Filters provides a method of defining precise dynamic selections of design objects based on type, properties, memberships, and attributes. For example, using filters the user can find all parts with a specific name pattern, or with a specific package type. You can also find all parts with specific pins, or for example all nets that belong to a specific bus. There are many options for the Filter Criteria used in Filter Expressions as described below.
Filters are made from combinations of simple Filter Criteria that are combined into true/false type (boolean) expressions
using AND and OR logical operators.
For example if the user wants to find all resistors in an 0603 package, they might setup the 3 criteria below:
((ObjectType = Part) AND (Name = R*) AND (HasFootprint 0603)).
Type | Format | Used For |
Binary | (CriteriaType Operator Target) | Binary criteria types with Operator and Target value (example: ObjectType = Part) |
Unary | !(CriteriaType Target) | Unary criteria types with Target and without Operator (example: (HasFootprint 0603), or !(HasFootprint 0603)), The ! is optional and the criteria is NOT true |
Keyword | !(CriteriaType) | Keyword criteria type with no Operator and no Target value (example: (IsLocked) or !(isLocked)) |
Binary criteria format means there is an operator, and operands on both sides (i.e. ObjectType = Part).
Unary format means there is a criteria type keyword and a target, but no operator in between (i.e. HasPin MOSI). There can be an optional negation operator ! meaning "not", (i.e. !(HasPin MOSI) means does not have a pin called MOSI).
Keyword format means that there is a criteria type keyword and no target and no operators, except for
optional negation operator in front (i.e. IsLocked, or !IsMirrored)
Standard operators supported between the CriteriaType and the Target are =, !=, <, >, <=, >= . Note
that not all operators are available for all CriteriaType. Some CriteriaTypes do not show any
operators in the Filter Composer.
Condition Type | Format | Desc | Scope | |||
ObjectType | Binary | Filter a specific type of object | SCH and BRD | |||
Value | Binary | Filter on the Value property | SCH and BRD | |||
Name | Binary | Filter on the Name property | SCH and BRD | |||
DeviceName | Binary | Filter on the Device Name | SCH | |||
Width | Binary | Filter based on the Width property | SCH and BRD | |||
Length | Binary | Filter based on the Length property | SCH and BRD | |||
PositionX | Binary | Filter based on the X coordinate of its position | SCH and BRD | |||
PositionY | Binary | Filter based on the Y coordinate of its position | SCH and BRD | |||
Rotation | Binary | Filter based on the Rotation angle, in degrees | SCH and BRD | |||
PadCount | Binary | Filter board elements based on the number of pads | BRD | |||
ViaShape | Binary | Filter vias based on shape | BRD | |||
PadShape | Binary | Filter pads based on the shape | BRD | |||
IsLocked | Keyword | Filter based on the Locked property | BRD only | |||
IsMirrored | Keyword | Filter based on the Mirrored property | SCH and BRD | |||
InNetClass | Unary | Filter based on Netclass property | SCH and BRD | |||
InFilter | Unary | If an object is in the results of the filter specified, this will evaluate to TRUE. This functionality allows the user to create complex filters by combining other filters. | SCH and BRD | |||
InLibrary | Unary | Test whether the part or element is from a particular library or not based on library Name | SCH and BRD | |||
IsMemberOfBus | Unary | Test whether the wire is on a net that is part of the bus specified | SCH and BRD | |||
IsSimReady | Keyword | Test whether the part/element has a SPICE simulation model mapping and is ready for simulation. | SCH and BRD | |||
RequiresSpiceModel | Keyword | Test whether the part/element requires a model for simulation. | SCH and BRD | |||
OnLayer | Unary | Test whether the object is on the specified layer | BRD only | |||
InNet | Unary | Test whether the object is in the specified net | SCH | |||
OnSignal | Unary | Test whether the object is on the specified signal | BRD | |||
OnSheet | Unary | Test whether the object is on the specified sheet | SCH | |||
InModule | Unary | Test whether the object is in the specified module | SCH and BRD | |||
HasAttribute | Unary | Test if a part has an Attribute with the specified Name | SCH and BRD | |||
HasSpiceModel | Unary | Test if a part has a SPICE model with the specified Name as the current active model, mapped either in library or schematic | SCH and BRD | |||
HasFootprint | Unary | Test if a part has a particular type of footprint based on footprint Name | SCH and BRD | |||
Has3DModel | Keyword | Test if a 3d model is attached | SCH and BRD | |||
HasPin | Unary | Test if a part symbol has a Pin with a particular Name | SCH and BRD | |||
HasPad | Unary | Test if a part footprint has a Pad with a particular Name | SCH and BRD |
Criteria Targets are shown in the Composer interface as either a dynamic dropdown (based on the criteria type and the design objects), a fixed dropdown (like True and False options), or a free-form textfield. Targets take the form of an object name or type, a value, property, or true/false value. The following rules are always enforced:
The filter tab includes a dropdown at the top that allows for loading saved filters. Filters that are saved in the design are shown, in addition to filters saved in EAGLE settings. If a saved filter is chosen from the dropdown, it will populate the Filter Composer interface, as well as the expression and name fields, and the filter will be run in the current editor.
Whether starting from the default filter (i.e. ObjectType = Part), or a saved filter, the user can always make changes
to the filter criteria and overall expression, either in the Composer interface or manually in the Expression field. User will be prompted
if attempting to save over an existing filter in the same scope with the same name. Note that if the filter was created in schematic,
it will be saved in the schematic, if in board, it will be saved in board, and some criteria types have a scope
that is only valid in one or the other. Filters saved in design are completely seperate from filters saved in global settings, and names can
be duplicated across the different scopes.
Editor-Befehle
Wechsel der Betriebsart/Dateibefehle
CLOSE | Bibliothek nach Editieren schließen | |
EDIT | Zeichnung laden/anlegen | |
EXPORT | ASCII-Liste erzeugen (z.B. Netzliste) | |
EXPORTSTEP | Exportiert das Layout in eine STEP-Datei | |
OPEN | Bibliothek zum Editieren laden | |
QUIT | EAGLE verlassen | |
REMOVE | Dateien/Bibliotheks-Elemente löschen | |
SCRIPT | Befehlsdatei ausführen | |
USE | Bibliothek zum Plazieren von Elementen laden | |
WRITE | Zeichnung/Bibliothek speichern |
ADD | Element in Zeichnung / Symbol in Device einfügen | |
ALIGN | Ordnet ausgewählte Objekte im Layout-Editor an | |
ARC | Kreisbogen zeichnen | |
ATTRIBUTE | Attribute definieren | |
CIRCLE | Kreis zeichnen | |
CLASS | Netzklassen definieren | |
COPY | Objekte/Elemente kopieren | |
CUT | Vorher definierte Gruppe in die Zwischenablage kopieren | |
DELETE | Objekt löschen | |
DESCRIPTION | Beschreibung eines Objektes ändern | |
GROUP | Gruppe für spätere Operation definieren | |
HOLE | Nichtleitende Bohrung definieren | |
LAUNCH | Startet den Package-Generator und die webbasierte Package-Suche | |
LAYER | Layer definieren/wechseln | |
LINE | Linie oder geroutete Verbindung zeichnen | |
MIRROR | Objekt spiegeln | |
MITER | Linien-Verbindungsstellen abschrägen | |
MODULE | Modul und Modul-Instanz erzeugen | |
MOVE | Objekt bewegen oder rotieren | |
NAME | Objekt mit Namen versehen | |
PASTE | Inhalt der Zwischenablage in die Zeichnung einfügen | |
PORT | Port zu einem Modul hinzufügen | |
POLYGON | Polygon zeichnen | |
RECT | Rechteck zeichnen | |
ROTATE | Objekt rotieren | |
SLICE | Linien auftrennen | |
REPOSITION | NAME/VALUE-Texte zum Verschieben vorbereiten | |
SPLIT | Linien knicken | |
TEXT | Text zu einer Zeichnung hinzufügen | |
VALUE | Wert für Element definieren/ändern |
DRC | Design Rule Check durchführen | |
ERRORS | DRC-Fehler anzeigen | |
FANOUT | Erzeugt Fanouts für Bauteile und Signale | |
LOCK | Bauteilposition verriegeln | |
MANUFACTURING | Manufacturing-Flyout ein- und ausblenden | |
RATSNEST | Kürzeste Luftlinien anzeigen | |
REPLACE | Bauteil ersetzen | |
RIPUP | Signal auflösen | |
ROUTE | Signal routen | |
SIGNAL | Signal (Luftlinie) definieren | |
SPLINE | Spline zeichnen | |
VIA | Durchkontaktierung (Via) plazieren |
BOARD | Platine aus einem Schaltplan erzeugen | |
BUS | Buslinie zeichnen | |
ERC | Electrical Rule Check ausführen | |
GATESWAP | Äquivalente 'Gates' tauschen | |
INVOKE | 'Gate' aus Device plazieren | |
JUNCTION | Verbindungspunkt plazieren | |
LABEL | Label für Bus oder Netz plazieren | |
NET | Netz definieren | |
PINSWAP | Äquivalente Pins tauschen |
CONNECT | Pin/Pad-Zuordnung festlegen | |
PACKAGE | Package für Device definieren | |
PAD | Pad in Package einfügen | |
PIN | Pin in Symbol einfügen | |
PREFIX | Default-Präfix für Device festlegen | |
REMOVE | Elemente aus Bibliothek löschen | |
RENAME | Symbol/Package/Device neu benennen | |
SMD | Smd-Pad in Package einfügen | |
TECHNOLOGY | Technologien für ein Device definieren | |
VALUE | Definieren, ob Value-Text änderbar |
ASSIGN | Tasten belegen | |
CHANGE | EAGLE-Parameter ändern | |
DISPLAY | Layer anzeigen/ausblenden | |
GRID | Raster/Einheit definieren | |
MENU | Befehls-Menü konfigurieren | |
SET | Programm-Parameter einstellen | |
WINDOW | Bildausschnitt verändern |
AUTO | Autorouter starten | |
HELP | Hilfe-Seite anzeigen | |
INFO | Information über Objekt zeigen | |
MARK | Messmarke setzen/entfernen | |
OPTIMIZE | Linien-Segmente zusammenfassen | |
PAINTROLLER | Überträgt ausgewählte Eigenschaften eines gewählten Objekts zu anderen Objekten desselben Typs. | |
Ausdrucken auf dem System-Drucker | ||
REDO | Zurückgenommene Befehle ausführen | |
RUN | User-Language-Programm ausführen | |
SHOW | Objekt hell darstellen | |
UNDO | Befehle zurücknehmen | |
UPDATE | Bibliotheks-Objekte aktualisieren | |
FUSIONSYNC | Board und Fusion PCB synchronisieren | |
FUSIONTEAM | Board- und Schaltplandatei und/oder Fertigungsdaten in Fusion Team publizieren. |
Für die Befehlsbeschreibungen gelten folgende Regeln:
Befehle und Parameter in GROSSBUCHSTABEN werden direkt eingegeben (bzw. aus dem Befehlsmenü mit der Maus selektiert). Bei der Eingabe werden Groß- und Kleinbuchstaben nicht unterschieden.
Parameter in Kleinbuchstaben werden durch Namen, Zahlenwerte oder Schlüsselwörter ersetzt. Beispiel:
Syntax: | GRID grid_size grid_multiple; | |
Input: | GRID 1 10; |
Syntax: | SET BEEP OFF | ON; | |
Input: | SET BEEP OFF; | |
oder | ||
SET BEEP ON; |
Syntax: | DISPLAY option layer_name.. | |
Input: | DISPLAY TOP PINS VIAS |
Syntax: | MOVE .. | |
Input: | MOVE | |
Mausklick auf erstes zu bewegendes Element | ||
Mausklick auf das Ziel | ||
Mausklick auf zweites zu bewegendes Element | ||
etc. |
An diesem Beispiel sehen Sie auch, wie die Wiederholungspunkte bei Befehlen mit Mausklicks zu verstehen sind.
Jeder Mausklick stellt eine Koordinatenangabe dar. Will man den Befehl textuell eingeben, dann kann man anstelle des Mausklicks die Koordinaten über die Tastatur in folgender Form eingeben:
(x y)Dabei sind x und y Zahlen in der mit dem GRID-Befehl gewählten Einheit. Die textuelle Eingabemöglichkeit ist insbesondere für Script-Dateien erforderlich.
(100mil 200mil)Erlaubte Einheiten sind mm, mic, mil und in. Es können auch unterschiedliche Einheiten für x und y verwendet werden.
(@)kann dazu benutzt werden, die aktuelle Position des Mauszeigers im Zeichenfenster zu referenzieren. So würde zum Beispiel die Eingabe
MOVE R1 (@)das Bauteil mit dem Namen R1 an die Position verschieben, auf der der Mauszeiger im Moment steht.
Nach der öffnenden Klammer darf eine beliebige Kombination der folgenden Steuerzeichen folgen um einen bestimmten Tastendruck zusammen mit dem "Mausklick" zu simulieren oder die Art der Koordinaten zu modifizieren:
> | rechte Maustaste | |
A | Alt-Taste | |
C | Ctrl-Taste | |
P | Polar-Koordinaten (relativ zur Marke, x = Radius, y = Winkel in Grad, gegen den Uhrzeigersinn) | |
R | Relative Koordinaten (relativ zur Marke) | |
S | Shift-Taste |
(CR> 1 2)würde zum Beispiel einem "Mausklick" mit der rechten Maustaste an den Koordinaten (1 2) relativ zur Marke, mit gedrückter Ctrl-Taste entsprechen (natürlich würde es vom konkreten Befehl abhängen was genau mit dieser Art von Eingabe geschehen würde). Falls momentan keine Marke gesetzt ist, beziehen sich Koordinaten mit R oder P auf den Ursprung der Zeichnung. Die Steuerzeichen sind unabhängig von Groß-/Kleinschreibung, ihre Reihenfolge spielt keine Rolle und es muss auch kein Leerzeichen zwischen ihnen und der ersten Ziffer der Koordinaten stehen. Das obige Beispiel könnte also ebenso als (r>c1 2) geschrieben werden. Als "Polar-Koordinaten" eingegebene Werte werden intern als die entsprechenden (x y) Koordinaten abgespeichert.
Als Beispiel für die Koordinateneingabe in Textform soll die Eingabe der Platinenumrisse mit exakten Maßen dienen:
GRID 1 MM; CHANGE LAYER DIMENSION; LINE 0 (0 0) (160 0) (160 100) (0 100) (0 0); GRID LAST;
WINDOW;frischt beispielsweise das Zeichenfenster auf, während
WINDOW FITdas Zeichenfenster so skaliert, dass die gesamte Zeichnung sichtbar ist. Im zweiten Fall ist kein Strichpunkt erforderlich, weil bereits klar ist, dass kein weiterer Parameter folgen kann.
Der ADD-Befehl holt ein Schaltplan-Symbol (Gate) oder ein Package aus der aktiven Bibliothek und plaziert es in der Zeichnung.
Bei der Device-Definition holt der ADD-Befehl ein Symbol in das Device.
Üblicherweise klickt man den ADD-Befehl an und selektiert das Package/Symbol aus dem sich öffnenden Menü. Nun können die Parameter (falls erforderlich) per Tastatur eingegeben werden.
Wenn device_name Platzhalter enthält ('*' oder '?') und mehr als ein Device gefunden wird, öffnet sich der ADD-Dialog. Daraus kann dann das gewünschte Device gewählt werden. Beachten Sie, dass die Beschreibung Checkbox im ADD-Dialog ausgeschaltet wird, sobald ein ADD-Befehl mit einem Device-Namen in der Kommandozeile angegeben wird, egal ob der Name Platzhalter enthält oder nicht. Der Grund hierfür ist, dass ein in der Kommandozeile angegebener Device-Name nur in den Namen der Devices gesucht wird und nicht in deren Beschreibungen.
Plaziert wird das Package/Symbol mit der linken Maustaste, rotiert wird es mit der rechten. Nachdem es plaziert wurde, hängt sofort eine weitere Kopie am Mauszeiger.
Wenn bereits ein Device oder Package mit gleichem Namen (aus derselben Bibliothek) in der Zeichnung existiert und die Bibliothek seit dem Plazieren des ursprünglichen Elements modifiziert wurde, startet EAGLE automatisch einen Library-Update bei dem Sie gefragt werden, ob die Bauteile durch die neuere Bibliotheksdefinition ersetzt werden sollen. Achtung: Nach einem Library-Update sollten Sie immer den Design Rule Check (DRC) und den Electrical Rule Check (ERC) laufen lassen!
Um ein Element direkt zu plazieren, verwenden Sie die Syntax:
ADD devicename@librarynamedevicename darf Platzhalter enthalten und libraryname darf entweder direkt der Bibliotheksname (wie "ttl" oder "ttl.lbr"), der volle Name mit Pfadangabe (wie "/home/mydir/myproject/ttl.lbr" oder "../lbr/ttl"), oder die URN einer heruntergeladenen Verwaltete Bibliothek (zum Beispiel "urn:adsk.eagle:library:462") sein. Im Falle von Leerzeichen im Pfad ist der Gesamtausdruck von Hochkommas einzuschließen (z.B. ADD 'DEV1A@/home/my dir/ttl.lbr').
ADD devicename[@libraryname] P3D=3d_packagewobei 3d_package der Name oder der URN des 3D-Packages sein kann. Dabei wird die Liste der passenden Devices devicename (und libraryname, wenn angegeben, die das entsprechende 3D-Package verwenden, ausgefiltert. Wird kein 3D-Package spezifiziert, werden alle mit dem angegebenen Device verwendeten 3D-Packages im ADD-Dialog gezeigt. Gibt es nur ein einziges passendes Device, dem kein oder nur ein einziges 3D-Package zugeordnet ist, wird das Device – und das 3D-Package, wenn vorhanden – direkt gewählt ohne dass der ADD-Dialog gezeit wird. Bei der 3d_package-Angabe spielt Groß-/Kleinschreibung keine Rolle; es werden keine Platzhalter unterstützt. Beispiel:
ADD PINHD-1x4 P3D=PINHD-1x4-5.84MMfügt das Device PINHD-1x4 in Schaltplan (und Board) ein und ordnet das 3D-Package PINHD-1x4-5.84MM zu.
Beispiel:
ADD DIL14 IC1 holt das Package DIL14 in die Platine und gibt ihm den Namen IC1.
Wird im Schaltplan kein Name angegeben, erhält das Gate als Namen den bei der Device-Definition mit PREFIX festgelegten Präfix, ergänzt um eine fortlaufende Zahl (z.B. IC1).
Beispiel:
ADD 7400 Hier werden der Reihe nach fünf Gatter aus Bausteinen des Typs 7400 plaziert. Sofern als Präfix "IC" definiert wurde und die Einzelgatter innerhalb eines 7400 die Namen A...D haben, erhalten die Gatter im Schaltplan die Namen IC1A, IC1B, IC1C, IC1D, IC2A (falls schon Elemente mit demselben Präfix plaziert wurden, wird die Zählung mit der nächsten laufenden Nummer fortgesetzt. Siehe auch INVOKE.
Während ein Objekt am Cursor hängt, können Sie den Namen, unter dem es in die Zeichnung eingefügt wird, ändern. Damit können Sie mehrere Bauteile gleichen Typs unter verschiedenen, explizit vergebenen Namen einfügen:
Beispiel:
ADD CAP C1 C5 C7
Beispiel:
ADD 7400 IC1 A Dies ist vor allem dafür gedacht, wenn ein Schaltplan über ein Script generiert werden soll. Beachten Sie bitte, dass wenn ein bestimmtes Gatter geholt wird keine anderen Gatter mit Add-Level MUST oder ALWAYS automatisch mit geholt werden, und Sie müssen zumindest die MUST-Gatter mit dem INVOKE-Befehl aktivieren (ansonsten wird sie der Electrical Rule Check als fehlend melden).
[S][M]Rnnn
S | setzt das Spin-Flag, welches die Funktion abschaltet, die Texte von unten oder rechts lesbar hält (nur im Board-Kontext verfügbar) | |
M | setzt das Mirror-Flag, welches das Objekt an der Y-Achse spiegelt | |
Rnnn | setzt die Rotation auf den angegebenen Wert, der im Board-Kontext im Bereich 0.0...359.9 (mit einer Auflösung von 0.1 Grad) und im Schaltplan-Kontext einer der Werte 0, 90, 180 oder 270 sein darf (Winkel dürfen auch negativ angegeben werden, sie werden dann in den entsprechenden positiven Wert umgewandelt) |
Die Schlüsselbuchstaben S, M und R können als Groß- oder Kleinbuchstaben angegeben werden und es muss mindestens R gefolgt von einer Zahl vorhanden sein.
Ist das Mirror-Flag sowohl in einem Bauteil als auch in einem in dessen Package befindlichen Text gesetzt, so heben sich diese in ihrer Wirkung auf. Das gleiche gilt für das Spin-Flag.
Beispiele:
R0 | keine Rotation | |
R90 | um 90° gegen den Uhrzeigersinn gedreht | |
R-90 | um 90° im Uhrzeigersinn gedreht (wird in 270° umgerechnet) | |
MR0 | an der Y-Achse gespiegelt | |
SR0 | Texte werden mit "Spin" dargestellt | |
SMR33.3 | um 33.3° gegen den Uhrzeigersinn gedreht, gespiegelt und mit "Spin" |
Default: R0
ADD DIL16 R90 (0 0);plaziert ein 16poliges DIL-Gehäuse, das um 90 Grad gegen den Uhrzeigersinn gedreht ist, an den Koordinaten (0 0).
0: | Das Symbol (Gate) kann im Schaltplan nicht mit einem anderen vertauscht werden. | |
>0 | Das Symbol (Gate) kann im Schaltplan mit jedem anderen Symbol dieses Typs vertauscht werden, das denselben Swaplevel hat (auch zwischen verschiedenen Devices). |
Default: 0
Next | Wenn ein Device mehr als ein Gate aufweist, werden in den Schaltplan der Reihe nach die Symbole mit Addlevel Next geholt. | |
Must | Wird ein beliebiges Symbol eines Device in den Schaltplan geholt, dann muss auch ein mit dem Addlevel Must definiertes Symbol im Schaltplan erscheinen. Dies geschieht automatisch. Es kann nicht gelöscht werden, bevor nicht alle anderen Symbole aus diesem Device gelöscht sind. Falls nur noch Must-Symbole aus einem Device vorhanden sind, löscht der DELETE-Befehl das ganze Device. | |
Always | Wie Must, allerdings kann ein Symbol mit Addlevel Always gelöscht und mit INVOKE wieder in den Schaltplan geholt werden. | |
Can | Gibt es in einem Device Next-Gates, dann werden Can-Gates nur geholt, wenn sie explizit mit INVOKE angefordert werden. Ein Symbol mit Addlevel Can wird mit ADD nur dann in den Schaltplan geholt, wenn das Device nur Can- und Request-Gates enthält. | |
Request | Diese Eigenschaft wird sinnvollerweise für Versorgungs-Symbole von Bausteinen verwendet. Request-Gates können nur explizit in den Schaltplan geholt werden (INVOKE) und werden intern nicht mitgezählt. Das hat zur Folge, dass in Bausteinen mit nur einem Gatter und einem Versorgungsspannungs-Symbol der Gatter-Name nicht zum Bauteil-Namen hinzugefügt wird. Im Falle eines 7400 mit vier Gattern (plus Versorgungsspannung) heißen die einzelnen Gatter im Schaltplan beispielsweise IC1A, IC1B, IC1C und IC1D. Ein 68000 mit nur einem Gate, dem Prozessor-Symbol, heisst dagegen im Schaltplan z. B. IC1, da sein separates Spannungsversorgungs-Symbol als Gate nicht mitzählt. |
Beispiel:
ADD PWR 0 REQUEST holt das Symbol PWR (z. B. ein Versorgungssymbol) und definiert dafür den Swaplevel 0 (nicht tauschbar) und den Addlevel Request.
Dieser Befehl konvertiert ein einzelnes Bauteil oder einen vollständigen Schaltplan (wenn vorher alles selektiert wurde) in einen spice-simulationsfähigen Schaltplan indem die Bauteile so modifiziert werden, dass sie die notwendigen Attribute und Zuordnungen enthalten. Wenn möglich, werden Annahmen getroffen welches Mapping für den Device-Typ getroffen werden kann. Dazu wird angenommen, dass der erste Buchstabe des Prefix gleich dem des Spice-Modells ist. Beispielsweise nimmt man für einen Wiederstand R, einen Kondensator C, eine induktivität L und einen Schaltkreis X an. Der Anwender kann die richtige Zuordnung des Device-Typs im angezeigten Dialog wählen. In der Hilfe zum SIM-Befehl finden Sie weitere Informationen über Simulation, und eine detailierte Liste über Spice-Devices und deren Syntax auf der Berkeley-Spice-Webseite hier Das ist die Liste der gültigen Spice-Präfixe.
R L C K X S W V I G E F H B T O U D Q J M Z
Zur Zeit unterstützt der ALIGN-Befehl keine Kommandozeilen-Parameter.
Der ALIGN-Befehl nutzt an den Achsen ausgerichtete Boundingboxen der Objekte in allen Betriebsarten mit Ausnahme von "Align Origin to Grid" (wie der Name sagt wird der Aufhängepunkt des Objekts dazu verwendet).
Für den Modus Distribute Vertically | Horizontally werden mindestens drei Objekte benötigt - in dieser Betriebsart werden die gewählten Objekte mit gleichem Abstand verteilt.
Der ALIGN-Befehl ignoriert alle anderen Objekttypen, auch wenn sie vor dem Start des
Befehls ausgewählt wurden. Der ALIGN-Befehl ist nicht anwendbar, wenn sich keine
geeigneten Objekte im Editor befinden.
ARC
Siehe auch CHANGE,
LINE,
CIRCLE
Mit dem ARC-Befehl zeichnet man Kreisbögen. Der erste und zweite Mausklick (linke Maustaste) definieren zwei gegenüberliegende Punkte auf dem Kreisumfang. Danach lässt sich mit der rechten Maustaste festlegen, ob der Bogen im Uhrzeigersinn oder im Gegenuhrzeigersinn dargestellt werden soll. Mit dem abschließenden Mausklick legt man den Winkel des Bogens fest.
Mit den Parametern CW (Clockwise) und CCW (Counterclockwise) kann man festlegen, ob der Bogen im Uhrzeigersinn oder gegen den Uhrzeigersinn dargestellt werden soll. ROUND bzw. FLAT bestimmt ob die Enden des Kreisbogens rund oder flach sein sollen.
CHANGE WIDTH width;voreinstellen oder verändern und ist identisch mit der aktuellen Strichstärke für Linien.
Kreisbögen mit einem Winkel von 0 oder 360 Grad oder einem Radius von 0 werden nicht akzeptiert.
Beispiel für textuelle Eingabe:
GRID inch 1; ARC CW (0 1) (0 -1) (1 0);erzeugt einen Viertelkreis im ersten Quadranten mit Mittelpunkt im Ursprung.
function_key = modifier+key
modifier = jede Kombination aus S (Shift), C (Ctrl), A (Alt) und M (Cmd, nur auf Mac OS X)
key = F1..F12, A-Z, 0-9, BS (Backspace)
Mit dem ASSIGN-Befehl kann man die Funktionstasten F1 bis F12, die Buchstabentasten A bis Z, die (oberen) Zifferntasten 0 bis 9 und die Backspace-Taste (jeweils auch in Kombination mit Zusatztasten) mit einzelnen oder mehreren Befehlen belegen.
Der ASSIGN-Befehl ohne Parameter listet die aktuelle Tastenbelegung in einem Dialog auf, in dem die Einstellungen auch verändert werden können.
Die beim Betätigen der Taste auszuführende Befehlssequenz sollte man der Klarheit wegen in Hochkommas einschließen.
Soll als key eine der Tasten A-Z oder 0-9 verwendet werden, so muss der modifier mindestens A, C oder M enthalten.
![]() | Der M modifier ist nur unter Mac OS X verfügbar. |
Bitte beachten Sie, dass eine eventuell auf einer Taste liegende
Betriebssystem-Funktion durch den ASSIGN-Befehl überschrieben wird.
Je nach verwendetem Betriebssystem kann es sein, dass bestimmte Tastenkombinationen
nicht mit dem ASSIGN-Befehl überschrieben werden können (wie z.B. Shift+F10 auf Windows).
Falls Sie eine Buchstabentaste zusammen mit dem Modifier A belegen (zum Beispiel
A+F), so steht ein eventueller Hotkey im Pulldown-Menü nicht mehr
zur Verfügung.
Um eine Tastenbelegung wieder zu entfernen geben Sie ASSIGN nur mit dem function_key Code (ohne Befehl) ein.
ASSIGN F7 'change layer top; route'; ASS A+F7 'cha lay to; rou'; ASSIGN C+F10 menu add mov rou ''';''' edit; ASSIGN CA+R 'route';Die beiden ersten Eingaben bewirken das gleiche, da EAGLE nicht nur bei Befehlen, sondern auch bei den Parametern Abkürzungen zulässt, solange sie eindeutig sind.
Beachten Sie, dass hier z. B. der Befehl "CHANGE layer top" mit Strichpunkt abgeschlossen ist und der ROUTE-Befehl nicht. Im ersten Fall enthält der Befehl nämlich alle Parameterangaben, während im zweiten Fall noch Koordinatenangaben fehlen (die dann sinnvollerweise mit der Maus eingegeben werden). Der ROUTE-Befehl darf also nicht mit Strichpunkt abgeschlossen werden.
F1 HELP | Hilfe-Funktion | |
Alt+F2 WINDOW FIT | Zeichnung formatfüllend darst. | |
F2 WINDOW; | Bildschirminhalt auffrischen | |
F3 WINDOW 2 | In das Bild hineinzoomen, Fakt. 2 | |
F4 WINDOW 0.5 | Herauszoomen um Faktor 2 | |
F5 WINDOW (@); | Neues Zentrum an der Position des Mauszeigers | |
F6 GRID; | Raster ein-/ausblenden |
Ausserdem sind viele nützliche Tastenbelegungen im Initialisierungsskript default-assign.scr enthalten
und können Ihren individuellen Vorstellungen angepaßt werden.
ATTRIBUTE
Siehe auch TECHNOLOGY,
NAME,
VALUE,
REPOSITION,
TEXT
ATTRIBUTE part_name attribute_name
ATTRIBUTE part_name attribute_name 'attribute_value' [ [ orientation ] ]
ATTRIBUTE part_name attribute_name DELETE
ATTRIBUTE element_name attribute_name
ATTRIBUTE element_name attribute_name 'attribute_value' [ [ orientation ] ]
ATTRIBUTE element_name attribute_name DELETE
ATTRIBUTE * [ name [ 'value' ] ]
ATTRIBUTE * name DELETE
ATTRIBUTE ..
Siehe Beschreibung der orientation bei ADD.
Ein Attribut ist eine beliebige Kombination aus einem Namen und einem Wert, welche dazu benutzt werden kann, einem bestimmten Bauteil jede Art von Information zuzuordnen.
Attribute können in der Bibliothek definiert werden (für einzelne Devices), im Schaltplan oder im Board (für konkrete Bauteile). Attribute, die auf der Device-Ebene definiert wurden, werden für jedes Bauteil dieses Typs im Schaltplan verwendet. Im Schaltplan können jedem Bauteil weitere Attribute hinzugefügt werden, und bestehende Attribute von den Devices können mit anderen Werten überschrieben werden (falls die Attribute als variabel definiert wurden). Ein Element im Board hat alle Attribute des zugehörigen Bauteils im Schaltplan und kann weitere, eigene Attribute haben.
ATTRIBUTE name [ 'value' ] [ options ]Der name darf aus beliebigen Buchstaben, Ziffern und den Zeichen '_', '#' und '-' bestehen und beliebig lang sein; das erste Zeichen darf allerdings nicht '-' sein. Die Groß-/Kleinschreibung spielt bei den Namen keine Rolle, so dass PartNo und PARTNO der gleiche Name sind. Der value darf beliebige Zeichen enthalten und muss in Hochkommas angegeben werden.
Gültige options sind:
delete | Löscht das Attribut mit dem angegebenen Namen aus allen Technology-Varianten (in diesem Fall darf kein 'value' angegeben werden). | |
variable | Das Attribut wird als variabel markiert, so dass es im Schaltplan überschrieben werden kann (dies ist die Standardeinstellung). | |
constant | Attribute, die als konstant markiert sind, können nicht im Schaltplan überschrieben werden (es sei denn, der Anwender besteht darauf). |
Ein bereits bestehendes Attribut kann zwischen variabel und konstant umgeschaltet werden, ohne dass sein Wert erneut angegeben werden muss:
ATTRIBUTE ABC '123' | (standardmäßig variabel) | |
ATTRIBUTE ABC constant | (ABC behält den Wert '123') |
Wird nach dem Selektieren des ATTRIBUTE-Befehls auf ein Bauteil geklickt, so erscheint ein Dialog in dem alle Attribute dieses Bauteils aufgelistet sind und bearbeitet werden können.
Um ein Attribut vollständig textuell zu definieren, kann folgende Syntax benutzt werden:
ATTRIBUTE part_name attribute_name 'attribute_value' orientation
Bei bereits existierenden Attributen ist nur eine Änderung des Wertes möglich; hierzu kann folgende Syntax benutzt werden:
ATTRIBUTE part_name attribute_name 'attribute_value';Beachten Sie bitte, dass im Falle eines Bauteils, das aus mehreren Gattern besteht, tatsächlich eines dieser Gatter ausgewählt wird. Bei der Auswahl über einen Mausklick ist bereits klar, welches Gatter gemeint ist, wohingegen bei der textuellen Auswahl der vollständige Name bestehend aus Bauteil- und Gattername angegeben werden sollte. Ein konkretes Bauteil kann nur ein Attribut mit einem bestimmten Namen haben, dieses kann aber zu jedem seiner Gatter hinzugefügt werden. Wird nur der Bauteilname angegeben, so wird implizit das erste sichtbare Gatter ausgewählt.
Werden keine Koordinaten angegeben (und der Befehl mit ';' abgeschlossen), so hängt das Verhalten davon ab, ob das gegebene Attribut für dieses Bauteil bereits existiert (entweder im Device oder im Schaltplan). Existiert das Attribut bereits, so wird lediglich sein Wert geändert. Falls es noch nicht existiert, so wird ein neues Attribut mit dem gegebenen Namen und Wert angelegt und am Aufhängepunkt des ausgewählten Gatters des Bauteils platziert.
Um ein Attribut von einem Bauteil zu entfernen kann der Befehl
ATTRIBUTE part_name attribute_name DELETEverwendet werden.
Bei der Definition von Attributen über die Kommandozeile oder ein Script verwenden Sie bitte den CHANGE DISPLAY Befehl um einzustellen, welche Teile des Attributs (Name, Wert, beides oder nichts davon) sichtbar sein sollen.
Wird im Board für ein Element die graphische Darstellung eines Attributes gelöscht und ist dieses Attribut lediglich im Board definiert, wird das Attribut selbst auch gelöscht. In allen anderen Fällen wird das Attribut nicht gelöscht, sondern nur der Anzeige-Modus auf OFF (unsichtbar) geändert.
Solch ein Attribut könnte zum Beispiel der Autor der Zeichnung sein, und kann im Schriftfeld des Zeichnungsrahmens verwendet werden. Es wird dann auf jeder Schaltplan-Seite angezeigt, die einen Zeichnungsrahmen enthält in dem sich eine gleichnamige Text Variable befindet.
Der Attributname _EXTERNAL_ ist zur Kennzeichnung externer Devices reserviert (siehe PACKAGE).
LAYER Layer; LINE (1 2) (3 4);hier nicht funktioniert. Der Layer muss gewählt werden, wenn der ATTRIBUTE-Befehl bereits aktiv ist. Dies kann folgendermaßen geschehen:
ATTRIBUTE Parameter LAYER Layer weitere Parameter;Beachten Sie, dass die ATTRIBUTE-Zeile nicht mit einem ';' abgeschlossen ist, und dass der LAYER-Befehl in einer neuen Zeile beginnt.
ATTRIBUTE LAYER Layer;setzen den Layer für nachfolgende ATTRIBUTE-Befehle.
PACKAGE N; TECHNOLOGY LS; ATTRIBUTE PartNo '12345-ABC'; ATTRIBUTE Temp '100K' constant; ATTRIBUTE Remark 'mount manually';
Der AUTO-Befehl aktiviert den integrierten Autorouter. Werden Signalnamen angegeben oder Signale mit der Maus selektiert, werden nur diese Signale verlegt. Ohne weitere Parameter verlegt der Autorouter alle Signale. Das Zeichen "!" gibt an, dass alle Signale ausser den angegebenen zu routen sind. Es muss vor allen Signalnamen stehen und darf nur einmal vorkommen.
Die Optionen LOAD und SAVE können dazu verwendet werden die Autorouter-Parameter aus der angegebenen Datei zu laden bzw. sie in diese zu speichern. Falls filename nicht die Extension ".ctl" hat wird diese automatisch angefügt.
Ohne Parameter (oder wenn das abschließende ';' nicht angegeben wird), öffnet der AUTO-Befehl einen Dialog, in dem die Steuerparameter für den Routing-Algorithmus eingestellt werden können. Die spezielle Option FOLLOWME öffnet diesen Dialog in einem Modus, in dem nur die für den Follow-me-Router maßgeblichen Parameter verändert werden können.
AUTO ! GND VCC;Der abschließende Strichpunkt ist in jedem Fall erforderlich, es sei denn, der Autorouter wird vom Menü aus mit "Start" gestartet. Die Aktivitäten des Autorouters können Sie am Bildschirm mitverfolgen.
Das Menü des Autorouter-Befehls erscheint nach Eingabe von AUTO ohne abschließenden Strichpunkt.
* | steht für eine beliebige Anzahl beliebiger Zeichen | |
? | steht für genau ein Zeichen | |
[...] | steht für irgend eines der Zeichen zwischen den Klammern |
Soll eines dieser Zeichen genau so gesucht werden, wie es ist, so muss es in eckige Klammern eingeschlossen werden. Zum Beispiel findet abc[*]ghi die Zeichenfolge abc*ghi, aber nicht abcdefghi.
Ein Bereich von Zeichen kann als [a-z] angegeben werden, was für eines der Zeichen aus dem Bereich 'a'...'z' steht.
Falls der Autorouter keine Signale in einem Layer verlegen soll, ist in das Feld für die Vorzugsrichtung "N/A" einzutragen.
(NETS LPC_A1 PWR D0)Man kann auch Signale des BGAs vom Routen ausnehmen. In diesem Fall muss man dem Schlüsselwort NETS ein - Minuszeichen voranstellen:
(-NETS LPC_A1 PWR D0)In diesem Fall werden alle Signale außer LPC_A1, PWR und D0 verlegt.
(LAYERS (LAYER_NUMBER1 "list1 of signal names") (LAYER_NUMBER2 "list2 of signal names") ...)In diesem Fall dürfen nur die Signale von list1 den Layer mit der Nummer LAYER_NUMBER1 verwenden.
(LAYERS (2 GND) (3 3V3 2V5 1V2))Hier darf nur GND in Layer 2 und nur die Signale 3V3, 2V5 und 1V2 in Layer 3 verlegt werden. Mit einer leeren Liste, zum Beispiel (2), wird der Layer 2 für das BGA-Routing gesperrt. Definiert man leere Listen für verschiedene Layer, sind all diese Layer vom Routing ausgenommen.
(LAYERS (2 GND) (-3 3V3 2V5 1V2))Hier wird Layer 2 nur für GND verwendet, in Layer 3 dürfen alle Signale mit Ausnahme von 3V3, 2V5 und 1V2 verlegt werden.
(MICROVIAS OFF)
Der BOARD-Befehl erzeugt eine Layout-Datei aus einem Schaltplan.
Wenn die Platine bereits existiert, wird sie in ein Layout-Editor-Fenster geladen.
Wenn die Platine nicht existiert, werden Sie gefragt, ob Sie eine neue Datei anlegen wollen. Wird der grid Parameter angegeben, so werden die Bauteile in dem angegebenen Raster platziert, wie in
BOARD 5mmwomit die Bauteile in einem 5mm Raster platziert würden (Default ist 50mil). Die Zahl muss mit Einheit angegeben werden und der Maximalwert ist 10mm.
Der BOARD-Befehl überschreibt niemals eine existierende Platinen-Datei. Wenn eine Datei mit diesem Namen existiert, muss sie erst mit REMOVE gelöscht werden, bevor der BOARD-Befehl sie neu anlegen kann.
edit .brdin die Kommandozeile des Editor-Fensters eintippen.
Alle relevanten Daten der Schaltplan-Datei (name.sch) werden dann in eine Board-Datei (name.brd) konvertiert. Das neue Board wird automatisch mit einer Größe von 160x100mm (Light Edition: 100x80mm) angelegt. Alle Packages mit den im Schaltplan definierten Verbindungen sind links neben der leeren Platine plaziert. Power-Pins sind bereits verbunden (siehe PIN-Befehl).
Falls Sie andere als die standardmäßig angelegten Platinenumrisse benötigen, brauchen Sie einfach nur die entsprechenden Linien zu löschen und die gewünschten Umrisse mit dem LINE-Befehl in den Layer Dimension zu zeichnen. Wählen Sie dazu bitte eine Strichbreite von 0, da es sich hierbei nur um Hilfslinien handelt.
Eine Board-Datei kann nicht angelegt werden:
Ein BUS repräsentiert eine Sammlung von Netzen. Ein BUS hat eine Spezifikation und besteht aus einem oder mehreren Liniensegmenten. Die Bus-Spezifikation kann einen (eindeutigen) Alias, eine Kurzbezeichnung, enthalten um den Bus identifizieren zu können. Mit dem Befehl BUS zeichnet man Busse in den Bus-Layer eines Schaltplans.
EAGLE kann eine wiederverwendbare Bus-Spezifikation als "Predefined Bus" (PDB) abspeichern. Diese PDBs werden in der Datei eaglerc abgespeichert und stehen projektübergreifend zur Verfügung. Sie können so auch mit anderen geteilt werden (Beispiel: SPI:MISO,MOSI,CLK,CS). Gibt man den PDB in geschweiften Klammern nach dem BUS-Befehl an, wird der Bus beim Zeichnen diese Eigenschaften übernehmen. Der "Predefined Bus Name" muss gültig und in der Datei eaglerc gespeichert sein.
BUS {PREDEFINED_BUS_NAME}
Das BUS-Icon im Befehlsmenü unterstützt ein Rechtsklick-Menü, das einen schnellen Zugriff auf die PDBs erlaubt. Alternativ kann man den Befehl mit obiger Syntax in der Kommandozeile verwenden.
Neue PDBs können mit der folgenden Syntax auch über die Kommandozeile angelegt werden. Bitte beachten Sie, dass der PDB eindeutig und bus_spec eine gültige Bus-Spezifikation, wie in diesem Abschnitt beschrieben, sein müssen. PDBs werden in der eaglerc gespeichert und können sofort verwendet werden.
BUS {PREDEFINED_BUS_NAME=bus_spec}
Tippt man BUS ? in der Kommandozeile oder wählt man "Neu" aus dem Rechtsklick-Menü des Befehls-Icons, öffnet sich der "Predefined Bus"-Dialog in dem man PDBs verwalten und neu anlegen kann.
BUS ?
Bus_spec hat die folgende Form:
ALIAS:partbus,partbus,..wobei ALIAS ein beliebiger Name sein darf. partbus ist entweder ein Netzname oder ein Busname mit Index in der Form:
NetName[NiedrigsterIndex..HöchsterIndex]wobei folgende Bedingungen erfüllt sein müssen:
0 <= NiedrigsterIndex <= HöchsterIndex <= 511
Wird ein Teilbus mit einem Index verwendet, darf der Name nicht mit einer Zahl enden, da sonst nicht klar wäre, welche Zahl zum Namen und welche zum Index gehört.
Wenn der Bus auf einen anderen Bus abgesetzt wird, endet die Linie an dieser Stelle. Dieses Verhalten kann über "SET AUTO_END_NET OFF;"oder durch Deselektieren der Option "Netze und Busse automatisch beenden" unter "Optionen/Einstellungen/Verschiedenes" abgeschaltet werden.
Wird der Parameter curve oder @radius angegeben, kann ein Kreisbogen als Teil des Busses gezeichnet werden (siehe die ausführliche Beschreibung beim LINE-Befehl).
A[0..15] RESET DB[0..7],A[3..4] ATBUS:A[0..31],B[0..31],RESET,CLOCK,IOSEL[0..1]Gibt man keine Bus-Spezifikation an, wird eine Spezifikation der Form B$1 automatisch vergeben. Diese lässt sich zu jeder Zeit mit dem NAME- oder INFO-Befehl verändern.
Die Linienbreite des Busses kann zum Beispiel mit
SET Bus_Wire_Width 40;auf 40 mil geändert werden. (Default: 30 mil).
ATBUS:A[0..31],B[0..31],!RESET,CLOCK,IOSEL[0..1]was als
_____ ATBUS:A[0..31],B[0..31],RESET,CLOCK,IOSEL[0..1]dargestellt würde. Einzelheiten hierzu finden Sie in der Beschreibung des TEXT-Befehles.
Den BREAKOUTBUS-Befehl erreicht man nach einem Rechtsklick auf einen Bus über das Kontextmenü. The Breakout-Arten werden im Menü zur Auswahl angeboten: "Alle Netze", "Selektierte Netze" und "Einzelnes Netz". Die "Selektierte Netze"-Option öffnet einen Dialog in dem der Anwender die herauszuführenden Netze wählt. "Einzelnes Netz" ist ein Menüpunkt bei dem alle Netze des Busses gezeigt werden und eines davon gewählt werden kann. "Alle Netze" führt alle Netze des Busses heraus.
Sobald die Art des Breakouts gewählt ist, werden die Netze mit Labels versehen, im Abstand von einer Rastereinheit entlang des Busses erzeugt und vom Anwender die Platzierung mit einem Mausklick fixiert.
Hält man die SHIFT-Taste beim Platzieren der Netze gedrückt, wird die Anordnung der neuen Netze eingefroren und man kann
diese nur noch entlang des Busses bewegen.
Nachfolgend plazierte Objekte erhalten die mit CHANGE geänderten
Eigenschaften. Damit ist es möglich, mit diesem Befehl Parameter
voreinzustellen.
Alle Zahlenangaben beziehen sich auf die aktuelle Maßeinheit (siehe GRID).
CHANGE
Der CHANGE-Befehl dient generell dazu, Eigenschaften von Objekten
zu ändern oder voreinzustellen. Objekte, die schon in der Zeichnung
vorhanden sind, werden einfach der Reihe nach mit der Maus selektiert,
nachdem der Befehl und der entsprechende Parameter vorher eingegeben
(bzw. aus einem Menü mit der Maus ausgewählt) wurden.
Gruppe ändern
Will man den CHANGE-Befehl auf eine Gruppe ausführen, definiert
man zuerst die Gruppe mit dem GROUP-Befehl, dann gibt man den CHANGE-Befehl
mit den entsprechenden Parametern ein und klickt die Gruppe anschließend
mit der rechten Maustaste an.
Layer wechseln | CHANGE LAYER name | number | |
Text ändern | CHANGE TEXT [ text ] | |
Texthöhe | CHANGE SIZE value | |
Textstärke | CHANGE RATIO ratio | |
Text Zeilenabstand | CHANGE LINEDISTANCE value | |
Text Font | CHANGE FONT VECTOR | PROPORTIONAL | FIXED | |
Text Ausrichtung | CHANGE ALIGN BOTTOM | LEFT | CENTER | TOP | RIGHT | |
Linienbreite | CHANGE WIDTH value | |
Linientyp | CHANGE STYLE value | |
Arc-Ende | CHANGE CAP ROUND | FLAT | |
Pad-Form | CHANGE SHAPE SQUARE | ROUND | OCTAGON | LONG | OFFSET | |
Pad-/Via-/Smd-Flags | CHANGE STOP | CREAM | THERMALS | FIRST OFF | ON | |
Pad-/Via-Durchmesser | CHANGE DIAMETER diameter | |
Pad-/Via/Hole-Bohrd. | CHANGE DRILL value | |
Via Layer | CHANGE VIA from-to | |
Smd-Maße | CHANGE SMD width height | |
Smd-Abrundung | CHANGE ROUNDNESS value | |
Pin-Parameter | CHANGE DIRECTION NC | IN | OUT | IO | OC | HIZ | SUP | PAS | PWR | |
CHANGE FUNCTION NONE | DOT | CLK | DOTCLK | ||
CHANGE LENGTH POINT | SHORT | MIDDLE | LONG | ||
CHANGE VISIBLE BOTH | PAD | PIN | OFF | ||
CHANGE SWAPLEVEL number | ||
Polygon-Parameter | CHANGE THERMALS OFF | ON | |
CHANGE ORPHANS OFF | ON | ||
CHANGE ISOLATE distance | ||
CHANGE POUR SOLID | HATCH | CUTOUT | ||
CHANGE RANK value | ||
CHANGE SPACING distance | ||
Gate-Parameter | CHANGE SWAPLEVEL number | |
CHANGE ADDLEVEL NEXT | MUST | ALWAYS | CAN | REQUEST | ||
Netzklasse | CHANGE CLASS number | name | |
Package-Variante | CHANGE PACKAGE part_name [device_name] | 'device_name' [part_name] | |
3D Package | CHANGE PACKAGE3D part_name [3d_package] | '3d_package' [part_name] | |
Technologie | CHANGE TECHNOLOGY part_name [device_name] | 'device_name' [part_name] | |
Attribute-Anzeige | CHANGE DISPLAY OFF | VALUE | NAME | BOTH | |
Frame-Parameter | CHANGE COLUMS value | |
CHANGE ROWS value | ||
CHANGE BORDER NONE | BOTTOM | RIGHT | TOP | LEFT | ALL | ||
Label | CHANGE XREF OFF | ON | |
Bemaßungs-Typ | CHANGE DTYPE PARALLEL | HORIZONTAL | VERTICAL | RADIUS | DIAMETER | ANGLE | LEADER | |
Bemaßungs-Einheit | CHANGE DUNIT [MIC | MM | MIL | INCH] [OFF | ON] [precision] | |
Bemaßungs-Linien | CHANGE DLINE width [ extension_width [ extension_length [ extension_offset ]]] (Hilfslinienwerte können auf AUTO gesetzt werden. Nicht zu verändernde Werte können mit '-' angegeben werden, siehe Beispiele) | |
Populate | CHANGE POPULATE OFF | ON (ist nur im Board ohne aktiver F/B-Annotation verfügbar) |
CHANGE DLINE 0.1mm;ändert die Bemaßungs-Linienstärke auf 0.1mm. Die Hilfslinien-Parameter bleiben unverändert.
CHANGE DLINE 0.2mm - 0.5mm AUTO;ändert die Bemaßungs-Linienstärke auf 0.1mm, die Hilfslinien-Länge auf 0.5mm und den Hilfslinien-Offset auf AUTO. Die Hilfslinien-Stärke bleibt unverändert.
Mit dem CIRCLE-Befehl zeichnet man Kreise in den aktiven Layer.
Der CIRCLE-Befehl in den Layern tRestrict, bRestrict und vRestrict dient zum Anlegen von Sperrflächen. Dabei sollte eine Linienstärke (width) von 0 gewählt werden.
Der Parameter "width" gibt die Strichstärke des Kreises an. Er entspricht demselben Parameter des LINE-Befehls und kann mit dem Befehl
CHANGE WIDTH breite;geändert bzw. voreingestellt werden. Dabei ist breite der gewünschte Wert in der gegenwärtigen Einheit.
Kreise mit Strichstärke 0 werden gefüllt dargestellt.
Der Radius des Kreises ist auf 1000mm begrenzt.
GRID inch 1; CIRCLE (0 0) (1 0);erzeugt einen Kreis mit einem Radius von 1 Zoll um den Ursprung (0 0).
Der CLASS-Befehl wird zur Definition von Netzklassen verwendet.
Ohne Angabe von Parametern, wird ein Dialog geöffnet, der es erlaubt Netzklassen festzulegen.
Wird nur number oder name angegeben, wählt man die Netzklasse mit der entsprechenden Nummer bzw. dem Namen für die folgenden NET- und SIGNAL-Befehle vor.
Wird number und name angegeben, werden dieser Netzklasse die folgenden Werte für die Parameter zugeordnet. Diese Netzklasse ist gleichzeitig für die folgenden NET- und SIGNAL-Befehle vorgewählt. Werden nach name nicht alle Parameter angegeben, gelten die Werte der Reihe nach für width, clearance, drill bzw. interspace. Soll beispielsweise nur drill geändert werden, müssen also auch die Parameter für width und clearance angegeben werden.
Wird number negativ gewählt, löscht man die Netzklasse mit dem Absolutwert der angegebenen number. Die Default-Netzklasse 0 kann man nicht löschen.
Bei den Namen der Netzklassen wird nicht zwischen Groß- und Kleinbuchstaben unterschieden. SUPPLY hat z. B. dieselbe Bedeutung wie Supply oder SuPpLy.
Werden mehrere Netzklassen in einer Zeichnung verwendet, braucht der Autorouter länger um seine Arbeit zu erledigen. Daher ist es sinnvoll nur soviele Netzklassen wie unbedingt nötig zu verwenden (die Anzahl der tatsächlich benutzten Netzklassen ist ausschlaggebend, nicht die Anzahl der definierten Netzklassen).
Um Probleme bei CUT-und-PASTE-Aktionen zwischen verschiedenen Zeichnungen zu vermeiden, ist es sinnvoll den unterschiedlichen Netzklassen in verschiedenen Zeichnungen dieselben Nummern zu geben.
Module verwenden dieselben Netzklassen wie der Schaltplan selbst.
Wenn ein Netz eines MODULEs eine elektrische Verbindung über einen PORT besitzt, wird die Netzklasse diese Netzes durch die Netzklasse des am Port angschlossenen Netzes überschrieben.
Der Autorouter verlegt die Signal in der Reihenfolge der benötigten Breite (width + clearance), beginnend mit denen, die am meisten Platz benötigen. Der Bus-Router verlegt nur Signale mit Netzklasse 0.
Für bestehende Netze/Signale kann CLASS mit dem CHANGE-Befehl geändert werden.
CLASS 3 1:0.6mm 2:0.8mmdefiniert einen Mindestabstand von 0.6mm zwischen Signalen in den Netzklassen 1 und 3, sowie einen von 0.8mm zwischen Signalen in den Netzklassen 2 und 3. Beachten Sie bitte, dass die Nummern in number:clearance kleiner oder gleich der Nummer der Netzklasse selbst ('3' im obigen Beispiel) sein müssen. Demnach wäre
CLASS 3 1:0.6mm 2:0.8mm 3:0.2mmebenfalls gültig, während
CLASS 3 1:0.6mm 2:0.8mm 3:0.2mm 4:0.5mmnicht erlaubt ist.
Ein Wert von '0' als Mindestabstand zwischen zwei verschiedenen Netzklassen
bedeutet, dass hier kein spezieller Wert gilt, sondern wieder der größere
Wert der beiden beteiligten Netzklassen.
CLOSE
Siehe auch OPEN,
EDIT,
WRITE,
SCRIPT
Der CLOSE-Befehl schließt ein Editor-Fenster. Wenn die geladene Datei verändert worden ist, werden Sie gefragt, ob sie abgespeichert werden soll.
Dieser Befehl ist in erster Linie für Script-Dateien erforderlich.
CONNECT
Siehe auch PREFIX,
OPEN,
CLOSE,
SCRIPT
CONNECT [ ALL | ANY ] gate_name.pin_name pad_name..
CONNECT [ ALL | ANY ] pin_name pad_name..
Dieser Befehl wird im Device-Editier-Modus angewendet. Er dient dazu, den Pins des Schaltplan-Symbols (Device), das gegenwärtig bearbeitet wird, die entsprechenden Pads des zugehörigen Gehäuses zuzuweisen. Zuvor muss mit dem PACKAGE-Befehl festgelegt worden sein, welches Package für das Device verwendet werden soll.
Wird der CONNECT-Befehl ohne Parameter aufgerufen, so erscheint ein Dialog in dem die Pad/Pin-Zuweisungen interaktiv definiert werden können.
CONNECT gnd 1 rdy 2 phi1 3 !irq 4 nc1 5 ...
CONNECT A.I1 1 A.I2 2 A.O 3; CONNECT B.I1 4 B.I2 5 B.O 6; CONNECT C.I1 13 C.I2 12 C.O 11; CONNECT D.I1 10 D.I2 9 D.O 8; CONNECT PWR.GND 7; CONNECT PWR.VCC 14;In diesem Fall werden die Anschlüsse der vier NAND-Gatter eines 7400 zugewiesen. Das Device enthält fünf Gatter mit den Bezeichnungen A, B, C, D, PWR. Die Eingänge der Gatter heißen im Schaltplan I1 und I2; der Ausgang heisst O.
Der CONNECT-Befehl kann beliebig oft ausgeführt werden. Er kann alle Pin/Pad-Zuweisungen enthalten oder nur einen Teil davon. Jeder neue CONNECT-Befehl überschreibt die bisherigen Definitionen für die angegebenen Pins.
Beachten Sie bitte, dass bei einer großen Zahl von Verbindungen innerhalb eines Devices der CONNECT-Befehl wesentlich schneller arbeitet, wenn alle Verbindungen in einem einzigen Aufruf angegeben werden, so wie im Beispiel unten gezeigt.
CONNECT ALL I1 '1 3 5'; CONNECT ANY O1 '2 4 6';Im ersten Beispiel ist der Pin I1 mit den drei Pads 1, 3 und 5 verbunden. Wird der Pin I1 im Schaltplan mit einem Netz verbunden, so müssen all drei Pads im Board explizit mit dem entsprechenden Signal verbunden werden.
Sollte ein Pin-Name mit einem der Schlüsselworte ALL oder ANY kollidieren, so muss der Pin-Name in einfache Hochkommas eingeschlossen werden. Sobald eines dieser Schlüsselworte in einem CONNECT-Befehl vorkommt, gilt es für alle nachfolgenden Pin/Pad-Verbindungen, bis ein anderes Schlüsselwort auftaucht:
CONNECT 'A' '1' 'B' '2' ANY 'C' '3 4 5 6' 'D' '7 8' ALL 'E' '9 10 11';
Der RATSNEST- und AUTO-Befehl berücksichtigt die ALL und ANY Fälle entsprechend.
Im CONNECT-Dialog erzeugt der "Connect"-Button eine neue Verbindung zwischen
dem selektierten Pin und den selektierten Pads. Es können mehrere Pads selektiert
sein, die dann alle mit dem selektierten Pin verbunden werden. Benutzen sie die
Ctrl- und Shift-Tasten in der üblichen Weise, um mehrere Pads zu selektieren.
Der "Append"-Button fügt die selektierten Pads zu der aktuellen Verbindung hinzu.
Der "Disconnect"-Button trennt die aktuelle Verbindung auf und verschiebt den Pin
und die Pads zurück in ihre jeweiligen Listen. Sie bleiben dabei selektiert, um
auf einfache Weise Änderungen vornehmen zu können. Ein Disconnect unmittelbar
gefolgt von einem Connect führt zur gleichen Konfiguration wie vor dem Disconnect
(und umgekehrt).
Enthält eine Verbindung mehr als ein Pad, so zeigt ein Icon an ob irgend eines
oder alle Pads extern an ein Signal angeschlossen werden müssen. Klicken Sie auf
das Icon um den Modus umzuschalten. Wenn ein solcher Listeneintrag aufgeklappt ist,
so werden alle Pads einzeln angezeigt und ein Klick auf Disconnect mit einem dieser
Pads selektiert löst nur dieses eine Pad von der Verbindung.
ed 6502.dev; prefix 'IC'; package dil40; connect gnd 1 rdy 2 phi1 3 !irq 4 nc1 5 !nmi 6 \ sync 7 vcc 8 a0 9 a1 10 a2 11 a3 12 a4 \ 13 a5 14 a6 15 a7 16 a8 17 a9 18 a10 19 \ a11 20 p$0 21 a12 22 a13 23 a14 24 a15 \ 25 d7 26 d6 27 d5 28 d4 29 d3 30 d2 31 \ d1 32 d0 33 r/w 34 nc2 35 nc3 36 phi0 37 \ so 38 phi2 39 !res 40;Hier sorgt das Zeichen "\" am Zeilenende dafür, dass am Beginn der nächsten Zeile keine Zeichenfolge mit einem Befehl verwechselt werden kann. Als Bestandteil eines Pin-Namens drückt das Zeichen "!" aus, dass es sich um ein invertiertes Signal handelt (z.B. "!irq").
Eine Verwechslung mit Befehlen kann man auch vermeiden, indem man
Parameter in Hochkommas einschließt.
COPY
Siehe auch GROUP,
CUT,
PASTE,
ADD,
INVOKE,
POLYGON
COPY deviceset@[library] [name]
COPY package@[library] [name]
COPY symbol@[library] [name]
Mit dem COPY-Befehl lassen sich Objekte selektieren und anschließend an eine andere Stelle derselben Zeichnung kopieren, oder Objekte zwischen Bibliotheken kopieren. Beim Kopieren von Bauteilen generiert EAGLE einen neuen Namen und behält den Wert (Value) bei. Beim Kopieren von Signalen (Leiterbahnen), Bussen und Netzen wird der Name beibehalten. In allen anderen Fällen wird ein neuer Name generiert.
SET Cmd.Copy.ClassicEagleMode 1das frühere Verhalten des COPY-Befehls (und auch des CUT-Befehls) wieder herstellen.
Wenn Sie lediglich ein weiteres Gatter eines aus mehreren Gattern bestehenden Bauteils verwenden wollen, sollten Sie stattdessen den INVOKE-Befehl benutzen.
Beachten Sie bitte, dass etwaige existierende Bibliotheksobjekte (Device-Sets, Symbole oder Packages), die von dem kopierten Bibliotheksobjekt verwendet werden, automatisch upgedatet werden.
Teile einer Zeichnung (z. B. auch eine ganze Platine) lassen sich mit Hilfe der Befehle GROUP, CUT und PASTE in andere Zeichnungen übernehmen.
Zuerst definiert man eine Gruppe (GROUP). Dann aktiviert man den Befehl CUT, gefolgt von einem Referenzpunkt (Mausklick oder Angabe einer Koordinate (x y)) der die selektierten Objekte in die Zwischenablage kopiert. CUT; setzt den Referenzpunkt automatisch etwa in der Mitte der selektierten Objekte (genauer: am nächstgelegenen Rasterpunkt). Jetzt kann man die Zeichnung wechseln und mit PASTE den Inhalt der Zwischenablage in die neue Zeichnung kopieren. Falls erforderlich, werden neue Namen generiert. Der Pufferinhalt bleibt erhalten und kann mit weiteren PASTE-Befehlen erneut kopiert werden.
SET Cmd.Copy.ClassicEagleMode 1das frühere Verhalten des CUT-Befehls (und auch des COPY-Befehls) wieder herstellen.
Der DELETE-Befehl löscht das selektierte Objekt aus der Zeichnung.
Bauteile, Pads, Smds, Pins und Gatter lassen sich auch mit ihrem Namen selektieren. Das ist vor allem dann nützlich, wenn sich das Objekt ausserhalb des gerade dargestellten Bildausschnitts befindet. Beim Selektieren eines aus mehreren Gattern bestehenden Bauteils im Schaltplan muss der volle, aus dem Bauteil- und dem jeweiligen Gatternamen bestehende Name angegeben werden.
Attribute von Bauteilen können dadurch selektiert werden, dass die Kombination aus Bauteilname und Attributname angegeben wird, wie etwa R5>VALUE.
Mit der rechten Maustaste wird eine zuvor mit GROUP definierte Gruppe gelöscht.
Nach dem Löschen einer Gruppe können Luftlinien, die durch das Entfernen von Bauelementen neu entstanden sind, "übrigbleiben", da diese nicht in der ursprünglich definierten Gruppe enthalten waren. In solchen Fällen sollte mit RATSNEST eine Neuberechnung der Luftlinien durchgeführt werden.
Bei aktiver Forward&Back-Annotation können im Board keine Leiterbahnen oder Vias aus Signalen gelöscht werden, die an Bauelemente angeschlossen sind. Ebenso können keine Bauelemente gelöscht werden, an die Signale angeschlossen sind. Änderungen dieser Art müssen im Schaltplan vorgenommen werden.
Um eine bereits verlegte Verbindung im Board wieder in eine Luftlinie zu verwandeln, verwenden Sie den RIPUP-Befehl.
Der DELETE-Befehl wirkt nur auf sichtbare Layer (siehe DISPLAY-Befehl).
DELETE SIGNALS kann dazu verwendet werden, alle Signale aus einer Platine zu entfernen, um z. B. eine neue oder geänderte Netzliste einzulesen. Es werden nur solche Signale entfernt, die an Pads angeschlossen sind. Andere (wie z.B. Eckwinkel im Top- und Bottom-Layer, die intern auch als Signal behandelt werden) bleiben unberührt.
Falls ein Bauteil gelöscht werden soll, das den Namen SIGNALS trägt, so muss dieser in einfache Hochkommas gesetzt werden.
Gatter | Löscht das gesamte Bauteil, in dem sich dieses Gatter befindet (auch wenn die Gatter auf mehrere Schaltplan-Seiten verteilt sind). Bei aktiver Forward&Backannotation werden die Leiterbahnen, die an dem Bauteil im Board angeschlossen sind, nicht in Luftlinien umgewandelt (was beim Löschen einzelner Gatter geschehen würde), ausgenommen die Fälle wo ein Pin des gelöschten Bauteils nur direkt mit genau einem anderen Pin und keiner Netzlinie verbunden ist | |
Polygon-Linie | Löscht das gesamte Polygon | |
Netz/Bus-Linie | Löscht das gesamte Netz- bzw. Bus-Segment |
Der DRC erzeugt unter Umständen Fehlerpolygone, die man nicht mit DELETE löschen kann, sondern mit DRC Clear.
Mit diesem Befehl erzeugt oder editiert man die Beschreibung einer Zeichnung oder eines Bibliotheksobjekts.
description_string kann HTML-Steuerzeichen enthalten.
Die erste nicht leere Zeile von description_string wird als Kurzbeschreibung (headline) im Control Panel angezeigt.
Der DESCRIPTION-Befehl ohne Angabe von Parametern öffnet einen Dialog, der das Editieren des Textes erlaubt. Der obere Teil des Dialogs zeigt den formatierten Text, sofern er Steuerzeichen des HTML-Formats enthält, während der untere Teil für die Eingabe des Textes genutzt wird. Ganz oben im Dialog sehen Sie das Feld headline. In diesem wird die Kurzbeschreibung ohne HTML-Steuerzeichen angezeigt.
Normalerweise bearbeitet der DESCRIPTION-Befehl die Beschreibung des Objektes, welches gerade editiert wird, wie etwa ein Device Set, Package, Symbol, Board oder Sheet. Falls es in einer Bibliothek noch kein gerade editiertes Object gibt (wie es nach dem Laden einer Bibliothek der Fall ist), so wird die Bescheibung der Bibliothek bearbeitet.
Um explizit die Beschreibung einer Bibliothek zu bearbeiten, auch wenn bereits ein Device Set, Package oder Symbol bearbeitet wird, geben Sie einen Stern ('*') als ersten Parameter des DESCRIPTION-Befehls ein. Auf diese Weise kann auch die Beschreibung eines Schaltplans angesprochen werden anstelle der des gerade bearbeiteten Sheets.
Um die Beschreibung des aktuellen MODULE zu bearbeiten, geben Sie zwei Sterne ('**') als ersten Parameter des DESCRIPTION-Befehls ein.
DESCRIPTION '<b>Quad NAND</b><p>\nFour NAND gates with 2 inputs each.';Das Resultat sieht so aus:
Quad NAND
Four NAND gates with 2 inputs each.
DIMENSION
Siehe auch LINE,
CHANGE,
CIRCLE,
HOLE
Der DIMENSION-Befehl dient zum Bemaßen einer Zeichnung. Er kann entweder auf ein Objekt angewendet werden, oder beliebige Bemaßungen zeichnen.
Wird mit dem ersten Mausklick ein Objekt selektiert, so wird eine dafür passende Bemaßung wie folgt gewählt:
gerade Linie | lineare Bemaßung, die den Abstand der Endpunkte der Linie anzeigt | |
gebogene Linie | radiale Bemaßung, die den Radius des Kreisbogens anzeigt | |
Circle | Durchmesser-Bemaßung, die den Durchmesser des Kreises anzeigt | |
Hole | Durchmesser-Bemaßung, die den Durchmesser des Lochs anzeigt |
Wird kein Objekt selektiert, oder wird eine Linie an einem ihrer Endpunkte selektiert, so wird ein Bemaßungs-Objekt gemäß dem aktuellen "dtype" Parameter erzeugt. Falls dies nicht die gewünschte Ausrichtung ist, so kann mit der rechten Maustaste durch die verschiedenen Ausrichtungstypen geschaltet werden.
Um eine beliebige Bemaßung auch in der Nähe eines Objektes zeichnen zu können, welches normalerweise eine bestimmte Art von Bemaßung auslösen würde, drücken die beim ersten Mausklick die Ctrl-Taste. Dies kann auch bei der Verwendung des DIMENSION-Befehls in einem Script nützlich sein (durch Angabe des 'C'-Steuerzeichens in der ersten Koordinate), um sicherzstellen, dass die Bemaßung genau wie erwünscht erfolgt.
Die Art und Weise, wie ein Bemaßungs-Objekt dargestellt wird (Linien, Einheit, Auflösung), kann mit "CHANGE DLINE/DUNIT" oder in seinem Eigenschaftendialog eingestellt werden. Beachten Sie dabei, dass der Parameter "Einheit" die Einheit vorgibt, in der die Zahlenwerte des Bemaßungs-Objekts angezeigt werden.
Parallel
Eine parallel Bemaßung zeigt den Abstand zwischen ihrem ersten und zweiten Referenzpunkt an. Die Maßlinie verläuft parallel zu der Geraden durch die Referenzpunkte, und geht durch den Ausrichtungspunkt. Die genaue Position des Ausrichtungspunkts spielt keine Rolle, da nur sein Abstand zu der Geraden durch die Referenzpunkte benutzt wird. Wird eine parallele Bemaßung neu erzeugt oder verändert, so wird der Ausrichtungspunkt normalisiert, so dass er in der Mitte der Maßlinie liegt.
Horizontal
Wie parallel, aber die Maßlinie verläuft nur in X-Richtung und zeigt nur den X-Abstand der Referenzpunkte an.
Vertical
Wie horizontal, aber für Y.
Radius
Eine radius Bemaßung zeigt den Abstand zwischen ihrem ersten und zweiten Referenzpunkt an. Der erste Referenzpunkt liegt am Mittelpunkt des Kreisbogens, für den diese Bemaßung gezeichnet wurde. Der zweite Punkt liegt auf dem Kreisbogen. Liegt der Ausrichtungspunkt zwischen den beiden Referenzpunkten, so wird die Maßlinie zwischen den Referenzpunkten dargestellt, also "innerhalb" des Kreisbogens. Ansonsten wird die Maßlinie "außerhalb" des Kreisbogens dargestellt. Falls der Bemaßungstext zu lang ist um innerhalb des Radius-Bemaßung dargestellt zu werden, so wird die Maßlinie ebenfalls außen dargestellt. Eine Radius-Bemaßung zeigt automatisch ein Kreuz an ihrem ersten Referenzpunkt (dem Mittelpunkt des Keisbogens) an. Wird eine Radius-Bemaßung neu erzeugt oder verändert, so wird der Ausrichtungspunkt normalisiert, so dass er für eine "innere" Bemaßung in der Mitte der Maßlinie liegt, für eine "äußere" gleich hinter dem Maßpfeil.
Diameter
Eine diameter Bemaßung zeigt den Abstand zwischen ihrem ersten und zweiten Referenzpunkt an. Die beiden Punkte liegen an gegenüberliegenden Seiten auf dem Umfang des Kreises, so dass ihr Abstand dem Kreisdurchmesser entspricht. Liegt der Ausrichtungspunkt zwischen den beiden Referenzpunkten, so wird die Maßlinie zwischen den Referenzpunkten dargestellt, also "innerhalb" des Kreises. Ansonsten wird die Maßlinie "außerhalb" des Kreises dargestellt, so wie bei einer parallel Bemaßung. Falls der Bemaßungstext zu lang ist um innerhalb der Durchmesser-Bemaßung dargestellt zu werden, so wird die Maßlinie ebenfalls außen dargestellt. Eine Durchmesser-Bemaßung zeigt automatisch ein Kreuz an ihrem ersten Referenzpunkt (dem Mittelpunkt des Keises) an. Wird eine Durchmesser-Bemaßung neu erzeugt oder verändert, so wird der Ausrichtungspunkt normalisiert, so dass er für eine "innere" Bemaßung an der selben Stelle liegt wie der zweite Punkt, für eine "äußere" in der Mitte der Maßlinie.
Angle
Eine angle Bemaßung zeigt den Winkel zwischen ihrem zweiten und dritten Referenzpunkt an, gegen den Uhrzeigersinn gemessen vom ersten Referenzpunkt aus gesehen (dem Mittelpunkt des Kreisbogens). Wird eine Winkel-Bemaßung neu erzeugt oder verändert, so wird der zweite Referenzpunkt normalisiert, so dass er den gleichen Abstand vom ersten Punkt hat wie der dritte.
Leader
Eine leader Bemaßung kann dazu benutzt werden, um einen Hinweis in einer Zeichnung anzubringen. Am ersten Punkt befindet sich ein Pfeil, und der zweite und dritte Punkt definieren eine (geknickte) Linie. Es wird keine Maßzahl dargestellt. Sie können den TEXT-Befehl benutzen um beliebigen Text zu platzieren.
Gültige options sind: ALL, NONE, LAST, ? und ??
Mit dem DISPLAY-Befehl wählt man diejenigen Layer aus, die auf dem Bildschirm sichtbar sein sollen. Dabei darf als Parameter die Layer-Nummer oder der Layer-Name angegeben werden (auch gemischt). Gibt man den Parameter ALL an, werden alle Layer sichtbar. Mit dem Parameter NONE kann man alle Layer ausblenden. Beispiel:
DISPLAY NONE BOTTOMNach diesem Befehl ist nur der Bottom-Layer sichtbar.
Wird der Parameter LAST angegeben, so werden die zuvor sichtbaren Layer dargestellt.
Bitte beachten Sie, dass von den Signal-Layern (1 bis 16) nur diejenigen zur Verfügung stehen, die im Layer-Setup in den Design Rules eingetragen sind.
Stellt man dem Layer-Namen oder der Layer-Nummer ein Minuszeichen voran, wird er ausgeblendet. Beispiel:
DISPLAY BOTTOM -TOP -3In diesem Fall wird Bottom eingeblendet, und Top sowie der Layer mit der Nummer 3 werden ausgeblendet.
Manche Befehle (PAD, SMD, SIGNAL, ROUTE) aktivieren automatisch bestimmte Layer.
Wird der DISPLAY-Befehl ohne Parameter aufgerufen, so erscheint ein Dialog in dem alle Einstellungen vorgenommen werden können.
DISPLAY TOP BOTTOM ? MYLAYER1 MYLAYER2 ?? OTHER WHATEVERIm Beispiel oben müssen die Layer TOP und BOTTOM definiert sein. Ansonsten wird der Befehl mit einer Fehlermeldung abgebrochen. Das Fehlen von MYLAYER1 und MYLAYER2 wird in einer Warnung angezeigt. Die Aktion kann vom Benutzer abgebrochen werden. Die Layer OTHER und WHATEVER werden angezeigt, wenn vorhanden, ansonsten werden sie einfach ignoriert.
Die Optionen '?' und '??' dürfen in einer Befehlssequenz beliebig oft verwendet werden.
Wählt man für den Layer 17 (Pads) bzw. 18 (Vias) die Farbe 0 (das entspricht der Hintergrundfarbe), werden Pads und Vias in der Farbe und dem Füllmuster des jeweiligen Signal-Layers gezeichnet. Ist kein Signal-Layer eingeblendet, werden auch keine Pads oder Vias dargestellt.
Wählt man für den Layer 17 (Pads) bzw. 18 (Vias) eine andere Farbe und es ist kein Signal-Layer sichtbar, werden Pads und Vias in der Form des obersten und untersten Signal-Layers dargestellt.
Das gilt auch für Ausdrucke mit PRINT.
Vermeiden Sie die Layer-Namen ALL und NONE, sowie Namen, die mit einem Minuszeichen beginnen.
Die Syntax zur Bearbeitung dieser Aliase ist:
DISPLAY = MyLayers None Top Bottom Pads Vias Unrouted
Definiert den Alias "MyLayers" der, wenn er wie in
DISPLAY myl
benutzt wird, genau die Layer Top, Bottom, Pads, Vias und Unrouted anzeigt
(ohne den "None"-Parameter würden die angegebenen Layer zusätzlich zu den
bereits sichbaren angezeigt).
Beachten Sie bitte die abgekürzte Verwendung des Aliases,
und dass die Groß-/Kleinschreibung keine Rolle spielt.
DRC
Siehe auch Design Rules,
CLASS,
SET,
ERC,
ERRORS
DRC ;
DRC LOAD|MERGE|SAVE filename;
DRC *
Der DRC-Befehl prüft das Layout gegenüber einem gültigen Satz von Design Rules.
Beachten Sie bitte, dass elektrisch nicht relevante Objekte (Linien in Packages, Rechtecke, Kreise und Texte) untereinander nicht auf Mindestabstandsverletzungen ("Clearance") geprüft werden.
Die gefundenen Fehler werden als Fehlerpolygone in den zugehörigen Layern dargestellt und können mit dem ERRORS-Befehl bearbeitet werden.
Geben Sie den DRC-Befehl ohne weitere Parameter an, öffnet sich der Design-Rules-Dialog. Von hier aus kann man die Design Rules einstellen und die Prüfung starten.
Wird der DRC-Befehl mit zwei Koordinatenpaaren angegeben (oder im DRC-Dialog der Button Select angeklickt), prüft der DRC nur innerhalb des angegebenen Rechtecks. Es werden nur die Fehler angezeigt, die innerhalb des Rechteck liegen.
Falls Sie DRC-Fehler erhalten, die auch nach einer entsprechenden Änderung der Design Rules nicht verschwinden, überprüfen Sie bitte die Netzklasse des beanstandeten Objektes. Möglicherweise wird der Fehler wegen eines der Parameter dieser Klasse gemeldet.
Um alle Fehlerpolygone zu löschen verwenden Sie
ERRORS CLEAR
Die Optionen LOAD und SAVE können dazu verwendet werden die Design Rules aus der angegebenen Datei zu laden bzw. sie in diese zu speichern. Falls filename nicht die Extension ".dru" hat wird diese automatisch angefügt. Die Option MERGE kann dazu verwendet werden, einzelne Design Rules Parameter zu überschreiben (die anderen bleiben dabei unverändert).
Wird beim DRC-Befehl ein Stern ('*') als erster Parameter eingegeben, so öffnet sich der Design Rules Dialog und erlaubt ein bearbeiten der Design Rules, ohne dass beim Schließen des Dialogs ein DRC ausgeführt wird.
SET DRC_FILL fill_name;Legt das für die DRC-Fehlerpolygone verwendete Füllmuster fest. Default: LtSlash.
Der EDIT-Befehl wird verwendet, um eine Platine oder einen Schaltplan zu editieren bzw. neu anzulegen. Ausserdem dient der Befehl dazu, Symbole, Devices und Packages zu laden, wenn man eine Bibliothek bearbeitet.
Der EDIT-Befehl wird auch zum Erzeugen oder Editieren eines Moduls in einem Schaltplan verwendet.
EDIT name.brd | lädt eine Platine | |
EDIT name.sch | lädt einen Schaltplan | |
EDIT name.pac | lädt ein Package | |
EDIT name.sym | lädt ein Symbol | |
EDIT name.dev | lädt ein Device | |
EDIT name.dbl | lädt einen Designblock in den Voransicht-Dialog | |
EDIT name.dbl; | lädt einen Designblock in den bzw. die Editor(en) | |
EDIT urn | lädt ein Package|Symbol|Device mit urn | |
EDIT .s3 | lädt Seite 3 eines Schaltplans | |
EDIT .s5 .s2 | verschiebt Seite 5 vor Seite 2 und lädt sie (falls Seite 5 nicht existiert, wird eine neue Seite vor Seite 2 eingefügt) | |
EDIT .s2 .s5 | verschiebt Seite 2 vor Seite 5 und lädt sie (falls Seite 5 nicht existiert, wird Seite 2 zur letzten Seite) | |
EDIT name.mod | lädt (oder erzeugt) ein Modul in einem Schaltplan | |
EDIT name.m2 | lädt (oder erzeugt) Seite 2 eines Moduls | |
EDIT .m3 | lädt (oder erzeugt) Seite 3 des aktuellen Moduls | |
EDIT .s2 modY.m1 | verschiebt Seite 2 vor Seite 1 von Modul 'modY' und lädt sie | |
EDIT modX.m3 modY.m1 | verschiebt Seite 3 von Modul 'modX' vor Seite 1 von Modul 'modY' und lädt sie | |
EDIT; | zeigt das Inhaltsverzeichnis (in einer Bibliothek) |
Platzhalter in Namen sind erlaubt (z. B. edit *.brd).
Gibt man EDIT ohne weitere Parameter ein, können Sie die Datei oder das Objekt mit Hilfe des sich öffnenden Menüs wählen.
Um von einem Schaltplan zu einer Platine mit dem gleichen Namen zu wechseln, kann man den Befehl
EDIT .brdverwenden. Umgekehrt kommt man von der Platine in den entsprechenden Schaltplan mit
EDIT .schAuch vom Bibliotheks-Editor aus kann so zum Board- oder Schaltplan-Editor gewechselt werden.
Eine andere Seite eines Schaltplans kann man mit
EDIT .sX(X ist die Seitennummer) oder mit Hilfe der Combo-Box in der Action-Toolbar laden. Falls die angegebene Seitennummer nicht existiert, wird eine neue Seite angelegt.
Sie können auch zwischen Schaltplanseiten wechseln indem Sie auf ein Icon in der Vorschau für Schaltplanseiten klicken. Drag&drop in der Vorschau erlaubt es, Seiten umzusortieren.
Will man Symbole, Devices oder Packages können erst dann editiert werden, wenn vorher eine Bibliothek mit dem OPEN-Befehl geöffnet wurde. Es kann dabei der Name oder der URN angegeben werden.
The EDITGROUP command modifies a group to add (or remove) an individual object to (or from) existing groups.
Add To | Adds object(s) to group(s) | |
Remove From | Removes object(s) from group(s) |
The above options are also available in right click context menu of selected object or in design manager
GROUPS VIEW. The list of groups under above options is a union of
groups of selected objects. When operated from the context menu, the command operates on all selected objects.
EDIT3D
ERC
Siehe auch DRC,
ERRORS,
Konsistenzprüfung
Dieser Befehl prüft Schaltpläne auf elektrische Fehler. Die Ergebnisse werden im ERRORS Dialog angezeigt.
Bitte beachten Sie, dass der ERC Unterschiede zwischen impliziten Power-Pins und
Supply-Pins im Schaltplan und den tatsächlichen Signalverbindungen im Layout
feststellen kann. Solche Unstimmigkeiten können entstehen, wenn Sie die
Supply-Pins im Schaltplan modifizieren, nachdem Sie mit dem BOARD-Befehl eine
Platinen-Datei erzeugt haben. Wenn die Power-Pins nur "implizit" verbunden sind,
können diese Änderungen nicht immer in das Layout übertragen werden.
Werden solche Fehler festgestellt, bleibt die Forward&Back-Annotation
weiterhin erhalten. Allerdings müssen die Supply-Pins überprüft werden!
ERRORS
Siehe auch ERC,
DRC
ERRORS CLEAR
Zur Auswertung der vom ERC bzw. DRC gefundenen Fehler dient der Befehl ERRORS. Wird er aktiviert, dann öffnet sich ein Fenster, in dem alle gefundenen Fehler aufgelistet sind. Wurde für die geladene Zeichnung noch kein ERC bzw. DRC durchgeführt, so wird zunächst die entsprechende Prüfung automatisch gestartet.
Die Liste im ERRORS-Dialog besteht aus bis zu vier Abschnitten, die jeweils Konsistenzfehler, Fehler, Warnungen bzw. Gebilligte Meldungen enthalten.
Selektiert man einen Eintrag aus der Liste, wird die jeweilige Meldung durch eine Bezugslinie im Zeichenfenster angezeigt.
Ein Doppelklick auf einen Fehlereintrag zentriert die Zeichenfläche auf die Position des Fehlers. Aktivieren Sie die Option "Zentriert", geschieht dies automatisch.
Die Liste kann auch durch Eingabe des Befehls
ERRORS CLEARgelöscht werden.
Der EXPORT-Befehl dient dazu, EAGLE-Daten in Form von Textdateien (ASCII-Dateien) zur Verfügung zu stellen oder Grafikdaten aus der aktuellen Zeichnung zu erzeugen.
Standardmäßig wird die erzeugte Datei in das Projekt-Verzeichnis geschrieben.
Der EXPORT-Befehl erzeugt folgende Textdateien:
Wenn mit EXPORT eine Bibliothek in eine Script-Datei verwandelt und dieses anschließend wieder eingelesen wird, so sollte dafür eine NEUE (leere!) Bibliothek geöffnet werden, da es sonst vorkommen kann, dass Objekte mehrfach definiert werden! Der Vorgang des Script-Einlesens kann u. U. erheblich beschleunigt werden, wenn vorher
Set Undo_Log Off;eingegeben wird (nicht vergessen, es nachher wieder einzuschalten, da sonst kein Undo möglich ist!).
.bmp | Windows-Bitmap-Datei | |
.png | Portable-Network-Graphics-Datei | |
.pbm | Portable-Bitmap-Datei | |
.pgm | Portable-Grayscale-Bitmap-Datei | |
.ppm | Portable-Pixelmap-Datei | |
.tif | TIFF-Datei | |
.xbm | X-Bitmap-Datei | |
.xpm | X-Pixmap-Datei |
Der resolution-Parameter definiert die Bildauflösung (in 'dpi').
Ist filename der besondere Name CLIPBOARD (egal ob groß- oder klein geschrieben), wird das Bild in die Zwischenablage des Systems kopiert.
Das optionale Schlüsselwort MONOCHROME erzeugt ein schwarz/weißes Bild.
Das optionale Schlüsselwort WINDOW erzeugt ein Bild des momentan im Editor-Fenster sichtbaren Ausschnitts. Ohne dieses Schlüsselwort enthält das Bild die gesamte Zeichnung.
Der Befehl FANOUT erzeugt eine Leiterbahn mit einem Via am Ende aus den Pads eines gewählten Bauteils oder Signals. Es können nur SMD- oder BGA-Bauteile mit einem Fanout versehen werden. Bedrahtete Bauteile (mit Pads) werden ignoriert.
Der Parameter WIDTH bestimmt die Breite der Leiterbahn, die verlegt wird und ist identisch mit dem Parameter des ROUTE-Befehls. Die Breite kann über den Befehl
CHANGE WIDTH width;verändert werden, wobei width der gewünschte Wert in der aktuellen Einheit ist.
Liegt der gewählte Wert unter dem in den Design-Regeln festgelegten Minimumwert, wird dieser Minimumwert gewählt. Somit werden Verletzungen der Design-Regeln vermieden.
Das beim Fanout verwendete Via wird von den beiden Parametern Drill und Diameter in der Parameterleiste festgelegt. Wie auch beim Parameter WIDTH gilt bei Drill, dass der Mindestwert für Drill aus den Design-Regeln eingehalten wird. Der Bohrdurchmesser kann mit
CHANGE DRILL drill-size;verändert werden.
Der Mindestabstand zwischen dem Via, das platziert werden soll und dem SMD kann in den Design-Regeln unter Clearance, Same signal, SMD-Via bestimmt werden. Siehe auch DESIGN RULES.
Sollte die Leiterbahn oder das Via des Fanouts eine Verletzung der Design-Regeln bewirken, wird dieses spezielle Fanout am Pad nicht ausgeführt. In solchen Situationen überprüfen Sie bitte Width und Drill Size Minimumwerte in den Design-Regeln und auch in den Netzklassen und treffen ggf. Anpassungen. Falls keine Änderungen an den Werten möglich sind, versuchen Sie doch die Fanout-Option ALTERNATE, die in solchen Fällen helfen könnte.
Wird in der Parameterleiste das Icon Allow Violations aktiviert, ist es dem FANOUT-Befehl erlaubt Fanouts mit Vias zu erzeugen, auch wenn die Vias die Design-Regeln zu benachbarten Fanouts verletzen. Mit dieser Option kann man erkennen, warum bestimmte Vias nicht herausgeführt werden können und welche Regelverletzung zugrunde liegt. Diese Option ist standardmäßig deaktiviert; es sind keine Regelverletzungen erlaubt.
OUT | Fanouts zeigen nach außen und vom Bauteilmittelpunkt weg | |
IN | Fanouts zeigen nach innen zum Bauteilmittelpunkt hin | |
ALTERNATE | Fanouts wechseln bei benachbarten Pads zwischen OUT und IN |
FANOUT DEVICE U3; FANOUT DEVICE U4 OUT; FANOUT SIGNAL GND ALTERNATE; FANOUT SIGNAL +5;
Allows for command line control of filters. The may supply the flag G to indicate
if the filter is to be loaded from EAGLE settings (G = Global), otherwise it is assumed to be
a local filter saved in the design. The second format allows for running a filter
expression directly as a string literal.
FRAME
Siehe auch LABEL
Der FRAME-Befehl erzeugt einen Rahmen mit nummerierten Spalten und Zeilen. Die beiden Punkte definieren zwei gegenüberliegende Ecken des Rahmens. Mit der mittleren Maustaste können Sie den Layer wählen, in den der Rahmen gezeichnet wird.
Der columns-Parameter definiert die Zahl der Spalten des Rahmens. Es können bis zu 127 Spalten verwendet werden. Standardmäßig werden die Spalten von links nach rechts durchnummeriert. Falls der Wert für columns negativ ist, läuft die Nummerierung von rechts nach links.
Der rows-Parameter definiert die Zahl der Zeilen des Rahmens. Es können bis zu 26 Zeilen verwendet werden. Die Zeilen werden von oben nach unten mit Buchstaben bezeichnet, beginnend mit 'A'. Falls der Wert für rows negativ ist, läuft die Bezeichnung von unten nach oben. Wird rows angegeben, so muss vorher auch columns angegeben werden.
Wird der borders-Parameter angegeben, so legt dieser fest auf welchen Seiten des Rahmens ein Rand mit Zahlen bzw. Buchstaben angezeigt wird. Gültige Werte hierfür sind Left, Top, Right und Bottom. Standardmäßig wir der Rand an allen vier Seiten des Rahmens angezeigt. Sobald eine dieser Optionen angegeben wird, wird der Rand nur an den gewünschten Seiten dargestellt. Die speziellen Werte None und All können benutzt werden um an keiner bzw. allen Seiten einen Rand darzustellen.
Eine Zeichnung kann zwar mehrere Rahmen enthalten, für die Ermittlung der Positionen von Bauteilen und Netzen wird aber immer nur der erste benutzt. Diese Positionen können zum Beispiel in einem User Language Programm verwendet werden um eine Liste aller Bauteile mit Ihren Positionen im jeweiligen Rahmen auszugeben. Sie werden auch benutzt zur automatischen Berechnung von Querverweisen bei Labels.
Aufgrund der speziellen Bedeutung des Rahmens hat dieser keine eigene Rotation und reagiert auch nicht auf den ROTATE-Befehl
Ein Rahmen kann direkt in eine Board- oder Schaltplanzeichnung eingefügt werden. Normalerweise werden Sie aber eher ein spezielles Symbol bzw. Package erzeugen, welches eventuell auch noch ein Schriftfeld enthält, und das Sie dann in allen Ihren Zeichnungen verwenden können. Die mitgelieferte Bibliothek "frames" enthält bereits einige solcher Zeichnungsrahmen.
FRAME 10 5 TOP LEFT erzeugt einen Rahmen mit 10 Spalten (nummeriert von links nach rechts) und 5 Zeilen (markiert von oben nach unten mit 'A' bis 'E'), bei dem die Spalten- und Zeilenmarkierungen nur am oberen und linken Rand dargestellt werden.
Mit diesem Befehl kann man Gates in einem Schaltplan vertauschen. Dabei müssen die beiden Gates identisch sein (dieselben Pins haben) und in der Device-Definition denselben Swaplevel (größer als 0) bekommen haben. Sind diese Bedingungen erfüllt, können auch Gates aus unterschiedlichen Devices vertauscht werden.
Der als Parameter anzugebende Name ist der im Schaltplan sichtbare Name (z. B. U1A für Gate A im Bauteil U1).
Wird ein Bauteil durch den GATESWAP-Befehl "unbenutzt", wird
es automatisch aus dem Schaltplan entfernt.
GRID
Siehe auch SCRIPT
GRID;
Mit dem GRID-Befehl definiert man, ob und wie das Raster auf dem Bildschirm dargestellt wird. Ausserdem legt dieser Befehl die verwendete Rastereinheit fest.
GRID;schaltet das Raster ein bzw. aus.
Objekte lassen sich nur auf dem eingestellten Raster plazieren. Für Platinen im Zollraster darf deshalb z. B. kein mm-Raster verwendet werden.
Folgende options sind möglich:
GRID ON; | Raster darstellen | |
GRID OFF; | Raster ausschalten | |
GRID DOTS; | Raster als Punkte darstellen | |
GRID LINES; | Raster als Linien darstellen | |
GRID MIC; | Rastereinheit ist Mikrometer | |
GRID MM; | Rastereinheit ist mm | |
GRID MIL; | Rastereinheit ist Mil (0.001 Inch) | |
GRID INCH; | Rastereinheit ist Inch (Zoll) | |
GRID FINEST; | Raster auf kleinstmöglichen Wert einstellen | |
GRID grid_size; | Rasterabstand in der aktuellen Einheit | |
GRID LAST; | Setzt die Grid-Parameter auf die zuletzt | |
eingestellten Werte | ||
GRID DEFAULT; | Einstellung auf Standardwerte | |
GRID grid_size grid_multiple; | ||
grid_size = Rasterabstand | ||
grid_multiple = Rasterfaktor | ||
GRID ALT ...; | Definiert das alternative Grid |
Grid mm; Set Diameter_Menu 1.0 1.27 2.54 5.08; Grid Last;In diesem Fall kann man zur zuletzt eingestellten Grid-Definition zurückkehren, ohne sie zu kennen.
GRID mm 1 10;gibt an, dass ein Rasterabstand von 1 mm eingestellt und jede zehnte Rasterlinie angezeigt werden soll.
Beim GRID-Befehl sind auch mehrere Parameter zulässig:
GRID inch 0.05 mm;Der erste Zahlenwert im GRID-Befehl entspricht dem Rasterabstand, der zweite (falls vorhanden) dem Rasterfaktor.
Hier wird das Raster zunächst auf 0.05 Zoll eingestellt, dann wird die Koordinatenanzeige auf mm umgestellt. Die Koordinaten werden in diesem Fall zwar in mm angezeigt, trotzdem ist das Raster nach wie vor auf 1/20 Zoll eingestellt!
GRID DEFAULT;Setzt das Raster auf den Standardwert für den aktuellen Zeichnungstyp.
GRID mil 50 2 lines on alt mm 1 mil;Definiert ein 50 mil Raster, das als Linien dargestellt wird (wobei nur jede zweite Linie sichtbar ist), und setzt das alternative Raster auf eine Größe von 1 mm, angezeigt in mil.
Ein Druck auf die Alt-Taste schaltet auf das alternative Grid um. Dies kann typischerweise ein feineres Raster als das normale sein, wodurch es zum Beispiel schnell und einfach möglich ist etwas in einem dicht belegten Gebiet fein zu positionieren, wofür das normal Raster zu grob wäre. Das alternative Grid bleibt so lange aktiv, wie die Alt-Taste gedrückt gehalten wird.
Die Syntax zur Bearbeitung dieser Aliase ist:
GRID = MyGrid inch 0.1 lines on
Definiert den Alias "MyGrid" der, wenn er wie in
GRID myg
benutzt wird, das aktuelle Grid auf die angegebenen Parameter einstellt.
Beachten Sie bitte die abgekürzte Verwendung des Aliases,
und dass die Groß-/Kleinschreibung keine Rolle spielt.
GROUP
Siehe auch CHANGE,
CUT,
PASTE,
MIRROR,
DELETE
GROUP ALL
GROUP;
Mit dem GROUP-Befehl definiert man eine Gruppe von Objekten, auf die man anschließend bestimmte Befehle anwenden kann. Natürlich kann auch eine ganze Zeichnung als Gruppe definiert werden.
Die Objekte selektiert man, indem man nach Aktivieren des GROUP-Befehls mit der Maus ein Rechteck aufzieht oder ein Polygon zeichnet, das mit dem Betätigen der rechten Maustaste geschlossen wird. In die Gruppe werden nur Objekte aus den sichtbaren Layern übernommen.
Das Schlüsselwort ALL kann dazu benutzt werden eine Gruppe zu definieren, die die gesamte Zeichnungsfläche einschließt.
Die Auswahl von Attributen kann unterbunden werden indem man das Icon Enable Attribute Selection deaktiviert. Standardmäßig ist das Icon aktiviert und somit die Auswahl der Attribute erlaubt.
Zur Gruppe gehören:
Die Gruppendefinition bleibt wirksam, bis eine neue Zeichnung geladen wird oder bis der Befehl
GROUP;ausgeführt wird.
Siehe Standard-Befehl GROUP für mehr Informationen.
Wird im HELP-Befehl ein Befehlsname (command) angegeben, dann erhält
man die Beschreibung dieses Befehls.
HELP
Dieser Befehl ruft ein Hilfe-Fenster mit Hinweisen zum Programm auf,
die vom momentanen Status abhängig sind (kontextsensitiv).
HELP command
Beispiel
HELP GRID;
Es erscheint die Beschreibung des GRID-Befehls.
HOLE
Siehe auch VIA,
PAD,
CHANGE
Mit diesem Befehl definiert man Bohrungen ohne Durchkontaktierung in Platinen oder Packages. Der Parameter drill gibt den Bohrdurchmesser in der aktuellen Einheit an. Er darf maximal 200 mm (ca. 7.7840 Zoll) betragen.
HOLE 0.20 Falls die eingestellte Maßeinheit "Inch" ist, hat das Hole einen Durchmesser von 0.20 Zoll.
Der eingegebene Bohrdurchmesser (gilt auch für Pads und Vias) bleibt für nachfolgende Operationen erhalten. Er kann mit dem Befehl
CHANGE DRILL value verändert werden.
Ein Hole kann nur selektiert werden, wenn der Holes-Layer eingeblendet ist (DISPLAY).
Eine Bohrung (Hole) erzeugt das zugehörige Bohrsymbol im Layer Holes und einen Kreis mit dem entsprechenden Durchmesser im Layer Dimension. Die Zuordnung von Symbolen zu bestimmten Bohrdurchmessern kann im "Optionen/Einstellungen/Bohrsymbole" Dialog geändert werden. Der Kreis im Dimension-Layer ist besonders für den Autorouter wichtig, der den eingestellten Mindestabstand zwischen Vias/Leiterbahnen und Dimension-Linien damit auch zum Bohrloch einhält.
In den Layern tStop und bStop erzeugen Holes die Lötstopmaske, deren
Durchmesser sich aus den Design Rules ergibt.
INFO
Siehe auch CHANGE,
SHOW
INFO name ..
Der INFO-Befehl gibt zu einem Objekt umfassende Informationen, z.B. Linienbreite, Layer und so weiter. In diesem Dialog können die Objekt-Eigenschaften auch verändert werden.
Bauteile, Pads, Smds, Pins und Gatter lassen sich auch mit ihrem Namen selektieren. Das ist vor allem dann nützlich, wenn sich das Objekt ausserhalb des gerade dargestellten Bildausschnitts befindet. Beim Selektieren eines aus mehreren Gattern bestehenden Bauteils im Schaltplan muss der volle, aus dem Bauteil- und dem jeweiligen Gatternamen bestehende Name angegeben werden.
Die Auswahl von Attributen kann unterbunden werden indem man das Icon Enable Attribute Selection deaktiviert. Standardmäßig ist das Icon aktiviert und somit die Auswahl der Attribute erlaubt.
Attribute von Bauteilen können dadurch selektiert werden, dass die Kombination aus Bauteilname und Attributname angegeben wird, wie etwa R5>VALUE.
Die Koordinaten eines rotierten Rechtecks sind nicht veränderbar.
Im Designblock-Editiermodus öffnet der Befehl INFO .dbl einen Dialog, in
dem man die Beschreibung und die Attribute des aktuell editierten Designblocks
modifizieren kann.
INVOKE
Siehe auch COPY,
ADD
INVOKE Part_Name Gate_Name orientation
Addlevel und Orientation siehe ADD-Befehl.
Will man gezielt ein bestimmtes Gate eines Bauelements in den Schaltplan holen (z.B. ein Power-Gate mit Addlevel Request), dann benutzt man den INVOKE-Befehl.
Ein Gate kann man aktivieren, indem man
Wird im Dialog ein bereits aktiviertes Gate selektiert, so wechselt der Default-Button zu "Anzeigen" und ein Klick darauf zoomt das Editor-Fenster auf das selektierte Gate, wobei wenn nötig auch auf die entsprechende Seite gewechselt wird.
Löschen von Junctions, siehe DELETE-Befehl.
Mit diesem Befehl lassen sich die Kreuzungspunkte zusammengehöriger Netze mit einem Punkt markieren. Ein Junction-Punkt lässt sich nur auf einem Netz plazieren. Wird ein Junction-Punkt an einer Stelle gesetzt, an der sich unterschiedliche Netze kreuzen, dann wird der Benutzer gefragt, ob er die Netze verbinden will.
Wird eine Netzlinie auf einem Punkt abgesetzt auf dem schon mindestens zwei weitere Netzlinien und/oder Pins liegen, wird automatisch ein Verbindungspunkt (Junction) gesetzt. Diese Funktion kann über "SET AUTO_JUNCTION OFF;" oder durch Deselektieren des Punkts "Junctions automatisch setzen" im Menü "Optionen/Einstellungen/Verschiedenes" abgeschaltet werden.
Auf dem Bildschirm werden Junctions immer mit mindestens fünf
Pixel Durchmesser dargestellt, damit sie auch in kleinen Zoom-Stufen
noch sichtbar sind.
LABEL
Siehe auch NAME,
BUS
Mit diesem Befehl kann man den Namen eines Busses oder Netzes im Schaltplan an eine beliebige Stelle plazieren. Der erste Mausklick sorgt dafür, dass der Name des selektierten Busses oder Netzes "am Mauszeiger hängenbleibt". Der Text kann dann mit der rechten Maustaste rotiert werden. Mit der mittleren Maustaste wählt man den Ziel-Layer für den Label-Text aus. Der zweite Mausklick mit der linken Maustaste plaziert den Text an eine beliebige Stelle.
Als Option kann die Schreibrichtung (orientation) auch textuell angegeben werden. Das ist vor allem für Script-Dateien sinnvoll. Die entsprechenden Schlüsselwörter sind im ADD-Befehl aufgeführt (R0, R90 usw.).
Es können beliebig viele Labels je Bus/Signal plaziert werden.
Label-Texte lassen sich nicht mit CHANGE TEXT ändern.
Labels werden vom Programm wie Texte behandelt, aber ihr "Wert" entspricht immer dem Namen des zugehörigen Busses oder Netzes. Ändert man den Namen eines Busses/Netzes mit dem NAME-Befehl, dann ändern sich automatisch alle zugehörigen Labels.
Selektiert man beim SHOW-Befehl einen Bus, ein Netz oder ein Label, dann werden alle zugehörigen Busse, Netze bzw. Labels hell dargestellt.
Das Format, in welchem ein Querverweis-Label angezeigt wird, kann über die "Format für Querverweis-Labels" Zeichenfolge im Dialog "Optionen/Einstellungen/Verschiedenes" oder über den SET Befehl festgelegt werden. Folgende Platzhalter sind definiert und können in beliebiger Reihenfolge verwendet werden:
%F | aktiviert das Zeichnen eines Rahmens um das Label | |
%N | der Name des Netzes | |
%S | die nächste Seitennummer | |
%C | die Spalte auf der nächsten Seite | |
%R | die Zeile auf der nächsten Seite |
Das Standard-Format ist "%F%N/%S.%C%R". Neben den definierten Platzhaltern können Sie auch beliebige andere ASCII-Zeichen verwenden.
Die Werte für Spalte und Zeile sind nur verfügbar, wenn auf der nächsten Seite, auf der das Netz vorkommt, ein Zeichnungsrahmen platziert wurde. Wird %C oder %R benutzt und es befindet sich kein Rahmen auf der Seite, zeigen sie ein Fragezeichen ('?') an.
Bei der Ermittlung der Spalte und Zeile eines Netzes auf einer Schaltplanseite wird zunächst die Spalte und dann die Zeile innerhalb dieser Spalte betrachtet. Hierbei haben XREF-Labels Vorrang vor normalen Labels, und diese wiederum Vorrang vor Netzlinien. Für höhere Seitennummern werden die Rahmen-Koordinaten des am weitesten links oben liegenden Feldes genommen, während für niedrigere Nummern die des am weitesten rechts unten liegenden Feldes genommen werden.
Die Orientierung eines Querverweis-Labels bestimmt ob es auf eine "höhere" oder "niedrigere" Seitennummer verweist. Labels mit einer Orientierung von R0 oder R270 zeigen zum rechten bzw. unteren Rand der Zeichnung und beziehen sich daher auf eine höhere Seitennummer. Entsprechend verweisen Labels mit einer Orientierung von R90 oder R180 auf eine niedrigere Seitennummer. Hat ein Label eine Orientierung von R0 oder R270, aber das Netz, an dem es hängt, kommt auf keiner höheren Seite vor, so wird stattdessen ein Verweis auf die nächst niedrigere Seite angezeigt (entsprechendes gilt für R90 und R180). Kommt das Netz ausschließlich auf der aktuellen Seite vor, so wird keinerlei Querverweis angezeigt, sondern nur der Netzname (mit Rahmen, falls das Format den %F Platzhalter enthält).
Ein Querverweis-Label, welches auf das Ende einer Netzlinie platziert wird, verbindet sich mit der Linie, so dass sich die Linie mit dem Label mitbewegt und umgekehrt.
Das Format für Querverweis-Labels wird in der Schaltplan-Zeichnung gespeichert.
Ein Querverweis-Label kann entweder mit dem CHANGE-Befehl oder über seinen Eigenschaften-Dialog in ein normales Label verwandelt werden.
LAYER Layer; LINE (1 2) (3 4);hier nicht funktioniert. Der Layer muss gewählt werden, wenn der LABEL-Befehl bereits aktiv ist. Dies kann folgendermaßen geschehen:
LABEL Parameter LAYER Layer weitere Parameter;Beachten Sie, dass die LABEL-Zeile nicht mit einem ';' abgeschlossen ist, und dass der LAYER-Befehl in einer neuen Zeile beginnt.
LABEL LAYER Layer;setzen den Layer für nachfolgende LABEL-Befehle.
Mit Spannungsmesspunkten lassen sich die Spannungen in Netzknoten im Simulationsergebnis darstellen.
Dieser Befehl ist als Eintrag im Kontext-Menü von Netzen im Schaltplan, über die Kommandozeile und als Befehls-Icon in der Menüleiste ausführbar.
VPPROBE
Siehe auch NET
Mit Phasenlagenmesspunkten lassen sich die Phasenlagen von Spannungen in Netzknoten im Ergebnis der AC-Simulation darstellen.
Dieser Befehl ist als Eintrag im Kontext-Menü von Netzen im Schaltplan, über die Kommandozeile und als Befehls-Icon in der Menüleiste ausführbar.
LAUNCH
Siehe auch
PACKAGE,
COPY
LAUNCH PACKAGE3D-WEB-SEARCH
Dieser Befehl wird verwendet um den Package-Generator und die Package-Suche im Web zu starten.
Er kann im Device-Editor angewendet werden, um eine neue Device-Variante anzulegen (entspricht dem PACKAGE-Befehl) oder auch im Library-Editor um ein Package in eine
Bibliothek zu importieren (entspricht dem COPY-Befehl).
LAYER
Siehe auch DISPLAY
LAYER layer_name
LAYER layer_number layer_name
LAYER [??] -layer_number
Der ROUTE-Befehl ändert den aktiven Layer automatisch.
Bestimmte Layer stehen nicht in allen Betriebsarten zur Verfügung, da sie nicht überall einen Sinn haben.
Bitte beachten Sie, dass von den Signal-Layern (1 bis 16) nur diejenigen zur Verfügung stehen, die im Layer-Setup in den Design Rules eingetragen sind.
LAYER 101 BEISPIEL;erzeugt einen neuen Layer mit der Nummer 101 und dem Namen BEISPIEL.
Werden in einer Zeichnung Bibliothekselemente plaziert (mit ADD oder REPLACE), die zusätzliche Layer enthalten, dann werden diese Layer automatisch in der Zeichnung angelegt.
Die vordefinierten Layer haben spezielle Bedeutung. Man kann zwar ihren Namen ändern, aber ihre besondere Funktion bleibt aufgrund ihrer Nummer erhalten.
Wenn Sie eigene Layer definieren, sollten Sie nur die Layer-Nummern ab 100 verwenden. Bei kleineren Nummern kann es sein, dass Sie in späteren EAGLE-Versionen spezielle Bedeutung bekommen.
LAYER 53 tSomething; LAYER 54 bSomething;Dies ist verfügbar für die Layerpaare 53/54, 55/56, 57/58 und 59/60. Es sollte mit Vorsicht gemacht werden im Hinblick auf zukünftige EAGLE-Versionen.
LAYER -103;löscht den Layer mit der Nummer 103. Voraussetzung ist, dass der Layer leer ist. Ist das nicht der Fall, wird die Fehlermeldung
"layer is not empty: #"
ausgegeben, wobei # die Layer-Nummer repräsentiert. Falls Sie jegliche Fehlermeldungen beim Löschen eines Layers vermeiden wollen, so können Sie die Option '??' angeben. Das kann in Scripts nützlich sein, die bestimmte Layer zu löschen versuchen, wo es aber keinen Fehler darstellt wenn ein Layer nicht leer oder überhaupt nicht vorhanden ist.
1 Top | Leiterbahnen oben | |
2 Route2 | Innenlage | |
3 Route3 | Innenlage | |
4 Route4 | Innenlage | |
5 Route5 | Innenlage | |
6 Route6 | Innenlage | |
7 Route7 | Innenlage | |
8 Route8 | Innenlage | |
9 Route9 | Innenlage | |
10 Route10 | Innenlage | |
11 Route11 | Innenlage | |
12 Route12 | Innenlage | |
13 Route13 | Innenlage | |
14 Route14 | Innenlage | |
15 Route15 | Innenlage | |
16 Bottom | Leiterbahnen unten | |
17 Pads | Pads (bedrahtete Bauteile) | |
18 Vias | Vias (durchgehend) | |
19 Unrouted | Luftlinien | |
20 Dimension | Platinen-Umrisse (und Kreise für Holes) | |
21 tPlace | Bestückungsdruck oben | |
22 bPlace | Bestückungsdruck unten | |
23 tOrigins | Aufhängepunkte oben (Kreuz automatisch generiert) | |
24 bOrigins | Aufhängepunkte unten (Kreuz automatisch generiert) | |
25 tNames | Servicedruck oben (Bauteile-Namen, NAME) | |
26 bNames | Servicedruck unten (Bauteile-Namen, NAME) | |
27 tValues | Bauteile-Werte oben (VALUE) | |
28 bValues | Bauteile-Werte unten (VALUE) | |
29 tStop | Lötstopmaske oben (automatisch generiert) | |
30 bStop | Lötstopmaske unten (automatisch generiert) | |
31 tCream | Lotpaste oben | |
32 bCream | Lotpaste unten | |
33 tFinish | Veredelung oben | |
34 bFinish | Veredelung unten | |
35 tGlue | Klebemaske oben | |
36 bGlue | Klebemaske unten | |
37 tTest | Test- und Abgleichinformationen oben | |
38 bTest | Test- und Abgleichinformationen unten | |
39 tKeepout | Sperrflächen für Bauteile oben | |
40 bKeepout | Sperrflächen für Bauteile unten | |
41 tRestrict | Sperrflächen für Leiterbahnen oben | |
42 bRestrict | Sperrflächen für Leiterbahnen unten | |
43 vRestrict | Sperrflächen für Vias | |
44 Drills | Bohrungen, durchkontaktiert | |
45 Holes | Bohrungen, nicht durchkontaktiert | |
46 Milling | CNC-Fräser-Daten (geschlitzte Pads) | |
47 Measures | Bemaßungen | |
48 Document | allgemeine Dokumentation | |
49 Reference | Passermarken | |
51 tDocu | Bauteiledokumentation oben | |
52 bDocu | Bauteiledokumentation unten |
91 Nets | Netze | |
92 Busses | Busse | |
93 Pins | Anschlusspunkte für Schaltplansymbole | |
mit Zusatzinformationen | ||
94 Symbols | Umrisse der Schaltplansymbole | |
95 Names | Namen bei Schaltplansymbolen | |
96 Values | Werte/Typenbezeichnung bei Schaltplansymbolen | |
97 Info | Allgemeine Informationen | |
98 Guide | Hilfslinien |
Layer können immer mit ihrem Namen oder Nummer angegeben werden.
LINE
Siehe auch MITER,
SIGNAL,
ROUTE,
CHANGE,
NET,
BUS,
DELETE,
RIPUP,
ARC
LINE ['signal_name'] [width] [ROUND | FLAT] [curve | @radius] ..
Der LINE-Befehl plaziert Linien (Wires) in einer Zeichnung, und zwar zwischen erstem und zweitem Koordinatenpunkt. Jeder weitere Punkt (Mausklick) wird mit dem vorhergehenden verbunden. Dabei werden jeweils zwei Koordinatenpunkte mit einer geraden Linie verbunden oder mit zwei, die in einem bestimmten Winkel abknicken. Dieser Knickwinkel lässt sich mit der rechten Maustaste weiterschalten (wird dabei die Shift-Taste gedrückt gehalten kehrt sich die Richtung des Weiterschaltens um, bei gedrückter Ctrl-Taste wird zwischen korrespondierenden Knickwinkeln hin und her geschaltet).
Zwei Mausklicks an derselben Stelle setzen das Leitungsstück ab.
Die speziellen Schlüsselworte ROUND und FLAT, sowie der curve Parameter, können dazu benutzt werden, Kreisbögen zu zeichnen (siehe unten).
Wird das Zeichnen einer Linie mit gedrückter Ctrl-Taste gestartet, so schnappt der Startpunkt der neuen Linie an die Koordinaten der nächstgelegenen existierenden Linie. Dies ist besonders nützlich, wenn die existierende Linie außerhalb des aktuellen Rasters liegt. Hierbei werden auch die Breite, der Layer und der Linientyp von der existierenden Linie übernommen. Falls der aktuelle Knickwinkel 7 ("Freihand") ist, so setzt die neue Linie die existierende bündig fort.
Die Breite lässt sich auch zu jeder Zeit mit dem Befehl
CHANGE WIDTH breite ändern oder voreinstellen.
Bitte verwenden Sie den LINE-Befehl nicht für Netze und Busse sowie für Luftlinien. Siehe NET, BUS und SIGNAL.
DRC und Autorouter behandeln alle Linienarten als durchgezogen (Continuous). Andere Linienarten werden hauptsächlich für elektrische oder mechanische Zeichnungen verwendet und sollten nicht in Signallayern benutzt werden. Der DRC meldet einen Fehler, wenn Sie eine Nicht-continuous-Linie als Teil einer signalführenden Leiterbahn mit einem Pad verbinden.
Der gültige Bereich für curve ist ]-360..+360[ (also ohne die Grenzen +-360), wobei der Wert angibt, aus welchem Anteil eines Vollkreises der Kreisbogen besteht. Ein Wert von 90 beispielsweise steht für einen Viertelkreis, während 180 einen Halbkreis ergibt. Es können keine Vollkreise auf diese Art erzeugt werden (verwenden Sie dazu den CIRCLE-Befehl). Positive Werte für curve bedeuten, dass der Kreisbogen im mathematisch positiven Sinne (also gegen den Uhrzeigersinn) gezeichnet wird. Falls curve gleich 0 ist, handelt es sich um eine gerade Linie ("keine Krümmung"), was letztlich einer LINE entspricht. Beachten Sie bitte, dass, um den curve Parameter vom width Parameter unterscheiden zu können, dieser immer mit Vorzeichen ('+' oder '-') angegeben werden muss, auch wenn es eine positive Zahl ist.
Zum Beispiel würde der Befehl
LINE (0 0) +180 (0 10);einen Halbkreis entgegen dem Uhrzeigersinn vom Punkt (0 0) nach (0 10) zeichnen.
Wird ein radius angegeben, so erhält der Kreisbogen diesen Radius. Genau wie der curve-Parameter muss auch der radius mit Vorzeichen angegeben werden um die Orientierung des Kreisbogens zu bestimmen. Zum Beispiel zeichnet der Befehl
LINE (0 0) @+100 (0 200);einen Halbkreis vom Punkt (0 0) nach (0 200) (mit Radius 100), entgegen dem Uhrzeigersinn. Liegt der Endpunkt der Linie um mehr als den doppelten Radius vom Startpunkt entfernt, so wird eine gerade Linie gezeichnet.
Der Kreisbogen-Radius kann auch dadurch definiert werden, dass der Linien-Endpunkt mit gedrückter Ctrl-Taste gesetzt wird (typischerweise am Mittelpunkt des Kreises auf dem der Kreisbogen liegen soll). In diesem Fall wird der Punkt nicht als eigentlicher Endpunkt genommen, sondern dazu benutzt den Radius des Kreisbogens festzulegen. Sie können dann den Mauszeiger bewegen und einen Kreisbogen mit dem gegebenen Radius plazieren (die rechte Maustaste zusammen mit Ctrl schaltet die Orientierung des Kreisbogens um). Falls Sie den Mauszeiger weiter als den doppelten Radius vom Startpunkt wegbewegen wird eine gerade Linie gezeichnet.
Um jeden beliebigen Kreisbogen mit dem LINE-Befehl zeichnen zu können (was insbesondere bei der
Generierung von Script-Dateien wichtig ist) sind die Schlüsselworte ROUND und
FLAT im LINE-Befehl ebenfalls erlaubt. Beachten Sie aber, dass diese nur bei
echten Kreisbögen Anwendung finden (gerade Linien haben immer runde Enden). Standardmäßig
haben mit dem LINE-Befehl erzeugte Kreisbögen runde Enden.
LOCK
Siehe auch MIRROR,
MOVE,
ROTATE
REPOSITION
LOCK *;
LOCK -*;
LOCK name;
LOCK -name
LOCK LAYER layer_name;
LOCK LAYER -layer_name;
LOCK LAYER layer_number;
LOCK LAYER -layer_number;
Der LOCK-Befehl kann auf Bauteile, Wires, Vias, Polygone und Holes in einem Board angewendet werden und verhindert das Bewegen, Drehen und Spiegeln des Objekts. Das kann beispielsweise für Steckverbinder sinnvoll sein, die an einer fixen Position im Layout platziert werden und nicht mehr unabsichtlich verschoben werden dürfen. Ist der LOCK-Befehl aktiviert, kann man über drei Schaltflächen Alle Objekte verriegeln, Alle Objekte entriegeln oder Alle Objekte im aktiven Layer verriegeln.
Kommandozeile
In der Kommandozeile können verschieden Aktionen ausgeführt werden:
Als Indikator für ein verriegeltes Bauteil wird der Aufhängepunkt des Bauteils als 'X' dargestellt. Auf verriegelten Wires, Vias und Holes wird ein Schlosssymbol angezeigt.
Bewegt man eine Gruppe, die verriegelte Objekte enthält, bewegen sich diese nicht mit.
Freie Textattribute eines Bauteils können einzeln, aber nicht mit der Gruppe bewegt werden.
Bauteile können auch über den Namen ausgewählt werden. Das ist besonders hilfreich, wenn diese außerhalb des aktuell sichtbaren Zeichenbereichs liegen.
Ein verriegeltes Objekt kann entriegelt werden, wenn man bei aktivem LOCK-Befehl und gedrückter Shift-Taste auf das Objekt klickt.
MAPTOMODEL
Siehe auch ADDMODEL,
SIM,
EXPORT
Der MAPTOMODEL-Befehl öffnet einen Dialog in dem man einem Bauteil ein bestimmtes Modell, eine Modellbeschreibung oder
ein intrisisches Spice-Modell zuordnet. Wenn das Device noch kein spice-kompatibles Device ist, wird zunächst der
ADDMODEL-Befehl im Hintergrund aufgerufen.
MAPTOMODEL zeigt einen Dialog, in dem der Anwender das zu verwendende Modell festlegt und auch die Pins des Bauteils
den Eingängen des Modells zuordnet. Hinweis: Wenn Gate ausgewählt wird, wird das Spice-Modell allen Gates im Device-Set zugeordnet.
Über den MANUFACTURING-Befehl erreicht man den Manufacturing-Dialog und den CAM-Exporter.
MANUFACTURING (ohne Parameter) blendet das Manufacturing-Fenster (Flyout) im Layout-Editor ein oder aus.
Im Manufacturing-Flyout findet man fertigungsrelevante Informationen zum Board, wie zum Beispiel
die Boardkontur, Lage und Durchmesser von Bohrungen, zusätzliche Ansichten...
MANUFACTURING CAM öffnet den CAM-Prozessor und MANUFACTURING EXPORT erzeugt ein ZIP-Archiv
mit Gerber- and Excellon-Daten der aktuell geladenen Zeichnung.
Diese Befehle sind nur im Layout-Editor verfügbar.
Mit dem MARK-Befehl definiert man einen Punkt in der Zeichenfläche,
der als Bezugspunkt zum Ausmessen von Strecken dienen kann. Die
Koordinaten relativ zu diesem Punkt werden in der gegenwärtig
eingestellten Einheit (GRID) links oben auf dem Bildschirm mit
vorangestelltem 'R' angezeigt. Der Bezugspunkt wird als weißes
Kreuz dargestellt. Um genau messen zu können, sollten Sie vorher ein
Raster einstellen das fein genug ist.
Die Eingabe 'MARK;' schaltet die Marke ein oder aus.
Der MEANDER-Befehl dient zum Ausgleichen der Länge von Signalen eines Differential
Pairs.
Hierfür klicken Sie auf eine Leiterbahn eines Differential Pairs und bewegen den Mauszeiger
weg vom Anklickpunkt. Wenn die beiden Signale unterschiedlich lang sind und der
Anklickpunkt und die aktuelle Mausposition genügend weit voneinander entfernt sind,
wird die Leiterbahn in Form eines "Mäanders" gezeichnet, welche die Länge
des kürzeren Signal-Segments erhöht.
Eine Anzeige am Mauszeiger zeigt die Ziel-Länge an (das ist die Länge des längeren
Signal-Segments), sowie die Abweichung (in Prozent) der beiden Signale vom Ziel-Wert.
Der Mäander beginnt am ersten Anklickpunkt und erstreckt sich bis zum zweiten
Punkt, an den der Mauszeiger bewegt wird. Die maximale Breite des Mäanders wird
durch den Abstand des Mauszeigers von der selektierten Leiterbahn bestimmt.
Falls ein einzelner Mäander nicht ausreicht, um die Längen auszugleichen, können Sie
weitere Mäander an anderen Stellen einfügen.
Zu jeder Zeit können Sie in der Kommandozeile einen Wert length für die
Ziel-Länge eingeben. Das ist für alle Signale, nicht nur für Differential Pairs, anwendbar.
Beim Mäandrieren eines Differential Pairs mit vorgegebenem Ziel-Wert wird zuerst
versucht, den Längenunterschied der beiden Signal-Segmente des Differential Pairs
auszugleichen, und anschließend die Gesamtlänge beider Segmente auf den gegebenen
Wert zu erhöhen.
Um die Ziel-Vorgabe zurückzusetzen können Sie entweder den MEANDER-Befehl neu starten,
oder in der Kommandozeile einen Wert von 0 eingeben.
Führen Sie die Messung mit gedrückten Ctrl+Shift-Tasten durch, so wird die
maximale Länge dieses und aller vorhergehenden Segmente genommen. Damit können Sie
auf einfache Weise die maximale Länge mehrerer Bus-Signale bestimmen und dann jedes
davon auf diese Länge bringen.
MANUFACTURING
MANUFACTURING EXPORT;
MANUFACTURING CAM;
MARK
Siehe auch GRID
MARK;
MEANDER
Siehe auch ROUTE
Signal-Längen messen
Wenn Sie mit gedrückter Ctrl-Taste auf eine Leiterbahn klicken, so wird
die Länge dieses Signal-Segments berechnet und am Bildschirm in einer kleinen
Anzeige nahe der Mausposition angezeigt. Damit können Sie die Länge eines Signal-Segments
messen und diesen Wert als Zielvorgabe für das Mäandrieren eines anderen Segments
verwenden.
Symmetrische und asymmetrische Mäander
Standardmäßig wird ein Mäander symmetrisch generiert, das heißt er ersteckt sich zu
beiden Seiten entlang der selektierten Leiterbahn. Falls das nicht das ist, was Sie
brauchen (entweder weil nur auf einer Seite Platz ist, oder weil die längere der
beiden Leiterbahnen eines Differential Pairs nicht noch weiter verlängert werden soll)
können Sie durch Drücken der rechten Maustaste auf den asymmetrischen Modus umschalten.
Die aktuelle Mausposition entscheidet darüber, auf welcher Seite der Leiterbahn der
Mäander angelegt wird. Bewegen Sie die Maus hin und her um die passende Position
zu finden.
Längen-Toleranz
Der Wert, der in den Design Rules unter
"Misc/Max. Längenunterschied in Differential Pairs" definiert ist, wird dazu benutzt,
die Farbe der Anzeige der Längenabweichungen beim Zeichnen eines Mäanders zu
bestimmen. Wird die Prozentzahl in Grün angezeigt, so liegt das betreffende Segment
innerhalb der gegebenen Toleranz. Ansonsten wird sie in Rot dargestellt.
Der Standardwert für diesen Parameter ist 10mm.
MENU
Siehe auch ASSIGN,
SCRIPT
MENU;
Mit dem MENU-Befehl kann man das Text-Menü nach eigenen Wünschen ändern.
Die vollständige Spezifikation für den option-Parameter ist:
option := command | submenu | delimiter command := [ icon ] text1 [ ':' text2 ] submenu := [ icon ] text '{' option [ '|' option ] '}' icon := '[' filename ']' delimiter := '---'Eine Option des MENU-Befehls kann ein einfacher Befehl sein, wie z. B.
MENU Display Grid;der die Befehle Display und Grid als Inhalt des Text-Menüs definiert. Display und Grid werden sowohl als Menütext als auch als Kommando interpretiert.
MENU 'MyDisp : Display None Top Bottom Pads Vias;' 'MyGrid : Grid mil 100 lines on;';Das Text-Menü enthält die beiden selbstdefinierten Befehle MyDisp und MyGrid. Nach Anklicken eines Buttons im Menü wird die nach ':' definierte Befehlssequenz (text2, s.o.) der entsprechenden Option ausgeführt.
MENU 'Grid { Fine : Grid inch 0.001; | Coarse : Grid inch 0.1; }';Es wird ein Button mit dem Namen Grid erzeugt, der nach dem Anklicken ein Untermenü mit den beiden Optionen Fine und Coarse enthält.
Die besondere Option '---' kann man verwenden, um einen Trennstrich im Menü zu erzeugen. Das fördert die Übersichtlichkeit im Menü.
Ein Befehls-Button kann ein Icon anzeigen, indem dem Button-Text der Dateiname eines Icons in eckigen Klammern vorangestellt wird, wie in
MENU '[/path/to/myicon.png] Set a fine grid : Grid inch 0.001;';Hier zeigt der Button nur das angegebene Icon an und "Set a fine grid" wird als "Direkthilfe" verwendet, die angezeigt wird, wenn der Mauszeiger über den Button bewegt wird. Der Dateiname muss nicht zusätzlich in Hochkommas gesetzt werden (etwa um Leerzeichen zu maskieren).
MENU 'Grid { [/path/to/myicon.png] Set a fine grid : Grid inch 0.001; }';so werden, wie bei anderen Menüs auch, sowohl das Icon als auch der Text angezeigt.
Bitte beachten Sie, dass jede option, die mehr als ein Wort oder einen Text, der als Befehl interpretiert werden kann, enthält, in einfache Hochkommas eingeschlossen werden muss. Wenn Sie den MENU-Befehl in einer Script-Datei verwenden, um ein komplexes Text-Menü zu definieren und dabei die Menü-Definition zur besseren Lesbarkeit über mehrere Zeilen verteilen wollen, ist es notwendig, die Zeilen mit einem Backslash ('\') zu beenden, wie z. B.
MENU 'Grid {\ Fine : Grid inch 0.001; |\ Coarse : Grid inch 0.1;\ }';
MENU Move Delete Rotate Route ';' Edit;erzeugt ein Menü, das die Befehle Move bis Route, den Strichpunkt als Befehlsabschlusszeichen und den Edit-Befehl enthält.
Der Befehl
MENU;stellt wieder das Standard-Menü ein. Beachten Sie, dass der Eintrag ';' immer im Menü enthalten sein sollte. Er wird zum Beenden vieler Befehle benötigt.
Komplexes Beispiel:
MENU '[draw.png] Draw {\ Line {\ Continous : CHANGE STYLE Continuous; LINE |\ DashDot : CHANGE STYLE DashDot; LINE |\ Help : HELP LINE;\ }|\ Rectangle {\ RECT |\ Help : HELP RECT; \ }\ }\ [export.png] Export {\ Script : EXPORT SCRIPT |\ Image : EXPORT IMAGE\ }\ MyScript : SCRIPT MyScript.scr;';Dieses Menü besteht aus den 3 Einträgen Draw, Export und MyScript, wobei Draw und Export Untermenüs haben und mit Icons versehen sind. Draw besteht aus den Untermenüs Line und Rectangle, wobei Line aus den Einträgen Continous, DashDot und Help und Rectangle aus den Einträgen RECT (Text und Befehl RECT) und Help zusammengesetzt sind.
Mit dem MIRROR-Befehl können Objekte an der y-Achse gespiegelt und damit z.B. auf der Lötseite der Platine plaziert werden.
Bauteile, Pads, Smds und Pins lassen sich auch mit ihrem Namen selektieren. Das ist vor allem dann nützlich, wenn sich das Objekt ausserhalb des gerade dargestellten Bildausschnitts befindet.
Attribute von Bauteilen können dadurch selektiert werden, dass die Kombination aus Bauteilname und Attributname angegeben wird, wie etwa R5>VALUE.
Das Spiegeln von Packages ist nur mit eingeblendetem tOrigins- bzw. bOrigins-Layer möglich.
Beim Spiegeln von Elementen werden die angeschlossenen Leiterbahnen auf den Außenlagen mitgespiegelt (Achtung auf Kurzschlüsse!). Vias werden dabei nicht automatisch gesetzt.
Beachten Sie bitte, dass Objekte auf Innenlagen (2...15) beim Spiegeln ihren Layer nicht wechseln. Gleiches gilt auch für Vias.
Bauteile können nicht gespiegelt werden, wenn sie gelockt sind, oder wenn eines ihrer angeschlossenen Pads aus der erlaubten Fläche hinausstehen würde (falls sie eine eingeschränkte Version von EAGLE verwenden).
Lines, Circles, Pads und Polygone lassen sich nicht explizit spiegeln (als Bestandteile von Gruppen werden sie mitgespiegelt).
Im Schaltplan führt das Spiegeln eines Textes dazu, dass er auf der anderen
Seite seines Aufhängepunktes dargestellt wird; er bleibt aber nach wie vor normal
lesbar.
MITER
Siehe auch SPLIT,
LINE,
ROUTE,
POLYGON
Der MITER-Befehl dient dazu die Verbindungsstelle zweier Linien abzuschrägen. Die beiden existierenden Linien müssen dazu auf dem gleichen Layer liegen, die gleiche Breite und den gleichen Linien-Style haben.
Der MODULE-Befehl wird verwendet, um Module zu erzeugen und um Module mit Hilfe von Modul-Instanzen im Schaltplan zu verwenden.
Mit +offset kann für die aktuelle Modul-Instanz ein Offset zur Namensgebung der Bauteile angegeben werden. Der Wert muss ein Vielfaches von 100 sein (z.B. +100). Beachten Sie, dass dies nur für Modul-Instanzen im Hauptschaltplan unterstützt wird (Details siehe unten).
Als Option kann die Schreibrichtung orientation auch textuell angegeben werden. Die entsprechenden Schlüsselwörter sind im ADD-Befehl aufgeführt (R0, R90 usw.).
Der PORT-Befehl wird verwendet, um Ports zu einem Modul hinzuzufügen.
Eine Modul-Instanz fügt alle Netze und Bauteile des Moduls zum Board hinzu. Netznamen werden zusammengesetzt aus dem Modul-Instanz-Namen und dem Namen des Netzes im Modul (z.B. 'MODULE1:N$1'). Wenn ein Netz durch einen PORT exportiert wird, überschreibt ein am Port angeschlossenes Netz den Modul-internen Netznamen. Bauteilnamen von Modul-Instanzen mit einem Offset ungleich 0 werden mit diesem Offset beaufschlagt (z.B. 'R17' wird mit Offset '100' zu 'R117', Details siehe unten). Wenn kein Offset gesetzt ist, werden auch diese mit dem Modul-Instanz-Namen zusammengesetzt (z.B. 'MODULE1:R17').
Um eine bestimmte Bestückungsvariante des Moduls zu wählen, muss ihr Name dem Modulnamen vorangestellt werden (z.B. 'V1@ABC').
Wird kein Präfix und auch kein Name für die Modul-Instanz angegeben, wird zur Generierung der Modul-Name als Präfix verwendet.
Die Modul-Instanz-Namen können mit NAME verändert werden.
Die Offset-Notation für Modul-Instanzen hat den Vorteil, dass kürzere Namen erzeugt werden,
aber sie ist mit Vorsicht zu benutzen, da sie zu Namenskonflikten bei den Elementen führen kann.
Beispiel:
Wenn Sie die Bauteile R1-R9 in einem Modul haben, und auf der Hauptebene des Schaltplans die Bauteilnamen (bzw. Elementnamen) R201-R209 schon benutzt werden, ist es nicht möglich, eine Modul-Instanz MI von M mit Offset 200 anzulegen, da die generierten Elemente ebenfalls die Namen R201-R209 beanspruchen würden. EAGLE überprüft und verhindert solche Fälle mit einer Fehlermeldung. Der Konflikt kann leicht gelöst werden durch Verwendung eines anderen positiven Offsets oder Offset 0 (also der zusammengesetzten Notation).
Selbst wenn die Offset-Notation konfliktfrei funktioniert, kann sie auch anderweitig verwirrend sein: wenn Sie im oberen Beispiel den Offset auf 300 ändern, aber auf der Hauptebene Bauteile mit Namen R310, R311 usw. haben, ist es schwierig zu erkennen, dass diese bauteile NICHT zu MI gehören, sondern zur Hauptebene. Deswegen wird empfohlen, die Offsets groß genug zu wählen um solche Missverständnisse zu vermeiden.
Je nachdem was Sie vorhaben, kann die zusammengesetzte Notation unter Verwendung kurzer Modul-Instanz-Namen die bessere Alternative sein.
Ebenfalls um Missverständnisse zu reduzieren, kann jeder Offset im ganzen Schaltplan nur einmal benutzt werden. Der Eigenschaften-Dialog für Modul-Instanzen erlaubt die Änderung des Offsets nur auf solche Werte, die noch nicht vergeben sind (oder auf 0).
Offsets > 0 werden in tieferen Hierarchiestufen nicht unterstützt.
Beispiel:
Die Instanz F0 benutzt FILTER mit Offset 100, Instanz SUB befindet sich in FILTER und benutzt
SUBMODULE mit Offset 0. Für die Elemente aller Bauteile in FILTER wird Offset 100 verwendet,
für die Elemente zu allen Bauteilen in SUBMODULE wird die zusammengesetzte Notation wie bei einem
Verzeichnispfad verwendet, ebenso für die Signale zu den Netzen in SUBMODULE. So wird z.B. der Name
für das Element, welches C1 in SUBMODULE entspricht, zu F0:SUB:C1.
(Anmerkung: Wenn Offsets auch in tieferen Hierarchien zulässig wären, würde dies zu weiteren möglichen
Konflikten und Missverständnissen führen).
Der MOVE-Befehl bewegt das Objekt, das dem Mauszeiger bzw. dem angegebenen Koordinatenpunkt am nächsten liegt.
Bauteile, Pads, Smds, Pins und Gatter lassen sich auch mit ihrem Namen selektieren. Das ist vor allem dann nützlich, wenn sich das Objekt ausserhalb des gerade dargestellten Bildausschnitts befindet. Beim Selektieren eines aus mehreren Gattern bestehenden Bauteils im Schaltplan muss der volle, aus dem Bauteil- und dem jeweiligen Gatternamen bestehende Name angegeben werden.
Attribute von Bauteilen können dadurch selektiert werden, dass die Kombination aus Bauteilname und Attributname angegeben wird, wie etwa R5>VALUE.
Das Bewegen von Elementen ist nur mit eingeblendetem tOrigins- bzw. bOrigins-Layer möglich.
Der MOVE-Befehl wirkt nur auf sichtbare Layer (siehe DISPLAY).
Leiterbahnen, die an einem Element hängen, lassen sich an diesem Ende nicht bewegen. Beim Bewegen von Elementen bewegen sich die angeschlossenen Leiterbahnen mit, sofern sie Bestandteil eines Signals sind, (Achtung auf Kurzschlüsse!).
Wird ein Objekt mit der linken Maustaste angeklickt und die Taste danach nicht wieder losgelassen, so kann das Objekt sofort bewegt werden ("Click&Drag"). Gleiches gilt für Gruppen bei Verwendung der rechten Maustaste. Es ist dann allerdings nicht möglich das Objekt während des Bewegens zu drehen oder zu spiegeln.
Bauteile können nicht bewegt werden, wenn sie gelockt sind, oder wenn eines ihrer angeschlossenen Pads aus der erlaubten Fläche hinausstehen würde (falls sie eine eingeschränkte Version von EAGLE verwenden).
Wird ein Element bewegt, werden beim Absetzen offene Pins dieses Elements an eventuell vorhandene Netze bzw. andere Pins angeschlossen.
Bewegt man ein Netz auf einen Pin, werden Netz und Pin nicht logisch verbunden, obwohl sie optisch verbunden sind.
Wird eine Linie in der Mitte (nicht an einem ihrer Endpunkte) mit gedrückter Ctrl-Taste selektiert, so bleiben die Endpunkte fixiert und die Linie kann gebogen werden, wodurch sie zum Kreisbogen wird. Auf die gleiche Weise kann die Krümmung eines Kreisbogens (der im Grunde nichts anderes als eine Linie ist) verändert werden.
Wird ein Rechteck an einer seiner Ecken mit gedrückter Ctrl-Taste selektiert, so kann die Größe des Rechtecks sowohl in der Breite als auch in der Höhe verändert werden. Beim Selektieren einer Kante mit gedrückter Ctrl-Taste läßt sich nur die Breite bzw. die Höhe verändern. Selektiert man das Rechteck an seinem Mittelpunkt mit gedrückter Ctrl-Taste, so wird dieser an den Mauszeiger gezogen und in das aktuelle Raster geschnappt.
Wird ein Kreis mit gedrückter Ctrl-Taste an seinem Umfang selektiert, so bleibt sein Mittelpunkt fix und der Durchmesser kann verändert werden. Wird der Mittelpunkt auf diese Weise selektiert, so wird dieser an den Mauszeiger gezogen und in das aktuelle Raster geschnappt.
Wird ein Port mit gedrückter Ctrl-Taste selektiert, so wird nur der Port bewegt. Das Verschieben des Ports wirkt sich selbstverständlich auf alle Instanzen dieses Moduls aus.
Beachten Sie, das nur solche Linien verschoben werden, die beide Enden in der Gruppe haben, und dass Bauteile, die verschoben werden, alle ihre elektrischen Verbindungen mitnehmen, auch wenn eine an einem Pin angeschlossene Netzlinie nicht verschoben wird, da ihr anderes Ende nicht in der Gruppe liegt. Falls ein Pin auf der neuen Seite eine elektrische Verbindung hat, aber kein anderer Pin, Linie oder Junction daran angeschlossen ist um dies sichtbar zu machen, so wird automatisch eine Junction an dieser Stelle generiert.
Dieser Vorgang kann sogar in einem Script ausgeführt werden. Zum Beispiel würde
edit .s1 group (1 1) (1 2) (2 2) (2 1) (1 1) move (> 0 0) edit .s2 (0 0)auf die erste Seite schalten, eine Gruppe definieren, diese mit MOVE selektieren, auf die zweite Seite schalten und die Gruppe absetzen. Die Koordinaten (0 0) am Schluss sind für den implizit gestarteten MOVE-Befehl.
Falls Sie lediglich die Reihenfolge der Seiten verändern wollen, so können Sie das mit dem EDIT-Befehl tun.
Mit den NAME-Befehl kann man den Namen des selektierten Objektes anzeigen und (in einem Popup-Menü) ändern.
Bauteile, Pads, Smds, Pins und Gatter lassen sich auch mit ihrem Namen selektieren. Das ist vor allem dann nützlich, wenn sich das Objekt ausserhalb des gerade dargestellten Bildausschnitts befindet. Andere Objekttypen (z.B. Netze, Busse, Signale) müssen vorher angeklickt werden.
Neben dem Haupt-Schaltplan hat jedes Modul seinen eigenen Namensraum. Daher ist es kein Problem, die Bauteile R1 bis R9 auf der Hauptebene und auch in einem oder mehreren Modulen zu haben. Siehe auch Befehl MODULE.
nur das selektierte Segment,
alle Segmente auf dieser Seite,
alle Segmente auf allen Seiten
mit der Maus oder durch Eingabe des entsprechenden Hot-Keys umbenannt werden sollen. Je nachdem ob das Netz bzw. der Bus nur auf dieser Seite definiert ist oder aus einem oder mehreren Segmenten besteht, entfallen einzelne Punkte des Menüs bzw. das gesamte Menü. Existiert der neue Name bereits (auf dieser oder einer anderen Seite), wird vorher noch abgefragt, ob die beiden Netze bzw. Busse verbunden werden sollen.
Mit dem NET-Befehl zeichnet man Einzelverbindungen (Netze) in den Net-Layer eines Schaltplans. Der erste Mausklick gibt den Startpunkt des Netzes an, der zweite setzt die Linie ab. Zwei Mausklicks am selben Punkt beenden das Netz.
Wird ein Netz an einem Punkt abgesetzt, an dem schon ein anderes Netz, ein Bus oder ein Pin liegt, endet die Netzlinie hier. Diese Funktion kann über "SET AUTO_END_NET OFF;" oder durch Deselektieren der Option "Netze und Busse automatisch beenden" im Menü "Optionen/Einstellungen/Verschiedenes" abgeschaltet werden.
Wird eine Netzlinie an einem Punkt abgesetzt an dem mindestens zwei Netzlinien und/oder Pins liegen, wird automatisch ein Verknüpfungspunkt (Junction) gesetzt. Diese Funktion kann über "SET AUTO_JUNCTION OFF;" oder durch Deselektieren der Option "Junctions automatisch setzen" im Menü "Optionen/Einstellungen/Verschiedenes" abgeschaltet werden.
Wird der curve oder @radius Parameter angegeben, so kann ein Kreisbogen als Teil des Netzes gezeichnet werden (siehe die ausführliche Beschreibung beim LINE-Befehl).
Gibt man keinen Namen im NET-Befehl an und startet man auch nicht auf einem Bus, dann wird ein Name der Form N$1 für das Netz automatisch vergeben.
Netze oder Teile davon, die auf verschiedenen Seiten eines Schaltplans liegen und denselben Namen haben, sind miteinander verbunden.
Netznamen sollten kein Komma (',') enthalten, da dieses das Trennzeichen für Busse ist. Netznamen sollten auch '[' und ']' nicht enthalten, da diese zur Bereichsangabe bei Bussen verwendet werden. Netze eines solchen Busses führen den Index ohne eckige Klammern. (Z.B.: Aus dem Busnamen D[0..15] ergeben sich die Netze: D0, D1, ...)
Starten Sie den Befehl ohne Parameter (oder über die NET Parameter Schaltfläche) kann man in der Oberfläche die Art des Breakouts bestimmen. Klicken Sie dann auf beliebige Pins von beliebigen Bauteilen im Schaltplan, damit die entsprechenden Netze mit der gewählten Art der Beschriftung aus den Pins herausgeführt werden.
Mit den Befehlszeilen-Optionen PIN, UNIQUE und net_name können Sie den Label-Typ bestimmen. Wenn ein Netzname angegeben wird (net_name), wird dieser verwendet, egal an welchen Pin das Netz angeschlossen ist.
Die Schlüsselwörter PIN, UNIQUE und AUTOINCR haben eine spezielle Bedeutung und können nicht als Wert für net_name verwendet werden: PIN bedeutet, dass das neue Netz nach dem Pin-Namen benannt wird, mit dem es verbunden ist. Wählt man UNIQUE, zeigt das Label folgendes Format: part_gate_pin, wobei die Namen des Bauteils, das Gatters und des Pins für den eindeutigen Netznamen verkettet werden.
Das optionale Schlüsselwort AUTOINCR steht vor einem benutzerdefinierten Netznamen und zeigt an, dass die Pin-Namen automatisch inkrementiert werden sollen, wenn der Benutzer weitere Pins hinzufügt und das letzte Zeichen von net_name eine Zahl ist. Wenn Sie zum Beispiel ADDR1 mit automatischem Inkrementieren verwenden, würden die nächsten Pins mit den Netzen ADDR2, ADDR3 usw. verbunden werden.
Mit dem BREAKOUTBUS-Befehl kann man neue mit Labeln versehene Netze automatisch aus Bussen herausführen. Den Befehl startet man im Rechtsklick-Menü des Bus-Objekts oder über die Kommandozeile. Mehr dazu unter BREAKOUTBUS.
Netze inklusive Labels können automatisch mit dem PINBREAKOUT-Befehl aus Bauteilen herausgeführt werden. Diesen kann man von der Kommandozeile aus oder im aus dem Rechtsklick-Menü der Bauteil-Instanz starten. Mehr dazu unter PINBREAKOUT.
SET NET_WIRE_WIDTH width;voreinstellen (Default: 6 Mil).
!RESETwas als
_____ RESETdargestellt würde. Einzelheiten hierzu finden Sie in der Beschreibung des TEXT-Befehls.
The NEWGROUP command creates a named group of object(s) that is saved in the design as an object.
The group may be empty and may have restrictions on selection and operations.
The keyboard shortcut can be overridden in default-assign.scr. Make sure that line "SCRIPT default-assign.scr" in
"Documents/EAGLE/scripts/eagle.scr" is uncommented to properly assign shortcut keys.
If the selectable flag is unchecked, the group is disabled from selection and cannot be operated on any commands that change the design, but such groups may have objects spanning across multiple sheets too. This enables user to create a collection of named objects regardless of their location in the design.
If the selectable flag is checked, in schematic, the group has a boundary and a name label in the sheet and user may select the group by
clicking on the boundary or name label. User may perform operations on such groups like they are performed on
any other selectable objects in the design. But such groups cannot have objects spanning multiple sheets.
They can only have objects that are in the same sheet.
Groups can also be selected from the design manager when "Select in Design" is On. See
DESIGN MANAGER. User may note that when a selectable group is
selected, Selection Inspector shows group is selected, but when a non-selectable group row is 'selected' in the design
manager, its member objects are selected in the design (in schematic, selection is truncated to current sheet).
In schematics, the properties of group boundary and title annotations can be changed from the properties dialog box. User
may also switch off annotations for individual group(s). See also INFO
In schematics, the group title always sticks to the center of the top boundary and cannot be moved. The origin of a selectable
group is the group title in schematics and center of the member objects in boards. In schematics, the group boundary is dynamic -
it is updated when an object in the group is moved or deleted.
Airwires |
Attributes |
ATTRIBUTE | adds attributes to group | |
DELETE | deletes the group and its member objects | |
EDITGROUP | adds/removes/moves group to other group(s) | |
INFO | opens properties dialog for group | |
NAME | change group name | |
SHOW | perform SHOW commands on objects in group | |
UNGROUP | removes the group |
COPY | copies group and its member objects | |
LOCK | locks the members of the group | |
MIRROR | mirrors the objects in group together | |
MOVE | moves the group and its member objects | |
ROTATE | rotates the group and its member objects |
Der OPEN-Befehl öffnet eine existierende Bibliothek oder legt eine neue an, falls noch keine mit dem angegebenen Namen existiert. Danach kann ein existierendes oder ein neues Symbol, Device oder Package editiert werden.
Wird ein Bibliotheksname angegeben und es exisitiert eine Bibliothek mit diesem Namen im Bibliothekspfad, wird diese geöffnet. Anderenfalls wird eine Bibliothek mit diesem Namen im ersten Verzeichnis, das als Bibliothekspfad angegeben ist, angelegt. Wird ein URN angegeben und es gibt eine Verwaltete Bibliothek mit diesem URN, die lokal verfügbar (downloaded) ist und auch dem Anwender gehört, wird diese geöffnet.
Dieser Befehl ist in erster Linie für Script-Dateien erforderlich.
Um zum Library Editor zu wechseln, kann man den Befehl
OPEN .lbrverwenden.
Der OPTIMIZE-Befehl fasst Linien-Segmente, die in einer Linie liegen, zu einem Segment zusammen. Voraussetzung dafür ist, dass sich die Segmente im selben Layer befinden und dass Sie dieselbe Breite haben.
Wird ein Signal- bzw. Netz- oder Bus-Name angegeben (oder wird so ein Objekt selektiert), so wirkt der Befehl nur auf dieses Objekt.
Wird eine Gruppe selektiert, so werden darin nur echte Signal- bzw. Netz- und Bus-Linien optimiert. Um alle Linien in einer Zeichnung zu optimieren, geben Sie ein
OPTIMZE;
SET OPTIMIZING OFF;abgeschaltet, oder beim SPLIT-Befehl wurden zwei Mausklicks auf denselben Punkt einer Linie gesetzt.
Der OPTIMIZE-Befehl arbeitet unabhängig von der Einstellung der Set-Variablen Optimizing, d.h. er funktioniert auch, wenn
SET OPTIMIZING OFF;eingegeben wurde.
Dieser Befehl wird im Device-Editor verwendet um eine Gehäuse-Variante zu definieren, zu löschen oder umzubenennen. Im Schaltplan- oder Board-Editor verhält sich der PACKAGE-Befehl genau so wie "CHANGE PACKAGE".
Ohne Angabe von Parametern öffnet sich ein Dialog, der es erlaubt ein Gehäuse zu wählen und dessen Varianten-Namen zu definieren.
Die Parameter pname vname verknüpfen das Gehäuse pname mit der neuen Variante vname.
In der Schreibweise pname@lname vname wird das Package pname aus der Bibliothek lname geholt und eine neue Gehäuse-Variante erzeugt. Dies kann ebenso über das Kontext-Menü der Bibliotheksobjekte oder über Drag&Drop aus der Baumansicht des Control Panels erfolgen.
Der einzelne Parameter name ruft die schon vorhandene Package-Variante
auf.
Kompatibilitätsmodus zu Version 3.5:
Wird für name ein in der Bibliothek existierender Package-Name verwendet und
ist bisher noch keine Package-Variante definiert, wird eine neue
Package-Variante mit Namen '' (ein "leerer" Name) erzeugt.
Gibt man -old_name new_name an, wird die Package-Variante old_name umbenannt in new_name.
Der einzelne Parameter -name löscht die angegebene Package-Variante.
Der Name der Package-Variante wird dem Device-Set-Namen hinzugefügt, so dass ein eindeutiger Device-Name entsteht. Enthält der Device-Set-Name das Zeichen '?', wird dieser Platzhalter durch den Package-Varianten-Namen ersetzt. Bitte beachten Sie, dass die Package-Variante erst nach der Technology-Funktion bearbeitet wird. Wenn der Device-Set-Name weder '*' noch '?' enthält, setzt sich der Device-Name aus Device-Set-Name+Technology+Package-Variante zusammen.
Anschließend ist der CONNECT-Befehl zu verwenden, damit festgelegt werden kann, welcher Pin (im Schaltplan-Symbol) welchem Pad des Gehäuses entspricht.
Führt man im Schaltplan-Modus den BOARD-Befehl aus, so entsteht für jedes Device dasjenige Package, das mit dem PACKAGE-Befehl festgelegt wurde.
Man beachte, dass Supply- und externe Devices nicht mehr als solche gehandhabt werden, sobald dazu
Packages definiert werden. Die Pins müssen dann entsprechend angeschlossen sein.
PAD
Siehe auch SMD,
CHANGE,
DISPLAY,
SET,
NAME,
VIA,
Design Rules
Ein Pad ist ein Bauelemente-Anschluss mit Durchkontaktierung.
Der PAD-Befehl plaziert ein Pad in einem Package. Die Eingabe eines Durchmessers vor dem Plazieren ändert die Größe des Pads. Der Durchmesser wird in der aktuellen Maßeinheit angegeben. Er darf maximal 200 mm (ca. 7.7840 Zoll) betragen.
Pads erzeugen Bohrsymbole im Layer Drills und die Lötstopmaske in den Layern tStop/bStop.
Die orientation (siehe Beschreibung bei ADD) darf jeder Winkel im Bereich R0...R359.9 sein. Das S- bzw. M-Flag kann hier nicht benutzt werden.
PAD 0.06 Falls die eingestellte Maßeinheit "Inch" ist, hat das Pad einen Durchmesser von 0.06 Zoll. Die eingegebene Größe bleibt für nachfolgende Operationen erhalten.
Square | quadratisch | |
Round | rund | |
Octagon | achteckig | |
Long | länglich | |
Offset | länglich mit Versatz |
Diese Formen gelten nur für die Aussenlagen (Top bzw. Bottom). In den Innenlagen ist die Form immer "rund".
Bei den länglichen Pads ist der kleinere der beiden Durchmesser als Parameter anzugeben. Das Seitenverhältnis wird über den Parameter Shapes/Elongation in den Design Rules des Boards festgelegt (Default ist 100%, also ein Seitenverhältnis von 2:1).
Die Pad-Form kann entweder (wie der Durchmesser) eingegeben werden, während der Pad-Befehl aktiv ist, oder sie kann mit dem CHANGE-Befehl verändert werden, z. B.:
CHANGE SHAPE OCTAGON Die eingegebene Form bleibt für nachfolgende Operationen erhalten.
Da die Darstellung verschiedener Pad-Formen und der Bohrlöcher den Bildaufbau etwas verlangsamt, kann mit dem Befehl
SET DISPLAY_MODE REAL | NODRILL;von realer auf schnelle Darstellung umgeschaltet werden.
Beachten Sie bitte, dass die tatsächlichen Werte für Pad-Form und -Durchmesser durch die Design Rules des Boards bestimmt werden, in dem das Bauteil verwendet wird.
Hierbei gelten folgende Bedingungen:
Die Namen der Pads kann man mit dem Befehl
SET PAD_NAMES ON/OFFein- bzw. ausblenden.
NOSTOP | keine Lötstopmaske generieren | |
NOTHERMALS | keine Thermals generieren | |
FIRST | dies ist das "erste" Pad (und kann mit einer speziellen Form dargestellt werden) |
Standardmäßig generieren Pads automatisch Lötstopmaske und Thermals.
In speziellen Fällen kann es jedoch erwünscht sein, dass einzelne Pads dies nicht tun.
Die objgen NO...-Flags können benutzt werden um diese Eigenschaften zu
unterdrücken.
Falls die Design Rules eines Boards definieren, dass
das "erste Pad" eines Bauteils in einer speziellen Form dargestellt werden soll, so
wird das mit FIRST markierte Pad auf diese Weise dargestellt.
Ein neu gestarteter PAD-Befehl setzt alle Flags auf ihre Standardwerte zurück.
Sobald ein Flag in der Kommandozeile angegeben wird, gilt es für alle nachfolgend
in diesem PAD-Befehl plazierten Pads (ausgenommen FIRST, welches nur für
das unmittelbar dieser Option folgende Pad gilt).
Im Dialog 'Copy Properties' des gewählten Objekts selektiert man die Eigenschaften, die auf andere Objekte desselben Typs übertragen werden sollen. Nach Klick auf OK, klickt man auf die Objekte, denen man diese Eigenschaften geben will.
Der Befehl PADARRAY erlaubt es ein Array von Pads im Footprint-Editor der Bibliothek anzulegen.
Wird der Befehl über das Icon in der Parameter-Toolbar des PAD-Befehls gestartet, öffnet sich ein
Dialog, in dem man die Optionen für die Seite, den Basisnamen, Start-Index, Anzahl der Pads usw.
vor dem Anlegen des Arrays festlegt. Wird der Befehl über die Kommandozeile gestartet und dabei
Argumente angegeben, sind folgende Optionen verfügbar.
In der Kommandozeile müssen alle Optionen angegeben werden:
Zu orientation siehe ADD-Befehl.
Mit CUT und PASTE lassen sich Teile einer Zeichnung/Bibliothek kopieren,
auch in eine andere Zeichnung/Bibliothek.
Dabei ist folgendes zu beachten:
Angenommen, Sie haben ein konsistentes Board/Schaltplan-Paar, welches das
Design eines Verstärkers enthält (wobei der Schaltplan auch aus mehreren
Seiten bestehen kann). Wenn Sie jetzt diesen Verstärker mehrmals in Ihr
Projekt einfügen wollen, können Sie dies einfach folgendermaßen erreichen:
Wie bei einer normalen PASTE-Operation auch, behalten Netze beim Einfügen einer
kompletten Datei ihren Namen, wenn sie mit einem Label versehen oder an einem
Supply-Pin angeschlossen sind. Dabei reicht es, wenn das Netz auf einer
Schaltplanseite ein Label hat bzw. an einen Supply-Pin angeschlossen ist,
auch wenn das Netz auf mehreren Seiten vorkommt.
Wird die PASTE-Operation nicht in einer Script-Datei ausgeführt, so wird Ihnen ein
Dialog mit allen Netznamen angeboten. Durch Klicken auf die Namen in der Spalte
"Neuer Name" können Sie einzelne Netznamen editieren. Icons zeigen an, ob ein Netz
ein Label oder einen Supply-Pin hat, und ob es mit einem bestehenden Netz gleichen
Namens in der geladenen Zeichnung verbunden wird.
Wird ein Schaltplan in eine Schaltplan-Zeichnung eingefügt, so werden alle
Seiten des eingefügten Schaltplans als separate, neue Seiten zu der editierten
Zeichnung hinzugefügt.
Das zugehörige Board (falls vorhanden) wird unterhalb des Inhalts des editierten
Boards platziert. Falls Sie genau kontrollieren wollen, wohin das Board platziert
wird, können Sie die PASTE-Operation auch im Board-Editor ausführen. Hierbei
werden die Schaltplanseiten genauso hinzugefügt, aber das Board wird an den
Mauszeiger gehängt und kann wie gewünscht platziert werden.
Bezüglich globaler Einstellungen in den Dateien wie Layer, Netzklassen, Designregeln
und Autorouter-Parameter gilt: Die Einstellungen der aktuell geöffneten Zeichnung behalten
ihre Gültigkeit. Das heißt zum Beispiel, dass bei den eingefügten Daten
die Restring-Parameter der aktuellen Zeichnung verwendet werden,
so dass sich Pads oder Vias von der Quelldatei unterscheiden können.
Auch hierbei ist ein DRC sehr zu empfehlen.
Das Einfügen einer kompletten Datei kann auch mit Drag&Drop geschehen,
wenn dabei die Ctrl-Taste gedrückt wird.
Direction
Default: IO
Wenn Pwr-Pins in einem Symbol vorhanden sind und im Schaltplan ein
entsprechender Sup-Pin existiert, werden die Netze automatisch
eingefügt. Sup-Pins werden nicht in Bauelementen verwendet.
Default: None
Default: Long
Default: R0
Default: Both
Default: 0
Gibt man im PIN-Befehl einen Namen an, dann muss er in Hochkommas
eingeschlossen sein. Pin-Namen kann man im Symbol-Editier-Modus mit
dem NAME-Befehl ändern.
Der SHOW-Befehl zeigt den Namen des Pins sowie Direction und
Swaplevel an.
Drei Pins sollen z.B. GND heißen. Sie geben den Pins bei der
Symbol-Definition die Namen GND@1, GND@2 und GND@3. Im Schaltplan sind
nur die Zeichen vor dem "@" sichtbar, und die Pins werden dort auch so
behandelt, als hießen Sie GND.
Es ist nicht möglich, in einem Symbol, das in einem Device verwendet
wird, nachträglich einen Pin hinzuzufügen oder zu löschen,
da dies die im Device definierten Pin-/Pad-Zuordnungen (CONNECT-Befehl)
verändern würde.
Der Befehl PINARRY erlaubt es ein Pin-Array im Symbol-Editor anzulegen.
Wird der Befehl über das Icon in der Parameterleiste des PIN-Befehls gestartet, öffnet sich
ein Dialog in dem unter anderem die Optionen Sides, Basename, Start Index, und Anzahl der
Pins vor dem Anlegen des Arrays festgelegt werden können. Wird der Befehl von der Kommandozeile
aus gestartet, können die nachfolgend gelisteten Optionen angegeben werden.
Es müssen alle Optionen angegeben werden: Der PINBREAKOUT-Befehl zieht für jedes selektierte Bauteil aus allen Pins für ein kurzes Stück Netze, die optional mit Namen und Labels versehen sein können.
Der name-Parameter muss einem Bauteilnamen im Schaltplan entsprechen. type ist eine Zahl von 1 bis 4, entsprechend der folgenden Liste:
Hinweis: Dieser Befehl mit seinen verschiedenen Optionen ist über das Kontextmenü mit rechtem Mausklick auf ein Bauteil im Schaltplan erreichbar.
Der PINTOBUS-Befehl wird verwendet um automatisch Netze aus allen Pins eines Bauteils
herauszuziehen und diese mit einem nahegelegenen Bus zu verbinden, der die entsprechenden Pin-Namen des Bauteils in seiner Spezifikation enthält.
Der Befehl kann aus der Kommandozeile oder über das Kontextmenü eines Bauteils im Schaltplan gestartet werden.
Hinweis: Damit die Verbindung mit dem Bus klappt, muss dieser entweder vertikal oder horizontal gezeichnet sein.
Hat ein Bauteil beispielsweise auf einer Seite Pins mit den Namen GND und VCC und auf der anderen Seite VIN und
VOUT und verlegt man auf der einen Seite in der Nähe des Symbols einen Bus, der auch die Namen GND und VCC enthält
und auf der anderen Seite entsprechend einen Bus mit VIN und VOUT, verbindet dieser Befehl die Busse mit den entsprechenden Pins automatisch.
Hinweis: Man muss zuerst das Bauteil und die Busse, die man verbinden will, auswählen und dann den Befehl starten.
Andernfalls gibt EAGLE eine entsprechende Meldung aus. Die empfohlene Methode ist zuerst schrittweise die Busse und das Objekt,
das verbunden werden soll mit Ctrl + Klick zu selektieren und dann den Befehl PINTOBUS über die Kommandozeile oder über das Kontextmenü zu starten.
In einem Schaltplan kann man mit diesem Befehl Pins vertauschen, die
zum selben Device gehören und bei der Symbol-Definition denselben
Swaplevel erhalten haben (Swaplevel > 0). Swaplevel siehe PIN-Befehl.
Ist eine Platine über die
Back-Annotation
einem Schaltplan verbunden,
dann lassen sich Pads nur dann vertauschen, wenn die zugehörigen Pins
vertauscht werden können.
In einer Platine, zu der es keinen Schaltplan gibt, lassen sich mit
zwei Pads desselben Package vertauschen. Der Swaplevel
wird dabei nicht geprüft.
Die an den vertauschten Pads angeschlossenen Leitungen wandern
mit, so dass es zu Kurzschlüssen kommen kann. Bitte DRC durchführen
und, falls erforderlich, Fehler korrigieren.
Der POLYGON-Befehl dient zum Zeichnen von Polygonflächen. Polygone
in den Layern Top, Bottom und Route2..15 werden als Signale behandelt.
Polygone in den Layern t/b/vRestrict sind Sperrflächen für den Autorouter.
Wird der curve oder @radius Parameter angegeben, so kann ein Kreisbogen als Teil der Polygondefinition
gezeichnet werden (siehe die ausführliche Beschreibung beim LINE-Befehl).
Falls Sie dem Polygon einen Namen geben wollen, der mit einer Ziffer beginnt
(zum Beispiel 0V), so müssen Sie diesen Namen in Hochkommas einschließen,
um ihn von einem width-Wert zu unterscheiden.
Die Parameter Isolate und Rank sind nur für Polygone in den
Signallayern relevant.
Um ein Missgeschick auszubessern, kann immer die letzte Linie des Polygons
mit der ESCape-Taste entfernt werden.
Im "Urzustand" werden Polygone mit gepunkteten Kontur-Linien dargestellt, um sie von
anderen Linien unterscheiden zu können.
In der Board-Datei (name.brd) ist nur der Urzustand abgespeichert.
Standardmäßig werden alle Polygone am Bildschirm im Urzustand
dargestellt, da das Freirechnen ein rechenintensiver und damit
zeitaufwendiger Vorgang ist. Es werden dabei nur die vom Benutzer
definierten Umrisslinien dargestellt.
Bei der Ausgabe mit dem CAM-Prozessor werden auf jeden Fall alle
Polygone freigerechnet.
Das Freirechnen der Polygone wird mit dem
RATSNEST-Befehl ausgelöst
(mit SET POLYGON_RATSNEST OFF; kann das
verhindert werden).
Ein Klick auf das Stop-Icon bricht das Freirechnen ab.
Alle bis dahin freigerechneten Polygone liegen dann im freigerechneten Zustand vor,
alle anderen (auch das gerade in der Berechnung befindliche!) liegen
im Urzustand vor.
Ein freigerechnetes Polygon kann durch Anklicken mit dem
RIPUP-Befehl
wieder in den Urzustand zurückversetzt werden.
Bei CHANGE-Operationen wird ein Polygon neu freigerechnet, wenn es vor
dem CHANGE bereits freigerechnet war.
SPLIT: fügt neue Polygonkanten ein.
DELETE: löscht eine Polygon-Ecke (falls nur noch drei Ecken vorhanden
sind, wird das ganze Polygon gelöscht).
CHANGE LAYER: ändert den Layer des gesamten Polygons.
CHANGE WIDTH: ändert den Parameter Width des gesamten Polygons.
MOVE: bewegt Polygonkante oder -ecke (wie bei normalen Linienzügen).
COPY: kopiert ganzes Polygon.
NAME: Falls das Polygon in einem Signal-Layer liegt, wird der Name
des Signals geändert.
Unter gewissen Umständen, insbesondere mit Orphans = Off, kann ein
Polygon vollständig verschwinden.
In diesem Fall werden auf dem Bildschirm die Linien im Urzustand
dargestellt um es dem Benutzer zu ermöglichen, das Polygon zu löschen
oder anderweitig zu verändern.
Mit dem Drucker oder dem CAM-Prozessor werden diese Linien nicht ausgegeben,
um keine Kurzschlüsse zu verursachen.
Ein Polygon wird auch dann in seinem Urzustand dargestellt, wenn das Signal
andere nicht-Polygon-Objekte enthält, von denen keines mit dem Polygon verbunden
ist.
Bei der Beurteilung, ob ein solches Objekt tatsächlich eine solide Verbindung
zum schraffierten Polygon hat, wird das Objekt auf einige "Kontrollpunkte" reduziert.
Für ein rundes Pad wären das zum Beispiel der nördliche, östliche, westliche
und südliche Punkt auf seinem Umfang. Für eine Leiterbahn wären es ihre beiden
Endpunkte. Eine solide Verbindung besteht dann, wenn es im berechneten Polygon
mindestens eine Linie (Umriß- oder Schraffurlinie) gibt, deren Mittellinie durch
diese Punkte verläuft.
Thermal- und Annulus-Ringe innerhalb eines schraffierten Polygons, die
keinen soliden Kontakt zu den Polygon-Linien haben, werden nicht erzeugt.
Nur Polygone in Signal-Layern können den Füllmodus "Cutout" haben.
Die Umrisse eines Ausschnitt-Polygons werden auf dem Bildschirm immer als
gepunktete Linien dargestellt, auch nachdem die Signal-Polygone mit dem
RATSNEST-Befehl freigerechnet wurden.
Die Linienbreite eines Ausschnitts-Polygons wird beim Sutrahieren von den anderen
Signal-Polygonen berücksichtigt. Sie kann beliebig klein sein (auch Null), ohne
dass große CAM-Datenmengen verursacht werden (anders als bei "Solid"-Polygonen,
bei denen die Linienbreite nicht zu klein gewählt werden sollte).
Der PORT-Befehl wird verwendet, um in hierarchischen Schaltplänen Ports zu
Modulen hinzuzufügen.
Die Lage und Orientierung werden bezogen auf die nächstgelegene Modulseite automatisch
ermittelt.
Ein Port kann ein Netz eines Moduls exportieren und stellt einen Anschlusspunkt für ein
weiteres Netz zur Verfügung. Ein dort angeschlossenes Netz stellt den Namen und die
Netzklasse zur Verfügung.
Name und Klasse des Netzes im Modul werden also damit überschrieben.
Wird für net_name ein einfacher Busname verwendet (siehe Namen),
exportiert der Port alle diese Netze auf einmal und stellt einen Anschlusspunkt
für einen passenden Bus zur Verfügung.
Der Name kann auch ein einfacher Bus-Name mit nur einem Bereich sein,
wie z.B. 'PA[0..7]' (Synonyme sind hier nicht erlaubt).
Default: IO
Die Direction von bereits vorhandenen Ports kann hiermit auch verändert werden.
Der INFO-Befehl kann verwendet werden, um die Eigenschaften
von Ports zu verändern. Hierzu erfolgt die Selektion ebenfalls mit
Der DELETE-Befehl kann zum Löschen eines Ports durch
Selektion mit
Bei angeschlossenem Netz kann die Selektion mehrdeutig sein. Benutzen Sie hierbei bitte
Dieser Befehl wird im Device-Editier-Modus angewendet. Er legt fest,
mit welchem Zeichen oder welcher Zeichenfolge der automatisch
vergebene Name beginnen soll, wenn das Element mit dem ADD-Befehl
im Schaltplan plaziert wird.
Wenn ein Modul editiert wird, kann dieser Befehl zum Ändern des Präfix des
Moduls verwendet werden.
Der PRINT-Befehl druckt die gerade editierte Zeichnung auf dem
System-Drucker aus.
Farben und Füllmuster werden aus dem Editor-Fenster übernommen, falls
nicht die Optionen SOLID oder BLACK angegeben werden.
Als Farbpalette wird beim Ausdruck immer diejenige für weißen Hintergrund verwendet.
Wenn Sie Pads und Vias "ausgefüllt" drucken wollen (ohne sichtbare Bohrlöcher),
benutzen Sie den Befehl
Es kann ein factor angegeben werden um die Ausgabe zu skalieren.
Mit dem Parameter limit kann die maximale Anzahl von Blättern
angegeben werden, die für die Ausgabe verwendet werden soll.
Diese Zahl muss mit einem vorangestellten '-' angegeben werden,
um sie vom factor unterscheiden zu können.
Sollte die Zeichnung nicht auf die vorgegebene Anzahl von Blättern passen,
so wird der factor so lange verkleinert, bis sie gerade noch passt.
Setzen Sie diesen Parameter auf -0 um beliebig viele Blätter zuzulassen
(und damit sicherzustellen, dass der Ausdruck genau mit dem angegebenen Faktor
skaliert wird).
Wird der PRINT-Befehl nicht mit einem ';' abgeschlossen, so
erscheint ein Druck-Dialog in dem
alle Druck-Optionen eingestellt werden können.
Bitte beachten Sie, dass Optionen, die über die Kommandozeile eingegeben wurden,
nur dann dauerhaft in den Druckeinstellungen gespeichert werden, wenn sie über
den Druck-Dialog bestätigt wurden (d.h. wenn der
Befehl nicht mit einem ';' abgeschlossen wurde).
Folgende options stehen zur Verfügung:
Wird einer der options MIRROR...CAPTION ein '-' vorangestellt, so wird diese Option ausgeschaltet,
falls sie zur Zeit eingeschaltet ist (von einem vorhergehenden PRINT).
Ein '-' allein schaltet alle options aus.
Hat der Dateiname die Extension ".pdf" (wobei die Groß-/Kleinschreibung keine Rolle spielt),
so wird eine PDF-Datei erzeugt. Eine PDF-Datei kann auch durch Auswahl von "In Datei drucken (PDF)"
aus der "Drucker" Combo-Box im Druck-Dialog erzeugt werden.
Texte in einer PDF-Datei können in einem PDF-Betrachter durchsucht werden, solange
sie nicht den Vektor-Font verwenden.
Hat der Dateiname die Extension ".ps" (wobei die Groß-/Kleinschreibung keine Rolle spielt),
so wird eine Postscript-Datei erzeugt.
Besteht der Dateiname nur aus einem "*" oder "*.ext" (ein Stern gefolgt von einer
Extension, wie etwa "*.pdf"), so wird ein Datei-Dialog geöffnet über den der Benutzer
den tatsächlichen Dateinamen auswählen oder eingeben kann.
Besteht der Dateiname nur aus einer Extension, wie etwa ".pdf", so wird der Name
der Ausgabedatei aus dem Namen der Zeichnungsdatei gebildet, indem dessen Extension durch
den angegebenen String ersetzt wird.
Der Dateiname kann einen oder mehrere der folgenden Platzhalter enthalten, die
durch den entsprechenden Text ersetzt werden:
Zum Beispiel würde der Dateiname
%N.cmp.pdf
den Namen boardname.cmp.pdf erzeugen.
Wurde sowohl die FILE als auch die PRINTER Option angegeben, so wird
nur die zuletzt angegebene berücksichtigt.
Sie können das Programm von jeder Stelle aus mit Alt+X verlassen.
Der RATSNEST-Befehl berechnet die Luftlinien neu, damit man z. B.
nach einer Änderung der Bauelemente-Plazierung wieder die kürzesten
Verbindungen erhält. Auch nach dem Einlesen einer Netzliste (mit
dem SCRIPT-Befehl) ist es sinnvoll, den RATSNEST-Befehl aufzurufen,
da dabei im allgemeinen nicht die kürzesten Luftlinien entstehen.
Der RATSNEST-Befehl berechnet auch alle Polygone neu, die zu einem
Signal gehören. Dies ist notwendig, damit für bereits durch
Polygonflächen verbundene Pads keine Luftlinien mehr erzeugt werden.
Alle zugehörigen Polygonflächen sind dann in realer Darstellung zu sehen.
Auf Umriss-Darstellung kann mit
dem RIPUP-Befehl gewechselt werden.
Die automatische Berechnung der Polygone kann mit
Beachten Sie bitte, dass RATSNEST die Board-Zeichnung nicht als verändert
kennzeichnet, da die berechneten Polygon-Daten (falls vorhanden) nicht
in der Datei abgespeichert werden, und die neuberechneten Luftlinien
keine wirkliche Veränderung der Zeichnung darstellen.
Solche Luftlinien der Länge Null können mit dem
ROUTE-Befehl wie andere Luftlinien
angeklickt werden. Top- und Bottom-Seite können an diesen Stellen auch
durch Plazieren eines
Vias verbunden werden.
Soll eines dieser Zeichen genau so gesucht werden, wie es ist, so muss es in eckige Klammern
eingeschlossen werden. Zum Beispiel findet abc[*]ghi die Zeichenfolge abc*ghi,
aber nicht abcdefghi.
Ein Bereich von Zeichen kann als [a-z] angegeben werden, was für eines der Zeichen
aus dem Bereich 'a'...'z' steht.
Um Luftlinien auszublenden kann der RATSNEST-Befehl mit einem Ausrufezeichen
('!'), gefolgt von einer Liste von Signalnamen, aufgerufen werden:
Die Signalnamen können Platzhalter enthalten, und die beiden Varianten können
kombiniert werden, wie in
Ausgeblendete Luftlinien werden mit SHOW nicht angezeigt
und können auch nicht selektiert werden.
Um sicherzustellen, dass alle Luftlinien eingeblendet sind, geben Sie ein
Mit diesem Befehl zeichnet man Rechtecke in den aktiven Layer. Die
beiden Punkte legen gegenüberliegende Ecken des Rechtecks fest.
Die mittlere Maustaste wechselt den aktiven Layer.
Die orientation (siehe Beschreibung bei ADD)
darf jeder Winkel im Bereich R0...R359.9 sein. Das S-
bzw. M-Flag kann hier nicht benutzt werden.
Beachten Sie bitte, dass die Koordinaten immer bezogen auf einen Winkel R0
angegeben werden. Die Möglichkeit der Eingabe eines Winkels beim RECT-Befehl
ist hauptsächlich für die Benutzung in Scripts vorgesehen, wobei die Daten
des Rechtecks etwa durch ein User Language Programm aus dem
UL_RECTANGLE-Objekt ermittelt wurden.
Bei interaktiver Eingabe eines Winkels ungleich 0 kann es sein, dass die
Ecken des Rechtecks nicht an der aktuellen Position des Mauszeigers erscheinen.
Benutzen Sie den ROTATE-Befehl um ein Rechteck
interaktiv zu drehen.
Die mit UNDO rückgängig gemachten Befehle lassen sich mit
REDO erneut ausführen. Damit kann man ganze Abläufe rekonstruieren.
Die Befehle EDIT, OPEN und REMOVE löschen die Vorgeschichte.
UNDO/REDO ist vollkommen in den Mechanismus der Forward&Back-Annotation
integriert.
Symbole/Packages lassen sich nur löschen, wenn sie in keinem Device verwendet werden.
Ist ein Symbol, Device oder Package zum Editieren geladen, wirkt der
Befehl auf den entsprechenden Typ. Ansonsten werden die Namen als
Device-Namen interpretiert, falls das Schaltplan-Modul vorhanden ist,
und als Package-Namen, falls kein Schaltplan-Modul vorhanden ist.
REMOVE im Bibliotheks-Editier-Modus löscht den Undo-Puffer.
In der Syntax-Beschreibung entspricht xx der Nummer der zu
löschenden Seite. Falls xx gleich der Nummer
der gerade editierten Seite ist, wird Seite Nummer 1 geladen. Alle
Seiten mit Nummern, die größer sind als xx , erhalten
eine um 1 verminderte Nummer.
Mit RENAME kann der Name eines Symbols, Device oder Package geändert
werden. Die Bibliothek muss vorher mit OPEN geöffnet worden
sein.
Der Name darf mit der Namenserweiterung angegeben werden (zum Beispiel
RENAME name1.pac name2[.pac] - die Erweiterung im zweiten Parameter ist
optional). Wird der erste Parameter ohne Erweiterung angegeben, müssen Sie
sich im entsprechenden Editier-Modus (z. B. im Package-Modus um Packages
umzubenennen) befinden.
RENAME löscht den Undo-Puffer.
Der REPLACE-Befehl kann dazu benutzt werden, ein Bauteil gegen ein anderes
(auch aus einer anderen Bibliothek) auszutauschen. Altes und neues Bauteil
müssen kompatibel sein, das heisst ihre benutzten Gatter und angeschlossenen
Pins bzw. Pads müssen entweder über ihre Namen oder ihre Koordinaten
zusammenpassen.
Ohne Parameter öffnet der REPLACE-Befehl einen Dialog, über den ein Bauteil
aus allen momentan in Verwendung befindlichen
Bibliotheken ausgewählt werden kann. Nach dieser Auswahl führen weitere
Mausklicks auf Bauteile dazu, dass diese (soweit möglich) gegen das ausgewählte
Bauteil getauscht werden.
Wird ein device_name angegeben, so wird dieses Bibliothekselement für die
Austausch-Operation verwendet.
Wird sowohl ein part_name als auch ein device_name
angegeben, so wird das Bauteil part_name gegen das Bibliothekselement
device_name ausgetauscht (was nützlich ist, wenn mit Skripten
gearbeitet wird).
Falls ein library_name angegeben wird und dieser Leerzeichen enthält, so muss der ganze
device_name@library_name in einfache Hochkommas eingeschlossen werden.
Das 3D-Package des Devices kann über die Syntax P3D=3d_package gewählt werden.
3d_package kann entweder der Name oder der URN des zugeordneten 3D-Packages sein.
Bei der Angabe spielt Groß-/Kleinschreibung keine Rolle; es werden keine Platzhalter unterstützt.
Falls nur ein Board (ohne Schaltplan) bearbeitet wird, oder falls Bauteile
im Board ersetzt werden sollen die kein entsprechendes Bauteil im Schaltplan
haben, so kennt REPLACE-Befehl zwei verschiedene Betriebsarten, die mit
dem SET-Befehl eingestellt werden.
Das neue Package kann aus einer anderen Bibliothek stammen, und es darf
zusätzliche Pads und Smds enthalten. Die Lage der Anschlüsse ist
beliebig.
Anschlüsse des alten Package, die mit Signalen verbunden sind, müssen
entsprechend auch im neuen Package vorhanden sein. Das neue Package
darf auch weniger Anschlüsse haben, solange diese Bedingung erfüllt
ist.
Das neue Package kann aus einer anderen Bibliothek stammen, und es darf
zusätzliche Pads und Smds enthalten. Anschlüsse des alten Package, die
mit Signalen verbunden sind, müssen entsprechend auch im neuen Package
vorhanden sein. Das neue Package darf auch weniger Anschlüsse haben,
solange diese Bedingung erfüllt ist.
REPLACE funktioniert nur mit eingeblendetem tOrigins- bzw.
bOrigins-Layer.
Existiert bereits ein Package mit demselben Namen (aus derselben Bibliothek) in der Zeichnung,
und wurde die Bibliothek seit dem Plazieren des Bauteils modifiziert, wird automatisch ein
Library-Update gestartet. Dabei werden Sie gefragt, ob die
Objekte in der Zeichnung durch die neueren aus der Bibliothek ersetzt werden sollen.
Achtung: Eine REPLACE-Operation aktualisiert automatisch je nach Bedarf alle
betroffenen Bibliotheksobjekte. Dies bedeutet, dass auch andere Bauteile (auf
anderen Schaltplanseiten oder an anderen Stellen des Boards) verändert werden
können.
Starten Sie den Design Rule Check (DRC) und den
Electrical Rule Check (ERC) nach jeder REPLACE-Operation!
Der Befehl RIPUP wird dazu verwendet, bereits verlegte Signale wieder
in Luftlinien zu verwandeln. Der Befehl kann verwendet werden für:
Achtung: in allen Fällen wirkt der RIPUP-Befehl nur auf Objekte in
Layern, die momentan eingeblendet sind!
Soll eines dieser Zeichen genau so gesucht werden, wie es ist, so muss es in eckige Klammern
eingeschlossen werden. Zum Beispiel findet abc[*]ghi die Zeichenfolge abc*ghi,
aber nicht abcdefghi.
Ein Bereich von Zeichen kann als [a-z] angegeben werden, was für eines der Zeichen
aus dem Bereich 'a'...'z' steht.
Mit dem ROTATE-Befehl kann man die Orientierung von Objekten ändern.
Wird orientation (siehe Beschreibung bei ADD)
angegeben, so wird stattdessen die angegebene Orientation zu der Orientation des
selektierten Objektes hinzugefügt.
Wird der angegebenen orientation das Zeichen '=' vorangestellt, so
wird der Wert nicht hinzugefügt, sondern absolut eingestellt.
Bauteile, Pads, Smds und Pins lassen sich
auch mit ihrem Namen selektieren. Das ist vor allem dann nützlich,
wenn sich das Objekt ausserhalb des gerade dargestellten Bildausschnitts
befindet.
Zum Beispiel würde
die Orientierung des Elements IC1 auf MR90 einstellen, unabhängig davon, welchen
Wert diese vorher hatte.
Attribute von Bauteilen können dadurch selektiert werden, dass die Kombination
aus Bauteilname und Attributname angegeben wird, wie etwa R5>VALUE.
Die Hochkommas um name sind nötig zur Unterscheidung vom Wert der Orientierung wie in
Mit Click&Drag können Sie ein Objekt um einen beliebigen Winkel drehen.
Klicken Sie dazu auf das Objekt und bewegen Sie die Maus (mit gedrückter Maustaste)
vom Objekt weg. Nachdem Sie die Maus eine kurze Strecke bewegt haben beginnt das
Objekt sich zu drehen. Bewegen Sie die Maus bis der gewünschte Winkel erreicht ist
und lassen Sie dann die Maustaste los. Sollten Sie es sich zwischenzeitlich anders
überlegt haben und das Objekt lieber doch nicht rotieren wollen, so können Sie (bei
immer noch gedrückter Maustaste) die Esc-Taste drücken um den Vorgang abzubrechen.
Die gleiche Operation kann auch auf eine Gruppe angewendet werden indem die rechte
Maustaste verwendet wird. Die Gruppe wird um den Punkt rotiert, an dem die
Maustaste gedrückt wurde.
Bauteile können nicht rotiert werden, wenn sie gelockt sind,
oder wenn eines ihrer angeschlossenen Pads aus der erlaubten Fläche hinausstehen würde
(falls sie eine eingeschränkte Version von EAGLE verwenden).
Elemente lassen sich nur drehen, wenn der tOrigins- bzw. der
bOrigins-Layer sichtbar ist.
Wenn Sie einen Text "auf dem Kopf stehend" darstellen wollen, so können
Sie das "Spin"-Flag für diesen Text setzen.
Siehe auch AUTO,
FANOUT,
UNDO,
LINE,
MITER,
SIGNAL,
SET,
RATSNEST
Der ROUTE-Befehl dient dazu, die unverdrahteten Signale (dargestellt
als Luftlinien im Unrouted-Layer) in Leiterbahnen umzuwandeln.
Ist der ROUTE-Befehl aktiviert, kann die Breite (width) der entstehenden
Leiterbahn unmittelbar von der Tastatur aus eingegeben werden.
Nachdem man den ROUTE-Befehl aktiviert hat, setzt man
den ersten Punkt an einem Ende der Luftlinie an und bewegt den Mauszeiger
in die Richtung, in die man die Leitung legen will. EAGLE ersetzt
dann die Luftlinie durch eine Linie oder zwei Linien-Stücke
(je nach eingestelltem Knickwinkel) im gerade aktiven Signal-Layer.
Die linke Maustaste erneut betätigt, setzt das Leitungsstück ab.
Wird beim Absetzen die Shift-Taste gedrückt, so wird (falls möglich und die
Luftlinie nicht bereits ohnehin komplett geroutet ist) ein Via an der Absetzstelle
gesetzt (entweder mit passender Länge oder, falls sich eine solche nicht ermitteln
lässt, durchgehend von Layer 1 bis 16).
Mit der mittleren Maustaste wechselt man die Ebene. Durchkontaktierungen
(Vias) werden automatisch gesetzt.
Bitte beachten Sie, dass von den Signal-Layern (1 bis 16) nur diejenigen
zur Verfügung stehen, die im Layer-Setup in den Design Rules
eingetragen sind.
Es wird nur das minimal nötige Via (gemäß dem Layer-Setup in den Design Rules) gesetzt.
Dabei kann es vorkommen, dass ein bereits vorhandenes Via des selben Signals
entsprechend verlängert wird, oder dass vorhandene Vias zusammengefasst werden um ein
längeres Via zu bilden, falls dies nötig ist um den gewünschten Layer-Übergang zu
ermöglichen.
Wird ein Via am Anfangs- oder Endpunkt gesetzt und es befindet sich an dieser Stelle
ein SMD-Pad, so wird ein Micro-Via erzeugt falls der aktuelle Route-Layer
eine Ebene vom Layer des SMDs entfernt ist (dies trifft nur dann zu wenn in den
Design Rules Micro-Vias erlaubt sind).
Die rechte Maustaste ändert den Knickwinkel (siehe SET Wire_Bend).
Ist eine Luftlinie komplett verdrahtet, ertönt ein Piepston.
Wird der curve oder @radius Parameter angegeben, so kann ein Kreisbogen als Teil des Leiterbahnzugs
gezeichnet werden (siehe die ausführliche Beschreibung beim LINE-Befehl).
Wird der Startpunkt mit gedrückter Ctrl-Taste angeklickt und befindet sich
dort keine Luftlinie, so wird automatisch eine neue Luftlinie erzeugt. Der Startpunkt
dieser Luftlinie ist derjenige Punkt auf der selektierten Leiterbahn (oder Via), die dem Mauszeiger
am nächsten liegt (möglicherweise auf den nächstgelegenen Rasterpunkt geschnappt).
Das ferne Ende der Luftlinie zeigt dynamisch auf ein Zielsegment, welches nicht das
ausgewählte Segment ist. Sollte das selektierte Signal bereits vollständig geroutet
sein, so zeigt das ferne Ende zum Startpunkt.
Ist die selektierte Linie ein Kreisbogen, so beginnt die Luftlinie am nächstgelegenen
Endpunkt der Leiterbahn.
Wird ein name angegeben, so wird die Luftlinie dieses Signals selektiert,
die dem Mauszeiger am nächsten liegt. Falls name als with,
curve oder @radius Parameter interpretiert werden könnte, so muss
er in Hochkommas eingeschlossen werden.
Hindernisse ignorieren (SET OBSTACLE_MODE IGNORE)
Im Modus "Hindernisse ignorieren" dürfen Sie Leiterbahnen und Vias an beliebigen Stellen im
Layout platzieren, unabhängig von den Design-Regeln. Bitte achten Sie sorgfältig darauf, dass
Sie beim Verlegen im Modus "Hindernisse ignorieren" keine Kurzschlüsse mit den nächstgelegenen
Objekten verursachen.
Hindernisse umgehen (SET OBSTACLE_MODE WALKAROUND)
"Hindernisse umgehen" erlaubt es Leiterbahnen und Vias Design-Regel-konform zu verlegen.
Dieser Modus erkennt Hindernisse, die auf dem Weg Ihrer Leiterbahn liegen und umgeht
diese automatisch. Wenn Sie in diesem Modus den Layer wechseln wollen und ein Via notwendig wird,
findet der Befehl die nächstgelegene mögliche Position für die Durchkontaktierung (wieder im Einklang
mit den Design-Regeln).
Hindernisse verschieben (SET OBSTACLE_MODE PUSH)
Dieser Modus folgt den Design-Regeln und schiebt bewegbare Hindernisse zur Seite um
Platz für die zu verlegenden Leiterbahnen zu schaffen. Wenn man im Modus "Hindernisse verschieben"
den Layer wechselt, werden auch Objekte zur Seite geschoben um Raum für die Durchkontaktierung
zu schaffen.
Wenn Sie im Modus "Hindernisse umgehen" oder "Hindernisse verschieben" im Board in
Bereichen mit vielen vorverlegten Leiterbahnen, werden Sie gelegentlich Bedingungen
vorfinden bei denen ROUTE keinen Pfad zur aktuellen Cursorposition für die Leiterbahn
finden kann. In diesem Fall wird am Ende der aktuellen Leiterbahn ein Fehler-Indikator
angezeigt, der darüber informiert, dass der Routingversuch an die gewünschten Position
fehlgeschlagen ist.
Quick Route Airwire (SET ROUTE_MODE QUICK_ROUTE_AIRWIRE)
Im Modus "Quick Route Airwire" wählt man individuelle Luftlinien, die verlegt werden sollen
und ROUTE verlegt diese unverzüglich automatisch. Sofern eine nahegelegene Luftlinie eindeutig
zugeordnet werden kann, ist es auch möglich auf eine bestehende Leiterbahn, ein Pad oder Via
zu klicken um diese zu verlegen.
Quick Route Signal (SET ROUTE_MODE QUICK_ROUTE_SIGNAL)
In diesem Modus wählen Sie beliebige Signal-Objekte (Luftlinien, Leiterbahnen, Pads oder Vias)
und der ROUTE-Befehl beginnt unverzüglich alle Luftlinien, die zu diesem Signal gehören.
Werden keine Luftlinien gefunden, zeigt der ROUTE-Befehl eine Fehlermeldung.
Quick Route Multi-Signals (SET ROUTE_MODE QUICK_ROUTE_MULTISIGNAL)
Im "Quick Route Multi-Signals"-Modus zeichnen Sie zuerst eine Auswahl-Linie, die alle Signalobjekte
schneidet, die Sie simultan verlegen lassen wollen (vorhandene Wires, Pads und Vias). Zeichnen Sie
weitere Auswahl-Linien um weitere Objekte zu selektieren. Mit der Esc-Taste löschen Sie die bisherige
Auswahl und beginnen erneut. Mit der Enter-Taste können Sie alle an die ausgewählten Signale
angeschlossenen Luftlinien routen.
Smooth Signal (SET ROUTE_MODE SIGNAL_CLEANUP)
Im Modus "Smooth Signal" kann man eine bestehende Leiterbahn wählen und der ROUTE-Befehl
glättet den Leiterzug im angewählten Layer indem die Anzahl der Knickpunkte reduziert wird.
Im Design Manager kann man einen oder mehrere Signal- oder Luftlinien-Einträge wählen und dann mit
Rechtsklick + Quick Route diese im vom ROUTE-Befehl aktuell eingestellten Layer verlegen lassen.
Wenn das Startobjekt beim Routen ein Multilayer-Objekt ist (also von mehreren
Signallayern aus losgeroutet werden kann), kann man mit Ctrl+Leertaste
bzw. Ctrl+Shift+Leertaste vorwärts bzw. rückwärts durch die Layer
schalten.
Beim Selektieren einer Luftlinie wird die Linienbreite
zum Routen auf den Wert gesetzt, der sich aus den Design-Regeln und der
Netzklasse des selektierten Signals ergibt, wenn der Schalter "Optionen/Einstellungen/Verschiedenes/Width und Drill bei
Route autom. setzen" eingeschaltet ist.
Während die Luftlinie am Cursor
hängt können Sie eine andere Breite einstellen, und die Verbindung wird dann
mit der neuen Breite berechnet. Gleiches gilt für die Daten von Vias.
Wenn eine Luftlinie geroutet wird, die an einer bereits verlegten Leiterbahn
beginnt, so übernimmt die neu verlegte Leiterbahn die Breite der bereits
existierenden Leiterbahn, wenn beim Selektieren der Luftlinie die Shift-Taste
gedrückt wird.
Der neue Leiterbahnverlauf kann an einem Pad, einem Via, einem Knickpunkt
oder in der Mitte einer Linie beginnen und in gleicher Weise an einer Linie, Via
oder Pad enden.
Standardmäßig ist der Loop-Removal-Modus eingeschaltet.
Es gelten folgende Bedingungen für das Entfernen unnötiger Schleifen:
Folgende Besonderheiten gelten:
Der RUN-Befehl startet das User-Language-Programm mit dem Namen file_name.
Von einem Kontextmenü aus gestartet wird das entsprechende Objekt einer Gruppe zugeordnet.
Es ist mit der Builtin-Funktion ingroup() identifizierbar
für weitere Verarbeitung. Im Falle eines Wire werden dabei die Gruppen-Bits entsprechend dem Selektionszustand gesetzt
(erster, zweiter oder beide Endpunkte). Das erlaubt zu bestimmen, welcher Endpunkt selektiert wurde.
Eine vorherige Gruppen-Definition wird dadurch ungültig.
Der SCRIPT-Befehl stellt eine Möglichkeit dar, Befehlssequenzen
auszuführen, die in einer Datei abgelegt sind. Gibt man den Befehl
über die Tastatur ein, so wird, falls keine Extension angegeben
wurde, ".scr" als Default verwendet.
Bitte beachten Sie die Möglichkeiten des EXPORT-Befehls im Zusammenhang mit Script-Dateien!
Wählt man den Befehl mit Hilfe der Maus, dann zeigt ein Popup-Menü
alle Dateien mit der Erweiterung .scr an. Man kann dann die
gewünschte Datei auswählen.
Der SCRIPT-Befehl bietet die Möglichkeit, das Programm
an individuelle Bedürfnisse anzupassen. Unter
anderem kann man damit:
EDITOR:
wobei EDITOR einer der Schlüsselwörter SCH, BRD, LBR, DEV, PAC oder SYM sein kann.
Das stellt sicher, dass nur der entsprechende Abschnitt im entsprechenden Editor ausgeführt wird.
Wenn zum Beispiel ein neues Board geöffnet wird, wird nur der Abschnitt ausgeführt, der mit
BRD: beginnt (bis zum nächsten Label, falls vorhanden). Dies eröffnet die Möglichkeit von
editorspezifischen Menüs mit Hilfe des MENU Befehls.
Das Label muss am Zeilenanfang stehen.
Wird der SET-Befehl ohne Parameter aufgerufen, so erscheint ein Dialog
in dem alle Parameter eingestellt werden können.
Die Farbpaletten können entweder über den Dialog unter
"Optionen/Einstellungen/Farben" verändert werden, oder mittels des Befehls
Standardmäßig werden nur die Paletten-Einträge 0..15 benutzt und diese
enthalten die unten aufgeführten Farben.
Die Paletten-Einträge sind unterteilt in "normale" und "hervorgehobene"
Farben. Es gibt immer 8 "normale" Farben, gefolgt von den 8 zugehörigen
"hervorgehobenen" Farben. Die Farben 0..7 sind somit "normale" Farben,
8..15 sind ihre "hervorgehobenen" Werte, 16..23 sind weitere 8 "normale"
Farben mit 24..31 als deren "hervorgehobene" Werte und so weiter. Die
"hervorgehobenen" Farben werden benutzt um Objekte hervorzuheben, wie zum
Beispiel im SHOW-Befehl.
Color, geordnet nach Farbnummern, die anstelle von
color verwendet werden können. Damit legt man die Farbe fest:
Fill legt die Art fest, wie Linien und Rectangles in einem
bestimmten Layer gefüllt werden sollen. Auch dieser Parameter kann
durch die am Anfang der Zeile stehende Zahl ersetzt werden:
Zur Bestätigung von Dialogen mit zusätzlichen Optionen (z.B. Umbenennen eines
Netz-Segments oder eines Signal-Polygons) gibt es die Schlüsselwörter OPT1..9.
Sie sollten nicht ein SET CONFIRM YES an den Anfang eines Scripts
setzen und dann viele Befehle "im Stillen" ausführen. Besser ist es, dies
gezielt auf einzelne Befehle anzuwenden, wie in
Beispiel
Der SHOW-Befehl dient zum Hervorheben von Objekten.
Einzelheiten werden in der Statuszeile aufgelistet.
Mit SHOW kann man auch ganze Signale und Netze
hervorheben (auf dem Bildschirm heller dargestellt).
Wird ein Bus ausgewählt, so werden auch alle zu diesem Bus gehörenden
Netze hervorgehoben.
Werden mehrere Namen in einer Zeile eingegeben, so werden alle entsprechenden
Objekte gleichzeitig hell dargestellt.
Soll eines dieser Zeichen genau so gesucht werden, wie es ist, so muss es in eckige Klammern
eingeschlossen werden. Zum Beispiel findet abc[*]ghi die Zeichenfolge abc*ghi,
aber nicht abcdefghi.
Ein Bereich von Zeichen kann als [a-z] angegeben werden, was für eines der Zeichen
aus dem Bereich 'a'...'z' steht.
Die spezielle Zeichenfolge [Zahl..Zahl] stellt einen Busnamen mit Index
dar und wird deshalb im Schaltplan nicht als Platzhalter behandelt.
Mit dem SIGNAL-Befehl definiert man Signale, also die Verbindungen
zwischen den Anschlüssen der Packages. Es sind mindestens zwei
Stützstellen anzugeben, da sonst keine Luftlinie entstehen kann.
Gibt man signal_name mit ein, dann erhält das Signal den
angegebenen Namen.
Verwenden Sie den Befehl SPLINE, um eine Spline-Kurve der dritten Ordnung im Board zu zeichnen.
Splines können derzeit nur im Layer Dimension verwendet werden. Bei der Platzierung einer
Spline, definiert man einen Startpunkt, bis zu zwei Kontrollpunkte und einen Endpunkt. Um eine
Spline-Definition mit weniger als zwei Kontrollpunkten zu beenden, dupliziert man den letzten
Punkt, um anzuzeigen, dass es sich um einen Endpunkt handelt.
Den SLICE-Befehl verwendet man, um eine oder mehrere Linien in Teile zu "schneiden".
Der Befehl kann für Leiterbahnen im Layout aber auch für Netze im Schaltplan verwendet werden.
Der Parameter 'width' bestimmt die Größe der Lücke; diese muss aber mindestens
die doppelte Breite der Linie (Leiterbahn) betragen.
Luftlinien und Polygonlinien werden nicht aufgetrennt.
Den REPOSITION-Befehl wendet man auf Bauteile an, damit man anschließend die
zugehörigen Texte, die den aktuellen Namen, Wert bzw. Attribute repräsentieren,
separat bewegen kann (in derselben Weise wie beim früheren SMASH-Befehl).
Der Text kann dann an einer fixen Position (oben links, oben, oben rechts, links,
zentral, rechts, unten links, unten, unten rechts) oder an einer neuen geeigneteren
Stelle mit MOVE platziert werden.
Bauteile lassen sich auch mit ihrem Namen selektieren. Das ist vor allem dann nützlich, wenn
sich das Objekt ausserhalb des gerade dargestellten Bildausschnitts befindet. Beim Selektieren
eines aus mehreren Gattern bestehenden Bauteils im Schaltplan muss der volle, aus dem Bauteil- und
dem jeweiligen Gatternamen bestehende Name angegeben werden.
Nach dem REPOSITION-Befehl kann man diese Texte behandeln wie alle anderen Texte.
Allerdings lässt sich der aktuelle Inhalt nicht verändern.
Ein "gesmashtes" Element kann in den "nicht gesmashten" Zustand zurückgeführt werden, indem es
bei gedrückter Shift-Taste (und natürlich aktiviertem REPOSITION-Befehl) angeklickt wird.
Smd: Anschlussfläche für SMD-Bauelemente.
Der SMD-Befehl plaziert einen SMD-Anschluss in einem Package. Die
Eingabe der Länge und Breite vor dem Plazieren ändert die
Größe des Smds. Die Parameter werden in der aktuellen Maßeinheit
angegeben. Sie dürfen maximal 200 mm (ca. 7.7840 Zoll) betragen.
Die orientation (siehe Beschreibung bei ADD)
darf jeder Winkel im Bereich R0...R359.9 sein. Das S-
bzw. M-Flag kann hier nicht benutzt werden.
Die eingegebene Smd-Größe bleibt für nachfolgende Operationen
erhalten.
Hierbei gelten folgende Bedingungen:
Standardmäßig generieren Smds automatisch Lötstopmaske, Lotpastenmaske und Thermals.
In speziellen Fällen kann es jedoch erwünscht sein, dass einzelne Smds dies nicht tun.
Die obigen NO...-Flags können benutzt werden um diese Eigenschaften zu
unterdrücken. Der Befehl SMDARRAY erlaubt es ein Array von SMDs im Footprint-Editor der Bibliothek anzulegen.
Wird der Befehl über das Icon in der Parameter-Toolbar des SMD-Befehls gestartet, öffnet sich ein
Dialog, in dem man die Optionen für die Seite, den Basisnamen, Start-Index, Anzahl der SMDs usw.
vor dem Anlegen des Arrays festlegt. Wird der Befehl über die Kommandozeile gestartet und dabei
Argumente angegeben, sind folgende Optionen verfügbar.
In der Kommandozeile müssen alle Optionen angegeben werden:
Dieser Befehl wird verwendet um den Wert für ein spice-kompatibles Part zu setzen (gültig
for Parts mit spice Präfix V oder I). DC-, AC- und Transient-Funktion (Sinus, Exponential und Puls)
sind im Dialog verfügbar. Der Anwender kann den Wert immer direkt für gültige Source-Values
setzen. Ist ein Bauteil noch nicht spice-kompatibel, wird zuerst MAKESPICE
gestartet um das Bauteil zu konvertieren bevor die Einstellungen getroffen werden können.
EAGLE provides 1, 4, and 8-output digital source parts ready to use in the ngspice-digital
library for your convenience and the DSOURCESETUP command is used to configure it.
If you want convert an arbitrary device to work as a digital source, you need to map it to a
subcircuit SPICE model that contains the d_source digital model inside of it. The DRIVERD1,
DRIVERD4, and DRIVERD8 models are provided in the example models directory for you
and provide a template for how to use the d_source ngspice model. The model can be adjusted to include
any number of outputs. Consult the ngspice manual for more detail on the d_source model.
Consult the ngspice manual included in the EAGLE install directory for more details on digital source parts.
Den SPLIT-Befehl benötigt man, wenn nachträglich in Linien oder
Polygonen noch eine Abknickung erforderlich ist. SPLIT teilt Linien am
Anklickpunkt. Das kürzere Stück verläuft gemäß dem eingestellten
Knickwinkel (Wire_Bend), das längere verläuft in gerader Linie zum
nächsten Aufhängepunkt.
Wird der curve oder @radius Parameter angegeben, so kann ein Kreisbogen als Teil des Linienzuges
gezeichnet werden (siehe die ausführliche Beschreibung beim LINE-Befehl).
Nach dem SPLIT-Befehl werden die betroffenen
Linien-Segmente wieder optimiert (entsprechend dem OPTIMIZE-Befehl),
sofern nicht zuvor der Befehl
Der SYNCFUSION-Befehl wird verwendet um ein Board mit einem Fusion PCB-Modell zu synchronisieren.
Der Anwender kann damit einfach eine 3D-Darstellung eines Layouts erstellen.
Wenn ein Board in EAGLE editiert wird, kann man mit diesem Befehl die Änderungen ins Fusion-PCB-Modell schieben.
Wird ein Board in Fusion editiert, zieht man das veränderte PCB-Design in EAGLE.
Im Board wird ein Link zum PCB-Modell in Fusion gespeichert.
Ein Board kann auch zu einem anderen Fusion PCB-Modell gelinkt werden.
Dieser Befehl wird im Device-Editor verwendet, um die verschiedenen Technologien
eines Bauteils im Device-Namen zu bestimmen.
Im Schaltplan- oder Board-Editor verhält sich der TECHNOLOGY-Befehl genau so
wie "CHANGE TECHNOLOGY".
Einer der Namen, die mit
dem TECHNOLOGY-Befehl definiert wurden, ersetzt den Platzhalter '*' im
Device-Set-Namen, sobald man das Device in einem Schaltplan plaziert.
Der Begriff Technology stammt von der hauptsächlichen Verwendung dieser Funktion
verschiedene Varianten eines Devices zu erzeugen, die alle dasselbe Schaltplan-Symbol,
dieselbe(n) Package-Variante(n) und dieselben Pin/Pad-Zuordnungen haben. Die
Devices unterscheiden sich nur im Namen, der sich beispielsweise für die
TTL-Bausteine im Bezug auf Ihre Technologie, wie "L", "LS", oder "HCT" unterscheiden.
Der TECHNOLOGY-Befehl kann nur angewendet werden, wenn schon vorher eine Package-Variante
über den PACKAGE-Befehl definiert wurde.
Ist kein '*'-Platzhalter im Device-Set-Namen angegeben, wird der Device-Set-Name
um die Technologie-Angabe zu einem vollständigen Device-Namen ergänzt.
Bitte beachten Sie, dass die Technologie vor der Package-Variante eingefügt wird.
Ist weder '*' noch '?' angegeben, setzt sich der Device-Name aus
Device-Set-Name+Technology+Package-Variante zusammen.
Die Namen (name), die mit dem TECHNOLOGY-Befehl angegeben sind, werden zu einer schon
vorhandenen Liste des aktuellen Devices hinzugefügt.
Geben Sie einen Namen mit '-' an, wird diese Bezeichnung aus der Liste entfernt.
Soll der Name mit einem '-' beginnen, muss dieser in einfachen Hochkommas
angegeben werden.
-* löscht alle Technologien.
Es sind nur die ASCII-Zeichen 33..126 als Technologie-Bezeichnung erlaubt (Kleinbuchstaben
werden in Großbuchstaben gewandelt).
Die besondere "leere" Technologie kann in mit zwei Hochkommas angegeben werden,
also '' (ohne Namen).
Beachten Sie bitte, dass der "Technologien"-Dialog alle Technologien aller Devices
in der geladenen Bibliothek enthält, wobei diejenigen, die vom aktuellen Device
verwendet werden, markiert sind.
Der TEXT-Befehl plaziert einen Text in einer Zeichnung, oder in einem
Bibliothekselement. Bei der Eingabe mehrerer Texte geht man sinnvollerweise
so vor, dass man zuerst den TEXT-Befehl aktiviert, dann tippt man
den ersten Begriff ein und setzt ihn mit der linken Maustaste ab,
dann den zweiten usw.
Als Option kann die Schreibrichtung (orientation)
auch textuell angegeben werden. Das ist vor allem für Script-Dateien
sinnvoll. Die entsprechenden Schlüsselwörter sind im ADD-Befehl
aufgeführt (R0, R90 usw.).
Text wird immer so dargestellt, dass er von vorne oder von rechts
zu lesen ist - auch wenn er rotiert wird. Nach zweimaligem Rotieren
erscheint er deshalb wieder gleich, aber der Aufhängepunkt liegt
nicht mehr links unten, sondern rechts oben. Denken Sie daran, wenn
sich ein Text scheinbar nicht mehr selektieren lässt.
Wenn Sie einen Text "auf dem Kopf stehend" darstellen wollen, so können
Sie das "Spin"-Flag für diesen Text setzen.
Die Schriftart wird mit CHANGE verändert:
Setzen Sie die Option "Immer Vektor-Schrift" im User-Interface-Dialog,
werden alle Texte mit dem programm-internen Vektor-Font dargestellt und ausgegeben,
unabhängig von den Einstellungen der einzelnen Texte und für jede Zeichnung.
Diese Einstellung ist dann sinnvoll, wenn vom System die anderen Schriftarten nicht
korrekt angezeigt werden.
Beim Anlegen eines neuen Boards oder Schaltplans wird die aktuelle Einstellung in der
Option "In diese Zeichnung einprägen" der Zeichnungsdatei gespeichert.
So wird sicher gestellt (auch bei der Weitergabe an Dritte, die evtl. mit anderen
Einstellungen arbeiten), dass die Datei mit Ihren Einstellungen ausgegeben wird.
Wenn Sie Daten mit dem CAM-Prozessor erzeugen, werden Texte immer mit
Vector-Font ausgegeben. Andere Fonts werden nicht unterstützt.
Soll ein Text in einem Nicht-Vector-Font von einem Signal-Polygon subtrahiert
werden, wird nur das umschließende Rechteck ausgespart. Aufgrund der oben angeführten
Probleme bzgl. Einhalten von Größe und Länge der Texte, kann es sein, dass der Text
über das umschließende Rechteck hinausgeht. Sollten Sie also Texte von Polygonen
subtrahieren wollen, ist es höchst empfehlenswert nur den Vector-Font zu
verwenden.
Der Parameter Ratio hat für Nicht-Vector-Fonts keine Bedeutung.
1) Nur im Package und Symbol
Das Format, in welchem ein Bauteil-Querverweis angezeigt wird, kann über die
"Format für Bauteil-Querverweise" Zeichenfolge im Dialog "Optionen/Einstellungen/Verschiedenes"
oder über den SET Befehl festgelegt werden.
Folgende Platzhalter sind definiert und können in beliebiger Reihenfolge verwendet werden:
Das Standard-Format ist "/%S.%C%R". Neben den definierten Platzhaltern
können Sie auch beliebige andere ASCII-Zeichen verwenden.
EAGLE nutzt für die Konvertierung den Cloud-Service von Fusion Sync. Sobald das STEP-Modell vollständig konvertiert ist, wird die Datei im Home-Tab des Control Panels im Abschnitt Recent Generated 3D Files angezeigt. Mit einem Mausklick auf den Eintrag öffnet sich der Datei-Manager und zeigt die entsprechende Datei.
Mit dem Befehl UNDO kann man Befehle rückgängig machen. Das
ist insbesondere dann nützlich, wenn man z. B. versehentlich etwas
gelöscht hat. Die mehrmalige Eingabe von UNDO macht entsprechend
viele Befehle rückgängig. Das geht bis zum Zustand nach dem
letzen EDIT-, OPEN- oder REMOVE-Befehl. Diese Befehle
löschen die Vorgeschichte.
Die UNDO-Funktion benötigt Platz im Arbeitsspeicher und kann die Eingabe
von Script-Dateien erheblich verlangsamen.
Sie lässt sich bei Bedarf mit dem Befehl
UNDO/REDO ist vollkommen in den Mechanismus der Forward&Back-Annotation
integriert.
Wenn Sie diesen Dialog mit "OK" bestätigen, so verbleibt die Zeichnung in dem
aus der Liste gewählten Zustand. Brechen Sie den Dialog ab, so wird der Zustand
wiederhergestellt, den die Zeichnung vor dem Öffnen dieses Dialogs hatte.
VORSICHT: dies ist ein sehr mächtiges Werkzeug! Wenn Sie in der UNDO-Liste
sehr weit zurückgehen (was mit einem einfachen Mausklick möglich ist) und
dann irgend einen neuen Befehl eingeben, so wird der UNDO-Puffer an dieser
Stelle abgeschnitten, und es führt kein Weg zurück! Benutzen Sie es also
mit entsprechender Vorsicht!
The UNGROUP command removes the group from the drawing. The objects in the group are still in the drawing but
the group memberships are removed. This command can only be performed on persistent group objects.
Der UPDATE-Befehl vergleicht Bauteile in einem Layout oder Schaltplan
mit den zugehörigen Bibliothekselementen und aktualisiert diese, sofern
Unterschiede festgestellt werden. Wird UPDATE im Bibliotheks-Editor ausgeführt,
so werden die in der geladenen Bibliothek befindlichen Packages aus den angegebenen
Bibliotheken aktualisiert.
Wird der UPDATE-Befehl ohne Parameter aufgerufen, öffnet sich ein Datei-Dialog,
aus dem man die Bibliothek wählt, deren Bauteile mit den Definitionen in
der Zeichnung verglichen werden soll.
Wenn eine oder mehrere Bibliotheken angegeben werden, werden nur Bauteile aus
diesen überprüft. Der Bibliotheksname kann entweder ein einfacher Name (wie "ttl"
oder "ttl.lbr") oder eine vollständige Pfadangabe (wie "/home/mydir/myproject/ttl.lbr"
oder "../lbr/ttl"), oder der URN einer heruntergeladenen Verwaltete Bibliothek
(z.B. "urn:adsk.eagle:library:42") sein.
Falls ein library_name Leerzeichen enthält, so muss er in einfache Hochkommas
eingeschlossen werden.
Ist der erste Parameter '+@', wird jedem genannten lokalen Bibliotheksnamen
(oder allen lokalen Bibliotheksnamen, wenn kein Name angegeben wird) ein '@'
gefolgt von einer Nummer vorangestellt. Dies kann dazu benutzt werden um sicherzustellen, dass die in einer
Zeichnung enthaltenen Bibliotheken nicht verändert werden wenn ein Bauteil aus einer neueren
Bibliothek gleichen Namens in die Zeichnung eingefügt wird. Bibliotheksnamen, die bereits
auf ein '@'-Zeichen gefolgt von einer Nummer
enden, werden genauso wie die Namen der Verwaltete Bibliotheken nicht verändert.
Falls der erste Parameter '-@' ist, wird das '@'-Zeichen (gefolgt von einer Zahl)
vom Ende der angegebenen Bibliotheksnamen (oder aller Bibliotheksnamen, falls keine angegeben
wurden) entfernt. Dies funktioniert natürlich nur dann, wenn sich noch keine Bibliothek mit diesem
neuen Namen in der Zeichnung befindet.
Bitte beachten Sie, dass "UPDATE +@;" gefolgt von "UPDATE -@;" (und umgekehrt) nicht unbedingt
die ursprüngliche Folge von Bibliotheksnamen ergeben muss, da die Reihenfolge, in der die Namen
bearbeitet werden, von der Reihenfolge der Bibliotheken in der Zeichnungsdatei abhängt.
Eine in einem Schaltplan oder Layout hinterlegte Bibliothek wird anhand ihres Namens
(z.B. ttl), bei einer Verwaltete Bibliothek anhand des URN (wie "urn:adsk.eagle:library:42")
identifiziert.
Beim Abgleich welche Bibliothek durch welche aktualisiert weden soll, wird als
erstes der URN der beiden (Verwaltete) Bibliotheken verglichen bzw. der Bibliotheksname,
falls bei beiden kein URN vorhanden ist (lokale Bibliotheken). Falls es dabei zu
keiner Übereinstimmung kommt, vegleicht UPDATE die Namen der beiden Bibliotheken,
wenn nur eine Bibliothek einen URN hat.
(In keinem Fall werden Verwaltete Bibliotheken mit unterschiedlichem URNs zum Update
verwendet, auch wenn die Namen übereinstimmen.)
Werden mehrere Übereinstimmungen gefunden, wird ein Dialog gezeigt aus dem man die
zu verwendende Bibliothek auswählen kann. Beachten Sie bitte, dass die Namen der
Bibliotheken unabhängig von Groß- und Kleinschreibung betrachtet werden. Auch der
Bibliothekspfad der lokalen Bibliotheken wird nicht beachtet (außer es wurde in
der Kommandozeile explizit ein Pfad angegeben). Es spielt keine Rolle ob die
entsprechende Bibliothek zur Zeit "in use" ist; Verwaltete Bibliothekwn werden jedoch
nur betrachtet, wenn sie bereits heruntergeladen wurden. Wird eine Bibliothek nicht
gefunden, wird für diese auch kein Update durchgeführt. Ein Fehler wird nur gemeldet,
wenn die Bibliothek(en) über die Kommandozeile angegeben wurden. Es gibt keine
Fehlermeldung bei fehlenden Bibliotheken, wenn alle in Schaltplan und Board
vorhandenen Bibliotheken akutalisiert werden sollen.
Wird der UPDATE-Befehl in einem Schaltplan oder Board gestartet, und sind diese
über die Forward&Back Annotation verbunden,
aktualisiert EAGLE die Bauteile in beiden Dateien.
In manchen Fällen wird es notwendig sein anzugeben, ob Gates, Pins oder Pads
aufgrund ihres Namens oder ihrer Koordinaten zugeordnet werden sollen. Das ist dann
der Fall, wenn die zugehörigen Bibliotheksobjekte verschoben oder umbenannt
wurden. Wenn zuviele Änderungen gemacht wurden (z. B. wurde ein Pin verschoben
und umbenannt), ist ein automatisches Aktualisieren nicht möglich. In diesem
Fall sollte man die Bibliotheksänderung entweder in mehreren Schritten machen
(erst Umbenennen, dann Verschieben) oder das ganze Element umbenennen, so dass es
nicht getauscht wird.
In der Notation old_library_name = new_library_name (beachten Sie, dass
vor und nach dem '=' Zeichen jeweils mindestens ein Leerzeichen stehen muss)
sucht der UPDATE-Befehl die Bibliothek old_library_name im aktuellen Board
oder Schaltplan und aktualisiert diese mit dem Inhalt von new_library_name.
Hierbei ist zu beachten, dass old_library_name ein reiner Bibliotheksname
sein muss, ohne Pfad, während new_library_name ein vollständiger Pfadname
oder ein URN sein kann. Wurde der Update erfolgreich ausgeführt, so
wird auch die Bibliothek im aktuellen Board oder Schaltplan entsprechend umbenannt - aus diesem Grund ist diese
ganze Operation natürlich nur dann möglich, wenn new_library_name bisher
im aktuellen Board oder Schaltplan noch nicht verwendet wurde.
Achtung: Nach jedem Library Update in einem Layout oder Schaltplan sollten Sie unbedingt einen
Design Rule Check (DRC) und einen
Electrical Rule Check (ERC) durchführen!
Durch die Angabe des Package-Namens (package_name@library_name) kann dafür gesorgt
werden, dass nur ein ganz bestimmtes Package ersetzt wird.
Der USE-Befehl markiert eine Bibliothek so, dass sie für die Befehle
ADD oder REPLACE
verfügbar ist.
Wenn man den USE-Befehl ohne Angabe von Parametern aktiviert, öffnet sich ein Dialog,
der es erlaubt die Bibliotheken zu verwalten: Bibliotheken laden oder entfernen und
Verwaltete Bibliotheken aktualisieren.
Der spezielle Parameter -* bewirkt, dass alle bisher markierten
Bibliotheken aufgegeben werden.
Mit -library_name wird die Bibliothek library_name aufgegeben.
library_name kann der volle Name einer Bibliothek oder ein
teilqualifizierter Name sein.
Falls library_name der Name eines Verzeichnisses ist, werden alle
Bibliotheken aus diesem Verzeichnis markiert.
Der Suffix .lbr braucht nicht angegeben zu werden.
EAGLE übernimmt die komplette Bibliotheksinformation in die Zeichnung,
deshalb ist die Bibliothek zum Bearbeiten fertiger Platinen nicht
mehr erforderlich.
Änderungen an einer Bibliothek wirken sich nicht auf Elemente
in den schon bestehenden Zeichnungen aus.
Siehe UPDATE-Befehl, um Bauteile durch
aktualisierte Bibliothekselemente zu ersetzen.
Gibt man wert an, bevor man das Element mit der Maus selektiert,
dann erhalten alle nachfolgend selektierten Elemente diesen Wert.
Das ist sehr praktisch, wenn man z. B. eine ganze Reihe von ICs auf
denselben Wert setzen will.
Werden name und wert angegeben, so erhält das Element
name den angegebenen Wert.
Der VALUE-Befehl kann nur in der Standard-Bestückungsvariante verwendet werden.
Wenn Sie den Wert für eine andere Bestückungsvariante ändern wollen,
verwenden Sie den VARIANT-Befehl .
On: Anstelle des Platzhalters VALUE (im Symbol definiert) kann im
Schaltplan der aktuelle Wert eingegeben werden.
Off: Anstelle des Platzhalters VALUE erscheint im Schaltplan der Device-Name
(z.B. 74LS00N). Er lässt sich im Schaltplan nur nach Rückfrage mit dem
VALUE-Befehl verändern.
Standardmäßig werden alle Bauteile des Schaltplans auf dem Board bestückt (sofern
sie ein Package haben). Manchmal kann es aber notwendig sein, dass in bestimmten
Varianten eines Designs einige Bauteile nicht bestückt werden, oder dass sie vom
Standard abweichende Werte oder Technologien haben.
Der VARIANT-Befehl ermöglicht es Ihnen festzulegen, welche Bauteile in einer
bestimmten Ausführung bestückt werden sollen, und welche Werte und Technologien
sie jeweils haben sollen.
name ist der Name der Variante. Groß-/Kleinschreibung ist egal, und er muss
in einfache Hochkommas eingeschlossen werden, wenn er Leerzeichen
enthält oder '+' oder '-'.
Wird part_name, gefolgt von dem Schlüsselwort POPULATE oder NOPOPULATE
angegeben, so wird eine Variante mit dem Namen name für dieses Bauteil angelegt,
in der es als "bestückt" bzw. "nicht bestückt" markiert wird.
In der aktuellen Bestückungsvariante nicht bestückte Bauteile werden im Schaltplan
durch ein X gekennzeichnet, das über ihre gesamte Fläche gezeichnet wird.
Im Board wird in einem solchen Fall alles, was die tatsächliche Bestückung des
Bauteils betrifft (also Bestückungsaufdruck, Name, Wert etc.) nicht dargestellt.
Mit den optionalen value und technology (nur im Schaltplan) kann die
Variante weiter verfeinert werden.
Ein Wert kann nur angegeben werden, wenn das Bauteil einen vom Benutzer definierbaren
Wert hat.
Soll nur die Technologie angegeben werden, ohne einen speziellen Wert zu verwenden,
so kann ein leerer Wert ('') angegeben werden.
Eine neue Variante kann angelegt werden, indem man name ein '+'
voranstellt. Falls eine Variante dieses Namens bereits existiert, passiert nichts.
Wird dem Varianten-Namen ein '-' vorangestellt, so wird die angegebene
Variante gelöscht. Wird als name ein '*' angegeben, so werden
alle Varianten gelöscht.
Falls dieser Befehl außerhalb eines Scripts verwendet wird, so wird
nachgefagt, ob diese Aktion wirklich ausgeführt werden soll.
Mit der bloßen Angabe eines Varianten-Namens wird das gesamte Projekt auf diese
Variante umgeschaltet.
Dies bedeutet, dass alle "populate"-Flags, Werte und Technologien so erscheinen,
wie es in dieser Variante für die einzelnen Bauteile angegeben wurde.
Die Angabe eines leeren Strings ('') schaltet auf die Standard-Variante,
was das Gleiche ist als gäbe es keinerlei Varianten.
Beachten Sie bitte, dass nach dem Laden einer Zeichnung diese immer in ihrem
Standard-Zustand ist, ohne eine bestimmte Variante aktiviert zu haben.
Ohne jegliche Parameter öffnet sich ein Dialog in dem Sie alle Bestückungsvarianten
verwalten können.
Der Name der aktuellen Bestückungsvariante kann mit der
Text-Variablen >ASSEMBLY_VARIANT dargestellt werden.
Die Befehle ADD, CHANGE PACKAGE | TECHNOLOGY, REPLACE, UPDATE und VALUE können nur
verwendet werden, wenn keine Bestückungsvariante aktiv ist.
Der COPY-Befehl kopiert keine Bestückungsvarianten.
Im Board wird der VARIANT-Befehl nicht unterstützt. Alles wird vom Schaltplan aus gesteuert,
Konsistenz vorausgesetzt (Die Varianten-Kombobox im Board-Editor dient nur zur Information).
Ist die F/B-Annotation nicht aktiv, ist es jedoch möglich, das Populate-Flag mit dem Befehl
CHANGE zu setzen.
Die Bestückungsvarianten im Schaltplan und in den Modulen sind völlig
unabhängig voneinander. Mit dem VARIANT-Befehl ist es nicht möglich
eine Bestückungsvariante eines Moduls auszuwählen.
Der Klarheit wegen unterscheiden wir deswegen zwischen Modul-Bestückungsvarianten
und Haupt-Bestückungsvarianten. Innerhalb eines Moduls bezieht sich der
VARIANT-Befehl auf dessen Modul-Bestückungsvarianten, auf den Haupt-Schaltplanseiten
auf die Haupt-Bestückungsvarianten.
Der VIA-Befehl plaziert ein Via in einer Platine. Dabei fügt er
das Via zu einem Signal hinzu (falls es auf einer Leitung plaziert
wird). Werden durch das Via zwei oder mehrere Signale verbunden,
so erfolgt eine Nachfrage, ob dies wirklich beabsichtgt ist.
Die eingegebene Größe bleibt für nachfolgende Operationen
erhalten.
Der Bohrdurchmesser entspricht dem Durchmesser, der für Pads eingestellt
ist. Er lässt sich mit
Vias erzeugen Bohrsymbole im Layer Drills und die Lötstopmaske in den
Layern tStop/bStop.
Square quadratisch
Diese Formen gelten nur für die Aussenlagen (Top bzw. Bottom).
In den Innenlagen ist die Form immer "rund".
Die Via-Form kann entweder (wie der Durchmesser) eingegeben werden,
während der VIA-Befehl aktiv ist, oder sie kann mit dem Befehl
Die eingegebene Form bleibt für nachfolgende Operationen erhalten.
Beachten Sie bitte, dass die tatsächlichen Werte für Via-Form und -Durchmesser durch die
Design Rules des Boards bestimmt werden, in dem das Via
verwendet wird.
Standardmäßig generiert ein Via mit einem Bohrdurchmesser kleiner oder gleich dem
Wert des Design Rules Parameters "Masks/Limit" keine
Lötstopmaske. Das obige STOP-Flag kann dazu benutzt werden, eine Lötstopmaske
für ein Via zu forcieren.
Wenn Sie sehr stark in eine Zeichnung hineinzoomen können folgende Dinge passieren:
Die Syntax zur Bearbeitung dieser Aliase ist:
WINDOW = MyWindow (0 0) (4 3);
Definiert den Alias "MyWindow" der, wenn er wie in
WINDOW myw
benutzt wird, den angegebenen Bildausschnitt einstellt.
Beachten Sie bitte die abgekürzte Verwendung des Aliases,
und dass die Groß-/Kleinschreibung keine Rolle spielt.
Der 'WIRE'-Befehl wurde durch LINE ersetzt.
Wegen der Kompatibilität bei Skripten wird der Alias 'WIRE' weiterhin gültig sein.
Dem Namen kann man auch einen Pfadnamen voranstellen, wenn die Datei
in ein bestimmtes Verzeichnis gesichert werden soll.
Wird dem neuen Namen ein @ vorangestellt, so wird auch der Name
der geladenen Zeichnung entsprechend geändert. Die zugehörige Platine/Schaltplan
wird dann automatisch ebenfalls unter diesem Namen abgespeichert, und der
Undo-Puffer wird gelöscht.
Um die Konsistenz der
Forward&Back-Annotation
zwischen Platine und Schaltplan zu gewährleisten, verhält sich der WRITE-Befehl
wie folgt:
Wird kein Dateiname in der Kommandozeile angegeben, werden Sie aufgefordert einen zu wählen.
Bitte beachten Sie, dass die Option @name um unter einem anderen Namen abzuspeichern
nicht unterstützt wird, wenn man für EAGLE 7.x abspeichert.
Die restlichen Optionen dienen der Seiteneinrichtung.
Die restlichen Optionen dienen der Seiteneinrichtung.
Die Standardwerte für die Ränder werden vom Druckertreiber übernommen
und definieren die maximal bedruckbare Fläche.
Sie können hier auch kleinere Werte angeben, wobei es von Ihrem Drucker
abhängt, ob die angegebenen Ränder dann eingehalten werden können oder nicht.
Nach der Auswahl eines anderen Druckers kann es sein, dass neue
gerätespezifische Grenzen wirksam werden; die vorgegebenen Ränder
werden dann automatisch vergößert, falls der neue Drucker dies erfordert.
Beachten Sie bitte, dass die Werte nicht automatisch verkleinert werden,
auch wenn der neue Drucker kleinere Werte zulassen würde. Um die
kleinstmöglichen Werte für die Ränder zu ermitteln, geben Sie in jedes Feld
0 ein. Dieser Wert wird dann durch das gerätespezifische Minimum
ersetzt.
Der Wert im X Feld gibt den Kalibrierungsfaktor in der Richtung
an, in der sich der Druckkopf bewegt. Der Wert im Y Feld
kalibriert die Koordinaten in Papiervorschubrichtung.
ACHTUNG: Wenn Sie mit Ihrem Drucker Produktionsvorlagen erzeugen,
prüfen Sie bitte immer das Druckergebnis auf Einhaltung der exakten Maße!
Die Standardwerte von 1 gehen davon aus, dass der Drucker in beiden
Richtungen exakt druckt.
Bei gespiegelter Ausgabe enthält die Bildunterschrift das Wort
"mirrored", und falls der Vergrößerungsfaktor nicht
1.0 ist, wird er als f=... mit angegeben
(der Vergrößerungsfaktor wird mit 4 Nachkommastellen ausgegeben, so dass
auch eine Angabe von f=1.0000 nicht bedeutet, dass der Faktor
exakt 1.0 ist).
Die folgenden Hilfe-Themen führen Sie durch die erforderlichen
Schritte, von der Auswahl der Daten-Datei bis zur Konfiguration des
Ausgabegeräts (Device).
Siehe auch Drucken auf dem System-Drucker
Ein typischer CAM-Prozessor-Job könnte zum Beispiel zwei Sections
enthalten: eine, die die Fotoplot-Dateien für die Bestückungsseite
erzeugt, und eine weitere, die die entsprechenden Daten für die Lötseite
erzeugt.
Sie können die Größe der Ausgabe auf eine bestimmte Anzahl von Seiten
beschränken, indem Sie einen negativen Wert im Scale-Feld eingeben.
In diesem Fall wird der Skalierungsfaktor auf 1.0 voreingestellt und so lange
verkleinert, bis die Zeichnung gerade noch auf die angegebene Anzahl von
Seiten passt. Wird zum Beispiel "-2" eingegeben, so entsteht eine Zeichnung
die nicht mehr als zwei Seiten benötigt. Beachten Sie bitte, dass die zur
Verfügung stehende Blattgröße (Width und Height Parameter) Ihres
Ausgabegeräts richtig eingestellt sein muss, damit dieser Mechanismus
funktioniert. Diese Größen können in den Width- und Height-Feldern oder
durch Editieren der Datei eagle.def eingestellt werden.
Achtung: Die Blendenemulation kann zu sehr langen Plot-Zeiten führen
(hohe Kosten!).
Toleranzen werden in Prozent angegeben.
Bitte beachten Sie, dass dadurch Ihre "Design Rules" unter Umständen
nicht mehr eingehalten werden!
Die Datei kann mit Hilfe eines User-Language-Programms drillcfg.ulp, das sich im
ULP-Verzeichnis Ihrer EAGLE-Installation befindet, erzeugt werden.
Verwenden Sie dazu den Befehl RUN.
Toleranzen werden in Prozent angegeben.
Kann dazu verwendet werden den Nullpunkt von großformatigen Plottern in die linke
untere Ecke zu verlegen.
Bitte beachten Sie, dass der CAM-Prozessor die Zeichnung auf mehrere
Teile aufteilt, falls das umschließende Rechteck um alle in der
Datei enthaltenen Objekte (auch in Layern, die nicht ausgebeben
werden) nicht auf die bedruckbare Fläche passt.
Bitte verwenden Sie einen Text-Editor,
der keine Steuerzeichen in die Datei schreibt.
Folgende Dateinamen sind üblich:
Zum Beispiel würde die folgende Definition
%N.cmp%I{.info}
den Namen boardname.cmp für die Datendatei und boardname.cmp.info
für die Info-Datei ergeben (falls das gewählte Device eine Info-Datei erzeugt).
Bei Peripheriegeräten, die unterschiedliche Farben unterstützen,
geben Sie die Farbnummer für den jeweiligen Layer an.
Folgende Layer-Kombinationen und
Ausgabe-Dateinamen
sind üblich:
Das User-Language-Programm outlines.ulp enthält alle Schritte um diese
Daten zu erzeugen. Die folgende ausführliche Beschreibung zeigt was zu tun ist, um
Konturdaten zu generieren.
Werte ungleich 0 für den Isolate-Parameter können dafür verwendet werden, beim
sequentiellen Arbeiten mit unterschiedlichen Fräserdurchmessern bereits gefräste
Bereiche auszusparen.
Im Schaltplan- oder Layout-Editor lassen sich im Menü Optionen/Einstellungen.. unter
Verschiedenes die neuen gruppenbezogenen Funktionen mit der Option Standard-Befehl GROUP
aktivieren.
Ist diese Option eingeschaltet, sind folgende Funkionen verfügbar:
Siehe auch GROUP, MOVE, DELETE
Der Autorouter wird auch als "Follow-me"-Router im
ROUTE-Befehl verwendet.
Bitte überprüfen Sie Ihre Lizenz, um
festzustellen, ob Sie Zugriff zum Autorouter haben.
Der DRC wird in einem Platinen-Fenster ausgeführt. Er überprüft das
Design auf Überlappung von unterschiedlichen Potentialen,
Abstandsverletzungen etc.
Der Design Rule Check prüft das Board gegenüber diesen Regeln
und meldet Verstöße gegen sie.
Die Design Rules eines Boards können mit Hilfe des Design-Rule-Dialogs modifiziert werden.
Der Dialog öffnet sich, wenn man den DRC-Befehl ohne
abschließendes ';' aufruft.
Neu angelegte Boards übernehmen ihre Design Rules aus der Datei 'default.dru',
die in dem ersten Verzeichnis, das im "Optionen/Verzeichnisse/Design-Regeln"-Pfad
aufgeführt ist, gesucht wird.
Ist keine solche Datei vorhanden, so gelten die programminternen Standardwerte.
Hinweis zu den Werten für Clearance und Distance:
Die Genauigkeit ist begrenzt durch die interne Auflösung der Koordinaten (1/320000mm).
Falls die Design Rules verändert wurden, wird an den Namen in der Titelzeile
des Dialogs ein Stern ('*') angehängt, um die Veränderung anzuzeigen.
Diese Markierung verschwindet wieder, sobald die Design Rules explizit abgespeichert
werden, oder ein neuer Satz von Design Rules geladen wird.
Das Layer-Setup wird durch den String im "Setup"-Feld definiert. Dieser String
besteht aus einer Sequenz von Layer-Nummern, getrennt durch jeweils ein '*'
oder '+', wobei '*' für Kern-Material (auch als FR4
oder dergleichen bekannt) und '+' für Prepreg (oder sonstiges
Isolationsmaterial) steht. Die tatsächliche Kern- und Prepreg-Sequenz
hat keine weitergehende Bedeutung für EAGLE, ausser der unterschiedlichen farblichen
Darstellung in der Anzeige oben links auf diesem Tab (das tatsächliche Multilayer-Setup
muss auf jeden Fall mit dem Leiterplatten-Hersteller abgesprochen werden). Die Vias
werden dadurch definiert, dass eine Sequenz von Layern in (...) eingeschlossen
wird. Der Setup-String
Bitte beachten Sie, dass ein Polygon mit dem besonderen Namen _OUTLINES_ dazu verwendet
wird Kontur-Daten zu erzeugen und dieses die Design Rules
nicht einhält.
Aus Gründen der Kompatibilität zu Version 3.5x gilt:
Wird der Parameter für den Mindestabstand zwischen Kupfer und Dimension auf 0
gesetzt, so werden Objekte im Dimension-Layer beim Freirechnen der Polygone nicht
mehr berücksichtigt (ausgenommen Holes, die immer berücksichtigt werden). Es findet
dann auch keine Abstandsprüfung zwischen Kupfer und Dimension mehr statt.
Querverweis-Labels werden typischerweise am rechten oder linken Rand einer
Schaltplanseite platziert und zeigen die nächste (bzw. vorherige) Seite an,
auf der ein bestimmtes Netz vorkommt. Eine genaue Beschreibung der
Funktionsweise finden Sie beim LABEL-Befehl.
Bei der späteren Anzeige wird der '>XREF'-Platzhaltertext (gemäß
dem Format für Bauteil-Querverweise) durch die
Seitennummer und Zeichnungsrahmen-Koordinate des Must-Gatters dieses
Bauteils ersetzt.
Das Kapitel Kontaktspiegel erklärt,
wie auf der Seite, die die Spule enthält, ein Querverweis auf die Kontakte
dargestellt werden kann.
Die Kontakt-Symbole müssen den Platzhaltertext '>XREF' enthalten,
damit Bauteil-Querverweise erzeugt
werden.
Die Kontakt-Symbole sollten so gezeichnet werden, dass die Pins nach oben bzw.
unten zeigen, und dass der Ursprung in der Mitte des Symbols liegt.
Das erste Kontakt-Gatter in der Device-Set-Zeichnung sollte an der X-Koordinate
0 platziert werden, und seine Y-Koordinate sollte so groß sein, dass sein unterer
Pin sich im positiven Bereich befindet, typischerweise bei 100mil. Die restlichen
Kontakt-Gatter sollten rechts davon platziert werden, mit ihrem Ursprung
an der gleichen Y-Koordinate wie das erste. Das Spulen-Gatter kann an einer
beliebigen Stelle platziert werden.
Im Schaltplan wird der Kontaktspiegel an der selben X-Koordinate dargestellt wie
die Spule, und direkt unterhalb der Y-Koordinate, die durch den Platzhaltertext
'>CONTACT_XREF' definiert wird. Dieser Platzhaltertext kann entweder
in einem Zeichnungsrahmen-Symbol oder direkt auf der Schaltplanseite platziert
werden. Kommt er an beiden Stellen vor, so wird derjenige in der Schaltplanseite
genommen. Der Text selber ist auf der Schaltplanseite nicht sichtbar.
Die grafische Darstellung des Kontaktspiegels besteht aus allen Gattern, die einen
'>XREF' Platzhaltertext haben (ausgenommen das erste Must-Gatter,
welches die Spule ist und normalerweise keinen solchen Text hat). Die Gatter werden
um 90 Grad gedreht und von oben nach unten in dem gleichen Abstand dargestellt,
den sie im Device-Set von links nach rechts haben. Ihre Seitennummern und
Zeichnungsrahmen-Koordinaten werden rechts neben jedem verwendeten Gatter angezeigt.
Jegliche anderen Texte, die in den Symbolen definiert wurden, werden nicht
dargestellt, wenn die Symbole zur Anzeige des Kontaktspiegels verwendet werden.
Beachten Sie bitte, dass der Kontaktspiegel nicht mit der Maus selektiert werden kann.
Falls Sie ihn verschieben wollen, so bewegen Sie die Spule und der Kontaktspiegel
folgt ihr automatisch.
Es kann vorkommen, dass der Kontaktspiegel nach dem Einfügen, Verschieben, Löschen
oder Vertauschen von Kontakt-Gattern, bzw. einer Veränderung des '>CONTACT_XREF'
Platzhaltertexts, nicht mehr aktuell ist. Ein neuer Bildaufbau aktualisiert ihn wieder.
Um diese Eigenschaft zu Nutzen, müssen Sie ein
User-Language-Programm (ULP) schreiben
und anschließend ausführen.
Die folgenden Abschnitte beschreiben die User Language im Detail:
Ein User-Language-Programm besteht aus zwei wesentlichen Bestandteilen:
Definitionen und
Statements.
Definitionen werden verwendet, um Konstanten,
Variablen und Funktionen zu definieren, die wiederum in
Statements verwendet werden.
Ein einfaches ULP könnte so aussehen:
Soll das Ergebnis des ULPs ein Befehl sein, der im Editor-Fenster ausgeführt
werden soll, kann man die Funktion exit()
verwenden um den Befehl an das Editor-Fenster zu schicken.
Ein ULP kann die Information zurückgeben, ob es erfolgreich abgeschlossen
wurde oder nicht. Sie können die
exit()-Funktion verwenden, um das Programm
zu beenden und den Rückgabewert (return value) zu setzen.
Ein "return value" von 0 bedeutet, das ULP wurde normal beendet
(erfolgreich), während jeder andere Wert einen unnormalen Programmabbruch
anzeigt.
Der Default-Rückgabewert jedes ULP ist 0.
Wird der RUN-Befehl als Teil einer
Script-Datei, ausgeführt, dann wird die Script-Datei
abgebrochen, wenn das ULP mit einem "return value" ungleich 0 beendet
wurde.
Eine spezielle Variante der Funktion exit() kann
verwendet werden, um einen Befehl als Ergebnis des ULPs an ein Editor-Fenster zu schicken.
Leerzeichen (blanks), Tabulatoren, Newline-Zeichen und
Kommentar werden als Whitespace
behandelt und nicht berücksichtigt.
Die einzige Stelle, an der ASCII-Zeichen, die Whitespace
repräsentieren, berücksichtigt werden, ist innerhalb von
Literal Strings,
wie in
Wenn dem abschließenden Newline-Zeichen einer Zeile ein Backslash
(\), vorausgeht, werden Backslash und Newline nicht berücksichtigt.
Es gibt zwei Möglichkeiten, Kommentare einzufügen. Die erste verwendet
die Syntax
Die zweite Möglichkeit, einen Kommentar einzufügen, verwendet die Syntax
Die maximale "include-Tiefe" ist 10.
Jede #include-Direktive wird nur einmal ausgeführt. So wird
sichergestellt, dass keine Mehrfachdefinitionen von Variablen oder Funktionen entstehen,
die Fehler verursachen könnten.
Wird die #usage-Direktive verwendet,
wird ihr Text (der eine String-Konstante sein muss)
im Control Panel verwendet, um die Beschreibung des Programms anzuzeigen.
Für den Fall, dass das ULP diese Information z. B. in einer
dlgMessageBox() benötigt, ist dieser Text durch die
Builtin-Konstante usage im ULP verfügbar.
Es wird nur die #usage-Direktive des Hauptprogramms (das ist die Datei, die mit
dem RUN-Befehl gestartet wurde) berücksichtigt.
Deshalb sollten reine include-Dateien auch eine
eigene #usage-Directive enthalten.
Am besten ist die #usage-Direktive an den Anfang der Datei zu stellen,
so muss das Control Panel nicht den ganzen Text der Datei durchsuchen,
um die Informationen, die angezeigt werden sollen, zu finden.
Soll die Usage-Information in mehreren Sprachen verfügbar gemacht werden, so
sind die Texte der verschiedenen Sprachen durch Kommas getrennt anzugeben.
Dabei muss jeder Text mit dem zweibuchstabigen Code der jeweiligen Sprache
(so wie er auch von der language()-Funktion geliefert wird),
gefolgt von einem Doppelpunkt und beliebig vielen Leerzeichen beginnen.
Falls für die auf dem aktuellen System verwendete Sprache kein passender
Text gefunden wird, so wird der erste angegebene Text verwendet (dieser
sollte generell Englisch sein um das Programm einer möglichst großen Zahl
von Benutzern zugänglich zu machen).
Identifier bestehen aus einer Sequenz von Buchstaben (a b c..., A B C...),
Ziffern (1 2 3...) und Unterstreichungszeichen (_). Das erste Zeichen
eines Identifiers muss ein Buchstabe oder ein Unterstreichungszeichen sein.
Identifier sind case-sensitive, das bedeutet, dass
Die maximale Länge eines Identifiers ist 100 Zeichen, von denen alle signifikant sind.
Der Typ einer Integer-Konstante ist
int.
Sie können entweder Dezimal-Integer-Zahl oder Dezimalbruch weglassen
(aber nicht beides). Sie können entweder den Dezimalpunkt oder
den Buchstaben e oder E und den Integer-Exponenten mit
Vorzeichen weglassen (aber nicht beides).
Der Typ einer Real-Konstante ist
real.
String-Konstanten können jede beliebige Länge haben, vorausgesetzt
es steht genügend Speicher zur Verfügung.
String-Konstanten können einfach aneinandergereiht werden
um längere Strings zu bilden:
Jedes Zeichen nach dem Backslash, das nicht in der Liste aufgeführt ist,
wird als dieses Zeichen (ohne Backslash) behandelt.
Escape-Sequenzen können in
Character-Konstanten und
String-Konstanten verwendet werden.
Andere Sonderzeichen werden als
Operatoren
verwendet.
Die vier grundlegenden Datentypen sind
Neben diesen grundlegenden Datentypen gibt es auch
High-level-Objekt-Typen,
die die Datenstrukturen repräsentieren, wie sie in den EAGLE-Dateien
gespeichert sind.
Der Datentyp void wird nur als Return-Typ einer
Funktion verwendet. Er zeigt
an, dass diese Funktion keinen Wert zurückgibt.
Eine Variable des Typs char belegt 8 bit (1 Byte), und kann jeden Wert
im Bereich 0..255 speichern.
Siehe auch Operatoren,
Character-Konstanten
Eine Variable vom Typ int belegt 32 bit (4 Byte), und kann
jeden Wert im Bereich -2147483648..2147483647 speichern.
Siehe auch Integer-Konstanten
Eine Variable vom Typ real belegt 64 bit (8 Byte), und kann jeden Wert
im Bereich ±2.2e-308..±1.7e+308 mit einer Genauigkeit von 15 Digits
speichern.
Siehe auch Real-Konstanten
Eine Variable des Typs string ist nicht auf eine bestimmte Länge beschränkt,
vorausgesetzt, es steht genügend Speicher zur Verfügung.
Variablen des Typs string sind ohne explizite Länge definiert. Sie
"wachsen" automatisch, soweit erforderlich, während der Programmausführung.
Die Elemente einer String-Variablen sind vom Typ
int, und
man kann auf sie individuell zugreifen, indem man
[index] benutzt.
Das erste Zeichen eines Strings hat den Index 0:
Eine verlustfreie Typ-Umwandlung nach char ist
für Standard ASCII Strings möglich:
Siehe auch Operatoren,
Builtin-Functions,
String-Konstanten
Arithmetische Typen sind
char,
int und
real
(in dieser Reihenfolge). Ist zum Beispiel a vom Typ
int
und b vom Typ
real, dann ist das Ergebnis
a + b vom Typ
real.
Siehe auch Typecast
Die allgemeine Syntax eines Typecast ist
Wenn man mit Typecast einen Ausdruck vom Typ
real in
int umwandelt, wird der Dezimalbruch
des Wertes abgeschnitten.
Siehe auch Typ-Umwandlung
Auf die "Properties" dieser Objekte kann mit Hilfe von Members
zugegriffen werden.
Es gibt zwei Arten von Members:
Loop members werden verwendet, um auf Mehrfach-Objekte
derselben Art zuzugreifen, die in einem Objekt einer höheren Hierarchiestufe
enthalten sind:
Loop members behandeln Objekte in alpha-numerisch sortierter Reihenfolge,
falls die Objekte einen Namen haben.
Eine Loop-member-Funktion erzeugt eine Variable vom erforderlichen Typ,
um die Objekte zu speichern. Sie dürfen jeden gültigen Namen für eine
derartige Variable verwenden, so dass das obige Beispiel auch so lauten könnte:
UL_AREA ist ein Pseudo-Objekt, das Informationen über die Fläche liefert,
die ein Objekt einnimmt. Für ein UL_PACKAGE bzw. UL_SYMBOL in einem
UL_ELEMENT- bzw. UL_INSTANCE-Kontext beinhalten die Koordinaten den Offset
des betreffenden Bauteils und die Fläche von Texten, die nach
REPOSITION verschoben wurden.
Ein UL_ATTRIBUTE kann dazu benutzt werden, die Attribute anzusprechen,
die für ein Device in der Bibliothek definiert wurden, bzw. einem Bauteil
im Schaltplan oder Board zugewiesen wurden.
In einem UL_ELEMENT-Kontext liefert constant nur bei aktiver F/B-Annotation
einen tatsächlichen Wert, ansonsten wird 0 geliefert.
Das defaultvalue-Member liefert den Wert, wie er in der Bibliothek definiert
wurde (falls sich dieser vom tatsächlichen Wert unterscheidet, ansonsten ist es
der selbe Wert wie bei value).
In einem UL_ELEMENT-Kontext liefert defaultvalue nur bei aktiver F/B-Annotation
einen tatsächlichen Wert, ansonsten wird ein leerer String geliefert.
Das text-Member ist nur in einem UL_INSTANCE- oder UL_ELEMENT-Kontext
verfügbar und liefert ein UL_TEXT-Objekt welches alle Text-Parameter enthält.
Der Wert dieses Text-Objekts ist der Text wie er gemäß dem 'display'-Parameter
des UL_ATTRIBUTE angezeigt wird. Wird diese Funktion aus einem anderen Kontext
heraus aufgerufen, so sind die Werte des zurückgegebenen UL_TEXT-Objekts
undefiniert.
Bei globalen Attributen sind nur name und value definiert.
Das name Member liefert den vollständigen Dateinamen, inklusive Verzeichnis.
Das Loop member attributes() geht durch die globalen Attribute.
Wenn name einen leeren String liefert, ist die Netzklasse nicht definiert und wird somit
auch nicht von einem Signal oder Netz benutzt.
Die Koordinaten (x, y) des "Contacts" hängen vom Kontext ab aus dem sie aufgerufen werden:
Alle UL_DEVICE-Member, mit Ausnahme von name und technologies, liefern
dieselben Werte wie die zugehörigen UL_DEVICESET-Member in dem UL_DEVICE definiert wurde.
Das name-Member liefert den Namen der Package-Variante, für welche dieses
Device mit dem PACKAGE-Befehl erzeugt worden ist.
Bitte denken Sie daran: Der description-Text darf Newline-Zeichen ('\n') enthalten.
Das package Data Member liefert das Package,
das dem Device durch einen PACKAGE-Befehl zugewiesen
worden ist. Es kann als boolesche Funktion verwendet werden um zu prüfen, ob dem Device
ein Package zugewiesen wurde (siehe Beispiel unten).
Der Wert des technologies-Member hängt vom Kontext ab aus dem es aufgerufen wurde:
Das Loop member attributes() erwartet einen zusätzlichen Parameter der
angibt, für welche Technology die Attribute geliefert werden sollen (siehe das
zweite Beispiel).
Die Objekte libraryurn und libraryversion sind nur verfügbar, wenn
das UL_DEVICE aus einer Verwaltete Bibliothek stammt. Ist das nicht der Fall, ist
libraryurn ein leerer String und libraryversion gleich -1.
Das description-Member liefert den vollständigen Beschreibungstext, der mit dem
DESCRIPTION-Befehl erzeugt wurde, während das headline-Member
nur die erste Zeile der Beschreibung ohne HTML-Tags ausgibt.
Wenn Sie description-Text schreiben, denken Sie daran, dass dieser Newline-Anweisungen
('\n') enthalten darf.
urn enthält eine eindeutige Identifikation für das Deviceset in der Form urn:adsk.eagle:component:123/4,
wobei der Teil nach / die Versionsnummer des Devicesets angibt. Um die Basis des URNs zu bekommen
(ohne Version), verwendet man urnbase();. Die Versionsnummer bekommt man mit
urnversion().
Die Objekte libraryurn und libraryversion sind nur verfügbar, wenn
das UL_DEVICESET aus einer Verwaltete Bibliothek stammt. Ist das nicht der Fall, ist
libraryurn ein leerer String und libraryversion gleich -1.
Das Member locallymodified ist 0, wenn das UL_DEVICESET keine lokalen Veränderungen hat oder 1, wenn dieses UL_DEVICESET lokale Veränderungen hat.
Das texts()-Member läuft nur durch die mittels REPOSITION vom
Element losgelösten Texte und durch die sichtbaren Texte der Attribute, die diesem Element zugewiesen wurden.
Um alle Texte eines Elements zu bearbeiten (zum Beispiel um es zu zeichnen), müssen Sie eine Schleife
durch das texts()-Member des Elements selbst und
durch das texts()-Member des zum Element gehörenden
Package
bilden.
Nicht alle UL_ELEMENTs haben 3D-Packages. Das package3d-Member kann als boolesche
Funktion verwendet werden, um zu prüfen, ob ein 3D-Package vorhanden ist oder nicht, z.B.
if (E.package3d).
angle gibt an um wieviel Grad das Element gegen den Uhrzeigersinn um seinen
Aufhängepunkt gedreht ist.
Die column- und row-Members liefern die Spalten- bzw. Zeilenposition
innerhalb des Rahmens in der Board-Zeichnung.
Falls es in der Zeichnung keinen Rahmen gibt, oder das Element außerhalb des Rahmens liegt,
wird ein '?' (Fragezeichen) zurückgegeben.
Das smashed-Member gibt Auskunft darüber, ob ein Element gesmasht ist.
Diese Funktion kann auch verwendet werden um herauszufinden, ob es einen losgelösten
Platzhaltertext gibt, indem der Name des Platzhalters in eckigen Klammern angegeben
wird, wie in smashed["VALUE"]. Dies ist nützlich falls Sie einen solchen Text
mit dem MOVE-Befehl etwa durch MOVE R5>VALUE
selektieren wollen. Gültige Platzhalternamen sind "NAME" und "VALUE", sowie die
Namen etwaiger benutzerdefinierter Attribute.
Groß-/Kleinschreibung spielt keine Rolle, und sie dürfen ein vorangestelltes
'>' Zeichen haben.
Die Member layer und contours() sind nur im UL_BOARD Kontext und
die Member area2, modulename, s1..s6 und sheet
sind nur im UL_SCHEMATIC Kontext verfügbar.
Das Member area2 ist eine zweite UL_AREA, die nur im Schaltplan bei einzelnen
ERC-Fehlern die entsprechende Region im Board angibt.
Die Member s1..s6 sind 'string'-Werte, die bei bestimmten ERC-Fehlern
zusätzliche Informationen wie Namen liefern.
Das Loop-Member contours() geht durch die Umriss-Wires des DRC-Polygons.
Die Loop-Members texts() und wires() gehen durch alle Texte und
Linien, aus denen der Frame besteht.
drillsymbol liefert die Nummer des Bohrsymbols, welches diesem Bohrdurchmesser
zugeordnet worden ist (siehe die Liste der definierten Bohrsymbole im Handbuch).
Ein Wert von 0 bedeutet, dass diesem Bohrdurchmesser kein Bohrsymbol zugeordnet ist.
Das texts()-Member läuft nur durch die mittels REPOSITION
von der Instance losgelösten Texte, und durch die sichtbaren Texte der Attribute, die dieser Instance zugewiesen wurden.
Um alle Texte einer Instance zu bearbeiten, müssen Sie eine Schleife
durch das texts()-Member der Instance selbst und
durch das texts()-Member des zu dem Gate der Instance gehörenden
Symbols bilden.
Wurden einer Instance Attribute zugewiesen, so liefert texts() deren Texte
so, wie sie momentan dargestellt werden.
Die column- und row-Members liefern die Spalten- bzw. Zeilenposition
innerhalb des Rahmens auf der Schaltplanseite, auf der diese
Instance platziert ist.
Falls es auf dieser Seite keinen Rahmen gibt, oder die Instance außerhalb des Rahmens liegt,
wird ein '?' (Fragezeichen) zurückgegeben.
Diese Members können nur in einem UL_SHEET-Kontext verwendet werden.
Das smashed-Member gibt Auskunft darüber, ob eine Instance gesmasht ist.
Diese Funktion kann auch verwendet werden um herauszufinden, ob es einen losgelösten
Platzhaltertext gibt, indem der Name des Platzhalters in eckigen Klammern angegeben
wird, wie in smashed["VALUE"]. Dies ist nützlich falls Sie einen solchen Text
mit dem MOVE-Befehl etwa durch MOVE R5>VALUE
selektieren wollen. Gültige Platzhalternamen sind "NAME", "VALUE", "PART" und "GATE", sowie die
Namen etwaiger benutzerdefinierter Attribute.
Groß-/Kleinschreibung spielt keine Rolle, und sie dürfen ein vorangestelltes
'>' Zeichen haben.
Das xrefs()-Member läuft durch die Gatter des Kontaktspiegels
dieser Instance. Diese sind nur dann von Bedeutung, wenn das ULP eine zeichnerische
Darstellung des Schaltplans erzeugt (wie etwa eine DXF-Datei).
Die angle, layer, mirror und spin Members liefern
immer den selben Wert wie diejenigen des UL_TEXT-Objekts, das vom text Member
geliefert wird. Die x und y Members des Textes liefern etwas versetzte
Werte für Querverweis-Labels xref ungleich 0), ansonsten liefern sie die
gleichen Werte wie das UL_LABEL.
xref hat nur für Netz-Labels eine Bedeutung. Für Bus-Labels liefert es immer 0.
Das devices()-Member geht durch alle Package-Varianten und Technologien von
UL_DEVICESET in der Bibliothek, so dass alle möglichen Device-Variationen verfügbar werden.
Das devicesets()-Member geht nur durch die UL_DEVICESETs, die wiederum nach deren
UL_DEVICE-Member abgefragt werden können.
Wird die Bibliothek aus einem UL_BOARD- oder UL_SCHEMATIC-Kontext heraus angesprochen, liefert name
den reinen Bibliotheksnamen (ohne Extension). Ansonsten wird der volle Dateiname ausgegeben.
Das editable-Member liefert den Wert 0, wenn die Bibliothek vom Anwender editiert werden darf (die Bibliothek gehört dem Anwender). Andernfalls liefert es den Wert 0.
Die column- und row-Members liefern die Spalten- bzw. Zeilenposition
innerhalb des Rahmens auf der Schaltplanseite, auf der diese
Instanz platziert ist.
Falls es auf dieser Seite keinen Rahmen gibt, oder die Instanz außerhalb des Rahmens liegt,
wird ein '?' (Fragezeichen) zurückgegeben.
Diese Members können nur in einem UL_SHEET-Kontext verwendet werden.
Das smashed-Member gibt Auskunft darüber, ob eine Instanz gesmasht ist.
Diese Funktion kann auch verwendet werden um herauszufinden, ob es einen losgelösten
Platzhaltertext gibt, indem der Name des Platzhalters in eckigen Klammern angegeben
wird, wie in smashed["NAME"]. Dies ist nützlich falls Sie einen solchen Text
mit dem MOVE-Befehl etwa durch MOVE R5>NAME
selektieren wollen.
Die column- und row-Members liefern die Spalten- bzw. Zeilenpositionen
innerhalb des Rahmens auf der Schaltplanseite, auf der dieses Netz
liegt. Da ein Netz sich über einen bestimmten Bereich erstrecken kann, liefert jede dieser
Funktionen zwei durch ein Leerzeichen getrennte Werte zurück. Im Falle von column
sind die die am weitesten links bzw. rechts liegende Spalte, die von diesem Netz berührt wird,
und bei row ist es die am weitesten oben bzw. unten liegende Zeile.
Bei der Ermittlung der Spalte und Zeile eines Netzes auf einer Schaltplanseite
wird zunächst die Spalte und dann die Zeile innerhalb dieser Spalte betrachtet.
Hierbei haben XREF-Labels Vorrang vor normalen Labels, und diese wiederum Vorrang
vor Netz-Linien.
Falls es auf dieser Seite keinen Rahmen gibt, wird "? ?" (zwei Fragezeichen) zurückgegeben.
Liegt irgend ein Punkt des Netzes außerhalb des Rahmens, so kann jeder der Werte '?'
(Fragezeichen) sein.
Diese Members können nur in einem UL_SHEET-Kontext verwendet werden.
Wenn das Netz durch UL_SCHEMATIC.allnets() bereitgestellt wurde, sind die
benutzbaren Member: name, class und pinrefs().
Das Loop member pinrefs() geht dann auch durch alle virtuellen pinrefs(),
die durch Modul-Instanzen erzeugt wurden.
Stammt das UL_PACKAGE aus einem UL_ELEMENT-Kontext, so durchläuft das texts()-Member
nur die nicht losgelösten Texte dieses Elements.
Stammt das UL_PACKAGE aus einem UL_ELEMENT-Kontext, sind Polygone und Wires, die zu einem Kontakt mit beliebiger Pad-Form
gehören, nur durch die Loop-Member polygons() und wires() dieses Kontakts verfügbar.
urn enthält eine eindeutige Identifikation des Packages, in der Form urn:adsk.eagle:footprint:123/4,
wobei der Teil nach / die Versionsnummer des Packages angibt. Um die Basis des URNs zu bekommen
(ohne Version), verwendet man urnbase();. Die Version bekommt man mit
urnversion().
Die Objekte libraryurn und libraryversion sind nur verfügbar, wenn
das UL_PACKAGE aus einer Verwaltete Bibliothek stammt. Ist das nicht der Fall, ist
libraryurn ein leerer String und libraryversion gleich -1.
Das Member locallymodified ist 0, wenn das UL_PACKAGE keine lokalen Veränderungen hat oder
1, wenn dieses UL_PACKAGE lokale Veränderungen hat.
urn enthält eine eindeutige Identifikation des 3D-Packages, in der Form urn:adsk.eagle:package:123/4,
wobei der Teil nach / die Versionsnummer des 3D-Packages angibt. Um die Basis des URNs zu bekommen
(ohne Version), verwendet man urnbase();. Die Version bekommt man mit
urnversion().
libraryurn und libraryversion sind nur verfügbar, wenn dieses UL_PACKAGE3D aus
einer Verwalteten Bibliothek stammt. Ist das nicht der Fall, ist libraryurn ein leerer
String und libraryversion gleich -1.
Durchmesser und Form des Pads hängen vom Layer ab für den es erzeugt werden soll, da diese Werte,
abhängig von den Design Rules, unterschiedlich sein können.
Wird als Index für das Data Member "diameter" oder "shape" einer der Layer
LAYER_TOP...LAYER_BOTTOM, LAYER_TSTOP oder LAYER_BSTOP angegeben, berechnet sich der Wert nach den
Vorgaben der Design Rules. Gibt man LAYER_PADS an, wird der in der Bibliothek definierte Wert
verwendet.
drillsymbol liefert die Nummer des Bohrsymbols, welches diesem Bohrdurchmesser
zugeordnet worden ist (siehe die Liste der definierten Bohrsymbole im Handbuch).
Ein Wert von 0 bedeutet, dass diesem Bohrdurchmesser kein Bohrsymbol zugeordnet ist.
angle gibt an um wieviel Grad das Pad gegen den Uhrzeigersinn um seinen
Mittelpunkt gedreht ist.
elongation ist nur für die Pad-Formen PAD_SHAPE_LONG und PAD_SHAPE_OFFSET gültig
und bestimmt um wieviel Prozent die lange Seite eines solchen Pads länger ist als
seine schmale Seite. Für alle anderen Pad-Formen liefert dieses Member den Wert 0.
Der Wert, den flags liefert, muss mit den PAD_FLAG_... Konstanten
maskiert werden um die einzelnen Flag-Einstellungen zu ermitteln, wie zum Beispiel in
Beim Durchlaufen der attributes() eines UL_PART haben nur die
name, value, defaultvalue und constant
Members des resultierenden UL_ATTRIBUTE gültige Werte.
Beim Durchlaufen der Bestückungs-variants() eines UL_PART sind nur
echte Varianten verfügbar. Die Standard-Bestückungsvariante ist hier nicht verfügbar.
Daher wird diese Schleife für Bauteile ohne Bestückungsvarianten nicht ausgeführt.
Wenn sich Part in einem UL_SHEET-Kontext befindet, bearbeitet
Loop member instances() nur solche Instances, die tatsächlich
auf dieser Seite benutzt werden.
Wenn sich Part in einem UL_SCHEMATIC- oder UL_MODULE-Kontext befindet, geht die Schleife
durch alle Instances.
Wenn das Part ein virtuelles Part ist (virtuelle Parts können mit UL_SCHEMATIC.allparts()
ermittelt werden, siehe UL_SCHEMATIC), so ist instances() leer.
Wenn das Part von einem Modul stammt oder virtuell ist, bezieht sich module darauf.
Wenn nicht (Part im Hauptschaltplan), ist module Null.
Wenn das Part virtuell ist, so ist modulepart das entsprechende reale Part vom Herkunfts-Modul module.
Ist es ein Part des Hauptschaltplans oder ist es selbst ein Part aus einem Modul, so ist modulepart Null.
Wenn das Part virtuell ist, so ist modulepath ein String mit der Sequenz von Modul-Instanznamen,
die zu dem Modul führen, welches das benutzte Part enthält. Diese Namen sind durch ':' getrennt.
In anderen Fällen ist dieser String leer.
Nicht jedes UL_PART hat ein 3D-Package. Das package3d Member kann als boolesche
Funktion verwendet werden um zu prüfen, ob ein 3D-Package vorhanden ist oder nicht,
z.B. if (P.package3d).
Das contact Data Member liefert den Contact,
der dem Pin durch einen CONNECT-Befehl zugewiesen
worden ist.
Dieses Member ist veraltet! Es funktioniert aus Kompatibilitätsgründen und
solange nur ein Pad mit dem Pin verbunden wurde, verursacht aber einen Laufzeitfehler
wenn es mit einem Pin benutzt wird, der mit mehreren Pads verbunden ist.
Das Member route macht ebenfalls nur Sinn, wenn ein Bezug zu Kontakten vorhanden ist,
mit denen der Pin verbunden worden ist. Sonst ist der Wert auf 0 gesetzt.
Die Koordinaten (und der Layer, im Falle eines SMD) des durch das
contact Data Member gelieferten Contacts hängen vom Kontext ab,
in dem es aufgerufen wird:
Das net Data Member liefert den Namen des Netzes, an das der Pin angeschlossen ist
(nur in einem UL_SCHEMATIC-Kontext verfügbar).
Wird das contours() Loop-Member ohne einem zweiten Parameter aufgerufen,
so läuft es durch alle Umriss-Linien, egal ob sie zu einem positiven oder negativen
Polygon gehören. Falls Sie daran interessiert sind, die positiven und negativen
Umriss-Linien getrennt voneienander zu erhalten, können Sie contours()
mit einem zusätzlichen Integer-Parameter aufrufen (siehe zweites Beispiel unten).
Das Vorzeichen dieses Parameters bestimmt, ob ein positives oder negatives Polygon
behandelt wird, und der Wert gibt den Index dieses Polygons an. Falls es kein
Polygon mit dem gegebenen Index gibt, wird die Anweisung nicht ausgeführt.
Ein weiterer Vorteil dieser Methode ist, dass Sie Anfang und Ende eines bestimmten
Polygons nicht selber (durch Vergleich von Koordinaten) bestimmen müssen. Für jeden
Index wird die Anweisung für alle Wires dieses Polygons ausgeführt.
Mit 0 als zweitem Parameter ist das Verhalten genau so, als wäre kein
zweiter Parameter angegeben worden.
Die Wires, die mit contours() erreicht werden, beginnen immer in einem
positiven Polygon. Um herauszufinden wo ein Teilpolygon endet und das nächste beginnt,
speichern Sie einfach die Koordinate (x1,y1) des ersten Wires und prüfen diese
gegenüber (x2,y2) jedes folgenden Wires. Sobald die beiden Werte identisch sind,
ist der letzte Wire des Teilpolygons gefunden. Es gilt immer, dass
der zweite Punkt (x2,y2) identisch mit dem ersten Punkt (x1,y1) des nächsten Wires
in diesem Teilpolygon ist.
Um herauszufinden ob man innerhalb bzw. ausserhalb der Polygons ist, nehmen
Sie einen beliebigen Umriss-Wire und stellen sich Sie vor, von dessen Punkt (x1,y1)
zum Punkt (x2,y2) zu sehen. Rechts vom Wire ist immer innerhalb des Polygons.
Hinweis: Wenn Sie einfach ein Polygon zeichnen wollen, brauchen Sie all
diese Details nicht.
Die Member bus und net liefern den Namen des Busses bzw. Netzes, an welchem
der Port angeschlossen ist (nur im UL_MODULEINST-Kontext verfügbar).
Zusätzlich geht das Loop-Member nets durch alle vorhandenen Netze dieser
Verbindung.
Die Koordinaten (x1 y1) und (x2 y2) beziehen sich immer auf die ursprüngliche Lage des Rechtecks
ohne die Rotation zu berücksichtigen.
angle gibt an um wieviel Grad das Rechteck gegen den Uhrzeigersinn um seinen
Mittelpunkt gedreht ist. Der Mittelpunkt ergibt sich aus (x1+x2)/2 und (y1+y2)/2.
Die Member xreflabel und xrefpart liefern die Format-Strings, die für die Darstellung von
Querverweis-Labels und Bauteil-Querverweise benutzt werden.
Das Loop-Member attributes() geht durch die globalen Attribute.
Das Loop member texts() wurde in früheren EAGLE-Versionen benutzt um durch die
Labels eines Segments zu gehen und ist nur noch aus Kompatibilitätsgründen vorhanden.
Es liefert den Text von Querverweis-Labels nicht an der richtigen Position. Benutzen
Sie das labels() Loop member um die Labels eines Segments anzusprechen.
angle gibt an um wieviel Grad das Smd gegen den Uhrzeigersinn um seinen
Mittelpunkt gedreht ist.
Der Wert, den flags liefert, muss mit den SMD_FLAG_... Konstanten
maskiert werden um die einzelnen Flag-Einstellungen zu ermitteln, wie zum Beispiel in
Der urn ist ein eindeutiger Bezeichner für das Symbol in der Form urn:adsk.eagle:symbol:123/4,
wobei der Teil nach dem / die Versionsnummer des Symbols angibt. Um die Basis des URNs zu bekommen
(ohne Version), verwendet man urnbase();. Die Version bekommt man mit
urnversion().
Die Objekte libraryurn und libraryversion sind nur verfügbar, wenn
das UL_SYMBOL aus einer Verwaltete Bibliothek stammt. Ist das nicht der Fall, ist
libraryurn ein leerer String und libraryversion gleich -1.
Das Member locallymodified ist 0, wenn das UL_SYMBOL keine lokalen Veränderungen hat oder
1, wenn dieses UL_SYMBOL lokale Veränderungen hat.
Wurde der UL_TEXT aus einem UL_ELEMENT- oder UL_INSTANCE-Kontext angesprochen, so liefern
die Members die tatsächlichen Werte, so wie sie in der Board- oder Schaltplan-Zeichnung zu
finden sind.
Beachten Sie bitte, dass diameter und shape auf jeden Fall den
Durchmesser bzw. die Form zurückliefern, welche ein Via in dem gegebenen Layer hätte,
selbst wenn das konkrete Via diesen Layer gar nicht überdeckt (oder wenn dieser Layer
im Layer-Setup überhaupt nicht benutzt wird).
start und end liefern den Layer, in dem dieses Via beginnt bzw. endet.
Der Wert von start ist dabei immer kleiner als der von end.
drillsymbol liefert die Nummer des Bohrsymbols, welches diesem Bohrdurchmesser
zugeordnet worden ist (siehe die Liste der definierten Bohrsymbole im Handbuch).
Ein Wert von 0 bedeutet, dass diesem Bohrdurchmesser kein Bohrsymbol zugeordnet ist.
Der cap Parameter ist nur für echte Kreisbögen von Bedeutung und liefert für gerade
Wires immer CAP_ROUND.
Ob ein UL_WIRE ein Kreisbogen ist oder nicht kann durch Abfragen des booleschen Rückgabewertes
des arc Data Members herausgefunden werden. Falls dieses 0 liefert,
liegt ein gerader Wire vor, ansonsten ein Kreisbogen. Liefert arc nicht 0
so darf es weiter dereferenziert werden um die für einen UL_ARC
spezifischen Parameter Start- und Endwinkel, Radius und Mittelpunkt zu erfragen.
Diese zusätzlichen Parameter sind normalerweise nur von Bedeutung wenn der Kreisbogen
gezeichnet oder anderweitig verarbeitet werden soll, und dabei die tatsächliche Form
eine Rolle spielt.
Es gibt drei Arten von Definitionen:
Der Gültigkeitsbereich einer Funktions-Definition reicht
von der schließenden geschweiften Klammer
(}) des Funktionsrumpfes bis zum Ende des User-Language-Programms.
Konstanten kann man auch mit bestimmten Werten initialisieren, wie in
Mehrfach-Variablen-Definitionen desselben Typs werden durch
Kommas (,) getrennt.
Wenn auf identifier ein Paar
eckiger Klammern ([]) folgt,
wird ein Array von Variablen des gegebenen Typs definiert.
Die Größe des Arrays wird zur Laufzeit automatisch bestimmt.
Das optionale Schlüsselwort numeric kann mit
String-Arrays verwendet werden,
um sie alphanumerisch mit der Funktion
sort() sortieren zu lassen.
Standardmäßig (wenn kein Initializer vorhanden ist),
werden
Daten-Variablen auf 0 gesetzt
(oder "", falls es sich um einen String handelt), und
Objekt -Variablen werden mit
"invalid" initialisiert.
Die allgemeine Syntax einer Funktions-Definition lautet
Funktionen die keinen Wert zurückgeben, haben den Typ void.
Eine Funktion muss definiert werden, bevor sie aufgerufen werden kann,
und Funktionsaufrufe können nicht rekursiv sein (eine Funktion kann sich nicht
selbst aufrufen).
Die Statements im Funktionsrumpf können die Werte der Parameter ändern,
das hat aber keinen Einfluss auf die Argumente des
Funktionsaufrufs.
Die Ausführung einer Funktion kann mit dem
return-Statement beendet werden.
Ohne return-Statement wird der Funktionsrumpf bis zu seiner
schließenden geschweiften Klammer
(}) ausgeführt.
Ein Aufruf der exit()-Funktion beendet
das gesamte User-Language-Programm.
Kommandozeilen-Argumente sind für das Programm über die globalen
Builtin-Variablen argc und argv
verfügbar.
Die Assoziativität ist links nach rechts für alle Operatoren
ausser für
Unary, Conditional und Assignment,
die rechts-nach-links-assoziativ sind.
Die normale Operator-Priorität kann durch den Gebrauch von
runden Klammern geändert werden.
Die Verwendung eines
String-Ausdrucks mit einem
logischen Operator prüft, ob ein String leer ist.
Die Verwendung eines
Objekt-Typs mit einem logischen Operator
prüft, ob dieses Objekt gültige Daten enthält.
Der Conditional-Operator wird verwendet, um eine Entscheidung
innerhalb eines Ausdrucks zu treffen, wie in
Der Komma-Operator wird verwendet, um eine Sequenz von
Ausdrücken von links nach rechts auszuwerten; Typ und Wert des rechten
Operanden werden als Ergebnis verwendet.
Beachten Sie, dass Argumente in einem Funktionsaufruf und
Mehrfach-Variablen-Deklarationen ebenfalls Kommas als Trennzeichen verwenden.
Dabei handelt es sich aber nicht um den Komma-Operator!
Siehe auch String-Operatoren
Der +-Operator fasst zwei Strings zusammen oder
fügt ein Zeichen am Ende eines Strings hinzu und
gibt den resultierenden String zurück.
Der +=-Operator fügt einen String oder eine Zeichen an das Ende
eines gegebenen Stings an.
Siehe auch Arithmetische Operatoren
Komma-Ausdrücke werden von links nach rechts ausgewertet, und
das Ergebnis eines Komma-Ausdrucks ist der Typ und der Wert des
am weitesten rechts stehenden Ausdrucks.
Compound-Statements können beliebig verschachtelt werden.
Ein Expression-Statement wird ausgeführt, indem der Ausdruck ausgewertet
wird. Alle Nebeneffekte dieser Auswertung sind vollständig abgearbeitet, bevor
das nächste
Statement ausgeführt wird.
Die meisten Expression-Statements sind
Zuweisungen oder
Funktionsaufrufe.
Ein Spezialfall ist das leere Statement, das nur aus einem
Semikolon besteht.
Ein leeres Statement tut nichts, aber es ist nützlich in den Fällen,
in denen die ULP-Syntax ein Statement erwartet, aber Ihr Programm
keines benötigt.
Iteration-Statements sind
Da all diese Statements gemischt und verschachtelt werden können,
stellen Sie bitte sicher, dass break vom korrekten Statement
aus ausgeführt wird.
Da all diese Statements gemischt und verschachtelt werden können,
stellen Sie bitte sicher, dass continue das richtige Statement
betrifft.
condition wird nach der ersten Ausführung von
statement getestet, was bedeutet, dass das Statement
wenigstens einmal ausgeführt wird.
Wenn kein
break oder
return
im statement vorkommt, muss das statement
den Wert der condition verändern, oder condition selbst
muss sich während der Auswertung ändern, um eine Endlosschleife zu
vermeiden.
Der Initialisierungs-Ausdruck init initialisiert normalerweise
einen oder mehrere Schleifenzähler. Er kann auch eine neue Variable
als Schleifenzähler definieren. Eine solche Variable ist bis zum
Ende des Blocks gültig, welcher die for-Schleife umgibt.
Der else-Teil bezieht sich immer auf das letzte if
ohne else.
Wenn Sie etwas anderes wollen, müssen Sie
geschweifte Klammern verwenden, um
die Statements zu gruppieren, wie in
Wenn die Funktion vom Typ void ist, kann ein return-Statement
ohne expression verwendet werden, um vom Funktionsaufruf zurückzukehren.
Jedes case_statement kann mit einem oder mehreren case-Labels
versehen sein.
Die Auswertung des Ausdrucks case_exp jedes case-Labels muss
einen konstanten Integer-Wert ergeben, der innerhalb des umschließenden
switch-Statements nur einmal vorkommt.
Es darf höchstens ein default-Label vorkommen.
Nach der Auswertung von sw_exp werden die case_exp-Ausdrücke
auf Übereinstimmung geprüft. Wenn eine Übereinstimmung gefunden wurde,
wird die Steuerung zum case_statement mit dem entsprechenden
case-Label transferiert.
Wird keine Übereinstimmung gefunden und gibt es ein default-Label,
dann erhält def_statement die Steuerung.
Andernfalls wird kein Statement innerhalb der
switch-Anweisung ausgeführt.
Die Programmausführung wird nicht beeinflusst, wenn case- und
default-Labels auftauchen. Die Steuerung wird einfach an das
folgende Statement übergeben.
Um die Programmausführung am Ende einer Gruppe von Statements für
ein bestimmtes
case zu stoppen, verwenden Sie das break-Statement.
condition wird vor der erstmöglichen Ausführung
von statement getestet, was bedeutet, dass das Statement
überhaupt nicht ausgeführt wird, wenn condition von Anfang an
null ist.
Wenn kein
break oder
return
im statement vorkommt, muss das statement
den Wert der condition verändern, oder condition selbst
muss sich während der Auswertung ändern, um eine Endlosschleife zu
vermeiden.
Viele Objekt-Typen haben ihren
eigenen Konstanten-Bereich, in dem die Builtin-Constants
für das betreffende Objekt aufgelistet sind (siehe
z.B. UL_PIN).
Die folgenden Builtin-Constants sind zusätzlich zu denen definiert,
die für die einzelnen Objekt-Typen aufgeführt sind:
Diese Builtin-Constants enthalten die Directory-Pfade, die im
Directories-Dialog definiert wurden, wobei etwaige spezielle
Variablen ($HOME und $EAGLEDIR) durch ihre aktuellen Werte ersetzt wurden.
Da jeder Pfad aus mehreren Directories bestehen kann, sind diese Konstanten string-Arrays
mit jeweils einem einzelnen Directory in jedem Eintrag. Der erste leere Eintrag bedeutet das Ende
des Pfades:
Wenn Sie diese Konstanten dazu verwenden, einen vollständigen Dateinamen zu bilden, so
müssen Sie ein Directory-Trennzeichen benutzen, wie etwa in
Die im Moment durch den USE-Befehl benutzten Bibliotheken:
Sie können auch eigene Funktionen
definieren und sie dazu verwenden, um Ihre User-Language-Programme zu
strukturieren.
Builtin-Functions sind in folgende Kategorien eingeteilt:
Die folgenden Character-Funktionen sind verfügbar:
Folgende Datei-Funktionen sind verfügbar:
fileerror prüft den Status beliebiger I/O-Operation, die seit
dem letzten Aufruf dieser Funktion ausgeführt wurden und gibt 0 zurück,
wenn alles in Ordnung war. Verursachte eine der I/O-Operationen einen Fehler,
wird ein Wert ungleich 0 ausgegeben.
Vor der Ausführung von I/O-Operationen sollten Sie mit fileerror den
Fehlerstatus zurücksetzten. Nach der Ausführung der I/O-Operationen rufen Sie
fileerrorerneut auf, um zu prüfen ob alles in Ordnung war.
Wenn fileerror einen Wert ungleich 0 ausgibt (und so einen Fehler anzeigt),
wird dem Benutzer eine Fehlermeldung angezeigt.
fileglob sucht in einem Verzeichnis nach pattern.
pattern kann '*' und '?' als Platzhalter enthalten.
Endet pattern mit einem '/', wird der Inhalt des angegebenen Verzeichnis zurückgegeben.
Namen die im resultierenden array mit einem '/' enden, sind Verzeichnisnamen.
Das array ist alphabetisch sortiert, die Verzeichnisse kommen zuerst.
Die Sondereinträge '.' und '..' (für das aktuelle und das übergeordnete Verzeichnis)
werden nie in array geschrieben.
Wenn pattern nicht gefunden wird, oder wenn Sie kein Recht haben, das angegebene Verzeichnis
zu durchsuchen, ist das array leer.
Die Sortierreihenfolge unter Windows unterscheidet nicht zwischen Groß- und Kleinschreibung.
Folgendes Datei-Einlesen ist möglich:
Wenn dest ein Character-Array ist, werden Binär-Daten aus der Datei ausgelesen.
Der Rückgabewert entspricht dann der Anzahl der Bytes, die in das Character-Array
eingelesen wurden (das entspricht der Dateigröße).
Wenn dest ein String-Array ist, wird die Datei als Textdatei gelesen (eine Zeile
pro Array-Member). Der Rückgabewert zeigt die Anzahl der Zeilen, die in das Array
eingelesen wurden. Newline-Zeichen werden entfernt.
Wenn dest ein String ist, wird die ganze Datei in diesen String eingelesen. Der
Rückgabewert ist die Länge des Strings (die nicht unbedingt der Dateigröße entsprechen
muss, wenn das Betriebssystem Textdateien mit "cr/lf" anstatt "newline" am Zeilenende
speichert).
Die folgenden mathematischen Funktionen sind verfügbar:
Der Return-Typ dieser Funktionen ist identisch mit dem größeren Typ der Argumente.
type muss
char,
int oder
real sein.
Die folgenden sonstigen Funktionen sind verfügbar:
Die cfgset-Funktion setzt den Parameter mit dem Namen name auf
den Wert value.
Gültige Zeichen für name sind
'A'-'Z',
'a'-'z',
'0'-'9',
'.' and
'_'.
Die Parameter werden in der eaglerc-Datei des Benutzers gespeichert.
Um sicherzustellen, dass verschiedene User Language Programme sich nicht
gegenseitig die Parameter überscheiben, falls sie die gleichen Parameternamen
verwenden, wird empfohlen, dem Parameternamen den Namen des ULPs voranzustellen.
Beispielsweise könnte ein ULP namens mytool.ulp, welches einen Parameter
namens MyParam verwendet, diesen unter dem Namen
Da die Konfigurations-Parameter in der eaglerc-Datei gespeichert werden, welche
auch alle anderen benutzerspezifischen EAGLE-Parameter enthält, können auch die
EAGLE-Parameter mit cfgget() und cfgset() angesprochen werden.
Um sicherzustellen, dass keine ULP-Parameter mit etwaigen EAGLE-Parametern
kollidieren, muß den EAGLE-Parametern "EAGLE:" vorangestellt werden, wie in
Die User Language Parameter werden in der eaglerc-Datei mit einem vorangestellten
"ULP:" gespeichert. Daher darf dieser Präfix optional auch den User Language
Parameternamen vorangestellt werden, wie in
Die exit-Funktion beendet die Ausführung des User-Language-Programms.
Die language-Funktion kann dazu benutzt werden, in einem ULP unterschiedliche
Texte zu verwenden, je nachdem welche Sprache das aktuelle System verwendet.
In dem folgenden Beispiel sind alle im ULP verwendeten Strings im Array I18N[]
aufgelistet, beginnend mit einem String der die verschiedenen Sprachcodes enthält
die dieses ULP unterstützt. Beachten Sie die vtab-Zeichen, die dazu
benutzt werden, die einzelnen Teile jedes Strings zu trennen (diese sind wichtig
für die lookup-Funktion) und die Benutzung der Kommas um die Strings
zu trennen. Die eigentliche Arbeit wird in der Funktion tr() gemacht,
welche die übersetzte Version des übergebenen Strings zurückliefert.
Sollte der ursprüngliche String im I18N-Array nicht gefunden werden,
oder es keine Übersetzung für die aktuelle Sprache geben, so wird der ursprüngliche
String unübersetzt verwendet.
Die erste im I18N-Array definierte Sprache muss diejenige sein, in der
die im restlichen ULP verwendeten Strings geschrieben sind, und sollte generell
Englisch sein um das Programm einer möglichst großen Zahl von Benutzern
zugänglich zu machen.
Ein array das mit lookup() benutzt werden kann, besteht aus Text-Strings,
wobei jeder String einen Daten-Record darstellt.
Jeder Daten-Record enthält eine beliebige Anzahl von Feldern, die durch das Zeichen
separator (default ist '\t', der Tabulator) getrennt sind.
Das erste Feld in einem Record wird als key benutzt und hat die Nummer 0.
Alle Records müssen eindeutige key-Felder haben. Keines der key-Felder
darf leer sein - ansonsten ist nicht definiert welcher Record gefunden wird.
Enthält der erste String in array einen "Header"-Record (der Record, in dem der
Inhalt der Felder beschrieben wird), bestimmt lookup mit einem String
field_name automatisch den Index des Feldes. Das erlaubt es, die lookup-Funktion
zu benutzen, ohne genau zu wissen, welcher Feld-Index die gewünschten Daten enthält.
Ist der key-Parameter beim Aufruf von lookup() ein leerer String,
wird der erste String von array verwendet. Das erlaubt dem Programm zu
bestimmen, ob ein Header-Record mit den gewünschten Feld-Namen existiert.
Enthält ein Feld das separator-Zeichen, muss es in Anführungszeichen
eingeschlossen werden (wie in "abc;def", wobei hier das Semikolon (';')
das Trennzeichen ist). Das gilt auch für Felder, die Anführungszeichen
(") enthalten, wobei die Anführungszeichen im Feld verdoppelt werden müssen
(wie hier: "abc;""def"";ghi" ergibt also abc;"def";ghi).
Hier folgt eine Beispiel-Daten-Datei (zur besseren Lesbarkeit wurde der Separator ';' verwendet):
Der spezielle Wert -1 für index bewirkt, dass die Funktion den
Typ der momentan vom Editor-Fenster verwendeten Palette liefert.
Falls index oder type ausserhalb des gültigen Wertebereichs liegen
wird eine Fehlermeldung ausgegeben und das ULP abgebrochen.
Die sleep-Funktion macht für seconds Sekunden eine Pause im
User-Language-Programm.
In jedem Fall definiert das Argument number die Zahl der
Einträge im Array oder in den Arrays.
Beachten Sie die Verwendung des Schlüsselworts numeric in den
String-Arrays. Das führt dazu, dass die String-Sortierung einen numerischen
Teil am Ende des Namens berücksichtigt (IC1, IC2,... IC9, IC10 anstelle von
IC1, IC10, IC2,...IC9).
Wenn man einen Satz von Arrays sortiert, muss das erste (Index-)Array
vom Typ int sein und braucht nicht
initialisiert zu werden. Jeder vor dem Aufruf der sort-Funktion
vorhandene Inhalt wird mit den resultierenden Indexwerten überschrieben.
Die status-Funktion zeigt die angegebene message in der Statuszeile
des Editor-Fensters an, in dem das ULP läuft.
Falls Sie Kontrolle darüber haben wollen, welche externen Programme tatsächlich
ausgeführt werden, können Sie sich eine Hilfsfunktion schreiben, welche den
Benutzer vor der Ausführung des externen Programms um Bestätigung bittet, wie etwa
EAGLE speichert alle Koordinaten und Größen als
int-Werte mit einer Auflösung von 1/320000mm
(0.003125µ). Die oben angegebenen Einheiten-Konvertier-Funktionen können dazu
verwendet werden, die internen Einheiten in die gewünschten Maßeinheiten
umzuwandeln und umgekehrt.
Die folgenden Netzwerk-Funktionen sind verfügbar:
Die neterror-Funktion sollte nach jeder Verwendung einer der anderen
Netzwerk-Funktionen aufgerufen werden, deren Rückgabewert negativ war und
somit einen Fehler angezeigt hat. Der Rückgabewert von neterror
ist ein textueller String, der dem Benutzer präsentiert werden kann.
Bei Fehlern im Zusammenhang mit SSL-Verbindungen (HTTPS) beachten Sie auch den Hinweis
in netget.
Die netget-Funktion schickt den angegebenen url an das Netzwerk und
speichert das Ergebnis in der Variablen dest.
Falls timeout Sekunden lang keine Netzwerkaktivität erfolgt, wird die
Verbindung abgebrochen. Der Standardwert hierfür ist 20 Sekunden.
Wenn dest ein String-Array ist, wird das Ergebnis als Text behandelt (eine Zeile
pro Array-Member) und der Rückgabewert entspricht der Anzahl der Zeilen, die in
dem Array gespeichert wurden. Newline-Zeichen werden entfernt.
Wenn dest ein String ist, wird das gesamte Ergebnis in diesem String gespeichert
und der Rückgabewert entspricht der Länge des Strings. Beachten Sie, dass im Falle
von binären Daten das Ergebnis beim ersten Auftreten eines Bytes mit dem Wert 0x00
abgeschnitten wird.
Falls Sie einen Proxy benutzen müssen, um das Internet mit HTTP bzw. HTTPS anzusprechen,
so können Sie diesen im "Konfigurieren"-Dialog unter "Hilfe/Auf Update prüfen"
im Control Panel konfigurieren.
Die netpost-Funktion schickt die in data angegebenen Daten an den
angegebenen url im Netzwerk und speichert das Ergebnis in der Variablen dest.
Falls timeout Sekunden lang keine Netzwerkaktivität erfolgt, wird die
Verbindung abgebrochen. Der Standardwert hierfür ist 20 Sekunden.
Falls für den Zugriff auf den fernen Rechner eine Benutzerkennung und ein Passwort
notwendig ist, kann dieses in folgender Form angegeben werden:
Wenn dest ein String-Array ist, wird das Ergebnis als Text behandelt (eine Zeile
pro Array-Member) und der Rückgabewert entspricht der Anzahl der Zeilen, die in
dem Array gespeichert wurden. Newline-Zeichen werden entfernt.
Wenn dest ein String ist, wird das gesamte Ergebnis in diesem String gespeichert
und der Rückgabewert entspricht der Länge des Strings. Beachten Sie, dass im Falle
von binären Daten das Ergebnis beim ersten Auftreten eines Bytes mit dem Wert 0x00
abgeschnitten wird.
Falls Sie einen Proxy benutzen müssen, um das Internet mit HTTP bzw. HTTPS anzusprechen,
so können Sie diesen im "Konfigurieren"-Dialog unter "Hilfe/Auf Update prüfen"
im Control Panel konfigurieren.
Falls Sie mit SSL-Verbindungen (HTTPS) auf Probleme stoßen sollten, beachten Sie den Hinweis
in netget
Die folgenden Print-Funktionen sind verfügbar:
Wenn ein Fehler auftritt, liefert printf -1.
Der Format-String enthält zwei Objekt-Typen - einfache Zeichen
und Format-Specifier:
% [flags] [width] [.prec] type
Jede Format-Spezifizierung beginnt mit dem Prozentzeichen (%).
Nach dem % kommt folgendes, in dieser Reihenfolge:
Die Breite wird entweder direkt mit einem Dezimalstellen-String oder
indirekt mit einem Stern (*) gesetzt.
Wenn Sie * verwenden, legt das Argument, das dem (mit diesem Format formatierten) Argument im Aufruf vorhergeht,
(und vom Typ int sein muss) die minimale Feldbreite fest.
Auf keinen Fall führt ein nicht existierendes oder zu ein kleines Feld
dazu, dass ein Wert abgeschnitten wird. Wenn das Ergebnis der Konvertierung
breiter ist als das Feld, wird das Feld einfach so vergrößert, dass
das Ergebnis platz hat.
Im Falle eines Fehlers liefert sprintf den Wert -1.
Die folgenden String-Funktionen sind verfügbar:
Falls index angegeben wird, beginnt die Suche an dieser Position.
Negative Werte werden vom Ende des Strings her gezählt.
strjoin fügt alle Einträge aus array, getrennt durch den angegebenen
separator zusammen, und liefert den Ergebnis-String.
Wenn separator ein Newline-Zeichen ('\n') ist, wird der Ergebnis-String
mit einem Newline-Zeichen abgeschlossen.
So erhält man eine Textdatei mit N Zeilen (jede davon ist mit einem Newline-Zeichen abgeschlossen).
Die Datei wird mit den Funktionen fileread() eingelesen und mit
split in ein Array mit N Strings aufgeteilt und zu dem ursprünglichen
String, der aus der Datei eingelesen wurde, hinzugefügt.
Falls index angegeben wird, beginnt die Suche an dieser Position.
Negative Werte werden vom Ende des Strings her gezählt.
Falls index angegeben wird, beginnt die Suche an dieser Position.
Negative Werte werden vom Ende des Strings her gezählt.
strsplit teilt den String s am angegebenen separator
und speichert die so erzeugten Felder in array.
Wenn separator ein Newline-Zeichen ist ('\n'), wird das letzte Feld
einfach ignoriert, sofern es leer ist.
So erhält man eine Textdatei, die aus N Zeilen besteht (jede durch Newline beendet).
Diese wird durch die Funktion fileread() eingelesen
und in ein Array von N Strings aufgeteilt.
Mit jedem anderen separator ist ein leeres Feld am Ende des Strings gültig.
So entstehen aus "a:b:c:" 4 Felder, das letzte davon ist leer.
Falls index angegeben wird, beginnt die Suche an dieser Position.
Negative Werte werden vom Ende des Strings her gezählt.
Der Wert für length muss positiv sein, andernfalls wird ein leerer
String zurückgegeben. Wenn length nicht angegeben ist, wird der
Reststring (beginnend bei start) zurückgegeben.
Wenn start auf eine Position ausserhalb des Strings deutet, wird
ein leerer String zurückgegeben.
Falls index angegeben wird, beginnt die Suche an dieser Position.
Negative Werte werden vom Ende des Strings her gezählt.
Falls length angegeben wird, wird die aktuelle Länge des gefundenen
Teilstrings in dieser Variablen zurückgegeben.
Reguläre Ausdrücke erlauben es Ihnen, ein Muster innerhalb eines Text-Strings
zu finden. Zum Beispiel würde der reguläre Ausdruck "i.*a" eine Zeichenfolge finden,
die mit 'i' beginnt, gefolgt von einem beliebigen Zeichen ('.') beliebig oft ('*'),
und mit 'a' endet. Er würde auf "is a", "is this a" oder "ia" passen.
Folgende URN Funktionen gibt es:
Die folgenden Zeit-Funktionen sind verfügbar:
Nach 86400000 Millisekunden (d.h. alle 24 Stunden) beginnt der Wert wieder bei 0.
Die t2string-Funktion ohne den optionalen format-Parameter
wandelt die gegebene Zeit t in einen landesspezifischen String in Ortszeit um.
Wird t2string mit einem format-String aufgerufen, so bestimmt dieses
Format die Darstellung des Ergebnisses.
Folgende Ausdrücke können innerhalb des format-Strings benutzt werden:
Alle anderen Zeichen werden unverändert übernommen.
In einfache Hochkommas eingeschlossene Zeichen werden als Text betrachtet und
nicht als Ausdrücke. Zwei aufeinanderfolgende einfache Hochkommas ('') werden
im Ergebnis durch ein einfaches Hochkomma ersetzt.
Die folgenden Objekt-Funktionen sind verfügbar:
Die clrgroup()-Funktion löscht die Gruppen-Flags des gegebenen Objekts,
so dass es nicht mehr Bestandteil einer vorher definierten Gruppe ist.
Wird die Funktion auf ein Objekt angewendet, das andere Objekte enthält (wie
etwa ein UL_BOARD oder UL_NET), so werden die Gruppen-Flags aller enthaltenen
Objekte rekursiv gelöscht, wobei entsprechende Einschränkungen gelten wie bei
setgroup().
Wurde im Editor eine Gruppe definiert, so kann die ingroup()-Funktion
benutzt werden um zu prüfen, ob ein bestimmtes Objekt Bestandteil der Gruppe ist.
Objekte mit einem einzelnen Aufhängepunkt, die in der aktuellen Zeichnung gezielt
selektiert werden können (wie etwa UL_TEXT, UL_VIA, UL_CIRCLE etc.), liefern beim
Aufruf von ingroup() einen Wert ungleich 0 wenn dieser Aufhängepunkt
innerhalb der Gruppe liegt.
Ein UL_WIRE liefert 0, 1, 2 oder 3, je nachdem, ob keiner, der erste, der zweite
oder beide Endpunkte in der Gruppe liegen.
Ein UL_RECTANGLE bzw. UL_FRAME liefert einen Wert ungleich 0 wenn einer oder mehrere seiner
Eckpunkte in der Gruppe liegen.
Der Wert hat Bit 0 gesetzt für die rechte obere Ecke, Bit 1 für die linke obere, Bit 2
für die linke untere und Bit 3 für die rechte untere Ecke.
Übergeordnete Objekte, die ohne Aufhängepunkt sind (UL_NET, UL_SEGMENT, UL_SIGNAL, UL_POLYGON)
oder als Zeichnungsobjekt eigentlich nicht vorhanden sind (UL_SHEET, UL_DEVICESET, UL_SYMBOL, UL_PACKAGE),
liefern einen Wert ungleich 0 wenn eines oder mehrere der Objekte, die sie enthalten,
in der Gruppe liegen. Details zu den Objekt-Hierarchien siehe Objekt-Typen.
Die setgroup()-Funktion setzt die Gruppen-Flags des gegebenen Objekts,
so dass es Bestandteil der Gruppe ist.
Werden keine flags angegeben, so wird das Objekt als Ganzes zur Gruppe
hinzugefügt (d.h. alle seine Aufhängepunkte, falls es mehrere hat).
Hat flags einen Wert ungleich Null, werden nur die Gruppen-Flags der
angegebenen Punkte gesetzt. Für einen UL_WIRE bedeutet dies, dass '1'
das Gruppen-Flag des ersten Punkts setzt, '2' das des zweiten und
'3' beide. Etwaige bereits gesetzte Gruppen-Flags werden durch den
Aufruf von setgroup() nicht verändert.
Wird die Funktion auf ein Objekt angewendet, das andere Objekte enthält (wie
etwa ein UL_BOARD oder UL_NET), so werden die Gruppen-Flags aller enthaltenen
Objekte rekursiv gesetzt mit folgenden Einschränkungen:
Die setvariant()-Funktion setzt die aktuelle Bestückungsvariante auf
die mit name angegebene. Dies kann dazu benutzt werden durch alle
Bauteile zu gehen und deren Daten genau so zu "sehen", wie sie in der gegebenen
Variante definiert sind.
name muss eine gültige Bestückungsvariante referenzieren, die in der
geladenen Zeichnung enthalten ist.
Diese Funktion liefert einen Wert ungleich 0 zurück, falls die angegebene
Bestückungsvariante existiert, ansonsten 0.
Die mittels eines Aufrufs von setvariant() eingestellte Bestückungsvariante
ist nur so lange gültig, bis das User Language Programm endet. Danach ist die
Variante in der Zeichnung wieder die selbe wie vor dem Start des ULPs.
In einem Board kann das Setzen der Bestückungsvariante nur erfolgen,
wenn auch ein konsistenter Schaltplan geladen ist.
Die variant()-Funktion liefert den Namen der aktuellen Bestückungsvariante.
Ist momentan keine Variante ausgewählt, wird ein leerer String ('') geliefert.
Die folgenden XML-Funktionen sind verfügbar:
Die xmlattribute-Funktion liefert den Wert des gegebenen Attributs
attribute für das gegebene Tag tag innerhalb des gegebenen
XML-Codes xml.
Kommt ein Attribut mehrfach in einem Tag vor, so wird der Wert des letzten Vorkommens
geliefert.
Die xmlattributes-Funktion speichert die Namen aller Attribute des
gegebenen Tags innerhalb des gegebenen XML-Codes in array und liefert
die Anzahl der gefundenen Attribute zurück.
Die Reihenfolge stimmt nicht notwendigerweise mit dem gegebenen XML-Code überein.
Kommt ein Attribut mehrfach in einem Tag vor, so erscheint sein Name nur einmal
im array.
Das tag wird in Form eines Pfades angegeben.
Falls der gegebene xml-Code einen Fehler enthält, so ist das Ergebnis
jeglicher XML-Funktionen leer, und es wird dem Benutzer eine Warnung angezeigt,
welche Informationen darüber enthält, an welcher Stelle im ULP bzw. im XML-Code
der Fehler aufgetreten ist. Beachten Sie dabei, dass die Zeilen- und Spaltennummer
im XML-Code sich auf den an diese Funktion als xml-Parameter
übergebenen String bezieht.
Die xmlelement-Funktion liefert das komplette XML-Element des gegebenen
Tags tag innerhalb des gegebenen XML-Codes xml.
Das Ergebnis beinhaltet das äußere XML-Tag des Elements, und kann daher mit den
anderen XML-Funktionen weiterverarbeitet werden.
Leerzeichen, Tabulatoren und Zeilenumbrüche innerhalb des reinen Textes bleiben erhalten.
Die generelle Formatierung der XML-Tags innerhalb des Elements sowie die Reihenfolge von
Element-Attributen können sich jedoch von der im ursprünglichen xml -Code unterscheiden.
Die xmlelements-Funktion arbeitet genau wie xmlelement, liefert
aber alle Instanzen von Elementen mit dem gegebenen tag. Der Rückgabewert
ist die Anzahl der Element, die in array gespeichert wurden.
Das tag wird in Form eines Pfades angegeben.
Falls der gegebene xml-Code einen Fehler enthält, so ist das Ergebnis
jeglicher XML-Funktionen leer, und es wird dem Benutzer eine Warnung angezeigt,
welche Informationen darüber enthält, an welcher Stelle im ULP bzw. im XML-Code
der Fehler aufgetreten ist. Beachten Sie dabei, dass die Zeilen- und Spaltennummer
im XML-Code sich auf den an diese Funktion als xml-Parameter
übergebenen String bezieht.
Die xmltags-Funktion liefert die Namen aller Tags auf der obersten Ebene des
gegebenen Tags tag innerhalb des gegebenen XML-Codes xml.
Der Rückgabewert ist die Anzahl der in array gespeicherten Tag-Namen.
Jeder Tag-Name wird nur einmal geliefert, auch wenn er mehrfach im XML-Code vorkommt.
Das tag wird in Form eines Pfades angegeben.
Falls der gegebene xml-Code einen Fehler enthält, so ist das Ergebnis
jeglicher XML-Funktionen leer, und es wird dem Benutzer eine Warnung angezeigt,
welche Informationen darüber enthält, an welcher Stelle im ULP bzw. im XML-Code
der Fehler aufgetreten ist. Beachten Sie dabei, dass die Zeilen- und Spaltennummer
im XML-Code sich auf den an diese Funktion als xml-Parameter
übergebenen String bezieht.
Die xmltext-Funktion liefert den Text des gegebenen Tags tag
innerhalb des XML-Codes xml.
Alle Tags innerhalb des Textes werden entfernt, Leerzeichen, Tabulatoren
und Zeilenumbrüche bleiben erhalten.
Das tag wird in Form eines Pfades angegeben.
Falls der gegebene xml-Code einen Fehler enthält, so ist das Ergebnis
jeglicher XML-Funktionen leer, und es wird dem Benutzer eine Warnung angezeigt,
welche Informationen darüber enthält, an welcher Stelle im ULP bzw. im XML-Code
der Fehler aufgetreten ist. Beachten Sie dabei, dass die Zeilen- und Spaltennummer
im XML-Code sich auf den an diese Funktion als xml-Parameter
übergebenen String bezieht.
Die allgemeine Syntax von Builtin-Statements ist
Beachten Sie, dass es sich bei statement um eine Compound-Statement
handeln kann, wie in
Das board-Statement öffnet einen Board-Kontext wenn das gegenwärtige
Editor-Fenster ein Board enthält. Eine Variable vom Typ
UL_BOARD wird angelegt und erhält den Namen,
den identifier angibt.
Sobald der Board-Kontext erfolgreich geöffnet wurde und eine Board-Variable
angelegt ist, wird statement ausgeführt. Innerhalb des
Gültigkeitsbereichs von statement kann man auf die Board-Variable
zugreifen, um weitere Daten aus dem Board zu erhalten.
Wenn das gegenwärtige Editor-Fenster kein Board enthält, wird eine
Fehlermeldung ausgegeben, und das ULP wird beendet.
Das deviceset-Statement öffnet einen Device-Set-Kontext wenn das gegenwärtige
Editor-Fenster ein Device-Set enthält. Eine Variable vom Typ
UL_DEVICESET wird angelegt und erhält den Namen,
den identifier angibt.
Sobald der Device-Set-Kontext erfolgreich geöffnet wurde und eine Device-Set-Variable
angelegt ist, wird statement ausgeführt. Innerhalb des
Gültigkeitsbereichs von statement kann man auf die Device-Set-Variable
zugreifen, um weitere Daten aus dem Device-Set zu erhalten.
Wenn das gegenwärtige Editor-Fenster kein Device-Set enthält, wird eine
Fehlermeldung ausgegeben, und das ULP wird beendet.
Das library-Statement öffnet einen Library-Kontext wenn das gegenwärtige
Editor-Fenster eine Library enthält. Eine Variable vom Typ
UL_LIBRARY wird angelegt und erhält den Namen,
den identifier angibt.
Sobald der Library-Kontext erfolgreich geöffnet wurde und eine Board-Variable
angelegt ist, wird statement ausgeführt. Innerhalb des
Gültigkeitsbereichs von statement kann man auf die Library-Variable
zugreifen, um weitere Daten aus der Bibliothek zu erhalten.
Wenn das gegenwärtige Editor-Fenster keine Bibliothek enthält, wird eine
Fehlermeldung ausgegeben, und das ULP wird beendet.
Das module-Statement öffnet einen Modul-Kontext, wenn im
Editor-Fenster gerade ein Modul editiert wird. Eine Variable vom Typ
UL_MODULE wird angelegt und erhält den Namen,
den identifier angibt.
Sobald der Modul-Kontext erfolgreich geöffnet wurde und eine UL_MODULE-Variable
angelegt ist, wird statement ausgeführt. Innerhalb des
Gültigkeitsbereichs von statement kann man auf die UL_MODULE-Variable
zugreifen, um weitere Daten aus dem Modul zu erhalten.
Wenn im Editor-Fenster gerade kein Modul editiert wird, wird eine
Fehlermeldung ausgegeben, und das ULP wird beendet.
Das output-Statement öffnet eine Datei mit dem Namen filename
und dem Parameter mode für die Ausgabe mit nachfolgenden
printf()-Aufrufen. Sobald die Datei erfolgreich geöffnet wurde, wird
statement ausgeführt, und danach wird die Datei geschlossen.
Wenn die Datei nicht geöffnet werden kann, wird eine Fehlermeldung ausgegeben,
und das ULP wird beendet.
Standardmäßig wird die erzeugte Datei in das Projekt Verzeichnis
geschrieben.
Mode-Parameter können in beliebiger Kombination und Reihenfolge
angegeben werden. Allerdings ist nur der letzte aus a und w
bzw. t und b signifikant.
Die Angabe "abtw" würde zum Beispiel eine Textdatei öffnen (entsprechend "wt").
Das package-Statement öffnet einen Package-Kontext wenn das gegenwärtige
Editor-Fenster ein Package enthält. Eine Variable vom Typ
UL_PACKAGE wird angelegt und erhält den Namen,
den identifier angibt.
Sobald der Package-Kontext erfolgreich geöffnet wurde und eine Package-Variable
angelegt ist, wird statement ausgeführt. Innerhalb des
Gültigkeitsbereichs von statement kann man auf die Package-Variable
zugreifen, um weitere Daten aus dem Package zu erhalten.
Wenn das gegenwärtige Editor-Fenster kein Package enthält, wird eine
Fehlermeldung ausgegeben, und das ULP wird beendet.
Das schematic-Statement öffnet einen Schaltplan-Kontext wenn das gegenwärtige
Editor-Fenster einen Schaltplan enthält. Eine Variable vom Typ
UL_SCHEMATIC wird angelegt und erhält den Namen,
den identifier angibt.
Sobald der Schaltplan-Kontext erfolgreich geöffnet wurde und eine UL_SCHEMATIC-Variable
angelegt ist, wird statement ausgeführt. Innerhalb des
Gültigkeitsbereichs von statement kann man auf die UL_SCHEMATIC-Variable
zugreifen, um weitere Daten aus dem Schaltplan zu erhalten.
Wenn das gegenwärtige Editor-Fenster keinen Schaltplan enthält, wird eine
Fehlermeldung ausgegeben, und das ULP wird beendet.
Das sheet-Statement öffnet einen UL_SHEET-Kontext, wenn das gegenwärtige
Editor-Fenster eine Schaltplanseite enthält. Eine Variable vom Typ
UL_SHEET wird angelegt und erhält den Namen,
den identifier angibt.
Sobald der UL_SHEET-Kontext erfolgreich geöffnet wurde und eine UL_SHEET-Variable
angelegt ist, wird statement ausgeführt. Innerhalb des
Gültigkeitsbereichs von statement kann man auf die UL_SHEET-Variable
zugreifen, um weitere Daten aus der Seite zu erhalten.
Wenn das gegenwärtige Editor-Fenster keine Schaltplanseite enthält, wird eine
Fehlermeldung ausgegeben, und das ULP wird beendet.
Das symbol-Statement öffnet einen Symbol-Kontext wenn das gegenwärtige
Editor-Fenster ein Symbol enthält. Eine Variable vom Typ
UL_SYMBOL wird angelegt und erhält den Namen,
den identifier angibt.
Sobald der Symbol-Kontext erfolgreich geöffnet wurde und eine Symbol-Variable
angelegt ist, wird statement ausgeführt. Innerhalb des
Gültigkeitsbereichs von statement kann man auf die Symbol-Variable
zugreifen, um weitere Daten aus dem Symbol zu erhalten.
Wenn das gegenwärtige Editor-Fenster kein Symbol enthält, wird eine
Fehlermeldung ausgegeben, und das ULP wird beendet.
In den folgenden Abschnitten werden die User-Language-Dialoge detailliert beschrieben:
Es gibt folgende vordefinierte Dialoge:
Die dlgDirectory-Funktion zeigt einen Verzeichnis-Dialog in dem der Benutzer ein Verzeichnis
selektieren kann.
Title zeigt den Titel des Dialogs.
Wenn Start nicht leer ist, wird diese Angabe als Startpunkt für dlgDirectory verwendet.
Die Funktionen dlgFileOpen und dlgFileSave zeigen einen Datei-Dialog, aus dem
der Benutzer eine Datei selektieren kann.
Title wird als Titel des Dialogs verwendet.
Ist Start nicht leer, wird diese Angabe als Startpunkt für den Dialog verwendet.
Ansonsten wird das aktuelle Verzeichnis verwendet.
Nur Dateien, die der Angabe von Filter entsprechen, werden angezeigt. Wird kein
Filter angegeben, werden alle Dateien angezeigt.
Filter kann entweder ein einfacher Pattern sein (wie in "*.brd"), eine Liste von
Patterns (wie in "*.bmp *.jpg") oder kann sogar beschreibenden Text enthalten, wie in
"Bitmap-Dateien (*.bmp)". Falls die "Dateityp" Combo-Box des Datei-Dialogs mehrere
Einträge haben soll, müssen diese durch zwei Semikolons voneinander getrennt werden, wie in
"Bitmap-Dateien (*.bmp);;Andere Bilddateien (*.jpg *.png)".
Die dlgMessageBox-Funktion zeigt die angegebene Message in einem modalen Dialog-Fenster und
wartet darauf, dass der Benutzer eine der Schaltflächen, die über
button_list definiert wurden, selektiert.
Falls Message HTML-Tags enthält, so müssen die Zeichen '<', '>' und '&',
damit sie als solche angezeigt werden, als "<", ">" bzw. "&" angegeben
werden.
button_list ist eine optionale Liste durch Komma getrennter Strings, die einen Satz von
Schaltflächen, die unten im Dialog-Fenster angezeigt werden, definiert.
Die erste Schaltfläche in button_list wird die Default-Schaltfläche (sie wird gedrückt, wenn
der Benutzer ENTER drückt), und der letzte Eintrag in der Liste wird der "Cancel-Button", der gewählt
wird, wenn der Benutzer Esc drückt oder das Dialog-Fenster einfach schließt.
Sie können eine andere Schaltfläche als Default-Button definieren, indem Sie den String mit
einem '+' beginnen. Wollen Sie eine andere Schaltfläche als Cancel-Button definieren, stellen
Sie dem String ein '-' voran.
Um einen Schaltflächen-Text mit einem '+' oder '-' zu beginnen, muss das Zeichen mit einem
Escape-Zeichen markiert werden.
Enthält der Text ein '&', wird das folgende Zeichen zum Hotkey. Wenn der Benutzer
die entsprechende Taste drückt, wird diese Schaltfläche gewählt.
Um das Zeichen '&' im Schaltflächen-Text zu verwenden, muss es mit einem
Escape-Zeichen markiert werden.
Dem Dialog-Fenster kann ein Icon mitgegeben werden, indem das erste Zeichen in Message auf
Das dlgCell-Statement definiert die Lage einer Cell in einem
Grid-Layout-Kontext.
Der Index für Reihe (row) und Spalte (column) beginnt mit 0, so das die obere linke Cell den Index (0, 0) hat.
Mit zwei Parametern wird das Dialog-Objekt, das in statement angegeben wurde, in einer Cell
an der Stelle row und column plaziert.
Mit vier Parametern erstreckt sich das Objekt über alle Cells von row/column
bis zu row2/column2.
Standardmäßig enthält dlgCell ein dlgHBoxLayout.
Enthält eine Cell mehr als ein Dialog-Objekt, werden diese nebeneinander horizontal angeordnet.
Das dlgCheckBox-Statement definiert eine Checkbox mit dem angegebenen Text.
Wenn Text ein '&' enthält, wird das folgende Zeichen als Hotkey markiert.
Wenn der Benutzer Alt+hotkey drückt, wird die Checkbox selektiert/deselektiert.
Um ein '&'-Zeichen im Text zu verwenden, muss er mit einem Escape-Zeichen markiert werden.
dlgCheckBox wird hauptsächlich in dlgGroup benutzt,
kann aber auch anders verwendet werden.
Wenn ein Benutzer eine dlgCheckBox wählt, wird die entsprechende Checked-Variable auf
1 gesetzt, andernfalls ist sie auf 0 gesetzt.
Der ursprüngliche Wert von Checked definiert, ob eine Checkbox anfänglich selektiert ist oder nicht.
Wenn Checked ungleich 0 ist, ist die Checkbox defaultmäßig selektiert.
Das optionale statement wird jedesmal ausgeführt, wenn Sie die dlgCheckBox selektieren/deselektieren.
Das dlgComboBox-Statement definiert ein Combo-Box-Auswahlfeld mit dem Inhalt von array.
Selected reflektiert den Index des selektieren Combo-Box-Eintrags. Der erste Eintrag hat den Index 0.
Jedes Element von array legt den Inhalt eines Eintrags in der Combo-Box fest.
Keiner der Strings in array darf leer sein (sollte ein leerer String existieren,
werden alle folgenden, inklusive des leeren, ignoriert).
Das optionale statement wird jedesmal ausgeführt, wenn die Auswahl in der dlgComboBox verändert wird.
Ist der Ausgangswert von Selected ausserhalb des Bereichs der Indices von array,
wird dieser auf 0 gesetzt.
Die dlgDialog-Funktion, die durch block definiert wird.
Das ist das einzige Dialog-Objekt das tatsächlich eine User-Language-Builtin-Funktion ist.
Sie kann überall wo ein Funktionsaufruf erlaubt ist, verwendet werden.
block enthält normalerweise andere Dialog-Objekte.
Man kann aber auch andere User-Language-Statements verwenden, zum Beispiel, um bedingungsabhängig
dem Dialog Objekte hinzuzufügen (siehe das zweite der folgenden Beispiele).
Standardmäßig enthält dlgDialog ein dlgVBoxLayout,
so dass man sich bei einem einfachen Dialog um das Layout kein Gedanken machen muss.
Ein dlgDialog sollte an einer Stelle den Aufruf der dlgAccept()
-Funktion enthalten, um dem Benutzer zu erlauben, den Dialog zu schließen und dessen Inhalt zu akzeptieren.
Wenn Sie nur eine einfache Message-Box oder einen einfachen Dialog brauchen, können Sie statt dessen
auch einen der Vordefinierten Dialoge verwenden.
Das dlgGridLayout-Statement öffnet einen Grid-Layout-Kontext.
Das einzige Dialog-Objekt, das direkt in statement verwendet werden kann, ist
dlgCell, das die Position eines Dialog-Objekts
im Grid-Layout festlegt.
Die Indices für row und column beginnen mit 0, so dass die obere linke Cell den
Index (0, 0) hat.
Das dlgGroup-Statement definiert eine Gruppe mit dem gegebenen Title.
Standardmäßig enthält dlgGroup ein dlgVBoxLayout,
so braucht man sich bei einer einfachen Group keine Gedanken zum Layout machen.
dlgGroup wird hauptsächlich für einen Satz von Radio-Buttons
oder Check-Boxes verwendet, kann aber auch jedes andere beliebige
Objekt in statement enthalten.
Das dlgHBoxLayout-Statement öffnet einen Horizontal-Box-Layout-Kontext für das
angegebene statement.
Das dlgIntEdit-Statement definiert ein Integer-Eingabe-Feld mit einem in Value
angegebenen Wert.
Ist Value ursprünglich ausserhalb des Bereichs Min und Max,
wird er auf diesen Bereich limitiert.
Das dlgLabel-Statement definiert ein Label mit dem angegebenen Text.
Text kann entweder ein fester String wie "Hello" sein, oder eine String-Variable.
Falls Text HTML-Tags enthält, so müssen die Zeichen '<', '>' und '&',
damit sie als solche angezeigt werden, als "<", ">" bzw. "&" angegeben
werden.
Externe Hyperlinks im Text werden mit dem entsprechenden
Anwendungsprogramm geöffnet.
Wenn der Update-Parameter nicht 0 ist und Text eine String-Variable,
kann deren Inhalt im statement z. B. eines dlgPushButton modifiziert werden,
wodurch das Label automatisch aktualisiert wird. Das ist natürlich nur sinnvoll wenn Text eine
eindeutig bestimmte String-Variable ist (und beispielsweise keine Loop-Variable eines for-Statements).
Enthält Text ein '&'-Zeichen, und kann das Objekt, das auf das Label
folgt, den Keyboard-Fokus bekommen, wird das folgende Zeichen zum Hot-Key.
Drückt der Benutzer Alt+hotkey, wird das Objekt, das direkt nach dlgLabel definiert
wurde, aktiv.
Um ein '&'-Zeichen direkt im Text zu verwenden, muss man es mit einem
Escape-Zeichen markieren.
Das dlgListBox-Statement definiert ein List-Box-Auswahl-Feld mit dem Inhalt
von array.
Selected gibt den Index des selektierten List-Box-Eintrags wieder.
Der erste Eintrag hat den Index 0.
Jedes Element von array legt den Inhalt einer Zeile in der List-Box fest.
Keiner der Strings in array darf leer sein (sollte ein leerer String existieren,
werden alle folgenden, inklusive des leeren, ignoriert).
Das optionale statement wird immer dann ausgeführt, wenn der Benutzer einen Doppelklick
auf einen Eintrag der dlgListBox ausführt (siehe dlgSelectionChanged
für Hinweise wie das statement auch bei einer bloßen Änderung der Auswahl in der
Liste aufgerufen werden kann.
Ist der Ausgangswert von Selected ausserhalb des Index-Bereichs von array,
wird kein Eintrag selektiert.
Das dlgListView-Statement definiert ein mehrspaltiges List-View-Auswahl-Feld mit dem Inhalt,
der in array angegeben ist.
Headers definiert die durch Tabulatoren getrennte Liste der Spalten-Überschriften.
Selected gibt den Index des selektierten List-View-Eintrags von array wieder
(die Reihenfolge in der die Einträge tatsächlich angezeigt werden, kann unterschiedlich sein,
da der Inhalt einer dlgListView in den verschiedenen Spalten sortiert werden kann).
Der erste Eintrag hat den Index 0.
Sort gibt an, nach welcher Spalte der List-View sortiert werden soll. Die linke
Spalte hat die Nummer 1. Das Vorzeichen dieses Parameters legt die Richtung der
Sortierung fest (positive Werte sortieren in aufsteigender Reihenfolge). Falls Sort
den Wert 0 hat, oder außerhalb der gültigen Anzahl von Spalten liegt, wird nicht
sortiert. Der Rückgabewert von Sort spiegelt die vom Benutzer durch Anklicken
der Spalten-Header gewählte Sortierspalte und -richtung wieder. Standardmäßig wird
nach der ersten Spalte, in aufsteigender Richtung sortiert.
Jedes Element von array legt den Inhalt einer Zeile in der List-View fest und
muss durch Tabulatoren getrennte Werte enthalten. Sind weniger Werte eines Elements in
array definiert als im Headers-String vorgegeben, bleiben die restlichen
Felder leer. Sind mehr Werte eines Element in array angegeben als
im Headers-String, werden die überzählgen stillschweigend ignoriert.
Keiner der Strings in array darf leer sein (sollte ein leerer String
vorhanden sein, werden alle nachfolgenden, inklusive dem Leerstring ignoriert).
Enthält ein Listeneintrag Zeilenumbrüche ('\n'), so wird er entsprechend
mehrzeilig dargestellt.
Das optionale statement wird ausgeführt, wann immer der Benutzer auf einen Eintrag
in dlgListView doppelklickt (siehe dlgSelectionChanged
für Hinweise wie das statement auch bei einer bloßen Änderung der Auswahl in der
Liste aufgerufen werden kann.
Ist der Ausgangswert von Selected ausserhalb des Index-Bereichs von array,
wird kein Eintrag selektiert.
Ist Headers ein leerer String, wird das erste Element von array als
Header-String benutzt. Folglich ist der Index des ersten Eintrags dann 1.
Der Inhalt von dlgListView kann in einer beliebigen Spalte sortiert werden, indem man
auf dessen Spalten-Header klickt. Die Spalten-Reihenfolge kann man durch Anklicken&Ziehen
des Spalten-Headers verändern. Beachten Sie, dass keine dieser Änderunen eine Auswirkung
auf den Inhalt von array hat.
Soll der Inhalt alphanumerisch sortiert werden, kann ein numeric string[]-Array
verwendet werden.
Das dlgPushButton-Statement definiert einen Push-Button mit dem angegebenen Text.
Enthält Text ein '&'-Zeichen, wird das folgende Zeichen zum Hot-Key. Wenn der
Benutzer dann Alt+hotkey drückt, wird dieser Button selektiert.
Soll ein '&'-Zeichen im Text verwendet werden, muss es mit einem
Escape-Zeichen markiert werden.
Beginnt Text mit einem '+'-Zeichen, wird dieser Button der Default-Button.
Dieser wird betätigt, wenn der Benutzer ENTER drückt.
Wenn der Benutzer einen dlgPushButton selektiert, wird das angegebene statement
ausgeführt.
Das dlgRadioButton-Statement definiert einen Radio-Button mit dem angegebenen Text.
Enthält Text ein '&'-Zeichen, wird das folgende Zeichen zum Hot-Key. Wenn der
Benutzer dann Alt+hotkey drückt, wird dieser Button selektiert.
Soll ein '&'-Zeichen im Text verwendet werden, muss es mit einem
Escape-Zeichen markiert werden.
dlgRadioButton kann nur innerhalb einer dlgGroup verwendet werden.
Wenn der Benutzer einen dlgRadioButton selektiert, wird der Index dieses Buttons innerhalb
der dlgGroup in der Selected-Variablen gespeichert.
Das optionale statement wird ausgeführt, wenn ein dlgRadioButton selektiet wird.
Das dlgRealEdit-Statement definiert ein Real-Eingabe-Feld mit dem angegebenen Value (Wert).
Wenn Value ursprünglich ausserhalb des Bereiches von Min und Max liegt,
wird dieser auf diese Werte begrenzt.
Das dlgSpacing-Statement definiert zusätzlichen Abstand in einem Vertical- bzw.
Horizontal-Box-Layout-Kontext.
Size definiert die Anzahl der Pixel des zusätzlichen Abstands.
Das dlgSpinBox-Statement definiert ein Spin-Box-Auswahl-Feld mit dem angegebenen Value.
Wenn Value ursprünglich ausserhalb des Bereiches von Min und Max liegt,
wird dieser auf diese Werte begrenzt.
Das dlgStretch-Statement definiert einen leeren dehnbaren Abstand in einem Vertical-
oder einem Horizontal-Box-Layout-Kontext.
Factor definiert den Dehnungsfaktor des Abstands.
Das dlgStringEdit-Statement definiert ein einzeiliges Text-Eingabe-Feld mit dem angegebenen Text.
Wird History angegeben, so werden die Strings, die der Benutzer der
Reihe nach eingibt, in diesem Array gespeichert. Das Eingabe-Feld enthält dann
einen Button, über den der Benutzer aus bereits eingegeben Strings auswählen kann.
Wird eine Size größer als Null angegeben, so werden maximal so viele
Strings im Array gespeichert. Enthält History beim Öffnen des Dialogs
bereits Daten, so werden diese zur Initialisierung der History verwendet. Die zuletzt
erfolgte Benutzereingabe wird bei Index 0 gespeichert.
Das dlgTabPage-Statement definiert eine Tab-Page mit dem angegebenen Title, die
statement enthält.
Enthält Title ein '&'-Zeichen, wird das folgende Zeichen zum Hot-Key.
Drückt der Benutzer Alt+hotkey, wird diese Tab-Page geöffnet.
Soll im Text ein '&'-Zeichen verwendet werden, muss es mit einem
Escape-Zeichen markiert werden.
Tab-Pages können nur innerhalb eines dlgTabWidget verwendet werden.
Standardmäßig enthält dlgTabPage ein dlgVBoxLayout,
so dass man sich bei einer einfachen Tab-Page nicht um das Layout kümmern muss.
dlgTabWidget definiert einen Platzhalter für einen Satz von Tab-Pages.
tabpages ist eine Liste eines oder mehrerer dlgTabPage-Objekte.
Es dürfen keine anderen Dialog-Objekte in dieser Liste enthalten sein.
Index gibt an, welche Seite von Beginn an im Vordergrund sein soll. Wenn
eine andere Seite angewählt wird, ändert sich die Variable Index dementsprechend.
Die erste Seite hat (unabhängig vom Titel) als Index den Wert 0.
Das dlgTextEdit-Statement definiert ein mehrzeiliges text-Eingabe-Feld mit dem angegebenen Text.
Die einzelnen Zeilen in Text müssen mit einem Newline-Zeichen ('\n') getrennt werden.
Beliebige Leerzeichen am Ende der Text-Zeilen werden gelöscht.
Leere Zeilen am Endes des Textes werden vollständig entfernt.
Das dlgTextView-Statement definiert ein mehrzeiliges Text-Viewer-Feld mit dem angegebenen Text.
Der Text darf HTML-Tags enthalten.
Externe Hyperlinks im Text werden mit dem entsprechenden
Anwendungsprogramm geöffnet.
Falls Link angegeben wird und der Text Hyperlinks enthält, wird statement
ausgeführt wenn der Benutzer auf einen Hyperlink klickt, wobei der Wert von Link
auf das gesetzt wird, was im <a href=...>-Tag als Wert für href angegeben wurde.
Ist die Link-Variable nach der Ausführung von statement nicht leer, so
findet die standardmäßige Behandlung von Hyperlinks statt. Dies ist auch der Fall, wenn
Link vor dem Öffnen von dlgTextView bereits Text enthält, was es ermöglicht,
zu Beginn an eine vorgegebene Textstelle zu positionieren.
Ist ein Link angegeben, so werden externe Hyperlinks nicht geöffnet.
Das dlgVBoxLayout-Statement öffnet einen Vertical-Box-Layout-Kontext für das angegebene
statement.
Standardmäßig enthält dlgDialog ein dlgVBoxLayout,
so dass man sich bei einfachen Dialogen keine Gedanken zum Layout machen muss.
Es gibt verschiedene Layout-Kontexte, wie grid, horizontal
oder vertical.
Die Sonder-Objekte dlgStretch und dlgSpacing
können verwendet werden, um die Verteilung der Abstände zu verfeinern.
Um zwei Buttons zu definieren, die sich bis an den rechten Rand des Dialogs erstrecken, schreiben Sie
Die dlgAccept-Funktion schließt dlgDialog,
und kehrt zurück nachdem das aktuelle Statement beendet wurde.
Jede Änderung, die der Benutzer im Dialog macht, wird übernommen und an die Variablen,
die bei der Definition der Dialog-Objekte angegeben
wurden, kopiert.
Die optionale Angabe von Result ist der Wert der vom Dialog geliefert wird.
Das sollte typischerweise ein positiver Integer-Wert sein.
Wird kein Wert angegeben, ist der Standardwert gleich 1.
Bitte beachten Sie, dass dlgAccept() wieder in die normale Programm-
Routine zurückkehrt, so wie in dieser Sequenz:
Die dlgRedisplay-Funktion wird aufgerufen, um den dlgDialog,
nach dem Verändern von Variablen, die in den Dialog-Objekten
definiert wurden, zu aktualisieren.
Sie brauchen nur dlgRedisplay() aufrufen, wenn der Dialog während der Ausführung
des Programmcodes aktualisiert werden soll.
Im folgenden Beispiel wird der Status auf "Running..." gesetzt und dlgRedisplay()
muss aufgerufen werden, um die Änderungen für die Ausführung des Programms wirksam
zu machen. Nach dem Ändern des Status auf "Finished.", braucht man dlgRedisplay()
nicht mehr aufrufen, da alle Dialog-Objekte nach dem Verlassen des Statements aktualisiert
werden.
Die dlgReset-Funktion kopiert die ursprünglichen Werte in alle
Dialog-Objekte des aktuellen
dlgDialog zurück.
Alle Änderungen, die der Benutzer im Dialog machte, werden verworfen.
Ein Aufruf von dlgReject() impliziert einen
Aufruf von dlgReset().
Die dlgReject-Funktion veranlasst, dass dlgDialog
geschlossen wird und nach dem Beenden der aktuellen Statement-Sequenz zurückkehrt.
Jede Änderung, die der Benutzer im Dialog machte, wird verworfen.
Die Variablen, die während der Definition der Dialog-Objekte
übergeben wurden, werden auf Ihren ursprünglichen Wert zurückgesetzt.
Der optionale Wert für Result wird vom Dialog zurückgegeben.
Typischerweise ist das 0 oder ein negativer Integer-Wert.
Wird kein Wert angegeben, ist er standardmäßig 0.
Beachten Sie, dass dlgReject() wieder in die normale Programm-Routine zurückkehrt,
wie in dieser Sequenz:
Der Aufruf von dlgReject() impliziert den Aufruf von dlgReset().
Die dlgSelectionChanged-Funktion kann innerhalb eines Listen-Kontextes verwendet
werden um festzustellen, ob das "statement" einer dlgListView oder dlgListBox
aufgerufen wurde weil der Benutzer einen Doppelklick auf ein Listenelement gemacht hat,
oder weil sich lediglich die Auswahl in der Liste geändert hat.
Falls das "statement" einer dlgListView oder dlgListBox keinen
Aufruf von dlgSelectionChanged enthält, so wird das "statement" nur dann
ausgeführt, wenn der Benutzer einen Doppelklick auf ein Listenelement macht.
Soll ein ULP auf bloße Änderungen der Auswahl in der Liste reagieren, so kann es
dlgSelectionChanged im "statement" der Liste aufrufen. Hierdurch wird
erreicht, dass das "statement" auch bei einer Änderungen der Auswahl in der Liste
ausgeführt wird.
Ist beim Öffnen des Dialogs bereits ein Listenelement ausgewählt, und das "statement"
der Liste enthält einen Aufruf von dlgSelectionChanged, so wird das
"statement" ausgeführt und dlgSelectionChanged liefert einen Wert ungleich 0,
um den anfänglichen Wechsel von "keine Auswahl" zu einer konkreten Auswahl anzuzeigen.
Etwaige spätere programmtechnische Veränderungen der Strings oder der Auswahl der Liste
führen nicht zu einer automatischen Ausführung des "statements" der Liste. Dies
ist wichtig zu bedenken, falls das ausgewählte Listenelement ein anderes Dialogobjekt
steuert, beispielsweise ein dlgTextView, welches eine ausführlichere
Darstellung des ausgewählten Listenelements anzeigt.
Dazu müssen Sie dem Zeichen einen Backslash voranstellen, so wie in
Beachten Sie, dass hier in Wirklichkeit zwei Backslash-Zeichen verwendet wurden,
da diese Zeile erst durch den User-Language-Parser geht, der den ersten Backslash
abzieht.
Text wird zu HTML-Text, wenn die erste Zeile ein Tag enthält.
Wenn das nicht der Fall ist und Sie den Text formatieren wollen,
schließen Sie den ganzen Text in das <html>...</html> Tag ein.
Die folgende Tabelle listet alle unterstützten HTML-Tags mit ihren verfügbaren Attributen auf:
b in Board-Dateien
n steht für eine einstellige Zahl von
1..9. Höhere Ziffern zeigen ältere Dateien an.
Die feste Position des Zeichens '#' ermöglicht das einfache Löschen
aller Backup-Dateien aus dem Betriebssystem heraus mit *.?#?
als "Wildcard".
Bitte beachten Sie, dass Backup-Dateien mit derselben Ziffer 'n'
nicht notwendigerweise konsistente Paare von Platinen- und
Schaltplan-Dateien repräsentieren.
Die maximale Zahl von Backup-Kopien kann im
Backup-Dialog
gesetzt werden.
Diese Sicherungskopie erhält den Namen nach folgendem Schema:
b in Board-Dateien
Die Sicherheits-Backup-Datei wird nach einem erfolgreichen Abspeichern
der Zeichnung wieder gelöscht. Kann die Zeichnung nicht mit dem WRITE-Befehl
gespeichert werden (z. B. aufgrund eines Stromausfalls), benennen Sie
die Datei einfach um. So kann sie als normale Schaltplan-, Board- bzw.
Bibliotheksdatei wieder geladen werden.
Die Sicherungsintervall kann im Backup-Dialog gesetzt werden.
Der Lock-Mechanismus benutzt eine Lock-Datei namens .file.lck, wobei file
der Name der zu sperrenden Datei ist.
Wenn eine bereits gesperrte Datei geladen werden soll, bietet EAGLE in einem Dialog
verschiedene Möglichkeiten, wie Speichern der Datei unter einem anderen Namen, Wiederholen,
Löschen oder Ignorieren des Locks an.
Wiederholen kann gewählt werden, sobald der Lock-Inhaber die Datei geschlossen hat.
Das Löschen des Locks kann fehlschlagen, wenn Sie nicht die entsprechende Dateirechte für
die Lock-Datei haben. Es ist ratsam den Lock-Inhaber zu informieren, wenn Sie seine Lock-Datei
gelöscht haben. Die Option Löschen ist auch nützlich, falls die Lock-Datei, zum Beispiel nach
einem unbeabsichtigen Stromausfall übrig geblieben ist.
Wenn Sie den Lock ignorieren, können Sie die Datei editieren, aber nur
unter einen anderen Namen speichern. Diese Option ist bequem, wenn Sie die Datei nicht
verändern, sondern nur zur Überprüfung oder für Testzwecke öffnen wollen.
Im CAM-Prozessor und bei Dateien mit nur Leserechten wird keine Lock-Datei erzeugt.
Das File-Locking kann im Options-Menü des Control-Panels unter Datensicherung / Sperrschutz oder
mit dem SET-Befehl aus- und eingeschaltet werden.
Wenn das File-Locking ausgeschaltet ist, beachtet EAGLE die Locks von anderen Anwendern mit
eingeschaltetem Locking (und berichtet dies wenn nötig). Lediglich eigene Locks werden nicht erzeugt.
Die Lock-Einstellung wird in der Eaglerc-Datei gespeichert.
Unter normalen Umständen sind Platine und Schaltplan immer konsistent,
sofern sie nicht separat editiert worden sind (in diesem Fall
würden Sie mit der Meldung
Die Forward&Back-Annotation ist nicht aktiv!
gewarnt worden sein).
Wenn ein Platinen/Schaltplan-Paar geladen wird, überprüft das Programm
Konsistenzmarkierungen in den Dateien, um zu sehen, ob sie noch
konsistent sind. Weisen diese Markierungen auf eine Inkonsistenz hin,
dann bietet Ihnen das Programm an, einen
Electrical Rule Check (ERC) auszuführen,
der beide Dateien überprüft.
Fällt die Prüfung positiv aus, werden die Dateien als konsistent markiert,
und die Forward&Back-Annotation wird aktiviert.
Werden die Dateien als inkonsistent erkannt, erscheint das ERC-Protokoll
in einem Dialog und die Forward&Back-Annotation wird
nicht aktiviert.
Bitte erschrecken Sie nicht, wenn zahlreiche Fehlermeldungen
erscheinen. In den meisten Fällen reduziert schon eine einzige Korrektur
(wie die Umbenennung eines Netzes) die Zahl der Meldungen für den
nächsten Durchlauf erheblich.
PADARRAY
Optionen
SIDES Kann L, R, LR, T, B, oder TB sein. Zeigt an, auf welcher Seite des Rechtecks die Pads gezeichnet werden sollen.
Wobei L=links, R=rechts, T=Top (oben), B=Bottom (unten) ist. BASE Das ist der Basisname, der für das Benennen der Pads verwendet wird. Das erste Pad wird dementsprechend
<base><start> und die nachfolgenden Pads mit einem aufsteigenden numerischen Index benannt (z.B.
ADDR1, ADDR2 ... ADDRn). Das letzte platzierte Pad erhält den entsprechenden Namen <base><start+count-1>. START Das ist der Start-Index für die Benennung der Pads. Der Name des ersten Pads ist <base><start>. COUNT Die Anzahl der Pads, die platziert werden sollen. DX Der Abstand zwischen den Pads in x-Richtung. DY Der Abstand zwischen den Pads in y-Richtung. UNIT Gültige Werte sind: MIC (für Micron), MM (Millimeter), MIL (mil = 0.001 inch), INCH. DRAWRECT ON oder OFF. Bestimmt, ob beim Platzieren auch ein Rechteck im Layer tPlace gezeichnet werden soll. INCLUDENAME ON oder OFF. Bestimmt, ob ein Textobjekt >NAME platziert werden soll. INCLUDEVALUE ON oder OFF. Bestimmt, ob ein Textobjekt >VALUE platziert werden soll. DELETEOBJS ON oder OFF. Bestimmt, ob vor dem Anlegen des Arrays Pads, Labels und Wire-Objekte gelöscht werden sollen. PASTE
Siehe auch CUT,
COPY,
GROUP
PASTE [ orientation ] [ offset ] filename
Befinden sich in der mit PASTE einzufügenden Zeichnung modifizierte Devices oder Packages,
die in einer älteren Version schon im Schaltplan oder im Layout verwendet wurden, wird
automatisch ein Library-Update gestartet, um die Bauteile
durch die neueren aus der Zwischenablage zu ersetzen.
Achtung: Nach einem Library-Update sollten Sie immer einen Design Rule Check (DRC)
und einen Electrical Rule Check (ERC) durchführen!
Eine komplette Datei einfügen
Wird ein Dateiname in der Befehlszeile angegeben, so wird der gesamte Inhalt
dieser Datei in die geladene Zeichnung eingefügt. Ist die angegebene Datei
Teil eines konsistenten Board/Schaltplan-Paares und es wird gerade ein konsistentes
Board/Schaltplan-Paar editiert, so werden beide Dateien in
die jeweilige Zeichnung des gerade bearbeiteten Paares eingefügt.
Setzen Sie * anstelle des Dateinamens oder geben nur ein Verzeichnis an,
öffnet sich ein File-Dialog im Projektverzeichnis bzw. angegebenen Verzeichnis.
PASTE 100 amplifier.sch
PASTE 200 amplifier.sch
Dieses Beispiel demonstriert auch die Verwendung eines offset,
wodurch der angegebene Wert zu allen Bauteil- und Netznamen hinzuaddiert wird
(es sei denn, sie behalten ihren ursprünglichen Namen, siehe unten).
Somit werden im ersten Verstärkerkanal alle Bauteile und Netze beginnend bei
100 numeriert, während sie im zweiten Kanal bei 200 beginnen. Wird kein Offset
angegeben, so werden Namen nach Bedarf generiert.
Zusätzliche Einstellungen wie zusätzliche Layer oder Netzklassen werden
natürlich hinzugefügt.
ITEM-COUNT Anzahl der Kopien in der Anordnung. X-SPACING Abstand zwischen zwei Kopien in X-Richtung. X-UNIT INCH oder MIL oder MM oder MIC. Einheit von X-SPACING. Y-SPACING Abstand zwischen zwei Kopien in Y-Richtung. Y-UNIT INCH oder MIL oder MM oder MIC. Einheit von Y-SPACING. OBJECT-LOCATION Position des zu kopierenden Objekts. CIRCLE-CENTER-LOCATION Position des Mittelpunkts bei einer zirkularen Anordnung. FIRST-ITEM-LOCATION Position der ersten Kopie in der Anordnung. Zirkulare Anordnung
ITEM-COUNT Anzahl der Kopien in der Anordnung. DEGREE Wert des Winkels in Grad zwischen zwei Kopien in der Anordnung. ROTATE Optional. Wird diese Option angegeben, werden die Objekte jeweils um den angegebenen Winkel gedreht. OBJECT-LOCATION Position des zu kopierenden Objekts. FIRST-ITEM-LOCATION Position der ersten Kopie in der Anordnung. Beispiele
PATTERN CIRCULAR 20 45.0 ROTATE (1.5 1.6) (2.0 2.0) (3.0 2.0)
Damit erzeugt man eine zirkulare Anordnung mit 20 Kopien des Objekts an der Position (1.5 1.6). Der Mittelpunkt der Anordnung ist bei (2.0 2.0), das erste kopierte Objekt wird an Position (3.0 2.0) platziert, der Winkel zwischen zwei Objekten ist 45.0° ; jedes Objekt wird gedreht.
PATTERN LINEAR 5 1.5 INCH 200 MIL (1.5 1.5) (3.0 2.5)
Erzeugt eine lineare Anordnung mit 5 Kopien des Objekts auf (1.5 1.5). Die Anordnung beginnt bei (3.0 2.5) mit ein Abstand in X von 1.5 inch und in Y von 200 mil.
PIN
Siehe auch NAME,
SHOW,
CHANGE,
PINARRAY
Options
Die options teilen sich in folgende Gruppen auf:
Function
Length
Orientation
Visible
Swaplevel
Direction
Die logische Richtung des Signalflusses. Sie ist für den Electrical
Rule Check (siehe ERC-Befehl) und für die automatische Verdrahtung
der Stromversorgungs-Pins von Bedeutung. Möglich sind:
NC not connected In Eingang Out Ausgang (totem-pole) IO Ein-/Ausgang (bidirektional) OC Open Collector oder Open Drain Hiz High-Impedance(3-State)-Ausgang Pas passiv (für Widerstände, Kondensatoren etc.) Pwr Power-Pin (Vcc, Gnd, Vss ...), Stromversorgungs-Eingang Sup Stromversorgungs-Ausgang, z.B. Massesymbol. Function
Die grafische Darstellung des Pins. Möglich sind:
None keine spezielle Funktion Dot Invertier-Symbol Clk Taktsymbol DotClk Invertiertes Taktsymbol Length
Die Länge des Pin-Symbols. Möglich sind:
Point Pin wird ohne Linie und Beschriftung dargestellt Short Linie ist 0.1 Zoll lang Middle Linie ist 0.2 Zoll lang Long Linie ist 0.3 Zoll lang Orientation
Die Lage des Pins. Beim Plazieren lassen sich Pins mit der rechten
Maustaste rotieren. Der Parameter "orientation" ist für
die textuelle Eingabe des Pin-Befehls erforderlich, z. B. in Script-Dateien.
R0 Pin-Symbol rechts R90 Pin-Symbol oben R180 Pin-Symbol links R270 Pin-Symbol unten Visible
Dieser Parameter bestimmt, ob der Pin- und/oder Pad-Name im Schaltplan
sichtbar sein soll.
Both Pin- und Pad-Name sind im Schaltplan sichtbar Pad nur der Pad-Name ist im Schaltplan sichtbar Pin nur der Pin-Name ist im Schaltplan sichtbar Off weder Pin- noch Pad-Name im Schaltplan sichtbar Swaplevel
Eine ganze Zahl. Die Zahl 0 bedeutet, dass der Pin nicht
gegen einen anderen desselben Gates ausgetauscht werden darf. Jede
Zahl, die größer als 0 ist, bedeutet, dass der Pin mit
solchen Pins ausgetauscht werden kann, die den gleichen Swaplevel
haben und im selben Symbol definiert sind. Beispiel: Die Eingangs-Pins
eines NAND-Gatters können beide denselben Swaplevel bekommen,
da sie äquivalent sind.
Anwendung des PIN-Befehls
Der PIN-Befehl dient dazu, in einem Symbol die Anschlusspunkte
für Netze (Pins) zu definieren. Pins werden im Symbols-Layer dargestellt.
Zusätzliche Informationen erscheinen im Pins-Layer. Mit den options
lassen sich jedem Pin individuelle Eigenschaften mitgeben. Die options
dürfen in jeder beliebigen Reihenfolge eingegeben werden, man
kann sie aber auch ganz weglassen.
Namen "hochzählen"
Will man beispielsweise Pins mit den Namen D0 bis D7 in einem Symbol
plazieren, dann setzt man den ersten Pin mit dem Befehl
PIN 'D0'
und alle weiteren nur noch mit je einem Mausklick ab. Der numerische
Teil des Namens wird dann automatisch weitergezählt.
Options mit CHANGE einstellen
Alle options lassen sich auch mit dem CHANGE-Befehl voreinstellen.
Sie bleiben so lange erhalten, bis sie entweder mit dem PIN- oder
dem CHANGE-Befehl wieder geändert werden.
Pin rotieren
Bewegt man einen Pin mit dem MOVE-Befehl, dann rotiert die rechte
Maustaste den Pin.
Gleiche Pin-Namen
Wenn Sie Bausteine definieren wollen, die mehrere Pins mit gleichem
Namen haben, dann gehen Sie folgendermaßen vor:
Pin-Beschriftung
Die Position der Pin- und Pad-Namen in einem Schaltplansymbol ist
relativ zum Pin-Aufhängepunkt festgelegt und kann nicht verändert
werden. Ebenso ist die Schrifthöhe für Pin- und Pad-Namen
fest eingestellt (60 Mil). Bitte orientieren Sie sich beim Definieren
neuer Symbole an den Größenverhältnissen der in den mitgelieferten
Bibliotheken vorhandenen Bausteine.
Negierte Pins
Der Name eines negierten Pins ("active low") kann überstrichen dargestellt werden,
wenn ihm ein Ausrufezeichen ('!') vorangestellt wird, wie in
!RESET
was als
_____
RESET
dargestellt würde.
Einzelheiten hierzu finden Sie in der Beschreibung des TEXT-Befehls.
PINARRAY
Optionen
SIDES Kann L|R|T|B, oder irgendeine Kombination von diesen. Zeigt an, auf welcher Seite des Rechtecks die Pins gezeichnet werden sollen.
Wobei L=links, R=rechts, T=Top (oben), B=Bottom (unten) ist. BASE Das ist der Basisname, der für das Benennen der Pins verwendet wird. Der erste Pin wird dementsprechend
<base><start> und die nachfolgenden Pins mit einem steigenden numerischen Index benannt (z.B.
ADDR1, ADDR2 ... ADDRn). Der letzte platzierte Pin erhält den entsprechenden Namen <base><start+numpins-1>. START Das ist der Start-Index für die Benennung der Pins. Der Name des ersten Pins ist <base><start>. NUMPINS Die Anzahl der Pins, die platziert werden sollen. DRAWRECT ON oder OFF. Bestimmt, ob beim Platzieren auch ein Rechteck im Layer Symbols gezeichnet werden soll. INCLUDENAME ON oder OFF. Bestimmt, ob ein Textobjekt >NAME platziert werden soll. INCLUDEVALUE ON oder OFF. Bestimmt, ob ein Textobjekt >VALUE platziert werden soll. DELETEOBJS ON oder OFF. Bestimmt, ob vor dem Anlegen des Arrays Pins, Labels und Wire-Objekte gelöscht werden sollen. PINBREAKOUT
PINTOBUS
PINSWAP
Siehe auch PIN
POLYGON
Siehe auch CHANGE,
DELETE,
RATSNEST,
RIPUP,
LINE,
MITER
Anmerkung
Sie sollten es vermeiden, sehr kleine Werte für die width eines
Polygons zu verwenden, da dies zu extrem großen Datenmengen führen kann,
wenn die Zeichnung mit dem CAM Prozessor
ausgegeben wird.
Die Polygon-width sollte immer größer sein als die physikalische
Auflösung des Ausgabegeräts. Zum Beispiel sollte bei einem Gerber
Fotoplotter mit einer typischen Auflösung von 1 Mil die Polygon width
nicht kleiner als zum Beispiel 6 Mil gewählt werden. Im allgemeinen sollte
die Polygon width in der selben Größenordnung liegen wie die
der übrigen Leiterbahnen.
Urzustand und freigerechneter Zustand
Für Polygone, die Bestandteil eines Signals sind, gibt es zwei verschiedene
Zustände:
1. Outlines: "Urzustand", also die Form in der sie vom Benutzer definiert worden sind (Umrisslinien) 2. Real mode: "freigerechneter" Zustand, also die Form wie sie vom Programm berechnet wird. Andere Befehle und Polygone
Polygone werden an den Kanten selektiert (wie normale Linien)
Polygon-Parameter
Width
Linienbreite der Polygonkanten. Wird auch zum Ausfüllen
verwendet.
Layer
Polygone können in jeden Layer gezeichnet werden.
Polygone in Signal-Layern sind Bestandteil eines Signals und werden
'freigestellt', d.h. potentialfremde Anteile werden 'abgezogen'.
Polygone in Signallayern gehören zu einem Signal und halten Mindestabstände zu anderen
Signalen, die in den Design Rules oder über die Netzklasse definiert wurden, ein.
Von Polygonen im Top-Layer werden auch Objekte im Layer tRestrict
abgezogen (entsprechendes gilt für Bottom und bRestrict). Damit ist es
z. B. möglich, eine negative Beschriftung innerhalb einer Massefläche
zu erzeugen.
Pour
Füllmodus (Solid = ganz gefüllt [Default], Hatch = schraffiert oder Cutout = Ausschnitt).
Rank
Legt fest wie Polygone voneinander subtrahiert werden. Polygone mit einem
niedrigeren 'Rank' "erscheinen zuerst" (haben eine höhere Priorität) und werden somit
von Polygonen mit einem höheren 'Rank' abgezogen.
Gültige Werte sind 1..6.
Polygone mit gleichem Rank werden vom Design Rule Check gegeneinander
geprüft. Der Parameter 'Rank' ist nur für Polygone in Signallayern (1..16) relevant,
die im Board gezeichnet wurden,
und wird für alle anderen Polygone ignoriert. Der Standardwert ist 1.
Thermals
Bestimmt wie potentialgleiche Pads und Smds angeschlossen werden
(On = es werden Thermals generiert [default], Off = keine Thermals).
Spacing
Abstand der Füll-Linien bei Pour=Hatch (Default:
50 Mil).
Isolate
Abstand der freigestellten Polygonkanten zu potentialfremdem
Kupfer bzw. Objekten im Dimension-Layer oder entsprechendem Restrikt-Layer (default: 0).
Dieser Wert ist nur dann maßgeblich, wenn er größer ist als der jeweilige Wert in den
Design Rules bzw. Netzklassen.
Siehe auch Design Rules unter Distance bzw. Supply.
Bitte beachten Sie, dass, wenn Sie einem Polygon einen Isolationsabstand geben,
der größer ist als der aus den Design Rules bzw. Netzklassen, kleine Lücken
entstehen können zwischen dem freigerechneten Polygon und Objekten, die zum
gleichen Signal gehören wie das Polygon selber, was zu Problemen bei der
Fertigung führen kann! Es wird daher empfohlen, diesen Parameter auf dem Wert 0
zu belassen, es sei denn, Sie wissen genau, was Sie tun!
Orphans
Beim Freistellen von Polygonen kann es passieren,
dass das ursprüngliche Polygon in mehrere Teile zerfällt.
Falls sich in einem solchen Teil kein Aufhängepunkt eines Objektes des zugehörigen
Signals befindet, entsteht eine 'Insel' ohne elektrische Verbindung
zum zugehörigen Signal. Sollen solche Inseln (oder 'verwaiste'
Flächen) erhalten bleiben, ist der Parameter Orphans auf
On zu setzen. Bei Orphans = Off [default] werden sie eliminiert.
Besteht ein Signal nur aus Polygonen und hat keine anderen, elektrisch angeschlossenen
Objekte, so werden alle Teile unabhängig von der Einstellung des Parameters Orphans
dargestellt.
Stegbreite bei Thermals
Die Breite der Stege bei Thermals ist:
Konturdaten
Der Signalname _OUTLINES_ gibt dem Polygon besondere Eigenschaften,
die man zur Erzeugung von Konturdaten (z. B.
zum Fräsen von Prototypen) benötigt. Dieser Name sollte ansonsten nicht
verwendet werden.
Schraffierte Polygone und Luftlinien
Abhängig vom Wert des spacing-Parameters können Pads, Smds, Vias und Leiterbahnen
innerhalb eines schraffierten Polygons, die zum selben Signal gehören wie das
Polygon, durch das Raster fallen, und erhalten daher Luftlinien um Ihre Verbindung
zu dem Signal anzuzeigen.
Polygon-Ausschnitte
Der spezielle Füllmodus "Cutout" bewirkt, dass ein Polygon von allen anderen
Signal-Polygonen im gleichen Layer subtrahiert wird, unabhängig von deren Rank.
PORT
Siehe auch MODULE
PORT 'module' 'net_name' options ..
PORT 'module' 'net_name' options|DELETE
Namen
Durch den gewählten Namen wird bestimmt, welches Netz des Moduls exportiert wird.
Options
Direction
Die logische Richtung des Signalflusses. Sie ist für den Electrical
Rule Check (siehe ERC-Befehl) von Bedeutung. Möglich sind:
NC not connected In Eingang Out Ausgang (totem-pole) IO Ein-/Ausgang (bidirektional) OC Open Collector oder Open Drain Hiz High-Impedance(3-State)-Ausgang Pas passiv (für Widerstände, Kondensatoren etc.) Pwr Power-Pin (Vcc, Gnd, Vss ...), Stromversorgungs-Eingang DELETE
Mit der Option DELETE kann ein Port gelöscht werden.
Editieren
Der MOVE-Befehl kann zum Verschieben von Ports verwendet werden.
Mit PREFIX
Siehe auch CONNECT,
MODULE,
PACKAGE,
VALUE
Beispiel
PREFIX U;
Wird dieser Befehl ausgeführt, während man das Device 7400
editiert, dann bekommen später die mit ADD im Schaltplan plazierten
NAND-Gatter die Namen U1, U2, U3 und so weiter. Diese Namen lassen
sich mit dem NAME-Befehl ändern.
PRINT
Siehe auch CAM-Prozessor,
Drucken auf dem System-Drucker
SET DISPLAY_MODE NODRILL;
Bitte beachten Sie, dass Polygone in Platinen beim Ausdrucken mit dem
PRINT-Befehl nicht automatisch freigerechnet werden! Es werden lediglich die
Umrisse dargestellt. Um die Polygone freigerechnet auszudrucken führen Sie
bitte vorher den RATSNEST-Befehl aus.
MIRROR spiegelt die Ausgabe ROTATE dreht die Ausgabe um 90° UPSIDEDOWN dreht die Ausgabe um 180°. Zusammen mit ROTATE, wird die Zeichnung um insgesamt 270° gedreht BLACK ignoriert die Farbeinstellungen der Layer und zeichnet alles in Schwarz SOLID ignoriert die Füllmuster der Layer und zeichnet alles voll ausgefüllt CAPTION druckt eine Bildunterschrift FILE leitet die Ausgabe in eine Datei um; der Dateiname muss unmittelbar nach dieser Option folgen PRINTER druckt auf einen bestimmten Drucker; der Druckername muss unmittelbar nach dieser Option folgen PAPER druckt auf das angegebene Papierformat; das Papierformat muss unmittelbar nach dieser Option folgen SHEETS druckt den angegebenen Bereich von Schaltplanseiten; der Bereich (von-bis) muss unmittelbar nach dieser Option folgen ALIGN druckt in einer gegebenen Anordnung; die Art der Anordnung muss unmittelbar nach dieser Option folgen WINDOW druckt den momentan sichtbaren Ausschnitt der Zeichnung PORTRAIT druckt in Hochformat LANDSCAPE druckt in Querformat HIERARCHY druckt die Schaltplanseiten von Modulen in ihrer hierarchischen Verwendung Drucken in eine Datei
Die FILE Option kann dazu benutzt werden in eine Datei zu drucken.
Falls diese Option angegeben wird, muss der Dateiname unmittelbar nach ihr folgen.
%E die Extension der geladenen Datei (ohne den '.') %N der Name der geladenen Datei (ohne Pfad und Extension) %P Verzeichnis-Pfad der geladenen Datei (ohne Dateinamen) %% das Zeichen '%' Auf eine bestimmte Papiergröße drucken
Die PAPER-Option gibt an, auf welche Papiergröße gedruckt werden soll.
Ihr muss unmittelbar einer der Namen für Papiergrößen folgen, die in der Combo-Box
Papier des Drucken-Dialogs aufgelistet sind, wie etwa A4, Letter etc.
Soll eine benutzerdefinierte Papiergröße benutzt werden, so muss diese im Format
Breite x Höhe Einheit
(ohne Leerzeichen) angegeben werden, wie in
PRINT PAPER 200x300mm
PRINT PAPER 8.0x11.5inch
Breite und Höhe können Dezimalzahlen sein, und die Einheit
ist entweder mm oder inch (letztere kann abgekürzt werden als in).
Papiernamen müssen vollständig angegeben werden, wobei die Groß-/Kleinschreibung keine Rolle spielt.
Wird sowohl die PRINTER- als auch die PAPER-Option benutzt, muss die PRINTER-Option
zuerst angegeben werden.
Benutzerdefinierte Papiergrößen funktionieren nicht unbedingt mit allen Druckern. Sie sind hauptsächlich
für die Ausgabe in Postscript- bzw. PDF-Dateien gedacht.
Einen Bereich von Schaltplanseiten drucken
Mit der SHEETS Option kann ein ausgewählter Bereich von Schaltplanseiten
gedruckt werden.
Der Bereich wird in Form von zwei Zahlen angegeben, die durch '-'
getrennt werden, etwa 2-15.
Ohne diese Option wird nur die aktuell im Editor befindliche Seite gedruckt.
Um alle Seiten auszudrucken, kann der Bereich ALL benutzt werden (wobei
Groß-/Kleinschreibung egal ist, das Wort aber voll ausgeschrieben werden muss).
Ein Bereich kann auch aus einer einzelnen Zahl bestehen, etwa 42, wodurch
genau diese Seite gedruckt wird.
Ist kein Schaltplan geladen, so hat diese Option keine Bedeutung.
Druck mit einer Anordnung
Bei der Option ALIGN können die Einstellungen T (oben), C (mittig) und B (unten)
für vertikale, und R (rechts), C (mittig) und L (links) für horizontale Anordnung
verwendet werden. So wird durch PRINT ALIGN TL; in Anordnung oben links gedruckt.
Wenn nur eine Richtung angegeben ist, wird für die andere Richtung mittig angenommen
(so z.B. PRINT ALIGN B; zum Drucken unten mittig).
Die Reihenfolge der Einstellungen spielt keine Rolle.
Schaltplanseiten von Modulen drucken
Wenn die aktuelle Schaltplanseite zu einem Modul gehört, bezieht sich eine
Bereichsangabe auf dieses Modul.
Mit der Option SHEETS ALL werden alle Schaltplanseiten des
Hauptschaltplans und alle Schaltplanseiten aller Module gedruckt.
Mit der zusätzlichen Option HIERARCHY werden die Schaltplanseiten von
Modulen für jede Verwendung in Modulinstanzen mit entsprechenden Bauteil- und
Netznamen gedruckt.
Beispiele
PRINT öffnet den Print Dialog für die Eingabe der Druckeinstellungen PRINT; druckt die Zeichnung ohne weiteren Dialog, mit default Einstellungen PRINT - MIRROR BLACK SOLID; druckt die Zeichnung gespiegelt, alles in Schwarz und voll ausgefüllt PRINT 2.5 -1; druckt die Zeichnung um den Faktor 2.5 vergrößert, wobei aber sichergestellt wird, dass nicht mehr als ein Blatt verwendet wird PRINT FILE .pdf; druckt die Zeichnung in eine PDF-Datei mit dem gleichen Namen wie die Zeichnungsdatei PRINT SHEETS 2-15 FILE .pdf; druckt die Seiten 2 bis 15 in eine PDF-Datei mit dem gleichen Namen wie die Zeichnungsdatei QUIT
Dieser Befehl beendet die Arbeit mit EAGLE. Sind seit dem letzten
Abspeichern der Zeichnung oder der Bibliothek Änderungen vorgenommen
worden, erscheint ein Popup-Menü, das nachfragt, ob die die Zeichnung
vorher abgespeichert werden soll. Beantwortet man diese Frage mit
no (n), dann wird das Programm ohne Abspeichern der Zeichnung
beendet. Bei Cancel bleibt man im Programm.
RATSNEST
Siehe auch SIGNAL,
MOVE,
POLYGON,
RIPUP
RATSNEST signal_name ..
RATSNEST ! signal_name ..
SET POLYGON_RATSNEST OFF;
ausgeschaltet werden.
Luftlinien der Länge Null
Enden zwei oder mehr Leiterbahnen desselben Signals am selben Punkt, aber auf
unterschiedlichen Layern, und sind die Signale nicht über eine
Durchkontaktierung verbunden, dann wird eine
Luftlinie der Länge Null erzeugt und als X-förmiges Kreuz im Unrouted-Layer
dargestellt. Dasselbe gilt für gegenüberliegende SMDs (auf Top-
und Bottom-Layer), die zum selben Signal gehören.
Überprüfen, ob alles geroutet ist
Wenn kein unverdrahtetes Signal mehr vorhanden ist, gibt der
RATSNEST-Befehl die Meldung
Ratsnest: Nichts zu tun!
aus. Andernfalls erscheint die Meldung
Ratsnest: Luftlinien: xx
wobei xx die Zahl der ungerouteten Luftlinien repräsentiert.
Platzhalter
Falls der signal_name-Parameter angegeben wurde, so sind die Zeichen '*', '?'
und '[]' Platzhalter und haben folgende Bedeutung:
* steht für eine beliebige Anzahl beliebiger Zeichen ? steht für genau ein Zeichen [...] steht für irgend eines der Zeichen zwischen den Klammern Ausgewählte Luftlinien ausblenden
Manchmal kann es sinnvoll sein, die Luftlinien von bestimmten Signalen auszublenden,
zum Beispiel wenn diese später durch ein Polygon verbunden werden. Typischerweise
sind dies Versorgungssignale die viele Luftlinien haben, aber nicht explizit
geroutet werden, und so nur die Luftlinien anderer Signale verdecken.
RATSNEST ! GND VCC
Hiermit würden die Luftlinien der Signale GND und VCC ausgeblendet.
Um die Luftlinien wieder einzublenden geben Sie einfach den RATSNEST-Befehl ohne
das Zeichen '!' mit der Liste der Signale ein:
RATSNEST GND VCC
Damit wird die Anzeige der Luftlinien der Signale GND und VCC
aktiviert und diese auch gleich neu berechnet. Auf diese Weise lassen sich auch die
Luftlinien und Polygone nur für bestimmte Signale neu berechnen.
RATSNEST D* ! ?GND VCC
womit die Luftlinien aller Signale, deren Namen mit 'D' beginnen, neu
berechnet und angezeigt werden, und die Luftlinien der verschiedenen GND-Signale
(wie AGND, DGND etc.) und des VCC-Signals ausgeblendet werden. Beachten Sie, dass
der Befehl von links nach rechts abgearbeitet wird, so dass für den Fall, dass es
ein DGND-Signal gibt, dieses im Beispiel zuerst für die Anzeige neu berechnet wird,
seine Luftlinien dann aber ausgeblendet werden.
RATSNEST *
Beachten Sie, das der SIGNAL-Befehl automatisch die
Luftlinien eines Signals einblendet, wenn eine neue Luftlinie für dieses Signal
erzeugt wird. Der RIPUP-Befehl hingegen ändert nichts
an der Sichtbarkeit von Luftlinien, wenn eine Leiterbahn in eine Luftlinie
verwandelt wird.
Differential Pairs
Luftlinien für Differential Pair Signale bevorzugen offene Leiterbahnenden.
RECT
Siehe auch CIRCLE
Sperrflächen
Der RECT-Befehl in den Layern tRestrict, bRestrict und
vRestrict dient zum Anlegen von Sperrflächen
für den Autorouter.
Nicht Bestandteil von Signalen
Rechtecke in den Layer Top, Bottom oder Route2...15 gehören nicht zu Signalen.
Der DRC meldet deshalb Fehler, wenn sie mit
Leiterbahnen, Pads usw. überlappen.
REDO
Siehe auch UNDO,
Forward&Back-Annotation
REMOVE
Siehe auch OPEN,
RENAME,
MODULE
REMOVE name.Sxx
REMOVE name.mod
REMOVE name.Mxx
Dateien löschen
Der REMOVE-Befehl löscht im Platinen- und Schaltplan-Editier-Modus
die mit name angegebene Datei.
Devices, Symbole, Packages
Im Bibliotheks-Editier-Modus löscht der REMOVE-Befehl aus der
aktiven Bibliothek das unter dem Namen name gespeicherte Device,
Symbol oder Package.
Der Name kann mit einer Erweiterung (z. B. REMOVE name.pac) angegeben werden. Wenn Sie
den Namen ohne Erweiterung angeben, müssen Sie sich im entsprechenden Editier-Modus
des Bibliotheks-Editors befinden um ein Objekt zu löschen (z. B. im Package-Editor
um ein Package zu löschen).
Schaltplan-Seiten
Der REMOVE-Befehl kann auch zum Löschen von Seiten aus einem Schaltplan
verwendet werden, dabei kann der Name der geladenen Zeichnung entfallen.
Zum Beispiel:
REMOVE .S3
löscht Seite Nr. 3 aus dem gegenwärtig geladenen Schaltplan.
Module
Der REMOVE-Befehl kann auch zum Löschen von Modulen oder Seiten von Modulen
aus einem Schaltplan verwendet werden. Zum Beispiel:
REMOVE name.mod
REMOVE name.m3
REMOVEMODEL
See also ADDMODEL
OVERRIDEREMOVE
RENAME
Siehe auch OPEN
REPLACE
Siehe auch SET,
UPDATE
REPLACE device_name[@library_name] [P3D=3d_package] ..
REPLACE part_name device_name[@library_name] [P3D=3d_package] ..
REPLACE package_name ..
REPLACE element_name package_name ..
Gleiche Namen
Die erste Betriebsart wird mit
SET REPLACE_SAME NAMES;
aktiviert; sie ist beim Programmstart eingestellt. In dieser Betriebsart
kann man einem Element im Schaltplan ein anderes Package zuweisen,
bei dem dieselben Pad- und Smd-Namen vorhanden sind.
Gleiche Koordinaten
Die zweite Betriebsart wird mit
SET REPLACE_SAME COORDS;
aktiviert. Sie erlaubt es, einem Element in einem Schaltplan
ein anderes Package zuweisen, bei dem auf denselben Koordinaten
(relativ zum Ursprung des Package) Pads oder Smds liegen müssen. Die
Namen dürfen unterschiedlich sein.
RIPUP
Siehe auch DELETE,
GROUP,
POLYGON,
RATSNEST
Polygondarstellung auf "Umrisse".
RIPUP [ @ ] [ ! ] ..
RIPUP [ @ ] [ ! ] signal_name..
Wird mit RIPUP auf eine Luftlinie geklickt, so werden die an dieser
Luftlinie angrenzenden verlegten Leiterbahnen und Vias bis hin zum nächsten Pad,
SMD oder der nächsten Luftlinie in Luftlinien verwandelt.
RIPUP signal_name..
Wirkt auf das gesamte Signal "signal_name" jedoch nur, wenn es mit Elementen
verbunden ist (mehrere Signale sind möglich, z.B. Ripup D0 D1 D2;).
RIPUP ..
Wirkt auf das durch den Mausklick selektierte Segment (bis zum nächsten
Pad/Smd). Bei
RIPUP;
werden nur solche Signale berücksichtigt, die an Elementen angeschlossen
sind (z.B. die Eckwinkel zur Platinenbegrenzung bleiben erhalten). Das gleiche
gilt, wenn der RIPUP-Befehl auf eine Gruppe angewendet wird.
Platzhalter
Falls der signal_name-Parameter angegeben wurde, so sind die Zeichen '*', '?'
und '[]' Platzhalter und haben folgende Bedeutung:
* steht für eine beliebige Anzahl beliebiger Zeichen ? steht für genau ein Zeichen [...] steht für irgend eines der Zeichen zwischen den Klammern Polygone
Falls der RIPUP-Befehl mit einem Namen auf ein Signal angewendet wird, zu dem ein
Polygon gehört, wird das Polygon anschließend mit seinen Umrissen
dargestellt (schnellerer Bildaufbau!). Soll das Polygon wieder
freigerechnet werden, ist der Befehl RATSNEST
auszuführen.
ROTATE
Siehe auch ADD,
MIRROR,
MOVE,
LOCK,
GROUP
ROTATE orientation 'name' ..
ROTATE =MR90 IC1
ROTATE R45 'R1'
Sie können weggelassen werden, wenn der Kontext klar ist.
Elemente
Beim Drehen von Elementen bewegen sich die angeschlossenen Leitungen
mit (Achtung auf Kurzschlüsse!).
Texte
Text wird immer so dargestellt, dass er von vorne oder von rechts
zu lesen ist - auch wenn er rotiert wird. Nach zweimaligem Rotieren
erscheint er deshalb wieder gleich, aber der Aufhängepunkt liegt
nicht mehr links unten, sondern rechts oben. Denken Sie daran, wenn
sich ein Text scheinbar nicht mehr selektieren lässt.
ROUTE
ROUTE name ..
Single Layer Modus
Wird der Single Layer Modus beim Routen aktiviert, sind alle Layer mit Ausnahme des aktiven
Routing-Layers grau dargestellt. Damit schafft man eine konzentrierte Umgebung, die es erleichtert
die Arbeit zu verrichten.
SET SINGLE_LAYER_MODE ON | OFF;
Interaktives Routing
Es gibt drei Modi zum Interaktiven Routing, wobei jeder sein eigenes Verhalten zeigt, wenn die
Leiterbahnen während des Verlegens in die Nähe von Hindernisse kommen: Hindernisse ignorieren,
Hindernisse umgehen und Hindernisse verschieben. Wenn der ROUTE-Befehl aktiv ist, kann man diese
Modi über Icons in der Parameterleiste auswählen. Die Standard-Einstellung ist Hindernisse umgehen.
Semi-automatische (Quick) Routing Modi
Es sind verschiedene halbautomatische Routing-Modi verfügbar, die alle die Design-Regeln berücksichtigen,
einschließlich Mindestabstände, min. Leiterbahnbreite, Via-Durchmesser und Abstandsfaktor für
Differentielle Paare. Es gibt folgende semi-automatische Modi: Quick Route Airwire, Quick Route
Signal, Quick Route Multi-Signals und Smooth Signal (Signalverlauf glätten). Jeder dieser Modi
ist bereitgestellt, um je nach Auswahl für ein oder mehrere gewählte Signale im Design, das sofortige und
vollständige Routingergebnis anzuzeigen. Gehört eines der gewählten Signale zu einem Differentiellen Paar,
werden automatisch beide Signale des Differentiellen Paares verlegt. Kann der ROUTE-Befehl in einem dieser
Modi das Routing für eine Signallinie nicht vollständig durchführen, wird das durch einen Piep signalisiert.
Die semi-automatischen Routing-Modi können über Icons in der Parameterleiste des ROUTE-Befehls gewählt werden.
Auswahl des Routing-Layers und der Linienbreite
Wenn Sie eine Luftlinie selektieren wird der Layer in dem geroutet wird
durch Betrachtung der am Startpunkt vorhandenen Objekte wie folgt ermittelt:
Fangfunktion
Der Endpunkt der dynamisch berechneten Luftlinie wird immer als
zusätzlicher Rasterpunkt benutzt, auch wenn er nicht auf dem aktuellen
Raster liegt. Hat die verbleibende Luftlinie eine Länge, die kürzer als
SNAP_LENGTH ist, so schnappt die zu verlegende Leiterbahn automatisch auf den
Endpunkt der Luftlinie, und bleibt dort, bis der Mauszeiger mindestens
SNAP_LENGTH von diesem Punkt entfernt wird. Mit
SET SNAP_LENGTH number;
kann der Grenzwert für die Fangfunktion eingestellt werden, wobei
number in der aktuellen Grid-Einheit anzugeben ist.
Default ist 20 Mil.
Loop removal
Das Entfernen unnötiger Schleifen (Loop removal) ist ein Modus, der beim
Neuverlegen einer bereits verlegten Leiterbahn zwischen zwei Pads den bisherigen,
jetzt redundanten Pfad der Leiterbahn, inklusive vorhandener Vias automatisch
entfernt. Dieser Modus kann über Icons in der Parameter-Toolbar des ROUTE-Befehls
aktiviert werden.
Differential Pair Routing
Differential Pairs sind Signale, die parallel und mit einem bestimmten
Abstand zueinander verlegt werden müssen.
Mit dem MEANDER-Befehl können Sie Längenunterschiede
zwischen den beiden Signalen eines Differential Pairs ausgleichen.
RUN
Siehe auch SCRIPT
Die optionale Argument-Liste ist für das ULP über die
Builtin-Variablen argc und argv verfügbar.
ULP von Script-Datei ausführen
Wenn ein ULP von einer Script-Datei aufgerufen wird und das Programm
einen Wert ungleich 0 zurückgibt (durch einen Aufruf der
Funktion
exit() oder weil
das STOP-Symbol angeklickt wurde), wird die Ausführung der Script-Datei
beendet.
Editor-Befehle von einem ULP ausführen
Ein ULP kann die exit()-Funktion auch mit einem string-Parameter
verwenden, um einen Befehl direkt in einem Editor-Fenster auszuführen.
SCRIPT
Siehe auch SET,
MENU,
ASSIGN,
EXPORT,
RUN
Beispiele
SCRIPT nofill ruft nofill.scr auf SCRIPT myscr. ruft myscr (ohne Suffix!) auf SCRIPT myscr.old ruft myscr.old auf
SCRIPT-Dateien enthalten EAGLE-Befehle, entsprechend den Syntax-Regeln.
Zeilen, die mit '#' beginnen, sind Kommentarzeilen.
Fortsetzungszeilen
Bei manchen Befehlen kann es erforderlich sein, mehrere Zeilen zu
belegen. Das Zeichen '\'
am Ende einer Kommandozeile sorgt dafür, dass das erste Wort
der nächsten Zeile nicht als Befehl interpretiert wird. Damit
lassen sich in vielen Fällen Hochkommas vermeiden.
Start-Parameter setzen
Die SCRIPT-Datei eagle.scr wird jedesmal ausgeführt wenn eine Zeichnung neu in einem
Editor-Fenster geladen wird, oder der Editier-Modus in einer Bibliothek gewechselt wird,
sofern eagle.scr im Projekt-Verzeichnis oder im Script-Pfad
steht.
Script Labels
Die SCRIPT-Datei eagle.scr benutzt Labels der Form Script-Datei im Bibliotheks-Editor ausführen
Alle Layer werden nur dann erkannt, wenn vorher der Bibliotheks-Editor neu
geöffnet worden ist.
SET
Mit dem SET-Befehl können Parameter festgelegt werden, die das
Verhalten des Programms, die Bildschirmdarstellung und die
Benutzeroberfläche betreffen. Die genaue Syntax ist im folgenden
beschrieben.
SET options;
Benutzer-Interface
Fangfunktion SET SNAP_LENGTH number; Fangradius: Damit lässt sich der Grenzwert für die Fangfunktion des ROUTE-Befehls in der aktuellen Einheit einstellen. Default: 20 Mil Verlegt man mit dem ROUTE-Befehl Leitungen zu Pads, die nicht im Raster liegen, dann sorgt die Fangfunktion dafür, dass man innerhalb der Snap_length zu diesem Pad routen kann. SET CATCH_FACTOR value; Fangfaktor: Legt fest, bis zu welchem Abstand vom Mauszeiger Objekte beim Anklicken mit der Maus berücksichtigt werden. Der Wert wird relativ zur Höhe (bzw. Breite, falls diese kleiner ist) des gegenwärtigen Bildausschnitts angegeben. Er gilt bei einer Zoomstufe die mindestens einen Bereich von 100mm darstellt und steigt beim Hineinzoomen logarithmisch an. Der Wert 0 setzt diese Einschränkung ausser Kraft.
Werte < 1 werden als Faktor, Werte ≥ 1 als Prozentzahl interpretiert.
Default: 0.05 (5%). SET SELECT_FACTOR value; Selektionsfaktor: Damit stellt man ein, bis zu welchem Abstand vom Mauszeiger benachbarte Objekte zur Auswahl vorgeschlagen werden. Der Wert wird relativ zur Höhe (bzw. Breite, falls diese kleiner ist) des gegenwärtigen Bildausschnitts angegeben.
Werte < 1 werden als Faktor, Werte ≥ 1 als Prozentzahl interpretiert.
Default: 0.02 (2%).Inhalt von Menüs SET USED_LAYERS name | number; Legt die Layer fest, die in den entsprechenden EAGLE-Menüs angezeigt werden. Siehe Beispieldatei mylayers.scr. Die Layer Pads, Vias, Unrouted, Dimension, Drills und Holes sowie die Schaltplan-Layer bleiben auf jeden Fall im Menü. Auch alle benutzten Signal-Layer bleiben aktiv. SET Used_Layers All aktiviert alle Layer. SET WIDTH_MENU value..; SET DIAMETER_MENU value..; SET DRILL_MENU value..; SET SMD_MENU value..; SET SIZE_MENU value..; SET ISOLATE_MENU value..; SET SPACING_MENU value..; SET MITER_MENU value..; SET DLINE_WIDTH_MENU value..; SET DLINE_EXT_WIDTH_MENU value..; SET DLINE_EXT_LENGTH_MENU value..; SET DLINE_EXT_OFFSET_MENU value..; Für die Parameter width etc. kann der Inhalt der entsprechenden Popup-Menüs mit obigen Befehlen konfiguriert werden. Je Menü sind max. 16 Werte möglich (beim Smd-Menü max. 16 Wertepaare). Wird kein Wert angegeben (also z.B. SET WIDTH_MENU;), so werden die programminternen Standardwerte gesetzt. Beispiel:
Grid Inch;
Set Width_Menu 0.1 0.2 0.3;Kontextmenüs SET CONTEXT objecttype text commands; Für die selektierbaren Objekttypen können die Kontextmenüs (Rechte-Maus-Klick) um beliebige Einträge
erweitert werden. Für objecttype spielt Gross-/Kleinschreibung keine Rolle. text stellt den
Menütext dar, commands die Kommandofolge, die bei Auswahl dieses Menüeintrags ausgeführt werden soll.
Leerzeichen sind möglich, wenn man den Ausdruck in Hochkomma setzt. Hochkommas innerhalb müssen verdoppelt
werden (vgl. TEXT). Beispiel: SET CONTEXT Element Export 'run myexport.ulp'; Dem Kontextmenü von Elementen wird der Eintrag Export hinzugefügt, der ein entsprechendes ULP startet. Ein bestehender benutzerdefinierter Eintrag kann auch überschrieben werden. Die Einstellungen werden in der EagleRc-Datei gespeichert. Es können beliebig viele Einträge hinzugefügt werden. Löschen der Einträge: Mit SET CONTEXT objecttype; werden alle Einträge dieses Objekttyps wieder gelöscht. Mit SET CONTEXT; werden sämtliche benutzerdefinierte Menüeinträge gelöscht. Alle selektierbaren Objekttypen werden unterstützt. Diese sind attribute, circle, dimension, element,
frame, gate, hole, instance, junction, label, modinst (Modul-Instanz), pad, pin, rectangle, smd, text, via und wire. Einschränkung bezüglich ULP-Ausführung: Um das selektierte Objekt für die Funktion ingroup() verfügbar zu haben, vermeiden Sie bitte ';' innerhalb der Apostrophe
(also nicht 'run myexport.ulp;',sondern 'run myexport.ulp'). Knickwinkel für Linien SET WIRE_BEND bend_nr; bend_nr kann einer der folgenden Werte sein: 0: Startpunkt - waagrecht - senkrecht - Endpunkt 1: Startpunkt - waagrecht - 45° - Endpunkt 2: Startpunkt - Endpunkt (direkte Verbindung) 3: Startpunkt - 45° - waagrecht - Endpunkt 4: Startpunkt - senkrecht - waagrecht - Endpunkt 5: Startpunkt - Kreisbogen - waagrecht - Endpunkt 6: Startpunkt - waagrecht - Kreisbogen - Endpunkt 7: "Freihand" (Kreisbogen passend zur Linie am Startpunkt, ansonsten gerade) 8: Kurzes Ende der Luftlinie im Follow-me-Router verlegen 9: Beide Enden der Luftlinie im Follow-me-Router verlegen Beachten Sie bitte, dass 0, 1, 3 und 4 zusätzliche Linien zur Abschrägung enthalten können (siehe MITER). SET WIRE_BEND @ bend_nr ...; Legt fest welche Knickwinkel beim Weiterschalten mit der rechten Maustaste tatsächlich durchlaufen werden sollen. SET WIRE_BEND @; Schaltet zurück auf alle Knickwinkel. Piepston ein/aus SET BEEP OFF | ON; Bildschirmdarstellung
Farbe für Grid-Linien SET COLOR_GRID color; Farbe für Layer SET COLOR_LAYER layer color; Füllmuster für Layer SET FILL_LAYER layer fill; Raster-Parameter SET MIN_GRID_SIZE pixels; Das Grid wird nur dann gezeichnet, wenn der Rasterabstand größer ist als die eingestellte Zahl von Pixeln. Min. darg. Textgröße SET MIN_TEXT_SIZE size; Texte, die weniger als size Bildpunkte hoch sind, werden auf dem Bildschirm als Rechtecke dargestellt. Einstellung 0 bedeutet: alle Texte werden lesbar dargestellt. Netz-Linien-Darstellung SET NET_WIRE_WIDTH width; Pad-Darstellung SET DISPLAY_MODE REAL | NODRILL; REAL: Pads werden dargestellt, wie sie geplottet werden.
NODRILL: Pads werden ohne Bohrung dargestellt. SET PAD_NAMES OFF | ON; Pad-Namen werden ein-/ausgeblendet. Bus-Linien-Darstellung SET BUS_WIRE_WIDTH width; DRC-Parameter SET DRC_FILL fill_name; Polygon-Berechnung SET POLYGON_RATSNEST OFF | ON; Siehe POLYGON-Befehl. Vector Font SET VECTOR_FONT OFF | ON; Siehe TEXT-Befehl. Querverweis-Labels SET XREF_LABEL_FORMAT string; Siehe LABEL-Befehl. Bauteil-Querverweise SET XREF_PART_FORMAT string; Siehe TEXT-Befehl. Mode-Parameter
Package-Check SET CHECK_CONNECTS OFF | ON; Der ADD-Befehl prüft, ob bei einem Device jedem Pin ein Pad (mit CONNECT) zugewiesen ist. Diese Prüfung lässt sich abschalten. Allerdings kann keine Platine aus einem Schaltplan erzeugt werden, falls ein Device ohne Gehäuse gefunden wird. REPLACE-Modus SET REPLACE_SAME NAMES | COORDS; UNDO-Puffer ein/aus SET UNDO_LOG OFF | ON; Linien-Optimierung SET OPTIMIZING OFF | ON; Linien, die nach MOVE, ROUTE oder SPLIT in einer Linie liegen, werden zu einer Linie zusammengefasst, falls On eingestellt ist. Siehe auch OPTIMIZE. Netz-Linie beenden SET AUTO_END_NET OFF | ON; Automatisches Beenden von Netzen oder Bussen. Siehe NET oder BUS. Automatische Junctions SET AUTO_JUNCTION OFF | ON; Automatisches Setzen von Junctions. Siehe JUNCTION. Automatische Bestätigung SET CONFIRM OFF | NO | YES | OPT1 | OPT2 | OPT3 | OPT4 | OPT5 | OPT6 | OPT7 | OPT8 | OPT9; Ermöglicht die automatische Behandlung von Bestätigungs-Dialogen (weiteres siehe unten). File-Locking SET LOCKING OFF | ON; Zum Aus- und Einschalten des Schreibschutzes für geöffnete Dateien. Die Einstellung wirkt sich sofort aus, d.h. zu den momentan geöffneten Dateien werden Lock-Dateien erzeugt bzw. gelöscht. Siehe Datei-Locking für weitere Details. Farben
Es gibt drei Paletten für schwarzen, weißen und farbigen Hintergrund.
Jede Palette hat 64 Farb-Einträge, die auf jeden beliebigen ARGB-Wert
gesetzt werden können. Der Paletten-Eintrag 0 wird für die Hintergrundfarbe
verwendet (in der "weißen" Palette ist dieser Eintrag nicht
veränderbar, da diese Palette auch zum Ausdrucken verwendet wird, wo der
Hintergrund immer weiß ist).
SET PALETTE index argb
wobei index eine Zahl im Bereich 0..63 und argb ein hexadezimaler
Wert ist, der die Alpha-, Rot-, Grün- und Blau-Komponenten der Farbe definiert,
etwa 0xFFFFFF00 (was ein helles Gelb ergeben würde). Die Alpha-Komponente gibt an
wie "deckend" die Farbe ist. Ein Wert von 0x00 bedeutet, dass die Farbe vollkommen
transparent ist (d.h. unsichtbar), während 0xFF für eine vollkommen deckende Farbe steht.
Die Alpha-Komponente der Hintergrundfarbe ist immer 0xFF.
Beachten Sie bitte, dass der ARGB-Wert mit "0x" beginnen muss, ansonsten würde er als
dezimale Zahl interpretiert werden. Mit dem Befehl
SET PALETTE BLACK|WHITE|COLORED
können Sie auf die Palette für schwarzen, weißen oder farbigen Hintergrund
umschalten. Beachten Sie bitte, dass nach diesem Befehl kein automatisches
Neuzeichnen des Zeichenfensters stattfindet; Sie sollten daher anschließend
den Befehl WINDOW; ausführen.
0 Black 1 Blue 2 Green 3 Cyan 4 Red 5 Magenta 6 Brown 7 LGray 8 DGray 9 LBlue 10 LGreen 11 LCyan 12 LRed 13 LMagenta 14 Yellow 15 White
0 Empty 1 Solid 2 Line 3 LtSlash 4 Slash 5 BkSlash 6 LtBkSlash 7 Hatch 8 XHatch 9 Interleave 10 WideDot 11 CloseDot 12 Stipple1 13 Stipple2 14 Stipple3 15 Stipple4 Automatische Bestätigung
Manchmal zeigt EAGLE dem Benutzer Informationen bzw. Warnungen an, oder
verlangt nach einer Entscheidung, wie weiter verfahren werden soll.
Dies mag bei automatisierten Abläufen (wie Skripten)
unerwünscht sein.
Der Befehl
SET CONFIRM YES
sorgt dafür, dass jeder Mitteilungs-Dialog automatisch so bestätigt wird,
als hätte der Benutzer den "positiven" Button ("OK" bzw. "Ja") angeklickt.
Der Dialog selbst wird überhaupt nicht dargestellt.
Entsprechend wirkt der Befehl
SET CONFIRM NO
als hätte der Benutzer den "negativen" Button ("Nein") angeklickt, falls
ein solcher vorhanden ist. Andernfalls wird der Dialog einfach bestätigt.
SET CONFIRM OPT2
NAME GND (x y)
Schließlich schaltet
SET CONFIRM OFF
die automatische Bestätigung wieder aus. Wird die automatische Bestätigung
nicht explizit ausgeschaltet, so fällt sie automatisch auf OFF
zurück, sobald das Editor-Fenster wieder eine interaktive Eingabe des
Benutzers annimmt.
SET CONFIRM YES
REMOVE filename
SET CONFIRM OFF
Seien Sie extrem vorsichtig bei der Verwendung dieses Befehls!
Mitteilungs-Dialoge blind zu bestätigen kann dazu führen, dass wichtige
Mitteilungen übersehen werden. Das Ergebnis kann dann unter Umständen nicht
das sein, was der Benutzer erwartet.
Platinengrenzen (nur Make-Pro-Edition)
Die Make-Pro-Edition hat eine begrenzte Platinenfläche, läßt aber variable
Breite und Höhe zu (siehe EAGLE-Editionen).
Um diese Grenzen anzupassen, können die Befehle
SET LIC_WIDTH width
SET LIC_HEIGHT height
benutzt werden. Wenn die Breite gesetzt wird, paßt sich die Höhe entsprechend an
und umgekehrt.
EagleRc-Parameter
Manchmal ist es notwendig, ein kleines Funktionsdetail einstellbar zu machen,
zum Beispiel weil einige Benutzer es unbedingt anders haben wollen.
Diese Parameter sind nicht in irgendwelchen Dialogen verfügbar, sondern können
ausschließlich über einen Eintrag in der eaglerc-Datei verändert werden.
Um dieses zu vereinfachen wird jeder Parameter, der nicht in obigen Schlüsselwörtern
gefunden wurde, in den eaglerc-Parametern gesucht und kann so mit dem SET-Befehl
verändert werden. Im Prinzip können Sie so jeden Parameter der eaglerc-Datei verändern.
Beachten Sie bitte, dass die Parameternamen vollständig und genau so, wie unten
aufgelistet, angegeben werden müssen (auch bezüglich Groß-/Kleinschreibung).
Der Parameterwert ist typischerweise '0' oder '1', um eine Funktion aus- bzw.
einzuschalten. Nach der Veränderung eines Parameters, der die Bildschirmdarstellung
beeinflußt, kann es nötig sein, das Zeichenfenster aufzufrischen.
SET Option.DrawUnprocessedPolygonEdgesContinuous 1;
Folgende eaglerc-Parameter stehen für Spezial-Einstellungen zur Verfügung:
123 stellt Layer 123 dar 123t stellt Layer 123 dar, wenn die Ausgabe "von oben gesehen" erfolgt (nicht gespiegelt) 123b stellt Layer 123 dar, wenn die Ausgabe "von unten gesehen" erfolgt (gespiegelt) 123-140 stellt die Layer 123 bis 140 in der angegeben Reihenfolge dar 140-123 stellt die Layer 140 bis 123 in der angegeben Reihenfolge dar * fügt die Standard-Sequenz der internen Layer ein 123b * 123t sorgt dafür, dass Layer 123 immer als erster dargestellt wird
48t 49t 19t 47t 20t 46t 23 27 25 59 57 55 53 50 51 21 44t 45t 37 35 31 29 33 39 41 43t 18t 17t 1-16 17b 18b 43b 42 40 34 30 32 36 38 45b 44b 22 52 54 56 58 60 26 28 24 46b 20b 47b 19b 49b 48b 61-99.
Bei Ansicht von oben, wird die Layer-Sequenz von rechts nach links abgearbeitet,
während sie bei Ansicht von unten (gespiegelt) von links nach rechts abgearbeitet wird.
Zum Beispiel ist Layer 48 (Document) als 48t und 48b enthalten, damit dieser immer
als letzter dargestellt wird. Die Layer 21 (tPlace) und 22 (bPlace) hingegen sind
nur jeweils einmal aufgelistet, damit Sie an der richtigen Stelle erscheinen, je
nachdem, ob die Ausgabe gespiegelt erfolgt oder nicht.
Alle nicht explizit in der Layer-Sequenz aufgeführten Layer werden nach der
gegebenen Sequenz, in aufsteigender Reihenfolge, dargestellt.
SHOW
Siehe auch INFO
SHOW name..
SHOW @ name..
Quervergleich zwischen Platine und Schaltplan
Bei aktivierter Forward&Back-Annotation
wird ein Objekt, das mit Hilfe des SHOW-Befehls heller dargestellt wird,
sowohl im Schaltplan als auch in der Platine heller dargestellt.
Mehrere Objekte
Wenn Sie mehrere Objekte mit dem SHOW-Befehl selektieren, wird jedes
einzelne hell dargestellt.
Sie können mehrere Objekte gleichzeitig hervorheben indem Sie diese jeweils
mit gedrückter Ctrl-Taste anklicken. Klicken Sie mit gedrückter Ctrl-Taste
auf ein Objekt, das bereits hervorgehoben dargestellt ist, so wird dieses
Objekt wieder in den nicht hervorgehobenen Zustand versetzt.
Kleine Objekte
Wird das Zeichen @ in der Kommandozeile angegeben, so wird ein Rechteck
um das hervorgehobene Objekt gezeichnet. Dies ist hilfreich bei der Suche nach
kleinen Objekten, die durch bloßes Hervorheben nicht leicht zu finden wären.
Wird mehr als ein Objekt hervorgehoben, so wird das Rechteck um alle Objekte
gezeichnet. Um das Rechteck zu sehen, kann es erforderlich sein, aus der Zeichnung
herauszuzoomen (oder WINDOW FIT einzugeben).
Soll ein Objekt mit dem Namen @ hervorgehoben werden, so muss der Name
in einfache Hochkommas eingeschlossen werden.
Platzhalter
Falls der name-Parameter angegeben wurde, so sind die Zeichen '*', '?'
und '[]' Platzhalter und haben folgende Bedeutung:
* steht für eine beliebige Anzahl beliebiger Zeichen ? steht für genau ein Zeichen [...] steht für irgend eines der Zeichen zwischen den Klammern Objekte auf anderen Seiten
Wird ein namentlich genanntes Objekt nicht auf der aktuellen Schaltplanseite
gefunden, so erscheint ein Dialog mit einer Liste aller Seiten, auf denen dieses
Objekt gefunden wurde. Wurde das Objekt auf keiner Seite gefunden, so wird als
Seitennummer in dieser Liste '-' angezeigt. Beachten Sie bitte, dass dieser Dialog
nur dann erscheint, wenn mindestens eines der durch Namen (bzw. Platzhalter)
angegebenen Objekte nicht auf der aktuellen Seite gefunden wurde. Wurden alle
Objekte auf der aktuellen Seite gefunden, so erscheint kein Dialog (selbst, wenn
einige Objekte auch auf anderen Seiten vorkommen). Wenn der Dialog erscheint, dann
enthält er alle gefundenen Objekte, auch diejenigen auf der aktuellen Seite.
Beispiele
SHOW IC1
IC1 wird hell und bleibt hell, bis der SHOW-Befehl beendet oder
ein anderer Name eingegeben wird.
SHOW IC*
Zeigt alle Objekte an deren Namen mit "IC" beginnt.
SIGNAL
Siehe auch AUTO,
ROUTE,
NAME,
CLASS,
LINE,
RATSNEST,
EXPORT
SIGNAL signal_name ..
SIGNAL signal_name element_name pad_name..;
Mauseingabe
Man selektiert mit der Maus der Reihe nach die Anschlüsse, die
miteinander verbunden werden sollen. EAGLE stellt die Signale als
Luftlinien im Unrouted-Layer dar.
Texteingabe
Man kann ein Signal aber auch vollständig textuell definieren.
Die Eingabe
SIG GND IC1 7 IC2 7 IC3 7;
würde z.B. die Pads mit dem Namen '7' der ICs 1...3 miteinander
verbinden. Denken Sie an diese Möglichkeit im Zusammenhang mit
Script-Dateien. Sie können beispielsweise komplette Netzlisten
mit Hilfe von Script-Dateien eingeben.
Kurzschluss-Check
Versucht man, mit SIGNAL zwei Pads zu verbinden, die bereits
unterschiedlichen Signalen angehören, dann wird in einem Popup-Menü
nachgefragt, ob die beiden Signale verbunden werden sollen und welchen
Namen sie erhalten sollen.
Konturdaten
Der Signalname _OUTLINES_ gibt dem Polygon besondere Eigenschaften,
die man zur Erzeugung von Konturdaten (z. B.
zum Fräsen von Prototypen) benötigt. Dieser Name sollte ansonsten nicht
verwendet werden.
SPLINE
SLICE
Siehe auch DELETE,
RIPUP
SIM
Siehe auch EXPORT,
INFO,
ADDMODEL,
MAPTOMODEL,
SOURCESETUP,
VALUE
Spice-Simulation
Grundfunktion
Der SIM-Befehl wird verwendet um die Spice-Simulation in EAGLE zu starten. Die Bauteile müssen simulationsfähig
sein. Dazu wird in EAGLE eine Verwaltete Bibliothek mit dem Namen ngspice-simulation bereitgestellt.
Klicken Sie auf das SIM-Icon oder tippen Sie SIM in der EAGLE-Befehlszeile ein. Konfiguration, Netzliste und Plot
werden unter den entsprechenden Tabs im Simulations-Dialog angezeigt.
Unterstützte Simulationen sind unter folgendem Link aufgeführt:
Passive-Sign-Konvention
Bitte beachten Sie, dass EAGLE die Passive-Sign-Konvention (PSC) verwendet, bei der die Versorgung positiv ist,
wenn Strom in den positiven Anschluß des Devices fließt. Das bedeutet, typischerweise haben Lasten eine positive
Dissipation (sie verbrauchen Power) und Quellen eine negative (sie liefern Power).
Simulations-Dialog Tabs
Simulationsfähige Bibliotheksbauteile
Ground
Ein gültiges Ground-Symbol hat ein Attribut SPICEGROUND mit leerem Value.
Es muss ein Gound-Symbol in der Schaltung vorhanden und mit einem Netz (oder Netzen) verbunden sein, damit
der Simulator fehlerfrei arbeiten kann.
Startbedingungen
Zusatzlich zu den Attributen, die man für simulationsfähige Bauteile definiert, kann man auch die Startbedingungen
für Bauteile, wie zum Beispiel die Startspannung für einen Kondesator, festlegen. Die Startbedingungen werden
im INFO-Dialog angezeigt.
Spice-Mapping
Für jeden Pin eines simulationsfähigen Bauteils muss eine Zuordnung zur Spice-Order im Spice-Modell haben.
Diese Eigenschaft weist dem Pin den korrekten Input in einem Spice-Subcircuit, Model-Card oder intrinsischen
Modell zu.
Nehmen wir zum Beispiel einen Opamp, der 5 Pins hat. Im Bibliothekssymbol für den Operationsverstärker sind
fünf Pins definiert und ebenso müssen dementsprechend im Spice-Modell fünf Inputs sein. Jedem Input ist eine
Nummer beginnend mit 1 zugeordnet, die auf die entsprechenden Modell-Input-Parametern verweist.
Diese spice-kompatible Zuordnung wird erreicht indem man die Befehle MAKESPICE und dann MAPTOMODEL auf ein Part
in der Bibliothek im Device-Editor und im Schaltplan-Editor anwendet.
Macht man die Zuordnung in der Bibliothek, wird das Spice-Modell in der Bibliothek gespeichert. Unabhängig
davon ob das Part bereits in der Bibliothek eine zuordnung hat, kann man jederzeit eine neue Zuordnung im
Schaltplan festlegen. Diese wird dann direkt für das Bauteil im Schaltplan gespeichert; die Information aus
der Bibliothek ist dann nicht mehr gültig.
Es gibt ein Mapping-Interface füe die Befehle ADDMODEL und MAPTOMODEL, die es
erlauben Bauteil-Pins den Modell-Pins zuzuordnen.
Part Attribute: Beim Zuordnen der Bauteile im Schaltplan werden folgende Attribute verwendet:
Spice-Modell Verwendung
Modelle verwenden
Bitte beachten Sie folgende Suchreihenfolge:
Wird das Modell an keiner der drei oben genannten Stellen gefunden, wird es nicht in die Netzliste übernommen und
die Simulation schlägt fehl. Das Ergebnis der Simulation meldet, dass das Modell nicht gefunden wurden.
Netzlisten
Die Dateien *.sim.proc.log enthalten die Antworten vom System, wenn man den Simulator startet. Sie können
bei Problemen in der Konfiguration oder des Systems hilfreich sein.
Netlist Features
Die Netzliste wird von EAGLE erzeugt und für die Simulation verwendet. Es ist jedoch möglich die Netzlist
manuell zu verändern und auf dieser veränderten Grundlage eine Simulation zu starten. Verändern Sie dazu die
Netzliste direkt im Netlist-Tab und wenn Sie dann Simulieren aus dem Netlist-Tab klicken, startet
die Simulation unter Verwendung der editierten Netzliste.
Plotten
Mit der Maus kann man durch Klick&Drag in einen bestimmten Bildbereich hineinzoomen. Rauszoomen erfolgt mit
Doppelklick auf den Plot. Mit der Mausbewegung werden alle Signale verfolgt und die entsprechenden Werte in
der Plot-Legende angezeigt.
Source-Setup
Unterstützte Funktionen
SIMOPTOGGLE
See also SIM
REPOSITION
Siehe auch NAME,
VALUE,
TEXT,
ATTRIBUTE
REPOSITION name ..
SMASH ..
SMASH name ..
SMD
Siehe auch PAD,
CHANGE,
NAME,
ROUTE,
Design Rules
Roundness
Der Wert für roundness kann ganzzahlig - mit negativen Vorzeichen, um es
vom width-Parameter zu unterscheiden - zwischen 0 und 100 angegeben
werden.
Der Wert 0 erzeugt rechteckige SMDs, während der Wert 100
die Ecken der SMDs vollständig rundet.
Der Befehl
SMD 50 50 -100 '1'
erzeugt zum Beispiel ein rundes SMD mit dem Namen '1' an der Position des
Mausklicks. Dieses kann man für ein BGA-Gehäuse (Ball Grid Array) verwenden.
Beliebige Pad-Formen
Falls die standardmäßigen SMD Pad-Formen für ein bestimmtes Bauteil nicht
ausreichen, können Sie beliebige SMD Pad-Formen dadurch erzeugen, dass Sie
ein Polygon um ein SMD Pad herum zeichnen, oder eine Leiterbahn zeichnen, die mit einem
Ende an das SMD Pad angeschlossen ist.
Namen
Smd-Namen werden vom Programm automatisch erzeugt und können mit
dem NAME-Befehl geändert werden.
Der Name kann als Parameter auch im SMD-Befehl mit angegeben werden
(muss in Hochkommas eingeschlossen sein).
Flags
Folgende flags können dazu benutzt werden, das Erscheinungsbild eines Smds zu
beeinflussen:
NOSTOP keine Lötstopmaske generieren NOTHERMALS keine Thermals generieren NOCREAM keine Lotpastenmaske generieren
Ein neu gestarteter SMD-Befehl setzt alle Flags auf ihre Standardwerte zurück.
Sobald ein Flag in der Kommandozeile angegeben wird, gilt es für alle nachfolgend
in diesem SMD-Befehl plazierten Smds.
Einzelne Smds
Einzelne Smds in Platinen sind als Package zu realisieren und dann
in die Platine zu holen.
SMDARRAY
Optionen
SIDES Kann L, R, LR, T, B, oder TB sein. Zeigt an, auf welcher Seite des Rechtecks die SDMDs gezeichnet werden sollen.
Wobei L=links, R=rechts, T=Top (oben), B=Bottom (unten) ist. BASE Das ist der Basisname, der für das Benennen der SMDs verwendet wird. Das erste SMD wird dementsprechend
<base><start> und die nachfolgenden SMDs mit einem aufsteigenden numerischen Index benannt (z.B.
ADDR1, ADDR2 ... ADDRn). Das letzte platzierte SMD erhält den entsprechenden Namen <base><start+count-1>. START Das ist der Start-Index für die Benennung der SMDs. Der Name des ersten SMDs ist <base><start>. COUNT Die Anzahl der SMDs, die platziert werden sollen. DX Der Abstand zwischen den SMDs in x-Richtung. DY Der Abstand zwischen den SMDs in y-Richtung. UNIT Gültige Werte sind: MIC (für Micron), MM (Millimeter), MIL (mil = 0.001 inch), INCH. DRAWRECT ON oder OFF. Bestimmt, ob beim Platzieren auch ein Rechteck im Layer tPlace gezeichnet werden soll. INCLUDENAME ON oder OFF. Bestimmt, ob ein Textobjekt >NAME platziert werden soll. INCLUDEVALUE ON oder OFF. Bestimmt, ob ein Textobjekt >VALUE platziert werden soll. DELETEOBJS ON oder OFF. Bestimmt, ob vor dem Anlegen des Arrays SMDs, Labels und Wire-Objekte gelöscht werden sollen. SOURCESETUP
See also ADDMODEL,
SIM,
DSOURCESETUP
DSOURCESETUP
See also SIM,
See also ADDMODEL,
See also SOURCESETUP
Typical Usage
Used to setup a "digital source" part to provide input signal stimuli for digital
circuit simulations. Data can be entered in a table manually, or loaded from a .csv
file.
After you place a digital source part, connect all the part pins to nets, then run
DSOURCESETUP and click on the part, (or alternatively, right-click on the part and
choose Digital Source Setup), to configure it. You will be presented with
a table-based interface, with one column for time, and one column for each output of the device.
Data is entered into the table so that each row has a time value (i.e. 0.010s, or 10m, or 10ms, or 10e-3)
then a series of digital values (0 or 1) for each output of the device. The table below
gives an example of the data that could be entered for a 4-output digital source.
TIME OUT1 OUT2 OUT3 OUT4
0 0 0 0 0
10ms 1 0 1 0
15ms 0 1 1 1
Advanced Usage
The digital values can be entered simply as 0 or 1 or U (for unknown state), or also optionally ending with
a signal strength/type indicator suffix character which is one of s, r, z, or u (these stand for
strong, resistive, hi-impedance, and undetermined). The full list of possible values
is: 0s, 1s, Us, 0r, 1r, Ur, 0z, 1z, Uz, 0u, 1u, Uu
.
SPLIT
Siehe auch MITER,
MOVE,
OPTIMIZE,
SET
SET OPTIMIZING OFF;
eingegeben wurde. Hat man diesen Befehl eingegeben, bleiben die
Trennstellen in den Linien erhalten. Sie bleiben auch dann erhalten,
wenn man im SPLIT-Befehl dieselbe Stelle zweimal mit der Maus anklickt.
Leitung verjüngen
Dazu selektiert man den SPLIT-Befehl, markiert den zu verjüngenden
Abschnitt mit zwei Mausklicks, gibt den Befehl
CHANGE WIDTH breite
ein und klickt mit der Maus das gewünschte Segment an.
FUSIONSYNC
FUSIONTEAM
Eine Schaltplan- und/oder Boarddatei kann auf Fusion Team hochgeladen werden. Der Befehl wird im Layout-Editor über das Tab Fusion Team oder durch Tippen des Befehls in der Kommandozeile aktiviert.
Wählt man eine CAM-Jobdatei, werden die Daten automatisch erzeugt und als zip-Archiv auf Fusion Team publiziert.
Das Fusion Team Tab kann zusammen mit dem Tab Fusion 360 über das Menü Optionen/Benutzeroberfläche aktiviert bzw. deaktiviert werden.
TECHNOLOGY
Siehe auch PACKAGE,
ATTRIBUTE
TECHNOLOGY -name ..;
TECHNOLOGY -* ..;
Beispiel
In einem Device mit dem Namen "74*00" löscht der Befehl
TECHNOLOGY -* '' L LS S HCT;
zunächst alle bisherigen Technologien und erzeugt anschließend die folgenden
Technologie-Varianten:
7400
74L00
74LS00
74S00
74HCT00
TEXT
Siehe auch CHANGE,
MOVE,
MIRROR,
ROTATE,
ATTRIBUTE
TEXT 'beliebige_zeichen' [orientation] ..
Schreibrichtung
Mit der rechten Maustaste dreht man den Text.
Text auf Lötseite
Texte in den Layern Bottom und bPlace werden automatisch gespiegelt.
Mehrzeilige Texte
Texte dürfen Zeilenumbrüche enthalten. Im Textdialog können sie mit Shift-Enter
eingegeben werden, in der Kommandozeile muß "\n" verwendet werden.
Sonderzeichen
Sollen in einem Text mehrere aufeinanderfolgende Leerzeichen oder
ein Strichpunkt enthalten sein, dann setzt man den ganzen String in
Hochkommas. Sollen Hochkommas gedruckt werden, dann ist jedes einzelne
in Hochkommas einzuschließen.
Soll der Text Backslashes ('\') enthalten, dann muß jeder mit einem weiteren Backslash
maskiert werden (z.B. TEXT 'abc\\\\def' führt zu abc\\def).
Schlüsselwörter
Ist der TEXT-Befehl aktiv und enthält der einzugebende Text Wörter,
die EAGLE für Befehle oder Orientation-Schlüsselwörter
hält (z. B. und für UNDO), dann sind diese
Wörter oder der gesamte Text in Hochkommas einzuschließen.
Texthöhe
Die Zeichengröße und die Strichstärke ändert man mit
den Befehlen:
CHANGE SIZE text_size ..
CHANGE RATIO ratio ..
CHANGE LINEDISTANCE value ..
Maximale Texthöhe: ca. 2 Zoll.
Maximale Strichstärke: 200 mm (ca. 7.7840 Zoll)
Parameter "ratio": 0...31 (% der Texthöhe)
Zeilenabstand: 0...250 (% der Texthöhe).
Schriftart
Texte können in drei Schriftarten verwendet werden:
Vector der programm-interne Vektor-Font Proportional ein Proportional-Pixel-Font (üblicherweise 'Helvetica') Fixed ein Monospaced-Pixel-Font (üblicherweise 'Courier')
CHANGE FONT VECTOR|PROPORTIONAL|FIXED ..
Das Programm versucht die Nicht-Vector-Schriftarten so gut wie möglich auszugeben.
Da diese jedoch vom Grafik-Interface Ihres Systems gezeichnet werden, können bei
Proportional- und Fixed-Schriftart Abweichungen in der Größe
bzw. Länge entstehen.
Mit SET Interface.VectorFont 0|1
können Sie diese Einstellung ändern.
Mit SET VECTOR_FONT OFF|ON können Sie diese
Einstellung für ein bestehendes Layout oder einen Schaltplan ändern.
Text-Ausrichtung
Die Text-Ausrichtung gibt an, an welcher Stelle des Textes sich der Aufhängepunkt
befinden soll.
Es gibt neun verschiedene mögliche Ausrichtungen, die aus Kombinationen der
Schlüsselworte left, bottom, center, right
und top bestehen. Diese Schlüsselworte können in beliebiger Reihenfolge
angegeben werden, wobei aber nur das jeweils letzte von left/right bzw. top/bottom
für die tatsächliche Ausrichtung maßgebend ist. Das Schlüsselwort center wirkt
nur für jene Richtungen, für die kein anderes Schlüsselwort angegeben wurde.
Der Standardwert ist left und bottom.
CHANGE ALIGN TOP CENTER; TEXT 'ABC' zeichnet den Text ABC mit dem Aufhängepunkt oben in der Mitte Zeichensatz
Eine korrekte Darstellung wird nur für die Zeichen im ASCII-Code unter
128 garantiert. Alle anderen Zeichen darüber können systemabhängig zu
unterschiedlichen Darstellungen in den unterschiedlichen Schriftarten führen.
Spezielle Platzhalter-Texte
Spezielle Texte in einer Symbol- oder Package-Zeichnung, die mit '>'
gekennzeichnet sind, werden durch konkreten Werten im Schaltplan bzw. Board ersetzt:
>NAME Bauteilname (ggf.+Gate-Name) 1) >VALUE Bauteilwert/-typ 1) >PART Bauteilname 2) >GATE Gate-Name 2) >XREF Bauteil-Querverweis 2) >CONTACT_XREF Kontaktspiegel 2) >ASSEMBLY_VARIANT Name der aktuellen Bestückungsvariante >DRAWING_NAME Zeichnungsname >LAST_DATE_TIME Datum/Zeit der letzten Änderung >PLOT_DATE_TIME Datum/Zeit der Plot-Erstellung >SHEETNR Seitennummer eines Schaltplans 3) >SHEETS Gesamtzahl der Seiten eines Schaltplans 3) >SHEET entspricht ">SHEETNR/>SHEETS" 3) >MODULE Modul-Name (verfügbar auf Modul-Seiten, sonst leer) 3) >SHEET_HEADLINE Seitenüberschrift 3) >SHEETNR_TOTAL Seitennummer eines Schaltplans (inkl. Modulseiten) 3) >SHEETS_TOTAL Gesamtzahl der Seiten von Schaltplan und Modulen 3) >SHEET_TOTAL entspricht ">SHEETNR_TOTAL/>SHEETS_TOTAL" 3)
2) Nur im Symbol
3) Nur im Symbol oder Schaltplan
%S die Seitennummer %C die Spalte auf der Seite %R die Zeile auf der Seite Attribute
Soll in einer Symbol- oder Package-Zeichnung ein Attribut
des konkreten Bauteils dargestellt werden, so kann hierfür ein Text mit dem Namen
des Attributs und vorangestelltem '>' benutzt werden.
Standardmäßig wird nur der Wert des gegebenen Attributs dargestellt. Folgt auf den
Namen des Attributs eines der Zeichen '=', '~' oder '!',
so geschieht die Darstellung wie folgt:
Beachten Sie bitte, dass es für jeden Attribut-Namen nur einen solchen Text pro
Symbol bzw. Package geben sollte.
Werden mehrere solcher Texte in einem Symbol bzw. Package verwendet, die alle den
gleichen Attribut-Namen referenzieren, so wird nur einer davon angezeigt, wenn
das Bauteil, welches dieses Symbol bzw. Package verwendet, gesmasht wird.
>ABC 123 >ABC= ABC = 123 >ABC~ ABC >ABC! nothing Überstrichener Text
Text kann überstrichen werden, was zum Beispiel sinnvoll ist für
die Namen von negierten Signalen ("active low", siehe auch
NET, BUS und PIN).
Hierfür muss dem Text ein Ausrufezeichen ('!') vorangestellt werden, wie in
!RESET
was als
_____
RESET
dargestellt würde. Diese Möglichkeit ist nicht auf Signalnamen beschränkt,
sondern kann in allen Texten benutzt werden. Man kann auch nur einen Teil
eines Textes überstreichen, wie in
!RST!/NMI
R/!W
was als
___
RST/NMI
_
R/W
dargestellt würde. Beachten Sie das zweite Ausrufezeichen, welches das
Ende des Überstrichs markiert. Ein Text kann beliebig viele Überstriche
enthalten. Soll ein Text ein Ausrufezeichen enthalten, welches keinen
Überstrich erzeugt, so muss diesem ein Backslash vorangestellt werden.
Um die Notwendigkeit von Backslashes auf ein Minimum zu reduzieren startet
ein Ausrufezeichen einen Überstrich dann nicht, wenn es das letzte Zeichen
eines Textes ist, oder wenn es unmittelbar von einem Leerzeichen,
einem Apostroph, einem Anführungszeichen oder
einer schließenden runden, eckigen oder geschweiften Klammer gefolgt wird.
Ein Ausrufezeichen bzw. Komma ohne vorangestellten Backslash, das nach
einem Ausrufezeichen steht, welches einen Überstrich begonnen hat, beendet
den Überstrich (dass das Komma einen Überstrich beendet ist notwendig für
Busse).
EXPORTSTEP
Der Befehl EXPORTSTEP kann über die Kommandozeile oder über das Menü Export/STEP im Layout-Editor-Fenster gestartet werden.
UNDO
Siehe auch REDO,
SET,
Forward&Back-Annotation
UNDO LIST
SET UNDO_LOG OFF;
abschalten.
UNDO-Puffer Dialog
Die Option LIST im UNDO-Befehl öffnet einen Dialog, der den gesamten
Inhalt des UNDO-Puffers darstellt. Sie können sich in der Liste der
Undo-/Redo-Schritte bewegen indem Sie den Listen-Trenner mit der Maus
verschieben, oder direkt auf einen Schritt klicken, zu dem Sie gehen wollen.
Liegen mehrere Schritte zwischen der aktuellen Position des Listen-Trenners
und dem angeklickten Listeneintrag, so werden alle dazwischenliegenden
Schritte in der entsprechenden Reihenfolge ausgeführt. In der Liste nach
oben zu gehen bewirkt UNDO, nach unten REDO.
Das Icon bei jedem Listeneintrag gibt an, in welcher Zeichnung der entsprechende
Befehl ausgeführt worden ist.
UNGROUP
See also NEWGROUP,
EDITGROUP, GROUPS VIEW
UNGROUP name ..
The keyboard shortcut can be overridden in default-assign.scr. Make sure that line "SCRIPT default-assign.scr" in
"Documents/EAGLE/scripts/eagle.scr" is uncommented to properly assign shortcut keys.
UPDATE
Siehe auch ADD,
REPLACE
UPDATE;
UPDATE library_name..;
UPDATE package_name@library_name..;
UPDATE +@ | -@ [library_name..];
UPDATE old_library_name = new_library_name;
Update im Layout oder Schaltplan
Wird der Befehl ohne Parameter mit einem ';' abgeschlossen, werden alle
Bauteile überprüft.
Update in einer Bibliothek
Beim Update in einer Bibliothek werden alle in dieser befindlichen Packages durch
die entsprechenden Versionen aus den angegebenen Bibliotheken ersetzt.
USE
Siehe auch ADD,
REPLACE
USE -*;
USE library_name..;
USE -library_name..;
Auswählen der Bibliotheken über das Control Panel
Wenn eine Bibliothek, die Sie benutzen wollen im Bibliotheks-Editor
verändert und noch nicht gespeichert wurde, werden Sie gefragt, ob die Datei
jetzt gespeichert werden soll oder nicht. Beantworten Sie diese Frage mit
Yes, wird die Datei gespeichert und Sie benutzen die modifizierte Datei.
Antworten Sie mit No, wird die Datei nicht gespeichert und Sie benutzen
die Bibliothek unverändert, so wie sie auf der Festplatte gespeichert ist.
Die Schaltfläche Cancel bricht den Befehl ab, so dass weder die Datei
gespeichert noch diese Bibliothek "in use" ist.
Bibliotheken können im Control Panel als "in use"
markiert werden, indem Sie auf den Marker klicken, der seine Farbe ändert, um anzuzeigen,
ob die Bibliothek "in use" ist, oder durch die Auswahl des Punkts "Use" im Kontext-Menü
des Bibliothekseintrags in der Baumansicht. Im Kontext-Menü gibt es die Möglichkeit
alle all oder keine none der Bibliotheken zu wählen.
Bibliotheken "in use" und Projekte
Die Bibliotheken, die "in use" sind, werden in der Projekt-Datei (eagle.epf) gespeichert,
sofern ein Projekt geladen ist.
Beispiele
USE öffnet den Datei-Dialog zur Auswahl einer Bibliothek USE -*; gibt alle vorher mit USE markierten Bibliotheken auf USE demo trans*; markiert die Bibliothek demo.lbr und alle Bibliotheken mit Namen trans*.lbr USE urn:adsk.eagle:library:462; markiert die Verwaltete Bibliothek mit der URN urn:adsk.eagle:library:462 USE -* /eagle/lbr; gibt zunächst alle bereits makierten Bibliotheken auf und markiert dann alle Bibliotheken aus dem Verzeichnis /eagle/lbr VALUE
Siehe auch NAME,
REPOSITION,
VARIANT
VALUE wert ..
VALUE name wert ..
VALUE ON;
VALUE OFF;
In Platine und Schaltplan
Elemente kann man mit einem Wert versehen, etwa 10k bei einem Widerstand.
Bei ICs trägt man anstelle des Wertes sinnvollerweise den Typ
ein (z. B. 7400). Den Wert bzw. Typ trägt man mit dem VALUE-Befehl
ein. Der Befehl selektiert das nächstgelegene Element und öffnet
ein Popup-Menü, in dem man einen neuen Wert festlegen oder den
bisherigen verändern kann.
Beispiel
VALUE R1 10k R2 100k
Hier wurde mehreren Elementen in einem Befehl je ein Wert zugewiesen.
Diese Möglichkeit lässt sich auch in Script-Dateien nach
folgendem Muster ausnutzen:
VALUE R1 10k \
R2 100k \
R3 5.6k \
C1 10uF \
C2 22nF \
...
Der Backslash ('\') verhindert, dass in der nächsten Zeile ein Parameter
mit einem Schlüsselwort verwechselt wird.
Im Device: Wert oder Typ
Wendet man den VALUE-Befehl im Device-Editier-Modus an, dann sind
die Parameter On und Off zulässig.
VARIANT
Siehe auch VALUE,
TECHNOLOGY
VARIANT name part_name [NO]POPULATE [ 'value' [ technology ] ];
VARIANT [ + | - ] name;
Modul-Bestückungsvarianten
Bestückungsvarianten können auch in Modulen erzeugt werden. In jeder
Modul-Instanz kann eine Bestückungsvariante des jeweiligen Moduls gewählt werden.
VIA
Siehe auch SMD,
CHANGE,
DISPLAY,
SET,
PAD,
Design Rules
Signalname
Der Parameter signal_name ist in erster Linie für die
Anwendung in Script-Dateien gedacht, die generierte Daten einlesen.
Wenn ein Signalname angegeben ist, werden alle folgenden Vias mit
diesem Signal verbunden, und es wird keine automatische Prüfung
durchgeführt.
Diese Möglichkeit ist mit großer Vorsicht
einzusetzen, da es zu Kurzschlüssen kommen kann, wenn ein Via so
plaziert wird, dass es unterschiedliche Signale verbindet. Bitte führen
Sie deshalb einen
Design Rule Check durch, nachdem Sie
den VIA-Befehl mit dem Parameter
signal_name benutzt haben!
Via-Durchmesser und Bohrdurchmesser
Die Eingabe eines Durchmessers vor dem Plazieren ändert die Größe
des Vias. Der Durchmesser wird in der aktuellen Maßeinheit angegeben.
Er darf maximal 200 mm (ca. 7.7840 Zoll) betragen.
CHANGE DRILL durchmesser
einstellen und verändern.
Via-Form
Ein Via kann eine der folgenden Formen (shape) haben:
Round rund
Octagon achteckig
CHANGE SHAPE shape
verändert werden.
Layer
Der Parameter layers gibt an über welche Layer sich
dieses Via erstrecken soll. Die Syntax ist von-nach, wobei 'von' und 'nach'
die Layer-Nummern sind über die sich das Via erstrecken soll. So würde zum
Beispiel 2-7 ein Via erzeugen, das von Layer 2 bis Layer 7 geht (7-2 hätte
die selbe Bedeutung). Falls das Layer-Setup in den Design Rules genau dieses
Via nicht zulässt, wird das nächst längere Via genommen (bzw. eine Fehlermeldung
ausgegeben, falls kein solches Via gesetzt werden kann).
Mit SET Option.ViaLength 1
wird die Via-Länge als Text angezeigt.
Flags
Folgende flags können dazu benutzt werden, das Erscheinungsbild eines Vias zu
beeinflussen:
STOP Lötstopmaske immer generieren WINDOW
Der WINDOW-Befehl legt den sichtbaren Ausschnitt der Zeichnung fest.
Ohne weitere Parameter frischt der Befehl das Bild auf.
WINDOW ;
WINDOW ;
WINDOW
WINDOW scale_factor
WINDOW FIT
WINDOW LAST
WINDOW FLIP
F2: WINDOW; Bild auffrischen
F3: WINDOW 2 Hineinzoomen um Faktor 2
F4: WINDOW 0.5 Herauszoomen um Faktor 2
F5: WINDOW (@); Neues Zentrum an aktueller Position des Mauszeigers (falls Befehl aktiviert)
Neues Zentrum
Der WINDOW-Befehl mit einem Mausklick legt diesen Punkt in die
Fenstermitte und lässt den Maßstab unverändert.
Den Bildausschnitt können Sie auch mit den Slidern am Rand des
Arbeitsbereichs verschieben. Mit F5 legen Sie die Position
des Mauszeigers als neues Zentrum fest.
Eckpunkte festlegen
Der WINDOW-Befehl mit zwei Mausklicks legt einen Ausschnitt
fest, bei dem beide Punkte gerade noch innerhalb des Fensters liegen
- eine sehr bequeme Möglichkeit für Ausschnittvergrößerungen.
Das Seitenverhältnis der Zeichnung wird nicht geändert.
Neues Zentrum und zoomen
Der WINDOW-Befehl mit drei Mausklicks legt einen Auschnitt fest, bei
dem der erste Punkt im Zentrum liegt. Das Verhältnis des Abstandes von
Punkt 1 zu Punkt 2 und von Punkt 1 zu Punkt 3 legt den
Vergrößerungsfaktor fest. Dabei gilt: Liegt der dritte Punkt weiter
entfernt vom ersten als der zweite, dann erscheinen die Objekte
größer.
Zoomen
WINDOW 2
vergrößert die Darstellung der Objekte um Faktor zwei.
WINDOW 0.5
verkleinert die Darstellung der Objekte um Faktor zwei.
Zeichnung formatfüllend
WINDOW FIT
stellt die gesamte Zeichnung im Fenster dar.
Zurück zum vorhergehenden Ausschnitt
WINDOW LAST;
schaltet zurück zum vorherigen Bildausschnitt. Ein Bildausschnitt wird bei jedem
WINDOW-Befehl neu hinterlegt, jedoch nicht bei reinen Zoom-WINDOW-Befehlen und
Veränderungen des Bildausschnitts mit der Maus.
Window Flip
WINDOW FLIP;
erlaubt es dem Anwender das Board von der Unterseite her zu sehen und zu bearbeiten.
Sehr große Zoom-Faktoren
Standardmäßig ist der maximale Zoom-Faktor auf einen Wert begrenzt, bei dem eine
Fläche mit 1mm Durchmesser noch formatfüllend dargestellt wird. Falls Sie weiter
hineinzoomen wollen, können Sie den Schalter "Optionen/Benutzeroberfläche/Zoomfaktor limitieren"
ausschalten. Sie können dann so weit hineinzoomen, bis die feinste Auflösung des
Rasters sichtbar ist.
Parameter-Aliase
Parameter-Aliase können dazu benutzt werden, bestimmte Parameter-Einstellungen des WINDOW-Befehls
zu definieren, die später unter einem gegebenen Namen angesprochen werden können.
Die Aliase können auch benutzt werden indem Sie auf den "WINDOW Select"-Button klicken
und die Maustaste gedrückt halten bis die Liste erscheint.
Ein Klick auf den Button mit der rechten Maustaste läßt die Liste ebenfalls erscheinen.
Beispiel:
WIRE
WRITE
Der WRITE-Befehl sichert eine Zeichnung oder eine Bibliothek im
Projektverzeichnis.
Man kann einen neuen Namen wählen oder denjenigen beibehalten,
unter dem die Zeichnung/Bibliothek geladen wurde.
WRITE name
WRITE @name
WRITE 7 [ name ]
WRITE [ DBL ] name
Speichern für EAGLE 7.x
Wenn man das Wort 7 nach WRITE angibt, wird die Datei für EAGLE 7.x gespeichert.
Alle XML-Attribute, die in Version 8 hinzugekommen sind, werden übergangen und es werden verschiedene
Anpasungen gemacht, so dass die Datei in EAGLE 7.x geöffnet werden kann. Bitte beachten Sie, dass
Informationen, wie zum Beispiel die URNs einer Verwalteten Bibliothek und deren Bestandteile
dabei verloren gehen.
Ausgabedaten erzeugen
Drucken
Die Parameter für das Drucken auf den Systemdrucker können mit folgenden
drei Dialogen eingestellt werden:
Siehe auch PRINT
Drucken einer Zeichnung
Wenn Sie den PRINT-Befehl ohne abschließenden
';' eingeben, oder wenn Sie Print aus dem
Kontext-Menü des Icons einer Zeichnung im
Control Panel auswählen, erhalten Sie einen
Dialog mit folgenden Optionen:
Papier
Definiert das zu verwendende Papierformat.
Ausrichtung
Definiert die Papierausrichtung.
Voransicht
Schaltet die Druck-Voransicht ein bzw. aus.
Spiegeln
Spiegelt die Ausgabe.
Drehen
Dreht die Ausgabe um 90°.
Kopfüber
Dreht die Ausgabe um 180°. Zusammen mit Drehen wird die Zeichnung um insgesamt 270° gedreht.
Schwarz
Ignoriert die Farbeinstellungen der Layer und druckt alles in Schwarz.
Gefüllt
Ignoriert die Füllmuster der Layer und druckt alles voll ausgefüllt.
Skalierungsfaktor
Skaliert die Zeichnung mit dem gegebenen Wert.
Blatt-Limit
Gibt an wieviele Blätter der Ausdruck maximal haben soll.
Falls die Zeichnung nicht auf die angegebene Zahl von Blättern passt, wird
der tatsächliche Skalierungsfaktor so lange verkleinert, bis sie passt.
Der Standardwert von 0 bedeutet "kein Limit".
Alle
Alle Seiten des Schaltplans werden ausgedruckt
(das ist der Standardwert, wenn Print aus dem
Kontext-Menü eines Schaltplan-Icons
ausgewählt wird).
Von...bis
Nur die angegebenen Seiten werden ausgedruckt.
Diese
Es wird nur die Seite ausgedruckt, die gerade editiert wird
(das ist der Standardwert, wenn der PRINT-Befehl
in einem Schaltplan-Editor Fenster verwendet wird).
Hierarchie
Schaltplanseiten von Modulen werden für jede Verwendung in Modulinstanzen
mit entsprechenden Bauteil- und Netznamen gedruckt.
Drucker...
Ruft den System-Druckerdialog auf, in dem der Drucker ausgewählt werden kann
sowie druckerspezifische Parameter eingestellt werden können.
PDF...
Erzeugt eine PDF-Datei (Portable Document Format) mit den gewählten Druckeinstellungen.
Drucken eines Textes
Wenn Sie Print aus dem
Kontext-Menü des Icons einer Textdatei im
Control Panel oder aus dem Datei
Menü des Text-Editors auswählen, erhalten Sie
einen Dialog mit folgenden Optionen:
Lange Zeilen umbrechen
Schaltet den Zeilenumbruch für zu lange Zeilen ein.
Drucker...
Ruft den System-Druckerdialog auf, in dem der Drucker ausgewählt werden kann
sowie druckerspezifische Parameter eingestellt werden können.
PDF...
Erzeugt eine PDF-Datei (Portable Document Format) mit den gewählten Druckeinstellungen.
Seiteneinrichtung
Der Druck-Dialog enthält einige Optionen die bestimmen, wie eine Zeichnung oder ein Text
auf dem Papier erscheinen soll.
Rand
Definiert den linken, oberen, rechten und unteren Rand. Die Werte werden
entweder in Millimeter oder Inch angegeben, je nachdem, welche Einheit
weniger Dezimalstellen ergibt.
Kalibrieren
Falls Sie mit Ihrem Drucker Produktionsvorlagen erstellen wollen,
kann es nötig sein, den Drucker zu kalibrieren um exakte 1:1
Ausdrucke Ihrer Layouts zu erhalten.
Anordnung
Definiert die vertikale und horizontale Anordnung der Zeichnung auf dem Papier.
Bildunterschrift
Aktiviert die Ausgabe einer Bildunterschrift mit Datum und Uhrzeit des
Ausdrucks sowie dem Dateinamen.
CAM-Prozessor
Mit dem CAM-Prozessor können Sie jede Layer-Kombination an ein Peripheriegerät
oder in eine Datei ausgeben.
CAM-Prozessor-Hauptmenü
Im CAM-Prozessor-Hauptmenü können Sie wählen, von welcher
Datei die Ausgabe generiert werden soll, Sie können Blenden- und
Bohrer-Konfigurationsdateien bearbeiten oder Job-Dateien laden und
sichern.
Datei
Öffnen Board... Board-Datei für Ausgabe laden Schaltplan... Schaltplan-Datei für Ausgabe laden Bohrertabelle... Bohrer-Konfigurationsdatei zum Editieren laden Blendentabelle... Blenden-Konfigurationsdatei zum Editieren laden Job... Anderen Job laden oder neuen erzeugen Zuletzt geöffnet Lädt ein der zuletzt geöffneten Dateien Job speichern... Gegenwärtigen Job sichern Schließen CAM-Prozessor-Fenster schließen Beenden Programm beenden Layer
Alle abwählen Alle Layer deselektieren Ausgewählte zeigen Nur die selektierten Layer anzeigen Alle zeigen Alle Layer anzeigen Fenster
Control Panel Zum Control Panel wechseln 1 Schaltplan - ... Zu Fenster 1 wechseln 2 Board - ... Zu Fenster 2 wechseln Hilfe
Allgemein Allgemeine Hilfe-Seite öffnen Kontext Öffnet die Hilfe-Seite für den momentanen Kontext CAM-Prozessor CAM-Prozessor-Hilfe öffnen Job-Hilfe Hilfe zum Job-Mechanismus anzeigen Device-Hilfe Hilfe zu Ausgabe-Devices anzeigen CAM-Prozessor-Job
Ein CAM-Prozessor-Job besteht aus unterschiedlichen
Sections,
von denen jede einen kompletten Satz von CAM-Prozessor-Parametern
mit einer bestimmten Layer-Auswahl darstellt.
Section
Der Section-Selektor zeigt die gegenwärtig aktive Job-Section
an. Durch Anklicken des Buttons können Sie jede der vorher
mit dem Add-Button
definierten Sections auswählen.
Prompt
Wenn Sie in dieses Feld einen Text eintragen, gibt der CAM-Prozessor
diese Meldung aus, bevor er die zugehörige Job-Section bearbeitet.
Wenn Sie zum Beispiel vor jeder Ausgabe das Papier in den Stiftplotter
einlegen wollen, könnte die Meldung "Bitte Papier wechseln!" lauten.
Jede Section kann ihre eigene Meldung haben. Wenn keine Meldung definiert
ist, wird die Section ohne vorherige Unterbrechung ausgeführt.
Add
Klicken Sie den Add-Button an, um dem Job eine neue Section
hinzuzufügen. Sie werden dann nach dem Namen der neuen Section gefragt.
Für die neue Section gelten die Parametereinstellungen, die im Menü zu
sehen sind.
Bitte achten Sie darauf, wenn Sie eine neue Job-Section anlegen, dass
Sie zuerst mit 'Add' die neue Section anlegen
und erst danach die Parameter modifizieren.
Wenn Sie zuerst die Parameter der gegenwärtigen Section modifizieren
und erst danach mit 'Add' die neue Section anlegen, werden Sie vom
Programm gefragt, ob Sie die Änderungen an der gegenwärtigen Section
abspeichern wollen oder nicht.
Del
Durch Anklicken des Del-Buttons löschen Sie die gegenwärtige
Job-Section. Bevor die Section gelöscht wird, müssen Sie die Rückfrage,
ob sie wirklich gelöscht werden soll, bestätigen.
Process Section
Der Process Section-Button startet die Datenausgabe für die gegenwärtig
angezeigte Section.
Process Job
Der Process Job-Button startet die Datenausgabe für den gesamten
Job. Dabei wird die zuerst definierte Section zuerst bearbeitet.
Es entstehen die gleichen Ausgabedaten, als würden Sie der Reihe nach
die unterschiedlichen Sections auswählen und mit dem Process Section-Button
starten.
Ausgabetreiber (Output Device)
Der Ausgabetreiber (Output Device) legt fest, welche Art von
Daten der CAM-Prozessor erzeugt. Sie können aus den unterschiedlichsten
Treiber den geeigneten auswählen, z.B. für Foto-Plotter, Bohrstationen etc.
Device
Durch Anklicken des Device-Selectors öffnen Sie eine Liste
aller verfügbaren Device-Treiber.
Skalierungsfaktor
Bei Geräten, die eine Skalierung erlauben, können Sie in dieses Feld
einen Skalierungsfaktor eintragen. Werte über 1 führen
zu einer Vergrößerung, Werte unter 1 verkleinern die Ausgabe.
Datei
Sie können in dieses Feld den Namen der
Ausgabedatei
direkt eingeben, oder Sie klicken den
Datei-Button an, um einen Dialog für die Definition
der Ausgabedatei zu öffnen.
Wenn Sie den Dateinamen aus dem Namen der
Schaltplan- oder Platinen-Datei ableiten wollen, können Sie den Namen
teilweise angeben (mindestens die Extension, z.B. .gbr). In
diesem Fall wird der Rest des Dateinamens von der Quelldatei
abgeleitet.
Blendentabelle
Sie können in dieses Feld den Namen der
Blenden-Konfigurationsdatei
direkt eingeben, oder Sie klicken den Wheel-Button an, um einen
Datei-Dialog zu öffnen und die
Datei zu selektieren.
Wenn Sie den Dateinamen aus dem Namen der
Schaltplan- oder Platinen-Datei ableiten wollen, können Sie den Namen
teilweise angeben (mindestens die Extension, z.B. .whl). In
diesem Fall wird der Rest des Dateinamens von der Quelldatei
abgeleitet.
Bohrertabelle
Sie können in dieses Feld den Namen der
Bohrer-Konfigurationsdatei
direkt eingeben, oder Sie klicken den Rack-Button an, um einen
Datei-Dialog zu öffnen und die
Datei zu selektieren.
Wenn Sie den Dateinamen aus dem Namen der
Schaltplan- oder Platinen-Datei ableiten wollen, können Sie den Namen
teilweise angeben (mindestens die Extension, z.B. .drl). In
diesem Fall wird der Rest des Dateinamens von der Quelldatei
abgeleitet.
Manche Treiber (wie zum Beispiel EXCELLON) können die Bohrerkonfiguration automatisch
generieren, wobei dann dieses Feld nicht verfügbar ist.
Device-Parameter
Abhängig vom gewählten Ausgabetreiber
gibt es verschiedene treiberspezifische Parameter, mit denen Sie
die Ausgabe an Ihre Bedürfnisse anpassen können.
Blenden-Konfigurationsdatei
Dem Fotoplotter muss bekannt sein, welche Blenden den Codes in der Ausgabedatei
entsprechen. Diese Zuordnung ist in der Blenden-Konfigurationsdatei definiert.
Beispiel
D010 round 0.004
D040 square 0.004
D100 rectangle 0.060 x 0.075
D104 oval 0.030 x 0.090
D110 draw 0.004
Die Datei darf mehrere Blenden enthalten, die den gleichen D-Code benutzen, so
lange alle von einem der Typen draw oder round sind und die gleiche
Größe haben.
Dies kann dazu benutzt werden um Blenden, die letztlich zum gleichen Zeichenergebnis
führen, auf einen gemeinsamen D-Code abzubilden.
Blenden-Emulation
Wenn die Option "Blenden" gewählt ist, werden nicht vorhandene
Blenden mit kleineren Blenden emuliert. Ist sie ausgeschaltet, werden
keine Blenden emuliert.
Blenden-Toleranzen
Falls Sie Toleranzen für Draw- bzw. Blitz-Blenden (Flash) angeben,
verwendet der CAM-Prozessor Blenden innerhalb dieser Toleranz, falls
keine mit dem exakten Maß verfügbar ist.
Bohrer-Konfigurationsdatei
Falls der Treiber für die Bohrstation die Bohrerkonfiguration nicht automatisch
generieren kann, muss bekannt sein, welche Bohrer den Codes in der Ausgabedatei
entsprechen. Diese Zuordnung ist in der Bohrer-Konfigurationsdatei definiert.
Beispiel
T01 0.010
T02 0.016
T03 0.032
T04 0.040
T05 0.050
T06 0.070
Bohrer-Toleranzen
Falls Sie eine Toleranz für Bohrer angeben, verwendet der
CAM-Prozessor Bohrer innerhalb dieser Toleranz, falls keiner mit dem
exakten Maß verfügbar ist.
Offset
Offset in x- und y-Richtung (Inch, Dezimalzahl)
Bedruckbarer Bereich
Height
Bedruckbarer Bereich in y-Richtung (Inch).
Width
Bedruckbarer Bereich in x-Richtung (Inch).
Stiftdaten
Diameter
Stift-Durchmesser in mm: Wird beim Füllen von Flächen zur
Berechnung der notwendigen Anzahl von Linien benutzt.
Velocity
Stiftgeschwindigkeit in cm/s (bei Stift-Plottern, die
unterschiedliche Geschwindigkeiten unterstützen). Die
Plotter-Default-Geschwindigkeit wählt man mit dem Wert 0.
Eigenen Device-Treiber definieren
Die Ausgabetreiber sind in der Textdatei eagle.def definiert.
Dort finden Sie Details, wie man einen eigenen Treiber definiert.
Am besten kopieren Sie einen Block eines existierenden Treibers
für denselben Gerätetyp und passen dann die Paramter an.
Ausgabedatei
Die Ausgabedatei enthält die Daten, die vom CAM-Prozessor
erzeugt werden.
=======================================================
Datei- Selekt. Layer Bedeutung
name
=======================================================
*.cmp Top, Via, Pad Bauteilseite
*.ly2 Route2, Via, Pad Multilayer-Innenlage
*.ly3 Route3, Via, Pad Multilayer-Innenlage,
... ...
*.sol Bot, Via, Pad Lötseite
*.plc tPl, Dim, tName, Bestückungsplan Bauteilseite
*.pls bPl, Dim, bName, Bestückungsplan Lötseite
*.stc tStop Lötstopmaske Bauteilseite
*.sts bStop Lötstopmaske Lötseite
*.drd Drills, Holes Bohrdaten für NC-Bohrmaschine
=======================================================
Platzhalter
Der Ausgabedateiname kann entweder direkt eingegeben oder mittels Platzhaltern
dynamisch zusammengesetzt werden. Ein Platzhalter besteht aus dem Prozentzeichen
('%') gefolgt von einem Buchstaben. Folgende Platzhalter sind
definitert:
%D{xxx} ein String, der nur im Namen der Datendatei eingesetzt wird %E die Extension der geladenen Datei (ohne den '.') %H das Home-Verzeichnis des Benutzers %I{xxx} ein String, der nur im Namen der Info-Datei eingesetzt wird %L die Layer-Nummern für blind&buried Vias (siehe unten) %N der Name der geladenen Datei (ohne Pfad und Extension) %P Verzeichnis-Pfad der geladenen Datei (ohne Dateinamen) %% das Zeichen '%' Bohrdaten mit blind&buried Vias
Falls das Board "blind" oder "buried" Vias enthält,
generiert der CAM-Prozessor separate Bohrdateien für jeden tatsächlich
im Board vorkommenden Via-Übergang. Die Dateinamen werden gebildet indem
die Nummern des Start- und End-Layers an den Basisnamen angehängt werden,
wie zum Beispiel in
boardname.drl.0104
welches die Bohrdatei für das Lagenpaket 1-4 wäre. Wenn Sie die Layer-Nummern
an anderer Stelle stehen haben wollen, so können Sie dafür den Platzhalter
%L verwenden:
%N.%L.drl
ergäbe demnach
boardname.0104.drl
Der Name der Drill-Info-Datei wird immer ohne Layer-Nummern erzeugt und
ein eventueller '.' vor dem %L wird entfernt.
Dateien aus früheren CAM-Prozessor-Aufrufen, die dem gegebenen Pattern für
den Namen der Bohrdateien entsprechen würden, werden gelöscht bevor neue
Dateien erzeugt werden. Es gibt eine Drill-Info-Datei pro Job, die (unter
anderem) eine Liste aller generierten Bohrdateien enthält.
Flag-Options
Mirror
Ausgabe spiegeln. Achtung, dabei entstehen negative
Koordinaten, deshalb sollte gleichzeitig Funktion "pos. Coord."
eingeschaltet sein.
Rotate
Die Zeichnung wird um 90 Grad gedreht. Achtung, dabei
entstehen negative Koordinaten, deshalb sollte gleichzeitig die
Funktion "pos. Coord." eingeschaltet sein.
Upside down
Die Zeichnung wird um 180 Grad gedreht. Zusammen mit Rotate
wird die Zeichnung um insgesamt 270 Grad gedreht. Achtung, dabei
entstehen negative Koordinaten, deshalb sollte gleichzeitig Funktion
"pos. Coord." eingeschaltet sein.
Pos. Coord
Die Zeichnung wird so ausgegeben, dass keine negativen
Koordinaten vorkommen. Sie wird an die Koordinatenachsen
herangeschoben. Achtung: negative Koordinaten führen bei vielen
Peripheriegeräten zu Fehlern!
Quickplot
Beschleunigte Ausgabe, bei der nur die Umrisse von Objekten
erscheinen.
Optimize
Mit dieser Option schalten Sie die Wegoptimierung für die
Plotterausgabe ein oder aus.
Fill pads
Pads füllen. Diese Funktion ist nur mit Treiber des Typs "generic",
wie z. B. mit PostScript möglich.
Wird die Option deselektiert, sind die Bohrungen in Pads und
Vias sichtbar.
Layer und Farben
Wählen Sie die auszugebenden Layer, indem Sie die Check-Boxes in
der Layer-Liste anklicken.
=======================================================
Datei- Selekt. Layer Bedeutung
name
=======================================================
*.cmp Top, Via, Pad Bauteilseite
*.ly2 Route2, Via, Pad Multilayer-Innenlage
*.ly3 Route3, Via, Pad Multilayer-Innenlage,
... ...
*.sol Bot, Via, Pad Lötseite
*.plc tPl, Dim, tName, Bestückungsplan Bauteilseite
*.pls bPl, Dim, bName, Bestückungsplan Lötseite
*.stc tStop Lötstopmaske Bauteilseite
*.sts bStop Lötstopmaske Lötseite
*.drd Drills, Holes Bohrdaten für NC-Bohrmaschine
=======================================================
Konturdaten
EAGLE kann Konturdaten erzeugen, die beispielsweise zum Fräsen von Prototyp-Platinen
verwendet werden können.
Board vorbereiten
Zuerst definieren Sie ein POLYGON in dem Layer für den
die Konturdaten erzeugt werden sollen.
Das Polygon muss folgende Eigenschaften haben:
Wenn sich ein solches Polygon in Ihrem Layout befindet, berechnet es der
RATSNEST-Befehl in der Weise, dass seine Konturen
genau den Linien entsprechen, die mit dem Fräswerkzeug gefahren werden müssen,
um die einzelnen Signale voneinander freizufräsen.
Die Füllung des berechneten Polygons bestimmt, was weggefräst werden muss, um
alle unnötigen Kupferflächen zu entfernen.
Ausgeben der Daten
Die Konturdaten können über ein User Language Program
aus dem Board extrahiert werden. Die Datei outlines.ulp, die mit EAGLE geliefert wird,
enthält diesen Prozess vollständig. Wenn Sie ein eigenes ULP schreiben wollen,
verwenden Sie am besten outlines.ulp als Ausgangsbasis.
Sehen Sie die Hilfe-Seite zu UL_POLYGON für weitere Details
über das Erzeugen von Konturdaten mit Hilfe eines Polygons.
Durchmesser des Fräswerkzeugs
Der Durchmesser des Fräsers (und somit die Strichbreite width des Polygons)
muss so klein sein, dass es möglich ist zwischen zwei unterschiedlichen Signalen
durchzukommen, um diese zu isolieren.
Führen Sie in jedem Fall einen Design Rule Check (DRC) mit
den Werten für Mindestabstände zwischen unterschiedlichen Signalen (Clearance) durch,
die dem Durchmesser des Fräswerkzeugs entsprechen!
Herstellen des ursprünglichen Zustands im Board
Stellen Sie sicher, dass Sie nach dem Erzeugen der Konturdaten das Polygon mit
dem Namen _OUTLINES_ löschen. Dieses spezielle Polygon verursacht ansonsten
Kurzschlüsse im Board, da es nicht den üblichen Design Rules
entspricht!
Standard-Befehl GROUP
EAGLE bietet eine neue und intuitive Art der Bedienung.
Autorouter
Der integrierte Autorouter kann vom Board-Fenster aus mit dem Befehl
AUTO gestartet werden.
Überprüfen des Designs
EAGLE hat zwei Befehle zur Überprüfung Ihres Designs:
Der ERC wird in einem Schaltplan-Fenster ausgeführt. Er überprüft das
Design auf elektrische Konsistenz.
Design Rules
Design Rules legen alle Parameter fest denen ein Platinen-Layout entsprechen muss.
Datei
Das Datei-Tab zeigt eine Beschreibung des aktuellen Satzes von Design Rules und erlaubt
über Change diese Beschreibung zu verändern (das ist empfehlenswert, wenn Sie eigene
Regeln definieren). Über Load kann man einen anderen Satz von Design Rules
aus einer Datei laden, Save as.. speichert die aktuellen Einstellungen in eine
Datei.
Bitte beachten Sie, dass die Design Rules immer in der Board-Datei gespeichert werden,
so dass diese Regeln auch für die Produktion der Platine bei Weitergabe der brd-Datei
an den Leiterplatten-Hersteller gelten. Die "Load..." und "Save as..." Buttons dienen
lediglich dazu die Design Rules einer Platine in eine externe Datei zu kopieren bzw.
sie von dort zu laden.
Layers
Im Layers-Tab legt man fest welche Layer die Platine tatsächlich verwendet,
wie dick die einzelnen Kupfer- bzw. Isolationslagen sind und welche Via-Übergänge
möglich sind (bitte beachten Sie, dass sich dies nur auf echte Vias bezieht;
selbst wenn kein Via von Layer 1 bis 16 im Layer-Setup definiert wurde sind Pads
dennoch erlaubt).
(1*16)
würde demnach für eine zweilagige Platine bestehend aus den Layern 1 und 16 stehen,
mit ganz durchgehenden Vias (dies ist auch der Standardwert).
Für eine Multilayer-Platine könnte das Setup etwa so aussehen:
((1*2)+(15*16))
was eine vierlagige Platine darstellt deren Layer-Paare 1/2 und 15/16 auf Kern-Material
gefertigt und durchgebohrt werden, und schließlich mit Prepreg verpresst und am Ende
nochmals ganz durchgebohrt werden.
Neben Vias die durch einen ganzen Lagenstapel gehen (gemeinhin als buried Vias bekannt
wenn sie keine Verbindung zum Top- und Bottom-Layer haben) gibt es auch solche, die
nicht ganz durch den Lagenstapel gebohrt werden, sondern an einem Layer im Inneren
des Stapels enden. Solche Vias werden blind Vias genannt und werden im "Setup"-String
dadurch festgelegt, dass eine Layer-Sequenz in [t:...:b] eingeschlossen wird,
wobei t und b die Layer bezeichnen bis zu denen das Via von der Ober-
bzw. Unterseite aus gesehen geht. Ein mögliches Setup mit blind Vias könnte so
aussehen:
[2:1+((2*3)+(14*15))+16:15]
Dies ist im wesentlichen das vorherige Beispiel, erweitert um zwei zusätzliche
Aussenlagen, die mit den nächstinneren Lagen durch blind Vias verbunden sind.
Es ist auch möglich nur einen der Parameter t bzw. b zu benutzen, so dass
[2:1+((2*3)+(15*16))]
ebenfalls ein gültiges Setup wäre. blind Vias müssen nicht am Top oder Bottom
Layer beginnen, sondern können auch in innenliegenden Lagenstapeln verwendet werden, etwa in
[2:1+[3:2+(3*4)+5:4]+16:5]
Ein blind Via von Layer a nach Layer b implementiert auch alle
möglichen blind Vias von Layer a nach allen Layern zwischen a und b,
so dass
[3:1+2+(3*16)]
blind Vias von Layer 1 nach 2 und von Layer 1 nach 3 erlauben würde.
Clearance
Im Clearance-Tab definiert man verschiedene Mindestabstände zwischen
Objekten in den Signallayern. Das sind üblicherweise Mindestwerte, die vom
Fertigungsprozess beim Leiterplatten-Hersteller vorgegeben werden. Sprechen
Sie sich dazu mit dem Hersteller ab.
Der aktuelle Mindestabstand zwischen Objekten, die zu unterschiedlichen Signalen
gehören, werden auch von den Werten der unterschiedlichen Netzklassen beeinflusst.
Distance
Im Distance-Tab legt man die Mindestabstände zwischen Objekten in den Signallayern
und dem Platinenrand (Dimension) und zwischen Bohrungen (Holes) fest.
Achtung: Es werden nur Signale gegenüber Dimension geprüft, die auch tatsächlich
an mindestens einem Pad oder Smd angeschlossen sind. So ist es erlaubt, Eckwinkel
zur Markierung der Platinenbegrenzung in den Signallayern zu zeichnen ohne
dass der DRC Fehler meldet.
Sizes
Unter Sizes legt man die Mindestbreite von Objekten in Signallayern und den
Mindestbohrdurchmesser fest. Diese Werte sind absolute Minimalmaße, die vom
Herstellungsprozess der Platine bestimmt werden. Sprechen Sie sich hierzu
mit dem Leiterplatten-Hersteller ab.
Die Mindestbreite von Leiterbahnen und der Mindestbohrdurchmesser von Durchkontaktierungen
kann ausserdem für unterschiedliche Netzklassen festgelegt werden.
Restring
Im Restring-Tab definiert man die Mindestbreite des Kupferrings, die nach
dem Bohren eines Pads oder Vias um die Bohrung herum stehen bleibt. Die Werte
werden in Prozent des Bohrdurchmessers angegeben. Ausserdem kann ein Minimal- und
ein Maximalwert festgelegt werden. Die Restringbreiten für Pads können im Top-,
Bottom- und in den Innen-Layern unterschiedlich sein, während bei Durchkontaktierungen
(Vias) nur zwischen Aussen- und Innenlagen unterschieden wird.
Wenn für den tatsächlichen Durchmesser eines Pads (in der Bibliothek festgelegt) oder
eines Vias ein größerer Wert vorgegeben wird, wird dieser in den Aussenlagen verwendet.
Pads können beim Anlegen von Packages mit dem Durchmesser 0 gezeichnet werden, so
dass der Restring vollständig in Abhängigkeit des Bohrdurchmessers berechnet werden
kann.
Shapes
Unter Shapes definiert man die Formen der Smds und Pads.
Smds werden üblicherweise als Rechtecke (mit "Roundness" = 0) in der Bibliothek
definiert. Wenn Sie in Ihrem Design gerundete Smds verwenden wollen, kann man hier
einen Rundungsfaktor (Roundness) angeben.
Pads werden normalerweise als Octagon (längliche Octagons wo sinnvoll)
in der Bibliothek festgelegt. In den Combo-Boxen können Sie festlegen,
ob die Pads im Layout so verwendet werden wie sie auch in der Bibliothek
definiert wurden, oder ob alle rechteckig, rund oder octagonal sein sollen.
Das kann man für Top- und Bottom-Layer separat definieren.
Wird das "erste" Pad in der Bibliothek als solches markiert, kann man in der
dritten Combo-Box bestimmen, welche Form dieses Pad haben soll
(entweder rund, rechteckig, octagonal oder keine spezielle Form).
Die Elongation-Parameter legen das Aussehen von Pads mit der Form Long bzw. Offset fest.
Supply
Unter Supply legt man die Thermal-Isolation zwischen Pads und Signalpolygonen
fest.
Masks
Im Masks-Tab legt man die Abmessungen von Lötstop- (solder stop) und
Lotpasten-Symbolen (cream mask) fest. Sie werden in Prozent der kleineren Seite
eines Smds, Pads oder Vias angegeben und werden durch einen Minimal- bzw.
Maximalwert begrenzt.
Eine Lötstopmaske wird automatisch für Smds, Pads und solche Vias erzeugt, die den
angegebenen Wert für den Bohrdurchmesser im Parameter "Limit" überschreiten.
Die Lotpastenmaske (cream frame) wird nur für Smds ezeugt.
Misc
Unter Misc kann man die Prüfung von Raster, Winkel, Schriftart und
Sperrflächen aktivieren. Ausserdem können Sie festlegen, ob eine Überprüfung gemacht werden soll
wegen Texten, die nicht in Vektorschrift geschrieben sind (standardmäßig ein).
Es gibt auch eine Option zum Überprüfen von Kupfer in unzulässigen Bereichen (Layer
tRestrict/bRestrict. Standard ist an).
Querverweise
Es gibt mehrere Möglichkeiten, Querverweise in EAGLE Schaltplänen zu
erzeugen, die in den folgenden Abschnitten beschrieben werden.
Querverweis-Labels
Ein einfaches Label kann dazu benutzt werden, den Namen eines Netzes im Schaltplan
sichtbar zu machen. Wird bei einem Label die xref-Eigenschaft aktiviert,
so ändert sich sein Verhalten und es wird zum Querverweis-Label.
Bauteil-Querverweise
Elektro-Schaltpläne enthalten oft elektromechanische Relais ("Schütze"), die
aus einem Spulensymbol und einem oder mehreren Kontaktsymbolen bestehen. Wenn Spule
und Kontakte auf unterschiedliche Schaltplanseiten verteilt sind, ist es nützlich,
wenn bei jedem Kontakt angegeben ist, auf welcher Seite seine Spule zu finden ist.
Dies kann dadurch erreicht werden, dass dem Spulengatter im Device-Set der Add-Level
Must gegeben wird (siehe ADD-Befehl) und der
Platzhaltertext '>XREF' in den Kontaktsymbolen platziert wird
(siehe TEXT-Befehl).
Kontaktspiegel
In einem aus mehreren Seiten bestehenden Elektro-Schaltplan mit
elektro-mechanischen Relais, deren Spulen und Kontakte auf unterschiedliche
Seiten verteilt sind, ist es nützlich sehen zu können, auf welchen Seiten
sich die einzelnen Kontakte eines Relais befinden.
EAGLE kann einen solchen Kontaktspiegel automatisch anzeigen, wenn
folgende Voraussetzungen erfüllt sind.
User Language
Die EAGLE-User-Language gestattet den Zugriff auf die EAGLE-Datenstrukturen
und kann beliebige Ausgabedateien erzeugen.
Syntax Syntax-Regeln Daten-Typen Definiert die grundlegenden Datentypen (Data types) Objekt-Typen Definiert die EAGLE-Objekte (Objects) Definitionen Zeigt, wie man eine Definition schreibt Operatoren Liste der gültigen Operatoren (Operators) Ausdrücke Zeigt, wie man einen Ausdruck (Expression) schreibt Statements Definiert die gültigen Statements Builtins Liste der Builtin-Constants, -Functions etc. Dialoge zeigt wie man grafische Dialoge in ein ULP integriert Schreiben eines ULP
Ein User-Language-Programm ist eine reine Textdatei und wird in einer C-ähnlichen
Syntax geschrieben.
User-Language-Programme
verwenden die Extension .ulp. Sie können ein ULP mit jedem beliebigen Text-Editor schreiben,
vorausgesetzt, er fügt keine Steuerzeichen ein, oder Sie können den
EAGLE-Text-Editor verwenden.
#usage "Add the characters in the word 'Hello'\n"
"Usage: RUN sample.ulp"
// Definitions:
string hello = "Hello";
int count(string s)
{
int c = 0;
for (int i = 0; s[i]; ++i)
c += s[i];
return c;
}
// Statements:
output("sample") {
printf("Count is: %d\n", count(hello));
}
Der Wert der #usage-Directive zeigt im
Control Panel die Beschreibung des Programms an.
ULP ausführen
User-Language-Programme werden mit Hilfe des
RUN-Befehls von der Kommandozeile eines
Editor-Fensters aus ausgeführt.
Syntax
Die Grundbausteine eines User-Language-Programms sind:
Alle unterliegen bestimmten Regeln, die in den entsprechenden Abschnitten
beschrieben werden.
Whitespace
Bevor ein User-Language-Programm ausgeführt werden kann, muss es von einer
Datei eingelesen werden. Während dieses Vorgangs wird er Inhalt der Datei
zerlegt (parsed) in Tokens und in Whitespace.
string s = "Hello World";
wo das Leerzeichen zwischen 'o' und 'W' ein Teil des Strings bleibt.
"Hello \
World"
wird als "Hello World" interpretiert.
Kommentare
Wenn man ein ULP schreibt, sollte man möglichst erklärenden Text
hinzufügen, der einen Eindruck davon vermittelt, was dieses Programm
tut. Sie können auch Ihren Namen und, falls verfügbar, Ihre Email-Adresse
hinzufügen, damit die Anwender Ihres Programms die Möglichkeit haben,
mit Ihnen Kontakt aufzunehmen, wenn Sie Probleme oder
Verbesserungsvorschläge haben.
/* some comment text */
bei der alle Zeichen zwischen (und einschließlich) den Zeichen
/* und */ als Kommentar interpretiert wird.
Solche Kommentare können über mehrere Zeilen gehen, wie in
/* This is a
multi line comment
*/
aber sie lassen sich nicht verschachteln. Das erste */ das einem /*
folgt, beendet den Kommentar.
int i; // some comment text
Dabei werden alle Zeichen nach (und einschließlich) dem //
bis zum Newline-Zeichen (aber nicht einschließlich) am Ende der Zeile
als Kommentar interpretiert.
Direktiven
Folgende Direktiven sind verfügbar:
#include
#require
#usage
#include
Ein ULP kann Befehle aus einem anderen ULP durch die #include-Direktive
ausführen. Die Syntax lautet
#include "filename"
Die Datei filename wird zuerst im selben Verzeichnis in dem sich auch die
Source-Datei (das ist die Datei mit der #include-Directive) befindet, gesucht.
Wird sie dort nicht gefunden, wird in den angegebenen ULP-Verzeichnissen gesucht.
Hinweis zur Kompatibilität zwischen den Betriebssystemen
Enthält filename eine Pfadangabe, ist es das Beste als Trennzeichen immer den
Forward-Slash (/)zu verwenden (auch unter Windows!). Laufwerksbuchstaben unter
Windows sollten vermieden werden. Wird das berücksichtigt, läuft das ULP unter
allen Betriebssystemen.
#require
Mit der Zeit kann es vorkommen, dass neuere EAGLE-Versionen neue oder veränderte
User Language Funktionen implementieren, die Fehlermeldungen verursachen können,
wenn ein solches ULP aus einer älteren EAGLE-Version heraus aufgerufen wird.
Um dem Benutzer eine konkrete Meldung zu geben, dass dieses ULP mindestens eine
bestimmte EAGLE-Version benötigt, kann ein ULP die #require-Direktive
enthalten. Die Syntax lautet
#require version
Die version muss als Real-Konstante
der Form
V.RRrr
angegeben werden, wobei V die Versionsnummer ist, RR die Release-Nummer
und rr die (optionale) Revisions-Nummer (beide mit führenden Nullen
aufgefüllt, falls sie kleiner als 10 sind). Falls also zum Beispiel ein ULP
mindestens die EAGLE-Version 4.11r06 voraussetzt (welches die Betaversion war die
als erste die #require-Direktive implementierte), könnte es
#require 4.1106
benutzen. Entsprechend würde für Version 5.1.2
#require 5.0102
gelten.
#usage
Jedes User-Language-Programm sollte Informationen über seine Funktion, die Benutzung und
evtl. auch über den Autor enthalten.
Die Direktive
#usage text [, text...]
ist die übliche Methode diese Information verfügbar zu machen.
Beispiel
#usage "en: A sample ULP\n"
"Implements an example that shows how to use the EAGLE User Language\n"
"Usage: RUN sample.ulp\n"
"Author: john@home.org",
"de: Beispiel eines ULPs\n"
"Implementiert ein Beispiel das zeigt, wie man die EAGLE User Language benutzt\n"
"Aufruf: RUN sample.ulp\n"
"Autor: john@home.org"
Schlüsselwörter (Keywords)
Die folgenden Schlüsselwörter sind für spezielle Zwecke reserviert
und dürfen nicht als normale Identifier-Namen verwendet werden:
break
case
char
continue
default
do
else
enum
for
if
int
numeric
real
return
string
switch
void
while
Zusätzlich sind die Namen von
Builtins und
Objekt-Typen
reserviert und dürfen nicht als Identifier-Namen verwendet werden.
Identifier
Ein Identifier ist ein Name, der dazu benutzt wird, eine benutzerdefinierte
Konstante,
Variable oder
Funktion
einzuführen.
int Number, number;
zwei unterschiedliche Integer-Variablen definieren würde.
Konstanten
Konstanten sind gleichbleibende Daten, die in ein User-Language-Programm
geschrieben werden. Analog zu den verschiedenen
Datentypen
gibt es auch unterschiedliche Typen von Konstanten.
Character-Konstanten
Eine Character-Konstante besteht aus einem einzelnen Buchstaben
oder einer
Escape-Sequenz, eingeschlossen in
einfachen Hochkommas, wie in
'a'
'='
'\n'
Der Typ der Character-Konstante ist
char.
Integer-Konstanten
Abhängig vom ersten (eventuell auch vom zweiten) Zeichen wird eine
Integer-Konstante unterschiedlich interpretiert:
erstes zweites Konstante interpretiert als 0 1-7 oktal (Basis 8) 0 x,X hexadezimal (Basis 16) 1-9 dezimal (Basis 10) Beispiele
16 dezimal 020 oktal 0x10 hexadezimal Real-Konstanten
Eine Real-Konstante folgt dem allgemeinen Muster
[-]int.frac[e|E[±]exp]
wobei die einzelnen Teile für
stehen.
Beispiele
Konstante Wert 23.45e6 23.45 x 10^6 .0 0.0 0. 0.0 1. 1.0 -1.23 -1.23 2e-5 2.0 x 10^-5 3E+10 3.0 x 10^10 .09E34 0.09 x 10^34 String-Konstanten
Eine String-Konstante besteht aus einer Sequenz von Buchstaben
oder einer Escape-Sequenz,
eingeschlossen in doppelte Anführungszeichen, wie in
"Hello world\n"
Der Typ einer String-Konstante ist
string.
string s = "Hello" " world\n";
Es ist auch möglich, eine String-Konstante über mehrere Zeilen zu schreiben,
indem man das Newline-Zeichen mit Hilfe des Backslash (\) "ausblendet":
string s = "Hello \
world\n";
Escape-Sequenzen
Eine Escape-Sequenz besteht aus einem Backslash (\),
gefolgt von einem oder mehreren Sonderzeichen:
Sequenz Bedeutung \a audible bell \b backspace \f form feed \n new line \r carriage return \t horizontal tab \v vertical tab \\ backslash \' single quote \" double quote \O O = bis 3 octal digits \xH H = bis 2 hex digits Beispiele
'\n'
"A tab\tinside a text\n"
"Ring the bell\a\n"
Punctuator-Zeichen
Die Punctuator-Zeichen, die in einem User-Language-Programm
benutzt werden können, sind
[] Eckige Klammern (Brackets) () Runde Klammern (Parentheses) {} Geschweifte Klammern (Braces) , Komma ; Semikolon : Doppelpunkt (Colon) = Gleichheitszeichen Eckige Klammern
Eckige Klammern (Brackets) werden verwendet in Array-Definitionen:
int ai[];
in Array-Subscripts
n = ai[2];
und in String-Subscripts, um auf die einzelnen Zeichen eines Strings
zuzugreifen
string s = "Hello world";
char c = s[2];
Runde Klammern
Runde Klammern (Parentheses) gruppieren
Ausdrücke
(ändern eventuell die Priorität der Operatoren),
isolieren bedingte Ausdrücke und bezeichnen
Funktionsaufrufe und Funktionsparameter:
d = c * (a + b);
if (d == z) ++x;
func();
void func2(int n) { ... }
Geschweifte Klammern
Geschweifte Klammern (Braces) bezeichnen den Beginn und das Ende
einer Verbundanweisung (Compound Statement)
if (d == z) {
++x;
func();
}
und werden auch verwendet, um die Werte für die Array-Initialisierung zu
gruppieren:
int ai[] = { 1, 2, 3 };
Komma
Das Komma trennt die Elemente einer Funktionsargument-Liste
oder die Parameter eines Funktionsaufrufs:
int func(int n, real r, string s) { ... }
int i = func(1, 3.14, "abc");
Es trennt auch die Wertangaben bei der Array-Initialisierung:
int ai[] = { 1, 2, 3 };
und es begrenzt die Elemente einer Variablen-Definition:
int i, j, k;
Semikolon
Der Semikolon schließt ein Statement
ab, wie in
i = a + b;
und er begrenzt die Init-, Test- und Inkrement-Ausdrücke eines
for Statements:
for (int n = 0; n < 3; ++n) {
func(n);
}
Doppelpunkt
Der Doppelpunkt bezeichnet das Ende eines Labels in einem
Switch-Statement:
switch (c) {
case 'a': printf("It was an 'a'\n"); break;
case 'b': printf("It was a 'b'\n"); break;
default: printf("none of them\n");
}
Gleichheitszeichen
Das Gleichheitszeichen trennt Variablen-Definitionen von
Initialisierungsliste:
int i = 10;
char c[] = { 'a', 'b', 'c' };
Es wird auch als
Zuweisungsoperator verwendet.
Datentypen
Ein User-Language-Programm kann Variablen unterschiedlicher Typen definieren,
die unterschiedliche Arten von EAGLE-Daten repräsentieren.
char für Einzelzeichen int für Ganzzahlen real für Gleitkommazahlen string für Textinformation char
Der Datentyp char speichert Einzelzeichen, wie die Buchstaben des
Alphabets oder kleine Zahlen ohne Vorzeichen.
int
Der Datentyp int speichert Ganzzahlen mit Vorzeichen, wie die Koordinaten
eines Objekts.
real
Der Datentyp real speichert Gleitkommazahlen mit Vorzeichen, z.B.
den Rasterabstand.
string
Der Datentyp string speichert Textinformation, z.B. den Namen eines Bauteils
oder eines Netzes.
string s = "Layout";
printf("Third char is: %c\n", s[2]);
Hier würde das Zeichen 'y' ausgedruckt.
Beachten Sie, dass s[2] das dritte Zeichen des Strings
s liefert!
string s = "Layout";
char c = s[2];
Implementierungs-Details
Der Datentyp string ist implementiert wie von C her bekannte
"Zero-terminated-Strings".
Betrachtet man die folgende Variablen-Definition
string s = "abcde";
dann ist s[4] das Zeichen 'e', und s[5] ist das Zeichen
'\0', oder der Integer-Wert 0x00.
Diese Tatsache kann dazu ausgenutzt werden, das Ende eines Strings
ohne die Funktion strlen() festzustellen, wie
in
for (int i = 0; s[i]; ++i) {
// do something with s[i]
}
Es ist auch völlig in Ordnung, einen String "abzuschneiden", indem man
den Wert "0" an der gewünschten Stelle einfügt:
string s = "abcde";
s[3] = 0;
Als Ergebnis erhält man für den String s den Wert "abc".
Beachten Sie bitte, dass alles, was auf den Wert "0" folgt, wirklich
verschwunden ist, und auch nicht mehr zurückgeholt werden kann, indem
der ursprüngliche Wert wieder eingesetzt wird. Das gleiche gilt auch
für jede andere Operation, bei der ein Zeichen zu 0 wird, wie etwa --s[3].
Typ-Umwandlung
Der Typ des Ergebnisses eines arithmetischen
Ausdrucks, wie z.B. a + b,
wobei a und b unterschiedliche arithmetische Typen sind,
ist gleich dem "größeren" der beiden Operanden-Typen.
Typecast
Der Ergebnis-Typ eines arithmetischen
Ausdrucks
kann explizit in einen anderen arithmetischen Typ umgewandelt werden,
indem man einen
Typecast darauf anwendet.
type(expression)
wobei type
char,
int oder
real ist und
expression jeder arithmetische
Ausdruck sein kann.
Objekt-Typen
Die EAGLE-Datenstruktur wird in XML-Dateien gespeichert:
Diese Dateien enthalten Objekte, die hierarchisch gegliedert sind.
In einem User-Language-Programm kann man auf die Hierarchiestufen mit
Hilfe der entsprechenden Builtin-Zugriffs-Statements zugreifen:
library(L) { ... }
schematic(S) { ... }
board(B) { ... }
Diese Zugriffs-Statements schaffen einen Kontext, innerhalb dessen Sie
auf alle Objekte in Bibliotheken, Schaltplänen oder Platinen zugreifen können.
Data members liefern die Objektdaten unmittelbar.
Zum Beispiel in
board(B) {
printf("%s\n", B.name);
}
liefert Data member name des Board-Objekts B
den Board-Namen.
Data members können auch andere Objekte zurückgeben, wie in
board(B) {
printf("%f\n", B.grid.size);
}
wo Data member grid des Boards ein Grid-Objekt zurückliefert,
dessen Data member size dann Grid-Size (Rastergröße) zurückgibt.
board(B) {
B.elements(E) {
printf("%-8s %-8s\n", E.name, E.value);
}
}
Dieses Beispiel verwendet Loop member elements() des Boards,
um eine Schleife durch alle Board-Elemente zu realisieren. Der Block nach
dem B.elements(E)-Statement wird der Reihe nach für jedes Element
ausgeführt, und das gegenwärtige Element kann innerhalb des Blocks unter
dem Namen E angesprochen werden.
board(MyBoard) {
MyBoard.elements(TheCurrentElement) {
printf("%-8s %-8s\n", TheCurrentElement.name, TheCurrentElement.value);
}
}
Das Ergebnis wäre identisch mit dem vorhergehenden Beispiel. Der Gültigkeitsbereich
einer Variablen, die von einer Loop-member-Funktion angelegt wird, ist
auf das Statement oder den Block unmittelbar nach dem Loop-Funktionsaufruf
beschränkt.
Objekt-Hierarchie einer Bibliothek:
LIBRARY
GRID
LAYER
DEVICESET
DEVICE
GATE
PACKAGE
CONTACT
PAD
SMD
CIRCLE
HOLE
RECTANGLE
FRAME
DIMENSION
TEXT
WIRE
POLYGON
WIRE
SYMBOL
PIN
CIRCLE
RECTANGLE
FRAME
DIMENSION
TEXT
WIRE
POLYGON
WIRE
Objekt-Hierarchie eines Schaltplans:
SCHEMATIC
GRID
LAYER
LIBRARY
ATTRIBUTE
VARIANTDEF
PART
ATTRIBUTE
VARIANT
SHEET
CIRCLE
RECTANGLE
FRAME
DIMENSION
TEXT
WIRE
POLYGON
WIRE
INSTANCE
ATTRIBUTE
MODULEINST
BUS
SEGMENT
LABEL
TEXT
WIRE
WIRE
NET
SEGMENT
JUNCTION
PINREF
PORTREF
TEXT
WIRE
MODULE
PORT
PART
SHEET
(siehe oben)
Änderungshinweis von Version 5 zu Version 6, Kompatibilität:
Aus Kompatibilitätsgründen werden die Zugriffe über die entsprechenden Memberfunktionen
zwar weiterhin unterstützt, das Verhalten der Objekt-Funktionen entspricht aber der neuen Hierarchie.
Objekt-Hierarchie einer Platine:
BOARD
GRID
LAYER
LIBRARY
ATTRIBUTE
VARIANTDEF
CIRCLE
HOLE
RECTANGLE
FRAME
DIMENSION
TEXT
WIRE
POLYGON
WIRE
ELEMENT
ATTRIBUTE
VARIANT
SIGNAL
CONTACTREF
POLYGON
WIRE
VIA
WIRE
UL_ARC
Siehe auch UL_WIRE
Konstanten
CAP_FLAT flache Kreisbogen-Enden CAP_ROUND runde Kreisbogen-Enden Anmerkung
Start- und Endwinkel werden im mathematisch positiven Sinne ausgegeben
(also gegen den Uhrzeigersinn, "counterclockwise"),
wobei gilt angle1 < angle2.
Um diese Bedingung einzuhalten kann es sein, dass Start- und Endpunkt eines UL_ARC
gegenüber denen des UL_WIRE, von dem der Kreisbogen abstammt, vertauscht sind.
Beispiel
board(B) {
B.wires(W) {
if (W.arc)
printf("Arc: (%f %f), (%f %f), (%f %f)\n",
u2mm(W.arc.x1), u2mm(W.arc.y1), u2mm(W.arc.x2), u2mm(W.arc.y2), u2mm(W.arc.xc), u2mm(W.arc.yc));
}
}
UL_AREA
Siehe auch UL_BOARD,
UL_DEVICE,
UL_PACKAGE,
UL_SHEET,
UL_SYMBOL
Beispiel
board(B) {
printf("Area: (%f %f), (%f %f)\n",
u2mm(B.area.x1), u2mm(B.area.y1), u2mm(B.area.x2), u2mm(B.area.y2));
}
UL_ATTRIBUTE
Siehe auch UL_DEVICE,
UL_PART,
UL_INSTANCE,
UL_ELEMENT
Konstanten
ATTRIBUTE_DISPLAY_FLAG_OFF keine Anzeige ATTRIBUTE_DISPLAY_FLAG_VALUE Wert wird angezeigt ATTRIBUTE_DISPLAY_FLAG_NAME Name wird angezeigt Anmerkung
display enthält einen bitweise ODER-verknüpften Wert, bestehend aus ATTRIBUTE_DISPLAY_FLAG_...,
der angibt welche Teile des Attributs dargestellt werden.
Dieser Wert ist nur dann gültig, wenn display in einem UL_INSTANCE- oder UL_ELEMENT-Kontext
benutzt wird.
Beispiel
schematic(SCH) {
SCH.parts(P) {
P.attributes(A) {
printf("%s = %s\n", A.name, A.value);
}
}
}
schematic(SCH) {
SCH.attributes(A) { // global attributes
printf("%s = %s\n", A.name, A.value);
}
}
UL_BOARD
Siehe auch UL_LIBRARY,
UL_SCHEMATIC,
variant()
alwaysvectorfont int (ALWAYS_VECTOR_FONT_..., siehe Anmerkung) area UL_AREA checked int (siehe Anmerkung) description string grid UL_GRID headline string name string (siehe Anmerkung) verticaltext int (VERTICAL_TEXT_...)
attributes() UL_ATTRIBUTE (siehe Anmerkung) circles() UL_CIRCLE classes() UL_CLASS dimensions() UL_DIMENSION elements() UL_ELEMENT errors() UL_ERROR frames() UL_FRAME holes() UL_HOLE layers() UL_LAYER libraries() UL_LIBRARY polygons() UL_POLYGON rectangles() UL_RECTANGLE signals() UL_SIGNAL texts() UL_TEXT variantdefs() UL_VARIANTDEF wires() UL_WIRE Konstanten
ALWAYS_VECTOR_FONT_GUI die Option "Immer Vektor-Schrift" ist
im User-Interface-Dialog gesetzt ALWAYS_VECTOR_FONT_PERSISTENT die Option "Immer Vektor-Schrift" ist
in diese Zeichnung eingeprägt
VERTICAL_TEXT_UP Leserichtung für vertikale Texte: aufwärts VERTICAL_TEXT_DOWN Leserichtung für vertikale Texte: abwärts Anmerkung
Der Wert von alwaysvectorfont kann in einem logischen Kontext verwendet werden
oder er kann auch mit den ALWAYS_VECTOR_FONT_... Konstanten maskiert werden,
um die Herkunft dieser Einstellung zu ermitteln, wie zum Beispiel in
if (B.alwaysvectorfont) {
// alwaysvectorfont ist gesetzt
}
if (B.alwaysvectorfont & ALWAYS_VECTOR_FONT_GUI) {
// alwaysvectorfont ist in der Benutzeroberfläche gesetzt
}
Der Wert von checked kann in einem logischen Kontext verwendet werden;
er ist nur gesetzt, wenn gerade ein 'Design Rule Check' (DRC)
durchgeführt wurde.
Beispiel
board(B) {
B.elements(E) printf("Element: %s\n", E.name);
B.signals(S) printf("Signal: %s\n", S.name);
}
UL_BUS
Siehe auch UL_SHEET
name string (BUS_NAME_LENGTH)
segments() UL_SEGMENT Konstanten
BUS_NAME_LENGTH max. Länge eines Busnamens (obsolet - ab Version 4 können Bus-Namen beliebig lang sein) Beispiel
schematic(SCH) {
SCH.sheets(SH) {
SH.busses(B) printf("Bus: %s\n", B.name);
}
}
UL_CIRCLE
Siehe auch UL_BOARD,
UL_PACKAGE,
UL_SHEET,
UL_SYMBOL
Beispiel
board(B) {
B.circles(C) {
printf("Circle: (%f %f), r=%d, w=%d\n",
u2mm(C.x), u2mm(C.y), u2mm(C.radius), u2mm(C.width));
}
}
UL_CLASS
Siehe auch Design Rules,
UL_NET,
UL_SIGNAL,
UL_SCHEMATIC,
UL_BOARD
Anmerkung
Das clearance Data Member liefert den Mindestabstand zwischen dieser
Netzklasse und der Netzklasse mit der angegebenen Nummer. Wird keine Nummer
angegeben (und damit auch keine eckigen Klammern), wird der Mindestabstand der
Netzklasse selber geliefert. Wird eine Nummer angegeben, so muss diese zwischen
0 und der Nummer dieser Netzklasse liegen.
Beispiel
board(B) {
B.signals(S) {
printf("%-10s %d %s\n", S.name, S.class.number, S.class.name);
}
}
UL_CONTACT
Siehe auch UL_PACKAGE,
UL_PAD,
UL_SMD,
UL_CONTACTREF,
UL_PINREF
Konstanten
CONTACT_NAME_LENGTH max. empfohlene Länge eines "Contact"-Namens (wird nur für formatierte Ausgaben benutzt) Anmerkung
Das signal Data Member liefert den Namen des Signals, an das dieser Contact
angeschlossen ist (nur in einem Board-Kontext verfügbar).
Beispiel
library(L) {
L.packages(PAC) {
PAC.contacts(C) {
printf("Contact: '%s', (%f %f)\n",
C.name, u2mm(C.x), u2mm(C.y));
}
}
}
UL_CONTACTREF
Siehe auch UL_SIGNAL,
UL_PINREF
contact UL_CONTACT element UL_ELEMENT route int (CONTACT_ROUTE_...) routetag string (siehe Anmerkung) Konstanten
CONTACT_ROUTE_ALL alle Kontakte müssen explizit angeschlossen werden CONTACT_ROUTE_ANY beliebige Kontakte können angeschlossen werden Anmerkung
Wenn route den Wert CONTACT_ROUTE_ANY hat, liefert das routetag
Member einen zusätzlichen String, der eine Gruppe von contactrefs beschreibt,
die zu ein und demselben Pin gehören.
Beispiel
board(B) {
B.signals(S) {
printf("Signal '%s'\n", S.name);
S.contactrefs(C) {
printf("\t%s, %s\n", C.element.name, C.contact.name);
}
}
}
UL_DEVICE
Siehe auch UL_DEVICESET,
UL_LIBRARY,
UL_PART
activetechnology string (siehe Anmerkung) area UL_AREA description string headline string library string libraryurn string (siehe Anmerkung) libraryversion int (siehe Anmerkung) name string (DEVICE_NAME_LENGTH) package UL_PACKAGE (siehe Anmerkung) prefix string (DEVICE_PREFIX_LENGTH) technologies string (siehe Anmerkung) value string ("On" oder "Off")
attributes() UL_ATTRIBUTE (siehe Anmerkung) gates() UL_GATE Konstanten
DEVICE_NAME_LENGTH max. empfohlene Länge eines Device-Namens (wird nur für formatierte Ausgaben benutzt) DEVICE_PREFIX_LENGTH max. empfohlene Länge eines Device-Präfix (wird nur für formatierte Ausgaben benutzt) Anmerkung
Der Wert des activetechnology-Member hängt vom Kontext ab aus dem es aufgerufen wurde:
Beispiele
library(L) {
L.devicesets(S) {
S.devices(D) {
if (D.package)
printf("Device: %s, Package: %s\n", D.name, D.package.name);
D.gates(G) {
printf("\t%s\n", G.name);
}
}
}
}
library(L) {
L.devicesets(DS) {
DS.devices(D) {
string t[];
int n = strsplit(t, D.technologies, ' ');
for (int i = 0; i < n; i++) {
D.attributes(A, t[i]) {
printf("%s = %s\n", A.name, A.value);
}
}
}
}
}
UL_DEVICESET
Siehe auch UL_DEVICE,
UL_LIBRARY,
UL_PART
activedevice UL_DEVICE (siehe Anmerkung) area UL_AREA description string headline string (siehe Anmerkung) library string libraryurn string (siehe Anmerkung) libraryversion int (siehe Anmerkung) locallymodified int (siehe Anmerkung) libraryversion int (siehe Anmerkung) name string (DEVICE_NAME_LENGTH) prefix string (DEVICE_PREFIX_LENGTH) urn string (siehe Anmerkung) value string ("On" oder "Off")
devices() UL_DEVICE gates() UL_GATE Konstanten
DEVICE_NAME_LENGTH max. empfohlene Länge des Device-Namen (wird nur bei formatierten Ausgaben benutzt) DEVICE_PREFIX_LENGTH max. empfohlene Länge des Prefix (wird nur bei formatierten Ausgaben benutzt) Anmerkung
Wenn gerade ein deviceset im Bibliotheks-Editor-Fenster bearbeitet wird,
dann liefert das activedevice-Member das aktive Device, das durch einen PACKAGE
Befehl ausgewählt wurde. Es kann als boolesche Funktion verwendet werden, um zu prüfen, ob die Voraussetzungen
hierfür gegeben sind (siehe Beispiel unten).
Das Member librarylocallymodified wird 0, wenn dieses UL_DEVICESET nicht von einer lokal veränderten Bibliothek kommt bzw. 1, wenn dieses UL_DEVICESET aus einer lokal veränderten Bibliothek stammt.
Beispiel
library(L) {
L.devicesets(D) {
printf("Device set: %s, Description: %s\n", D.name, D.description);
D.gates(G) {
printf("\t%s\n", G.name);
}
}
}
if (deviceset)
deviceset(DS) {
if (DS.activedevice)
printf("Active Device: %s\n", DS.activedevice.name);
}
UL_DIMENSION
Siehe auch UL_BOARD,
UL_GRID,
UL_PACKAGE,
UL_SHEET,
UL_SYMBOL
dtype int (DIMENSION_...) extlength int extoffset int extwidth int layer int precision int (Genauigkeit der Maßangabe) ratio int size int unit int (Einheit, GRID_UNIT_...) visible int (Einheit, 0=off, 1=on) width int x1, y1 int (erster Bezugspunkt) x2, y2 int (zweiter Bezugspunkt) x3, y3 int (Hilfspunkt für die Ausrichtung)
texts() UL_TEXT wires() UL_WIRE Konstanten
DIMENSION_PARALLEL lineare Bemaßung mit paralleler Maßlinie DIMENSION_HORIZONTAL lineare Bemaßung mit waagerechter Maßlinie DIMENSION_VERTICAL lineare Bemaßung mit senkrechter Maßlinie DIMENSION_RADIUS Radius-Bemaßung DIMENSION_DIAMETER Durchmesser-Bemaßung DIMENSION_ANGLE Winkel-Bemaßung DIMENSION_LEADER ein beliebiger Pfeil Anmerkung
Die Loop-Members texts() und wires() gehen durch alle Texte und
Linien, aus denen die Bemaßung besteht.
Beispiel
board(B) {
B.dimensions(D) {
printf("Dimension: (%f %f), (%f %f), (%f %f)\n",
u2mm(D.x1), u2mm(D.y1), u2mm(D.x2), u2mm(D.y2), u2mm(D.x3), u2mm(D.y3));
}
}
UL_ELEMENT
Siehe auch UL_BOARD,
UL_CONTACTREF
angle real (0.0...359.9) attribute[] string (siehe Anmerkung) column string (siehe Anmerkung) locked int mirror int name string (ELEMENT_NAME_LENGTH) package UL_PACKAGE package3d UL_PACKAGE3D (siehe Anmerkung) populate int (0=do not populate, 1=populate) row string (siehe Anmerkung) smashed int (siehe Anmerkung) spin int value string (ELEMENT_VALUE_LENGTH) x, y int (Ursprung, Aufhängepunkt)
attributes() UL_ATTRIBUTE texts() UL_TEXT (siehe Anmerkung) Konstanten
ELEMENT_NAME_LENGTH max. empfohlene Länge eines Element-Namens (wird nur für formatierte Ausgaben benutzt) ELEMENT_VALUE_LENGTH max. empfohlene Länge eines Element-Values (wird nur für formatierte Ausgaben benutzt) Anmerkung
Mit dem attribute[]-Member kann man ein UL_ELEMENT nach dem Wert eines
bestimmten Attributs fragen (siehe das zweite Beispiel). Der zurückgelieferte
String ist leer, wenn es kein Attribut mit dem angegebenen Namen gibt, oder
wenn dieses Attribut explizit leer ist.
Beispiele
board(B) {
B.elements(E) {
printf("Element: %s, (%f %f), Package=%s\n",
E.name, u2mm(E.x), u2mm(E.y), E.package.name);
}
}
board(B) {
B.elements(E) {
if (E.attribute["REMARK"])
printf("%s: %s\n", E.name, E.attribute["REMARK"]);
}
}
UL_ERROR
Siehe auch UL_BOARD,
UL_SCHEMATIC
area UL_AREA area2 UL_AREA (siehe Anmerkung) code int (Identifikations-Nummer) description string layer int modulename string s1 string (siehe Anmerkung) s2 string s3 string s4 string s5 string s6 string sheet int (Seitennummer) signature string (Signatur-String) state int (ERROR_STATE_...) type int (ERROR_TYPE_...) x, y int (Mittelpunkt)
contours() UL_WIRE (siehe Anmerkung) Konstanten
ERROR_STATE_ACTIVE Fehler wurde weder bearbeitet, noch gebilligt ERROR_STATE_APPROVED Fehler wurde gebilligt ERROR_STATE_PROCESSED Fehler wurde bearbeitet ERROR_TYPE_NONE kein Fehler ERROR_TYPE_WARNING Warnung ERROR_TYPE_ERROR Fehler ERROR_TYPE_CONSISTENCY Konsistenz-Fehler Anmerkung
UL_ERROR ist ein Pseudo-Objekt, das Informationen über ERC- bzw. DRC-Fehler liefert.
Beispiel
string s1;
string ErrLst[];
int ErrCnt = 0;
string ErrLstHeader;
if (board) board(B) {
ErrLstHeader = "Code\tState\tDescription\tLayer\tSignature";
if (B.checked) {
B.errors(ER) {
if (ER.state == ERROR_STATE_ACTIVE) {
sprintf(s1, "%d\t%d\t%s\t%d\t%s", ER.code, ER.state, ER.description, ER.layer, ER.signature);
ErrLst[ErrCnt++] = s1;
}
}
}
}
if (schematic) schematic(SCH) {
ErrLstHeader = "Code\tState\tDescription\tSheet\tModule\ts1\ts2\ts3\ts4\ts5\ts6";
if (SCH.checked) {
SCH.errors(ER) {
if (ER.state == ERROR_STATE_ACTIVE) {
sprintf(s1, "%d\t%d\t%s\t%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s", ER.code, ER.state, ER.description, ER.sheet, ER.modulename, ER.s1, ER.s2, ER.s3, ER.s4, ER.s5, ER.s6);
ErrLst[ErrCnt++] = s1;
}
}
}
}
dlgDialog("Errors") {
int sel = -1;
dlgListView(ErrLstHeader, ErrLst, sel);
dlgPushButton("+OK") dlgAccept();
};
UL_FRAME
Siehe auch UL_BOARD,
UL_PACKAGE,
UL_SHEET,
UL_SYMBOL
Konstanten
FRAME_BORDER_BOTTOM unterer Rand wird dargestellt FRAME_BORDER_RIGHT rechter Rand wird dargestellt FRAME_BORDER_TOP oberer Rand wird dargestellt FRAME_BORDER_LEFT linker Rand wird dargestellt Anmerkung
border enthält einen bitweise ODER-verknüpften Wert, bestehend aus FRAME_BORDER_...,
der angibt welche der vier Ränder dargestellt werden.
Beispiel
board(B) {
B.frames(F) {
printf("Frame: (%f %f), (%f %f)\n",
u2mm(F.x1), u2mm(F.y1), u2mm(F.x2), u2mm(F.y2));
}
}
UL_GATE
Siehe auch UL_DEVICE
Konstanten
GATE_ADDLEVEL_MUST must GATE_ADDLEVEL_CAN can GATE_ADDLEVEL_NEXT next GATE_ADDLEVEL_REQUEST request GATE_ADDLEVEL_ALWAYS always
GATE_NAME_LENGTH max. empfohlene Länge eines Gate-Namens (wird nur für formatierte Ausgaben benutzt) Anmerkung
Die Koordinaten des Aufhängepunktes (x, y) sind immer bezogen auf die Lage des Gates
im Device, auch wenn das UL_GATE über ein UL_INSTANCE geholt wurde.
Beispiel
library(L) {
L.devices(D) {
printf("Device: %s, Package: %s\n", D.name, D.package.name);
D.gates(G) {
printf("\t%s, swaplevel=%d, symbol=%s\n",
G.name, G.swaplevel, G.symbol.name);
}
}
}
UL_GRID
Siehe auch UL_BOARD,
UL_LIBRARY,
UL_SCHEMATIC,
Unit Conversions
Konstanten
GRID_UNIT_MIC Micron GRID_UNIT_MM Millimeter GRID_UNIT_MIL Mil GRID_UNIT_INCH Inch Anmerkung
unitdist liefert die Grid-Einheit mit der die tatsächliche Größe des Rasters
(die durch distance geliefert wird) definiert wurde, während unit
die Grid-Einheit liefert, die für die Anzeige von Werten und die Umrechnung von
Benutzereingaben verwendet wird.
Beispiel
board(B) {
printf("Gridsize=%f\n", B.grid.distance);
}
UL_HOLE
Siehe auch UL_BOARD,
UL_PACKAGE
Anmerkung
diameter[] ist nur für die Layer LAYER_TSTOP und LAYER_BSTOP definiert
und liefert den Durchmesser der Lötstopmaske im jeweiligen Layer.
Beispiel
board(B) {
B.holes(H) {
printf("Hole: (%f %f), drill=%f\n",
u2mm(H.x), u2mm(H.y), u2mm(H.drill));
}
}
UL_INSTANCE
Siehe auch UL_PINREF
angle real (0, 90, 180 und 270) column string (siehe Anmerkung) gate UL_GATE mirror int name string (INSTANCE_NAME_LENGTH) part UL_PART row string (siehe Anmerkung) sheet int (0=unbenutzt, >0=Seitennummer) smashed int (siehe Anmerkung) value string (PART_VALUE_LENGTH) x, y int (Aufhängepunkt)
attributes() UL_ATTRIBUTE (siehe Anmerkung) texts() UL_TEXT (siehe Anmerkung) xrefs() UL_GATE (siehe Anmerkung) Konstanten
INSTANCE_NAME_LENGTH max. empfohlene Länge eines Instance-Namen (wird nur für formatierte Ausgaben benutzt) PART_VALUE_LENGTH max. empfohlene Länge eines Bauteil-Values (Instances haben keinen eigenen Value!) Anmerkung
Das attributes()-Member läuft nur durch die Attribute, die explizit dieser
Instance zugewiesen wurden (einschließlich gesmashter Attribute).
Beispiel
schematic(S) {
S.parts(P) {
printf("Part: %s\n", P.name);
P.instances(I) {
if (I.sheet != 0)
printf("\t%s used on sheet %d\n", I.name, I.sheet);
}
}
}
UL_JUNCTION
Siehe auch UL_SEGMENT
Beispiel
schematic(SCH) {
SCH.sheets(SH) {
SH.nets(N) {
N.segments(SEG) {
SEG.junctions(J) {
printf("Junction: (%f %f)\n", u2mm(J.x), u2mm(J.y));
}
}
}
}
}
UL_LABEL
Siehe auch UL_SEGMENT
Anmerkung
Falls xref ungleich 0 ist, läuft das wires() Loop member durch die
Wires, aus denen die Umrandung des Querverweis-Labels besteht. Ansonsten ist die
Schleife leer.
Beispiel
sheet(SH) {
SH.nets(N) {
N.segments(S) {
S.labels(L) {
printf("Label: (%f %f) '%s'", u2mm(L.x), u2mm(L.y), L.text.value);
}
}
}
}
UL_LAYER
Siehe auch UL_BOARD,
UL_LIBRARY,
UL_SCHEMATIC
Konstanten
LAYER_NAME_LENGTH max. empfohlene Länge eines Layer-Namens (wird nur für formatierte Ausgaben benutzt) LAYER_TOP Layer-Nummern LAYER_BOTTOM LAYER_PADS LAYER_VIAS LAYER_UNROUTED LAYER_DIMENSION LAYER_TPLACE LAYER_BPLACE LAYER_TORIGINS LAYER_BORIGINS LAYER_TNAMES LAYER_BNAMES LAYER_TVALUES LAYER_BVALUES LAYER_TSTOP LAYER_BSTOP LAYER_TCREAM LAYER_BCREAM LAYER_TFINISH LAYER_BFINISH LAYER_TGLUE LAYER_BGLUE LAYER_TTEST LAYER_BTEST LAYER_TKEEPOUT LAYER_BKEEPOUT LAYER_TRESTRICT LAYER_BRESTRICT LAYER_VRESTRICT LAYER_DRILLS LAYER_HOLES LAYER_MILLING LAYER_MEASURES LAYER_DOCUMENT LAYER_REFERENCE LAYER_TDOCU LAYER_BDOCU LAYER_NETS LAYER_BUSSES LAYER_PINS LAYER_SYMBOLS LAYER_NAMES LAYER_VALUES LAYER_INFO LAYER_GUIDE LAYER_USER niedrigste Nummer für benutzerdefinierte Layer (100) Beispiel
board(B) {
B.layers(L) printf("Layer %3d %s\n", L.number, L.name);
}
UL_LIBRARY
Siehe auch UL_BOARD,
UL_SCHEMATIC
editable int (siehe Anmerkung) description string (siehe Anmerkung) grid UL_GRID headline string name string (LIBRARY_NAME_LENGTH, siehe Anmerkung)
devices() UL_DEVICE devicesets() UL_DEVICESET layers() UL_LAYER packages() UL_PACKAGE symbols() UL_SYMBOL Konstanten
LIBRARY_NAME_LENGTH max. empfohlene Länge eines Bibliotheksnamens (wird nur für formatierte Ausgaben benutzt) Anmerkung
Das description-Member liefert den vollständigen Beschreibungstext, der mit dem
DESCRIPTION-Befehl erzeugt wurde, während das headline-Member
nur die erste Zeile der Beschreibung ohne HTML-Tags ausgibt.
Wenn Sie den description-Text benutzen, denken Sie daran, dass dieser Newline-Anweisungen ('\n') enthalten darf.
Die description und headline Texte stehen nur direkt innerhalb einer Library-Zeichnung
zur Verfügung, nicht wenn die Bibliothek aus einem UL_BOARD- oder UL_SCHEMATIC-Kontext heraus angesprochen wird.
Beispiel
library(L) {
L.devices(D) printf("Dev: %s\n", D.name);
L.devicesets(D) printf("Dev: %s\n", D.name);
L.packages(P) printf("Pac: %s\n", P.name);
L.symbols(S) printf("Sym: %s\n", S.name);
}
schematic(S) {
S.libraries(L) printf("Library: %s\n", L.name);
}
UL_MODULE
Siehe auch UL_PORT,
UL_SCHEMATIC
Beispiel
schematic(SCH) {
SCH.modules(M) {
M.parts(P) printf("Part: %s\n", P.name);
}
}
UL_MODULEINST
Siehe auch UL_PORTREF,
UL_VARIANTDEF
angle real (0, 90, 180 und 270) column string (siehe Anmerkung) mirror int module UL_MODULE modulevariant string (gewählte Bestückungsvariante des Moduls) name string (INSTANCE_NAME_LENGTH) offset int row string (siehe Anmerkung) sheet int (Seitennummer) smashed int (siehe Anmerkung) x, y int (Aufhängepunkt)
texts() UL_TEXT (siehe Anmerkung) wires() UL_WIRE Konstanten
INSTANCE_NAME_LENGTH max. empfohlene Länge eines Instance-Namen (wird nur für formatierte Ausgaben benutzt) Anmerkung
Das texts Loop-Member liefert alle sichtbaren Texte der Modul-Instanz
(ob smashed oder nicht spielt hier keine Rolle).
Beispiel
schematic(SCH) {
SCH.sheets(SH) {
SH.moduleinsts(MI) {
printf("Module instance %s is located on sheet %d\n", MI.name, MI.sheet);
}
}
}
UL_NET
Siehe auch UL_SHEET,
UL_SCHEMATIC
class UL_CLASS column string (siehe Anmerkung) name string (NET_NAME_LENGTH) row string (siehe Anmerkung)
pinrefs() UL_PINREF (siehe Anmerkung) portrefs() UL_PORTREF segments() UL_SEGMENT (siehe Anmerkung) Konstanten
NET_NAME_LENGTH max. empfohlene Länge eines Netznamens (wird nur für formatierte Ausgaben benutzt) Anmerkung
Das Loop member pinrefs() kann nur benutzt werden, wenn das
Net innerhalb eines UL_SCHEMATIC-Kontexts verwendet wird.
Das Loop member segments() kann nur benutzt werden,
wenn das Net innerhalb eines UL_SHEET-Kontexts verwendet wird.
Beispiel
schematic(S) {
S.nets(N) {
printf("Net: %s\n", N.name);
// N.segments(SEG) will NOT work here!
}
// or with virt. nets:
S.allnets(N) {
printf("Net: %s\n", N.name);
}
}
schematic(S) {
S.sheets(SH) {
SH.nets(N) {
printf("Net: %s\n", N.name);
N.segments(SEG) {
SEG.wires(W) {
printf("\tWire: (%f %f) (%f %f)\n",
u2mm(W.x1), u2mm(W.y1), u2mm(W.x2), u2mm(W.y2));
}
}
}
}
}
UL_PACKAGE
Siehe auch UL_DEVICE,
UL_ELEMENT,
UL_LIBRARY
area UL_AREA description string headline string library string libraryurn string (siehe Anmerkung) libraryversion int (siehe Anmerkung) locallymodified int (siehe Anmerkung) librarylocallymodified int (siehe Anmerkung) name string (PACKAGE_NAME_LENGTH) urn string (siehe Anmerkung)
circles() UL_CIRCLE contacts() UL_CONTACT dimensions() UL_DIMENSION frames() UL_FRAME holes() UL_HOLE polygons() UL_POLYGON (siehe Anmerkung) rectangles() UL_RECTANGLE texts() UL_TEXT (siehe Anmerkung) wires() UL_WIRE (siehe Anmerkung) Konstanten
PACKAGE_NAME_LENGTH max. empfohlene Länge eines Package-Namens (wird nur für formatierte Ausgaben benutzt) Anmerkung
Das description-Member liefert den vollständigen Beschreibungstext, der mit dem
DESCRIPTION-Befehl erzeugt wurde, während das headline-Member
nur die erste Zeile der Beschreibung ohne HTML-Tags ausgibt.
Wenn Sie description-Text schreiben, denken Sie daran, dass dieser Newline-Anweisungen ('\n') enthalten darf.
Das Member librarylocallymodified wird 0, wenn dieses UL_PACKAGE nicht von einer lokal veränderten Bibliothek kommt bzw. 1, wenn dieses UL_PACKAGE aus einer lokal veränderten Bibliothek stammt.
Beispiel
library(L) {
L.packages(PAC) {
printf("Package: %s\n", PAC.name);
PAC.contacts(C) {
if (C.pad)
printf("\tPad: %s, (%f %f)\n",
C.name, u2mm(C.pad.x), u2mm(C.pad.y));
else if (C.smd)
printf("\tSmd: %s, (%f %f)\n",
C.name, u2mm(C.smd.x), u2mm(C.smd.y));
}
}
}
board(B) {
B.elements(E) {
printf("Element: %s, Package: %s\n", E.name, E.package.name);
}
}
UL_PACKAGE3D
See also UL_DEVICE,
UL_ELEMENT,
UL_LIBRARY,
UL_PACKAGE
Anmerkung
Das Member description liefert den vollständigen Beschreibungstext, während das Member
headline nur die erste Zeile der Beschreibung ohne HTML-Tags
liefert. Wenn Sie description-Text verwenden, denke Sie daran, dass dieser auch Newline-
Zeichen ('\n') enthalten kann.
Beispiel
library(L) {
L.packages3d(P3D) {
printf("3D Package: %s (%s, Version %d)\n", P3D.name, urnbase(P3D.urn), urnversion(P3D.urn));
}
}
board(B) {
B.elements(E) {
printf("Element: %s", E.name);
if (E.package3d) printf(", 3D Package: %s (%s, Version %d)\n", E.package3d.name, urnbase(E.package3d.urn), urnversion(E.package3d.urn));
else printf("\n");
}
}
UL_PAD
Siehe auch UL_PACKAGE,
UL_CONTACT,
UL_SMD
Konstanten
PAD_FLAG_STOP Lötstopmaske generieren PAD_FLAG_THERMALS Thermals generieren PAD_FLAG_FIRST spezielle Form für "erstes Pad" verwenden
PAD_SHAPE_SQUARE square PAD_SHAPE_ROUND round PAD_SHAPE_OCTAGON octagon PAD_SHAPE_LONG long PAD_SHAPE_OFFSET offset
PAD_NAME_LENGTH max. empfohlene Länge eines Pad-Namens (identisch mit CONTACT_NAME_LENGTH) Anmerkung
Die Parameter des Pads hängen vom Kontext ab in dem es angesprochen wird:
if (pad.flags & PAD_FLAG_STOP) {
...
}
Falls Ihr ULP lediglich die Objekte darstellen soll, brauchen Sie sich nicht
explizit um diese Flags zu kümmern. Die diameter[] und shape[]
Members liefern die richtigen Daten; ist zum Beispiel PAD_FLAG_STOP
gesetzt, so liefert diameter[LAYER_TSTOP] den Wert 0, was
zur Folge haben sollte, dass in diesem Layer nichts gezeichnet wird.
Das flags Member ist hauptsächlich für ULPs gedacht, die Script-Dateien
erzeugen mit denen Bibliotheksobjekte kreiert werden.
Beispiel
library(L) {
L.packages(PAC) {
PAC.contacts(C) {
if (C.pad)
printf("Pad: '%s', (%f %f), d=%f\n",
C.name, u2mm(C.pad.x), u2mm(C.pad.y), u2mm(C.pad.diameter[LAYER_BOTTOM]));
}
}
}
UL_PART
Siehe auch UL_SCHEMATIC,
UL_SHEET
attribute[] string (siehe Anmerkung) device UL_DEVICE deviceset UL_DEVICESET module UL_MODULE (siehe Anmerkung) modulepart UL_PART (siehe Anmerkung) modulepath string (siehe Anmerkung) name string (PART_NAME_LENGTH) package3d UL_PACKAGE3D populate int (0=do not populate, 1=populate) value string (PART_VALUE_LENGTH)
attributes() UL_ATTRIBUTE (siehe Anmerkung) instances() UL_INSTANCE (siehe Anmerkung) variants() UL_VARIANT (siehe Anmerkung) Konstanten
PART_NAME_LENGTH max. empfohlene Länge eines Part-Namens (wird nur für formatierte Ausgaben benutzt) PART_VALUE_LENGTH max. empfohlene Länge eines Part-Values (wird nur für formatierte Ausgaben benutzt) Anmerkung
Mit dem attribute[]-Member kann man ein UL_PART nach dem Wert eines
bestimmten Attributs fragen (siehe das zweite Beispiel). Der zurückgelieferte
String ist leer, wenn es kein Attribut mit dem angegebenen Namen gibt, oder
wenn dieses Attribut explizit leer ist.
Zum Beispiel hat ein virtuelles Part mit Namen 'MI1:R1' den modulepath 'MI1'.
'R101', das von einer Modul-Instanz 'MX' mit Offset-Notation stammt, liefert modulepath 'MX'.
'MAIN:SUB1:SUBSUB1:C5' hat modulepath 'MAIN:SUB1:SUBSUB1'.
Beispiele
schematic(S) {
S.parts(P) printf("Part: %s\n", P.name);
}
schematic(S) {
S.allparts(P) {
if (P.attribute["REMARK"])
printf("%s: %s\n", P.name, P.attribute["REMARK"]);
if (P.modulepart) {
P.modulepart.instances(I)
printf("%s is a virtual part from %s in module %s with part instance on sheet %d\n",
P.name, P.modulepart.name, P.module.name, I.sheet);
}
else {
P.instances(I)
printf("%s is a part on main schematic with instance on sheet %d\n",
P.name, I.sheet);
}
}
}
schematic(S) {
S.allparts(P) {
if (P.modulepart) {
string miNames[];
int nr = strsplit(miNames, P.modulepath, ':');
if (nr == 1)
printf("%s is a virtual part created by module instance %s in main schematic.\n",
P.name, miNames[0]);
else {
printf("%s is a virtual part in a multiple hierarchy created by this path of module instances:\n", P.name);
for (int i = 0; i < nr; ++i)
printf("%s\n", miNames[i]);
}
}
}
}
UL_PIN
Siehe auch UL_SYMBOL,
UL_PINREF,
UL_CONTACTREF
angle real (0, 90, 180 und 270) contact UL_CONTACT (veraltet, siehe Anmerkung) direction int (PIN_DIRECTION_...) function int (PIN_FUNCTION_FLAG_...) length int (PIN_LENGTH_...) name string (PIN_NAME_LENGTH) net string (siehe Anmerkung) route int (CONTACT_ROUTE_...) swaplevel int visible int (PIN_VISIBLE_FLAG_...) x, y int (Anschlusspunkt)
circles() UL_CIRCLE contacts() UL_CONTACT (siehe Anmerkung) texts() UL_TEXT wires() UL_WIRE Konstanten
PIN_DIRECTION_NC Not connected PIN_DIRECTION_IN Input PIN_DIRECTION_OUT Output (totem-pole) PIN_DIRECTION_IO In/Output (bidirectional) PIN_DIRECTION_OC Open Collector PIN_DIRECTION_PWR Power-Input-Pin PIN_DIRECTION_PAS Passiv PIN_DIRECTION_HIZ High-Impedance-Output PIN_DIRECTION_SUP Supply-Pin
PIN_FUNCTION_FLAG_NONE kein Symbol PIN_FUNCTION_FLAG_DOT Inverter-Symbol PIN_FUNCTION_FLAG_CLK Taktsymbol
PIN_LENGTH_POINT kein Wire PIN_LENGTH_SHORT 0.1-Inch-Wire PIN_LENGTH_MIDDLE 0.2-Inch-Wire PIN_LENGTH_LONG 0.3-Inch-Wire
PIN_NAME_LENGTH max. empfohlene Länge eines Pin-Namens (wird nur für formatierte Ausgaben benutzt)
PIN_VISIBLE_FLAG_OFF kein Name sichtbar PIN_VISIBLE_FLAG_PAD Pad-Name sichtbar PIN_VISIBLE_FLAG_PIN Pin-Name sichtbar
CONTACT_ROUTE_ALL alle Kontakte müssen explizit angeschlossen werden CONTACT_ROUTE_ANY beliebige Kontakte können angeschlossen werden Anmerkung
Das contacts() Loop Member geht durch die Contacts,
mit denen der Pin durch einen CONNECT-Befehl verbunden
worden ist.
Dies ist der Fall in einem UL_DEVICE-Kontext oder von UL_PINREF her kommend, nicht aber
über UL_LIBRARY.symbols(). Ist dies nicht der Fall, so ist die Liste leer.
Das name Data Member liefert den Namen des Pins immer so, wie er in der Bibliothek
definiert wurde, einschließlich eines etwaigen '@'-Zeichens für Pins mit dem gleichen Namen
(siehe PIN-Befehl).
Das texts Loop-Member dagegen liefert den Pin-Namen (sofern er sichtbar ist) immer
in der Form, wie er im aktuellen Zeichnungstyp dargestellt wird.
Beispiel
library(L) {
L.symbols(S) {
printf("Symbol: %s\n", S.name);
S.pins(P) {
printf("\tPin: %s, (%f %f)", P.name, u2mm(P.x), u2mm(P.y));
if (P.direction == PIN_DIRECTION_IN)
printf(" input");
if ((P.function & PIN_FUNCTION_FLAG_DOT) != 0)
printf(" inverted");
printf("\n");
}
}
}
UL_PINREF
Siehe auch UL_SEGMENT,
UL_CONTACTREF
instance UL_INSTANCE part UL_PART pin UL_PIN Beispiel
schematic(SCH) {
SCH.sheets(SH) {
printf("Sheet: %d\n", SH.number);
SH.nets(N) {
printf("\tNet: %s\n", N.name);
N.segments(SEG) {
SEG.pinrefs(P) {
printf("connected to: %s, %s, %s\n",
P.part.name, P.instance.name, P.pin.name);
}
}
}
}
}
UL_POLYGON
Siehe auch UL_BOARD,
UL_PACKAGE,
UL_SHEET,
UL_SIGNAL,
UL_SYMBOL
Konstanten
POLYGON_POUR_SOLID solid POLYGON_POUR_HATCH hatch POLYGON_POUR_CUTOUT cutout Anmerkung
Die Loop-Member contours() und fillings() gehen durch alle Wires, mit
denen das Polygon gezeichnet wird, sofern es zu einem Signal gehört und mit
dem Befehl RATSNEST freigerechnet wurde.
Das Loop-Member wires() geht immer durch die Wires, die vom Benutzer gezeichnet
wurden. Für nicht freigerechnete Signal-Polygone liefert contours() dasselbe
Ergebnis wie wires(). Fillings() hat dann keine Bedeutung.
Polygon-Strichstärke
Wenn Sie das Loop-Member fillings() verwenden um die Füll-Linien
des Polygons zu erreichen, stellen Sie sicher, dass die Strichstärke
width des Polygons nicht null ist (sie sollte etwas über null liegen,
bzw. mindestens der Auflösung des Ausgabetreibers mit dem Sie die Zeichnung ausgeben
wollen entsprechen).
Zeichnen Sie ein Polygon mit Strichstärke = 0, ergibt sich eine riesige Datenmenge, da
das Polygon mit der kleinsten Editor-Auflösung von 1/320000mm berechnet wird.
Teilpolygone
Ein berechnetes Polygon kann aus verschiedenen getrennten Teilen (positivePolygone
genannt) bestehen, wobei jedes davon Aussparungen (negative Polygone genannt)
enthalten kann, die von anderen Objekten, die vom Polygon subtrahiert werden,
herrühren. Negative Polygone können wiederum weitere positive Polygone enthalten
und so weiter.
Beispiel
board(B) {
B.signals(S) {
S.polygons(P) {
int x0, y0, first = 1;
P.contours(W) {
if (first) {
// a new partial polygon is starting
x0 = W.x1;
y0 = W.y1;
}
// ...
// do something with the wire
// ...
if (first)
first = 0;
else if (W.x2 == x0 && W.y2 == y0) {
// this was the last wire of the partial polygon,
// so the next wire (if any) will be the first wire
// of the next partial polygon
first = 1;
}
}
}
}
}
board(B) {
B.signals(S) {
S.polygons(P) {
// handle only the "positive" polygons:
int i = 1;
int active;
do {
active = 0;
P.contours(W, i) {
active = 1;
// do something with the wire
}
i++;
} while (active);
}
}
}
UL_PORT
Siehe auch UL_MODULE,
UL_MODULEINST,
UL_PORTREF
Konstanten
MODULE_BORDER_BOTTOM am unteren Rand des Modul-Rahmens MODULE_BORDER_RIGHT am rechten Rand des Modul-Rahmens MODULE_BORDER_TOP am oberen Rand des Modul-Rahmens MODULE_BORDER_LEFT am linken Rand des Modul-Rahmens PORT_NAME_LENGTH max. empfohlene Länge eines Portnamens (wird nur für formatierte Ausgaben benutzt) Anmerkung
Die Konstanten von direction sind identisch mit denen von PIN_DIRECTION_... (allerdings
gibt es bei einem Port kein PIN_DIRECTION_SUP).
Beispiel
schematic(SCH) {
SCH.modules(M) {
M.ports(P) printf("Port: %s\n", P.name);
}
}
UL_PORTREF
Siehe auch UL_SEGMENT
moduleinst UL_MODULEINST port UL_PORT Beispiel
schematic(SCH) {
SCH.sheets(SH) {
printf("Sheet: %d\n", SH.number);
SH.nets(N) {
printf("\tNet: %s\n", N.name);
N.segments(SEG) {
SEG.portrefs(P) {
printf("\tconnected to: %s, %s\n",
P.moduleinst.name, P.port.name);
}
}
}
}
}
UL_RECTANGLE
Siehe auch UL_BOARD,
UL_PACKAGE,
UL_SHEET,
UL_SYMBOL
Beispiel
board(B) {
B.rectangles(R) {
printf("Rectangle: (%f %f), (%f %f)\n",
u2mm(R.x1), u2mm(R.y1), u2mm(R.x2), u2mm(R.y2));
}
}
UL_SCHEMATIC
Siehe auch UL_BOARD,
UL_LIBRARY,
variant()
alwaysvectorfont int (ALWAYS_VECTOR_FONT_..., siehe Anmerkung) checked int (siehe Anmerkung) description string grid UL_GRID headline string name string (siehe Anmerkung) verticaltext int (VERTICAL_TEXT_...) xreflabel string xrefpart string
allnets() UL_NET (siehe Anmerkung) allparts() UL_PART (siehe Anmerkung) attributes() UL_ATTRIBUTE (siehe Anmerkung) classes() UL_CLASS errors() UL_ERROR layers() UL_LAYER libraries() UL_LIBRARY modules() UL_MODULE nets() UL_NET parts() UL_PART sheets() UL_SHEET variantdefs() UL_VARIANTDEF Konstanten
ALWAYS_VECTOR_FONT_GUI die Option "Immer Vektor-Schrift" ist
im User-Interface-Dialog gesetzt ALWAYS_VECTOR_FONT_PERSISTENT die Option "Immer Vektor-Schrift" ist
in diese Zeichnung eingeprägt
VERTICAL_TEXT_UP Leserichtung für vertikale Texte: aufwärts VERTICAL_TEXT_DOWN Leserichtung für vertikale Texte: abwärts Anmerkung
Der Wert von alwaysvectorfont kann in einem logischen Kontext verwendet werden
oder er kann auch mit den ALWAYS_VECTOR_FONT_... Konstanten maskiert werden,
um die Herkunft dieser Einstellung zu ermitteln, wie zum Beispiel in
if (SCH.alwaysvectorfont) {
// alwaysvectorfont ist gesetzt
}
if (SCH.alwaysvectorfont & ALWAYS_VECTOR_FONT_GUI) {
// alwaysvectorfont ist in der Benutzeroberfläche gesetzt
}
Der Wert von checked kann in einem logischen Kontext verwendet werden;
er ist nur gesetzt, wenn gerade ein 'Electrical Rule Check' (ERC)
durchgeführt wurde.
Das name Member liefert den vollständigen Dateinamen, inklusive Verzeichnis.
Virtuelle Netze, allnets() Loop-Member
Das Loop-Member allnets() geht durch die Netze des Haupt-Schaltplans
und durch alle virtuellen Netze, erzeugt durch Modul-Instanzen.
Virtuelle Bauteile, allparts() Loop-Member
Hierarchische Bauteile werden über Modul-Instanzen definiert und existieren eigentlich im Schaltplan
nicht, lediglich die Bauteile in den Modulen. Aus diesem Grund nennen wir sie manchmal 'Virtuelle Bauteile'.
Ein Modul-Bauteil kann über mehrere Modul-Instanzen von mehreren virtuellen Bauteilen benutzt werden.
Da jedes virtuelle Bauteil einem (real existierenden) Element im Board entspricht,
stellt die User Language diese Bauteile ebenfalls zur Verfügung, z.B. für die BOM-Generierung.
Das Loop-Member allparts() geht durch die parts() des Haupt-Schaltplans
und durch alle virtuellen Bauteile.
Beispiel
schematic(S) {
S.parts(P) printf("Part: %s\n", P.name);
}
UL_SEGMENT
Siehe auch UL_BUS,
UL_NET
junctions() UL_JUNCTION (siehe Anmerkung) labels() UL_LABEL pinrefs() UL_PINREF (siehe Anmerkung) portrefs() UL_PORTREF texts() UL_TEXT (veraltet, siehe Anmerkung) wires() UL_WIRE Anmerkung
Die Loop members junctions() und pinrefs()
sind nur für Netzsegmente zugänglich.
Beispiel
schematic(SCH) {
SCH.sheets(SH) {
printf("Sheet: %d\n", SH.number);
SH.nets(N) {
printf("\tNet: %s\n", N.name);
N.segments(SEG) {
SEG.pinrefs(P) {
printf("connected to: %s, %s, %s\n",
P.part.name, P.instance.name, P.pin.name);
}
}
}
}
}
UL_SHEET
Siehe auch UL_SCHEMATIC
area UL_AREA description string headline string number int
busses() UL_BUS circles() UL_CIRCLE dimensions() UL_DIMENSION frames() UL_FRAME instances() UL_INSTANCE moduleinsts() UL_MODULEINST nets() UL_NET polygons() UL_POLYGON rectangles() UL_RECTANGLE texts() UL_TEXT wires() UL_WIRE Beispiel
schematic(SCH) {
SCH.sheets(S) {
printf("Sheet: %d\n", S.number);
}
}
UL_SIGNAL
Siehe auch UL_BOARD
airwireshidden int class UL_CLASS name string (SIGNAL_NAME_LENGTH)
contactrefs() UL_CONTACTREF polygons() UL_POLYGON vias() UL_VIA wires() UL_WIRE Konstanten
SIGNAL_NAME_LENGTH max. empfohlene Länge eines Signalnamens (wird nur für formatierte Ausgaben benutzt) Beispiel
board(B) {
B.signals(S) printf("Signal: %s\n", S.name);
}
UL_SMD
Siehe auch UL_PACKAGE,
UL_CONTACT,
UL_PAD
Konstanten
SMD_FLAG_STOP Lötstopmaske generieren SMD_FLAG_THERMALS Thermals generieren SMD_FLAG_CREAM Lotpastenmaske generieren
SMD_NAME_LENGTH max. empfohlenen Länge eines Smd-Namens (identisch mit CONTACT_NAME_LENGTH) Anmerkung
Die Parameter des SMDs hängen vom Kontext ab in dem es angesprochen wird:
Ruft man die Data Member dx und dy mit einem optionalen Layer-Index auf,
werden die Werte für den zugehörigen Layer, entsprechend den Design Rules
ausgegeben.
Gültige Layer sind LAYER_TOP, LAYER_TSTOP und LAYER_TCREAM für ein
Smd im Top-Layer, und LAYER_BOTTOM, LAYER_BSTOP und LAYER_BCREAM für ein Smd im Bottom-Layer.
if (smd.flags & SMD_FLAG_STOP) {
...
}
Falls Ihr ULP lediglich die Objekte darstellen soll, brauchen Sie sich nicht
explizit um diese Flags zu kümmern. Die dx[] und dy[]
Members liefern die richtigen Daten; ist zum Beispiel SMD_FLAG_STOP
gesetzt, so liefert dx[LAYER_TSTOP] den Wert 0, was
zur Folge haben sollte, dass in diesem Layer nichts gezeichnet wird.
Das flags Member ist hauptsächlich für ULPs gedacht, die Script-Dateien
erzeugen mit denen Bibliotheksobjekte kreiert werden.
Beispiel
library(L) {
L.packages(PAC) {
PAC.contacts(C) {
if (C.smd)
printf("Smd: '%s', (%f %f), dx=%f, dy=%f\n",
C.name, u2mm(C.smd.x), u2mm(C.smd.y), u2mm(C.smd.dx), u2mm(C.smd.dy));
}
}
}
UL_SYMBOL
Siehe auch UL_GATE,
UL_LIBRARY
area UL_AREA description string headline string library string libraryurn string (siehe Anmerkung) libraryversion int (siehe Anmerkung) locallymodified int (siehe Anmerkung) librarylocallymodified int (siehe Anmerkung) name string (SYMBOL_NAME_LENGTH) urn string (siehe Anmerkung)
circles() UL_CIRCLE dimensions() UL_DIMENSION frames() UL_FRAME rectangles() UL_RECTANGLE pins() UL_PIN polygons() UL_POLYGON texts() UL_TEXT (siehe Anmerkung) wires() UL_WIRE Konstanten
SYMBOL_NAME_LENGTH max. empfohlene Länge eines Symbol-Namens (wird nur für formatierte Ausgaben benutzt) Anmerkung
Stammt das UL_SYMBOL aus einem UL_INSTANCE-Kontext, so durchläuft das texts()-Member
nur die nicht losgelösten Texte dieser Instance.
Das Member librarylocallymodified wird 0, wenn dieses UL_SYMBOL nicht von einer lokal veränderten Bibliothek kommt bzw. 1, wenn dieses UL_SYMBOL aus einer lokal veränderten Bibliothek stammt.
Beispiel
library(L) {
L.symbols(S) printf("Sym: %s\n", S.name);
}
UL_TEXT
Siehe auch UL_BOARD,
UL_PACKAGE,
UL_SHEET,
UL_SYMBOL
Konstanten
FONT_VECTOR Vector-Font FONT_PROPORTIONAL Proportional-Font FONT_FIXED Fixed-Font
ALIGN_BOTTOM_LEFT unten/links ausgerichtet ALIGN_BOTTOM_CENTER unten/mittig ausgerichtet ALIGN_BOTTOM_RIGHT unten/rechts ausgerichtet ALIGN_CENTER_LEFT mittig/links ausgerichtet ALIGN_CENTER zentriert ALIGN_CENTER_RIGHT mittig/rechts ausgerichtet ALIGN_TOP_LEFT oben/links ausgerichtet ALIGN_TOP_CENTER oben/mittig ausgerichtet ALIGN_TOP_RIGHT oben/rechts ausgerichtet Anmerkung
Das Loop-Member wires() greift immer auf die individuellen Wires, aus denen der Text
im Vektor-Font zusammengesetzt wird, zu. Auch dann, wenn der aktuelle Font nicht
FONT_VECTOR ist.
Beispiel
board(B) {
B.texts(T) {
printf("Text: %s\n", T.value);
}
}
UL_VARIANTDEF
Siehe auch UL_VARIANT,
UL_SCHEMATIC,
UL_BOARD,
variant()
name string Beispiel
schematic(SCH) {
printf("Defined assembly variants:\n");
SCH.variantdefs(VD) {
printf("\t'%s'\n", VD.name);
}
printf("\n");
printf("Part\tVariantdef\tValue\tTechn.\tPopulated\n");
SCH.parts(P) {
printf("%s\t%s\t%s\t%s\t%s\n", P.name, "default", P.value, P.device.activetechnology, "yes");
P.variants(V) {
printf("%s\t%s\t%s\t%s\t%s\n", P.name, V.variantdef.name, V.value, V.technology, V.populate ? "yes" : "no");
}
}
}
UL_VARIANT
Siehe auch UL_VARIANTDEF,
UL_PART,
variant()
populate int (0=do not populate, 1=populate) value string technology string variantdef UL_VARIANTDEF Beispiel
schematic(SCH) {
printf("Defined assembly variants:\n");
SCH.variantdefs(VD) {
printf("\t'%s'\n", VD.name);
}
printf("\n");
printf("Part\tVariantdef\tValue\tTechn.\tPopulated\n");
SCH.parts(P) {
printf("%s\t%s\t%s\t%s\t%s\n", P.name, "default", P.value, P.device.activetechnology, "yes");
P.variants(V) {
printf("%s\t%s\t%s\t%s\t%s\n", P.name, V.variantdef.name, V.value, V.technology, V.populate ? "yes" : "no");
}
}
}
UL_VIA
Siehe auch UL_SIGNAL
Konstanten
VIA_FLAG_STOP Lötstopmaske immer generieren
VIA_SHAPE_SQUARE square VIA_SHAPE_ROUND round VIA_SHAPE_OCTAGON octagon Anmerkung
Der Durchmesser und die Form des Vias hängen davon ab für welchen Layer es gezeichnet
werden soll, denn es können in den Design Rules unterschiedliche
Werte definiert werden.
Gibt man einen der Layer LAYER_TOP...LAYER_BOTTOM, LAYER_TSTOP oder LAYER_BSTOP
als Index für diameter oder shape an, wird das Via entsprechend den Vorgaben aus den Design Rules
berechnet. Wird LAYER_VIAS angegeben, wird der ursprüngliche Wert mit dem das Via definiert wurde,
verwendet.
Beispiel
board(B) {
B.signals(S) {
S.vias(V) {
printf("Via: (%f %f)\n", u2mm(V.x), u2mm(V.y));
}
}
}
UL_WIRE
Siehe auch UL_BOARD,
UL_PACKAGE,
UL_SEGMENT,
UL_SHEET,
UL_SIGNAL,
UL_SYMBOL,
UL_ARC
Konstanten
CAP_FLAT flache Kreisbogen-Enden CAP_ROUND runde Kreisbogen-Enden WIRE_STYLE_CONTINUOUS durchgezogen WIRE_STYLE_LONGDASH lang gestrichelt WIRE_STYLE_SHORTDASH kurz gestrichelt WIRE_STYLE_DASHDOT Strich-Punkt-Linie Wire Style
Bei einem UL_WIRE mit anderem style als WIRE_STYLE_CONTINUOUS, kann
über das Loop-Member pieces() auf die individuellen Teile, die z. B. eine gestrichelte
Linie darstellen, zugegriffen werden. Wenn pieces() für UL_WIRE mit
WIRE_STYLE_CONTINUOUS aufgerufen wird, erhält man ein Segment, das
genau dem original UL_WIRE entspricht. Das Loop-Member pieces() kann nicht
von UL_WIRE aus aufgerufen werden, wenn dieser selbst schon über pieces()
aufgerufen wurde (das würde eine unendliche Schleife verursachen).
Kreisbögen auf Wire-Ebene
Kreisbögen sind zunächst einfach nur Wires, mit einigen zusätzlichen Eigenschaften.
In erster Näherung werden Kreisbögen genauso behandelt wie Wires, das heisst sie haben
einen Anfangs- und Endpunkt, eine Breite und einen Linientyp. Hinzu kommen auf
Wire-Ebene die Parameter cap und curve. cap gibt an ob die Kreisbogen-Enden
rund oder flach sind, und curve bestimmt die "Krümmung" des Kreisbogens.
Der gültige Bereich für curve ist -360..+360, wobei der Wert
angibt aus welchem Anteil eines Vollkreises der Kreisbogen besteht. Ein Wert von 90
beispielsweise steht für einen Viertelkreis, während 180 einen Halbkreis
ergibt. Der maximale Wert von 360 kann nur theoretisch erreicht werden, da dies
bedeuten würde, dass der Kreisbogen aus einem vollen Kreis besteht, der, weil Anfangs- und
Endpunkt auf dem Kreis liegen müssen, einen unendlich großen Durchmesser haben müsste.
Positive Werte für curve bedeuten, dass der Kreisbogen im mathematisch positiven Sinne
(also gegen den Uhrzeigersinn) gezeichnet wird. Falls curve gleich 0
ist, handelt es sich um eine gerade Linie ("keine Krümmung"), was letztlich einem
Wire entspricht.
Beispiel
board(B) {
B.wires(W) {
printf("Wire: (%f %f) (%f %f)\n",
u2mm(W.x1), u2mm(W.y1), u2mm(W.x2), u2mm(W.y2));
}
}
Definitionen
Konstanten, Variablen und Funktionen müssen definiert werden,
bevor sie in einem User-Language-Programm verwendet werden können.
Konstanten-Definitionen
Konstanten werden mit Hilfe des Schlüsselworts
enum definiert, wie in
enum { a, b, c };
womit man den drei Konstanten a, b und c
die Werte 0, 1 und 2 zuweisen würde.
enum { a, b = 5, c };
wo a den Wert 0, b den Wert 5 und
c den Wert 6 erhält.
Variablen-Definitionen
Die allgemeine Syntax einer Variablen-Definition ist
[numeric] type identifier [= initializer][, ...];
wobei type ein
Daten- oder
Objekt-Typ ist,
identifier ist der Name der Variablen, und initializer
ist ein optionaler Initialisierungswert.
Beispiele
Die Members von Elementen eines Arrays von Objekt-Typen können nicht direkt angesprochen werden:
int i; definiert eine int-Variable mit dem Namen i string s = "Hello"; definiert eine string-Variable mit dem Namen s und initialisiert sie mit "Hello" real a, b = 1.0, c; definiert drei real-Variablen mit den Namen a, b und c und initialisiert b mit dem Wert 1.0 int n[] = { 1, 2, 3 }; definiert ein Array of int und initialisiert die ersten drei Elemente mit 1, 2 und 3 numeric string names[]; definiert ein string-Array das alphanumerisch sortiert werden kann UL_WIRE w; definiert ein UL_WIRE-Objekt mit dem Namen w
UL_SIGNAL signals[];
...
UL_SIGNAL s = signals[0];
printf("%s", s.name);
Funktions-Definitionen
Sie können Ihre eigenen User-Language-Funktionen schreiben und sie genau so
aufrufen wie
Builtin-Functions.
type identifier(parameters)
{
statements
}
wobei type ein
Daten- oder
Objekt-Typ ist,
identifier der Name einer Funktion,
parameters eine durch Kommas getrennte Liste
von Parameter-Definitionen und
statements eine Reihe von Statements.
Die spezielle Funktion main()
Wenn Ihr User-Language-Programm eine Funktion namens
main() enthält, wird diese Funktion explizit als Hauptfunktion
aufgerufen. Ihr Rückgabewert ist der
Rückgabewert des Programms.
Beispiel
int CountDots(string s)
{
int dots = 0;
for (int i = 0; s[i]; ++i)
if (s[i] == '.')
++dots;
return dots;
}
string dotted = "This.has.dots...";
output("test") {
printf("Number of dots: %d\n",
CountDots(dotted));
}
Operatoren
Die folgende Tabelle listet alle User-Language-Operatoren in der Reihenfolge
ihrer Priorität auf (Unary hat die höchste Priorität,
Comma die niedrigste):
Unary ! ~ + - ++ -- Multiplicative * / % Additive + - Shift << >> Relational < <= > >= Equality == != Bitwise AND & Bitwise XOR ^ Bitwise OR | Logical AND && Logical OR || Conditional ?: Assignment = *= /= %= += -= &= ^= |= <<= >>= Comma , Bitweise Operatoren
Bitweise Operatoren kann man nur auf die Datentypen
char und
int anwenden.
Unary ~ Bitwise (1's) complement Binary << Shift left >> Shift right & Bitwise AND ^ Bitwise XOR | Bitwise OR Assignment &= Assign bitwise AND ^= Assign bitwise XOR |= Assign bitwise OR <<= Assign left shift >>= Assign right shift Logische Operatoren
Logische Operatoren arbeiten mit
Ausdrücken
von jedem Datentyp.
Unary ! Logical NOT Binary && Logical AND || Logical OR Vergleichs-Operatoren
Vergleichs-Operatoren können mit
Ausdrücken von jedem Datentyp angewendet
werden, ausgenommen
Objekt-Typen.
< Kleiner als <= Kleiner gleich > Größer als >= Größer gleich == Gleich != Ungleich Evaluation-Operatoren
Evaluation-Operatoren werden verwendet, um
Ausdrücke auszuwerten, die auf einer
Bedingung basieren, oder um eine Sequenz von Ausdrücken zu gruppieren
und sie als einen Ausdruck auszuwerten.
?: Conditional , Komma
int a;
// ...code that calculates 'a'
string s = a ? "True" : "False";
was folgender Konstruktion entspricht
int a;
string s;
// ...code that calculates 'a'
if (a)
s = "True";
else
s = "False";
aber der Vorteil des Conditional-Operators ist, dass er innerhalb des
Ausdrucks verwendet werden kann.
Arithmetische Operatoren
Arithmetische Operatoren lassen sich auf die Datentypen
char,
int und
real
anwenden (ausser ++, --, % und %=).
Unary + Unary plus - Unary minus ++ Pre- oder postincrement -- Pre- oder postdecrement Binary * Multiply / Divide % Remainder (modulus) + Binary plus - Binary minus Assignment = Simple assignment *= Assign product /= Assign quotient %= Assign remainder (modulus) += Assign sum -= Assign difference String-Operatoren
String-Operatoren lassen sich mit den Datentypen
char,
int und
string anwenden.
Der linke Operand muss immer vom Typ
string sein.
Binary + Concatenation Assignment = Simple assignment += Append to string Ausdrücke
Es gibt folgende Ausdrücke:
Ausdrücke können mit Hilfe von
runden Klammern gruppiert werden
und dürfen rekursiv aufgerufen werden, was bedeutet, dass
ein Ausdruck aus Unterausdrücken bestehen darf.
Arithmetischer Ausdruck
Ein arithmetischer Ausdruck ist jede Kombination von
numerischen Operanden und
arithmetischem Operator oder
bitweisem Operator.
Beispiele
a + b
c++
m << 1
Zuweisungs-Ausdruck
Ein Zuweisungs-Ausdruck besteht aus einer Variablen auf der
linken Seite eines Zuweisungsoperators und
einem Ausdruck auf der rechten Seite.
Beispiele
a = x + 42
b += c
s = "Hello"
String-Ausdruck
Ein String-Ausdruck ist jede Kombination von
string- und char-
Operanden und einem String-Operator.
Beispiele
s + ".brd"
t + 'x'
Komma-Ausdruck
Ein Komma-Ausdruck ist eine Sequenz von Ausdrücken, die mit dem
Komma-Operator abgegrenzt werden.
Beispiel
i++, j++, k++
Bedingter Ausdruck
Ein bedingter Ausdruck verwendet den
Conditional-Operator, um eine Entscheidung
innerhalb eines Ausdrucks zu treffen.
Beispiel
int a;
// ...code that calculates 'a'
string s = a ? "True" : "False";
Funktionsaufruf
Ein Funktionsaufruf transferiert den Programmfluss zu einer
benutzerdefinierten Funktion oder einer
Builtin-Function.
Die formalen Parameter, die in der
Funktions-Definition definiert sind,
werden ersetzt durch die Werte der Ausdrücke, die als aktuelle Argumente
des Funktionsaufrufs dienen.
Beispiel
int p = strchr(s, 'b');
Statements
Ein Statement kann folgendes sein:
Statements spezifizieren die Programmausführung. Wenn keine Control-Statements
vorhanden sind, werden Statements der Reihe nach in der Reihenfolge
ihres Auftretens in der ULP-Datei ausgeführt.
Compound-Statement (Verbundanweisung)
Ein Compound-Statement (auch bekannt als Block)
ist eine Liste (kann auch leer sein) von Statements in geschweiften
Klammern ({}).
Syntaktisch kann ein Block als einzelnes Statement angesehen werden,
aber er steuert auch den Gültigkeitsbereich von Identifiern.
Ein
Identifier, der innerhalb eines Blocks
deklariert wird, gilt ab der Stelle, an der er definiert wurde, bis
zur schließenden geschweiften Klammer.
Expression-Statement (Ausdrucksanweisung)
Ein Expression-Statement ist jeder beliebige
Ausdruck, gefolgt von einem
Semikolon.
Control-Statements (Steueranweisungen)
Control-Statements werden verwendet, um den Programmfluss
zu steuern.
do...while
for
while
Selection-Statements sind
if...else
switch
Jump-Statements sind
break
continue
return
break
Das break-Statement hat die allgemeine Syntax
break;
und bricht sofort das nächste einschließende
do...while-,
for-,
switch- oder
while-Statement ab.
Dies gilt ebenso für loop members von Objekt-Typen.
continue
Das continue-Statement hat die allgemeine Syntax
continue;
und transferiert die Steuerung direkt zur Testbedingung des
nächsten einschließenden
do...while-,
while-, oder
for-Statements oder zum Increment-Ausdruck
des nächsten einschließenden
for-Statements.
do...while
Das do...while-Statement hat die allgemeine Syntax
do statement while (condition);
und führt das statement aus, bis der condition-Ausdruck
null wird.
Beispiel
string s = "Trust no one!";
int i = -1;
do {
++i;
} while (s[i]);
for
Das for-Statement hat die allgemeine Syntax
for ([init]; [test]; [inc])-Statement
und führt folgende Schritte aus:
Wenn es kein
break oder
return
im statement gibt, muss der inc-Ausdruck (oder das
statement) den Wert des test-Ausdrucks beeinflussen,
oder test selbst muss sich während der Auswertung ändern, um
eine Endlosschleife zu vermeiden.
Beispiel
string s = "Trust no one!";
int sum = 0;
for (int i = 0; s[i]; ++i)
sum += s[i]; // sums up the characters in s
if...else
Das if...else-Statement hat die allgemeine Syntax
if (expression)
t_statement
[else
f_statement]
Der bedingte Ausdruck wird ausgewertet und, wenn der Wert ungleich
null ist, wird t_statement ausgeführt.
Andernfalls wird f_statement ausgeführt, sofern der
else-Teil vorhanden ist.
if (a == 1) {
if (b == 1)
printf("a == 1 and b == 1\n");
}
else
printf("a != 1\n");
return
Eine Funktion mit einem Return-Typ
ungleich void muss mindestens ein return-Statement
mit der Syntax
return expression;
enthalten, wobei
die Auswertung von expression einen Wert ergeben muss,
der kompatibel ist mit dem Return-Typ der Funktion.
switch
Das switch-Statement hat die allgemeine Syntax
switch (sw_exp) {
case case_exp: case_statement
...
[default: def_statement]
}
und erlaubt die Übergabe der Steuerung an eines von mehreren
case-Statements (mit "case" als Label), abhängig vom Wert des Ausdrucks
sw_exp (der vom Integral-Typ sein muss).
Beispiel
string s = "Hello World";
int vowels = 0, others = 0;
for (int i = 0; s[i]; ++i)
switch (toupper(s[i])) {
case 'A':
case 'E':
case 'I':
case 'O':
case 'U': ++vowels;
break;
default: ++others;
}
printf("There are %d vowels in '%s'\n", vowels, s);
while
Das while-Statement hat die allgemeine Syntax
while (condition) statement
und führt statement so lange aus, wie der condition-Ausdruck
ungleich null ist.
Beispiel
string s = "Trust no one!";
int i = 0;
while (s[i])
++i;
Builtins
Builtins sind Konstanten, Variablen, Funktionen und
Statements, die zusätzliche Informationen liefern
und die Manipulation der Daten erlauben.
Builtin-Constants
Builtin-Constants liefern Informationen über
Objekt-Parameter, wie die maximale empfohlene Namenslänge, Flags und so weiter.
EAGLE_VERSION EAGLE-Programm-Versionsnummer (int) EAGLE_RELEASE EAGLE-Programm-Release-Nummer (int) EAGLE_SIGNATURE ein string, der EAGLE-Programmnamen, -Version und -Copyright-Information enthält EAGLE_PATH ein string, der den vollständigen Pfad der ausführbaren EAGLE-Programmdatei enthält EAGLE_DIR ein string, der das Verzeichnis der EAGLE Installation enthält ($EAGLEDIR) EAGLE_HOME ein string, der das Home-Verzeichnis des Benutzers beim Start von EAGLE enthält ($HOME) eagle_epf ein string, der den vollständigen Pfad des gerade benutzten eagle.epf enthält OS_SIGNATURE ein string, der eine Signatur des Betriebssystems enthält (z.B.: Mac..., Windows... oder Linux) REAL_EPSILON die minimale positive real Zahl, so dass 1.0 + REAL_EPSILON != 1.0 REAL_MAX der größte mögliche real Wert REAL_MIN der kleinste mögliche (positive!) real Wert
die kleinste darstellbare Zahl ist -REAL_MAXINT_MAX der größte mögliche int Wert INT_MIN der kleinste mögliche int Wert PI der Wert von "pi" (3.14..., real) usage ein string, der den Text der #usage-Direktive enthält
path_lbr[] Libraries path_dru[] Design Rules path_ulp[] User Language Programs path_scr[] Scripts path_cam[] CAM Jobs path_epf[] Projects
string s = path_lbr[0] + '/' + "mylib.lbr";
used_libraries[] Builtin Variablen
Builtin-Variablen werden verwendet, um zur Laufzeit Informationen zu erhalten.
int argc Anzahl der Argumente, die an den RUN Befehl übergeben wurden string argv[] Argumente, die an den RUN-Befehl übergeben wurden (argv[0] ist der volle ULP-Datei-Name) Builtin-Functions
Builtin-Functions werden für spezielle Aufgaben benötigt,
z.B. formatierte Strings drucken, Daten-Arrays sortieren o.ä.
Alphabetische Auflistung aller Builtin-Functions:
Character-Funktionen
Mit Character-Funktionen manipuliert man einzelne Zeichen.
is...()
int isalpha(char c);
int iscntrl(char c);
int isdigit(char c);
int isgraph(char c);
int islower(char c);
int isprint(char c);
int ispunct(char c);
int isspace(char c);
int isupper(char c);
int isxdigit(char c);
Character-Kategorien
isalnum Buchstaben (A bis Z oder a bis z) oder Digits (0 bis 9) isalpha Buchstaben (A bis Z oder a bis z) iscntrl Delete-Zeichen oder normale Steuerzeichen (0x7F oder 0x00 bis 0x1F) isdigit Digits (0 bis 9) isgraph Druckbare Zeichen (ausser Leerzeichen) islower Kleinbuchstaben (a bis z) isprint Druckbare Zeichen (0x20 bis 0x7E) ispunct Punctuation-Zeichen (iscntrl oder isspace) isspace Space, Tab, Carriage Return, New Line, Vertical Tab oder Formfeed (0x09 bis 0x0D, 0x20) isupper Großbuchstaben (A bis Z) isxdigit Hex-Digits (0 bis 9, A bis F, a bis f) Beispiel
char c = 'A';
if (isxdigit(c))
printf("%c is hex\n", c);
else
printf("%c is not hex\n", c);
to...()
Siehe auch strupr,
strlwr
char toupper(char c);
Die toupper-Funktion gibt den konvertierten Buchstaben zurück,
wenn c ein Kleinbuchstabe ist. Alle anderen Zeichen werden
unverändert zurückgegeben.
Datei-Funktionen
Datei-Funktionen behandeln Datei-Namen, -Größen
und -Zeitstempel.
fileerror()
Siehe auch output,
printf,
fileread
Beispiel
fileerror();
output("file.txt", "wt") {
printf("Test\n");
}
if (fileerror())
exit(1);
fileglob()
Siehe auch dlgFileOpen(),
dlgFileSave()
Hinweis für Windows-Anwender
Das Pfad-Trennzeichen in array ist immer ein Forward-Slash (Schrägstrich).
So ist sichergestellt, dass User-Language-Progamme betriebssystemunabhängig arbeiten.
In pattern wird der backslash ('\') auch als Pfad-Trennzeichen behandelt.
Beispiel
string a[];
int n = fileglob(a, "*.brd");
Dateinamens-Funktionen
Siehe auch Datei-Daten-Funktionen
string fileext(string file);
string filename(string file);
string filesetext(string file, string newext);
fileext liefert die Extension von file.
filename liefert den File-Namen von file (einschließlich Extension).
filesetext liefert file mit Extension auf newext gesetzt.
Beispiel
if (board) board(B) {
output(filesetext(B.name, ".out")) {
...
}
}
Datei-Daten-Funktionen
Siehe auch time,
Dateinamens-Funktionen
int filetime(string filename);
filetime liefert den Timestamp der Datei in Sekunden. Das Format ist kompatibel
mit den Zeit-Funktionen.
Beispiel
board(B)
printf("Board: %s\nSize: %d\nTime: %s\n",
B.name, filesize(B.name),
t2string(filetime(B.name)));
Datei-Einlese-Funktionen
Datei-Einlese-Funktionen werden verwendet um Daten von Dateien einzulesen.
fileread()
Siehe auch lookup,
strsplit,
fileerror
Die tatsächliche Bedeutung des Rückgabewerts hängt vom dest-Typ ab.
Beispiel
char b[];
int nBytes = fileread(b, "data.bin");
string lines[];
int nLines = fileread(lines, "data.txt");
string text;
int nChars = fileread(text, "data.txt");
Mathematische Funktionen
Mathematische Funktionen werden dazu verwendet, matematische
Operationen auszuführen.
Fehlermeldungen
Wenn die Argumente eines mathematischen Funktionsaufrufs zu einem Fehler führen,
zeigen die Fehlermeldungen die aktuellen Werte der Argumente. Deshalb
führen die Statements
real x = -1.0;
real r = sqrt(2 * x);
zur Fehlermeldung
Invalid argument in call to 'sqrt(-2)'
Absolutwert-, Maximum- und Minimum-Funktion
type max(type x, type y);
type min(type x, type y);
max liefert das Maximum von x und y.
min liefert das Minimum von x und y.
Beispiel
real x = 2.567, y = 3.14;
printf("The maximum is %f\n", max(x, y));
Rundungs-Funktionen
real floor(real x);
real frac(real x);
real round(real x);
real trunc(real x);
floor liefert den größten Integer-Wert nicht größer als x.
frac liefert den Dezimalbruch von x.
round liefert x gerundet auf den nächsten Integer-Wert.
trunc liefert den ganzzahligen Teil von x.
Beispiel
real x = 2.567;
printf("The rounded value of %f is %f\n", x, round(x));
Trigonometrische Funktionen
real asin(real x);
real atan(real x);
real cos(real x);
real sin(real x);
real tan(real x);
asin liefert den arc-sinus von x.
atan liefert den arc-tangens von x.
cos liefert den cosinus von x.
sin liefert den sinus von x.
tan liefert den tangens von x.
Konstanten
PI der Wert von "pi" (3.14...) Anmerkung
Winkelangaben erfolgen in rad (Bogenmaß).
Beispiel
real x = PI / 2;
printf("The sine of %f is %f\n", x, sin(x));
Exponential-Funktionen
real log(real x);
real log10(real x);
real pow(real x, real y);
real sqrt(real x);
log liefert den natürlichen Logarithmus von x.
log10 liefert den Zehnerlogarithmus von x.
pow liefert den Wert von x hoch y.
sqrt liefert die Quadratwurzel von x.
Beispiel
real x = 2.1;
printf("The square root of %f is %f\n", x, sqrt(x));
printf("The 3rd root of %f is %f\n", x, pow(x, 1.0/3));
Sonstige Funktionen
Sonstige Funktionen werden für weitere Aufgaben benötigt.
Konfigurations-Parameter
Die cfgget-Funktion liefert den Wert, der mit einem vorangegangenen
Aufruf von cfgset() gespeichert wurde.
void cfgset(string name, string value);
Parameternamen unterscheiden Groß-/Kleinschreibung.
mytool.MyParam
speichern.
EAGLE:Option.XrefLabelFormat
Beachten Sie bitte, dass es keine Dokumentation aller internen EAGLE-Parameter
und deren Speicherung in der eaglerc-Datei gibt. Seien Sie auch besonders
vorsichtig, wenn Sie solche Parameter verändern! Wie bei der eaglerc-Datei selbst
gilt auch hier, dass Sie diese Parameter nur manipulieren sollten, wenn Sie sich
darüber im Klaren sind, was Sie tun! Bei einigen EAGLE-Parametern kann ein
Neustart von EAGLE erforderlich sein, damit Änderungen wirksam werden.
ULP:mytool.MyParam
Beispiel
string MyParam = cfgget("mytool.MyParam", "SomeDefault");
MyParam = "OtherValue";
cfgset("mytool.MyParam", MyParam);
country()
Siehe auch language
Example
dlgMessageBox("Your country code is: " + country());
exit()
Siehe auch RUN
void exit(string command);
Wird result (integer) angegeben, wird es als Rückgabewert
des Programms benutzt.
Wird ein command-String angegeben, wird dieser Befehl genauso ausgeführt, als
wäre über die Kommandozeile direkt nach dem RUN-Befehl eingegeben worden. In diesem
Fall wird der Rückgabewert des ULPs auf EXIT_SUCCESS gesetzt.
Konstanten
EXIT_SUCCESS Rückgabewert für erfolgreiche Programmausführung (Wert 0) EXIT_FAILURE Rückgabewert für fehlerhafte Programmausführung (Wert -1) fdlsignature()
Die fdlsignature-Funktion wird benutzt für die Berechnung einer digitalen
Signatur bei der Verwendung von Premier Farnells Design Link Interface.
language()
See also country
Beispiel
string I18N[] = {
"en\v"
"de\v"
"it\v"
,
"I18N Demo\v"
"Beispiel für Internationalisierung\v"
"Esempio per internazionalizzazione\v"
,
"Hello world!\v"
"Hallo Welt!\v"
"Ciao mondo!\v"
,
"+Ok\v"
"+Ok\v"
"+Approvazione\v"
,
"-Cancel\v"
"-Abbrechen\v"
"-Annullamento\v"
};
int Language = strstr(I18N[0], language()) / 3;
string tr(string s)
{
string t = lookup(I18N, s, Language, '\v');
return t ? t : s;
}
dlgDialog(tr("I18N Demo")) {
dlgHBoxLayout dlgSpacing(350);
dlgLabel(tr("Hello world!"));
dlgHBoxLayout {
dlgPushButton(tr("+Ok")) dlgAccept();
dlgPushButton(tr("-Cancel")) dlgReject();
}
};
lookup()
Siehe auch fileread,
strsplit
string lookup(string array[], string key, string field_name[, char separator]);
Existiert dieses Feld nicht oder wird kein passender String für key gefunden,
kommt ein leerer String zurück.
Es bleibt dem Benutzer überlassen, sicherzustellen, dass der erste Record tatsächlich
Header-Informationen enthält.
Es wird empfohlen den "tab"-Separator (default) zu verwenden, der diese Probleme nicht
kennt (kein Feld kann einen Tabulator enthalten).
Name;Manufacturer;Code;Price
7400;Intel;I-01-234-97;$0.10
68HC12;Motorola;M68HC1201234;$3.50
Beispiel
string OrderCodes[];
if (fileread(OrderCodes, "ordercodes") > 0) {
if (lookup(OrderCodes, "", "Code", ';')) {
schematic(SCH) {
SCH.parts(P) {
string OrderCode;
// both following statements do exactly the same:
OrderCode = lookup(OrderCodes, P.device.name, "Code", ';');
OrderCode = lookup(OrderCodes, P.device.name, 2, ';');
}
}
}
else
dlgMessageBox("Missing 'Code' field in file 'ordercodes');
}
palette()
Die palette-Funktion liefert den ARGB-Wert der Farbe mit dem gegebenen
index (welcher im Bereich 0..PALETTE_ENTRIES-1 liegen kann). Falls type
nicht angegeben ist (oder den Wert -1 hat) wird die Palette verwendet, die dem
aktuellen Editor-Fenster zugewiesen ist. Ansonsten gibt type an, welche
Palette verwendet werden soll (PALETTE_BLACK, PALETTE_WHITE oder PALETTE_COLORED).
Konstanten
PALETTE_TYPES die Anzahl der Palette-Typen (3) PALETTE_BLACK die Palette für schwarzen Hintergrund (0) PALETTE_WHITE die Palette für weißen Hintergrund (1) PALETTE_COLORED die Palette für farbigen Hintergrund (2) PALETTE_ENTRIES die Anzahl der Farben pro Palette (64) sleep()
Siehe auch time()
sort()
Die sort-Funktion sortiert entweder direkt ein array1,
oder sie sortiert einen Satz von Arrays (beginnend mit array2),
wobei array1 ein int-Array ist, das als Pointer-Array
verwendet wird.
Einzelnes Array sortieren
Wenn die sort-Funktion mit einem einzelnen Arrray aufgerufen wird,
wird dieses Array direkt sortiert, wie im folgenden Beispiel:
string A[];
int n = 0;
A[n++] = "World";
A[n++] = "Hello";
A[n++] = "The truth is out there...";
sort(n, A);
for (int i = 0; i < n; ++i)
printf(A[i]);
Einen Satz von Arrays sortieren
Wenn die sort-Funktion mit mehr als einem Array aufgerufen wird,
muss das erste Array ein int-Array sein, während alle anderen
Arrays von jedem Typ sein können. Sie enthalten die zu sortierenden Daten.
Das folgende Beispiel zeigt, wie das erste Array als Pointer verwendet
wird:
numeric string Nets[], Parts[], Instances[], Pins[];
int n = 0;
int index[];
schematic(S) {
S.nets(N) N.pinrefs(P) {
Nets[n] = N.name;
Parts[n] = P.part.name;
Instances[n] = P.instance.name;
Pins[n] = P.pin.name;
++n;
}
sort(n, index, Nets, Parts, Instances, Pins);
for (int i = 0; i < n; ++i)
printf("%-8s %-8s %-8s %-8s\n",
Nets[index[i]], Parts[index[i]],
Instances[index[i]], Pins[index[i]]);
}
Die Idee dahinter ist, dass an ein Netz mehrere Pins angeschlossen sein können.
In einer Netzliste wollen Sie unter Umständen die Netznamen sortieren und
innerhalb eines Netzes die Bauteilnamen, und so weiter.
status()
Siehe auch dlgMessageBox()
system()
Die system-Funktion führt das im command angegebene externe
Programm aus und wartet, bis dieses beendet ist.
Ein-/Ausgabe-Umleitung
Soll ein externes Programm seine Eingaben von einer bestimmten Datei lesen
(bzw. seine Ausgaben in eine bestimmte Datei schreiben), so muss die Ein- bzw.
Ausgabe umgeleitet werden.
Unter Linux und Mac OS X geschieht dies einfach durch Anhängen von '<'
bzw. '>' an die Befehlszeile, jeweils gefolgt von der gewünschten Datei,
wie in
system("program < infile > outfile");
womit program gestartet wird und es von infile liest und
nach outfile schreibt.
Unter Windows muss explizit ein Kommando-Prozessor gestartet werden um dies zu
ermöglichen, wie in
system("cmd.exe /c program < infile > outfile");
(auf DOS-basierten Windows-Systemen verwenden Sie command.com anstatt cmd.exe).
Ausführung im Hintergrund
Die system-Funktion wartet bis das angegebene Programm beendet ist.
Dies ist sinnvoll für Programme, die nur wenige Sekunden laufen, oder die
Aufmerksamkeit des Benutzers komplett an sich ziehen.
Läuft ein externes Programm längere Zeit, und Sie wollen, dass der system()-Aufruf
sofort zurückkehrt, ohne zu warten, bis das Programm beendet ist, so können Sie
unter Linux und Mac OS X einfach ein '&' an die Befehlszeile anfügen,
wie in
system("program &");
Unter Windows muss explizit ein Kommando-Prozessor gestartet werden um dies zu
ermöglichen, wie in
system("cmd.exe /c start program");
(auf DOS-basierten Windows-Systemen verwenden Sie command.com anstatt cmd.exe).
Beispiel
int result = system("simulate -f filename");
Hiermit würde ein Simulationsprogramm aufgerufen und diesem eine Datei übergeben
werden, die das ULP gerade erzeugt hat.
Beachten Sie bitte, dass simulate hier nur ein Beispiel und nicht Bestandteil
des EAGLE-Paketes ist!
int MySystem(string command)
{
if (dlgMessageBox("!Ok to execute the following command?<p><tt>" + command + "</tt>", "&Yes", "&No") == 0)
return system(command);
return -1;
}
int result = MySystem("simulate -f filename");
Einheiten-Konvertierung
Siehe auch UL_GRID
real u2mic(int n);
real u2mil(int n);
real u2mm(int n);
int inch2u(real n);
int mic2u(real n);
int mil2u(real n);
int mm2u(real n);
u2mic liefert den Wert von n in Micron (1/1000mm).
u2mil liefert den Wert von n in Mil (1/1000inch).
u2mm liefert den Wert von n in Millimeter.
inch2u liefert den Wert von n (der in Inch vorliegt) als interne Einheiten.
mic2u liefert den Wert von n (der in Micron vorliegt) als interne Einheiten.
mil2u liefert den Wert von n (der in Mil vorliegt) als interne Einheiten.
mm2u liefert den Wert von n (der in Millimeter vorliegt) als interne Einheiten.
Beispiel
board(B) {
B.elements(E) {
printf("%s at (%f, %f)\n", E.name,
u2mm(E.x), u2mm(E.y));
}
}
Netzwerk-Funktionen
Netzwerk-Funktionen dienen der Kommunikation mit entfernten Rechnern im Internet.
neterror()
Siehe auch netget,
netpost
Beispiel
string Result;
if (netget(Result, "http://web.cadsoft.de/cgi-bin/http-test?see=me&hear=them") >= 0) {
// process Result
}
else
dlgMessageBox(neterror());
netget()
Siehe auch netpost,
neterror,
fileread
Im Fehlerfall wird ein negativer Wert zurückgegeben und
neterror()
kann aufgerufen werden, um dem Benutzer eine Fehlermeldung anzuzeigen.
Der url muß das zu verwendende Protokoll enthalten (HTTP, HTTPS oder FTP) und kann
Parameter der Form Name=Wert enthalten, wie in
http://web.cadsoft.de/cgi-bin/http-test?see=me&hear=them
ftp://ftp.cadsoft.de/eagle/userfiles/README
Falls für den Zugriff auf den fernen Rechner eine Benutzerkennung und ein Passwort
notwendig ist, kann dieses in folgender Form angegeben werden:
https://userid:password@www.secret-site.com/...
Wenn dest ein Character-Array ist, wird das Ergebnis als rohe Binärdaten
behandelt und der Rückgabewert entspricht der Anzahl der Bytes, die in dem Character-Array
gespeichert wurden.
SSL-Verbindungen
Für SSL-Verbindungen (Anfrage per HTTPS) sind Zertifikate erforderlich, die auf manchen
Systemen fehlen können oder deren Gültigkeit abgelaufen sein kann. Die Verbindung scheitert
dann mit entsprechender Fehlermeldung, die Sie mit neterror() abfragen können.
Anhand der Fehlermeldung sollte es möglich zu sein, fehlende Zertifikate nachzuinstallieren
oder zu aktualisieren und die Verbindung so zum Laufen zu bringen.
Wie dies durchzuführen ist, hängt von Ihrem System ab (In Windows z.B. unter
Systemsteuerung/Internetoptionen usw.).
Beispiel
string Result;
if (netget(Result, "http://web.cadsoft.de/cgi-bin/http-test?see=me&hear=them") >= 0) {
// process Result
}
else
dlgMessageBox(neterror());
netpost()
Siehe auch netget,
neterror,
fileread
Im Fehlerfall wird ein negativer Wert zurückgegeben und
neterror()
kann aufgerufen werden, um dem Benutzer eine Fehlermeldung anzuzeigen.
Wird content_type angegeben, so überschreibt das den Standardwert von
of "text/html; charset=utf-8".
Der url muß das zu verwendende Protokoll enthalten (HTTP oder HTTPS).
https://userid:password@www.secret-site.com/...
Wenn dest ein Character-Array ist, wird das Ergebnis als rohe Binärdaten
behandelt und der Rückgabewert entspricht der Anzahl der Bytes, die in dem Character-Array
gespeichert wurden.
Beispiel
string Data = "see=me\nhear=them";
string Result;
if (netpost(Result, "http://web.cadsoft.de/cgi-bin/http-test", Data) >= 0) {
// process Result
}
else
dlgMessageBox(neterror());
Print-Funktionen
Print-Funktionen dienen zur Ausgabe formatierter Strings.
printf()
Siehe auch sprintf,
output,
fileerror
Format-String
Der Format-String steuert, wie die Argumente konvertiert, formatiert
und ausgegeben werden. Es müssen genau so viele Argumente vorhanden
sein, wie für das Format erforderlich sind. Die Zahl und der Typ
der Argumente werden für jedes Format geprüft, und wenn sie nicht
den Anforderungen entsprechen, wird eine Fehlermeldung ausgegeben.
Format-Specifier
Ein Format-Specifier hat folgende Form:
Konvertiertyp-Zeichen
d signed decimal int o unsigned octal int u unsigned decimal int x unsigned hexadecimal int (with a, b,...) X unsigned hexadecimal int (with A, B,...) f signed real value von der Form [-]dddd.dddd e signed real value von der Form [-]d.dddde[±]ddd E wie e, aber mit E für Exponent g signed real value entweder wie e oder f, abhängig vom gegebenen Wert und Präzision G wie g, aber mit E für Exponent, wenn e-Format verwendet wird c einzelnes Zeichen s Character-String % das %-Zeichen wird ausgegeben Flag-Zeichen
Die folgenden Flag-Zeichen können in jeder Kombination und Reihenfolge
auftreten.
"-" das formatierte Argument wird innerhalb des Feldes linksbündig ausgegeben; normalerweise ist die Ausgabe rechtsbündig "+" ein positiver Wert mit Vorzeichen wird mit Pluszeichen (+) ausgegeben; normalerweise werden nur negative Werte mit Vorzeichen ausgegeben " " ein positiver Wert mit Vorzeichen wird mit Leerzeichen am Anfang ausgegeben; wenn "+" und " " angegeben sind, überschreibt "+" die Angabe " " Width-Specifier
Der Width-Specifier setzt die minimale Feldbreite für einen Ausgabewert.
n Mindestens n Zeichen werden ausgegeben. Wenn der Ausgabewert weniger als n Zeichen hat, wird er mit Leerzeichen aufgefüllt (rechts wenn das "-"-Flag gesetzt ist, sonst links). 0n Mindestens n Zeichen werden ausgegeben. Wenn der Ausgabewert weniger als n Zeichen hat, wird links mit Nullen aufgefüllt. * Die Argument-Liste liefert den Width-Specifier, der dem eigentlichen (zu formatierenden) Argument vorausgehen muss. Präzisions-Specifier
Ein Präzisions-Specifier beginnt immer mit einem Punkt (.), um
ihn von einem vorangehenden Width-Specifier zu trennen.
Dann wird, wie bei "Width", die Präzision entweder direkt mit einem
Dezimalstellen-String oder indirekt mit einem Stern (*) angegeben.
Wenn Sie * verwenden, legt das Argument, das dem (mit diesem Format formatierten) Argument im Aufruf vorhergeht,
(und vom Typ int sein muss) die Präzision fest.
keiner Präzision auf Standardwert gesetzt. .0 Für int-Typen, Präzision wird auf Default gesetzt; für real-Typen, kein Dezimalpunkt wird ausgegeben. .n n Zeichen oder n Dezimalstellen werden ausgegeben. Wenn der Ausgabewert mehr als n Zeichen hat, kann er abgeschnitten oder gerundet werden (abhängig vom Typ-Zeichen). * Die Argument-Liste liefert den Präzisions-Specifier, der dem eigentlichen (zu formatierenden) Argument vorausgehen muss. Default-Präzisionswerte
douxX 1 eEf 6 gG alle signifikanten Stellen c keine Auswirkung s gesamten String ausgeben Wie die Präzisionsangabe (.n) die Konvertierung beeinflusst
douxX .n spezifiziert dass mindestens n Zeichen ausgegeben werden. Wenn das Eingangs-Argument weniger als n Stellen hat, wird der Ausgangswert links mit Nullen aufgefüllt. Wenn das Eingangs-Argument mehr als n Stellen hat, wir die Ausgabe nicht abgeschnitten. eEf .n spezifiziert dass n Zeichen nach dem Dezimalpunkt ausgegeben werden, und die letzte ausgegebene Stelle wird gerundet. gG .n spezifiziert dass höchstens n signifikante Stellen ausgegeben werden. c .n hat keinen Einfluss auf die Ausgabe. s .n spezifiziert dass nicht mehr als n Zeichen gedruckt werden. Der binäre Wert 0
Im Gegensatz zu sprintf kann die printf-Funktion den
binären Wert 0 (0x00) ausgeben.
char c = 0x00;
printf("%c", c);
Beispiel
int i = 42;
real r = 3.14;
char c = 'A';
string s = "Hello";
printf("Integer: %8d\n", i);
printf("Hex: %8X\n", i);
printf("Real: %8f\n", r);
printf("Char: %-8c\n", c);
printf("String: %-8s\n", s);
sprintf()
Siehe auch printf
Format-String
Siehe printf.
Der binäre Wert 0
Bitte beachten Sie, dass sprintf den binären Wert 0 (0x00) nicht verarbeiten
kann. Wenn der Ergebnis-String 0x00 enthält, werden die folgenden Zeichen ignoriert.
Verwenden Sie printf um binäre Daten auszugeben.
Beispiel
string result;
int number = 42;
sprintf(result, "The number is %d", number);
String-Funktionen
String-Funktionen werden dazu verwendet, Character-Strings zu
manipulieren.
strchr()
Siehe auch strrchr,
strstr
Beispiel
string s = "This is a string";
char c = 'a';
int pos = strchr(s, c);
if (pos >= 0)
printf("The character %c is at position %d\n", c, pos);
else
printf("The character was not found\n");
strjoin()
Siehe auch strsplit,
lookup,
fileread
Beispiel
string a[] = { "Field 1", "Field 2", "Field 3" };
string s = strjoin(a, ':');
strlen()
Beispiel
string s = "This is a string";
int l = strlen(s);
printf("The string is %d characters long\n", l);
strlwr()
Siehe auch strupr,
tolower
Beispiel
string s = "This Is A String";
string r = strlwr(s);
printf("Prior to strlwr: %s - after strlwr: %s\n", s, r);
strrchr()
Siehe auch strchr,
strrstr
Beispiel
string s = "This is a string";
char c = 'a';
int pos = strrchr(s, c);
if (pos >= 0)
printf("The character %c is at position %d\n", c, pos);
else
printf("The character was not found\n");
strrstr()
Siehe auch strstr,
strrchr
Beispiel
string s1 = "This is a string", s2 = "is a";
int pos = strrstr(s1, s2);
if (pos >= 0)
printf("The substring starts at %d\n", pos);
else
printf("The substring was not found\n");
strsplit()
Siehe auch strjoin,
lookup,
fileread
Beispiel
string a[];
int n = strsplit(a, "Field 1:Field 2:Field 3", ':');
strstr()
Siehe auch strrstr,
strchr,
strxstr
Beispiel
string s1 = "This is a string", s2 = "is a";
int pos = strstr(s1, s2);
if (pos >= 0)
printf("The substring starts at %d\n", pos);
else
printf("The substring was not found\n");
strsub()
Beispiel
string s = "This is a string";
string t = strsub(s, 4, 7);
printf("The extracted substring is: %s\n", t);
strtod()
Siehe auch strtol
Beispiel
string s = "3.1415";
real r = strtod(s);
printf("The value is %f\n", r);
strtol()
Siehe auch strtod
Beispiel
string s = "1234";
int i = strtol(s);
printf("The value is %d\n", i);
strupr()
Siehe auch strlwr,
toupper
Beispiel
string s = "This Is A String";
string r = strupr(s);
printf("Prior to strupr: %s - after strupr: %s\n", s, r);
strxstr()
Siehe auch strstr,
strchr,
strrstr
Einzelheiten zu regulären Ausdrücken finden Sie zum Beispiel in dem Buch
Reguläre Ausdrücke von Jeffrey E. F. Friedl.
Beispiel
string s1 = "This is a string", s2 = "i.*a";
int len = 0;
int pos = strxstr(s1, s2, 0, len);
if (pos >= 0)
printf("The substring starts at %d and is %d charcaters long\n", pos, len);
else
printf("The substring was not found\n");
URN Funktionen
URN Funktionen sind zur Bearbeitung von URNs.
urnbase()
Beispiel
string urn = "urn:adsk.eagle:footprint:123/4";
string base = urnbase(urn);
printf("Die Basis-URN ist: %s\n", base);
urnversion()
Beispiel
string urn = "urn:adsk.eagle:footprint:123/4";
int version = urnversion(urn);
printf("Die URN-Version ist: %d\n", version);
Zeit-Funktionen
Zeit-Funktionen werden dazu verwendet, die Zeit- und Datums-
Informationen zu erhalten und weiterzuverarbeiten.
time()
Siehe auch Zeit-Konvertierungen,
filetime
Beispiel
int CurrentTime = time();
timems()
Siehe auch Zeit-Konvertierungen,
filetime,
timems()
Beispiel
int elapsed = timems();
Zeit-Konvertierungen
Siehe auch time
int t2dayofweek(int t);
int t2hour(int t);
int t2minute(int t);
int t2month(int t);
int t2second(int t);
int t2year(int t);
string t2string(int t[, string format]);
t2dayofweek liefert den Tag der Woche (0=sunday..6)
t2hour liefert die Stunde (0..23)
t2minute liefert die Minute (0..59)
t2month liefert den Monat (0..11)
t2second liefert die Sekunde (0..59)
t2year liefert das Jahr (einschließlich Jahrhundert!)
t2string liefert einen formatierten String, der Datum und Zeit enthält
d der Tag als Zahl ohne führende Null (1 bis 31) dd der Tag als Zahl mit führender Null (01 bis 31) ddd der abgekürzte, landesspezifische Name des Tages (z.B. "Mon" bis "Son") dddd der ausgeschriebene, landesspezifische Name des Tages (z.B. "Montag" bis "Sonntag") M der Monat als Zahl ohne führende Null (1-12) MM der Monat als Zahl mit führender Null (01-12) MMM der abgekürzte, landesspezifische Name des Monats (z.B. "Jan" bis "Dez") MMMM der ausgeschriebene, landesspezifische Name des Monats (z.B. "Januar" bis "Dezember") yy das Jahr als zweistellige Zahl (00-99) yyyy das Jahr als vierstellige Zahl h die Stunde ohne führende Null (0 bis 23 bzw. 1 bis 12 in AM/PM-Schreibweise) hh die Stunde mit führender Null (00 bis 23 bzw. 01 bis 12 in AM/PM-Schreibweise) m die Minute ohne führende Null (0 bis 59) mm die Minute mit führender Null (00 bis 59) s die Sekunde ohne führende Null (0 bis 59) ss die Sekunde mit führender Null (00 bis 59) z die Millisekunden ohne führende Nullen (immer 0, da die gegebene Zeit nur eine Auflösung von einer Sekunde hat) zzz die Millisekunden mit führenden Nullen (immer 000, da die gegebene Zeit nur eine Auflösung von einer Sekunde hat) AP AM/PM-Schreibweise benutzen (AP wird durch "AM" bzw. "PM" ersetzt) ap am/pm-Schreibweise benutzen (ap wird durch "am" bzw. "pm" ersetzt) U die gegebene Zeit in UTC anzeigen (muß das erste Zeichen sein; standardmäßig erfolgt die Anzeige in Ortszeit) Beispiel
int t = time();
printf("It is now %02d:%02d:%02d\n",
t2hour(t), t2minute(t), t2second(t));
printf("ISO time is %s\n", t2string(t, "Uyyyy-MM-dd hh:mm:ss"));
Objekt-Funktionen
Objekt-Funktionen werden dazu verwendet, allgemeine Informationen von
Objekten zu erfragen.
clrgroup()
Siehe auch ingroup(),
setgroup(),
GROUP-Befehl
Beispiel
board(B) {
B.elements(E)
clrgroup(E);
}
ingroup()
Siehe auch clrgroup(),
setgroup(),
GROUP-Befehl
UL_CONTACTREF und UL_PINREF liefern einen Wert ungleich 0 wenn der referenzierte UL_CONTACT bzw. UL_PIN
in der Gruppe liegt.
Für andere nicht selektierbare Objekte wie UL_GRID, UL_VARIANT oder Wires eines UL_TEXT- oder
UL_FRAME-Objektes ist das Verhalten von ingroup() undefiniert und sollte daher nicht
verwendet werden.
Ermitteln des Kontextmenü-Objekts
Wenn das ULP von einem Kontextmenü aus gestartet wurde, wird aus dem Auswahlobjekt
eine einelementige Gruppe gebildet, so dass es mit ingroup() identifiziert werden kann
(siehe auch SET und RUN).
Beispiel
output("group.txt") {
board(B) {
B.elements(E) {
if (ingroup(E))
printf("Element %s is in the group\n", E.name);
}
}
}
setgroup()
Siehe auch clrgroup(),
ingroup(),
GROUP-Befehl
Es gilt nicht für UL_LIBRARY und UL_SCHEMATIC. Untergeordnete Objekte, die
nicht oder nicht einzeln selektierbar sind, werden nicht markiert
(z.B. UL_GRID- oder UL_VARIANT-Objekte oder Wires von UL_TEXT- oder UL_FRAME-Objekten).
Details zu den Objekt-Hierarchien siehe Objekt-Typen.
Beispiel
board(B) {
B.elements(E)
setgroup(E);
}
setvariant()
Siehe auch variant(),
UL_VARIANTDEF,
VARIANT-Befehl
Beispiel
if (setvariant("My variant")) {
// do something ...
else
// error: unknown variant
variant()
Siehe auch setvariant(),
UL_VARIANTDEF,
VARIANT-Befehl
Beispiel
string CurrentVariant = variant();
XML-Funktionen
XML-Funktionen werden dazu verwendet, XML-Daten (Extensible Markup Language)
zu verarbeiten.
xmlattribute(), xmlattributes()
Siehe auch xmlelement(),
xmltags(),
xmltext()
int xmlattributes(string &array[], string xml, string tag);
Beispiel
// String XML contains the following data:
//<root>
// <body abc="def" xyz="123">
// ...
// </body>
//</root>
string s[];
int n = xmlattributes(s, XML, "root/body");
// Result: { "abc", "xyz" }
string s = xmlattribute(XML, "root/body", "xyz");
// Result: "123"
xmlelement(), xmlelements()
Siehe auch xmltags(),
xmlattribute(),
xmltext()
int xmlelements(string &array[], string xml, string tag);
Falls tag mehrfach in xml vorkommt, wird das erste davon geliefert.
Benutzen Sie xmlelements um alle Instanzen zu bekommen.
Beispiel
// String XML contains the following data:
//<root>
// <body>
// <contents>
// <string>Some text 1</string>
// <any>anything 1</any>
// </contents>
// <contents>
// <string>Some text 2</string>
// <any>anything 2</any>
// </contents>
// <appendix>
// <string>Some text 3</string>
// </appendix>
// </body>
//</root>
//
string s = xmlelement(XML, "root/body/appendix");
// Result: " <appendix>\n <string>Some text 3</string>\n </appendix>\n"
string s[];
int n = xmlelements(s, XML, "root/body/contents");
// Result: { " <contents>\n <string>Some text 1</string>\n <any>anything 1</any>\n </contents>\n",
// " <contents>\n <string>Some text 2</string>\n <any>anything 2</any>\n </contents>\n"
// }
xmltags()
Siehe auch xmlelement(),
xmlattribute(),
xmltext()
Beispiel
//String XML contains the following data:
//<root>
// <body>
// <contents>
// <string>Some text 1</string>
// <any>anything 1</any>
// </contents>
// <contents>
// <string>Some text 2</string>
// <any>anything 2</any>
// </contents>
// <appendix>
// <string>Some text 3</string>
// </appendix>
// </body>
//</root>
//
string s[];
int n = xmltags(s, XML, "root/body");
// Result: { "contents", "appendix" }
int n = xmltags(s, XML, "");
// Result: "root"
xmltext()
Siehe auch xmlelement(),
xmlattribute(),
xmltags()
Beispiel
// String XML contains the following data:
//<root>
// <body>
// Some <b>text</b>.
// </body>
//</root>
//
string s = xmltext(XML, "root/body");
// Result: "\n Some text.\n "
Builtin-Statements
Builtin-Statements werden im allgemeinen dazu verwendet,
einen Kontext zu eröffnen, der den Zugriff auf Datenstrukturen und Dateien
erlaubt.
name(parameters) statement
wobei name der Name des Builtin-Statement ist, parameters
steht für einen oder mehrere Parameter, und statement ist der Code,
der innerhalb des vom Builtin-Statement geöffneten Kontexts ausgeführt wird.
board(B) {
B.elements(E) printf("Element: %s\n", E.name);
B.signals(S) printf("Signal: %s\n", S.name);
}
Die folgenden Builtin-Statements sind verfügbar:
board()
Siehe auch schematic,
library
Prüfen, ob ein Board geladen ist
Mit dem board-Statement ohne Angabe eines Arguments können
Sie prüfen, ob das gegenwärtige Editor-Fenster ein Board enthält.
In diesem Fall verhält sich board wie eine Integer-Konstante,
die den Wert 1 zurückgibt, sofern ein Board geladen ist.
Andernfalls wird der Wert 0 zurückgegeben.
Zugriff auf ein Board von einem Schaltplan aus
Wenn das gegenwärtige Editor-Fenster einen Schaltplan enthält,
können Sie trotzdem auf das zugehörige Board zugreifen, indem Sie
dem board-Statement den Präfix project voranstellen,
wie in
project.board(B) { ... }
Das öffnet einen Board-Kontext, unabhängig davon, ob das gegenwärtige
Editor-Fenster ein Board oder einen Schaltplan enthält. Allerdings muss
es auf dem Desktop ein Fenster geben, das dieses Board enthält!
Beispiel
if (board)
board(B) {
B.elements(E)
printf("Element: %s\n", E.name);
}
deviceset()
Siehe auch package,
symbol,
library
Prüfen, ob ein Device-Set geladen ist
Mit dem deviceset-Statement ohne Angabe eines Arguments können
Sie prüfen, ob das gegenwärtige Editor-Fenster ein Device-Set enthält.
In diesem Fall verhält sich deviceset wie eine Integer-Konstante,
die den Wert 1 zurückgibt, sofern ein Device-Set geladen ist.
Andernfalls wird der Wert 0 zurückgegeben.
Beispiel
if (deviceset)
deviceset(D) {
D.gates(G)
printf("Gate: %s\n", G.name);
}
library()
Siehe auch board,
schematic,
deviceset,
package,
symbol
Prüfen, ob eine Bibliothek geladen ist
Mit dem library-Statement ohne Angabe eines Arguments können
Sie prüfen, ob das gegenwärtige Editor-Fenster eine Bibliothek enthält.
In diesem Fall verhält sich library wie eine Integer-Konstante,
die den Wert 1 zurückgibt, sofern eine Bibliothek geladen ist.
Andernfalls wird der Wert 0 zurückgegeben.
Beispiel
if (library)
library(L) {
L.devices(D)
printf("Device: %s\n", D.name);
}
module()
Siehe auch board,
library,
schematic,
sheet
Prüfen, ob gerade ein Modul editiert wird
Mit dem module-Statement ohne Angabe eines Arguments können
Sie prüfen, ob im Editor-Fenster gerade ein Modul editiert wird.
In diesem Fall verhält sich module wie eine Integer-Konstante,
die den Wert 1 zurückgibt, sofern ein Modul editiert wird.
Andernfalls wird der Wert 0 zurückgegeben.
Beispiel
if (module)
module(M) {
printf("Module: %s\n", M.name);
}
output()
Siehe auch printf,
fileerror
Datei-Modi
Der mode-Parameter definiert, wie die Datei geöffnet werden soll.
Wenn kein mode-Parameter angegeben ist, gilt der Standardwert "wt".
a an existierende Datei anhängen oder neue Datei anlegen, falls die Datei nicht existiert w neue Datei anlegen (existierende überschreiben) t Datei im Textmodus öffnen b Datei im Binärmodus öffnen D Datei am Ende der EAGLE-Sitzung löschen (funktioniert nur zusammen mit w) F diesen Dateinamen erzwingen (normalerweise werden *.brd, *.sch und *.lbr abgewiesen) Verschachtelte Output-Statements
output-Statements können verschachtelt werden,
solange genügend Datei-Handles verfügbar sind - vorausgesetzt, es greifen
nicht mehrere aktive output-Statements auf dieselbe Datei zu.
Beispiel
void PrintText(string s)
{
printf("This also goes into the file: %s\n", s);
}
output("file.txt", "wt") {
printf("Directly printed\n");
PrintText("via function call");
}
package()
Siehe auch library,
deviceset,
symbol
Prüfen, ob ein Package geladen ist
Mit dem package-Statement ohne Angabe eines Arguments können
Sie prüfen, ob das gegenwärtige Editor-Fenster ein Package enthält.
In diesem Fall verhält sich package wie eine Integer-Konstante,
die den Wert 1 zurückgibt, sofern ein Package geladen ist.
Andernfalls wird der Wert 0 zurückgegeben.
Beispiel
if (package)
package(P) {
P.contacts(C)
printf("Contact: %s\n", C.name);
}
schematic()
Siehe auch board,
library,
module,
sheet
Prüfen, ob ein Schaltplan geladen ist
Mit dem schematic-Statement ohne Angabe eines Arguments können
Sie prüfen, ob das gegenwärtige Editor-Fenster einen Schaltplan enthält.
In diesem Fall verhält sich schematic wie eine Integer-Konstante,
die den Wert 1 zurückgibt, sofern ein Schaltplan geladen ist.
Andernfalls wird der Wert 0 zurückgegeben.
Zugriff auf einen Schaltplan vom Board aus
Wenn das gegenwärtige Editor-Fenster ein Board enthält,
können Sie trotzdem auf den zugehörigen Schaltplan zugreifen, indem Sie
dem schematic-Statement den Präfix project voranstellen,
wie in
project.schematic(S) { ... }
Das öffnet einen UL_SCHEMATIC-Kontext, unabhängig davon, ob das gegenwärtige
Editor-Fenster ein Board oder einen Schaltplan enthält. Allerdings muss
es auf dem Desktop ein Fenster geben, das diesen Schaltplan enthält!
Zugriff auf die gegenwärtige Seite eines Schaltplans
Verwenden Sie das sheet-Statement,
um direkt auf die gegenwärtig geladene Schaltplanseite zuzugreifen.
Zugriff auf das gerade editierte Modul
Verwenden Sie das module-Statement,
um direkt auf das gerade editierte Modul zuzugreifen.
Beispiel
if (schematic)
schematic(S) {
S.parts(P)
printf("Part: %s\n", P.name);
}
sheet()
Siehe auch schematic
Prüfen, ob eine Schaltplanseite geladen ist
Mit dem sheet-Statement ohne Angabe eines Arguments können
Sie prüfen, ob das gegenwärtige Editor-Fenster eine Schaltplanseite enthält.
In diesem Fall verhält sich sheet wie eine Integer-Konstante,
die den Wert 1 zurückgibt, sofern eine Schaltplanseite geladen ist.
Andernfalls wird der Wert 0 zurückgegeben.
Beispiel
if (sheet)
sheet(S) {
S.instances(I)
printf("Instance: %s\n", I.name);
}
symbol()
Siehe auch library,
deviceset,
package
Prüfen, ob ein Symbol geladen ist
Mit dem symbol-Statement ohne Angabe eines Arguments können
Sie prüfen, ob das gegenwärtige Editor-Fenster ein Symbol enthält.
In diesem Fall verhält sich symbol wie eine Integer-Konstante,
die den Wert 1 zurückgibt, sofern ein Symbol geladen ist.
Andernfalls wird der Wert 0 zurückgegeben.
Beispiel
if (symbol)
symbol(S) {
S.pins(P)
printf("Pin: %s\n", P.name);
}
Dialoge
User-Language-Dialoge ermöglichen es, ein eigenes Frontend für ein User-Language-Progamm zu definieren.
Vordefinierte Dialoge beschreibt vordefinierte Standard-Dialoge Dialog-Objekte beschreibt die Objekte aus denen ein Dialog bestehen kann Layout-Information erklärt wie man die Position von Objekten in einem Dialog bestimmt Dialog-Funktionen beschreibt besondere Funktionen, die mit Dialogen verwendet werden können Ein vollständiges Beispiel zeigt ein vollständiges ULP mit einem Dialog zur Daten-Eingabe Vordefinierte Dialoge
Vordefinierte Dialoge sind die typischen Dialoge, die häufig zur Dateiauswahl oder
bei Fehlermeldungen verwendet werden.
dlgDirectory()
Siehe auch dlgFileOpen
Hat der Benutzer den Dialog abgebrochen, ist das Resultat ein leerer String.
Beispiel
string dirName;
dirName = dlgDirectory("Select a directory", "");
dlgFileOpen(), dlgFileSave()
Siehe auch dlgDirectory
string dlgFileSave(string Title[, string Start[, string Filter]])
Bricht der Benutzer den Dialog ab, ist das Ergebnis ein leerer String.
Beispiel
string fileName;
fileName = dlgFileOpen("Select a file", "", "*.brd");
dlgMessageBox()
Siehe auch status()
Die erste Schaltfläche in button_list hat den Index 0.
Es können maximal drei Schaltflächen definiert werden.
Wird keine button_list angegeben, erscheint automatisch "OK".
';' - für eine Information
'!' - für eine Warnung
':' - für einen Fehler
gesetzt wird.
Soll die Message jedoch mit einem dieser Zeichen beginnen, so muss dieses mit einem
Escape-Zeichen markiert werden.
Unter Mac OS X führt nur das Zeichen ':' tatsächlich zur
Darstellung eines Icons. Alle anderen werden ignoriert.
Beispiel
if (dlgMessageBox("Are you sure?", "&Yes", "&No") == 0) {
// let's do it!
}
Dialog-Objekte
Ein User-Language-Dialog kann aus folgenden Dialog-Objekten bestehen
(die einzelnen Begriffe wurden in diesem Fall nicht ins Deutsche übersetzt,
da sonst der Zusammenhang zu den ULP-Objekten verloren ginge):
dlgCell ein Grid-Cell-Kontext dlgCheckBox eine Checkbox dlgComboBox ein Combo-Box-Auswahl-Feld dlgDialog die Grundlage eines jeden Dialogs dlgGridLayout ein Grid-basierter-Layout-Kontext dlgGroup ein Group-Feld dlgHBoxLayout ein Horizontal-Box-Layout-Kontext dlgIntEdit ein Integer-Eingabe-Feld dlgLabel ein Text-Label dlgListBox eine List-Box dlgListView eine List-View dlgPushButton ein Push-Button dlgRadioButton ein Radio-Button dlgRealEdit ein Real-Eingabe-Feld dlgSpacing ein Layout-Spacing-Objekt dlgSpinBox ein Spin-Box-Auswahl-Feld dlgStretch ein Layout-Stretch-Objekt dlgStringEdit ein String-Eingabe-Feld dlgTabPage eine Tab-Page dlgTabWidget ein Tab-Page-Container dlgTextEdit ein Text-Eingabe-Feld dlgTextView ein Text-Viewer-Feld dlgVBoxLayout ein Vertical-Box-Layout-Kontext dlgCell
Siehe auch dlgGridLayout,
dlgHBoxLayout,
dlgVBoxLayout,
Layout-Information,
Ein vollständiges Beispiel
Beispiel
string Text;
dlgGridLayout {
dlgCell(0, 0) dlgLabel("Cell 0,0");
dlgCell(1, 2, 4, 7) dlgTextEdit(Text);
}
dlgCheckBox
Siehe auch dlgRadioButton,
dlgGroup,
Layout-Information,
Ein vollständiges Beispiel
Alle Check-Boxen innerhalb eines gemeinsamen Dialogs müssen unterschiedliche Checked-Variablen haben!
Beispiel
int mirror = 0;
int rotate = 1;
int flip = 0;
dlgGroup("Orientation") {
dlgCheckBox("&Mirror", mirror);
dlgCheckBox("&Rotate", rotate);
dlgCheckBox("&Flip", flip);
}
dlgComboBox
Siehe auch dlgListBox,
dlgLabel,
Layout-Information,
Ein vollständiges Beispiel
Bevor statement ausgeführt wird, werden alle Variablen , die in den Dialog-Objekten verwendet werden
neu eingelesen und jede Veränderung innerhalb von statement wird im Dialog angezeigt.
Beispiel
string Colors[] = { "red", "green", "blue", "yellow" };
int Selected = 2; // initially selects "blue"
dlgComboBox(Colors, Selected) dlgMessageBox("You have selected " + Colors[Selected]);
dlgDialog
Siehe auch dlgGridLayout,
dlgHBoxLayout,
dlgVBoxLayout,
dlgAccept,
dlgReset,
dlgReject,
Ein vollständiges Beispiel
Wird der Dialog einfach geschlossen, ist der Rückgabewert -1.
Beispiele
int Result = dlgDialog("Hello") {
dlgLabel("Hello world");
dlgPushButton("+OK") dlgAccept();
};
int haveButton = 1;
dlgDialog("Test") {
dlgLabel("Start");
if (haveButton)
dlgPushButton("Here") dlgAccept();
};
dlgGridLayout
Siehe auch dlgCell,
dlgHBoxLayout,
dlgVBoxLayout,
Layout-Information,
Ein vollständiges Beispiel
Die Anzahl der Reihen und Spalten wird automatisch an die Position von Dialog-Objekten,
die innerhalb des Grid-Layout-Kontexts definiert werden, angepasst. Die Anzahl der
Reihen und Spalten muss nicht explizit definiert werden.
Beispiel
dlgGridLayout {
dlgCell(0, 0) dlgLabel("Row 0/Col 0");
dlgCell(1, 0) dlgLabel("Row 1/Col 0");
dlgCell(0, 1) dlgLabel("Row 0/Col 1");
dlgCell(1, 1) dlgLabel("Row 1/Col 1");
}
dlgGroup
Siehe auch dlgCheckBox,
dlgRadioButton,
Layout-Information,
Ein vollständiges Beispiel
Radio-Buttons in einer dlgGroup werden mit 0 beginnend numeriert.
Beispiel
int align = 1;
dlgGroup("Alignment") {
dlgRadioButton("&Top", align);
dlgRadioButton("&Center", align);
dlgRadioButton("&Bottom", align);
}
dlgHBoxLayout
Siehe auch dlgGridLayout,
dlgVBoxLayout,
Layout-Information,
Ein vollständige Beispiel
Beispiel
dlgHBoxLayout {
dlgLabel("Box 1");
dlgLabel("Box 2");
dlgLabel("Box 3");
}
dlgIntEdit
Siehe auch dlgRealEdit,
dlgStringEdit,
dlgLabel,
Layout-Information,
Ein vollständiges Beispiel
Beispiel
int Value = 42;
dlgHBoxLayout {
dlgLabel("Enter a &Number between 0 and 99");
dlgIntEdit(Value, 0, 99);
}
dlgLabel
Siehe auch Layout-Information,
Ein vollständiges Beispiel,
dlgRedisplay()
Beispiel
string OS = "Windows";
dlgHBoxLayout {
dlgLabel(OS, 1);
dlgPushButton("&Change OS") { OS = "Linux"; }
}
dlgListBox
Siehe auch dlgComboBox,
dlgListView,
dlgSelectionChanged,
dlgLabel,
Layout-Information,
Ein vollständiges Beispiel
Bevor statement ausgeführt wird, werden alle Variablen, die von Dialog-Objekten benutzt
werden, aktualisiert. Alle Änderungen, die in statement gemacht wurden, wirken sich auf
den Dialog aus, sobald das Statement zurückgegeben wird.
Beispiel
string Colors[] = { "red", "green", "blue", "yellow" };
int Selected = 2; // initially selects "blue"
dlgListBox(Colors, Selected) dlgMessageBox("You have selected " + Colors[Selected]);
dlgListView
Siehe auch dlgListBox,
dlgSelectionChanged,
dlgLabel,
Layout-Information,
Ein vollständiges Beispiel
Wenn kein spezieller Eintrag selektiert werden soll, wählt man für Selected den
Wert -1.
Wird der Wert auf -2 gesetzt, so wird der erste Eintrag
gemäß der aktuellen Sortierspalte selektiert.
Wurde kein List-View-Eintrag selektiert, wird -1 zurückgegeben.
Bevor statement ausgeführt wird, werden alle Variablen, die mit den Dialog-Objekten benutzt
wurden, aktualisiert. Alle Änderungen, die in statement gemacht wurden, wirken sich auf
den Dialog aus, sobald das Statement zurückgegeben wird.
Beispiel
string Colors[] = { "red\tThe color RED", "green\tThe color GREEN", "blue\tThe color BLUE" };
int Selected = 0; // initially selects "red"
dlgListView("Name\tDescription", Colors, Selected) dlgMessageBox("You have selected " + Colors[Selected]);
dlgPushButton
Siehe auch Layout-Information,
Dialog-Funktionen,
Ein vollständige Beispiel
Wenn Text mit einem '-'-Zeichen beginnt, wird dieser Button der Cancel-Button.
Dieser wird gewählt wenn der Benutzer den Dialog schließt.
Achtung: Stellen Sie sicher, dass das statement eines so markierten Buttons einen
Aufruf von dlgReject() enthält! Ansonsten ist es dem Benutzer nicht
möglich den Dialog überhaupt zu schließen!
Um ein '+' oder '-'-Zeichen als erstes Zeichen des Textes zu verwenden,
muss es mit einem Escape-Zeichen markiert werden.
Bevor statement ausgeführt wird, werden alle Variablen, die mit den Dialog-Objekten
benutzt wurden, aktualisiert. Alle Änderungen, die in statement gemacht wurden, wirken sich
auf den Dialog aus, sobald das Statement zurückgegeben wird.
Beispiel
int defaultWidth = 10;
int defaultHeight = 20;
int width = 5;
int height = 7;
dlgPushButton("&Reset defaults") {
width = defaultWidth;
height = defaultHeight;
}
dlgPushButton("+&Accept") dlgAccept();
dlgPushButton("-Cancel") { if (dlgMessageBox("Are you sure?", "Yes", "No") == 0) dlgReject(); }
dlgRadioButton
Siehe auch dlgCheckBox,
dlgGroup,
Layout-Information,
Ein vollständiges Beispiel
Alle Radio-Buttons innerhalb derselben Group müssen dieselbe Selected-Variable haben!
Der Ausgangswert von Selected definiert, welcher Radio-button per default selektiert ist.
Liegt Selected ausserhalb des gültigen Bereichs dieser Group, ist kein Radio-Button
selektiert.
Um die richtige Radio-Button-Selektion zu erhalten, muss Selected schon vor
der Definition des ersten dlgRadioButton festgelegt werden, und darf nicht verändert
werden, während man weitere Radio-Buttons hinzufügt. Ansonsten ist es ungewiss welcher
Radio-Button (wenn überhaupt einer) selektiert wird.
Beispiel
int align = 1;
dlgGroup("Alignment") {
dlgRadioButton("&Top", align);
dlgRadioButton("&Center", align);
dlgRadioButton("&Bottom", align);
}
dlgRealEdit
Siehe auch dlgIntEdit,
dlgStringEdit,
dlgLabel,
Layout-Information,
Ein vollständiges Beispiel
Beispiel
real Value = 1.4142;
dlgHBoxLayout {
dlgLabel("Enter a &Number between 0 and 99");
dlgRealEdit(Value, 0.0, 99.0);
}
dlgSpacing
Siehe auch dlgHBoxLayout,
dlgVBoxLayout,
dlgStretch,
Layout-Information,
Ein vollständiges Beispiel
Beispiel
dlgVBoxLayout {
dlgLabel("Label 1");
dlgSpacing(40);
dlgLabel("Label 2");
}
dlgSpinBox
Siehe auch dlgIntEdit,
dlgLabel,
Layout-Information,
Ein vollständiges Beispiel
Beispiel
int Value = 42;
dlgHBoxLayout {
dlgLabel("&Select value");
dlgSpinBox(Value, 0, 99);
}
dlgStretch
Siehe auch dlgHBoxLayout,
dlgVBoxLayout,
dlgSpacing,
Layout-Information,
Ein vollständiges Beispiel
Beispiel
dlgHBoxLayout {
dlgStretch(1);
dlgPushButton("+OK") { dlgAccept(); };
dlgPushButton("Cancel") { dlgReject(); };
}
dlgStringEdit
Siehe auch dlgRealEdit,
dlgIntEdit,
dlgTextEdit,
dlgLabel,
Layout-Information,
Ein vollständiges Beispiel
Keiner der Strings in History darf leer sein (sollte ein leerer String
vorhanden sein, werden alle nachfolgenden, inklusive dem Leerstring ignoriert).
Beispiel
string Name = "Linus";
dlgHBoxLayout {
dlgLabel("Enter &Name");
dlgStringEdit(Name);
}
dlgTabPage
Siehe auch dlgTabWidget,
Layout-Information,
Ein vollständiges Beispiel
Beispiel
dlgTabWidget {
dlgTabPage("Tab &1") {
dlgLabel("This is page 1");
}
dlgTabPage("Tab &2") {
dlgLabel("This is page 2");
}
}
dlgTabWidget
Siehe auch dlgTabPage,
Layout-Information,
Ein vollständiges Beispiel
dlgTabWidget(int &Index) { tabpages }
Beispiele
dlgTabWidget {
dlgTabPage("Tab &1") {
dlgLabel("This is page 1");
}
dlgTabPage("Tab &2") {
dlgLabel("This is page 2");
}
}
dlgDialog("test")
{
int TabNr = 0;
int CheckBoxValue[];
dlgTabWidget(TabNr) {
for (int i = 0; i <= 9; i++) {
string s;
sprintf(s, "%d", i);
dlgTabPage("Tab " + s) {
dlgLabel("This is page " + s);
dlgCheckBox(s, CheckBoxValue[i]) {
string Msg;
sprintf(Msg, "Value #%d: %d\n", TabNr, CheckBoxValue[TabNr]);
dlgMessageBox(Msg);
}
}
}
}
};
dlgTextEdit
Siehe auch dlgStringEdit,
dlgTextView,
dlgLabel,
Layout-Information,
Ein vollständiges Beispiel
Beispiel
string Text = "This is some text.\nLine 2\nLine 3";
dlgVBoxLayout {
dlgLabel("&Edit the text");
dlgTextEdit(Text);
}
dlgTextView
Siehe auch dlgTextEdit,
dlgLabel,
Layout-Information,
Ein vollständiges Beispiel
dlgTextView(string Text, string &Link) statement
Beispiel
string Text = "This is some text.\nLine 2\nLine 3";
dlgVBoxLayout {
dlgLabel("&View the text");
dlgTextView(Text);
}
dlgVBoxLayout
Siehe auch dlgGridLayout,
dlgHBoxLayout,
Layout-Information,
Ein vollständiges Beispiel
Beispiel
dlgVBoxLayout {
dlgLabel("Box 1");
dlgLabel("Box 2");
dlgLabel("Box 3");
}
Layout-Information
Alle Objekte eines User-Language-Dialogs werden in einem Layout-Kontext verwendet.
Grid-Layout-Kontext
Objekte in einem Grid-Layout-Kontext müssen die Raster-Koordinaten der Zelle (Cell) oder der Zellen angeben,
in der/denen sie plaziert werden sollen. Um einen Text in Reihe (row) 5, Spalte (column) 2 zu plazieren,
schreiben Sie
dlgGridLayout {
dlgCell(5, 2) dlgLabel("Text");
}
Soll das Objekt über mehr als eine Zelle gehen, müssen Sie die Koordinaten der Start-Zelle und
der End-Zelle angeben. Um eine Group zu plazieren, die sich von Reihe 1, Spalte 2 über Reihe 3,
Spalte 5 erstreckt, schreiben Sie
dlgGridLayout {
dlgCell(1, 2, 3, 5) dlgGroup("Title") {
//...
}
}
Horizontal-Layout-Kontext
Objekte in einem Horizontal-Layout-Kontext werden von links nach rechts plaziert.
dlgHBoxLayout {
dlgStretch(1);
dlgPushButton("+OK") dlgAccept();
dlgPushButton("Cancel") dlgReject();
}
Vertical-Layout-Kontext
Objekte in einem Vertical-Layout-Kontext folgen denselben Vorschriften wie die in einem
Horizontal-Layout-Kontext mit dem Unterschied, dass sie von oben nach unten angeordnet werden.
Gemischter Layout-Kontext
Vertical-, Horizontal- und Grid-Layout-Kontexte können gemischt werden, um die gewünschte
Dialog-Struktur zu ezeugen.
Siehe Ein vollständiges Beispiel.
Dialog-Funktionen
Folgende Funktionen können mit User-Language-Dialogen verwendet werden:
dlgAccept() schließt den Dialog und akzeptiert dessen Inhalt dlgRedisplay() aktualisiert den Dialog nachdem beliebige Werte verändert wurden dlgReset() setzt alle Dialog-Objekte auf den Ursprungswert zurück dlgReject() schließt den Dialog und verwirft dessen Inhalt dlgSelectionChanged() gibt an ob sich die aktuelle Auswahl in einer dlgListView oder dlgListBox geändert hat dlgAccept()
Siehe auch dlgReject,
dlgDialog,
Ein vollständiges Beispiel
dlgPushButton("OK") {
dlgAccept();
dlgMessageBox("Accepting!");
}
Das Statement nach dlgAccept() wird noch ausgeführt!
Beispiel
int Result = dlgDialog("Test") {
dlgPushButton("+OK") dlgAccept(42);
dlgPushButton("Cancel") dlgReject();
};
dlgRedisplay()
Siehe auch dlgReset,
dlgDialog,
Ein vollständiges Beispiel
Beispiel
string Status = "Idle";
int Result = dlgDialog("Test") {
dlgLabel(Status, 1); // note the '1' to tell the label to be updated!
dlgPushButton("+OK") dlgAccept(42);
dlgPushButton("Cancel") dlgReject();
dlgPushButton("Run") {
Status = "Running...";
dlgRedisplay();
// some program action here...
Status = "Finished.";
}
};
dlgReset()
Siehe auch dlgReject,
dlgDialog,
Ein vollständiges Beispiel
Beispiel
int Number = 1;
int Result = dlgDialog("Test") {
dlgIntEdit(Number);
dlgPushButton("+OK") dlgAccept(42);
dlgPushButton("Cancel") dlgReject();
dlgPushButton("Reset") dlgReset();
};
dlgReject()
Siehe auch dlgAccept,
dlgReset,
dlgDialog,
Ein vollständiges Beispiel
dlgPushButton("Cancel") {
dlgReject();
dlgMessageBox("Rejecting!");
}
Das Statement nach dlgReject() wird auch noch ausgeführt!
Beispiel
int Result = dlgDialog("Test") {
dlgPushButton("+OK") dlgAccept(42);
dlgPushButton("Cancel") dlgReject();
};
dlgSelectionChanged()
Siehe auch dlgListView,
dlgListBox
Beispiel
string Colors[] = { "red\tThe color RED", "green\tThe color GREEN", "blue\tThe color BLUE" };
int Selected = 0; // initially selects "red"
string MyColor;
dlgLabel(MyColor, 1);
dlgListView("Name\tDescription", Colors, Selected) {
if (dlgSelectionChanged())
MyColor = Colors[Selected];
else
dlgMessageBox("You have chosen " + Colors[Selected]);
}
Escape-Zeichen
Einige Zeichen haben in Schaltflächen-
oder Label-Texten eine besondere Bedeutung, so dass sie mit Escape-Zeichen
markiert werden müssen, wenn sie tatsächlich im Text erscheinen sollen.
dlgLabel("Miller \\& Co.");
Das Ergebnis wird im Dialog so aussehen: "Miller & Co."
Ein vollständiges Beispiel
Hier folgt ein vollständiges Beispiel eines User-Language-Dialogs:
int hor = 1;
int ver = 1;
string fileName;
int Result = dlgDialog("Enter Parameters") {
dlgHBoxLayout {
dlgStretch(1);
dlgLabel("This is a simple dialog");
dlgStretch(1);
}
dlgHBoxLayout {
dlgGroup("Horizontal") {
dlgRadioButton("&Top", hor);
dlgRadioButton("&Center", hor);
dlgRadioButton("&Bottom", hor);
}
dlgGroup("Vertical") {
dlgRadioButton("&Left", ver);
dlgRadioButton("C&enter", ver);
dlgRadioButton("&Right", ver);
}
}
dlgHBoxLayout {
dlgLabel("File &name:");
dlgStringEdit(fileName);
dlgPushButton("Bro&wse") {
fileName = dlgFileOpen("Select a file", fileName);
}
}
dlgGridLayout {
dlgCell(0, 0) dlgLabel("Row 0/Col 0");
dlgCell(1, 0) dlgLabel("Row 1/Col 0");
dlgCell(0, 1) dlgLabel("Row 0/Col 1");
dlgCell(1, 1) dlgLabel("Row 1/Col 1");
}
dlgSpacing(10);
dlgHBoxLayout {
dlgStretch(1);
dlgPushButton("+OK") dlgAccept();
dlgPushButton("Cancel") dlgReject();
}
};
Unterstützte HTML-Tags
EAGLE unterstützt eine Teilmenge von Tags (Steuerzeichen), die zum Formatieren von HTML-Seiten
verwendet werden.
Damit kann man Texte von einigen Objekten im User-Language-Dialog,
in der #usage-Directive oder in der Description
von Bibliotheks-Objekten formatieren.
Tag Beschreibung <html>...</html> Ein HTML-Dokument. <body>...</body> Der Inhalt eines HTML-Dokuments. Es versteht folgendes Attribut
<h1>...</h1> Eine Haupt-Überschrift. <h2>...</h2> Eine untergeordnete Überschrift. <h3>...</h3> Eine weiter untergeordnete Überschrift. <p>...</p> Ein links-bündiger Abschnitt. Bestimmen Sie die Anordnung mit dem align Attribut. Mögliche Werte sind left, right und center. <center>...</center> Ein zentrierter Abschnitt. <blockquote>...</blockquote> Ein eingerückter Abschnitt, sinnvoll für Zitate. <ul>...</ul> Eine ungeordnete Liste. Sie können auch ein type-Argument angeben um einen Bullet-Style zu definieren. Default ist type=disc, andere Typen sind circle und square. <ol>...</ol> Eine geordnete Liste. Sie können auch ein type-Argument angeben um die Art der Nummerierung zu definieren. Default ist type="1", andere Typen sind "a" und "A". <li>...</li> Ein Punkt in einer Liste. Dieses Tag kann nur innerhalb eines ol oder ul Kontext verwendet werden. <pre>...</pre> Für größere Mengen von Code. Leerzeichen im Inhalt bleiben erhalten. Für kleinere Mengen Code, benutzen Sie den Inline-style code. <a>...</a> Ein Anker oder Link. Folgende Attribute sind erlaubt
<em>...</em> Emphasized (kursiv)(genauso wie <i>...</i>). <strong>...</strong> Stark (genauso wie <b>...</b>). <i>...</i> Kursiver Text. <b>...</b> Fetter Text. <u>...</u> Unterstrichener Text. <big>...</big> Eine größere Texthöhe. <small>...</small> Eine kleinere Texthöhe. <code>...</code> Kennzeichnet Code. (wie auch <tt>...</tt>. Für größere Mengen an Code, verwenden Sie das Block-Tag pre. <tt>...</tt> Typewriter Schriftart. <font>...</font> Zur Bestimmung von Texthöhe, Schrift-Familie und Textfarbe. Das Tag versteht folgende Attribute:
<img...> Ein Bild. Dieses Tag versteht die folgenden Attribute:
Der URL des Bildes kann auch extern sein, wie in <img src="http://web.cadsoft.de/cslogo.gif">.
<hr> Eine waagrechte Linie. <br> Ein Zeilenumbruch. <nobr>...</nobr> Kein Zeilenumbruch.Erhält "Word Wrap". <table>...</table> Eine Tabellen-Definition.
Die Standardtabelle ist ohne Rahmen. Geben Sie das boolesche Attribut
border an um einen Rahmen zu erhalten. Andere Attribute sind:
<tr>...</tr> Eine Tabellen-Reihe. Kann nur mit table verwendet werden. Versteht die Attribute:
<td>...</td> Eine Zelle in einer Tabelle. Kann nur innerhalb tr verwendet werden.Versteht die Attribute:
<th>...</th> Eine "Header"-Zelle in der Tabelle. Wie td aber als default mit zentrierter Ausrichtung und fetter Schriftart. <author>...</author> Markiert den Autor des Texts. <dl>...</dl> Eine Definitions-Liste. <dt>...</dt> Ein Definitions-Tag. Kann nur innerhalb dl verwendet werden. <dd>...</dd> Definitions-Daten. Kann nur innerhalb dl verwendet werden.
Tag Bedeutung < < > > & & Leerzeichen ohne Umbruch ä ä ö ö ü ü Ä Ä Ö Ö Ü Ü ß ß © © ° ° µ µ ± ± " " Automatischer Backup
Maximum backup level
Der Write-Befehl erzeugt Backup-Kopien der gesicherten Dateien.
Sie haben denselben Namen wie die Originaldateien mit einer
modifizierten Extension, nach dem Muster
.x#n
Dabei steht für 'x' der Buchstabe
s in Schaltplan-Dateien
l in Bibliotheks-Dateien
d in Designblock-Dateien
Auto-Backup-Interval
Wurde eine Zeichnung modifiziert, wird automatisch nach der unter
Auto backup interval eingestellten Zeit eine Sicherungskopie
erstellt.
.x##
Dabei steht für 'x' der Buchstabe
s in Schaltplan-Dateien
l in Bibliotheks-Dateien
d in Designblock-Dateien
Datei-Locking
EAGLE unterstützt eine einfache Form des Sperrens von Dateien.
Dateien, die in einem EAGLE-Zeichnungs- oder Texteditor geladen sind, werden
standardmäßig zum Schreiben gesperrt. Sobald der Editor geschlossen oder eine andere Datei
geladen wird, wird der Lock freigegeben.
Forward&Back-Annotation
Eine Schaltplandatei und die zugehörigen Platinendatei sind durch
automatische Forward&Back-Annotation logisch verknüpft. Der Benutzer muss
sich darum normalerweise nicht kümmern. Dennoch wird in diesem Abschnitt
beschrieben, was genau bei der Forward&Back-Annotation geschieht:
Konsistenzprüfung
Damit die Forward&Back-Annotation wirksam werden kann, müssen
Platine und Schaltplan konsistent sein. Das heisst, sie müssen äquivalente
Bauteile und Netze bzw. Signale enthalten.
Platine und Schaltplan konsistent machen
Um ein inkonsistentes Schaltplan-/Platinen-Paar konsistent zu machen,
müssem Sie alle im ERC-Protokoll aufgeführten Inkonsistenzen manuell
beseitigen.
Das kann mit Hilfe der Editor-Befehle wie
NAME,
VALUE,
PINSWAP,
REPLACE etc. erreicht werden.
Nach der Korrektur müssen Sie den
ERC-Befehl nochmals verwenden,
um die Dateien zu überprüfen und um die Forward&Back-Annotation aktivieren
zu können.
Hinweis Attribute:
Namen und Werte von Attributen können mit ATTRIBUTE zur
Konsistenzherstellung angepaßt werden.
Handelt es sich um Bibliotheks-Attribute, kann ein Austausch der Devices für die betroffenen Bauteile
mit REPLACE im Schaltplan erforderlich sein.
Hinweis Packagevarianten:
Hier gibt es mehrere Ansätze:
Einschränkungen
Folgende Aktionen sind in einer Platine nicht erlaubt, wenn die
Back-Annotation aktiv ist, wenn also der Schaltplan ebenfalls geladen ist:
Sollten Sie eine dieser Operationen auszuführen versuchen, dann erhalten
Sie eine Meldung, dass dies unter Kontrolle der Back-Annotation nicht
möglich ist. Bitte führen Sie die Operation dann im Schaltplan aus, sie
wird dann automatisch in die Platine übernommen. Sollten Sie die
Operation dennoch im Board ausführen wollen, müssen Sie das
Schaltplan-Fenster schließen. In diesem Fall riskieren Sie aber den Verlust der Konsistenz!
Tolerierte Bauteil-/Element- und Netz-/Signal-Abweichungen
Außer Elementen ohne Pads oder Smds toleriert EAGLE auch zusätzliche Elemente mit Pads/Smds,
solange diese mit keinem Signal verbunden sind.
Signale ohne entsprechende Netze werden toleriert, solange sie keine Verbindung zu einem Pad/Smd haben
(dies ist nützlich für Linien in einer Kupferlage ohne elektrische Bedeutung).
EAGLE-Editionen - Lizenz
EAGLE ist in verschiedenen Editionen verfügbar, um den
Ansprüchen verschiedener Benutzergruppen gerecht zu werden.
Weitere Informationen finden Sie auf dieser Seite:
www.autodesk.com/compare/eagle-vs-eagle-premium