CAD

openSCAD-Zylinder

openSCAD-Zylinder
Bei der Vorbereitung dieses Artikels wollte ich herausfinden, welche Probleme die Leute mit openSCAD haben. Zu meiner Überraschung war die häufigste Frage die Erstellung eines Zylinders. Es gibt einen Zylinderbefehl, über den Sie zuerst die Details erfahren. Danach sehen Sie innovative Möglichkeiten, Zylinder nach Ihren Wünschen zu erstellen. Sie können auch Zylinder von anderen Teilen wegnehmen, um interessantere Dinge zu schaffen. Die meisten Leser, die hierher kommen, wollen wahrscheinlich einen Hohlzylinder oder eine Art Röhre sehen. Lesen Sie weiter, wir haben viel für Sie auf Lager.

Der Zylinderbefehl

Wenn Sie die einfachste Version des Zylinderbefehls verwenden, benötigen Sie nur einen Parameter. Dies macht einen soliden, einheitlichen Zylinder und mehr nicht. Beachten Sie, dass dieser Zylinder den Standardradius und die Höhe des Werts in Klammern hat. Der Befehl hat jedoch viele Optionen, lass uns sie durchgehen.

Zylinder (r1 = 20);
Zylinder (r1 = 20, r2 = 5);
Zylinder (r1 = 20, h = 40);
Zylinder (r = 20, h = 40);
Zylinder (r1 = 20, r2 = 5, h = 40, Mitte = wahr);

Die ersten beiden Zylinder im obigen Code machen keinen Sinn, weil sie keine Höhe haben. Ein häufiger Fehler ist, wenn Sie den Wert vergessen und er nicht so aussieht, wie Sie es sich vorgestellt haben. Wenn Sie Variablen verwenden, passiert dasselbe, wenn Sie eine undefinierte Variable verwenden. In diesem Fall die Höhe, aber überprüfen Sie das Konsolenprotokoll, wenn Sie es ausführen run.

Ein Kegel

Der dritte ist ein Kegel, der Grund dafür ist, dass der r2-Wert eine Standardgröße hat. Probieren Sie den vierten aus und sehen Sie, was passiert. Der letzte erstellt einen Kegel, bei dem Sie die volle Kontrolle über die Abmessungen haben. Dieser ist einfach für feste Kegel zu verwenden. Sie stellen die beiden Radien und die Höhe ein und fertig. Sie können auch den Durchmesser verwenden, wenn Ihnen das besser passt.

Der Wert center = true gilt für die Z-Achse, wobei der Kegel auf halber Höhe vom „Boden“ bleibt. Der Standardwert ist false, was dazu führt, dass der Boden des Kegels sozusagen auf dem „Boden“ landet. Sie können auch mit dem Parameter '$fn' wählen, wie nah die Kegelwände an der Kreisform sind.

Hohlzylinder

Hey, warte eine Minute! Dadurch entstehen nur feste Teile, wie bohre ich Löcher in sie?? Du fragst, danke! ich werde es dir sagen. Die Antwort liegt im Unterschied. Der Befehl, der ist. Betrachten Sie den folgenden Code, er enthält zwei Zylinder, die mit geschweiften Klammern und dem Differenzbefehl umschlossen sind.

Unterschied()
Zylinder (r = 30, h = 40);
Zylinder (r = 28, h = 41);

Einfach gesagt, wenn Sie mehrere Teile haben, schneiden Sie mit allen folgenden Teilen Material vom ersten Teil ab. In diesem Fall schneidest du einen Zylinder aus einem Zylinder. Wenn Sie eine andere Form ausschneiden möchten, können Sie das auch tun. Probiere einen Würfel oder eine Kugel! Beachten Sie die interessanten und manchmal verheerenden Auswirkungen, die der $fn-Wert auf diesen Code haben kann.

Hohlkegel

Sie können dies auch mit einem Kegel tun, verwenden Sie einfach die doppelten Radiuswerte. Da Sie beide Kegel definieren, haben Sie viel Kontrolle über das Endergebnis. Der einfachste Hohlkegel besteht aus nur zwei Kegeln ineinander mit einer Dicke für das Material.

Unterschied ()
Zylinder (r1 = 30, r2 = 12, h = 50);
Zylinder (r1 = 25, r2 = 7, h = 45);

Dieser Kegel ist oben abgedeckt, Sie können ihn öffnen, indem Sie einfach die zweite Höhe höher einstellen als die erste. Da Sie zwei Zylinder haben, können Sie jeden der beiden wechseln. Zum Beispiel können Sie ein gerades Loch durchschneiden, indem Sie den zweiten Zylinder wechseln. Sie können auch einen Würfel wählen, aber beachten Sie, dass dadurch zu viel Material aus dem Kegel herausgeschnitten werden kann.

Pyramide

Dies mag irrelevant erscheinen, ist jedoch ein nützlicher Trick, den Sie bei der weiteren Verwendung von openSCAD beachten müssen. Alle Zylinder und andere Elemente sind eine Annäherung an eine Form. Sie haben vorhin über den Parameter $fn gelesen, hier nutzen Sie ihn. In diesem Sinne denken Sie vielleicht: Eine Pyramide ist ein Kegel mit vier Seiten. Richtig! verwende $fn = 4 und du hast einen Kegel mit vier Seiten, also eine Pyramide meaning.

Unterschied ()
Zylinder (r1 = 30, r2 = 12, h = 40, $fn = 4);
Zylinder (r1 = 25, r2 = 7, h = 35, $fn = 4);

Der innere Zylinder schneidet den gleichen Zylinder wie der äußere. Bis Sie anfangen, mit dem Parameter $fn zu spielen. Um sich mit den Auswirkungen dieses Parameters vertraut zu machen, versuchen Sie einen vierbeinigen Stuhl zu machen. Wie beeinflusst der Parameter $fn das Ergebnis?? Außerdem, wie können Sie die Ober- oder Unterseite abdecken??

Viele kombinieren

Um viele Zylinder zu verwenden, sollten Sie lernen, viele davon zu kombinieren. Das Endergebnis kann sehr komplex und manchmal sogar nützlich sein. Einen Deckel auf Ihren Zylinder zu setzen ist eine Möglichkeit. Um dies gut zu tun, müssen Sie mit der Verwendung von Variablen beginnen. Machen Sie es sich zur Gewohnheit, sie ganz oben in das zu setzen, was Sie entwerfen. Es erleichtert das spätere Erstellen von Modulen.

Dicke = 5;
basischer = 30;
topr = 12;
Höhe = 50;
Gewerkschaft ()
// Der untere Kegel
Unterschied ()
Zylinder (r1 = unten, r2 = obenr, h = Höhe);
Zylinder (r1 = Basis-Dicke, r2 = Topr - Dicke, h = Höhe + Dicke);

// Der oberste Ball
übersetzen([0, 0, Höhe])
Unterschied()
Kugel (r = topr);
Kugel (r = topr -dickn);
übersetzen([0, 0, -topr])
Würfel (Größe = Topr * 2, Mitte = wahr);

Von oben beginnend, haben Sie Variablen. Sie gelten für die Dicke, den Basisradius, den oberen Radius und die Höhe. Die Gewerkschaftserklärung bringt die Teile zusammen. In den Hosenträgern befindet sich der Kegel und dann die obere Kugel. Weil sie innerhalb der Gewerkschaft sind, werden sie am Ende ein Stück sein. Sie können noch mehr tun, wenn Sie viele Zylinder in vielen Winkeln verwenden.

Ein Reagenzglas herstellen

Gehen Sie von den Zapfen weiter und machen Sie ein Reagenzglas. Zuerst müssen Sie überlegen, welche Formen ein Reagenzglas ergeben. Der Hauptteil ist ein Zylinder, nichts Besonderes, nur der regelmäßige Unterschied zwischen zwei Zylindern. Wenn Sie die Länge als Variable festlegen, können Sie diesen Wert als Referenz verwenden. Sie müssen wissen, wo das Rohr endet und unten zur Halbkugel wird. Sie werden auch den Radius für das Rohr verwenden, um die Kugel zu definieren.

Tubr = 20;
Tubl = 80;
dick = 2;
Unterschied ()
Zylinder (r1 = Tubr, r2 = Tubr, h = Tubl);
Zylinder (r1 = Tubr - Dicke, r2 = Tubr - Dicke, h = Tubl);

Probieren Sie dies aus und Sie haben nur einen einfachen Zylinder, um das ganze Rohr zu machen, müssen Sie es mit der Halbkugel zusammenschmelzen. Im Standard-openSCAD gibt es keine Halbkugel, Sie müssen sie erstellen. Verwenden Sie den Unterschied zwischen zwei Kugeln, um eine hohle Kugel zu erstellen, und entfernen Sie dann einen weiteren Würfel, der die Kugel abschneidet.

Unterschied ()
Kugel(tubr);
kugel(tubr - dick);
übersetzen([0, 0, -tubr])
Würfel (Größe = Tubr * 2, Mitte = wahr);

Jetzt haben Sie zwei separate Teile. Der nächste Schritt ist, sie zusammenzusetzen. Hier können Sie den union-Befehl verwenden. Wie beim Differenzbefehl nimmt die Vereinigung alle Teile in Ordnung. In der Union ist die Reihenfolge nicht so wichtig, da es sich um eine Ergänzung handelt. Der Code wird etwas hässlich aussehen, da wir hier keine Module verwenden.

Gewerkschaft ()
// Hauptrohr
Unterschied ()
Zylinder (r1 = Tubr, r2 = Tubr, h = Tubl);
Zylinder (r1 = Tubr - Dicke, r2 = Tubr - Dicke, h = Tubl);

// Untere Kugel
übersetzen([0, 0, tubl])
Unterschied ()
Kugel(tubr);
kugel(tubr - dick);
übersetzen([0, 0, -tubr])
Würfel (Größe = Tubr * 2, Mitte = wahr);


// Oberer Ring
Unterschied ()
Zylinder (r = Tubr + Dicke, h = Dicke);
Zylinder (r = Tubr, h = Dicke);

Hier gestalten wir es verkehrt herum, das liegt bei dir. Tun Sie, was für den jeweiligen Fall bequem ist. Sie können es jederzeit drehen, wenn Sie es verwenden. Der obere Ring hat scharfe Kanten, Sie können dies beheben, indem Sie einen Kreis verwenden und ihn drehen_extrudieren. Es gibt andere Möglichkeiten, es zu tun, zu erforschen und zu experimentieren!

rotation_extrude(Konvexität = 10, $fn = 100)
übersetzen([tubr, 0, 0])
Kreis (r = dick, $fn = 100);

Kombination vieler Zylinder

Wenn Sie aus mehreren Zylindern einen Schlauch gemacht haben, möchten Sie diese vielleicht auch auf unterschiedliche Weise verbinden. Dazu können Sie wieder eine Union verwenden. Nehmen wir an, Sie möchten ein Rohr in einem 45-Grad-Winkel zum anderen Rohr. Dazu positionieren Sie das abgewinkelte Rohr auf halber Höhe des großen Rohrs.

Gewerkschaft ()
Rohr (50, 4, 300);
translate([0, 0, totlength/2]) rotation([45, 0, 0])
Rohr (50, 4, 150);

Wenn du das probierst, sieht es von außen toll aus. Wenn du hineinschaust, siehst du, dass du beide ganze Röhren hast. Der kurze blockiert den Durchfluss im langen Rohr. Um dies zu beheben, müssen Sie beide Zylinder in den Rohren löschen. Sie können die gesamte Verbindung als ein Stück betrachten und die entsprechenden Zylinder dahinter in einen Unterschied setzen.

Unterschied ()
Gewerkschaft ()
Rohr (50, 4, 300);
translate([0, 0, totlength/2]) rotation([45, 0, 0])
Rohr (50, 4, 150);


Zylinder (r = 50 - 4, h = Gesamtlänge);
Übersetzen([0, 0, Gesamtlänge/2]) Rotieren([45, 0, 0])
Zylinder (r = 50 - 4, h = Gesamtlänge/2);

Wie Sie sehen, erstreckt sich der erste Zylinder über die gesamte Länge des Rohres. Dadurch wird alles in der großen Röhre gelöscht, aber die kleine Röhre, die geneigt ist, muss ebenfalls gelöscht werden. Der Übersetzungsbefehl bewegt das Rohr halb nach oben, es dreht sich dann und setzt den Zylinder in das Rohr ein. Tatsächlich wird der Code von oben kopiert und das Rohr durch einen Zylinder ersetzt.

Installation

Wenn Sie mehr Röhren herstellen möchten, können Sie das Modul im obigen Beispiel verwenden und mit der Erweiterung beginnen. Der Code ist verfügbar unter https://github.com/matstage/openSCAD-Zylinder.git, zum Zeitpunkt des Schreibens gibt es nur diese beiden, aber schau oft vorbei, um mehr zu sehen. Vielleicht kannst du noch mehr spannende Sachen erstellen.

Innerhalb eines Blocks

Wenn Sie einen Verbrennungsmotor bauen möchten, benötigen Sie ein zylindrisches Loch in einem festen Stück. Unten ist ein Beispiel, das einfachste möglich, für Kühlkanäle und Kolben gibt es noch viel mehr hinzuzufügen. Das ist aber für einen anderen Tag.

Modul Zylinderblock (
ZylinderR = 3,
Kante = 1,
AnzahlZylinder = 8)

Unterschied ()
Würfel([ZylinderR*2 + Kante * 2,
ZylinderR*2*numZylinder+Kante*numZylinder + Kante,10]);
for(x = [0:1:numZylinder-1])
translate([ZylinderR + Kante, ZylinderR*x*2+Edge*x+ZylinderR+Edge,0])
Zylinder (r = ZylinderR, h = 12);

Hier haben Sie einen Würfel, der entsprechend der Anzahl der gewünschten Zylinder im Block wächst. Alle Werte im Modul sind die Standardwerte, sodass Sie es ohne Werte verwenden können. Um es zu verwenden, verwenden Sie das '-Anweisung am Anfang Ihrer Datei und fügen Sie dann Zylinderblock (numCylinders = 8) hinzu. Sie können jeden Wert verwenden oder weglassen. Wenn Sie ihn weglassen, wird der Standardwert verwendet. Kurz gesagt, das Innere des Moduls beginnt mit den Werten und erstellt dann einen Würfel, der lang genug ist, um in die Zylinder zu passen. Dann geht es weiter, indem die Zylinder mit einer for-Anweisung entfernt werden. Dank der for-Anweisung können Sie einen größeren oder kleineren Block erstellen. Bei fortgeschritteneren Modulen können Sie Einschränkungen hinzufügen, die das Design ändern, wenn bestimmte Werte erreicht werden. Vielleicht möchten Sie es zu einem V machen, wenn es 8 oder mehr Zylinder ist.

Extrudieren aus einer flachen Form

Eine andere Möglichkeit, einen Zylinder zu erstellen, besteht darin, einen Kreis zu erstellen und ihn zu extrudieren. Ein Vollzylinder besteht nur aus zwei Linien:

linear_extrudieren(15)
Kreis (20);

Dies erzeugt eine Länge von 15 (keine Einheiten in openSCAD) mit einem Radius von 20. Sie können den Durchmesser mit dem Parameter d verwenden. Nur einen Zylinder zu erstellen ist nicht sehr nützlich, aber Sie können dieselbe Technik für jede 2D-Form verwenden use. Das wirst du später sehen. Bei einem Hohlzylinder ist der Code etwas länger.

linear_extrudieren(15)
Unterschied ()
Kreis (20);
Kreis (18);

Dies ist das gleiche, aber wie bereits zuvor, entfernen Sie den Mittelkreis. Sie können es auch mit der rotation_extrude-Version in einem Kreis biegen. Dies ist großartig für die Herstellung von Donuts, die einfachste Version sieht so aus.

rotation_extrude (Winkel = 180, Konvexität = 10)
übersetzen([30,0,0])
Unterschied ()
Kreis (20);
Kreis (10);

Dieser Code erzeugt einen Halbkreis, der hohl ist. Ein Hinweis, mit dem Sie vorsichtig sein sollten, ist, dass die Verschiebung erforderlich ist, oder Sie erhalten eine Fehlermeldung: „FEHLER: alle Punkte für rotateextrude() müssen das gleiche X-Koordinatenzeichen haben (Bereich ist -2 .).09 -> 20.00)”. Die Zahlen hängen vom Wert im Kreis ab. Da dies die gleiche Form wie ein Zylinder erzeugt, kann es nutzlos erscheinen. Es ist nicht! Die beste Verwendung dieses Befehls besteht darin, die flache Form irgendwie funktionsfähig zu machen. Das Handbuch hat als Beispiel ein einfaches Polygon, es erzeugt eine runde Form, in der Sie einen Riemen laufen lassen können. Du kannst es auch umdrehen. Der folgende Code erstellt einen Korkenzieher.

übersetzen([-80,0,0])
linear_extrude(80, twist = 900, scale = 2.0, Scheiben = 100)
übersetzen([2, 0, 0])
Quadrat (10);

Das Beispiel im Handbuch zeigt ein Polygon, das nützlich sein kann. Der folgende Code kann sein, was Sie wollen, veranschaulicht aber die Macht, dies auf diese Weise zu tun.

übersetzen([0, -80, 0])
rotation_extrude(Winkel = 275)
übersetzen([12,3,2])
polygon(Punkte = [[0,0], [20,17], [34,12], [25,22], [20, 30]]);

Sie können mit der Form des Polygons experimentieren, bis Sie es für Ihre Anwendung richtig gemacht haben. Wenn es ein wenig entmutigend ist, nur Zahlen zu verwenden, können Sie das Profil in anderen CAD-Programmen erstellen und das dxf-Ergebnis mit dem Befehl import() importieren.

Fazit

Einen Zylinder herzustellen ist einfach, aber nur der Anfang des Prozesses. Der knifflige Teil ist, daraus etwas Nützliches zu machen. Sie müssen es auch in Ihr Design integrieren und möglicherweise komplexere Probleme als bei Zylindern erstellen. Finden Sie Wege und Herausforderungen für Ihre kontinuierliche Wissenserweiterung mit openSCAD. Denken Sie daran, die Dokumentation zu verwenden und sich auf andere Software zu stützen, wenn dies mit Zahlen und dergleichen nicht einfach zu erreichen ist. Etwas, das in diesem Beitrag nicht behandelt wird, ist, dass Sie Dinge in Inkscape und Blender zeichnen und in openSCAD importieren können. Der Export von openSCAD in stl und andere Formate wird gut unterstützt und wenn Sie wirklich neugierig sind, schauen Sie sich die Kreationen auf Thingiverse an. Sie haben ein Bündel von Enthusiasten, die Dinge zu ihrer Website beitragen.

So installieren und spielen Sie Doom unter Linux
Einführung in Doom Die Doom-Serie entstand in den 90er Jahren nach der Veröffentlichung des ursprünglichen Doom. Es war sofort ein Hit und seitdem hat...
Vulkan für Linux-Benutzer
Mit jeder neuen Grafikkartengeneration stoßen Spieleentwickler an die Grenzen der grafischen Wiedergabetreue und kommen dem Fotorealismus einen Schrit...
OpenTTD vs. Simutrans
Das Erstellen einer eigenen Transportsimulation kann Spaß machen, entspannend und äußerst verlockend sein. Deshalb sollten Sie so viele Spiele wie mög...