3D-Design mit diversen Programmen

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