# OpenSCAD Schachfigur zeichnen

## 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.

<table border="1" id="bkmrk-schritt-1%3A-kugel-sph" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 64.7025%;"></col><col style="width: 35.4167%;"></col></colgroup><tbody><tr><td colspan="2">Schritt 1: Kugel</td></tr><tr><td>```java
sphere(r = 20);
```

  
</td><td>[![l1.png](https://wiki.oberlab.de/uploads/images/gallery/2025-03/scaled-1680-/vXcMeNhXbbZz2C2W-l1.png)](https://wiki.oberlab.de/uploads/images/gallery/2025-03/vXcMeNhXbbZz2C2W-l1.png)</td></tr><tr><td colspan="2">Schritt 2: Kegel</td></tr><tr><td>```java
cylinder(h = 30, r1 = 20, r2 = 0);
```

  
</td><td>[![l2.png](https://wiki.oberlab.de/uploads/images/gallery/2025-03/scaled-1680-/PzUsh4tEElUaZOj6-l2.png)](https://wiki.oberlab.de/uploads/images/gallery/2025-03/PzUsh4tEElUaZOj6-l2.png)</td></tr><tr><td colspan="2">Schritt 3: Kegel positionieren  
</td></tr><tr><td>```java
union()
{
sphere(r = 20);
translate([0, 0, 10 ])
cylinder(h = 30, r1 = 17.3, r2 = 0);
}
```

  
</td><td>[![l3.png](https://wiki.oberlab.de/uploads/images/gallery/2025-03/scaled-1680-/OX6eSyW9KyfvJRNY-l3.png)](https://wiki.oberlab.de/uploads/images/gallery/2025-03/OX6eSyW9KyfvJRNY-l3.png)</td></tr><tr><td colspan="2">Schritt 4: Einschnitt</td></tr><tr><td>```java
difference()
{
union()
{
sphere(r = 20);
translate([0, 0, 10])
cylinder(h = 30, r1 = 17.3, r2 = 0);
}
cube([40, 5, 40]);
}
```

  
</td><td>[![l4.png](https://wiki.oberlab.de/uploads/images/gallery/2025-03/scaled-1680-/PvKHoL3mLDyTeUnN-l4.png)](https://wiki.oberlab.de/uploads/images/gallery/2025-03/PvKHoL3mLDyTeUnN-l4.png)</td></tr><tr><td colspan="2">Schritt 5: Einschnitt positionieren</td></tr><tr><td>```java
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]);
}
}
```

  
</td><td>[![l5.png](https://wiki.oberlab.de/uploads/images/gallery/2025-03/scaled-1680-/Khx7r9lVspBbY5yu-l5.png)](https://wiki.oberlab.de/uploads/images/gallery/2025-03/Khx7r9lVspBbY5yu-l5.png)</td></tr><tr><td colspan="2">Schritt 6: Einschnitt im richtigen Winkel</td></tr><tr><td>```java
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]);
}
}
```

  
</td><td>[![l6.png](https://wiki.oberlab.de/uploads/images/gallery/2025-03/scaled-1680-/XsYt953l9y9WuIF7-l6.png)](https://wiki.oberlab.de/uploads/images/gallery/2025-03/XsYt953l9y9WuIF7-l6.png)</td></tr><tr><td colspan="2">Schritt 7: Kugel an der Spitze</td></tr><tr><td>```java
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]);
}
}
```

  
</td><td>[![l7.png](https://wiki.oberlab.de/uploads/images/gallery/2025-03/scaled-1680-/0Q8igP3hrCnHYs9T-l7.png)](https://wiki.oberlab.de/uploads/images/gallery/2025-03/0Q8igP3hrCnHYs9T-l7.png)</td></tr><tr><td colspan="2">Schritt 8: Körper</td></tr><tr><td>```java
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);
}
```

  
</td><td>[![l8.png](https://wiki.oberlab.de/uploads/images/gallery/2025-03/scaled-1680-/d3JVmTDNa94x6XUu-l8.png)](https://wiki.oberlab.de/uploads/images/gallery/2025-03/d3JVmTDNa94x6XUu-l8.png)</td></tr><tr><td colspan="2">Schritt 9: Sockel</td></tr><tr><td>```java
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);
}
```

  
</td><td>[![l9.png](https://wiki.oberlab.de/uploads/images/gallery/2025-03/scaled-1680-/BBnLOFI8UJsRjXhs-l9.png)](https://wiki.oberlab.de/uploads/images/gallery/2025-03/BBnLOFI8UJsRjXhs-l9.png)</td></tr><tr><td colspan="2">Schritt 10: Kragen</td></tr><tr><td>```java
$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);
}
}
```

  
</td><td>[![l10.png](https://wiki.oberlab.de/uploads/images/gallery/2025-03/scaled-1680-/NBikfP9Odoortlq9-l10.png)](https://wiki.oberlab.de/uploads/images/gallery/2025-03/NBikfP9Odoortlq9-l10.png)</td></tr></tbody></table>