Title: 2.8. Extrusion 2.8. Extrusionen
Course: Library of Things >> Part 1: OpenSCAD Basics Library of Things >> Teil 1: Basiskurs in OpenSCAD > Section: 2. First steps 2. Erste Schritte

linear_extrude()

- A process of creating an object with fixed cross-sectional profile
- There are 2 commands to create 3D shapes from a 2D shape: linear_extrude()
- This operation takes a 2D object as input and generates a 3D object as a result
- The shape of x and y will be projected upwards along the z axis.
- If you use transformations to change the object, then its transformed version will be extruded.
- Syntax usage: linear_extrude(height, center, convexity, twist, slices, scale, $fn) {...}
- Parameters are:

height >> z value for resulting 3D object >> It must be positive

twist >> Number of degrees, that the shape will twist throughout its extrusion. Positive value twists clockwise, negative value turns around anti-clockwise

center >> If center is true, the extruded object will be centered in the z axis of origin

slices >> Number of intermediate points along the Z-axis of the extrusion. Its Default increases with twist value

scale >> Scales the 2d shape to this value over the height of the extrusion (scalar or vector)

$fn >> Increases resolution resulting in higher smoothness

Linear extrusion 1:

linear_extrude(80, twist=360, slices=80) {

    rotate(45)

    scale([1.5, 0.5])

    square(10);

}

Linear extrusion 2:

linear_extrude(height=10, center=true, convexity=10, scale=3)

translate([2, 0, 0])

circle(r=1);

rotate_extrude()

- Like using a potter wheel, rotational extrusion spins a 2D shape around the Z-axis
- It has rotational symmetry
- The 2D shape must lie entirely on the left or right side of the Y-axis in order to work
- Syntax Usage: rotate_extrude(angle,convexity) {...}
- Parameters are:

angle >> Specifies number of degrees to sweep, starting at positive x (Integer - default: 360). Negative angle sweeps clockwise

convexity >> If the extrusion fails for a non-trivial 2D shape, try a value like 10 (recommended)

$fa >> Minimum angle of each fragment

$fs >> Minimum circumferential length of each fragment

$fn >> Fixed number of fragments in 360 degrees

Rotational extrusion 1 - Create a Donut:

rotate([0, 90, 0])

rotate_extrude(convexity=10)

translate([22, 0, 0]) //Change the y number

circle(r=10);

Rotational extrusion 2 - Create a hook:

translate([0, 0, 100])

rotate([-90, 0, 0])

union() {

    translate([0, 60, 0])

    rotate_extrude(angle=270, convexity=10)

    translate([40, 0])

    circle(10);

    rotate_extrude(angle=90, convexity=10)

    translate([20, 0]) circle(10);

    translate([20, 0, 0])

    rotate([90, 0, 0])

    cylinder(h=80, r=10);

}

Extruding a polygon:

rotate_extrude($fn=200) polygon(points=[[0, 0], [15, 0], [20, 5], [20, 20], [10, 25], [12, 50], [0, 50]]);

Change the code to make a real vase design out of it!

Solution:

rotate_extrude($fn=200) polygon(points=[[0, 0], [15, 0], [20, 5], [20, 20], [10, 25], [12, 50], [10, 50], [5, 5]]);

Ein Prozess zum Erstellen eines Objekts mit festem Querschnittsprofil. Es gibt 2 Befehle, um 3D-Formen aus einer 2D-Form zu erstellen:

linear_extrude()

- Diese Operation verwendet ein 2D-Objekt als Eingabe und generiert als Ergebnis ein 3D-Objekt.
- Die Form von x und y wird entlang der z-Achse nach oben projiziert.
- Wenn du Transformationen verwendest, um das Objekt zu ändern, wird seine transformierte Version extrudiert.
- Syntaxverwendung: linear_extrude(height,center,convexity,twist,slices,scale,$fn) {...}

- Parameter sind:

height >> z-Wert für resultierendes 3D-Objekt >> Muss positiv sein

twist >> Grad, um den sich die Form während der Extrusion verdreht. Positiver Wert dreht sich im Uhrzeigersinn, negativer Wert dreht sich gegen den Uhrzeigersinn.

center >> Wenn center wahr ist, wird das extrudierte Objekt in der z-Ursprungsachse zentriert.

slices >> Anzahl der Zwischenpunkte entlang der Z-Achse der Extrusion. Seine Vorgabe erhöht sich mit Erhöhung des Drallwertes

scale >> Skaliert die 2D-Form auf diesen Wert über die Höhe der Extrusion (Skalar oder Vektor)

$fn >> Erhöht die Auflösung, was zu einer höheren Glätte führt

Lineare Extrusion 1:

linear_extrude(80, twist=360, slices=80) {

    rotate(45)

    scale([1.5, 0.5])

    square(10);

}

Lineare Extrusion 2:

linear_extrude(height=10, center=true, convexity=10, scale=3)

translate([2, 0, 0])

circle(r=1);

rotate_extrude()

- Wie mit einem Töpferrad dreht die Rotationsextrusion eine 2D-Form um die Z-Achse.
- Es hat Rotationssymmetrie.
- Die 2D-Form muss ganz auf der linken oder rechten Seite der Y-Achse liegen, um zu arbeiten.
- Syntax-Nutzung: rotate_extrude(angle,convexity) {...}

- Parameter sind:

angle >> Gibt die Anzahl der Grad zu fegen, beginnend bei positivem x (Integer - default: 360). Negative Winkel kehren im Uhrzeigersinn

convexity >> Wenn die Extrusion für eine nicht-triviale 2D-Form ausfällt, versuche einen Wert wie 10 (empfohlen)

$fa >> Mindestwinkel jedes Fragments

$fs >> Mindestumfangslänge jedes Fragments

$fn >> Feste Anzahl von Fragmenten in 360 Grad

Rotationsextrusion 1 - Erstelle einen Donut:

rotate([0, 90, 0])

rotate_extrude(convexity=10)

translate([22, 0, 0]) //Change the y number

circle(r=10);

Rotationsextrusion 2 - Erstelle einen Haken:

translate([0, 0, 100])

rotate([-90, 0, 0])

union() {

    translate([0, 60, 0])

    rotate_extrude(angle=270, convexity=10)

    translate([40, 0])

    circle(10);

    rotate_extrude(angle=90, convexity=10)

    translate([20, 0]) circle(10);

    translate([20, 0, 0])

    rotate([90, 0, 0])

    cylinder(h=80, r=10);

}

Extrudieren eines Polygons:

rotate_extrude($fn=200) polygon(points=[[0, 0], [15, 0], [20, 5], [20, 20], [10, 25], [12, 50], [0, 50]]);

Ändere den Code, um daraus ein echtes Vasendesign zu machen:

Solution:

rotate_extrude($fn=200) polygon(points=[[0, 0], [15, 0], [20, 5], [20, 20], [10, 25], [12, 50], [10, 50], [5, 5]]);