Schalenerzeugung mit Blender

Verwendung der freien Software Blender zur Erzeugung von Finite-Elemente-Schalenstrukturen in Z88Aurora

Bei der Berechnung von Strukturen im Fahrzeugbau spielen Schalenelemente eine wichtige Rolle. Leider fehlt mir bei Z88Aurora eine Möglichkeit, auf schnelle und einfache Weise Finite-Elemente-Modelle aus Schalen zu erzeugen. Hierzu habe ich mir eine Methode ausgedacht, die ich hier vorstellen möchte. Es wird ausschließlich lizenzfrei verfügbare Software verwendet:

  • BLENDER als Grafiksoftware zur Erstellung der Finite-Elemente-Modelle
  • PYTHON3 als Programmiersprache für die Schnittstellenskripte

Blender erhält man kostenlos unter http://www.blender.org, Python unter http://www.python.org. Beide Programmpakete sind auch als portable Versionen erhältlich, d.h. sie laufen installationsfrei auch vom Stick und können damit nach Bedarf auf praktisch jedem Windows-Rechner gestartet werden. Blender gilt als schwierig erlernbar, aber für unsere Zwecke ist das praktisch ohne Belang. Zur Erzeugung unserer Finite-Elemente-Modelle benötigen wir fast nur den Bereich „Edit-Mode“. Tutorials zu diesem Thema sind zahlreich im Netz zu finden, z.B.: http://wiki.blender.org/index.php/Doc:2.6/Manual/Modeling/Meshes. Die Programmiersprache Python ist leicht erlernbar, der Code leicht lesbar. An dieser Stelle benötigen wir das alles nur, um die beigefügten Skripte „obj2z88structure.py“ und „z88structure2obj.py“ zu starten. Da sowohl Python 3 als auch Blender plattformübergreifend angelegt sind, sollten die Skripte auch auf anderen Betriebssystemen funktionieren. Ich habe es allerdings nicht ausprobiert. Man muss nur beachten, dass Python 3–Skripte nicht innerhalb einer Python 2 – Umgebung lauffähig sind. Getestet wurden die Skripte mit Blender in den Versionen 2.69 und 2.75.

Download der Python-Skripte: DOWNLOAD

schalen-blender_1

1. Wir öffnen Blender und es erscheint die gezeigte Standardszene. Man erkennt eine Kamera und eine Lampe, die uns hier nicht interessieren müssen, sowie als geometrisches Objekt einen Würfel („Cube“), den wir für unsere Zwecke modifizieren wollen. Achten Sie bitte darauf, dass unten „Object Mode“ eingestellt ist. Blender kennt wie Z88 kein Einheitensystem, der Standardwürfel besitzt hier eine Länge von „2“. Wir werden dies in diesem Beispiel als mm annehmen. Zunächst vergrößern wir unseren Würfel auf eine Kantenlänge von 30 mm, also um den Faktor 15. Das Anwählen erfolgt in Blender ungewöhnlich mit der rechten Maustaste. Die Kantenlinien erscheinen danach orange hervorgehoben.

schalen-blender_2

2. Der Befehl zum Vergrößern (Skalieren) erfolgt durch die Keyboard-Eingaben „S“ – „15“ – „Enter/Return“. Anschließend wechseln wir zur weiteren Bearbeitung unserer Geometrie in den „Edit Mode“.

schalen-blender_3

3. Der Edit Mode kennt drei Auswahlmodi: Vertices (Knoten), Edges (Kanten) und Faces (Seiten). Im Auswahlmodus Faces sind die Mittelpunkte der Seiten durch kleine Quadrate gekennzeichnet.

schalen-blender_4

4. Wir wählen die vorderste Seite an (Achtung: Rechtsklick!) und geben am Keyboard den Löschbefehl „X“ ein. Es erscheint das gezeigte Menü, in dem wir „Faces“, diesmal mit Linksklick, auswählen. Jeder dieser Befehle lässt sich in Blender durch die Tastenkombination „STRG/CTRL“ und „Z“ rückgängig machen.

schalen-blender_5

5. Auf die gleiche Weise wird die gegenüberliegende Seite gelöscht. Es bleibt die gezeigte Röhre übrig.

schalen-blender_6

6. Ziel unseres Beispiels ist die Erzeugung einer Geometrie, bei der jedes viereckige Face in ein Schalenelement Nr. 23 umgewandelt werden kann. Sind in der Geometrie dreieckige Faces vorhanden, wird eine Struktur aus dreieckigen Schalenelementen Nr. 24 erzeugt. Z88AuroraV2 ist nicht in der Lage, die Schalenelemente Nr. 23 und Nr. 24 innerhalb eines Finite-Elemente-Modells zu verarbeiten. Aus diesem Grund werden, sobald die Struktur dreieckige Faces aufweist, alle viereckigen Faces in zwei dreieckige Schalenelemente Nr. 24 aufgeteilt. Um die gewünschte Anzahl Faces zu erzeugen (Elementdichte), werden alle vorhandenen Faces mit dem Befehl „A“ ausgewählt. Zweimaliges Ausführen des Befehls „Subdivide“ erzeugt die gewünschte Elementanzahl pro Kante.

schalen-blender_7

7. Wir verdoppeln nun unsere Elementanzahl durch den Befehl „Shift“-„D“, anschließend: „X“ „-30“ (Minus 30). Unsere verdoppelte Struktur wird dadurch um 30 mm in (Minus-) x- Richtung versetzt abgebildet.

schalen-blender_8

8. Eine viermalige Wiederholung dieser Operation erzeugt eine insgesamt 150 mm lange Röhre aus Viereckelementen.

schalen-blender_9

9. Die Fünf durch Verdopplung erzeugten Teilstücke sind jedoch noch nicht miteinander verbunden. Wir wählen deshalb mit „A“ alle Faces aus und klicken den Befehl „Remove Doubles“. Blender quittiert diesen Befehl in unserem Fall mit „Removed 64 Vertices“.

schalen-blender_10

10. Anschließend wechseln wir wieder in den “Object Mode“ und exportieren unsere Struktur über die Menüpunkte „File“ – „Export“ – „Wavefront (.obj.)“.

schalen-blender_11

11. Die Struktur sollte als „z88structure.obj“ in den gleichen Ordner exportiert werden, in dem das benötigte Schnittstellenskript „obj2z88structure.py“ abgelegt ist.

schalen-blender_12

12.  Python wird gestartet und das passende Skript  über „File“ – „Open“ – „obj2z88structure.py“ geladen. Der Skriptname sollte als „obj-to-z88structure“ gelesen werden, weil das Skript aus der Datei „z88structure.obj“ die von Z88AuroraV2 lesbare Datei „z88structure.txt“ erzeugt.

schalen-blender_13

13. Über den Menübefehl „Run“ – „Run“ wird das Skript gestartet, das Skript schreibt die Datei „z88structure.txt“.

schalen-blender_14

14. Kopiert man die so erzeugte Datei in einen leeren Projektordner, so erhält man beim Starten von Z88AuroraV2 die gezeigte Fehlermeldung. Da eine Z88control.txt automatisch angelegt wird, ist diese Meldung ohne Belang.

schalen-blender_15

15. Wenn alles geklappt hat, erscheint unsere Struktur wie abgebildet.

schalen-blender_16

16. Als Wandstärke für unsere Schalen wurde hier 1 mm gewählt. Achtung: Die erzeugte Geometrie repräsentiert die Mittelfläche der abgebildeten Struktur. Unser Vierkantrohr hat damit außen eine Breite und Höhe von je 31 mm und eine Innenbreite und -höhe von 29 mm.

schalen-blender_17

17. Materialauswahl, in diesem Beispiel einfach Baustahl!

schalen-blender_18

18. Der hintere Rand wurde jeweils in X-, Y- und Z-Richtung festgehalten, der vordere Rand mit 10 Einzelkräften je 200 N in Z-Richtung beaufschlagt.

schalen-blender_19

19. Solver.

schalen-blender_20

20. Postprocessing, hier Spannungen in der Eckknoten. Die größte ermittelte Vergleichsspannung beträgt 261 N/mm2.

schalen-blender_21

21. Die größte ermittelte Verschiebung in z-Richtung beträgt 0,662 mm.

Plausibilitätskontrolle

Nach der elementaren Biegetheorie (Schub vernachlässigt) beträgt die maximale Verschiebung in Richtung des Kraftangriffs:

f = \frac{ F \cdot I^{ 3 } }{ 3 \cdot E \cdot I_{ yy } } = 0,607 mm

\text{mit}\, F=2000N,\, l=150mm,\, E=206000N/mm^2,\, I_{yy}=18000mm^4

Die höchste Längsspannung beträgt:

\sigma_{ xx } =\frac{ F \cdot l \cdot r } { I_{ yy } } = 258 N/mm^2

\text{mit}\,r = \frac{ 31mm } { 2 } = 15,5 mm

Die Übereinstimmung ist also trotz der relativ groben Vernetzung in diesem Beispiel sehr gut. Selbstverständlich eignet sich das Verfahren auch für komplexere Strukturen, wie die  Beispiele unten zeigen.

schalen-blender_22

22. Möchte man eine in Z88 berechnete Strukturverformung in Blender laden, so sollte man die Dateien „z88structure.txt“ und „z88o2.txt“ in den Ordner verschieben, in dem das Python-Skript „z88structure2obj.py“ ( lies: z88structure – to – obj !) liegt. Nach dem Ausführen („Run“) wird ein Skalierungsfaktor für die Verformungen abgefragt. Der Wert 1 überträgt die Verformungen maßstäblich in die Datei „z88structure.obj“.

schalen-blender_23

23. Im hier gezeigten Beispiel wurde die Struktur eines Segelflugzeugs mit drei- und viereckigen Faces nachgebildet (1). Die Verformung wurde in Z88AuroraV2 mittels Dreickschalen vom Typ 24 berechnet (2), die verformte Struktur wieder in Blender importiert (3) und von dort in die gezeigte Szene eingebaut (4).

schalen-blender_24

24. Für ein Demovideo wurde die Geometrie eines Gummipuffers in Blender erzeugt (1) und in ein Finite-Elemente-Modell aus Viereckschalen des Typs 23 umgewandelt (2). Die verformte Struktur (3) dient dann in Kombination mit der ursprünglichen Gestalt zur Erzeugung des Videos (4). Das Video kann hier abgerufen werden: YouTube

cclaus

Comments are closed.