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



Ein Rohr entsteht

Um zwei Anschlüsse zu verbinden wird ein Rohr benötigt.

Es wird von einem großen Zylinder ein kleinerer abgezogen.

Dadurch entsteht im großen Zylinder ein Hohlraum = ein Rohr ist fertig!

// ein Rohr auf der Z-Achse
rotate([0,90,0])

difference() {
cylinder(h = 10, r = 5);

translate([0, 0, -0.1])
cylinder(h = 10.2, r = 4);

}


Kopiere den Script und probiere es doch aus!
& nbsp;

Der Aufbau in einzelnen Schritten

Die erste Bemaßung

Außendurchmesser vom Rohr: 10 ,
Innendurchmesser: 8 (r = 4)
Länge des Rohres: 10


Der erste Zylinder in massiv

Als Erstes wird ein Zylinder erstellt:
mit einer Höhe von 10: h = 10
ein Radius 5 ergibt einen Außendurchmesser von 10: r = 5

// Rohr 10 auf X-Achse

cylinder(h = 10, r = 5);


difference

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

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

....
// Element B = Innen Zylinder
#cylinder(h = 10, r = 4);
 

Als Element B, ein Zylinder mit kleinerem Durchmesser, erstellen wir durch die Zeile wie beim großen Zylinder.

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

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


Ziehe von A das B ab!

// Rohr 10 auf X-Achse

difference() {

// Element A = Aussen Zylinder
cylinder(h = 10, r = 5);

// Element B = Innen Zylinder
#cylinder(h = 10, r = 4);

}

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

Leider entstehen hierbei keine sauberen Übergänge.


Trickreiche Säuberung

Wir verschieben den Zylinder durch translate([0, 0, -.5]) um 0,5 nach unten und verlängern ihn gleichzeitig von 10 auf 11 .

Punkt-Schreibweise beachten: "0,5" wird als ".5" oder "0.5" notiert!

// Rohr 10 auf X-Achse

difference() {

// Element A = Aussen Zylinder
cylinder(h = 10, r = 5);

// Element B = Innen Zylinder
translate([0, 0, -.5])
#cylinder(h = 11, r = 4);

}

So sieht es von der Seite aus:

Deutlich sind die Überhänge des roten Zylinders zu sehen.


Eine bessere Ansicht

Für eine Ansicht mit Durchblick drehhen wir mal etwas .... mit der linken Maustaste.

Mit der Verlängerung kommt nun der Durchbruch:

... und schon schon sind beide Abschlüsse sauber dargestellt.

& nbsp;

Varianten des Rohres auf den Achsen

Ausgehend vom Nullpunkt des Koordinatensystems als jeweiliger Startpunkt kann nun das Rohr in alle 4 Richtungen ausgesucht werden. Es wird immer die Achse und die Richtung angegeben.

rohr-x-plus.scad

// Rohr 10 auf X-Achse PLUS
$fn = 100;

rotate([90,0,90])
difference() {

// Element A = Aussen Zylinder
cylinder(h = 10, r = 5);

// Element B = Innen Zylinder
translate([0, 0, -0.1])
cylinder(h = 10.2, r = 4);

}

rohr-x-minus.scad

// Rohr 10 auf X-Achse MINUS
$fn = 100;

rotate([90,0,90])
translate([0, 0, -10])
difference() {

// Element A = Aussen Zylinder
cylinder(h = 10, r = 5);

// Element B = Innen Zylinder
translate([0, 0, -0.1])
cylinder(h = 10.2, r = 4);

}


rohr-y-plus.scad

// Rohr 10 auf Y-Achse PLUS
$fn = 100;

rotate([90,0,180])
difference() {

// Element A = Aussen Zylinder
cylinder(h = 10, r = 5);

// Element B = Innen Zylinder
translate([0, 0, -0.1])
cylinder(h = 10.2, r = 4);

}

rohr-y-minus.scad

// Rohr 10 auf Y-Achse MINUS
$fn = 100;

rotate([90,0,0])
difference() {

// Element A = Aussen Zylinder
cylinder(h = 10, r = 5);

// Element B = Innen Zylinder
translate([0, 0, -0.1])
cylinder(h = 10.2, r = 4);

}


rohr-z-plus.scad

// Rohr 10 auf Z-Achse PLUS
$fn = 100;

rotate([0,0,180])
difference() {

// Element A = Aussen Zylinder
cylinder(h = 10, r = 5);

// Element B = Innen Zylinder
translate([0, 0, -0.1])
cylinder(h = 10.2, r = 4);

}

rohr-z-minus.scad

// Rohr 10 auf Z-Achse MINUS
$fn = 100;

rotate ([180,0,0])
difference() {

// Element A = Aussen Zylinder
cylinder(h = 10, r = 5);

// Element B = Innen Zylinder
translate([0, 0, -0.1])
cylinder(h = 10.2, r = 4);
}

& nbsp;

Längenänderung am Rohr

rohr-x-plus-variabel.scad

// Laengenaenderungen am
// Rohr 10 auf X-Achse PLUS variabel

$fn = 100;

hoehe = 17; // Deine Eingabe

rotate([90,0,90])
difference() {

// Element A = Aussen Zylinder
cylinder(h = hoehe, r = 5);

// Element B = Innen Zylinder
translate([0, 0, -0.1])
cylinder(h = hoehe + .2, r = 4);

}

Gebe in der Zeile bei hoehe = 17; // Deine Eingabe die gewünschte Höhe ein: statt 17 Deine Zahl!

rohr-x-minus-variabel.scad

// Rohr 10 auf X-Achse MINUS variabel
$fn = 100;

hoehe = 32; // Deine Eingabe

rotate([90,0,90])
translate([0, 0, - hoehe])
difference() {

// Element A = Aussen Zylinder
cylinder(h = hoehe, r = 5);

// Element B = Innen Zylinder
translate([0, 0, -0.1])
cylinder(h = hoehe + .2, r = 4);

}

Gebe in der Zeile bei hoehe = 32; // Deine Eingabe die gewünschte Höhe ein: statt 32 Deine Zahl!