3D-Personenscanner

Für die Maker Faire Berlin 2015 und die Maker Faire Hannover 2016 hat sich der Freie Maker e.V. etwas ganz besonderes ausgedacht. Jeder Besucher erhält die Möglichkeit von sich einen 3D-Personenscan erstellen zu lassen. Nach dem Scan erhält die gescannte Person einen Coupon mit Download-URL. Über diese URL kann der Scan bequem zu Hause heruntergeladen werden.

Der Scan kann beispielsweise verwendet werden um ein 3D-Druck “Selfie” zu erzeugen. Im folgenden Text wird erklärt wie man die Dateien aufbereiten kann, um sie mit einem 3D-Drucker oder mittels eines 3D-Druckdienstleisters ausdrucken zu lassen.

Aufbereiten der Datei für den eigenen 3D-Drucker.

Wir haben uns bewusst dazu entschieden als Download das Punktwolkenformat PLY anzubieten, da dieses Format in einer Datei sowohl die 3D-Daten als auch die Farbinformationen enthält.

Die meisten 3D-Drucker für den heimischen Schreibtisch verarbeiten allerdings das STL-Format. Um den 3D-Scan mit einem solchen Gerät ausdrucken zu können muss die heruntergeladene PLY-Datei erst in eine STL-Datei umgewandelt werden. Hierzu wird das kostenlose Programm MeshLab benötigt.  MeshLab ist ein beliebtes Programm zur Weiterverarbeitung von Punktwolken. Da es sich bei dem von unser erzeugtem PLY-Format auch um eine Punktwolke handelt, ist MeshLab bestens geeignet. Darüber hinaus ist MeshLab für jedes gängige Betriebssystem verfügbar.

Nach der Installation von MeshLab wird das Programm gestartet. Man wird mit einem leeren Fenster begrüßt.

 

Bildschirmfoto 2015-10-01 um 18.40.10

Über das Icon “Import Mesh” wird der heruntergeladene 3D-Scan in die leere Szene importiert.

Bildschirmfoto 2015-10-01 um 18.43.16

Anschließend erscheint die gescannte Person als Punktwolke im Hauptfenster. Mit Hilfe der Maus kann die Punktwolke in beliebige Richtungen gedreht werden, um den Scan von allen Seiten betrachtenzu können.

Bildschirmfoto 2015-10-01 um 19.03.40

Um aus dieser Punktwolke nun ein druckbares Format zu erzeugen, müssen diverse Filter auf die Punktwolke angewendet werden. Als erstes wendet man den “Compute Normals for Point Set”-Filter an.

Bildschirmfoto 2015-10-01 um 19.06.49

Nach Auswahl von “Filters -> Point Set -> Compute Normals for Point Set” erscheint  ein Dialog in welchem einige Werte eingestellt werden können.

Bildschirmfoto 2015-10-01 um 19.09.38

Hier wird lediglich der Wert “Neighbour num” von 10 auf 20 umgestellt. Dieser Wert funktionierte bei unseren Test ganz gut. Es kann jedoch beim Einstellen auch experimentiert werden, ggf. führen andere Werte zu besseren Ergebnissen.

Beim nächsten Schritt wird aus dem Scan, der bisher nur aus einzelnen “Punkten” besteht, ein geschlossenes Objekt. Hierzu wählt man wiederum einen Filter aus der Filterliste.

Diesmal wählt man “Filters -> Point Set -> Surface Reconstruction Poisson”.

Bildschirmfoto 2015-10-01 um 19.11.43

Es erscheint wieder ein Dialog mit Einstellungen. In diesem Dialog können die voreingestellten Werte benutzt werden.

Bildschirmfoto 2015-10-01 um 19.43.39

Nach einem Klick auf “Apply” wird ein sogenanntes 3D-Mesh, ein Objekt mit geschlossener Oberfläche erzeugt.

Bildschirmfoto 2015-10-01 um 19.45.59

 Da das erzeugte Mesh noch “Löcher” enthalten kann muss das Mesh vor dem Exportieren im richtigen Format noch repariert werden. Hierzu verwendet man einen weiteren MeshLab Filter. Hierzu wählt man im Menü die folgende Option “Filter -> Cleaning and Reparing -> Merge Close Vertices”

Bildschirmfoto 2015-10-01 um 20.01.28

Danach öffnet sich ein Dialog mit Einstellungsmöglichkeiten. Diesen kann man ohne Veränderung der Werte einfach bestätigen.

Bildschirmfoto 2015-10-01 um 19.49.13

Dieses Mesh kann nun über die Funktion “File -> Export as”  von MeshLab im STL-Format exportiert werden. Es öffnet sich ein Dialog indem man als Export Format “STL” wählt.

Bildschirmfoto 2015-10-01 um 19.53.16

Der darauf folgende Dialog kann ohne weitere Einstellungen einfach bestätigt werden. Die Datei liegt nun in einem druckbaren Format vor.

Optional kann noch ein kleiner Sockel erzeugt werden. Dieser Sockel ist nicht nur geeignet dem 3D-Selfie zu einem stabileren Stand zu verhelfen, sondern vereinfacht auch den Ausdruck mit einem 3D-Drucker.

Zum Erzeugen eines kleinen runden Sockels benötigt man eine Software zur 3D-Modellierung. Im folgenden wird OpenScad verwendet. Auch OpenScad ist kostenlos und für jedes gängige Betriebssystem erhältlich.  Nach der Installation von OpenScad kann mit der Erstellung des Sockels fortgefahren werden.

In OpenScad wird durch eine Art Programmier- bzw. Scriptsprache in 3D modelliert. Aber keine Sorge, in diesem Fall sind es nur wenige Zeilen Code. Zuerst öffnet man OpenScad und tippt auf der linken Seite in den Codeeditor folgende Zeilen ein:

translate([-130,-120,0])import("figur.stl");
 cylinder(20,40,40,true);

Wobei “figur.stl” natürlich durch den vorher gewählten Exportnamen ersetzt werden muss.

Bildschirmfoto 2015-10-01 um 20.25.28

Das ganze wird dann mittels “Datei -> Speichern unter…” im gleichen Verzeichnis wie die vorher mit MeshLab exportierte STL-Datei gespeichert. Anschließend erscheint nach einem Klick auf “Design -> Rendern” das gewünschte Ergebnis.

Bildschirmfoto 2015-10-01 um 20.23.49

Falls die gescannte Person nicht genau auf dem Sockel stehen sollte, so kann man mit den Werten in translate([x,y,0]) die Position noch anpassen bis es passt. Wenn alles passend ist kann die finale Datei zum Drucken erzeugt werden. Hierzu führt man den oben genannten Schritt “Design -> Rendern” zur Sicherheit noch einmal aus, damit alle aktuellen Änderungen wirksam werden. Zuletzt wird das komplette 3D-Modell noch ein letztes Mal über “Datei -> Exportieren -> STL Exportieren…” mit OpenScad für den 3D-Drucker exportiert.

Bildschirmfoto 2015-10-01 um 20.27.32

Das so erzeugte 3D-Modell kann nun mit einem 3D-Drucker zu Hause ausgedruckt werden. Alternativ gibt es auch kommerzielle Angebote, wo man seinen Druck in Auftrag geben kann:

Leider besitzt das STL-Format keinerlei Farbinformationen. Möchte man sich selbst in Farbe beispielsweise bei einem 3D-Druckdienstleister ausdrucken lassen, so muss man den 3D-Scan mit MeshLab anders aufbereiten.