Vom Button-Chaos zum Python-Code: Wie ich mein Gartenhaus mit CadQuery entworfen habe
Ich hatte schon immer ein kompliziertes Verhältnis zu CAD-Software. Nicht, dass ich die Leistungsfähigkeit digitaler Design-Tools nicht zu schätzen wüsste aber irgendwie arbeiten diese Tools oft eher gegen als mit mir.
Wer schon einmal ein CAD-Programm geöffnet und sich in einem Dschungel aus Buttons, Tabs und Menüs wiedergefunden hat nur um festzustellen, dass nach dem letzten Versionsupdate alles wieder woanders liegt, weiß genau, wovon ich rede. Die meisten CAD-Tutorials machen es nicht besser. Sie klingen typischerweise so: „Klick hier, dann hier, jetzt wechsle zu diesem Tab, zieh das hierhin, klick auf dieses winzige Symbol, das sich seit der letzten Version versteckt hat…” Wer kennt’s nicht?
Das Problem mit der „Freestyle“-Methode
Wenn ich etwas baue sei es ein Möbelstück oder ein Schuppen skizziere ich es normalerweise ziemlich frei Schnauze. Das macht zwar Spaß, führt auf der Baustelle aber oft zu „spontanen Planänderungen“, weil der ursprüngliche Entwurf einfach zu vage war.
Für mein neuestes Projekt, ein kleines 2×2-Meter-Gartenhaus mit Pultdach, wollte ich es besser machen. Ich wollte ein präzises Modell, an dem ich alles genau nachmessen kann, bevor ich die Säge ansetze. Auf der Suche nach einer Lösung bin ich auf CadQuery gestoßen.
CadQuery: CAD für Pythonistas
CadQuery ist ein Python-basiertes, parametrisches CAD-Scripting-Framework. Statt Formen mit der Maus über den Bildschirm zu schieben, schreibst du Code, um deine 3D-Modelle zu definieren.
Anfangs klang das etwas einschüchternd Code schreiben für CAD? Aber es hat schnell Klick gemacht. Ich kann bereits Python. Warum also nicht meine Logik-Skills nutzen, anstatt mit einer überladenen GUI zu kämpfen?
Keine UI-Überflutung mehr. Keine Tutorials mehr, die nach jedem Release veraltet sind. Einfach sauberer, versionierbarer Python-Code.
Hier ein kleines Beispiel aus meinem Gartenhaus-Modell:
frame_width = 2000
frame_depth = 2000
beam_width = 95
beam_height = 95
main_frame = (
cq.Workplane("XY")
.box(frame_width, beam_width, beam_height)
.translate((0, -frame_depth/2, beam_height/2))
)
Dieser Codeblock definiert einen einzelnen Bodenbalken. Du willst stattdessen 100-mm-Balken ausprobieren? Einfach eine Zahl ändern. Der Rest des Modells passt sich völlig automatisch an.
Werkzeuge, die mit dir arbeiten
Für die Vorschau meiner Modelle habe ich CQ-editor verwendet, eine IDE, die speziell für CadQuery entwickelt wurde. Sie zeigt das 3D-Modell in Echtzeit an, während man das Python-Skript bearbeitet so bekommt man das Beste aus beiden Welten: Scripting und visuelles Feedback.
Wer bereits FreeCAD nutzt und CadQuery in dieses Ökosystem einbinden möchte, kann die CadQuery FreeCAD Workbench verwenden, die CadQuery-Skripte direkt in den FreeCAD-Workflow integriert. Sie ist ideal, um parametrisches Scripting mit den nativen Modellierungswerkzeugen von FreeCAD zu kombinieren.
Reales Projekt: Mein Gartenhaus
Das vollständige CadQuery-Skript findet sich hier: SlashGordon/gartenhaus auf GitHub
Das Projekt modelliert die grundlegende Holzkonstruktion: vertikale Balken, Bodenrahmen, Dachstützen alles in Python geschrieben und mit CadQuery gerendert. Um die Visualisierung und das Verständnis der Bauteilverbindungen zu verbessern, habe ich eine Explosionsansicht hinzugefügt. Diese ermöglicht eine klare und detaillierte Darstellung der Verbindungsteile. Zusätzlich habe ich einen JSON-Datei-Generator integriert, der ein Inventar aller verbauten Teile erstellt und so die Verwaltung und Nachverfolgung der benötigten Komponenten erleichtert.
Nachdem ich auf diese Weise gearbeitet habe, bin ich begeistert. Einen Parameter anpassen und das gesamte Modell in Sekunden neu generieren zu können, fühlt sich mächtig an. Außerdem wird es dadurch viel einfacher, Entwürfe zu teilen und zu versionieren (auf Wiedersehen, mysteriöse .fcstd-Dateien mit unklaren Änderungen).
Warum CadQuery mich überzeugt hat
- Python-basiert: Nutzt eine Sprache, die ich bereits beherrsche.
- Kein GUI-Rätselraten: Keine endlosen Buttons und UI-Überraschungen mehr.
- Vollständig parametrisch: Alles lässt sich über Variablen anpassen.
- Gute Werkzeuge: CQ-editor und die CadQuery FreeCAD Workbench machen es noch besser.
- Open Source und skriptfähig: Ideal für Automatisierung und Reproduzierbarkeit.
Fazit
Durch CadQuery hat sich CAD für mich endlich logisch, zugänglich und ehrlich gesagt ziemlich spaßig angefühlt. Wer schon einmal von herkömmlicher CAD-Software genervt war und die Struktur von Code bevorzugt, sollte sich CadQuery unbedingt einmal ansehen.