Flächen im Raum mit R als STL speichern

Flächen im Raum mit R als STL speichern


Wir hatten es bereits versprochen, und Andrea Cantieni hat nun geliefert. Hier eine kurze Anleitung, wie man R dazu verwenden kann, die Dichtefunktion der Bivariaten-Standard-Normalverteilung (durch uns Laien Glockenkurve des Herrn Gauss genannt) darzustellen. R eignet sich darüber hinaus dazu, beliebige Flächen im Raum darzustellen. Diese Flächen lassen sich danach als STL-Datei exportieren, und auf einem 3D-Drucker ausdrucken.

Das Skript in R:

library(rgl)
library(r2stl)
f <- function(x,y) { z <- 1/(2*pi)*exp(-1/2*(x^2+y^2)) }  
x <- seq(-3,3,0.02)
y <- seq(-3,3,0.02) 
z <- outer(x, y, f)
persp3d(x,y,z)
r2stl(x,y,z,filename=“c:/pdf.stl“)

Erklärungen dazu:

  1. Die Dichtefunktion der Bivariaten-Standard-Normalverteilung hatten wir ja schon, nämlich (in R code): f <- function(x,y) { z <- 1/(2*pi)*exp(-1/2*(x^2+y^2)) }
  2. Man muss dann nur noch einen Grid definieren x <- seq(-3,3,0.02) y <- seq(-3,3,0.02) und
  3. den Funktionswert an jeder Stelle berechnen z <- outer(x, y, f)
  4. In R kann man sogenannte Packages laden, um die Base-Funktionalität zu erweitern. R installieren und danach die in den nächsten Schritten runtergeladenen Packages in R via Menü.[Pakete].[Installiere Paket(e) aus lokalen Zip-Dateien…] installieren.
  5. Im Package rgl gibts die schöne Funktion persp3d() mit der sich Flächen im Raum darstellen lassen: persp3d(x,y,z)
  6. Mit der Funktion r2stl(x,y,z,filename=“dateiname“.stl) aus dem Package r2stl kann man schliesslich die (hier sehr grosse) STL-Datei schreiben: r2stl(x,y,z,filename=“c:/pdf.stl“)

Definiert man in r2stl aus Schritt 6 keine Mindestgrösse des Objekts im STL, dann muss das Objekt in Cura bei der Druckverarbeitung stark skaliert werden. Dank der genügend grossen Datenmenge von fast 32MB ist dies allerdings kein Problem.

Gregor Luetolf

Über Gregor Luetolf

Kommentare