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(<Profil>, <Pfad>[,<Drehwinkel>]);

<Profil>

Definiert das Profil mithilfe einer 2D-Polylinie.

<Pfad>

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.

<Drehwinkel>

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.