Forum: Platinen Weiterentwicklung von EAGLE 3D


von Jürgen Schuhmacher (Gast)


Lesenswert?

Wie ich hier
(http://www.mikrocontroller.net/forum/read-6-140559.html?reload=yes#149552)
schreibe, habe ich meine ersten Tests damit hinter mir. Dabei kommen mir
spontan einige Ideen / Eindrücke, die ich mal darstellen will. Vorab
aber gleich die Bemerkung, daß ich das als konsruktive Kritik
verstanden wissen möchte, denn das Projekt als solches ist bereits
jetzt auf einem sehr weit fortgeeschrittenen Stand und aus jedem
Betrachtungswinkel beachtenswert: Immerhin kriegt man ganz ohne grosse
Vorkenntisse von EAGLE, ULP oder gar POV mit wenigen Mausklicks eine
weitgehend brauchbare 3D-Ansicht hin- ganz so, wie es sein muss- soll
das Projekt einen Erfolg haben. Man kann das durchaus einen Meilenstein
in der OS-Entwicklung nennen, dann meines Wissen produziert derzeit KEIN
einziges Profiprogramm einen derart guten Output!

Hier nun meine Gedanken dazu:

Das Plotten einer doppelseitigen Platine klappte nicht. Ich habe
beidseitige Bestückung, die ich mir in der Höhe ansehen will. Nach
meinem Ideal müsste ein soclhes Prog ein in allen Ansichten drehbares
3D-Modell entwicklen, das ich hinteher selber drehen kann. Es geht mir
dabei um 3D-Gehäuseplazierung, Wärmedistanzen und Abstand zu anderen
elektrischen Subsystmen. DAS wäre ein echter Fortschritt und eine große
Hilfe für Gehäusedesigner.

Das mit dem manuellen Zuordnen der Bauteile klappte nicht. Entweder
habe ich etwas nicht kapiert oder die von mir im konkreten Beispiel
benutzte Bib ist untauglich. Siehe dazu den oben gelinkten Artikel.

Es müsste möglich sein, Einzellagen zu erstellen, sodaß man IN die
Platine hineinsehen kann. Es geht z.B: um das Paritelle Ausblenden von
Platinenteilen um burried vias zu sehen, und Verschieben zu können. Das
alles kann in 3D-Programmen im Nachhinein eingestellt werden, in dem
Materialeigenschaften verändert oder einzelne Objekt perMausklick
abgeschaltet werden. Konkret bin ich in C4D in der Lage, während eines
3D-Flgues eine Art Schneidobjekt vor mir herzuführen, daß alles mit
einem EXOR belegt und damit dynamisch DURCH ein Objekt hindurchfräst,
wie die Faust des Terminators durch den T1000! Ferner knan man Objekte
farblich sanft ausblenden und ohne Modelländerung aus einem
3D-Obkejtmodell mehrere Ansichten erzteugen.

Beispiele: Hier :
http://www.geocities.com/j_schuhmacher/platinen3d.html

Wie man unten links erkennt, benutze ich keine grünen Leiterbahnen,
sondern echtes Kupfer, welches von gründem Lötstoplack überzogen ist.
Genau dadurch entsteht mit derm Kupfer die leichtdrüne Leiterbahn.
Ferner ist es mir so auch möglich, eine Verzinnung vorzunehmen. Gfs
kann man das sogar ad hoc in das ULP übernehmen, in dem man eine
Klckbox anwählt, die Verzinnen setzt und dann eben keine Kupferplatte
bringt , sondern Zinn. Dazu eine weitere klickbox, welche die Maske an
und abschaltet. Gfs ist diese aber auch post in POV möglich ?

In dem von mir oben dargestellten Bild links unten, sind die Lagen
jedenfalls so angebracht, daß alle logischen Kombinationen vorkommen.
(nur eben ohne Zinn). Das ganze sieht super real aus, wenn man es
korrekt beleuchtet und die Layer sind in C4D an und abschaltbar.

Ich weiss nicht wie weit Deine Beleuchtungskenntnisse reichen, aber das
mit den Schatten ist nicht so glücklich- da müsste man andere Lichter
benutzen und zumindest andere Positionen. Viele Farebn sind übersteuert
und zu sehr gesättigt - da könnte man was machen. Das silber ist oft
nicht als solches zu erkennen, da sich nichts spiegelt und es keinen
Lichtrefelx gibt. (was allerdings schwer ist, zugegeben)

In C4D kann ich die Leuchten einzeln setzen und in der Voransicht
drehen, sodaß ich vor dem Rendern bereits mit den Augen kontrollieren
kann, ob der Reflex sitzt, oder nicht.

Meines Erachtens müsste man solche Dinge von einenader trennen: Ein ULP
erzteugt NMUR das Modell, eine anderes ULP nur die POV-spezifischen
Setups. Diese könnte man optimieren und dann immer wieder verwenden -
zumindest für ein Platine. Das spart immer wiederkehrende Schritte.
Ganz genrell müsste es so sein, daß einmal gefundene Einstellungen z.B.
die perHand-Zuordnung der Problembauteile erhalten bleiben. Das ULP
müsste dazu zu jedem BRD einmal ein zusatz-Konfigfile anlegen, welches
a) die Zuordnung der Bauteile und b) die Rendereinstellungen enthält.
Dies kann bei erstenmal automatisch erfolgen. Beim zweiten Auslösen des
ULP wird dieses file dann gefunden und benutzt, um alle händischen
Eintragungen zu kennen und nur die neuen abzufragen. So könnte man
Stück für STück entwicklen und muss nicht immer wieder alles neu
setzen. Das gilt z.B, für Sockel oder nicht, Platinenmasse.

All diese Sachen sollte das ULP möglichst automatisch ermitteeln, in
dem Konfigfile speichern und dann nicht mehr ändern. änderungen dürfen
dann nur noch per Hand vorgenommen werden. So wird sichergestellt, daß
nichts überschrieben wird und man schnell zur 3D-Ansicht gelangt. Somit
könnteman eine Konsistenz erzielen, die einer foward-backward-comp
gleichkommt.

Wie gesaagt, das sind Vorschläge. Möglich, daß einige Dinge, schon
jetzt nachträglich von POV aus zu machen sind- gfs fällt ja einem
erfahrenen POV-User etwas dazu ein. (Farben, Maerialien .. )

Übrigens: ich habe in einem Artikel jemanden gefunden, der einen POV zu
VRML-Konverter entwicklet haben soll. Alle 3D-Programm lesen VRML!!!!!
Ich bin gerade auf der Suche, nach dem Mann ....



D

von Herrmann Jahnke (Gast)


Lesenswert?

An den EAGLE-3D Erfinder: So etwas wie oben müsste sich doch eigentlich
in die üblichen 3D-CAD-Programme direkt integrieren lassen, oder?  Eine
Ausgabe des Modells durch das bereits existenten ULP in z.B. VRML wäre
über dies hinaus natürlich begrüssenwert.

An Jürgen Schumacher: Nich so schnell tippen! (Farebn, refelx, gesaagt,
entwicklet)

von Jürgen Schuhmacher (Gast)


Angehängte Dateien:

Lesenswert?

@Herrmann:
Sowas nenne ich progressiven Schreibstil :-)

Ich habe nun von POV aus etwas mit der Beleuchtung herumgespielt und
glaube, daß die Pins der Chips insgesamt etwas anders reflektieren, als
die der Widerstände. Sie sind irgendwie zu hell - d.h. die Grundfarbe
ist zu hoch. Kann das jemand bestätigen?  Anders herum scheinen die
Chip-Gehäuse zu hell zu sein. Im Vergleich zu den Sockeln sind diese zu
grau. Die Sockel sind richtig voll schwarz.

Siehe das Beispielbild im Anhang.

Das ULP ist aber shcon richtig cool! Macht echt Spass. Nun muss ich nur
noch die Restbauteile irgenwie hinkriegen. Ausserdem konnte ich zwar
Platinen drehen (In POV) und Rückseiten drucken (IM CAM)- aber es war
mir nicht möglich doppelseitig bestückte Platinen darzustellen. Mache
ich was falsch, oder geht das nicht?

von Matthias (Gast)


Lesenswert?

Hi

doppelseitige Platinen sind kein Problem. Man kann die Platine auch in
der POVRay-Datei selbst drehen. Dazu gibt es ein paar #locals und
#declares am Anfang der Datei.

#declare pcb_upsidedown = off;
#declare pcb_rotdir = x;
#local pcb_rotate_x = 0;
#local pcb_rotate_y = 0;
#local pcb_rotate_z = 0;

Zum Export:
Das es einen voll funktionsfähigen Konverter von POV-Dateien in ein
anderes Format gibt wage ich zu bezweifeln. Das liegt daran das POVRay
einen völlig anderen Ansatz als übliche Renderer geht. POVRay arbeitet
hauptsächlich mit mathematisch definierten Volumenkörpern. Eine Kugel
wird in POVRay nicht als trianguliertes Oberflächenmodell sondern als
Volumenkörper dargestellt. Mit diesen Volumenkörpern kann man dann
boolsche Algebra betreiben. Ein Konverter müßte also erstmal die
Oberfläche bestimmen und diese dann triangulieren. Bei ein paar
verschachtelten difference{intersection{difference{merge{difference ...
}}}} dürfte das ein äußerst kompliziertes Problem werden.

Was die Beleuchtung angeht:
Weiche Schatten sind ein riesen Problem in der 3D-Grafik. Der
Rechenaufwand ist enorm. Das einzubauen ist mittels Arealight zwar
relativ einfach die Rechenzeit steigt dann aber extrem an. Das die
Beleuchtung nicht ideal ist weiß ich. In der nächsten Version werde ich
einen Versuch mit radiosity starten. Aber auch das nur optional da die
Berechnungszeit einfach extrem wird.

Matthias

von Jürgen Schuhmacher (Gast)


Angehängte Dateien:

Lesenswert?

Hm, damit dem Drehen habe ich schon durchschaut. Allerdings drehe ich
damit ja nur die Platine! Ich habe z.B. einmal alle Layer in EAGLE
gespiegelt, dann nach POV-RAY die Rückseite vorgefunden, die ich in
POV-RAY wioeder drehen konnte - wie Du oben angibts. Allerdings werden
keine Bauteile auf der Rückseite gezeigt. Nach meinem Verständnis
müsste beim Betrachten der Vorderseite auch die Drähte der Rückseitigen
Bauteile zu sehen sein - und umgekehrt. Wenn Du sagst, daß es geht, dann
muss ich was übersehen haben ...

Ich werde das nochmal testen. Ich habe nun einige
Beleuchtungseinstellungen für EAGLE 3D probiert. Man benutzt IMHO am
Besten das 3-Punkt-Beleuchtungsmodell:

1) Hinten von schräg Links - ca 25%-Lichtanteil
2) Hinten von schräg Rechts - ca 25%-Lichtanteil
3) Vorne von schräg Oben - ca 50%-Lichtanteil

Typische Lichtaussteuerung mit Reserve für Additionen
Maximum = 0,707 ->

-> 0,15 - 0,2 für hintere Lichter und 0,3 bis 0,4 für Frontallicht.

Das 4.Licht sollte aus ambientem Licht bestehen und je nach Stimmung
30-50% des Gesamtlichtes ausmachen- Wenn keine ambientes Licht vorliegt
müssen die Hauptlichter um bis zu Faktor 2 verstärkt werden:

1) 0,3 - 0,4
2) 0,3 - 0,4
3) 0,6 - 0,8

Ausserdem habe ich die Lichter weiter weg und vor Allem höher gesetzt.
Damit initiert man eine gute Reflexion und echte Glanzlichteffekte auf
glatten Flächen. Optimal wird das, wenn die Lichter im selben Winkel
auf die Platine schauen, wie die Kamera.

Um die Ausleuchtung zu kontrollieren, sieht man sich das Bild am Besten
auf dunkelgrauem Hintergrund an - alternativ geht auch schwarz. Das
POV-RAY Window ist ungeeigent, weil dort nur weiss im Hintergrund zu
sehen ist.

Um das Bild nicht zu steril glatt werden zu lassen, kann man die
hinteren Lichter schwach (=10%) türkis bzw. violett einfärben: (RGB =
0,4 0,42 0,42  bzw. RGB= 0,42, 0,4 0,42). Hier wären es 5%.  Das
Frontlicht sollte dann gelb sein. Es MUSS sogar stärker gelb sein, um
den blauen Himmel auszugleichen, zB. mit (RGB = 0,8  , 0,8  0,72) was
10% Gelbfärbung entspräche.

Ich würde allerdings den Himmel sowieso nicht so sehr blau machen: Das
stört die Spiegeleffekte und lässt Pads und Pins dunkler erscheinen,
als die Beschriftung. Diese könnte man wiederum in gelb halten, um sie
nicht so sehr hervortreten zu lassen. Der Himmer oder environment,
Backgnd oder wie es im jeweilgen Prog heisst, sollte fein strukturiert
und farblich ausbalanciert sein, also im Mittel dunkelgrau. Wenn man
eine Orientirung für Spiegelfkächen einfügen möchte, dann macht man den
Boden dunkelgrau und den Himmel hellgrau. Damit ergibt sich in der
Unendlichkeit ein Stosspunkt, den man an Spiegelflächen, die auf den
Equator zielen wiedererkennen kann. Das Auge erkennt damit die starken
Kontraste, die den Spiegeleindruck vermitteln. Ein Beispiel dafür ist
z.B. diese Kugel hier:
http://home.arcor.de/juergen.schuhmacher/images/artmikrovorsatzkugel.jpg

Habe mal ein Beispiel beigepackt (s.o.). Für POV scheint es mir aber
ratsam, noch eine Lampe direkt ÜBER das Board zun hängen, wenn man
keinen Himmel benutzt. Leider habe ich es nicht geschafft, diesen
blauen Himmel, in eine schwaches blau zu verwandeln.

von Reinhar r.salzgeber at gmx de (Gast)


Lesenswert?

Ich bin beeindruckt. Bei mir hat das alles sofort  reibungslos
funktioniert. Das muss unbedingt ausgebaut werden. Ich wäre auch
bereit, mitzuarbeiten. Ich habe die Doku gelesen, blicke aber noch
nicht durch:

Wo genau werden Bauteile festgelegt? Die *.inc-Dateien enthälten
offenbar die Definitionen, wurden aber mit einem Compiler erzeugt. Was
benötige ich dafür?

von Matthias (Gast)


Lesenswert?

Hi

ich glaube ich sollte diesen Kommentar mal aus den *.inc Dateien
rausnehmen. Der Vermerk auf einen einen Compiler in den *.inc Dateien
stammt daher das ich diese Dateien aus einer Datenbasis (viele kleine
Dateien mit jeweils einem Bauteil) erzeuge. Aus dieser Datenbasis wird
dann noch die 3dpack.dat, eine Bauteilstatistik und ein Menge von
POVRay-Dateien erzeugt mit denen ich die Bibliothek auf meiner Webseite
erstelle. Das ganze ist eigentlich mehr ein Programm das selektiv
Textzeilen kopiert und vervollständigt als ein Compiler. Um Bauteile zu
erstellen benötigst du dieses Tool nicht. Aber
http://www.f-lohmueller.de/pov_tut/pov__ger.htm könnte ganz interessant
sein.


Matthias

von Malve (Gast)


Lesenswert?

Hallo zusammen,

hab auch mal versucht mein Layout mit Eagle 3D zu visualisieren, aber
irgendwie klappt das ganze nicht richtig. Auf der Homepage von Matthias
steht, dass man zuerst die Boarddatei in Eagle laden muss und
anschließend das ULP starten muss. Wie kann ich denn das ULP starten?
Für eure Hilfe wäre ich euch sehr dankbar.

Malve

von Malve (Gast)


Lesenswert?

Hat sich erledigt.
Habs hinbekommen.
Die Software ist echt stark. Vielen Dank Matthias!!!

Malve

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.