OpenSCAD für Anfänger · Teil 18TutorialEinsteiger

OpenSCAD

OpenSCAD für Anfänger – Teil 18: Projekte strukturieren mit include und use

Teile OpenSCAD-Projekte in mehrere Dateien auf. Lerne include und use kennen und lagere Parameter, Module und Funktionen in eigene Dateien aus.

Veröffentlicht am

4 Minuten Lesezeit

Teile OpenSCAD-Projekte in mehrere Dateien auf. Lerne include und use kennen und lagere Parameter, Module und Funktionen in eigene Dateien aus.

Voraussetzungen

Du brauchst OpenSCAD und die Grundlagen aus Teil 17. Die Beispiele verwenden die klassische OpenSCAD-Syntax; eine Ausführung mit einer konkreten Softwareversion wurde hier nicht geprüft. Wir behandeln eine Modelleinheit als einen Millimeter.

include und use: der Unterschied

Mit include <datei.scad> bindest du den Inhalt einer Datei ein: Variablen, Funktionen, Module und direkt erzeugte Geometrie. Mit use <datei.scad> übernimmst du Module und Funktionen, ohne die Geometrie auf oberster Ebene auszuführen. Variablen der Bibliothek werden damit nicht als Parameter in deine Hauptdatei importiert.

Anweisung Verwendung
include <parameter.scad> Gemeinsame Parameter und Konfiguration einbinden
use <bauteile.scad> Module und Funktionen als Bibliothek nutzen

Die Anweisungen verwenden spitze Klammern und benötigen kein abschließendes Semikolon. Übergib Maße ausdrücklich als Modulparameter, damit Bauteile unabhängig von Variablen in der Hauptdatei funktionieren.

Praxisprojekt: Montageplatte auf mehrere Dateien aufteilen

Lege die folgenden vier Dateien im selben Ordner ab. Öffne anschließend main.scad in OpenSCAD. Das Ergebnis ist eine 100 × 60 × 5 mm große Platte mit vier Bohrungen von 6 mm Durchmesser.

parameter.scad: veränderbare Maße

breite = 100;
tiefe = 60;
dicke = 5;
rand = 12;
bohrung_d = 6;

funktionen.scad: wiederverwendbare Berechnungen

function randpositionen(gesamt, abstand) =
    [abstand, gesamt - abstand];

bauteile.scad: Geometrie als Modul

module montageplatte(b, t, h, d, xs, ys) {
    difference() {
        cube([b, t, h]);
        for (x = xs)
            for (y = ys)
                translate([x, y, -1])
                    cylinder(h=h + 2, d=d, $fn=64);
    }
}

// Nur beim direkten Öffnen dieser Datei sichtbar:
montageplatte(80, 50, 4, 5, [10, 70], [10, 40]);

Der letzte Aufruf ist ein Beispiel zum Betrachten des Moduls. Mit use erscheint dieses Beispiel nicht zusätzlich in deiner Hauptdatei. Mit include würde es dort ebenfalls Geometrie erzeugen.

main.scad: das Modell zusammensetzen

include <parameter.scad>
use <funktionen.scad>
use <bauteile.scad>

assert(dicke > 0 && bohrung_d > 0);
assert(rand > bohrung_d / 2);
assert(breite > 2 * rand && tiefe > 2 * rand);

montageplatte(
    b=breite,
    t=tiefe,
    h=dicke,
    d=bohrung_d,
    xs=randpositionen(breite, rand),
    ys=randpositionen(tiefe, rand)
);

Drücke F5 für die Vorschau und F6 für das Rendering. Ändere die Breite in parameter.scad auf 120. Die rechten Löcher verschieben sich automatisch; der Randabstand bleibt unverändert.

Dateien in Unterordnern organisieren

Für größere Projekte kannst du Parameter unter config/ und Module unter lib/ ablegen. Passe die Pfade in der Hauptdatei an:

include <config/parameter.scad>
use <lib/funktionen.scad>
use <lib/bauteile.scad>

Verwende / als Pfadtrenner, auch unter Windows. Halte zusammengehörige Projektdateien gemeinsam im Projektordner und vermeide absolute Pfade, die nur auf deinem Computer funktionieren.

Mitmach-Aufgabe

Erstelle eine Variante mit 120 mm Breite, 70 mm Tiefe, 6 mm Dicke, 15 mm Randabstand und 8 mm Bohrungsdurchmesser. Ändere dafür ausschließlich parameter.scad.

Musterlösung

breite = 120;
tiefe = 70;
dicke = 6;
rand = 15;
bohrung_d = 8;

Die Lochmittelpunkte liegen bei X = 15 und 105 sowie Y = 15 und 55. Funktionen, Module und Hauptdatei bleiben gleich.

Häufige Fragen

Warum erscheint ein zusätzliches Bauteil?

Prüfe, ob du eine Bibliothek mit include eingebunden hast, die außerhalb ihrer Module Geometrie erzeugt. Verwende use, wenn du nur ihre Module und Funktionen benötigst.

Warum fehlen meine Parameter nach use?

use stellt keine globalen Konfigurationsvariablen für die Hauptdatei bereit. Binde die Parameterdatei mit include ein und übergib die Werte an deine Module.

Warum findet OpenSCAD die Datei nicht?

Prüfe Dateinamen, Groß- und Kleinschreibung und den relativen Pfad. Kontrolliere außerdem, ob du alle Dateien gespeichert und den gesamten Projektordner weitergegeben hast.

Weiterlernen

Referenz

Die OpenSCAD-Sprachreferenz verlinkt die Dokumentation der verwendeten Befehle.