Über Eagle3d

Transcription

Über Eagle3d
Über Eagle3D
Abbildung 1: Image erzeugt mit Eagle3D
Allgemeines
Eagle3D wurde von Matthias Weißer (www.matwei.de) ins Leben gerufen. Dieses Tool bietet die
Möglichkeit, aus einem Boardfile von Eagle eine 3D-Ansicht zu erstellen. Die Vorgehensweise dazu
ist folgende: Man ruft im PCB eine ulp auf, welche dann ein Menü öffnet. In diesem Menü können
einige Einstellungen vorgenommen werden, anschließend wird eine *.pov- Datei erzeugt. Diese
wird in povray aufgerufen und gerendert. Es wird ein 3D Bild erzeugt.
Um jedoch zu den o.g. Punkten zu kommen, muss zunächst etwas Software installiert und
konfiguriert werden.
Software
Es wird folgende Software benötigt:
Eagle3D www.matwei.de/tmp/eagle3d_1_10_RC3_03052009.zip
Die Bilder (png) dazu: www.matwei.de ->library_images_1_05.zip
Povray: http://www.povray.org/ -> Version 3.6 oder 3.7beta
Installation
Zunächst wird das eagle3d-zip File in einem temporären Ordner entpackt, anschließend werden die
Verzeichnisse in den Eagle-Ordner unter ...\eagle\ulp\eagle3d verschoben. Dann wird im
Ordner ...\eagle\ulp\eagle3d\ulp das Verzeichnis img erzeugt, dorthin werden die Bilder
(libraray_images_1_05.zip) entpackt. Die Verzeichnisstruktur sieht danach wie folgt aus:
Abbildung 2: Verzeichnisstruktur Eagle3D
© B. Redemann, 2006-2009 b-redemann.de Seite 1/8
Bei Einsatz von XP Pro muss der gesamte Ordner eagle incl. Unterverzeichnisse auf „full control
for everyone“ einstellt werden, da es sonst evtl. zu Fehlermeldungen in povray kommt.
Im eagle3d-Verzeichnis sind folgende Dateien/Ordner zu finden:
doc -> readme, Hinweis zur Doku von Matthias Weißer
example -> Beispiel eines Eagleprojekts mit pov-Datei und den erzeugten Bildern
povray -> Verzeichnis mit den *.inc-Dateien. In diesen werden die Bauteilemakros definiert. Es gibt
dort eine grobe Unterteilung nach Bauteiletyp, z.B. cap.inc (Kondensatoren), connector.inc
(Steckverbinder), diode.inc (Dioden), ic.inc (ICs) usw. Bei Erstellung eines neuen Bauteilmakros
wird die entsprechende .inc-Datei editiert.
ulp -> Hier ist u.a. die 3d41.ulp abgelegt, die vom PCB aus aufgerufen wird. Dort ist auch der
Ordner img mit den 3D-Bildern für jedes Bauteil. Dieses Verzeichnis ist bei der manuellen
Zuordnung von Bauteilen sehr hilfreich und notwendig (weiteres später).
Nun wird Povray installiert (Standardinstallation) nach \programme\povray.
Starten eines Eagleprojekts
Nach dem erfolgten Layout wird im PCB die ulp 3d41.ulp aufgerufen, also file – run , dann ins
Verzeichnis eagle3d welchseln und die 3d41.ulp starten:
Abbildung 3: ulp aufrufen
Nach dem ersten Aufruf der ulp erscheint die Frage
nach der Sprache und ein weiteres Infofenster.
Anschließend öffnet sich das Fenster für die
Parameterein-gabe. Es ist empfehlenswert, die
Ausgabedatei (*.pov) in das gleiche Verzeichnis zu
erstellen wie das Projekt, damit man nicht nach dieser
Datei ewig suchen muss („Board-Pfad sezten“). Da
eventuell nicht alle Bauteile, die in den Projekt
definiert sind, vorhanden sind oder nicht gefunden
werden können, empfielt sich daher Häckchen bei
„Unbekannte Bauteile“ und ggf. „Manuelle
Zuordnung v. Bauteilen“ zu setzen. Der Nachteil der
manuellen
Abbildung 4: Parametereingabe
© B. Redemann, 2006-2009 b-redemann.de Seite 2/8
Zuordnung scheint klar: Es dauert länger das *.pov File zu erzeugen, da man vergleichen muss,
welches eagle3d Makro zum dazugehörigen Eaglepackage passt. Nach dem Klick auf „Pov-Datei
schreiben“ werden ggf. für einige Bauteile weitere Parameter abgefragt, z.B. das Logo auf dem IC
oder welche Farbe die LED hat:
Abbildung 5: Bauteileparameter
Im unteren Bild ist nun zu sehen, dass das Trimmpoti P1 mit dem Package LI10 (A) dem PovRayMakro manuell zugeordnet werden muss. Es wurde für dieses Package also kein Makro gefunden
(C). Um die Suche zu erleichtern, öffnet man den Explorer und wechselt in das Verzeichnis
Abbildung 6: Manuelle Zuordnung
© B. Redemann, 2006-2009 b-redemann.de Seite 3/8
...\eagle\ulp\eagle3\ulp\img (Miniaturansicht). Nach
kurzer Zeit hat man nun auch das Poti gefunden Wie
man sieht, hat es den Namen RES_DIS_TRIM_PT10.
Dieser Name wird mit Strg+C kopiert und im obigen
Fenster bei „C“ eingefügt. Nach der Suche (PovRayMacro durchsuchen) wird das Bauteil gefunden.
Abbildung 7: Bauteil gefunden!
Links zeigt das gefunde Makro und das
dazugehörige Bild. Wenn kein Bild erscheint,
so existiert entweder das Verzeichnis img
oder das Bild nicht.
Nach dem Klick auf Ok wird dieses Makro
zugeordnet.
Nach erfolgter Zuordnung aller Bauteile
erscheint folgende Meldung:
Abbildung 8: Gesucht und gefunden
Diese Meldung scheint etwas verwirrend, denn
durch die manuelle Zuordnung der drei Bauteile
wurde die Datei „3dusrpac.dat“ modifiziert:
Abbildung 9: Hinweis auf .dat
Abbildung 10: 3dusrpac.dat
Die Eintragungen in dieser Datei sollten nicht editiert werden! Beide Dateien, die 3dpack.dat und
die 3dusrpac.dat dienen dazu, dem Eaglepackage ein geeignetes Makro zuzuweisen. In der
3dpack.dat sind bereits sehr viele Standardbauteile enthalten. Wenn es nicht möglich ist, ein Bauteil
aus dieser Datei einem Makro zuzuweisen wird in der 3dusrpac.dat nachgeschaut. Wenn auch dort
kein Makro für das entsprechende Part zu finden ist, dann erscheint, wie oben zu sehen, das Fenster
für die manuelle Zuordnung (Seite 3). Durch die manuelle Zuordnung wird ein Eintrag in der
3dusrpac.dat getätigt. Für spätere Projekte, die z.B. das Poti „LI10“ enthalten, wird also keine
manuelle Zuordnung mehr notwendig sein.
© B. Redemann, 2006-2009 b-redemann.de Seite 4/8
Nach erfolgreicher Generierung wird die Pov-Datei ins Projektverzeichnis gespeichert:
Abbildung 11: Pov-Datei: Doppelklick
Povray starten und ausführen
Mit einem Doppelklick auf die generierte Pov-Datei startet das Programm povray, welches aus den
vorhandenen Daten ein Bild erzeugen soll. Die Größe des Bildes kann zunächst auf 320x200
eingestellt werden (man will ja schnell etwas sehen!). Das rendern dauert ein paar Sekunden:
Abbildung 12: Render Settings
Wahrscheinlich erscheint nun eine Fehlermeldungen, die man mit OK bestätigt:
Abbildung 13: Fehlermeldung: OK
© B. Redemann, 2006-2009 b-redemann.de Seite 5/8
Anschließend wird das Bild gerendert und man bekommt folgendes Ergebnis:
Ist hier alles ok? Leider nein, die USB-Buchse ist
irgendwie nicht richtig am Platz und um 270° falsch
herum.
Wenn es solche Umgereimtheiten gibt, kommt man
leider nicht darum herum, sich die erzeugte pov-Datei
anzuschauen und den Fehler zu finden (und zu
beheben).
Abbildung 14: Alles ok?
Das Makro für die USB-Buchse heißt CON_USB_B_001, die Suche in der POV-Datei bringt
folgende Zeile:
#ifndef(pack_X1) #declare global_pack_X1=yes; object
{CON_USB_B_001()translate<0,0,0> rotate<0,0.000000,0>rotate<0,-90.000000,0>
rotate<0,0,0> translate<74.930000,0.000000,13.970000>}#end
//USB-B Stecker
X1 PN61729
Aber warum wird das Bauteil falsch dargestellt und welcher der Parameter muss ggf. geändert
werden? Um die Fragen beantworten zu können, muss das Eaglepackage mit dem Makro verglichen
werden, und zwar bezüglich des Nullpunkts. Das Eaglepackage wurde wie folgt platziert:
Abbildung 15: Nullpunkt Eaglepackage USB-Buchse
Der Nullpunkt liegt in den Koordinaten (74.93 13.97)mm. Dies ist auch oben in der Definition zu
sehen (translate<74.93,0,13.97>). Wenn aber der Nullpunkt des Makros nicht mit dem des
Packages übereinstimmt, muss das Bauteil an sich verschoben werden. Auffällig ist außerdem der
Parameter „rotate<0,-90.000000,0>. Das Bauteil (siehe Bild im img-Ordner) wurde so erstellt, dass
es im Urzustand nach links zeigt, da es aber im PCB nach rechts zeigt, kann der Parameter geändert
© B. Redemann, 2006-2009 b-redemann.de Seite 6/8
werden.
1. Schritt: Rotation auf 180° einstellen:
#ifndef(pack_X1) #declare global_pack_X1=yes; object
{CON_USB_B_001()translate<0,0,0> rotate<0,0.000000,0>rotate<0,180,0>
rotate<0,0,0> translate<74.930000,0.000000,13.970000>}#end
//USB-B Stecker
X1 PN61729
2. Schritt: Buchse verschieben
Dieses Ergebnis sieht schon besser aus, allerdings liegt
die Buchse nun innerhalb der Leiterplatte, ein anderer
Parameter (translate) muss die Buchse in x-Richtung
verschieben. Man kann den Abstand zunächst
abschätzen (im PCB): ca. 10mm muss die Buchse
nach rechts verschoben werden. Da das Makro
allerdings anders herum definiert wurde, muss im
Parameter eine -10 einstellt werden:
Abbildung 16: Nach Parameteränderung
#ifndef(pack_X1) #declare global_pack_X1=yes; object
{CON_USB_B_001()translate<-10,0,0> rotate<0,0.000000,0>rotate<0,180,0>
rotate<0,0,0> translate<74.930000,0.000000,13.970000>}#end
//USB-B Stecker
X1 PN61729
In der pov-Datei gibt es diveser Einstellungen zur
Kamera (Winkel, Abstand) und auch zur Leiterplatte
(drehen). Folgende Parameter drehen die Leiterplatte,
so dass man ein nette Gesamtansicht bekommt:
#local pcb_rotate_x = 30;
#local pcb_rotate_y = 20;
#local pcb_rotate_z = 40;
Abbildung 17: Nochmals geändert
Abbildung 19: XYUnbekannt
Abbildung 18: PCB gedreht
Wenn Bauteile nicht zugeordnet werden können
In Situationen, wo keine Bauteilemakro exsistiert, können diese natürlich auch nicht zugeordnet
werden. Das Ergebnis sieht dann wie in Abbildung 19 aus, die Zeile in der Pov-Datei so:
© B. Redemann, 2006-2009 b-redemann.de Seite 7/8
cylinder{<0,0,0><0,7*1.000000,0>0.5 pigment{Red filter 0.2} translate<8.255000,0,126.365000>}
//unbekanntes Bauteil LEDS1 LED-Row
Voraussetzung für dieses Ergebnis ist die Aktivierung der Option „unbekannte Bauteile“ in der
eagle3d-ulp.
Wenn es keine Makros gibt so muss man das Bauteil selber erstellen oder erstellen lassen. Eventuell
gibt es im Internet auch Seiten, die solche Makros zur Verfügung stellen.
Tutorial um Makros zu erstellen:
http://www.felixchenier.com/doku.php?id=pcb:eagle3dnewpart
Tutorial PovRay:
http://f-lohmueller.de/pov_tut/pov__ger.htm
Das gesamte Projekt incl. Eagle- und Povray-Dateien können unter www.b-redemann.de/speagle3d.shtml heruntergeladen werden.
© B. Redemann, 2006-2009 b-redemann.de Seite 8/8