OpenScad
Zurück
OpenScad
Eine Schachfigur zeichnen in 10 Schritten :
OpenSCAD ist eine freie CAD-Software auf einer textbasierten Programmiersprache mit der 3D-Modelle erzeugt werden. Die Objekte bestehen
aus einfachen geometrischen Grundkörpern und werden mit Transformationen und Modifikationen zu einem komplexen 3D-Modell vereinigt.
Im folgenden Beispiel erstellen wir auf diesen Weg eine Schachfigur.
Schritt 1: Kugel
sphere(r = 20);
Schritt 2: Kegel
cylinder(h = 30, r1 = 20, r2 = 0);
Schritt 3: Kegel positionieren
union()
{
sphere(r = 20);
translate([0, 0, 10 ])
cylinder(h = 30, r1 = 17.3, r2 = 0);
}
Schritt 4: Einschnitt
difference()
{
union()
{
sphere(r = 20);
translate([0, 0, 10])
cylinder(h = 30, r1 = 17.3, r2 = 0);
}
cube([40, 5, 40]);
}
Schritt 5: Einschnitt positionieren
union()
{
// Kopf
translate([0, 0, 120])
difference()
{
union()
{
// Tropfenform
sphere(r = 20);
translate([0, 0, 10])
cylinder(h = 30, r1 = 17.3, r2 = 0);
}
//Einschnitt
translate([-20, 0, 0])
cube([40, 5, 40]);
}
}
Schritt 6: Einschnitt im richtigen Winkel
union()
{
// Kopf
translate([0, 0, 120])
difference()
{
union()
{
// Tropfenform
sphere(r = 20);
translate([0, 0, 10])
cylinder(h = 30, r1 = 17.3, r2 = 0);
}
//Einschnitt
rotate([45, 0, 0])
translate([-20, 0, 0])
cube([40, 5, 40]);
}
}
Schritt 7: Kugel an der Spitze
union()
{
// Kopf
translate([0, 0, 120])
difference()
{
union()
{
// Tropfenform
sphere(r = 20);
translate([0, 0, 10])
cylinder(h = 30, r1 = 17.3, r2 = 0);
// Kugel an der Spitze
translate([0, 0, 30 + 10])
sphere(r = 6);
}
//Einschnitt
rotate([45, 0, 0])
translate([-20, 0, 0])
cube([40, 5, 40]);
}
}
Schritt 8: Körper
union()
{
// Kopf
translate([0, 0, 120])
difference()
{
union()
{
// Tropfenform
sphere(r = 20);
translate([0, 0, 10])
cylinder(h = 30, r1 = 17.3, r2 = 0);
// Kugel an der Spitze
translate([0, 0, 30 + 10])
sphere(r = 6);
}
//Einschnitt
rotate([45, 0, 0])
translate([-20, 0, 0])
cube([40, 5, 40]);
}
// Hals
cylinder(h = 120, r1 = 18, r2 = 12);
}
Schritt 9: Sockel
union()
{
// Kopf
translate([0, 0, 120])
difference()
{
union()
{
// Tropfenform
sphere(r = 20);
translate([0, 0, 10])
cylinder(h = 30, r1 = 17.3, r2 = 0);
// Kugel an der Spitze
translate([0, 0, 30 + 10])
sphere(r = 6);
}
//Einschnitt
rotate([45, 0, 0])
translate([-20, 0, 0])
cube([40, 5, 40]);
}
// Hals
cylinder(h = 120, r1 = 18, r2 = 12);
// Sockel
cylinder(h = 20, r1 = 35, r2 = 25);
}
Schritt 10: Kragen
$fn=60; // Rendern
union()
{
// Kopf
translate([0, 0, 120])
difference()
{
union()
{
// Tropfenform
sphere(r = 20);
translate([0, 0, 10])
cylinder(h = 30, r1 = 17.3, r2 = 0);
// Kugel an der Spitze
translate([0, 0, 30 + 10])
sphere(r = 6);
}
//Einschnitt
rotate([45, 0, 0])
translate([-20, 0, 0])
cube([40, 5, 40]);
}
// Hals
cylinder(h = 120, r1 = 18, r2 = 12);
// Sockel
cylinder(h = 20, r1 = 35, r2 = 25);
// Kragen
translate([0, 0, 90])
intersection()
//Erstellt den Schnittpunkt aller untergeordneten Knoten.
{
cylinder(h = 20, r1 = 20, r2 = 0);
translate([0, 0, 7])
mirror([0, 0, 1])
cylinder(h = 20, r1 = 20, r2 = 0);
}
}