Part Loft Technical Details/de

Diese Seite erklärt die Details, wie die Ausformungsoberfläche des Werkzeugs erzeugt wird. Dies ist ebenfalls relevant für Part Austragung, die entlang eines geraden Pfades erfolgen, auch wenn es Unterschiede gibt.

Die angegebenen Informationen sind implementierungsspezifisch und können sich ändern. Der aktuelle Stand ist relevant für FreeCAD 0.15.4119, OCC Version: 6.7.0.

Stufen der Ausformungserstellung
Um den Vorgang der Ausformung zu erklären, ist es sinnvoll, ihn in Stufen zu unterteilen:
 * 1) die Anzahl der Segmente in den Profilen gleich machen (wenn sie es nicht schon gleich sind)
 * 2) Übereinstimmung zwischen den Segmenten herstellen
 * 3) erstellen der Austragungsoberfläche

Schritt 1. Erstellen der Segmentanzahl mit Profilübereinstimmung
Die Ausformung benötigt die Anzahl der Segmente, um Flächen zwischen den entsprechenden Segmenten zu erzeugen. Wenn die Anzahl der Segmente in allen Profilen übereinstimmt, wird dieser Schritt übersprungen.

Wenn mindestens eines der Profile eine unterschiedliche Anzahl von Segmenten hat, wird das folgende Verfahren angewendet. Die Vorgehensweise wird hier der Einfachheit halber für den Fall von nur zwei Profilen erläutert.
 * 1) die Profile werden vorübergehend so ausgerichtet, dass sie koplanar sind und ihre Massenschwerpunkte* übereinstimmen.
 * 2) (siehe Bild) für jeden Knoten in einem Profil wird das zweite Profil unter dem gleichen Polarwinkel geschnitten (der Polmittelpunkt ist der Massenschwerpunkt). Wenn mehr als ein Scheibe möglich ist oder gar keine Scheibe möglich ist (das kann bei sehr konvexen Profilen passieren), schlägt die Ausformung typischerweise fehl.
 * 3) dasselbe wird in der entgegengesetzten Richtung gemacht.

Der Vorgang wird auf alle Profile ausgedehnt, um die gleiche Anzahl von Segmenten zu erhalten. Die Gesamtanzahl der Segmente in jedem Profil wäre gleich der Summe aller Segmentanzahlen aller Profile (vorausgesetzt, dass keiner der Knoten zufällig im gleichen Polarwinkel liegt).

Schritt 2. Übereinstimmung zwischen den Segmenten herstellen
Falls die Anzahl der Segmente in allen Profilen nicht gleich war, wurde in Schritt 1 das Schneiden durchgeführt, und die Übereinstimmung ist trivial. Falls die Anzahl der Segmente in allen Profilen gleich war, werden vorhandene Segmente verwendet (siehe Bild), und dann muss die Übereinstimmung festgestellt werden.

Der genaue Algorithmus zum Auffinden der entsprechenden Segmente ist komplex, aber im Allgemeinen neigt er dazu, die Verdrehung der resultierenden Ausformung zu minimieren. Das bedeutet, dass wenn man einen Loft zwischen zwei Quadraten macht, die maximal mögliche Verdrehung <45° ist. Eine weitere Drehung eines der Quadrate führt dazu, dass die Ausformung zu anderen Knoten springt.

Die Übereinstimmung zwischen benachbarten Profilen wird unabhängig voneinander hergestellt. Das bedeutet, dass durch das Hinzufügen weiterer Profile eine zusätzliche Verdrehung erreicht werden kann.

Zu beachten ist auch, dass bei gleicher Segmentanzahl in Profilen der resultierende Ausformung gegenüber komplexen Profilen, insbesondere bei nicht konvexen Profilen, wesentlich robuster ist.

Schritt 3. Die Ausformungsoberfläche herstellen.
Wenn es nur zwei Profile gibt, sind die erzeugten Flächen Regelflächen zwischen den entsprechenden Segmenten der Profile. Gerade Kanten werden erzeugt, um die entsprechenden Eckpunkte der Profile zu verbinden.

If there are more than two profiles, the surfaces are made of splines in the same manner as straight lines form ruled surfaces. The imaginary splines the surface is "made of" are drawn through corresponding points of the corresponding segments of the profiles.

The splines are B-spline interpolation.
 * If the number of profiles is below 10, interpolation is done with by a B-spline with a maximum possible degree (i.e. degree = number_of_profiles - 1).
 * If the number of profiles exceeds 10, the interpolation is switched to 3rd degree B-splines.

The knotting method used is "approximate chord length". Approximate stands for the fact that the knot vector is exactly the same for every spline in a loft. For more info on what is B-spline interpolation, knot vector, chord length method, see, for example, cs.mtu.edu Curve Global Interpolation.

Note that Loft has a "Ruled" property. If it is set to true, ruled surfaces are made between neighboring profiles even when there's more than one profile. That is, B-spline interpolation is replaced by piecewise linear interpolation.

The essence

 * The loft is doing B-spline interpolation between the provided profiles. The interpolation is switched to piecewise linear when "Ruled" property is set to true.
 * When number of profiles exceeds 9, interpolation degree is dropped to 3. This switchover can substantially reduce wiggling.
 * Matching the number of segments (aka number of vertices) in the profiles allows one to give the loft a slight twist, and typically permits using more complex profiles.
 * When numbers of segments are not matched, it's best to keep the profiles to be representable by a proper r(phi) function in polar coordinates.

Additional remarks

 * It is not required that the profiles are parallel (see a picture below).
 * For Loft, it is not required that the profiles are separated (see a picture below). They can be coplanar, but they should not intersect.
 * When "closed" property of the Loft is "true", there is a cusp joint in all the splines forming the Loft (see a picture below). There is no reliable way to close the loft smoothly now.