^
brixelweb.de OpenSCAD-Menu
[ https://openscad.org/ ]



Ein Rohrwinkel entsteht

Ein Rohrwinkel wird benötigt, damit ein Rohr um eine Ecke geführt werden kann.

Mit dem Befehl rotate_extrude(angle = ...,convexity = ...) kann ein 2D-Element, z.B. ein Kreis, um die Z-Achse gedreht und dadurch in ein 3D-Element geformt werden.

rotate_extrude(convexity = 10) = ohne "angle = ... ergibt immer einen vollen Ring mit 360 Grad. Durch die Winkeleingabe bei angle = ... kann das Maß beeinflusst werden:
Zum Beispiel veranlasst:
rotate_extrude(angle = 180, convexity = 10) einen halben Ring zu erzeugen.

// ein ganzer Ring
rotate_extrude(convexity = 10)
translate([15, 0, 0])
circle(r = 5);


// ein halber Ring
rotate_extrude(angle = 180, convexity = 10)
translate([15, 0, 0])
circle(r = 5);


// ein viertel Ring
rotate_extrude(angle = 90, convexity = 10)
translate([15, 0, 0])
circle(r = 5);


Kopiere den Script und probiere es doch aus!

Der Aufbau in einzelnen Schritten

Die erste Bemaßung

Außendurchmesser vom Ring: 40,
Materialstärke: 10 (r = 5)

Der rote Kreis in der Mitte ist der Koordinaten-Nullpunkt. Von hier aus wird alles berechnet in alle Achsen und auch Richtungen (+ oder -)

Vom Koordinaten-Mittelpunkt zum Mittelpunkt des Ringes sind es 15.
Daher rühren die 15 = (40 (Aussen∅) / 2 ) - 5 (Radius r)


Der erste Kreis in 2D!

Als Erstes wird ein Kreis mit Radius r = 5 erzeugt: circle(r = 5);. Dies ergibt einen Außendurchmesser von 10.
Das ist ein 2D-Element und wird mit Höhe von 1 automatisch erzeugt.

circle(r = 5);


Schiebung!

Danach wird der Kreis mit translate([15, 0, 0]) in seine eigentliche Position auf der X-Achse verschoben: 15.

translate([15, 0, 0])
circle(r = 5);


Nur ein Viertele

Durch den Befehl rotate_extrude wird eine Rotation ausgelöst. Diese geschieht grundsätzlich um die Z-Achse! Das Element wird dadurch automatisch gedreht!
Über (angle = 90, ...) wird ein Winkel von 90 Grad angegeben. Ohne Angabe würde ein kompletter Ring mit 360 Grad erzeugt.

rotate_extrude(angle=90,convexity = 10)
translate([15, 0, 0])
circle(r = 5);


difference

Nun haben wir einen massiven Viertel-Ring. Über den Befehl difference() { ...} wird von Element A das Element B abgezogen.

Dies bedeutet, von einem großen massiven Viertel-Ring wird ein selbiger mit einem kleineren Durchmesser abgezogen. Dadurch entsteht ein Rohr. Ob das Gebogen, wie in unserem Fall, oder gerade ist, spielt überhaupt keine Rolle: es wird abgezogen.

....
// Element B = kleiner Ring
rotate_extrude(angle = 90,convexity = 10)
translate([15, 0, 0])
circle(r = 4);
 

Als Element B, den Viertel-Ring mit dem kleineren Durchmesser, erstellen wir durch die drei Zeilen wie beim großen Ring.

Der einzige Unterschied ist der Durchmesser von 8, entsprechend r= 4. Dadurch entsteht eine Wandstärke von 1.

Die drei Zeilen von oben kopieren, unten einfügen und die Zahl 5 auf 4 ändern. Das war es schon.


Ziehe von A das B ab!

difference() {

// Element A = grosser Ring
rotate_extrude(angle=90,convexity = 10)
translate([15, 0, 0])
circle(r = 5);

// Element B = kleiner Ring
rotate_extrude(angle = 90,convexity = 10)
translate([15, 0, 0])
circle(r = 4);

} 

Materialstärke 8 (r=4)

Das Ganze wird nun mittels difference() { und } eingefasst...
...und schon haben wir ein gebogenes Rohr.

Leider entstehen hierbei keine sauberen Abschlüsse.


Verlängerung zum Säubern?

Wir verlängern nur den Winkel von 90 auf 91 Grad ...

difference() {

// Element A = grosser Ring
rotate_extrude(angle=90,convexity = 10)
translate([15, 0, 0])
circle(r = 5);

// Element B = kleiner Ring
rotate_extrude(angle = 91,convexity = 10)
translate([15, 0, 0])
circle(r = 4);

}

Mit und rotate_extrude(angle = 91,convexity = 10) kommt nun der Durchbruch:

... und schon ist der erste Abschluss sauber dargestellt.


Zweite Säuberung

Für den zweiten Abschluss benötigen wir eine dünne Scheibe, die dem Durchmesser des Innenrohres entspricht: 8, also r=4.

Hier kommt uns der neue Befehl # zu Hilfe!

Durch voranstellen der Raute (#) an einen Satz wird dieses erzeugte Element leicht rötlich und halb durchsichtig dargestellt.

Zwischen // Element B = kleiner ... und } fügen wir noch die 4 Zeilen von // Element C = Scheibe ein:

// Element C = Scheibe
#translate([0, 0, 0])
rotate([90,0,0])
cylinder(h = 1, r = 4, center = true);	


Alles Scheibe in rot

difference() {

// Element A = grosser Ring
rotate_extrude(angle=90,convexity = 10)
translate([15, 0, 0])
circle(r = 5);

// Element B = kleiner Ring
rotate_extrude(angle = 91,convexity = 10)
translate([15, 0, 0])
circle(r = 4);

// Element C = Scheibe
#translate([0, 0, 0])
rotate([90,0,0])
cylinder(h = 1, r = 4, center = true);

}

Die "rote Scheibe" wird erzeugt:

Durch das #translate... wird der Befehl bis zum ; durch geführt.

Die Scheibe steht hier noch im Mittelpunkt des Koordinatensystems, jedoch bereits um 90 Grad um die X-Achse gedreht.


Ran an die Position!

Die rote Scheibe wird nun an der richtigen Stelle positioniert:

.....
// Element C = Scheibe
#translate([15, 0, 0])
rotate([90,0,0])
cylinder(h = 1, r = 4, center = true);
.....

Durch das Einfügen von 15 statt 0 bei translate([15, 0, 0]) wird die Scheibe an die gewünschte Position verschoben: halb im Rohr und halb außerhalb. Zur besseren Begutachtung ist die Raute # noch aktiv.


Endlich alles sauber und rein!

difference() {

// Element A = grosser Ring
rotate_extrude(angle=90,convexity = 10)
translate([15, 0, 0])
circle(r = 5);

// Element B = kleiner Ring
rotate_extrude(angle = 91,convexity = 10)
translate([15, 0, 0])
circle(r = 4);

// Element C = Scheibe
translate([15, 0, 0])
rotate([90,0,0])
cylinder(h = 1, r = 4, center = true);

}

Die beiden sauberen Abschlüsse

Nach Entfernen der Raute wird die Scheibe ganz durchsichtig.
Somit wurden 2 saubere Abschlüsse des Durchganges vom Rohr erzeugt.
Manchmal benötigt es etwas mehr Aufwand zum gewünschten Ergebnis zu kommen ...


Bemerkung:

Beim Befehl difference() {.....} hat sich kaum etwas bemerkbar gemacht: es wurden zwei Elemente von Element A abgezogen!

Dies ist jedoch völlig richtig. Vom ersten Element ( bei uns: A) werden alle nachfolgende Elemente ( B und C und ...) abgezogen, bis es zur schließenden geschweiften Klammer } kommt.