第84回: NURBS 要素と特別変換
- 6月19日
- 読了時間: 3分
ThinkDesign では、一般的な曲線・曲面は NURBS 要素 として取り扱われています。NURBS 変換 というコマンドなどもあり、NURBS という言葉はそれなりにお目にかかる機会も多いのではないかと思います。

それではそもそも NURBS とは???
今回はその NURBS について。(NURBS 曲線について説明します。)
NURBS とは、Non-Uniform Rational B-Spline の略です。
日本語にすると、Non-Uniform は「非一様」、Rational は「有理」であり、つまり NURBS は「非一様有理 B-Spline」となります。
「非一様」とは、ざっくり言うと、制御点の間隔が一様でない、つまり、自由な位置に制御点を配置することができる、という意味です。何を当たり前の話を?と思うかもしれませんが、この特徴は重要です。
「有理」とは、各制御点に「重み」を設定可能であるという意味です。
重みのデフォルト値は 1 ですが、その値を大きく(=重みを強く)すると、曲線はその制御点にどんどん引き寄せられ、逆に小さくすると離れていきます。

「B-Spline」とは、「基底(Basis)スプライン曲線」という意味で、基底関数を組み合わせて作る滑らかな曲線 というような意味です。
「基底関数」とは、各制御点が曲線のどの範囲まで影響を与えるかを決定する関数 です。また、「スプライン」は、かつて図面に曲線を描くために使用された 曲線定規(製図用具)の名前に由来しています。
NURBS では基底関数の働きのおかげで、曲線の形状は近傍の制御点の影響のみを受ける、という特徴があります。そのため、例えば以下の例のように、曲線の左側の形状は問題ないので一切変えず、右側の形状だけ他の要素に揃えて変更する、などという処理ができます。

と色々説明しましたが、簡単には、
「制御点の位置と重みで形状を定義された曲線」
というような認識で結構です。
そしてここで重要なのが制御点の「重み」です。
重みをうまく利用すると、円や楕円、双曲線などの 円錐曲線を近似することなく正確に表現することができる のです。
例えば、円の場合は、一部の制御点に 0.7071 (= 1/√2 = cos(45°) ) の重みを与えると、NURBS で正確に表現することができます。

NURBS 変換コマンドのオプションを展開すると、「特別」という項目があります。

この項目にチェックすると(デフォルトでチェックされています)、円など近似無しで変換可能な要素は有理 NURBS として、つまり制御点に自動的に 1 以外の値を設定して、変換されます。
もちろん、非有理 NURBS として変換した場合でも、一般的には十分な精度内で近似されるため、形状が変わると言う心配は不要です。しかし近似無しで変換できるのであれば、それに越したことはありませんね!
なお、今回ここでは曲線で説明しましたが、事情は曲面でも同じです。有理 NURBS であれば、球や円柱面などを近似することなく正確に変換することができます。

thinknews vol.889(2026年5月15日配信)




コメント