LABORATORYラボラトリー

HOME > ラボラトリー > NURBSボリューム

曲線・曲面処理

NURBSボリューム

コンピュータで使用される曲線・曲面の表現は、時代とともに変化してきました。
アルモニコスは設立以来、そうした変遷に対応しながら研究を重ね、演算ライブラリを蓄積してきました。
1980年代、CAD/CAM業界ではFerguson曲線、多項式曲線、Coons曲面、多項式曲面が主に使用され、文字フォントやデザイン系CADではBezier曲線が用いられていました。1990年代に入ると、CAD/CAM業界にB-splineが導入され、すぐにNURBS(Non-Uniform Rational B-spline)への移行が進み、現在に至っています。(なお、MS Officeやフォントなどに見られる曲線は、そのふるまいから現在もBezier曲線と考えられます。)

NURBS表現の高い汎用性を踏まえると、CAD/CAM業界において、今後NURBSに代わる表現手法が登場する兆しは今のところ見られません。
現在のアルモニコスでは、NURBS表現に注力し、多様な演算プログラムを会社の資産として蓄積しています。その取り組みの一例として、非常にユニークなアプローチである「NURBSボリューム」をご紹介します。


NURBS曲面は、2つのパラメータを変数として、曲面上の位置を表現します。
一方、NURBSボリュームは、3つのパラメータを変数とし、空間上の位置を表現します。

つまり、次のような考え方ができます。

NURBS曲面では、1つのパラメータを固定すると、もう1つのパラメータを変数としたNURBS曲線が定義されます。このような曲線を「アイソパラメトリック曲線」と呼びます。

同様にNURBSボリュームでは、1つのパラメータを固定すると、残る2つのパラメータを変数としたNURBS曲面、すなわち「アイソパラメトリック曲面」が定義できます。さらに、2つのパラメータを固定すれば、残り1つのパラメータを変数としたNURBS曲線、つまりアイソパラメトリック曲線が定義されます。
このように、NURBSボリュームはNURBS曲面の概念を1次元拡張したものといえます。

空間を特定の流れに沿って区切りたい、またその区切りをパラメータによって定義・制御したいケースにおいて、NURBSボリュームは有効な手法となります。
例えば、流体解析(※1)などの空間解析で使用される空間格子(※2)の中でも、空間を六面体(HexaMesh)要素で埋めていく構造格子(Structured Grid)の生成などが挙げられます。NURBSという軽量なデータで表現されるため、空間格子の算出や、密度変更などのリメッシュ処理も容易になります。

※1 流体解析:流れの速度や圧力分布など、流体の挙動を数値的に解析する手法
※2 空間格子:連続的な空間を離散化するための分割構造。数値解析やシミュレーションにおいて、物理量を計算する基盤となる。

以下に、曲線、曲面、NURBSボリュームの式をご紹介します。
※Bスプライン関数式については省略

NURBS曲線:曲線上の座標値 Pc(t) ⇒(x,y,z)を計算

NURBS曲面:曲面上の座標値 Pf(u,v)⇒(x,y,z)を計算

NURBSボリューム:空間内の座標値 Pv(u,v,h)⇒ (x,y,z)を計算

今回ご紹介する「NURBSボリューム」の事例では、まず、モノの表面および空間の境界面がNURBS曲面で定義されていると仮定します。

上図では、モノの表面(奥側)と空間境界面(手前)それぞれのコントロールポイントを表示しています。ただし両者のコントロールポイント数が一致していないため、ある精度内で近似し、コントロールポイント数、u方向およびv方向のノット列を揃えます。

モノの表面を h=0.0 のアイソパラメトリックuv曲面、
空間境界面を h=1.0 のアイソパラメトリックuv曲面、
と定義します。
そして、表面から境界面までのパラメータ h方向を2次曲線で補間するものとします。

UV方向:格子構造(表面格子)

H0,H1の表面格子を設定します。

【H0】の表面格子

【H1】の表面格子

H方向の格子の座標は、UVの格子インデックスとH方向のパラメータ(h:0.0-1.0)により空間の座標値を計算します

【H方向の点】H0,H1の表面格子 + H方向曲線 + 曲線上の点

3次元の空間格子を作成する際、各格子点のXYZ座標値を直接保持するのではなく、NURBSボリューム構造を用いて格子点の座標値を算出することで、容易に空間格子を生成できます。
また、H方向の曲線を目的に合わせた曲線形状に変更することで、空間格子の再作成を行うことが可能となります。

通常、物体近傍(H0)では格子を細かく設定し、物体から離れるにしたがって徐々に粗くするのが理想的です。このような分布を実現するために、H方向の分割には等間隔ではなく、密から疎へと変化するよう、対数(log)関数を利用しました。

U:固定、VH方向の格子

V:固定、UH方向の格子

H:固定、UV方向の格子

空間格子

課題

解析計算に適した空間格子となるように、元となる表面格子の作成、H方向の曲線の形状など難しい点は多々あります。

  • 課題例
    • 表面格子の作成
      • 複数面で構成されている場合の表面格子
      • 平らな部分と曲がる部分の格子の密度
        • 曲がる部分(細かく)<平らな部分(粗い)
    • H方向の曲線定義
      • 交差せず、立方体に近い形状

今回は、NURBSを用いた空間格子の「NURBSボリューム」についてご紹介しました。
アルモニコスでは、パッケージ開発および受託開発を通じて、形状処理に関する高度な技術・知見・問題解決力を培ってまいりました。これらの強みを、皆様の課題解決に役立てていただければ幸いです。

ボトルネックとなっている技術的課題などがございましたら、ぜひご相談をお寄せください。

研究担当

NURBSボリューム

A-Pro事業部 プロジェクトスーパーバイザー 板垣武彦
1995年、数学を活かせる職場として(株)アルモニコスに入社。
入社より曲線・曲面処理・形状処理ライブラリの整備に関わり、形状処理を利用した各種アプリケーション開発・汎用CADカスタマイズに携わる。CV(ComputerVision)、物理モデル、有限要素法関連など分野を問わず数学を基にした開発を行い、現在はClass-NK PEERLESSの開発に従事。趣味は、マラソン、読書、モータースポーツ観戦(MotoGPからD1GPまで)、数学。マラソンは、100km/月を目標にし、週末は浜名湖周辺を15km~20kmランニング。年齢と共にタイムが落ち、ハーフマラソンで2時間切りに下方修正。数学検定1級取得に向けて、マイペースで勉強中。

NURBSボリューム

代表取締役社長 森川滋己
1988年、(株)アルモニコス入社。
入社以来、「点群、ポリゴン、自由曲線、自由曲面」を扱う形状処理技術に従事。特許出願、多数。アルモニコス製パッケージソフトspGate、spGauge、spScan、ClassNK-PEERLESSの企画および立ち上げを牽引。1999年、取締役に就任。2014年、代表取締役社長に就任。
趣味は、読書、釣り、ゴルフ、サーフィン、バイク、筋トレ。筋トレに関しては還暦までにベンチプレス100kg目標。現在(59歳1カ月)ベンチプレス97.5kgまで達成。

NURBSボリューム

※所属・肩書は記事掲載時のものであり、現在とは異なる場合があります。