1. Produkte
  2.   CAD
  3.   Python
  4.   openscad

openscad

 
 

Open-Source-3D-CAD-Modellierer für Programmierer

Erstellen Sie solide 3D-Modelle mit CSG, Extrusion und konfigurierbaren Parametern über die kostenlose Open-Source-Python-API.

Was ist OpenSCAD?

OpenSCAD ist ein kostenloses und Open‑Source‑3D‑CAD‑Modellierungswerkzeug, das speziell für Programmierer und Ingenieure entwickelt wurde. Im Gegensatz zu interaktiven 3D‑Modellierern verwendet OpenSCAD einen skriptbasierten Ansatz, um feste 3D‑Objekte mittels konstruktiver Festkörpergeometrie (CSG) und Extrusionstechniken zu definieren. Dies ermöglicht präzises, reproduzierbares und parametrisches Modellieren, das ideal für mechanische Bauteile, Prototypen und technische Entwürfe ist. Das Tool unterstützt Linux, Windows und macOS und lässt sich gut in Python‑basierte Workflows für Automatisierung und Skripting integrieren.

OpenSCAD liest Skriptdateien, die das Objekt beschreiben, und rendert das 3D‑Modell entsprechend, wodurch Designer die vollständige Kontrolle über den Modellierungsprozess erhalten. Es unterstützt Operationen wie Union, Intersection, Difference sowie Transformationen wie translate, rotate und scale. Daten können aus DXF‑Dateien importiert und in STL, OFF und andere Formate exportiert werden. Seine offene Architektur und die aktive Community machen es zu einer leistungsstarken Wahl für Entwickler, die programmgesteuerte 3D‑Modellierungsfähigkeiten suchen, ohne auf GUI‑Interaktionen angewiesen zu sein.

Previous Next

Erste Schritte mit OpenSCAD

OpenSCAD ist als vorgefertigte Binärdateien für Linux, macOS und Windows von seiner offiziellen Website verfügbar. Für Entwickler ist der Quellcode auf GitHub gehostet, und Sie können ihn aus dem Quellcode mit CMake und den bereitgestellten Build‑Skripten erstellen. Das offizielle [openscad GitHub](https://github.com/openscad/openscad)-Repository enthält detaillierte Build‑Anleitungen für alle wichtigen Plattformen. Um schnell zu starten, laden Sie das neueste Release herunter, installieren Sie es und öffnen Sie den Editor, um Ihr erstes SCAD‑Skript zu schreiben.

OpenSCAD über Paketmanager installieren

# Ubuntu/Debian
sudo apt install openscad

# macOS (Homebrew)
brew install --cask openscad

# Windows (Chocolatey)
choco install openscad

Konstruktive Festkörpergeometrie (CSG)

Die Kernstärke von OpenSCAD liegt in seiner Unterstützung der konstruktiven Festkörpergeometrie (CSG), die es ermöglicht, grundlegende 3D‑Primitive mittels boolescher Operationen wie Vereinigung, Schnittmenge und Differenz zu kombinieren. Dieser Ansatz gewährleistet präzises, nicht‑manifold‑sicheres Modellieren, das für Ingenieurwesen und Fertigung geeignet ist. Zum Beispiel können Sie einen Zylinder mit einem Loch erstellen, indem Sie einen kleineren Zylinder von einem größeren subtrahieren. CSG-Operationen werden deklarativ im Skript definiert, was eine einfache Parametrisierung und Revision ermöglicht. Das macht OpenSCAD ideal für die Konstruktion mechanischer Teile, Gehäuse und funktionaler Prototypen, bei denen Genauigkeit und Reproduzierbarkeit entscheidend sind.

Wie erstellt man einen Zylinder mit einem Loch mittels CSG in OpenSCAD?

difference() {
    cylinder(h = 20, r = 10);
    cylinder(h = 25, r = 4, center = true);
}

2D-Umriss-Extrusion

OpenSCAD unterstützt das Extrudieren von 2D-Umrissen, die aus DXF-Dateien importiert oder direkt im SCAD-Code definiert werden. Diese Technik ist entscheidend für die Erstellung komplexer 3D-Formen aus 2D-Profilen, wie Zahnräder, Halterungen oder kundenspezifische Gehäuse. Sie können Pfade linear extrudieren oder sie um eine Achse drehen (via Rotation). Der Extrusionsprozess respektiert die Reihenfolge der Eckpunkte und unterstützt sowohl 2D-Polygone als auch Pfade mit Löchern. In Kombination mit Transformationen und Modulen ermöglicht dies die parametrische Erzeugung von Teilen wie Rohren, Rahmen oder architektonischen Elementen und macht OpenSCAD zu einem leistungsstarken Werkzeug für technisches Design und Fertigungsabläufe.

Wie extrudiert man ein 2D-Polygon zu einem 3D-Objekt?

linear_extrude(height = 10, center = true, convexity = 10)
  polygon(points = [[0,0], [10,0], [5,10]]);

Parametrische Modellierung & Konfiguration

OpenSCAD zeichnet sich durch parametrisches Modellieren aus, bei dem Abmessungen und Formen mithilfe von Variablen und Funktionen definiert werden. Dadurch können Designs durch Ändern weniger Parameter leicht angepasst werden, was es ideal für iteratives Prototyping und Individualisierung macht. Zum Beispiel können Sie ein Modul definieren, das Parameter für Breite, Höhe und Dicke akzeptiert und es dann in mehreren Designs wiederverwenden. Parameter können auch durch externe Daten gesteuert werden, wie Werte aus einer CSV- oder DXF-Datei, was die Integration in Python-basierte Datenpipelines ermöglicht. Diese Fähigkeit unterstützt generatives Design, bei dem sich Modelle automatisch an wechselnde Anforderungen oder Einschränkungen anpassen.

Wie definiert man ein wiederverwendbares parametrisches Modul?

module box(width, height, thickness) {
    difference() {
        cube([width, height, thickness]);
        translate([thickness, thickness, -1])
            cube([width - 2*thickness, height - 2*thickness, thickness + 2]);
    }
}

box(50, 30, 3);

Datenimport- und Exportintegration

OpenSCAD bietet umfassende Unterstützung für den Import von 2D‑DXF‑Dateien und den Export von 3D‑Modellen nach STL, OFF und anderen Formaten. Dadurch lässt sich die Integration mit CAD/CAM‑Werkzeugen, 3D‑Druckern und Simulationssoftware erleichtern. DXF‑Importe können Pfade für die Extrusion enthalten, während Exporte binäres und ASCII‑STL für den 3D‑Druck unterstützen. Zusätzlich kann OpenSCAD Designparameter aus DXF‑Dateien auslesen, was hybride Workflows ermöglicht, bei denen Geometrie in externen Tools definiert, aber programmgesteuert verfeinert wird. Diese Interoperabilität, kombiniert mit seiner skriptbasierten Natur, erlaubt es Entwicklern, die Modellerzeugung und Stapelverarbeitung mithilfe von Python‑ oder Shell‑Skripten zu automatisieren und so Produktionsabläufe zu optimieren.

Wie importiert man eine DXF-Datei und extrudiert sie zu 3D?

linear_extrude(height = 5) {
    import(file = "profile.dxf", layer = "outer");
}
 Deutsch