CadQuery: 3D-Objekte programmieren in Python

Mit CadQuery programmiert man 3D-Objekte für CAD, CNC und 3D-Druck in Python, dabei bietet es viel Vorteile gegenüber dem Platzhirsch OpenSCAD.

In Pocket speichern vorlesen Druckansicht 18 Kommentare lesen
Lesezeit: 3 Min.
Von
  • Carsten Wartmann

Viele kennen und nutzen bereits OpenSCAD, dessen Limitationen und die nicht Standard-Programmiersprache sind aber nicht jedermanns Sache. CadQuery benutzt Python und bietet gegenüber OpenSCAD noch viele weitere Vorteile, die es viel nutzwertiger im Alltag machen.

CadQuery ist ein für Programmierer einfach nutzbares Python-Modul um parametrisch per Programm 3D-Geometrien zu bauen. Dabei können mit CadQuery und den Sprachkonstrukten von Python schnell hochqualitative Modelle erschaffen werden. Als Python-Modul kann CadQuery leicht in eigene Projekte eingebunden werden, es kann aber auch in einem eigenen Editor, in Jupyter-Notebooks oder CAD-Software eingebunden werden.

Verglichen mit OpenSCAD bietet CadQuery auf den ersten Blick nicht viel Neues: Beide sind parametrische OpenSource 3D-Objekt Generatoren. Auf den zweiten sich lohnenden Blick erkenht man aber einige interessante Vorteile von CadQuery:

  • Python als moderne und sehr verbreitete Programmiersprache, hier profitiert man von der umfassendes Dokumentation und den unzähligen Libraries und Modulen, die es für Python gibt.
  • Der CAD-Kern von CadQuery ist der sehr leistungsstarke und moderne Open CASCADE Technology (OCCT) Kern, der viele moderne Features wie NURBS, Splines, Surface Sewing, STL-Reparatur, STEP Import/Export und natürlich die Boolschen-Operationen (CSG, Constructive Solid Geometry) bietet.
  • STEP-Dateien sind ein CAD-Austauschformat, welches so gut wie von allen CAD-Anwendungen (z.B. FreeCAD) gelesen und ohne Verluste bearbeitet werden kann.
  • Durch viele Objekt-Funktionen erfordern die meisten Skripte weniger Code, dies sind nicht nur Grundobjekte, sondern auch komplexe Funktionen wie Abrunden oder Fasen.
  • Der moderne Kern berechnet die Ausgabe als 3D-Modell in den meisten Fällen viel schneller.
  • Die Objekte können nicht nur in absoluten Koordinaten platziert werden, sondern auch in relativer Abhängigkeit zu Objekten, Flächen oder einzelnen Punkten. Dies erleichtert die Wiederverwendung von Objekten sehr.

Für den Einstieg sollte man sich den CQ-Editor laden. Hier bekommt man eine kleine IDE für Programmierung, Debugging und Ausgabe in einem 3D-Fenster. Beim Durcharbeiten der Beispiele in der guten Dokumentation erschließen sich die Konzepte des Moduls schnell. Von der einfachen Platte bis zum kompletten Gehäuse warten einige Tutorial auf den Entwickler.

Am Ende kann dann das 3D-Objekt in einem verlustbehafteten Poylgonformat wie etwa STL oder als verlustfreie STEP-Datei auf die Festplatte geschrieben werden. Die STEP-Daten lassen sich in CAD-Anwendungen einlesen und mit allen Möglichkeiten dort weiter bearbeiten. Inzwischen unterstützt z.B. auch die 2.5er Version des Prusa Slicers STEP.

Wie man CadQuery installiert und in Jupyter einbindet oder für eigene Projekte als Python-Modul verwendet, wird auf den GitHub-Seiten des Projekts genau in Wort und Video beschrieben. Hier findet man auch Erweiterungen und Beispiele von Anwendern, Firmen und Projekten, die bereits CadQuery benutzen.

FreeCAD bei Make

Make zeigt in detaillierten Artikeln Schritt für Schritt, wie die Konstruktion eigener 3D-Objekte mit der kostenlosen Software FreeCAD gelingt.

(caw)