Ziel dieser Software-Sammlung ist es,
Dateien des Leiterplattenentwurfsprogramms Eagle
im Vektorformat zur Dokumentation und Präsentation zu erhalten.
Die meisten bisherigen Ansätze endeten im Pixelformat oder als PDF,
wenig handlich für moderne Web-Browser und Präsentationsprogramme.
Konvertierung Eagle4/5 (binär) ⇔ Eagle6+ (XML)
Realisiert in PHP
für die serverseitige Dateikonvertierung:
Eagle-XML-Dateien zu binär herunterkonvertieren
(Projektphase; das Problem ist der Crypt-Record, um eine legale
Eagle-Datei zu generieren)
Eagle6+-Schaltpläne (XML) ausdünnen: Nicht benötigte Elemente
aus der lokalen Bibliothek entfernen (Projektphase).
Die Dateigröße schrumpft erheblich,
aber das Ändern des Packages von Bauelementen ist auf die
tatsächlich benutzten eingeschränkt.
(Falls erforderlich muss man in Eagle von der Bibliothek
aktualisieren und hat dann wieder alle Packages.)
Das Programm Eagle wird hierzu nicht benötigt.
Möchte man die Konvertierung „zu Hause“ (clientseitig) erledigen,
benötigt man PHP dafür, was einfach zu installieren ist.
Für die Richtung zum XML ist das Laden und Speichern in Eagle
zuverlässiger, da garantiert Cadsoft für Fehlerfreiheit.
Konvertierung Eagle6+ (XML) in Vektorformat
Realisiert in XSLT
für die clientseitige Interptetation (also im Web-Browser):
Eagle-XML-Dateien in SVG umwandeln
(funktioniert für Schaltpläne und Boards,
generiert eine zweidimensionale Vektorgrafik
oder eine HTML-Seite mit eingebetteten SVG bei mehrseitigen Schaltplänen)
Eagle-XML-Dateien in HTML umwandeln (= Bibliotheksbrowser).
Jede Eagle-Datei enthält eine lokale Bibliothek,
die hiermit betrachtet werden kann. Projektphase.
Eagle-XML-Board-Dateien in X3DOM umwandeln.
Mit den Daten vom Povray-Projekt Eagle3D. Projektphase.
Das Programm Eagle wird hierzu nicht benötigt.
Binäre Eagle-Dateien können mit der vorherigen Software
in XML umgewandelt werden.
Alle diese Vektordarstellungen enthalten Informationen
über zusammengehörige Netze, Bauelemente, Busse usw.,
die durch die Mausposition abgefragt werden können!
Prinzipiell lassen sich damit direkt Schaltpläne in Office-Dokumente
einbinden.
Damit das Konvertierungsprogramm wirksam wird,
muss die Eagle-Datei durch eine sogenannte
Verarbeitungsanweisung ergänzt werden.
Die vorherige Konvertierungssoftware tut das automatisch.
Eagle stößt sich (beim Laden derartig modifizierter Dateien)
daran nicht, sie bleiben verarbeitbar.
Konvertierung von WMF/EMF in SVG
Die älteren Ansätze zur Ausgabe von Vektorgrafik
liefen über das Windows-Metafile.
Es ist sehr kompakt (= geringe Dateigröße)
und auf die Bedürfnisse von Eagle optimal zugeschnitten
(= verfügbare boolesche Rasteroperationen).
Beim Konvertieren nach SVG gehen diese Vorteile leider verloren;
dafür kann der moderne Web-Browser den Inhalt direkt darstellen.
Für die serverseitige Lauffähigkeit in PHP geschrieben:
Informationen über Netze, Bauteile usw. sind hierbei nicht enthalten.
Jedoch bleiben Strings Strings und sind durchsuchbar.
Um die WMF/EMF-Dateien aus Eagle zu generieren, habe ich Programme in ULP
(User-Language-Program, eine Eagle-Sprache) geschrieben.
Zu ihrer Ausführung ist Eagle erforderlich, siehe unten.
SCH2CGM — Eagle-Schaltplan oder -Board in Vektorgrafik
sch2cgm.ulp
wandelt eine Eagle-Schaltplanseite
in ein gängiges,
plattformübergreifendes Vektorformat, CGM (Computer Graphics
Metafile) um.
SCH2WMF oder SCH2EMF - Eagle-Schaltplan
oder -Board in Vektorgrafik
Diese ULPs sind auf sehr genaue Wiedergabetreue hochgezüchtet,
was — für Boards — mit SVG gar nicht geht
(wegen der fehlenden booleschen Rasteroperationen — schade).
Auch kann man sie dazu einsetzen, Teile des Schaltplans zu extrahieren.
sch2wmf.ulp
exportiert Schaltplan-Seiten
sowie Boards (bspw. Bestückungsdruck) in WMF-Dateien (Windows-Vektorformat) um.
Mit Ausschnitt-Auswahl (damit kann man Teile aus Schaltplänen exportieren)
Für Eagle 4.x, 5.x und 6.x
Echte Schriftausgabe, ggf. mit Umschaltung zur Symbolschriftart, korrekte Darstellung bspw. des Ω-Zeichens
Die entstehenden Dateien können im Internet Explorer und Total Commander betrachtet werden.
sch2emf.ulp
exportiert Schaltplan-Seiten
sowie Boards (bspw. Bestückungsdruck) in EMF-Dateien.
Die Ausgabedateien sind doppelt so groß,
können jedoch Ω-Zeichen ohne Schriftartumschaltung
(Zwiebelfische)
enthalten.
Zweisprachig, deutsch + englisch (ab Eagle 5.x)
Ausschnitt-Auswahl und (ab Eagle 5.x) Auswahl der Markierung (also: Nur selektierte Elemente ausgeben)
Für Eagle 4.x, 5.x und 6.x
Problem: Keine Unicode-Zeichen under Eagle 6.x ausgebbar wegen Beschränkungen des Eagle6-ULP-Interpreters
Sicherlich haben Sie vor dem Problem gestanden, ein Stück
Schaltplan oder einen Bestückungsdruck in ein Word-Dokument einzufügen.
Bunt, wenn's geht. Skalierbar ohne Treppen-Effekte.
Dafür gab es etwa zwei brauchbare Lösungen:
Export in ein hochauflösendes Bitmap (ca. 300 dpi, vorzugsweise .PNG)
Ausdruck in PostScript und Umwandlung in .EPS-Datei
Für die Ausgabe für's Internet empfiehlt sich der Grafik-Export
bei 100 dpi (Board: 200 dpi).
Text ist nicht durchsuchbar (sehr schlecht in mehrseitigen Schaltplänen)
Gleiche Linien werden unterschiedlich breit dargestellt
(bes. auf Bildschirm, auch bei EPS-Import)
Große Ausgabe-Datenmenge
Diese Nachteile betreffen auch die gewöhnliche (PDF-)Druckausgabe
von Eagle-Schaltplänen. Die Riesenhaftigkeit des Druck-Outputs
und die Effekte mit den unterschiedlichen Linienbreiten rühren aus:
der kompletten Vektorisierung aller Texte (wenn man nicht aufpasst),
der Ausgabe aller Linien als je ein Polygon mit zwei „achteckigen“ Enden.
Als weitere Unschönheit beim Drucken ist zu nennen:
Board: Die Ausgabe pseudotransparenter Board-Layouts
(bspw. papierner Bestückungsdruck)
erfordert den Umweg über den Bild-Export und der Bild-Nachbearbeitung.
Schaltplan: Die Ausgabe der Layer erfolgt in umgekehrter Reihenfolge
als auf dem Bildschirm.
Mit der Folge, dass (mit einem hellgrauen User-Layer) hinterlegte
Schaltungsteile auf dem Drucker hinter der Hinterlegung verschwinden!
Die bisher gesehenen Eagle-zu-SVG-Konverter
bieten (noch) keine hohe Wiedergabetreue und erzeugen größere Dateien (mehr „Luft“).
Dennoch gehört ihnen wohl die Zukunft.
Eine bessere Lösung
Diese ULPs erzeugt von der aktuellen Schaltplanseite oder Board-Ansicht eine
Vektorgrafik, die einfach in Textverarbeitungen eingefügt werden kann.
Sämtliche Größeninformationen bleiben erhalten,
sodass auch ein maßstabgerechter Ausdruck möglich bleibt.
Konfigurationsdialog beim ULP-Start
Pro:
Keine Notwendigkeit wenig gebräuchlicher Tools wie GhostView
Keine Grafik-Zwischenverarbeitung
(Farbanzahl reduzieren, DPI-Zahl setzen)
Die eingefügte Grafik ist am Bildschirm sichtbar (im Gegensatz zu EPS)
Bestechend gute Wiedergabe der Zeichenelemente und Schrift auf
Bildschirm und Drucker
Text durchsuchbar (im Word-generierten PDF beispielsweise)
Kompakte und dennoch menschenlesbare (nur CGM) Zwischen-Datei
Perfekte Lösung für Windows-Hilfedateien
(.HLP – bei .CHM-Dateien ab Internet Explorer 6)
Gut komprimierbar; nach Kompression deutlich kleiner als .PNG-Dateien
(von .JPG keine Rede!)
Kontra:
Schrift-Ausdehnung gegenüber Eagle-Vektorschrift leicht verändert (sofern zu Schrift konvertiert)
Einige seltener verwendete Zeichenelemente werden (optional!) anders als
in Eagle wiedergegeben:
Polygone mit runden Begrenzungs-Segmenten (Geraden-Approximation)
Gestrichelte Linien (Mapping auf CGM- bzw. Windows-Strichelung)
Schraffuren und Füllmuster (Mapping auf CGM- bzw. Windows-Schraffuren;
unter Windows ist auch die Ausgabe exakter Eagle-Füllmuster möglich)
Überraschungen möglich beim Ausdruck pseudotransparenter Board-Layouts,
besonders bei PostScript- und PDF-Ausgabe;
dumme Tintenstrahldrucker machen keine Probleme.
Transparenz verschwindet, Layer sind deckend
In Komplementärfarben dargestellte Linien werden in ihrer
Ursprungsfarbe dargestellt (nicht jedoch Füllflächen)
Windows-Schraffuren erscheinen zu groß
Eagle-Schraffuren (8x8-Bitmaps) erscheinen als Klötzchengrafik.
Für den Ausdruck vorgesehene Board-Layouts daher vorzugsweise ohne
Transparenz und ohne Schraffuren ausgeben.
Viele dieser Überraschungen lassen sich abstellen,
allerdings auf Kosten der Dateigröße und der Darstellungsgeschwindigkeit.
EMF hat die gleichen Probleme; erst EMF+ kann das Transparenzproblem lösen.
So sieht ein Schaltplan mit SCH2WMF aus (WMF-Skalierung: 1:1)
Hier dargestellt sind .PNG-Dateien, die zwecks Darstellung im WWW
aus den .WMF-Dateien erzeugt wurden.
Nur mit dem Internet Explorer ≥ 6 wäre eine direkte Darstellung möglich.
Die .PNG-Dateien sind etwa gleich groß oder sogar kleiner
als die .WMF-Dateien!
Allerdings lassen sich .WMF-Dateien gut packen, wohingegen .PNG-Dateien
kaum komprimierbar sind.
Eagle-Ansicht
Einstellung
Ausgabe-Datei
7200 Byte
7340 Byte
7280 Byte
Mein Lieblingsformat (voreingestellt)
7340 Byte
So sieht ein Board mit SCH2WMF aus (WMF-Skalierung: 2:1 vergrößert)
Entgegen dem, was der Name vermuten lässt, kann SCH2WMF auch Board-Dateien
mit korrekter Skalierung als Vektorgrafik ausgeben.
Zwar kann man damit sogar die Kupferflächen vektorgrafisch ausbelichten,
aber der Haupteinsatzgebiet von SCH2WMF ist hier wohl eher die Dokumentation
des Bestückungsdrucks.
Eagle-Ansicht
Einstellung
Ausgabe-Datei
11028 Byte, für mehrere Layer kaum verwendbar
11184 Byte, Voreinstellung bei oben gezeigter Eagle-Ansicht
11154 Byte
11154 Byte, automatische Komplementärfarbenausgabe Mein Lieblingsformat Kann nur auf GDI-, nicht auf PCL- oder PostScript-Druckern ordentlich ausgedruckt werden!
SCH2EMF erzeugt Dateien mit nahezu dem gleichen Ergebnis.
Die Dateien sind etwa doppelt so groß
(32 statt 16 Bit für jede Koordinate, größere Header).
Viele Darstellungsvorteile sprechen für EMF, bspw:
Echt gespiegelter Text per Weltkoordinatentransformation,
Bogenstücke mit geraden Enden ohne Polygonsubstitution,
Mit Schraffur gefüllte Linien von schraffierten Layern,
Unicode-Text mit Symbolen, ohne Darstellungsfehler auf Fernost-Systemen,
gerade diese Extras werden jedoch unter Windows 9x/Me nicht oder falsch dargestellt.
Das Hauptproblem, transparente Layer, wird leider nicht besser gelöst als mit SCH2WMF.
Partielle Ausgabe
Durch Markieren gewünschter Schaltungs- oder Board-Teile
kann ein Ausschnitt zur Vektorgrafik exportiert werden.
Alle außerhalb liegenden Elemente werden weggelassen;
partiell sichtbare Teile werden geclippt.
Hier hat der Betrachter des Total Commander 6.x und 7.x noch einen Bug mehr: Beachtet bei der Skalierung das Clipping-Rechteck nicht.
Zur Auswahl dient das Zeichnen eines temporären Rechtecks
in Layer 91 (NETS) bzw. 20 (OUTLINE).
Weitere Informationen siehe sch2wmf.txt.
Bei der Eagle-5.x-Version von SCH2EMF kann zur Selektion auch die
Eagle-interne Selektion benutzt werden.