Anfängerleitfaden für OpenSCAD: Programmierung von 3D-gedruckten Modellen

Anfängerleitfaden für OpenSCAD: Programmierung von 3D-gedruckten Modellen

Sie wollten schon immer Ihre eigenen 3D-Modelle entwerfen? Was ist mit dem 3D-Drucken eines von Ihnen entworfenen Teils? Es gibt viele 3D-Modellierungsprogramme, aber diese können schwierig zu verwenden sein, wenn Sie nicht künstlerisch sind (wie ich). OpenSCAD bietet Ihnen die Möglichkeit, Modelle speziell für den 3D-Druck zu entwerfen, mit nichts anderem als Code . Machen Sie sich keine Sorgen, wenn Sie auch nicht mit dem Programmieren vertraut sind. Heute werde ich Sie durch die Grundlagen führen.





Was ist OpenSCAD?

OpenSCAD ist ein kostenloses Solides computergestütztes Design Modellbauer. Es ist für Windows, Mac und Linux verfügbar. Der Unterschied zu vielen anderen Programmen besteht darin, dass Sie Teile mit Code anstelle einer Maus entwerfen. Dies macht es sehr einfach, mathematische Berechnungen durchzuführen, Bemaßungen in Variablen zu speichern, Teile in der Größe zu ändern und vieles mehr.





Es gibt einige Faktoren, die Sie beim 3D-Drucken von Modellen berücksichtigen müssen, aber viele davon gelten für den 3D-Druck von CAD-Modellen im Allgemeinen, nicht nur für OpenSCAD-Designs. Wenn Sie mehr über den 3D-Druck erfahren möchten, lesen Sie unseren ultimativen Anfängerleitfaden. Wenn Sie nach einem interaktiveren Modellierer suchen, lesen Sie die Anleitung zum Erstellen von Objekten in Sketchup .





Einrichten

Gehen Sie zuerst zum Downloads Seite und finden Sie eine Version von OpenSCAD, die für Ihr Betriebssystem geeignet ist. Ich verwende Mac OS, aber diese OpenSCAD-Prinzipien gelten für alle Systeme.

Nach der Installation gehen Sie vor und öffnen Sie es. Sie erhalten dieses Startmenü:



Dies zeigt Ihnen die zuletzt geöffneten Dateien und bietet Ihnen die Möglichkeit, einige Beispiele zu laden. Fühlen Sie sich frei, sich einige der Beispiele umzusehen, aber ich fand, dass diese die Dinge beim ersten Start verwirrender machten. Erstellen Sie für dieses Tutorial eine neue Datei, indem Sie auf klicken Neu Taste.

Nach dem Öffnen wird Ihnen diese schlicht aussehende Benutzeroberfläche angezeigt:





Diese gliedert sich in drei Hauptbereiche. Auf der linken Seite ist dein Editor und Menü. Hier schreiben Sie Ihren Code. Dieser enthält noch keinen Code, da Sie eine neue Datei erstellen. Oben befinden sich einige Menüschaltflächen zum Ausführen grundlegender Aufgaben wie Laden, Speichern, Rückgängigmachen usw.





Unten rechts ist der Konsole . Dadurch werden Ihnen alle Fehler beim Erstellen des Modells angezeigt.

Der letzte Abschnitt ist der Haupt-Schnittstelle oben rechts. Hier können Sie mit Ihrem Modell interagieren, es jedoch nicht bearbeiten (dafür schreiben Sie Code).

Mausrad scrollt nach oben und unten

Am unteren Rand dieser Hauptschnittstelle befinden sich mehrere Schaltflächen. Diese ermöglichen Ihnen in erster Linie, Ihr Design auf unterschiedliche Weise anzuzeigen.

Fahren Sie fort und speichern Sie eine neue Datei, indem Sie die Taste . drücken Speichern-Button in dem Editor-Menü oder gehen Sie zu Datei > Speichern .

Die Grundlagen

OpenSCAD funktioniert meistens durch Addition und Subtraktion einfacher Formen. Sie können auf diese Weise sehr komplexe Modelle erstellen, also fangen wir gleich an.

Hier ist die erste Form, eine einfache Box:

Und hier ist der Code, um das zu erzeugen:

cube(); // create a cube

Damit Ihr Code ausgeführt und das Modell erstellt wird, müssen Sie ihn in der Vorschau anzeigen. OpenSCAD macht dies standardmäßig jedes Mal, wenn Sie speichern, oder Sie können drücken F5 um eine Aktualisierung zu erzwingen. Experimentieren Sie mit der Bewegung im 3D-Raum, indem Sie die linke oder rechte Maustaste gedrückt halten.

Daraus ergibt sich nun ein schöner Würfel, aber ohne Dimensionen ist er nicht besonders nützlich. OpenSCAD funktioniert nicht in einem bestimmten Messsystem, stattdessen sind die Einheiten alle relativ zueinander. Sie können eine Box von 20 x 10 erstellen, und es liegt an jedem anderen Programm (z. B. Ihrem 3D-Druck-Slicer), diese zu interpretieren, sei es metrisch oder imperial. Es bietet tatsächlich eine große Flexibilität.

Fügen wir Ihrem Cube einige Dimensionen hinzu. Sie tun dies, indem Sie Parameter an die übergeben Würfel Methode:

cube(size = [10, 20, 30]); // rectangle

Die Werte 10 , zwanzig , und 30 repräsentieren die Größe des Würfels im x , UND , und MIT Achse. Beachten Sie, wie dadurch ein viel größeres Rechteck erzeugt wurde:

Standardmäßig zeichnet OpenSCAD Komponenten von unten links. Sie können dies anpassen, indem Sie die Center Parameter zu wahr . Hier ist der Code, um das mit dem Rechteck zu tun:

cube(size = [10, 20, 30], center = true); // rectangle centered

Und so sieht es aus:

wie viel daten verbraucht das videostreaming?

Das Zentrieren von Objekten funktioniert gut für einfache Formen, aber es macht die Dinge bei nicht symmetrischen Objekten kompliziert. Sie müssen entscheiden, welche Methode für Sie am besten geeignet ist.

Gehen Sie zu einer komplexeren Form über, hier ist ein Zylinder :

Hier ist der Code, um es zu erstellen:

cylinder(d = 10, h = 10, center = true); // cylinder

nicht wie Würfel , Zylinder werden automatisch in der Mitte der X- und Y-Achse gezeichnet. Die D Parameter steht für Durchmesser (Sie können stattdessen im Umkreis passieren, wenn Sie es vorziehen). Die h Parameter ist die Höhe. Hier stimmt aber etwas nicht. Dieser Zylinder sieht ziemlich 'blockig' aus. Sie müssen die Anzahl der auf dem Umfang gezeichneten Flächen erhöhen. Dies ist ganz einfach – fügen Sie Ihrem Zylindercode den folgenden Parameter hinzu.

$fn = 100

Die Zylinderdefinition lautet also:

cylinder(d = 10, h = 10, center = true, $fn = 100);

So sieht das aus:

Dies erhöht die Anzahl der zum Erstellen von Kreisen erforderlichen Flächen – 100 ist ein guter Ausgangspunkt. Beachten Sie, dass dies die Rendering-Zeiten, insbesondere bei komplexen Modellen, erheblich verlängert. Daher ist es normalerweise am besten, dies wegzulassen, bis Sie mit dem Design fertig sind.

Es ist einfach, Transformationen auf Formen anzuwenden. Sie müssen spezielle Methoden aufrufen, bevor Sie Ihre Formen erstellen. So drehen Sie den Zylinder mit dem drehen Methode:

rotate(a = [0, 90, 0]) cylinder(d = 10, h = 10, center = true); // rotated cylinder

Die an die . übergebenen Werte zu Parameter repräsentieren den Drehwinkel der X-, Y- und Z-Achse. Hier ist das Ergebnis:

Eine weitere sehr nützliche Funktion ist Übersetzen . Auf diese Weise können Sie Objekte im 3D-Raum verschieben. Auch hier müssen Sie den Bewegungsbetrag für jede Achse eingeben. Hier ist das Ergebnis:

Hier ist der Code:

translate(v = [0, 25, 0]) cylinder(d = 10, h = 10, center = true); // translated cylinder

Verstehen der Übersetzen Methode ist eines der wichtigsten Dinge, die Sie tun können. Es wird zum Entwerfen der komplexesten Designs benötigt.

Schließlich ist eine weitere nützliche Form a Kugel :

Hier ist der Code:

Warum läuft meine Festplatte zu 100%?
sphere(d = 100);

Genau wie beim Zylinder können Sie dies mit dem $fn Code oben.

Erweiterte Codierung

Nachdem Sie nun die Grundlagen kennen, schauen wir uns einige fortgeschrittene Fähigkeiten an. Beim Entwerfen eines Teils ist es hilfreich, darüber nachzudenken, wie es aus kleineren Formen und Objekten zusammengesetzt werden könnte. Sie müssen dies nicht tun und können sich im Laufe der Zeit „die Dinge ausdenken“, aber es hilft, einen groben Plan zu haben – auch wenn es nur in Ihrem Kopf ist.

Lassen Sie uns eine erweiterte Form erstellen: einen Würfel mit einem ausgehöhlten Kugelinneren. Ein ... kreieren Würfel und ein Kugel mit Center auf wahr gesetzt. Subtrahiere eins vom anderen mit dem Unterschied Methode:

difference() {
// subtraction
cube(size = [50, 50, 50], center = true); // outer cube
sphere(d = 65, center = true); // inner sphere
}

Hier ist das Ergebnis:

Experimentieren Sie mit dem Durchmesser ( D Parameter) der Kugel und sehen, was passiert.

In OpenSCAD gibt es normalerweise viele Möglichkeiten, dieselbe Aufgabe zu erfüllen. Wenn Sie eine Nut in einem Würfel haben möchten, können Sie einen weiteren Würfel davon abziehen oder zwei weitere darüber hinzufügen. Es spielt normalerweise keine Rolle, wie die Dinge ausgeführt werden, aber je nach Komplexität des Teils kann es einfacher sein, zuerst bestimmte Manipulationen vorzunehmen.

So erstellen Sie einen Kanal in einem Cube. Anstatt einen anderen Würfel zu verwenden, wird durch die Verwendung eines Zylinders ein abgerundeter Kanal erstellt. Beachten Sie, wie die Unterschied Methode wieder verwendet wird und wie die Übersetzen und drehen Methoden werden verwendet, um die Formen zu manipulieren. Verwendung der drehen -Methode macht Transformationen oft schwierig. Spielen Sie also mit den Parametern herum, bis Sie das gewünschte Ergebnis erzielen. Hier ist der Code:

difference() {
// subtraction
cube(size = [50, 150, 50]); // outer cube
translate(v = [25, 150, 50]) rotate(a = [90, 0, 0]) cylinder(d = 40, h = 150); // cylinder channel
}

So sieht das aus:

Sie fragen sich vielleicht, was all das grüne Zeug ist. Dies ist hier, weil das 3D-Modell im Moment nur eine Vorschau ist. Um dies zu beheben, drücken Sie F6 um das Modell vollständig zu rendern. Dies kann je nach Komplexität einige Zeit in Anspruch nehmen. Die Vorschau ( F5 ) ist normalerweise gut genug während der Arbeit. So sieht das endgültige Rendering aus (mit $fn auf 100 setzen):

Hier ist ein weiteres erweitertes Beispiel. Angenommen, Sie wollten etwas mit einer Schraube montieren. Ein Loch zu erstellen ist einfach genug mit Zylinder , aber was ist, wenn Sie den Schraubenkopf bündig für Senkschrauben montieren möchten? Sie könnten einfach einen großen Zylinder erstellen, in dem der Schraubenkopf sitzt, aber das würde nicht sehr schön aussehen. Die Lösung ist eine Fase, die Sie mit dem Zylinder Methode. Der Trick besteht darin, zwei Durchmesser anzugeben -- d1 und d2 . Machen Sie diese verschiedenen Größen und OpenSCAD erledigt den Rest.

Da ich Brite bin, werde ich hier metrische Abmessungen für eine M5-Senkschraube verwenden. Sie können dies leicht an die gewünschten Befestigungen anpassen. Hier ist der Code:

$fn = 100;
// bolt settings
m5_clearance_diameter = 5.5;
m5_head_clearance_diameter = 11;
m5_head_depth = 5;
difference() {
// subtract
cube(20, 20, 20);
bolt_hole(10, 10, 20);
bolt_bevel(10, 10, 15);
}
module bolt_hole(x, y, height) {
/* M5 hole at 90 deg. */
translate(v = [x, y, 0]) cylinder(d = m5_clearance_diameter, h = height);
}
module bolt_bevel(x, y, z) {
// M5 bevel
translate(v = [x, y, z]) cylinder(d2 = m5_head_clearance_diameter, d1 = m5_clearance_diameter, h = m5_head_depth);
}

Beachten Sie, wie die Schraubenabmessungen in Variablen gespeichert werden? Dies erleichtert die Codierung und Wartung erheblich. Eine Methode, auf die Sie vielleicht noch nicht gestoßen sind, ist Modul . Auf diese Weise können Sie einen Codeblock definieren, der ausgeführt werden soll, wann immer Sie möchten. In Wirklichkeit ist dies ein Funktion . Du solltest benutzen Module und Variablen für jede komplexe Form, da sie die Lesbarkeit erleichtern und Änderungen schneller vornehmen. So sieht die Fase aus:

Schauen wir uns ein letztes Beispiel an. Angenommen, Sie möchten eine Reihe von Löchern um einen Kreis herum herstellen. Sie könnten all dies manuell messen, verschieben und drehen, aber selbst mit Modulen wäre dies mühsam. Hier ist das Endergebnis, 10 Zylinder sogar um einen Kreis verteilt:

Hier ist der Code:

$fn = 100;
number_of_holes = 10;
for(i = [1 : 360 / number_of_holes : 360]) {
// number_of_holes defines number of times this code runs
make_cylinder(i);
}
module make_cylinder(i) {
// make cylinder and even distribute
rotate([0, 0, i]) translate([10, 0, 0]) cylinder(h = 2, r = 2);
}

Dieser Code ist einfacher, als Sie erwarten würden. EIN zum Schleife wird verwendet, um die machen_zylinder Modul zehnmal. Da ein Kreis 360 Grad hat und 360 / 10 = 36, muss jeder Zylinder in Schritten von 36 Grad gedreht werden. Jede Iteration dieser Schleife erhöht die ich um 36 variabel. Diese Schleife ruft die machen_zylinder Modul, das einfach einen Zylinder zeichnet und ihn entsprechend den Graden positioniert, die ihm von der Schleife übergeben werden. Sie können mehr oder weniger Zylinder zeichnen, indem Sie die Anzahl_der_Löcher variabel -- obwohl Sie möglicherweise den Abstand anpassen möchten, wenn Sie dies tun. So sehen 100 Zylinder aus, sie überlappen sich leicht:

Exportieren

Nachdem Sie nun wissen, wie Sie in OpenScad codieren, ist noch ein letzter Schritt erforderlich, bevor Sie Ihre Modelle in 3D drucken können. Sie müssen Ihr Design aus OpenSCAD in den Standard exportieren STL Format, das von den meisten 3D-Druckern verwendet wird. zum Glück gibt es einen Export nach STL-Button: Editor-Menü > Oben rechts :

Das war `s für heute. Sie sollten jetzt hervorragende Kenntnisse in OpenSCAD haben -- all die komplexen Dinge bauen auf diesen Grundlagen auf, und viele komplexe Formen sind wirklich viele einfache Formen kombiniert.

Schauen Sie sich als Herausforderung einige unserer 3D-Druckprojekte an und versuchen Sie, die Teile in OpenSCAD neu zu erstellen:

Hast du heute neue Tricks gelernt? Was ist Ihre Lieblingsfunktion von OpenSCAD? Wechseln Sie bald von einem anderen CAD-Tool? Lass es uns in den Kommentaren unten wissen!

Teilen Teilen Tweet Email So greifen Sie auf die integrierte Wasserwaage von Google auf Android zu

Wenn Sie jemals sicherstellen mussten, dass etwas zur Not eben ist, können Sie jetzt in Sekundenschnelle eine Wasserwaage auf Ihrem Telefon abrufen.

Weiter lesen
Verwandte Themen
  • Heimwerken
  • Programmierung
  • 3d Drucken
  • 3D Modellierung
Über den Autor Joe Coburn(136 veröffentlichte Artikel)

Joe hat einen Abschluss in Informatik an der University of Lincoln, Großbritannien. Er ist ein professioneller Softwareentwickler und wenn er nicht gerade Drohnen fliegt oder Musik schreibt, ist er oft beim Fotografieren oder Videoproduzieren anzutreffen.

Mehr von Joe Coburn

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um zu abonnieren