3dme: Unterschied zwischen den Versionen

Zeile 10: Zeile 10:
 
[[Category:Hardware]]
 
[[Category:Hardware]]
 
[[Category:Software]]
 
[[Category:Software]]
 +
 +
== Beischreibung ==
 +
 +
Mit unserem selbstgebauten 3D-Scanner lassen sich Personen, aber auch andere Gegenstände in die dritte Dimension bringen. Gescannte Objekte können danach mit ein wenig Nachbearbeitung mit unserem 3D-Drucker ausgedruckt werden. Das ganze funktioniert ohne einen teuren industriellen Scanner, sondern schlicht mit einer Kinect, wie sie mit der XBOX verkauft wurde.
  
 
== Aufbau ==
 
== Aufbau ==

Version vom 16. Juni 2014, 14:31 Uhr

Crystal Clear action run.png
3D-me

Status: unbekannt

Cat 3dme.jpg
Beschreibung 3-Dimensionales Selbstbild
Autor: ptflea krisha xoquox schnitzl
PayPal Spenden für 3dme

Beischreibung

Mit unserem selbstgebauten 3D-Scanner lassen sich Personen, aber auch andere Gegenstände in die dritte Dimension bringen. Gescannte Objekte können danach mit ein wenig Nachbearbeitung mit unserem 3D-Drucker ausgedruckt werden. Das ganze funktioniert ohne einen teuren industriellen Scanner, sondern schlicht mit einer Kinect, wie sie mit der XBOX verkauft wurde.

Aufbau

Drehteller

Für die ersten Experimente haben wir einen Drehteller mit zentral ausgerichteten Skaterrollen gebaut. Der Nachteil war, dass wir ihn nicht motorisieren konnten. Deswegen haben wir einen Bürodrehstuhl zerlegt, ihn mit einer Platte und einem Fensterhebermotor versehen. Der Zahnriemen stammt aus einem Scanner und die Zahnräder aus unserem 3D-Drucker.

erster Drehteller
erster Drehteller (Detail)
Drehteller
Drehteller (kleines Zahnrad)
Drehteller (Übersetzung)
Drehteller (grosses Zahnrad)

Legokinecthebebühne

Hebebühne (Volle Größe)


Die Hebebühne besteht grösstenteils aus gebrauchten Teilen. Die Bodenplatte mit 4 einstellbaren Füssen war im früheren Leben eine Zinnbenetzungswaage, das Aluprofil eine Transportschiene für ein Dehnfugenprofil und der Antrieb ist ein Scheibenwischermotor. Das Lego aus den Jugendtagen findet auch wieder eine Verwendung.

Hebebühne (Detail)
Hebebühne (Detail)


Vorgehen

Scannen mit Skanect

Das Objekt wird mit Skanect gescannt.

Für die Vorschau (Feedback) sollte die Qualität auf Low gestellt werden, um möglichst viele FPS zu erreichen. Gegebenfalls funktioniert die GPU Einstellung für Feedback nicht, dann kann auf CPU umgeschalten werden. Umso höher die FPS desto weniger Fehler (in der Form "Go back to last position") treten auf.

Skanect verwendet Ordner um die Rohdaten zu speichern. Idealweiser vergibt man einen sinnvollen Ordnernamen bevor man mit dem Scannen beginnt. Die Speicherfunktion ist nämlich nicht ganz intuitiv.

Für einen Büstenscan wählt man die Einstellung Body und lässt die Box auf 1m. Für einen Fullbodyscan stellt man den Wert am besten auf 1,2m, wählt evenfalls Body aus und stellt die Height auf x2.

TIPP:

Skanect Config.png

In der Version 1.6 kann eine INI Datei verwendet werden, die die Höhe der Startposition der Kinect in der Box festlegt. Unter Prepare -> New -> Configfile -> Config.ini mit folgenden Inhalt auswählen

[BoundingBox] 
center-y-as-height-percent = 0.9

Damit kann der Scan gleich in Kopfhöhe begonnen werden.

Nach dem Einstellen dieser Werte startet man den Scan mit "Start". Das zu scannende Objekt sollte sich nun in der Mitte der dargestellten Box befinden. Objekt ausrichten, falls nötig. Ein anschließender Klick auf das Record Symbol startet den Scan. Während des Scans bewegt sich die Legokinecthebebühne nach unten und der Drehteller dreht das Objekt. Sollte Skanect mit "Go back to last position" meckern, sollte die Hebebühne gestoppt und der Drehteller zurück gedreht werden. Alternativ kann man auch eine Umdrehung abwarten. Sollte dieser Hinweis gleich zu Beginn des Scans auftreten, muss entweder die CPU für Feedback ausgewählt, mehr Objekt ins Bild gebracht oder der Hintergrund geändert werden.

Ist das Objekt fertig gescannt, den Stopp Button drücken und die Ergebnisse im Share Register abspeichern. Anschließend kann mit der GPU unter Fusion und Settings auf High eine detailreiche Rekonstruktion gestartet werden.

Abschließend speichert man das rekonstruierte Objekt als .obj im Share Register. Alternativ kann man davor auch noch die Colorize Funktion verwenden - dies wird aber für den 3D Druck nicht benötigt.

Bearbeiten mit Meshlab

Meshlab wenn möglich mit Grafikkarte starten (Rechtsklick > "Mit Grafikprozessor Ausführen" > Grafikkarte auswählen)

Alles unnötige mit "Select Vertexes" entfernen. (Standfuß, ggf. auch am Kopf etwas ausschneiden).

Dann den Filter "Remashing, Simplification and Reconstruction" -> "Surface Reconstruction: Poisson" anwenden. Ein guter Richtwert ist 11/7/1/1!

Abspeichern als *.obj.

Bearbeiten mit Meshmixer

Meshmixer ebenfalls mit Grafikkarte starten.


Kopfdeckel schließen

Es kann beim Scan passieren, dass der Kopf ein Loch hat. Dieses Loch muss gefüllt werden. Links im Werkzeugmenü "Sculpt" auswählen und mit einem der "Brushes", je nach Umfang, das Loch schließen ("Draw" und "Draw2" funktionieren recht gut). Dieser Vorgang erfordert etwas Fingerspitzengefühl, einfach etwas mit den gegebenen Tools rumspielen bis das gewünschte Ergebnis passt.


Waagrecht abschneiden

Anschließend müssen wir das Modell noch ausrichten, d.h. wir wollen, dass es senkrecht steht, sonst würde es umkippen. Linke Werkzeugleiste > "Edit" > "Plane Cut". Das Gitter muss jetzt mit Hilfe des roten "Bogens" auf genau 90,00° (genau!) gedreht werden. Ein kleiner Tipp: Wenn ihr die Maus nicht während ihr den Bogen anklickt, auf den neuen Kreis richtet, kann man 90° gut einstellen. Jetzt mit dem blauen Pfeil das Gitter noch nach unten fahren um so den Standfuß zu erzeugen. Wenn ihr das Modell auf den Kopf dreht, kann man relativ gut sehen wie viel man von den Füßen noch wegnehmen muss. Das Häckchen bei "Hard Edge" aktivieren. Nicht vergessen auf "Accept" zu klicken. Exportieren als binäre STL.

Druck vorbereiten mit KISSlicer

KISSlicer öffnen. Das soeben gespeicherte *.stl file mit "Open" laden. Ein paar Einstellungen sind noch zu beachten.

Unter Style (oder direkt in die _styles.ini):

[body]
layer_thickness_mm=0.2
extrusion_width_mm=0.5
num_loops=1
skin_thickness_mm=0.2
infill_extrusion_width=0.5
infill_density_denominator=9
stacked_layers=1
use_destring=1
use_wipe=1
loops_insideout=1
infill_st_oct_rnd=0
inset_surface_xy_mm=0
seam_jitter_degrees=0
seam_depth_scaler=0.5


Unter Support (oder direkt in die _supports.ini):

[Full Body mit Bodensupport]
support_sheathe=0
support_density=0
support_inflate_mm=0
support_gap_mm=0.5
support_angle_deg=60
support_z_max_mm=-1
sheathe_z_max_mm=-1
raft_mode=2
prime_pillar_mode=0
raft_inflate_mm=1

Noch die Height (rechts oben) auf die gewünschte Größe setzen, dabei beachten was der Drucker kann. Wäre ja ärgerlich, wenn er erst beim Kopf abbricht oder gar den 3D Drucker zerstört. 105 (mm) ist unser Wert. Jetzt "Slicen", "Save" als *.gcode.

fertiger Scan

Head

fertiger Druck

FullBody im Drucker
Head