Sessenbericht vom 13.11. 2025
Teilnehmende
Besprechung Vorgehen
Im ersten Schritt haben wir besprochen, wie das ganze Vorgehen ablaufen soll. Wir wollen uns nun in mehreren Sessions verschieden Programme zum 3D-Modelling ansehen. Dabei wollen wir uns auf das Erstellen von Modellen zum 3D-Drucken und dem Erstellen von 3D-Modellen für Spiele (z.B. Luanti) beschränken. Andere Aspekte von 3D-Design (z.B. Technische Zeichnungen, Architecture) soll nicht berücksichtigt werden.
Wir haben uns auf die folgenden Programme festgelegt:
- OpenSCAD
- FreeCAD
- chili3D
- Dune3D
- Blender
Im ersten Schritt wollen wir uns OpenSCAD und FreeCAD ansehen. Danach die Programme chili3D und Dune 3D ansehen und als letztes uns mit Blender beschäftigen.
OpenSCAD
In der heutigen Session haben wir uns OpenSCAD angesehen. Das Besondere von OpenSCAD ist, dass mit Text beschrieben wird, wie das Objekt aussehen soll. Dabei weißt der Code von OpenSCAD Merkmale einer Programmiersprache auf wie Variablen und Schleifen.
Erstellen von 3D-Objekten
Alle Objekte werden in einem Koordinatensystem mit x-,y- und z-Achse definiert.
Wir haben die folgenden beiden Befehle kennen gelernt:
cube([x,y,z]); - Würfel erstellen
cylinder([h,r1,r2]); - Zylinder erstellen
Auflösung von Kreis-Objekten
Mit dem Parameter $fn kann man bei Kreis-Objekten festlegen, aus wie vielen Teilsegmenten der Kreisbogen gebildet werden soll.
Fixpunkt des Objekts in die Mitte setzen
cube([x,y,z], center = true) - Schalter center
Objekte im Raum verschieben und Drehen
Um Objekte verschieben und drehen zu können werden die folgenden Funktionen verwendet.
translate([x,y,z]) - Objekt im Raum verschieben
rotate([x,y,z]) - Objekt um den Koordinaten-Ursprung drehen
Der folgende Befehl erzeugt beispielsweise einen Zylinder mit der Höhe 15mm und einem Radius von 5mm, der um 90° um die y-Achse gedreht und 50mm in Richtung der x-Achse verschoben ist.
translate([50,0,0]) rotate([0,90,0]) cylinder(15, 5 , 5, center=true)
Die for-Schleife
Das schöne an OpenSCAD sind die for-Schleifen, mit denen man direkt mehrere Objekte erzeugen kann, die sich z.B. symmetrisch um einen Punkt drehen. Dabei können auch Variablen werwendet werden.
for (a=[0:22.5:360]) {
rotate([0,0,a]) translate([10,0,0]) rotate([0,90,0]) cylinder(15, 5 , 5, center=true, $fn = 360);
}
Module
Als nächstes haben wir noch Module kennen gelernt. Module können benutzt werden um neben den Standard-3D-Objekten weitere Objekte zu erstellen, die wieder verwendet werden können. Hier können dabei für die Module ebenso Parameter festgelegt werden.
module pipering(r=5) {
for (a=[0:22.5:360]) {
rotate([0,0,a]) translate([r,0,0]) rotate([0,90,0]) cylinder(15, 5 , 5, center=true, $fn = 360);
}
}
Das kann z.B. dazu verwendet werden. Um das gesamte Modul im Raum zu verschieben.
translate([0,0,10]) pipe(70);
Boolsche Operationen
Als letztes haben wir uns noch die boolschen Operationen angesehen.
Damit können zwei Objekte auf eine ganz bestimmte Art mit einander verwoben werden.
union() - Mit union werden die zwei Objekte miteinander verschmolzen und das Ergebnis zeigt eine Kombination aus den beiden Objekten
interesect() - Bei intersect bleibt die Überschneidung der beiden Objekten übrig
difference() - Bei difference wird der Bereich, der sich Überschneidet aus dem ersten Objekt herausgeschnitten.
Ein Beispielhafter code könnte z.B. so aussehen.
difference() {
cylinder (h = 4, r=1, center = true, $fn=100);
rotate ([90,0,0]) cylinder (h = 4, r=0.9, center = true, $fn=100);
}
Hilfreiche Links