Ü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