Non‑Uniform Rational B‑Splines sind mathematisch definierte Kurven, Flächen oder Volumen, die zur Modellierung beliebiger Formen (Freiformen) verwendet werden. Im Prinzip kann jede beliebige technisch herstellbare oder in der Natur vorkommende Form mit Hilfe von NURBS dargestellt werden. Sie dienen hier dem Ziel, ein FE‑Netz zu generieren.
Eine interaktive Bearbeitung von NURBS ist in der Regel intuitiv über sogenannte Kontrollpunkte möglich. Diese liegen entweder direkt auf dem NURBS oder wirken, als ob sie mit einem Gummiband damit verbunden sind.
Eine NURBS‑Kurve von Grad p ist definiert durch:
\begin{align*}
C(u)=\frac{\sum\limits_{i=0}^n{N_\mathrm{i,p}(u)\textit{w}_\mathrm{i}P_\mathrm{i}}}
{\sum\limits_{i=0}^n{N_\mathrm{i,p}(u)\textit{w}_\mathrm{i}}}
=\sum\limits_{i=0}^n{R_\mathrm{i,p}(u)P_\mathrm{i}}
\ ;\ \ a\le u\le b
\end{align*}
mit
| u | Kurvenparameter. |
| n | Index des Kontrollpunktes am Kurvenende. |
| p | Polynomgrad der Kurve. |
| Pi | Kontrollpunkte; diese erzeugen das Kontrollpolygon. |
| wi | Gewichte der Kontrollpunkte. |
| Ni,p(u) | B‑Spline Basisfunktionen vom Grad p. |
| Ri,p(u) | Rationale Basisfunktionen vom Grad p. |
Der Kurvenparameter u ist definiert auf dem Knotenvektor
U = {a, ..., a, up+1, …., um‑p‑1, b, …, b}
Dieser hat m+1 Elemente. Der erste und letzte Knoten wiederholt sich p+1‑fach. Die Elemente des Knotenvektors sind in aufsteigender, nicht zyklischer Reihenfolge angeordnet, können jedoch ungleichförmig verteilt sein. In der Regel wird a=0 und b=1 gesetzt. Der Grad der Basisfunktionen kann im Prinzip beliebig gewählt werden. Aus konstruktiven und rechentechnischen Gründen sollte p zwischen 1 und 5 angenommen werden.
Die nachfolgende Abbildung zeigt eine NURBS‑Kurve vom Grad 2 mit dem zugehörigen Kontrollpolygon. Die Gewichtung aller Kontrollpunkte ist w = 1.
Der zugrunde liegende Knotenvektor lautet:
U = {0, 0, 0, 1/6, 1/3, 1/2, 2/3, 5/6, 1, 1, 1}
Den Verlauf der zugehörigen B‑Spline Basisfunktionen zeigt die folgende Abbildung.

Wichtige Eigenschaften der rationalen Basisfunktionen Ri,p
| • | Ri,p(u) ≥ 0 für alle u ⋲ [a, b]. |
| • | Die Summe aller Basisfunktionen an jedem Ort u ⋲ [a, b] ist gleich 1. |
| • | Jede Basisfunktion hat im Intervall u ⋲ [a, b] genau ein Maximum. |
| • | Ri,p(u) = 0 außerhalb des Intervalls [ui, ui+p+1]. |
| • | Für wi = const. gilt Ri,p(u) = Ni,p(u). |
| • | Innerhalb einer Knotenspanne existieren alle Ableitungen von Ri,p(u), an einem Knoten ist Ri,p(u) (p‑k)‑mal stetig differenzierbar. k ist die Vielfachheit des jeweiligen Knotens. |
Wichtige Eigenschaften von NURBS‑Kurven
Aus den o.g. Eigenschaften der rationalen Basisfunktionen ergeben sich die folgenden Eigenschaften der NURBS‑Kurven:
| • | C(a) = P0 und C(b) = Pn für u ⋲ [a, b]. |
| • | Eine affine Transformation von NURBS‑Kurven erfolgt durch Transformation der Kontrollpunkte. |
| • | Die Kurve C(u) liegt innerhalb der konvexen Hülle des Kontrollpolygons. |
| • | Eine NURBS‑Kurve ohne innere Knoten ist eine rationale Bézier‑Kurve. Somit beinhalten NURBS‑Kurven sowohl nichtrationale B‑Spline- als auch nichtrationale Bézier‑Kurven. |
| • | Die Änderung der Koordinaten oder des Gewichts eines Kontrollpunktes Pi wirkt sich nur auf den Teil der Kurve aus, der dem Intervall u ⋲ [ui, ui+p+1] zugeordnet ist. |
Verschiebung des Kontrollpunktes P3 nach P3’
Änderung des Kurvenverlaufs durch unterschiedliche Gewichtung des Kontrollpunktes P1
| • | Je kleiner der Grad einer NURBS‑Kurve ist, desto geringer ist die Abweichung vom zugehörigen Kontrollpolygon. Die nachfolgenden Kurven haben alle dasselbe Kontrollpolygon und denselben Knotenvektor jedoch unterschiedlichen Polynomgrad p. |
| • | Die Verwendung mehrfacher Kontrollpunkte führt zu Knicken in der Kurve. Dies ergibt sich unmittelbar aus der o.g. Bedingung der konvexen Hülle. |
Die nächste Abbildung zeigt den Verlauf, nachdem Kontrollpunkt P5 auf P4 geschoben worden ist. In der Umgebung des Knicks verläuft die NURBS‑Kurve linear. Einen vergleichbaren Effekt kann man durch Verwendung p‑facher Knoten erreichen, da dies wie erwähnt zu einer Diskontinuität führt.
Die Eigenschaften von NURBS‑Kurven können formal auf Flächen und Volumen übertragen werden. Sämtliche Prinzipien bleiben dabei erhalten. Die numerische Behandlung wird jedoch aufgrund des zwei- bzw. dreidimensionalen Parameterbereiches wesentlich aufwendiger. Bezüglich der mathematischen Grundlagen wird auf die Fachliteratur verwiesen.
NURBS‑Fläche mit zugehörigem Kontrollpolygon
Die Eingabe einer NURBS‑Kurve geschieht entweder über ihre Kontrollpunkte oder über Interpolationspunkte auf der NURBS‑Kurve. Zur Bearbeitung von NURBS stehen folgende Kontextfunktionen zur Verfügung:
| • | Kurvenrichtung umkehren |
| • | Kontrollpunkt verschieben |
| • | Kontrollpunkt‑Gewicht ändern |
| • | Kurven verbinden |
| • | Flächenrichtungen u, v vertauschen |
| • | Knoten einfügen |
NURBS‑Flächen werden mit Hilfe von NURBS‑Kurven erzeugt. Dazu stehen folgende Kontextfunktionen zur Verfügung:
| • | Fläche aus Profilkurven erzeugen |
| • | Fläche aus 4 Randkurven erzeugen |
| • | Rotationsfläche erzeugen |
NURBS‑Volumen werden mit Hilfe von NURBS‑Flächen erzeugt. Dazu stehen folgende Kontextfunktionen zur Verfügung:
| • | Rotationsvolumen erzeugen |
| • | Volumen aus Flächen erzeugen |
Beispiel für eine Fläche aus Profilkurven
Drei NURBS‑Kurven |
Mit der Funktion NURBS‑Kurve werden drei NURBS‑Kurven gezeichnet. Dabei ist auf eine einheitliche Ausrichtung der Kurven zu achten. |
NURBS‑Fläche |
Die drei NURBS‑Kurven werden in der Reihenfolge (1./2./3.) markiert. Sind die NURBS‑Kurven markiert, wird die Kontextfunktion Fläche aus Profilkurven erzeugen ausgewählt. Der Grad der Fläche in der 2. Richtung wird in diesem Beispiel zu 2 gewählt. |
NURBS‑Fläche mit FE‑Netz |
Über die Kontextfunktion FE‑Netz generieren der NURBS‑Fläche wird ein FE‑Netz erzeugt. |
Beispiel für eine Fläche aus vier Randkurven
Mit der Funktion NURBS‑Kurve werden vier unterschiedliche, zusammenhängende, NURBS‑Kurven gezeichnet.
Sind die NURBS‑Kurven markiert, wird die Kontextfunktion Fläche aus 4 Randkurven erzeugen ausgewählt. |
||
Vier NURBS‑Kurven |
NURBS‑Fläche |
|
NURBS‑Fläche mit FE‑Netz |
|
Über die Kontextfunktion FE‑Netz generieren der NURBS‑Fläche wird ein FE‑Netz erzeugt. |
Beispiel für ein Rotationsvolumen
Zwei NURBS‑Kurven |
NURBS‑Fläche |
Mit der Funktion NURBS‑Kurve werden NURBS‑Kurven ersten Grades, mit jeweils zwei Kontrollpunkten, gezeichnet. Sind die NURBS‑Kurven markiert, wird die Kontextfunktion Fläche aus Profilkurven erzeugen ausgewählt. |
NURBS‑Volumen |
FE‑Volumenmodell |
Über die Kontextfunktion Rotationsvolumen erzeugen der NURBS‑Fläche wird ein NURBS‑Volumen erzeugt. Über die Kontextfunktion FE‑Netz generieren des NURBS‑Volumens werden Volumenelemente (VQ83) erzeugt. |
Beispiel für ein Volumen aus Flächen
NURBS‑Kurven |
NURBS‑Flächen |
Mit den Funktionen NURBS‑Kurve und der Kontextfunktion Fläche aus Profilkurven erzeugen werden zwei räumliche NURBS‑Flächen erzeugt. Dabei ist auf eine einheitliche Orientierung der NURBS zu achten. |
NURBS‑Volumen |
FE‑Volumenmodell |
Sind die NURBS‑Flächen markiert, wird die Kontextfunktion Volumen aus Flächen erzeugen ausgewählt. Im Anschluss werden über die Kontextfunktion FE‑Netz generieren des NURBS‑Volumens Volumenelemente (VQ83) erzeugt. |