(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-01
(45)【発行日】2024-03-11
(54)【発明の名称】曲面のフィッティング処理方法、フィッティング処理装置およびフィッティング処理プログラム、並びに、該フィッティング処理プログラムを記憶したコンピュータ読取可能な記憶媒体
(51)【国際特許分類】
G06T 17/30 20060101AFI20240304BHJP
G06F 30/23 20200101ALI20240304BHJP
【FI】
G06T17/30
G06F30/23
(21)【出願番号】P 2019159915
(22)【出願日】2019-09-02
【審査請求日】2022-08-12
(73)【特許権者】
【識別番号】000003137
【氏名又は名称】マツダ株式会社
(73)【特許権者】
【識別番号】304023318
【氏名又は名称】国立大学法人静岡大学
(74)【代理人】
【識別番号】110001427
【氏名又は名称】弁理士法人前田特許事務所
(72)【発明者】
【氏名】岡田 又治
(72)【発明者】
【氏名】三浦 憲二郎
(72)【発明者】
【氏名】中村 優人
【審査官】岡本 俊威
(56)【参考文献】
【文献】国際公開第2009/142037(WO,A1)
【文献】矢原弘樹 他,FFDを用いた3次元足部モデルの解剖学的特徴点抽出,電子情報通信学会論文誌(J87-D-II) ,日本,社団法人電子情報通信学会,2004年04月01日,第J87-D-II巻第4号,p967-977
(58)【調査した分野】(Int.Cl.,DB名)
G06T 17/00-17/30
G06F 30/23
(57)【特許請求の範囲】
【請求項1】
コンピュータが自由形状変形を実行することで、3次元空間上に設定される曲面モデルを、3次元空間上に設定される複数の目標点にフィッティングする曲面のフィッティング処理方法であって、
前記曲面モデルの少なくとも一部を囲むように、前記自由形状変形における複数の制御点を設定する制御点設定工程と、
前記曲面モデル上に、前記複数の目標点の各々と対応する複数の変形対象点を設定する変形対象点設定工程と、
前記変形対象点と、該変形対象点に対応する目標点との距離の2乗を積算してなる積算値が最小になるように最小2乗法を実行することにより、前記複数の制御点それぞれの移動量を決定する移動量決定工程と、
前記移動量に基づいて前記自由形状変形を実行することで、前記曲面モデルを前記複数の目標点にフィッティングするFFD実行工程と、を備え
、
前記変形対象点は、前記曲面モデル上における、前記目標点に対する最近傍点として設定される
ことを特徴とする曲面のフィッティング処理方法。
【請求項2】
コンピュータが自由形状変形を実行することで、3次元空間上に設定される曲面モデルを、3次元空間上に設定される複数の目標点にフィッティングする曲面のフィッティング処理方法であって、
前記曲面モデルの少なくとも一部を囲むように、前記自由形状変形における複数の制御点を設定する制御点設定工程と、
前記曲面モデル上に、前記複数の目標点の各々と対応する複数の変形対象点を設定する変形対象点設定工程と、
前記変形対象点と、該変形対象点に対応する目標点との距離の2乗を積算してなる積算値が最小になるように最小2乗法を実行することにより、前記複数の制御点それぞれの移動量を決定する移動量決定工程と、
前記移動量に基づいて前記自由形状変形を実行することで、前記曲面モデルを前記複数の目標点にフィッティングするFFD実行工程と、を備え、
前記曲面モデルは、複数の曲面を組み合わせてなり、
前記複数の曲面が同時に変形されるように、前記制御点設定工程、前記変形対象点設定工程、前記移動量決定工程および前記FFD実行工程を実行する
ことを特徴とする曲面のフィッティング処理方法。
【請求項3】
コンピュータが自由形状変形を実行することで、3次元空間上に設定される曲面モデルを、3次元空間上に設定される複数の目標点にフィッティングする曲面のフィッティング処理方法であって、
前記曲面モデルの少なくとも一部を囲むように、前記自由形状変形における複数の制御点を設定する制御点設定工程と、
前記曲面モデル上に、前記複数の目標点の各々と対応する複数の変形対象点を設定する変形対象点設定工程と、
前記変形対象点と、該変形対象点に対応する目標点との距離の2乗を積算してなる積算値が最小になるように最小2乗法を実行することにより、前記複数の制御点それぞれの移動量を決定する移動量決定工程と、
前記移動量に基づいて前記自由形状変形を実行することで、前記曲面モデルを前記複数の目標点にフィッティングするFFD実行工程と、を備え、
前記曲面モデルは、該曲面モデルの定義域を区画する曲面と、該曲面を切り抜くトリム曲面と、を組み合わせてなり、
前記曲面と前記トリム曲面との境界線に対し、前記制御点設定工程、前記変形対象点設定工程、前記移動量決定工程および前記FFD実行工程を実行する
ことを特徴とする曲面のフィッティング処理方法。
【請求項4】
コンピュータが自由形状変形を実行することで、3次元空間上に設定される曲面モデルを、3次元空間上に設定される複数の目標点にフィッティングする曲面のフィッティング処理方法であって、
前記曲面モデルの少なくとも一部を囲むように、前記自由形状変形における複数の制御点を設定する制御点設定工程と、
前記曲面モデル上に、前記複数の目標点の各々と対応する複数の変形対象点を設定する変形対象点設定工程と、
前記変形対象点と、該変形対象点に対応する目標点との距離の2乗を積算してなる積算値が最小になるように最小2乗法を実行することにより、前記複数の制御点それぞれの移動量を決定する移動量決定工程と、
前記移動量に基づいて前記自由形状変形を実行することで、前記曲面モデルを前記複数の目標点にフィッティングするFFD実行工程と、を備え、
前記移動量決定工程において決定された移動量を分割し、かつ該分割された各移動量に基づいて前記FFD実行工程を実行することで、前記自由形状変形を複数回にわたり繰り返し実行する
ことを特徴とする曲面のフィッティング処理方法。
【請求項5】
コンピュータが自由形状変形を実行することで、3次元空間上に設定される曲面モデルを、3次元空間上に設定される複数の目標点にフィッティングする曲面のフィッティング処理方法であって、
前記曲面モデルの少なくとも一部を囲むように、前記自由形状変形における複数の制御点を設定する制御点設定工程と、
前記曲面モデル上に、前記複数の目標点の各々と対応する複数の変形対象点を設定する変形対象点設定工程と、
前記変形対象点と、該変形対象点に対応する目標点との距離の2乗を積算してなる積算値が最小になるように最小2乗法を実行することにより、前記複数の制御点それぞれの移動量を決定する移動量決定工程と、
前記移動量に基づいて前記自由形状変形を実行することで、前記曲面モデルを前記複数の目標点にフィッティングするFFD実行工程と、
前記曲面モデルに曲面を外挿する工程と、
前記外挿された曲面上に、前記変形対象点を設定する工程と、を備える
ことを特徴とする曲面のフィッティング処理方法。
【請求項6】
請求項1
から5のいずれか1項に記載された曲面のフィッティング処理方法において、
前記複数の目標点は、金型の表面形状を測定することにより得られる複数の測定点からなる
ことを特徴とする曲面のフィッティング処理方法。
【請求項7】
請求項
5に記載された曲面のフィッティング処理方法において、
前記外挿された曲面と対応するように、前記目標点を追加する工程を備える
ことを特徴とする曲面のフィッティング処理方法。
【請求項8】
請求項1から
7のいずれか1項に記載された曲面のフィッティング処理方法において、
前記制御点設定工程は、前記曲面モデルを覆うボリュームを設定し、該ボリューム内に前記複数の制御点を配置する
ことを特徴とする曲面のフィッティング処理方法。
【請求項9】
演算部を有するコンピュータによって構成され、該コンピュータが自由形状変形を実行することで、3次元空間上に設定される曲面モデルを、3次元空間上に設定される複数の目標点にフィッティングする曲面のフィッティング処理装置であって、
前記演算部は、
前記曲面モデルの少なくとも一部を囲むように、前記自由形状変形における複数の制御点を設定する制御点設定部と、
前記曲面モデル上に、前記複数の目標点の各々と対応する複数の変形対象点を設定する変形対象点設定部と、
前記変形対象点と、該変形対象点に対応する目標点との距離の2乗を積算してなる積算値が最小になるように最小2乗法を実行することにより、前記複数の制御点それぞれの移動量を決定する移動量決定部と、
前記移動量に基づいて前記自由形状変形を実行することで、前記曲面モデルを前記複数の目標点にフィッティングするFFD実行部と、を有
し、
前記変形対象点は、前記曲面モデル上における、前記目標点に対する最近傍点として設定される
ことを特徴とする曲面のフィッティング処理装置。
【請求項10】
演算部を有するコンピュータによって構成され、該コンピュータが自由形状変形を実行することで、3次元空間上に設定される曲面モデルを、3次元空間上に設定される複数の目標点にフィッティングする曲面のフィッティング処理装置であって、
前記演算部は、
前記曲面モデルの少なくとも一部を囲むように、前記自由形状変形における複数の制御点を設定する制御点設定部と、
前記曲面モデル上に、前記複数の目標点の各々と対応する複数の変形対象点を設定する変形対象点設定部と、
前記変形対象点と、該変形対象点に対応する目標点との距離の2乗を積算してなる積算値が最小になるように最小2乗法を実行することにより、前記複数の制御点それぞれの移動量を決定する移動量決定部と、
前記移動量に基づいて前記自由形状変形を実行することで、前記曲面モデルを前記複数の目標点にフィッティングするFFD実行部と、を有し、
前記曲面モデルは、複数の曲面を組み合わせてなり、
前記演算部は、前記複数の曲面が同時に変形されるように、前記制御点設定部、前記変形対象点設定部、前記移動量決定部および前記FFD実行部による処理を実行する
ことを特徴とする曲面のフィッティング処理装置。
【請求項11】
演算部を有するコンピュータによって構成され、該コンピュータが自由形状変形を実行することで、3次元空間上に設定される曲面モデルを、3次元空間上に設定される複数の目標点にフィッティングする曲面のフィッティング処理装置であって、
前記演算部は、
前記曲面モデルの少なくとも一部を囲むように、前記自由形状変形における複数の制御点を設定する制御点設定部と、
前記曲面モデル上に、前記複数の目標点の各々と対応する複数の変形対象点を設定する変形対象点設定部と、
前記変形対象点と、該変形対象点に対応する目標点との距離の2乗を積算してなる積算値が最小になるように最小2乗法を実行することにより、前記複数の制御点それぞれの移動量を決定する移動量決定部と、
前記移動量に基づいて前記自由形状変形を実行することで、前記曲面モデルを前記複数の目標点にフィッティングするFFD実行部と、を有し、
前記曲面モデルは、該曲面モデルの定義域を区画する曲面と、該曲面を切り抜くトリム曲面と、を組み合わせてなり、
前記演算部は、前記曲面と前記トリム曲面との境界線に対し、前記制御点設定部、前記変形対象点設定部、前記移動量決定部および前記FFD実行部による処理を実行する
ことを特徴とする曲面のフィッティング処理装置。
【請求項12】
演算部を有するコンピュータによって構成され、該コンピュータが自由形状変形を実行することで、3次元空間上に設定される曲面モデルを、3次元空間上に設定される複数の目標点にフィッティングする曲面のフィッティング処理装置であって、
前記演算部は、
前記曲面モデルの少なくとも一部を囲むように、前記自由形状変形における複数の制御点を設定する制御点設定部と、
前記曲面モデル上に、前記複数の目標点の各々と対応する複数の変形対象点を設定する変形対象点設定部と、
前記変形対象点と、該変形対象点に対応する目標点との距離の2乗を積算してなる積算値が最小になるように最小2乗法を実行することにより、前記複数の制御点それぞれの移動量を決定する移動量決定部と、
前記移動量に基づいて前記自由形状変形を実行することで、前記曲面モデルを前記複数の目標点にフィッティングするFFD実行部と、を有し、
前記演算部は、前記移動量決定部によって決定された移動量を分割し、かつ該分割された各移動量に基づいて前記FFD実行部による処理を実行することで、前記自由形状変形を複数回にわたり繰り返し実行する
ことを特徴とする曲面のフィッティング処理装置。
【請求項13】
演算部を有するコンピュータによって構成され、該コンピュータが自由形状変形を実行することで、3次元空間上に設定される曲面モデルを、3次元空間上に設定される複数の目標点にフィッティングする曲面のフィッティング処理装置であって、
前記演算部は、
前記曲面モデルの少なくとも一部を囲むように、前記自由形状変形における複数の制御点を設定する制御点設定部と、
前記曲面モデル上に、前記複数の目標点の各々と対応する複数の変形対象点を設定する変形対象点設定部と、
前記変形対象点と、該変形対象点に対応する目標点との距離の2乗を積算してなる積算値が最小になるように最小2乗法を実行することにより、前記複数の制御点それぞれの移動量を決定する移動量決定部と、
前記移動量に基づいて前記自由形状変形を実行することで、前記曲面モデルを前記複数の目標点にフィッティングするFFD実行部と、を有し、
前記演算部はさらに、
前記曲面モデルに曲面を外挿し、
前記外挿された曲面上に、前記変形対象点を設定する
ことを特徴とする曲面のフィッティング処理装置。
【請求項14】
コンピュータに自由形状変形を実行させることで、3次元空間上に設定される曲面モデルを、3次元空間上に設定される複数の目標点にフィッティングする曲面のフィッティング処理プログラムであって、
前記コンピュータに、
前記曲面モデルの少なくとも一部を囲むように、前記自由形状変形における複数の制御点を設定する
第1の手順と、
前記曲面モデル上に、前記複数の目標点の各々と対応する複数の変形対象点を設定する
第2の手順と、
前記変形対象点と、該変形対象点に対応する目標点との距離の2乗を積算してなる積算値が最小になるように最小2乗法を実行することにより、前記複数の制御点それぞれの移動量を決定する
第3の手順と、
前記移動量に基づいて前記自由形状変形を実行することで、前記曲面モデルを前記複数の目標点にフィッティングする
第4の手順と、を実行させ
、
前記変形対象点は、前記曲面モデル上における、前記目標点に対する最近傍点として設定される
ことを特徴とする曲面のフィッティング処理プログラム。
【請求項15】
コンピュータに自由形状変形を実行させることで、3次元空間上に設定される曲面モデルを、3次元空間上に設定される複数の目標点にフィッティングする曲面のフィッティング処理プログラムであって、
前記コンピュータに、
前記曲面モデルの少なくとも一部を囲むように、前記自由形状変形における複数の制御点を設定する第1の手順と、
前記曲面モデル上に、前記複数の目標点の各々と対応する複数の変形対象点を設定する第2の手順と、
前記変形対象点と、該変形対象点に対応する目標点との距離の2乗を積算してなる積算値が最小になるように最小2乗法を実行することにより、前記複数の制御点それぞれの移動量を決定する第3の手順と、
前記移動量に基づいて前記自由形状変形を実行することで、前記曲面モデルを前記複数の目標点にフィッティングする第4の手順と、を実行させ、
前記曲面モデルは、複数の曲面を組み合わせてなり、
前記コンピュータに、前記複数の曲面が同時に変形されるように、前記第1の手順、前記第2の手順、前記第3の手順および前記第4の手順を実行させる
ことを特徴とする曲面のフィッティング処理プログラム。
【請求項16】
コンピュータに自由形状変形を実行させることで、3次元空間上に設定される曲面モデルを、3次元空間上に設定される複数の目標点にフィッティングする曲面のフィッティング処理プログラムであって、
前記コンピュータに、
前記曲面モデルの少なくとも一部を囲むように、前記自由形状変形における複数の制御点を設定する第1の手順と、
前記曲面モデル上に、前記複数の目標点の各々と対応する複数の変形対象点を設定する第2の手順と、
前記変形対象点と、該変形対象点に対応する目標点との距離の2乗を積算してなる積算値が最小になるように最小2乗法を実行することにより、前記複数の制御点それぞれの移動量を決定する第3の手順と、
前記移動量に基づいて前記自由形状変形を実行することで、前記曲面モデルを前記複数の目標点にフィッティングする第4の手順と、を実行させ、
前記曲面モデルは、該曲面モデルの定義域を区画する曲面と、該曲面を切り抜くトリム曲面と、を組み合わせてなり、
前記コンピュータに、前記曲面と前記トリム曲面との境界線に対し、前記第1の手順、前記第2の手順、前記第3の手順および前記第4の手順を実行させる
ことを特徴とする曲面のフィッティング処理プログラム。
【請求項17】
コンピュータに自由形状変形を実行させることで、3次元空間上に設定される曲面モデルを、3次元空間上に設定される複数の目標点にフィッティングする曲面のフィッティング処理プログラムであって、
前記コンピュータに、
前記曲面モデルの少なくとも一部を囲むように、前記自由形状変形における複数の制御点を設定する第1の手順と、
前記曲面モデル上に、前記複数の目標点の各々と対応する複数の変形対象点を設定する第2の手順と、
前記変形対象点と、該変形対象点に対応する目標点との距離の2乗を積算してなる積算値が最小になるように最小2乗法を実行することにより、前記複数の制御点それぞれの移動量を決定する第3の手順と、
前記移動量に基づいて前記自由形状変形を実行することで、前記曲面モデルを前記複数の目標点にフィッティングする第4の手順と、を実行させ、
前記コンピュータに、前記第3の手順によって決定された移動量を分割させ、かつ該分割された各移動量に基づいて前記第4の手順を実行させることで、前記自由形状変形を複数回にわたり繰り返し実行させる
ことを特徴とする曲面のフィッティング処理プログラム。
【請求項18】
コンピュータに自由形状変形を実行させることで、3次元空間上に設定される曲面モデルを、3次元空間上に設定される複数の目標点にフィッティングする曲面のフィッティング処理プログラムであって、
前記コンピュータに、
前記曲面モデルの少なくとも一部を囲むように、前記自由形状変形における複数の制御点を設定する第1の手順と、
前記曲面モデル上に、前記複数の目標点の各々と対応する複数の変形対象点を設定する第2の手順と、
前記変形対象点と、該変形対象点に対応する目標点との距離の2乗を積算してなる積算値が最小になるように最小2乗法を実行することにより、前記複数の制御点それぞれの移動量を決定する第3の手順と、
前記移動量に基づいて前記自由形状変形を実行することで、前記曲面モデルを前記複数の目標点にフィッティングする第4の手順と、を実行させ、
前記コンピュータにさらに、
前記曲面モデルに曲面を外挿させ、
前記外挿された曲面上に、前記変形対象点を設定させる
ことを特徴とする曲面のフィッティング処理プログラム。
【請求項19】
請求項
14から18のいずれか1項に記載されたフィッティング処理プログラムを記憶している
ことを特徴とするコンピュータ読取可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
ここに開示する技術は、曲面のフィッティング処理方法、フィッティング処理装置およびフィッティング処理プログラム、並びに、該フィッティング処理プログラムを記憶したコンピュータ読取可能な記憶媒体に関する。
【背景技術】
【0002】
曲面をフィッティングするための手法として、いわゆる自由形状変形(Free-Form Deformation:FFD)が広く知られている。FFDは、曲面を覆うボリュームを変形することで、このボリュームを介して曲面を変形する手法である。
【0003】
例えば特許文献1には、ガウス関数に基づくFFDの手法(GFFD)が開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
一般的なFFDにおいては、前述のボリューム内に複数の格子点(いわゆる制御点)を設定し、それら制御点をそれぞれ移動させることで、ボリュームの変形を実現する。
【0006】
ここで、例えば自動車の外板部品のように、曲面をきめ細かく変形する場合には、より簡素な変形で足る場合と比較して、制御点の数は増えることになる。これまでは、制御点が多数となった場合に、理論的根拠を明確にした上で、各制御点の移動量をシステマティックに決定することができなかった。
【0007】
ここに開示する技術は、かかる点に鑑みてなされたものであり、その目的とするところは、理論的根拠を明確にした上で、FFDにおける各制御点の移動量をシステマティックに決定することにある。
【課題を解決するための手段】
【0008】
ここに開示する技術は、コンピュータが自由形状変形を実行することで、3次元空間上に設定される曲面モデルを、3次元空間上に設定される複数の目標点にフィッティングする曲面のフィッティング処理方法に係る。
【0009】
前記曲面のフィッティング処理方法は、前記曲面モデルの少なくとも一部を囲むように、前記自由形状変形における複数の制御点を設定する制御点設定工程と、前記曲面モデル上に、前記複数の目標点の各々と対応する複数の変形対象点を設定する変形対象点設定工程と、前記変形対象点と、該変形対象点に対応する複数の目標点との距離の2乗を積算してなる積算値が最小になるように最小2乗法を実行することにより、前記複数の制御点それぞれの移動量を決定する移動量決定工程と、前記移動量に基づいて前記自由形状変形を実行することで、前記曲面モデルを前記複数の目標点にフィッティングするFFD実行工程と、を備える。
【0010】
そして、前記フィッティング処理方法によれば、前記変形対象点は、前記曲面モデル上における、前記目標点に対する最近傍点として設定される。
【0011】
この方法によれば、自由形状変形(FFD)における各制御点の移動量を、変形対象点と複数の目標点との距離の2乗和を用いた最小2乗法によって決定することができる。そのことで、理論的根拠を明確にしつつ、各制御点の移動量をシステマティックに決定することができる。
【0012】
さらに、前記フィッティング処理方法によれば、変形対象点を適切に設定し、ひいては各制御点の移動量をシステマティックに決定する上で有利になる。
【0013】
また、前記複数の目標点は、金型の表面形状を測定することにより得られる複数の測定点からなる、としてもよい。
【0014】
この方法によれば、ノイズ等が含まれ得る測定点を目標点とした場合にあっても、各制御点の移動量を適切に算出することができる。
【0015】
また、別のフィッティング処理方法によれば、前記曲面モデルは、複数の曲面を組み合わせてなり、前記別のフィッティング処理方法は、前記複数の曲面が同時に変形されるように、前記制御点設定工程、前記変形対象点設定工程、前記移動量決定工程および前記FFD実行工程を実行する。
【0016】
この方法によれば、様々な形態を有する曲面モデルをフィッティングすることができる。
【0017】
また、さらに別のフィッティング処理方法によれば、前記曲面モデルは、該曲面モデルの定義域を区画する曲面と、該曲面を切り抜くトリム曲面と、を組み合わせてなり、前記別のフィッティング処理方法は、前記曲面と前記トリム曲面との境界線に対し、前記制御点設定工程、前記変形対象点設定工程、前記移動量決定工程および前記FFD実行工程を実行する。
【0018】
この方法によれば、トリム曲面の境界線に対してFFDを実行することになる。ここで、曲面に対する変形結果を併用することで、曲面とトリム曲面との境界線の連続性、曲面とトリム曲面との接平面の連続性、および、曲面とトリム曲面との間の曲率の連続性を保ちつつ、曲面モデルをフィッティングすることができる。
【0019】
また、さらに別のフィッティング処理方法は、前記移動量決定工程において決定された移動量を分割し、かつ該分割された各移動量に基づいて前記FFD実行工程を実行することで、前記自由形状変形を複数回にわたり繰り返し実行する。
【0020】
この方法によれば、FFDを多段階で実行することで、曲面の広がりを抑制するとともに、より高精度な変形を実現することができる。
【0021】
また、さらに別のフィッティング処理方法は、前記曲面モデルに曲面を外挿する工程と、前記外挿された曲面上に、前記変形対象点を設定する工程と、を備える。
【0022】
この方法によれば、曲面の境界付近のうねりを抑制し、よりスムースなフィッティングを実現することができる。
【0023】
また、前記曲面のフィッティング処理方法は、前記外挿された曲面と対応するように、前記目標点を追加する工程を備える、としてもよい。
【0024】
また、前記制御点設定工程は、前記曲面モデルを覆うボリュームを設定し、該ボリューム内に前記複数の制御点を配置する、としてもよい。
【0025】
ここに開示する別の技術は、演算部を有するコンピュータによって構成され、該コンピュータが自由形状変形を実行することで、3次元空間上に設定される曲面モデルを、3次元空間上に設定される複数の目標点にフィッティングする曲面のフィッティング処理装置に係る。前記演算部は、前記曲面モデルの少なくとも一部を囲むように、前記自由形状変形における複数の制御点を設定する制御点設定部と、前記曲面モデル上に、前記複数の目標点の各々と対応する複数の変形対象点を設定する変形対象点設定部と、前記変形対象点と、該変形対象点に対応する目標点との距離の2乗を積算してなる積算値が最小になるように最小2乗法を実行することにより、前記複数の制御点それぞれの移動量を決定する移動量決定部と、前記移動量に基づいて前記自由形状変形を実行することで、前記曲面モデルを前記複数の目標点にフィッティングするFFD実行部と、を有する。
【0026】
そして、前記フィッティング処理装置によれば、前記変形対象点は、前記曲面モデル上における、前記目標点に対する最近傍点として設定される。
【0027】
この構成によれば、理論的根拠を明確にしつつ、各制御点の移動量をシステマティックに決定することができる。
【0028】
また、別のフィッティング処理装置によれば、前記曲面モデルは、複数の曲面を組み合わせてなり、前記演算部は、前記複数の曲面が同時に変形されるように、前記制御点設定部、前記変形対象点設定部、前記移動量決定部および前記FFD実行部による処理を実行する。
【0029】
また、さらに別のフィッティング処理装置によれば、前記曲面モデルは、該曲面モデルの定義域を区画する曲面と、該曲面を切り抜くトリム曲面と、を組み合わせてなり、前記演算部は、前記曲面と前記トリム曲面との境界線に対し、前記制御点設定部、前記変形対象点設定部、前記移動量決定部および前記FFD実行部による処理を実行する。
【0030】
また、さらに別のフィッティング処理装置によれば、前記演算部は、前記移動量決定部によって決定された移動量を分割し、かつ該分割された各移動量に基づいて前記FFD実行部による処理を実行することで、前記自由形状変形を複数回にわたり繰り返し実行する。
【0031】
また、さらに別のフィッティング処理装置によれば、前記演算部はさらに、前記曲面モデルに曲面を外挿し、前記外挿された曲面上に、前記変形対象点を設定する。
【0032】
ここに開示する別の技術は、コンピュータに自由形状変形を実行させることで、3次元空間上に設定される曲面モデルを、3次元空間上に設定される複数の目標点にフィッティングする曲面のフィッティング処理プログラムに係る。前記曲面のフィッティング処理プログラムは、前記コンピュータに、前記曲面モデルの少なくとも一部を囲むように、前記自由形状変形における複数の制御点を設定する第1の手順と、前記曲面モデル上に、前記複数の目標点の各々と対応する複数の変形対象点を設定する第2の手順と、前記変形対象点と、該変形対象点に対応する目標点との距離の2乗を積算してなる積算値が最小になるように最小2乗法を実行することにより、前記複数の制御点それぞれの移動量を決定する第3の手順と、前記移動量に基づいて前記自由形状変形を実行することで、前記曲面モデルを前記複数の目標点にフィッティングする第4の手順と、を実行させる。
【0033】
そして、前記フィッティング処理プログラムによれば、前記変形対象点は、前記曲面モデル上における、前記目標点に対する最近傍点として設定される。
【0034】
このプログラムによれば、理論的根拠を明確にしつつ、各制御点の移動量をシステマティックに決定することができる。
【0035】
また、別のフィッティング処理プログラムによれば、前記曲面モデルは、複数の曲面を組み合わせてなり、前記コンピュータに、前記複数の曲面が同時に変形されるように、前記第1の手順、前記第2の手順、前記第3の手順および前記第4の手順を実行させる。
【0036】
また、さらに別のフィッティング処理プログラムによれば、前記曲面モデルは、該曲面モデルの定義域を区画する曲面と、該曲面を切り抜くトリム曲面と、を組み合わせてなり、前記コンピュータに、前記曲面と前記トリム曲面との境界線に対し、前記第1の手順、前記第2の手順、前記第3の手順および前記第4の手順を実行させる。
【0037】
また、さらに別のフィッティング処理プログラムによれば、前記コンピュータに、前記第3の手順によって決定された移動量を分割させ、かつ該分割された各移動量に基づいて前記第4の手順を実行させることで、前記自由形状変形を複数回にわたり繰り返し実行させる。
【0038】
また、さらに別のフィッティング処理プログラムによれば、前記コンピュータにさらに、前記曲面モデルに曲面を外挿させ、前記外挿された曲面上に、前記変形対象点を設定させる。
【0039】
ここに開示する別の技術は、前記フィッティング処理プログラムを記憶していることを特徴とするコンピュータ読取可能な記憶媒体にも係る。
【0040】
この記憶媒体によれば、理論的根拠を明確にしつつ、各制御点の移動量をシステマティックに決定することができる。
【発明の効果】
【0041】
以上説明したように、前記曲面のフィッティング処理方法、フィッティング処理装置およびフィッティング処理プログラム、並びに、該フィッティング処理プログラムを記憶したコンピュータ読取可能な記憶媒体によれば、理論的根拠を明確にした上で、各制御点の移動量をシステマティックに決定することができる。
【図面の簡単な説明】
【0042】
【
図1】
図1は、曲面のフィッティング処理装置のハードウェア構成を例示する図である。
【
図2】
図2は、曲面のフィッティング処理装置のソフトウェア構成を例示する図である。
【
図3】
図3は、FFDの基本概念を説明するための図である。
【
図4】
図4は、曲面のフィッティング処理方法の基本的な手順を例示するフローチャートである。
【
図5】
図5は、曲面モデルをボリュームで覆う工程を説明するための図である。
【
図6】
図6は、最近傍点の探索手順を例示するフローチャートである。
【
図7】
図7は、最近傍点の探索手順を説明するための図である。
【
図8】
図8は、FFDにおける多段階変形の手順を例示するフローチャートである。
【
図9】
図9は、FFDにおける多段階変形の手順を説明するための図である。
【
図10】
図10は、トリム曲面によって構成される曲面モデルを例示する図である。
【
図11】
図11は、複数の曲面からなる曲面モデルを例示する図である。
【
図12】
図12は、曲面モデルに曲面を外挿する構成について説明するための図である。
【
図13】
図13は、ビード形状をモデル化した曲面モデルを例示する図である。
【
図14】
図14は、曲面モデルのA-A断面を例示する図である。
【
図16】
図16は、曲面モデルに多段階変形を適用した結果を示す図である。
【
図17】
図17は、演算部としてのCPUの構成を例示する図である。
【発明を実施するための形態】
【0043】
以下、本開示の実施形態を図面に基づいて説明する。以下の説明は、例示である。
【0044】
《装置構成》
図1は、本開示に係る曲面のフィッティング処理装置(具体的には、その処理装置を構成するコンピュータ1)のハードウェア構成を例示する図であり、
図2は、そのソフトウェア構成を例示する図である。
【0045】
図1に例示されるコンピュータ1は、コンピュータ1全体の制御を司る中央処理装置(Central Processing Unit:CPU)3と、ブートプログラム等を記憶しているリードオンリーメモリ(Read Only Memory:ROM)5と、メインメモリとして機能するランダムアクセスメモリ(Random Access Memory:RAM)7と、2次記憶装置としてのハードディスクドライブ(Hard Disk Drive:HDD)9と、フィッティング結果等を表示するディスプレイ11と、ディスプレイ11に表示する画像データを蓄積するメモリとして機能するグラフィックスメモリ(Video RAM:VRAM)13と、入力装置としてのキーボード15およびマウス17と、を備えている。また、このコンピュータ1は、インターフェース21を介して外部機器と通信を行うことができる。
【0046】
図2に例示するように、HDD9のプログラムメモリには、オペレーティングシステム(Operating System:OS)19、曲面のフィッティング処理プログラム29、アプリケーションプログラム39等が格納される。
【0047】
このうち、曲面のフィッティング処理プログラム29は、後述される曲面のフィッティング処理方法を実行するためのプログラムであって、同処理方法を構成する各工程(
図4のステップS1~ステップS5)に対応した手順を、CPU3に実行させるように構成されている。
図1に例示するように、曲面のフィッティング処理プログラム29は、コンピュータ読取可能な記憶媒体19に予め記憶されている。
【0048】
一方、HDD9のデータメモリには、変形対象とされる曲面モデルSを示すモデルデータ49と、曲面モデルSの変形目標とされる複数の目標点を示す測定データ59と、が格納される。
【0049】
なお、曲面モデルSとしては、金型をモデル化した3D曲面を用いることができる。この場合、複数の目標点としては、金型の表面形状を測定することにより得られる複数の測定点Qを用いることができる。本実施形態では、曲面モデルS一般に関連した構成について説明した後に、複数の曲面S1,S2からなる曲面モデルSなど、特定の曲面モデルに関連した構成について説明する。
【0050】
この他、フィッティング処理プログラム29の実行によって作成されるフィッティング後の曲面モデルや、アプリケーションプログラム39の実行によって作成される各種計算結果も、HDD9のデータメモリに記憶される。
【0051】
前記構成において、フィッティング処理プログラム29およびアプリケーションプログラム39は、キーボード15やマウス17から入力される指令に応じて起動される。その際、フィッティング処理プログラム29およびアプリケーションプログラム39は、HDD9からRAM7にロードされ、CPU3によって実行されることになる。CPU3がフィッティング処理プログラム29およびアプリケーションプログラム39を実行することで、このコンピュータ1は、曲面のフィッティング処理装置として機能することになる。ここで、CPU3は、本開示でいうところの演算部に対応している。演算部としてのCPU3は、
図17に例示するように、制御点設定部31、変形対象点設定部32、移動量決定部33およびFFD実行部34を有してなる。
【0052】
《曲面のフィッティング処理方法》
図3は、FFDの基本概念を説明するための図であり、
図4は、曲面のフィッティング処理方法の基本的な手順を例示するフローチャートであり、
図5は、曲面モデルSをボリュームVで覆う工程を説明するための図である。また、
図6は、最近傍点Hの探索手順を例示するフローチャートであり、
図7は、最近傍点Hの探索手順を説明するための図である。
【0053】
図4に示すフィッティング手順は、コンピュータ1が自由形状変形(Free-Form Deformation:FFD)を実行することで、3次元空間上に設定される曲面モデルSを、3次元空間上に設定される複数の目標点(測定点Q)にフィッティングするものである。
【0054】
ここで、FFDでは、まず、変形対象となる曲面モデルSを設定する。次いで、多数の制御点を有するボリュームVを設定し、そのボリュームVによって曲面モデルSを覆う。そして、各制御点を移動させることで、その制御点が定義されたボリュームV、ひいては座標系自体を変形せしめる。座標系の変形に伴って、ボリュームVに覆われた曲面モデルSも変形することになる(
図3を参照)。
【0055】
また、FFDによる曲面モデルSの変形は、グローバル座標系ではなく、パラメータ空間を用いて実行される。特に本実施形態では、曲面モデルSの変形は、2パラメータの自由曲面を介して実行される。以下の記載では、そうした自由曲面の一例として、B-Spline曲面を用いたケースについて説明する。
【0056】
具体的に、B-Spline曲面は、下式(1)によって定義することができる。
【0057】
【0058】
【0059】
上式(1)は、曲面モデルS上の座標をパラメトリック表現したものである。式(1)において、(u,v)は、それぞれ、B-Spline曲面をパラメトリック表現したときの変数であり、パラメータ空間(UV空間)を規定している。そして、“n”はu方向におけるB-Spline曲面の次数であり、“m”はv方向におけるB-Spline曲面の次数である。また、式(2)に示すように、“N”はいわゆるB-Spline基底関数である。すなわち、式(2)の“t”は、いわゆるノット列である。また、式(2)における上付の添字n,mは、それぞれ、u方向およびv方向におけるB-Spline曲面の次数を示している。また、Pijは、u方向においてi番目、かつv方向においてj番目の制御点を示している。
【0060】
(フィッティング処理方法の基本概念)
以下、
図4の各ステップについて順番に説明をする。
【0061】
-ステップS1-
最初のステップS1では、コンピュータ1は、プログラムメモリに格納されたモデルデータ49と測定データ59を読み込む。モデルデータ49および測定データ59は、前述のように、3次元空間上に設定され、かつFFDによる変形対象となる曲面モデルSと、この曲面モデルSの変形目標となる複数の測定点Qと、を含んでいる。
【0062】
このうち、曲面モデルSは、前述のように、2つのパラメータu,vを用いてパラメトリック表現するとともに、B-Spline基底関数によって展開されたB-Spline曲面として表される。曲面モデルSの形状は、各制御点Pijの座標と、B-Spline基底関数の形状を定めるノット列と、によって特徴付けることができる。
【0063】
-ステップS2-
続くステップS2では、制御点設定部31は、曲面モデルSおよび複数の測定点Qの少なくとも一部をボリュームVで覆い、かつ該ボリュームV内に複数の制御点Pijkを設定する。下式(3)に示すように、ボリュームVは、曲面モデルSと同様に、B-Spline基底関数を用いて展開することができる。
【0064】
【0065】
上式(3)によって定義されるB-Splineボリューム(以下、単に「ボリュームV」ともいう)Vは、曲面ではなく立体形状を示しているため、(u、v、w)を用いた3変数となる。
【0066】
ここで、曲率連続性を保証するためには、u方向、v方向およびw方向の全てにおいて3次以上のB-Spline基底関数を用いる必要がある。本実施形態では、3次のB-Spline基底関数を用いたケースについて説明する。
【0067】
また、上式(3)において、Pijkは、u方向においてi番目、かつv方向においてj番目、かつw方向においてk番目の制御点を示す。ボリュームVの形状は、各制御点Pijkの座標と、B-Spline基底関数の形状を定めるノット列と、によって特徴付けることができる。
【0068】
ここで、複数の制御点P
ijkは、曲面モデルSの少なくとも一部を囲むように設定すればよい。その場合、ボリュームVは、曲面モデルSの少なくとも一部を覆うことになる。特に本実施形態では、曲面モデルSおよび複数の測定点Qの全てを覆うようにボリュームVおよび制御点P
ijkが設定されていると同時に、各制御点P
ijkは、単純立方格子をなすように等間隔で並んでいる(
図5を参照)。
【0069】
ボリュームVおよび制御点Pijkの設定が完了すると、ステップS2からステップS3へ進む。ここに例示したステップS2は、本実施形態における「制御点設定工程」の例示である。
【0070】
-ステップS3-
続くステップS3では、変形対象点設定部32は、曲面モデルS上に、複数の測定点Qの各々と対応する複数の変形対象点を設定する。本実施形態では、各変形対象点は、曲面モデルS上での、各測定点Qに対する最近傍点Hとして設定される。
【0071】
例えば、ある測定点Qに対する曲線C上の最近傍点Hは、次のように計算することができる。すなわち、下式(4)に示すように、点Pと曲線C上の点を結ぶ線分が直交するときに、点Pと曲線C上の点が最も近付くことになる。
【0072】
【0073】
よって、上式(4)を用いた探索を、u方向とv方向の双方について実施することで、各測定点Qに対する曲面モデルS上の最近傍点Hを見つけ出すことができる。この処理を具体的に例示したのが、
図6に示すフローチャートである。
【0074】
まず、
図6のステップS31において、変形対象点設定部32は、曲面モデルSにおけるパラメータ(u,v)の値を、パラメータ空間(UV空間)上の中心に設定する。
【0075】
続くステップS32において、変形対象点設定部32は、奇数回目の探索であるか否かを判定し、この判定がYESの場合はu方向を選択する一方、ステップS32の判定がNOの場合はv方向を選択する。
【0076】
続くステップS33において、変形対象点設定部32は、ステップS32で選択された方向を固定した上で、選択されなかった方向を曲面モデルS上で変化させる。そして、各測定点Qとの距離が最も近いパラメータを発見する。ステップS33に係る処理は、上式(4)を用いて実行される。なお、上式(4)を数値計算する際には、二分法、ニュートン法等を用いることができる。
【0077】
続くステップS34において、変形対象点設定部32は、ステップS33で発見されたパラメータを最近傍点Hの座標に代入することで、最近傍点Hの座標を更新する。
【0078】
続くステップS35において、変形対象点設定部32は、ステップS34で更新された最近傍点Hの座標が所定条件を満たすか否かを判定し、YESの場合はフローを終了する一方、NOの場合は、探索回数を1回分加算した上でステップS32に戻る。
【0079】
なお、ステップS35における所定条件には、探索時におけるパラメータ(u,v)の変化量、および/または、最近傍点Hと測定点Qとの距離が所定の閾値未満になったかを否かが含まれる。これに加えて、または、これに代えて、最近傍点Hの探索回数に閾値を設定し、探索回数がその閾値を超えたか否かを判定してもよい。
【0080】
例えば
図7に示すように、1回目の探索時には、u方向を固定した上でv方向を変化させ、測定点Qとの距離が最も近いパラメータvの値を探索する。そうして探索されたvの値で最近傍点Hの座標を更新し、更新された座標が所定条件を満たすか否かを判定する。ここで、更新された座標が所定条件を満たさなかった場合は、v方向を固定した上でu方向を変化させ、測定点Qとの距離が最も近いパラメータuの値を探索する。そうして探索されたuの値で最近傍点Hの座標を更新し、更新された座標が所定条件を満たすか否かを再度判定する。
【0081】
こうした工程を繰り返し実行し、所定条件が満たした時点におけるパラメータ(u,v)の値を、最終的な最近傍点Hの座標に設定する。
【0082】
また、
図6に示す処理は、ボリュームVによって覆われた全ての測定点Qに対して実行される。例えば測定点Qの数がN個であった場合は、N個の測定点Qのそれぞれについて、最近傍点Hの座標が探索されることになる。
【0083】
以下、N個の最近傍点Hのうち、p番目の最近傍点Hの座標を(up,vp)と表記する。以下の記載では、この最近傍点Hに対応する測定点Qの座標を、特にQ(up,vp)と表記する場合がある。
【0084】
なお、測定点Qと、これに対応する最近傍点Hとが大きく離れている場合、後述の最小2乗法でフィッティングするには不適切であるため、取り除く必要がある。そこで、本実施形態に係る曲面のフィッティング処理方法は、測定点Qと最近傍点Hとの距離が所定の閾値を上回る場合は、その測定点Qをフィッティングの対象から取り除く工程を備えている。
【0085】
図6に示す処理を全ての測定点Qに対し実行すると、
図6に係るフローを終了し、
図4のステップS3からステップS4へ進む。ここに例示したステップS3は、本実施形態における「変形対象点設定工程」の例示である。
【0086】
-ステップS4-
以下、曲面モデルSの制御点Pijとの混同を防ぐべく、ボリュームVの制御点Pijkを“Rijk”と表記することに留意されたい。
【0087】
ステップS3から続くステップS4では、移動量決定部33は、ボリュームV内に含まれる変形対象点(最近傍点H)と、その最近傍点Hに対応する測定点Qとの距離の2乗を積算してなる積算値が最小になるように最小2乗法を実行する。最小2乗法を実行することにより、CPU3は、FFDにおける複数の制御点Rijkそれぞれの移動量ΔRijkを決定する。
【0088】
FFDを用いた場合、ボリュームVの制御点Rijkを移動させることで、このボリュームVを介して曲面モデルSを変形させるようになっている。一方、曲面モデルSの形状は、制御点Pijによって特徴付けられている。
【0089】
よって、FFDによって曲面モデルSを変形させるためには、ボリュームVの制御点Rijkと、曲面モデルSの制御点Pijとの対応関係が必要になる。ここで、ボリュームVの制御点Rijkにおける添字との混合を防ぐべく、曲面モデルSの制御点PijをP(I,J)と表記すると、この制御点P(I,J)自体を、式(3)と同様に、ボリュームVの制御点Rijkを用いて展開することができる。
【0090】
【0091】
s,t,wは、それぞれ、I,Jによって決定することができる。前述のように、ボリュームVの制御点Rijkを格子状に配置することで、曲面モデルSにおける2つのパラメータ(I,J)と、ボリュームVにおける3つのパラメータ(s,t,w)との対応関係を容易に算出することができる。
【0092】
そして、式(1)におけるn,mをそれぞれL,Mに置き換えた上で、式(5)を式(1)に代入することで、曲面モデルSは、下式(6)のように表すことができる。
【0093】
【0094】
これを用いて、下式(7)のように目的関数(Cost Function)を定義することができる。
【0095】
【0096】
ここで、式(7)の括弧内の第1項は、ボリュームVの制御点Rijkを所定の移動量ΔRijkだけ移動させたときのp番目の最近傍点Hの座標を示したものである。一方、式(7)の括弧内の第2項は、その最近傍点Hに対応する測定点Qの座標を示したものである。
【0097】
すなわち、目的関数Fは、制御点Rijkを所定の移動量ΔRijkだけ移動させたときの、最近傍点Hと測定点Qとの距離の2乗和(距離の2乗を積算してなる積算値)を示している。したがって、目的関数Fは、最小2乗法における目的関数とみなすことができ、目的関数Fを最小とする移動量ΔRijkを探索し、探索された移動量ΔRijkの分だけ制御点Rijkを移動させれば、最近傍点Hと測定点Qとの距離の2乗和を最小とすることができる。
【0098】
具体的に、移動量決定部33は、目的関数Fを移動量ΔRijkによって偏微分し、それを0とおくことで、目的関数Fを最小とする移動量ΔRijkを求める。
【0099】
ここで、簡潔に表記するべく、
【数8】
とする。目的関数FをR
ijk’によって偏微分すると、
【数9】
となる。式(9)の左辺を0とおくと、下式(10)が得られる。
【0100】
【0101】
式(10)を行列形式で記載すると、下式(11)が得られる。
【0102】
【0103】
式(11)において、行列Aは(i×j×k)次の正方行列である。行列Aの各要素は、下式(12)~(14)のように示される。
【0104】
【0105】
【0106】
【0107】
式(11)をRijk’について解くことで、目的関数Fを最小とするRijk’ひいては移動量ΔRijkを求めることができる。式(11)の解法としては、例えばLU分解法を用いることができる。移動量決定部33は、LU分解法等を用いた数値計算を通じて、移動量ΔRijkを算出する。
【0108】
移動量ΔR
ijkの算出が終了すると、
図3のステップS4からステップS5へ進む。ここに例示したステップS4は、本実施形態における「移動量決定工程」の例示である。
【0109】
-ステップS5-
ステップS4から続くステップS5では、FFD実行部34は、ステップS4で算出された移動量ΔRijkに基づいてFFDを実行することで、曲面モデルSを複数の測定点Qにフィッティングする。
【0110】
具体的に、FFD実行部34は、制御点R
ijkを移動させ、新たな制御点R
ijk+ΔR
ijkに更新する。これにより、式(3)に基づいてボリュームVが変形される。そして、式(5)に基づいて曲面モデルSの制御点P(I,J)が更新されると同時に、式(1)に基づいて曲面モデルSが変形されて、
図4に示すフローが終了する。
【0111】
なお、ここに例示したステップS5は、本実施形態における「FFD実行工程」の例示である。
【0112】
このように、本実施形態によれば、FFDにおける各制御点Rijkの移動量ΔRijkを、変形対象点としての最近傍点Hと、これに対応した各測定点Qとの距離の2乗和を用いた最小2乗法によって決定することができる。そのことで、理論的根拠を明確にしつつ、各制御点の移動量ΔRijkをシステマティックに決定することができる。
【0113】
また、複数の目標点として、金型の表面形状を示す複数の測定点Qを用いることで、ノイズ等が含まれ得る測定点Qを目標点とした場合にあっても、各制御点Rijkの移動量ΔRijkを適切に算出することができる。
【0114】
-多段階変形に関連した構成-
図8は、FFDにおける多段階変形の手順を例示するフローチャートであり、
図9は、FFDにおける多段階変形の手順を説明するための図である。
【0115】
ところで、曲面モデルSと各測定点Qとが比較的離れていた場合には、
図4のフローだけでは不十分となる可能性がある。すなわち、最小2乗法によるFFDを用いた場合、曲面モデルSと各測定点Qとが十分に近付くか否かは、変形対象点としての最近傍点Hの探索精度に依存する。曲面モデルSと各測定点Qとが相対的に大きく離れているときには、最近傍点Hとして得られたパラメータが最適ではない場合がある。そこで、FFDによる変形を複数回にわたり繰り返すとともに、その都度、最近傍点Hを探索することで、より高精度な変形を実行することができる。
【0116】
具体的に、曲面のフィッティング処理装置としてのコンピュータ1は、前述のステップS4(移動量決定工程)において決定された移動量ΔRijkを分割し、かつ該分割された移動量ΔRijkに基づいて前述のステップS5(FFD実行工程)を実行することで、FFDを複数回にわたり繰り返し実行する。
【0117】
図8は、そうした多段階変形の手順を例示したフローチャートである。
図8において、“N”は、FFDの繰り返し回数を示している。この繰り返し回数Nは、予め設定されており、RAM7、HDD9等に記憶されている。
【0118】
まず、
図8では省略したが、コンピュータ1は、
図4のステップS1~S2のように、モデルデータ49の読み込みと、ボリュームVの設定と、を実行する。このとき、コンピュータ1は、FFDの繰り返し回数Nも読み込む。
【0119】
それに続いて、
図8のステップS101に示すように、CPU3は、変数iをゼロに設定する。変数iは、その時点での繰り返し回数を示している。
【0120】
続くステップS102において、変形対象点設定部32は、各測定点Qに対応する曲面モデルS上の最近傍点H
iを探索する。ここで、最近傍点H
iにおける下付の添字iは、繰り返し回数iを示している。具体的に、このステップS102では、
図4のステップS3と同様の処理、すなわち、
図6を用いて説明した処理が実行される。ここで、i=0の場合、つまり、一回目の探索時に発見される最近傍点H
0は、
図4のステップS3で得られる最近傍点Hと一致する。
【0121】
続くステップS103において、移動量決定部33は、ステップS102で発見された最近傍点H
iに基づいて、最小2乗法によって制御点の移動量ΔR
iを求める。移動量ΔR
iにおける下付の添字iは、最近傍点H
iと同様に、繰り返し回数iを示している。具体的に、このステップS103では、
図4のステップS4と同様の処理が実行される。
【0122】
続くステップS104において、移動量決定部33は、ステップS103で求めた移動量ΔRiを分割し、新たな移動量ΔRi’を算出する。具体的に、移動量ΔRi’は、下式(15)より得られる。
【0123】
【0124】
続くステップS105において、FFD実行部34は、ステップS104で求めた新たな移動量ΔRi’を基に、ボリュームVの制御点R、ひいては曲面モデルSの制御点P(I,J)を移動させる。
【0125】
続くステップS106において、CPU3は、繰り返し回数iがN-1に達したか否か、つまり、ステップS102からステップS105をN回にわたって繰り返したか否かを判定する。この判定がYESの場合はFFDによる変形を終了する。
【0126】
一方、ステップS106の判定がNOの場合は、ステップS107において繰り返し回数iを1回分だけ加算した上で、ステップS102へ戻る。ステップS102に戻った場合、最近傍点H
i+1は、新たな移動量ΔR
i’を基に変形された後の曲面モデルS上で探索されることになる。こうした工程を再帰的に繰り返すことで、最近傍点H
i,H
i+1,H
i+2は、測定点Qに徐々に近付いていくことになる(
図9を参照)。
【0127】
なお、上式(15)から見て取れるように、繰り返し回数iが相対的に小さいときには、新たな移動量ΔRi’は、元の移動量ΔRiに比して十分に小さな値となる。一方、繰り返し回数iが大きくなるにつれて、新たな移動量ΔRi’は、元の移動量ΔRiに近接した値となる。特に、繰り返し回数iがN-1に達した場合、新たな移動量ΔRi’は、元の移動量ΔRiと一致することになる。
【0128】
このように、曲面モデルSを多段階で変形することで、曲面の広がりを抑制するとともに、より高精度な変形を実現することができる。
【0129】
《特定の曲面モデルに関連した構成》
-トリム曲面に関連した構成-
図10は、トリム曲面Stによって構成される曲面モデルSを例示する図である。
【0130】
前述のように、曲面モデルSとして、金型をモデル化した3D曲面を用いるとともに、複数の目標点として、金型の表面形状を示す複数の測定点Qを用いることができる。ここで、自動車の外板部品用の金型のように、複雑かつ微細な形状を有する金型の場合、
図3等に示すような単一の曲面ではなく、いわゆるトリム曲面を組み合わせた曲面としてモデル化される可能性がある。
【0131】
すなわち、
図10に例示するように、曲面モデルS’として、その曲面モデルS’の定義域を区画する曲面Sdと、該曲面Sdを切り抜くトリム曲面Stと、を組み合わせたものをフィッティングする場合がある。
【0132】
しかし、曲面モデルSの制御点P(I,J)のみを移動対象としてボリュームVの制御点Rijkの移動量ΔRijkを決定した場合には、トリム曲面Stの制御点を移動させることができない。
【0133】
そこで、本実施形態に係るコンピュータ1は、曲面モデルS’を構成する曲面Sdに加え、その曲面Sdとトリム曲面Stとの境界線Cに対し、FFDによるフィッティングを実行するように構成されている。
【0134】
詳しくは、曲面Sdは、前述の曲面モデルSと同様にフィッティングされる。一方、曲面Sdとトリム曲面Stとの境界線Cは、UV空間上における閉ループ(
図10を参照)として定義した上で、その閉ループに対し、最小2乗法を用いたFFDを実行すればよい。
【0135】
さらに詳しくは、まず、UV空間上のトリム曲面Stに基づいて、このトリム曲面Stと曲面Sdとの境界線Cに沿うように、曲面Sd上に適当な間隔でサンプリングした点を配置する。そうして配置されたサンプリング点に対して前述のステップS2(制御点設定工程)、ステップS3(変形対象点設定工程)、ステップS4(移動量決定工程)およびステップS5(FFD実行工程)を実行することで、境界線CをFFDによって変形することができる。そして、境界線Cの変形結果を曲面Sdの変形結果に反映させることで、トリム曲面Stについても間接的にフィッティングすることできる。
【0136】
このように、閉ループとして定義される境界線Cに対するFFDの実行結果と、曲面Sdに対する変形結果とを併用することで、曲面Sdとトリム曲面Stとの境界線Cの連続性、曲面Sdとトリム曲面Stとの接平面の連続性、および、曲面Sdとトリム曲面Stとの間の曲率の連続性を保ちつつ、曲面モデルSをフィッティングすることができる。
【0137】
-複数曲面のトリム曲面に関連した構成-
図11は、複数の曲面S
1,S
2からなる曲面モデルを例示する図である。
【0138】
一般に、金型等のモデルが複数の曲面から構成される場合、それら曲面同士の接続関係を保ちながら同時に変形することが望ましい。
図11に例示するように、本実施形態に係る曲面のフィッティング処理方法は、複数曲面を同時に変形することができる。
【0139】
すなわち、曲面モデルSは、3次元空間上に設定される複数の曲面S1,S2,…を組み合わせてなり、曲面のフィッティング処理装置としてのコンピュータ1は、それら複数の曲面S1,S2,…が同時に変形されるように、前述のステップS2(制御点設定工程)、ステップS3(変形対象点設定工程)、ステップS4(移動量決定工程)およびステップS5(FFD実行工程)を実行することができる。
【0140】
ここで、基本的には曲面が1つであるときと同一の処理が実行されるが、曲面が複数のときには、各測定点Qについて、変形対象とする曲面を選択する処理が必要となる。具体的に、コンピュータ1は、ステップS3と前後して、各測定点Qと、全ての曲面S1,S2,…と、の距離を算出し、算出された距離が最も短い曲面を選択する。このように、測定点Qごとに、最短となる曲面、ひいては最近傍点Hを関連付ける工程を実行する。
【0141】
そして、式(11)等に基づき最小2乗法を実行する際には、測定点Qごとに、対応する曲面との距離の2乗和を積算する。測定点Qごとに対応する曲面を適切に選択することで、複数の曲面を組み合わせてなる曲面モデルSをフィッティングすることができる。
【0142】
例えば、
図11に示す例では、測定点Qと曲面S
1との距離と、測定点Qと曲面S
2との距離と、が順番に計算されて、相対的に距離が短い曲面S
1が選択されることになる
このように、複数の曲面から構成される曲面モデルSであっても、FFDを用いてフィッティングすることができる。
【0143】
-自由曲面の外挿に関連した構成-
図12は、曲面モデルSに曲面S
eを外挿する構成について説明するための図である。
【0144】
また一般に、フィッティングにより得られた曲面が、各測定点Qと十分に近接しながらも、各測定点Qから外れたところ(特に、曲面の境界付近)で不自然にうねる可能性がある。こうした状況は、例えば、曲面モデルSが複雑な形状を有していたり、各測定点Qが多量に配置されていたりした場合に生じ得る。このことは、車両の外板部品用の金型のように、複雑かつ微細な形状を有する金型に応用するには不都合である。
【0145】
そこで、本実施形態に係る曲面のフィッティング処理方法は、
図12に例示するように、曲面モデルSに曲面S
eを外挿するとともに、変形対象点としての最近傍点Hを、外挿された曲面(以下、「外挿面」と呼称し、符号“S
e”を付す)上にも設定することができる。また、必要に応じて、外挿面S
eと対応するように、必要に応じて測定点Q
eを仮想的に追加することもできる。こうした工程は、例えば、
図4におけるステップS1の前後に追加される。
【0146】
ここで、外挿面Seの形状は不問である。外挿面Seは、例えば、曲面モデルSの端から延長した接平面としてもよい。また、追加される測定点Qeについても、その精度は特に考慮する必要はない。
【0147】
このように構成することで、曲面の境界付近のうねりを抑制し、よりスムースなフィッティングを実現することができる。
【0148】
《曲面のフィッティング処理方法の具体例》
一般に、外板部品の金型の製作は、職人の手作業が介入する要素が多く、効率化が望まれている。特に、金型が劣化し、再び同じ金型を製造する際には、最初に製造したときと同様の手作業を行ったのでは非効率的である。そこで、いわゆる1番型を3次元測定し、その測定結果をCADシステムにフィードバックすることで、2番型以降の職人による手作業を効率化することができる。
【0149】
ここで、CADシステムへのフィードバックに際しては、職人による手作業の影響を、例えば金型新製時に用いた3次元CADデータに反映させる必要がある。そこで、現物金型の測定結果を測定値Qとするとともに、フィードバック前の3次元CADデータを曲面モデルSとした上で、最小2乗法を用いたFFDの手法、すなわち本実施形態に係る曲面のフィッティング処理方法を適用する。これにより、FFDにおける制御点の移動量をシステマティックに決定し、3次元CADデータを測定値Qにフィッティングさせることができる。
【0150】
このように、本実施形態に係る曲面のフィッティング処理方法は、いわゆるリバースエンジニアリングに用いることができる。特に、自動車の外板部品用の金型は、複雑かつ繊細な形状を有していることから、金型を基に得られる曲面モデルは、複数のトリム曲面から構成されたり、複数の曲面から構成されたりする可能性がある。前述のように、本実施形態に係る曲面のフィッティング処理方法は、そうした曲面モデルであっても、理論的根拠を明確にしつつ、システマティックにフィッティングすることができる。
【0151】
特に、制御点の移動量の決定方法は、これまでは、理論的根拠が全くない、或いは、理論的根拠が適切であるとは断定できなかった。しかし、本実施形態によれば、理論的根拠を明確にしつつ、たとえ制御点の数が増えたとしても、ユーザに負担を与えることなく自動的に移動量を決定することができる。
【0152】
以下、曲面のフィッティング処理方法の具体例について、
図13~
図16を用いて説明する。ここで、
図13はビード形状をモデル化した曲面モデルSbを例示する図であり、
図14は曲面モデルSbのA-A断面を例示する図であり、
図15は曲面モデルSbの変形結果を示す図であり、
図16は曲面モデルSbに多段階変形を適用した結果を示す図である。
【0153】
図13に例示する曲面モデルSbは、外板部品を製造するための金型におけるビード形状をモデル化したものであり、新製時の3次元CADデータからなる。一方、
図13における目標点は、例えば、職人が手作業で加工した後の、現物金型の表面形状を示す測定点からなる。
【0154】
少なくとも
図14に例示した断面においては、曲面モデルSbは、紙面左側から順に、第1曲面Sb1、第2曲面Sb2、第3曲面Sb3、第4曲面Sb3、第5曲面Sb5に分割されている。また、第1曲面Sb1からは紙面左側に向って第1外挿面Sx1が外挿されており、第2曲面Sb2からは紙面右側に向って第2外挿面Sx2が外挿されている。さらに、第1外挿面Sx1と第2外挿面Sx2の外挿に伴って、新たに測定点Qeが追加されている。
【0155】
図15に示すように、第1曲面Sb1および第5曲面Sb5のように相対的に曲率が小さい曲面については、第2曲面Sb2および第4曲面Sb4のように相対的に曲率が大きい曲面に比して、過不足なく変形されている。
【0156】
また、
図16は、1段階で変形した場合(
図8においてN=1とした場合)と、10段階で変形した場合(
図8においてN=10とした場合)と、でフィッティングの結果を比較して示した図である。図から見て取れるように、10段階で曲面モデルSbを変形した場合は、1段階で曲面モデルSbを変形した場合に比して、変形後の曲面モデルSb上の最近傍点Hと、その最近傍点Hに対応する測定点Qと、の距離が概ね小さくなっている。このことは、多段階での変形が、より高精度なフィッティングを実現することを意味している。
【0157】
《他の実施形態》
前記実施形態では、自由曲面としてB-Spline曲面を用いた構成について説明したが、本開示は、その構成に限定されない。例えば、式(1)等で例示したB-Spline曲面の代わりに、ベジエ曲面、NURBS曲面等を用いることもできる。
【0158】
また、前記実施形態では、目標点として、金型の表面形状を測定することにより得られる測定点Qを用いた構成を例示したが、本開示は、その構成に限定されない。例えば、金型の新製時に用いられる数値データを目標点としてもよい。すなわち、ここに開示する技術は、金型のリバースエンジニアリング以外の用途に用いることができる。
【0159】
さらに、前述の具体例では、金型として、自動車の外板部品用の金型を例示したが、本開示の適用対象は、これに限定されない。本開示は、内板部品用の金型、骨格部品用の金型、および他のあらゆる金型に適用することができる。また、本開示に係る方法は、金型の新製時ばかりでなく、経年変化の修正等、金型のメンテナンス時においても有用である。
【0160】
また、前記実施形態では、変形対象点として、曲面モデルS上の最近傍点Hを用いた構成を例示したが、本開示は、その構成に限定されない。最近傍点H以外の点を変形対象点とすることができる。
【0161】
また、前記実施形態では、コンピュータ1の一例として、1つのCPU3を有するものを例示したが、そうした構成には限られない。コンピュータ1には、スーパーコンピュータ、PCクラスター等の並列計算機も含まれる。コンピュータ1を並列計算機とした場合、曲面のフィッティング処理プログラム29は、複数の計算機を用いて実行されることになる。
【産業上の利用可能性】
【0162】
以上説明したように、本開示は、外板部品用の金型をはじめとする種々の金型の製造、および、そのメンテナンスに有用であり、産業上の利用可能性がある。
【符号の説明】
【0163】
1 コンピュータ(曲面のフィッティング処理装置)
3 CPU(演算部)
31 制御点設定部
32 変形対象点設定部
33 移動量決定部
34 FFD実行部
19 記憶媒体
H 最近傍点(変形対象点)
Rijk 制御点
ΔRijk 移動量
Q 測定点(目標点)
Qe 追加される測定点
S 曲面モデル
S1,S2 複数の曲面
Sd 曲面(定義域を区画する曲面)
St トリム曲面
Se 外挿面(外挿された曲面)
V ボリューム