Skip to content

Sweep (Extrusion)

Die Funktion Sweep erstellt ein 3D-Objekt durch Extrusion eines angegebenen Profils entlang eines Pfads, der durch eine 2D-Polylinie oder durch einen Kreis definiert wird. Das Profil wird durch eine geschlossene 2D-Polylinie oder durch einen Kreis definiert.

Format:

Sweep(, [,]);

Definiert das Profil mithilfe einer 2D-Polylinie.
Definiert den Pfad, entlang dessen das Profil "gezogen" wird. Der Pfad wird durch eine 2D-Polylinie definiert. Hinweis: Pfadebene und Profilebene müssen nicht parallel verlaufen.
Dieses optionale Argument definiert den Drehwinkel des Profils relative zur Z-Achse. Standardmäßig entspricht dieses Argument dem Wert Null.

Beispiel für eine Extrusion:

Poly1 = Polyline(

Point(0,0),

Point(1,0),

Point(1,2),

Point(0,2),

Point(0,0));

PolyProfil = RotateX(Poly1, 90); // die Funktion Rotate wird später erklärt

PolyPfad = Polyline(

Point(0,0),

Point(10,0),

Point(10,10),

Point(0,10),

Point(0,0));

PolySweep = Sweep(PolyProfil, PolyPfad);

Output(PolySweep);

Weiteres Beispiel für eine Extrusion:

//sweep1.ppm

R = 2;

D = 5;

C1 = RotateX(Circle(R, D/2+R, 0),90); // Profil

C2 = Circle(D/2, 0, 0); // Pfad

Torus = Sweep(C1,C2);

Output(C1, C2, Torus); //C1 und C2 werden als Referenz angezeigt

Erweitertes Beispiel für eine Extrusion:

//sweep2.ppm - weiteres Extrusionsbeispiel

L = Parameter("Länge", 5, LINEAR, Interval(0.005, 1000));

B = Parameter("Breite", 3, LINEAR, Interval(0.005, 1000));

H = Parameter("Höhe", 1, LINEAR, Interval(0.1, 3));

FR = Parameter("Abrundungsradius", 1, LINEAR, Interval(0.001, 100));

p = Polyline(Point(0,0), Point(0,H), Point(-FR,H), Point(-FR,0), Point(0,0));

p1a = RotateX(p,90,0,0);

p1 = Move(p1a, 0, B/2, 0);

p2 = Polyline(Point(0,0), Point(0,B), Fillet(FR), Point(L,B), Fillet(FR), Point(L,0), Fillet(FR), Point(0,0), Fillet(FR));

s = Sweep(p1, p2); Output(s);

Hinweis: Bitte beachten Sie, dass Dezimalwerte, wie oben angegeben, mit einem Dezimalpunkt anstelle eines Kommas eingegeben werden müssen (also z.B. „Interval(0.001, 100)" anstelle von „Interval(0,001, 100)"), da die Werte ansonsten nicht korrekt interpretiert und Skripte evtl. nicht ausgeführt werden können.