(57)【要約】【課題】  解析対象部品モデルの三次元ＣＡＤデータ上に存在する突起を確実かつ簡単に特定でき、各突起の曲率に関する情報を高精度にて生成できる三次元ＣＡＤ用突起解析システムを提供する。【解決手段】  解析対象部品モデルの突起解析を行うに際し、部品モデルの表面形状を図形データとして記述する三次元ＣＡＤデータを、該解析対象部品モデルの表面に沿って分散する点群に一旦変換し、その点群から各々４点以上を含む突起探索用のサブ点群を選択する。そして、そのサブ点群に含まれる複数の点の座標値に基づき、当該サブ点群に対応する解析対象部品モデルの表面領域の曲率情報を生成し、該曲率情報が予め定められた突起特定条件を充足する場合に、対応するサブ点群を突起に由来する突起点群として特定する。【選択図】  図１９
2020027654.tif 000002
【特許請求の範囲】
【請求項１】
突起を有した解析対象部品モデルの表面形状を図形データとして記述する三次元ＣＡＤデータを、前記解析対象部品モデルの表面に沿って分散する点群に変換する点群変換部と、
前記点群から各々４点以上を含む突起探索用のサブ点群を選択するサブ点群選択部と、
前記サブ点群に含まれる４以上の点の座標値に基づき、当該サブ点群に対応する領域の曲率情報を生成する曲率情報生成部と、
前記曲率情報が示す前記領域の曲率が予め定められた値よりも大きくなる場合に、対応する前記サブ点群を前記突起に由来する突起点群として特定する突起点群特定部と、
を備えたことを特徴とする三次元ＣＡＤ用突起解析システム。
【請求項２】
前記三次元ＣＡＤデータは前記解析対象部品モデルの表面の立体曲面形状を複数の三角形の集合にて近似的に記述するＳＴＬデータであり、前記点群変換部は、前記ＳＴＬデータを構成する前記三角形の頂点座標に基づいて前記点群の座標値を生成する点群座標値生成部を有する請求項１記載の三次元ＣＡＤ用突起解析システム。
【請求項３】
前記点群座標値生成部は、個々の前記三角形の前記頂点座標に基づき各前記三角形の内部に複数の点が分散生成するように、それら点の座標値を決定するものである請求項２記載の三次元ＣＡＤ用突起解析システム。
【請求項４】
前記ＳＴＬデータは、前記立体曲面形状において曲率の大きい領域ほどサイズの小さい三角形群で被覆されるように構成されており、
前記点群座標値生成部は、前記三角形のサイズが大きいほど、１つの三角形内に生成される点の数が多くなるように前記点群の座標値を決定するものである請求項３記載の三次元ＣＡＤ用突起解析システム。
【請求項５】
前記点群座標値生成部は、各前記三角形内に前記点群がランダムに分散生成されるよう、乱数を用いて前記点群の座標値を決定するものである請求項３又は請求項４に記載の三次元ＣＡＤ用突起解析システム。
【請求項６】
前記点群座標値生成部は、結合係数κ１、κ２、κ３（ただし、κ１＋κ２＋κ３＝１）を用いて前記三角形内の点の位置ベクトルＰを、前記三角形の３つの頂点の位置ベクトルＶ１，Ｖ２，Ｖ３の線形結合により、
Ｐ≡κ１・Ｖ１＋κ２・Ｖ２＋κ３・Ｖ３
にて記述するとともに、前記結合係数κ１、κ２、κ３の２つを、各々独立した一様乱数ε１及びε２を用いて決定するものである請求項５記載の三次元ＣＡＤ用突起解析システム。
【請求項７】
前記サブ点群選択部は、前記解析対象部品モデルの表面に分散する前記点群中の１つの点を基準点として定めるとともに、当該基準点から一定の回収半径内に存在する点を前記サブ点群として定めるものである請求項１ないし請求項６のいずれか１項に記載の三次元ＣＡＤ用突起解析システム。
【請求項８】
前記サブ点群選択部は、前記回収半径内に存在する前記基準点を起点とした複数の点からなる最近傍点列を順次探索する最近傍点探索部を備える請求項７記載の三次元ＣＡＤ用突起解析システム。
【請求項９】
前記最近傍点探索部は、前記点群の座標空間を三次元Ｋｄ木により分割するとともに、前記基準点が所属する葉セルを探索起点セルとして、隣接する葉セルを前記Ｋｄ木構造に沿って順次探索することにより前記最近傍点列を決定する請求項８記載の三次元ＣＡＤ用突起解析システム。
【請求項１０】
前記曲率情報生成部は、前記サブ点群をなす複数の前記点の座標値の分散・共分散行列の３つの固有値λ０、λ１、λ２（ただし、λ０は最小固有値）に基づいて、前記曲率ｋを、
ｋ＝λ０／（λ０＋λ１＋λ２）
として算出するものである請求項１ないし請求項９のいずれか１項に記載の三次元ＣＡＤ用突起解析システム。
【請求項１１】
前記曲率情報生成部は、前記曲率を曲率半径値に変換する曲率半径値変換部を備える請求項１ないし請求項１０のいずれか１項に記載の三次元ＣＡＤ用突起解析システム。
【請求項１２】
前記曲率半径値変換部は、表面の曲率半径が既知の学習用突起を含む参照部品モデルの前記学習用突起について前記曲率情報生成部により算出された前記曲率の値と、当該曲率の算出に用いた前記サブ点群の点の数とを含む入力情報と、前記学習用突起の前記曲率半径値を含む出力情報とからなる教師データを複数組用いて機械学習済みの曲率半径機械学習部を備え、前記解析対象部品モデルの前記突起について前記曲率情報生成部により算出された前記曲率の値と、当該曲率の算出に用いた前記サブ点群の点の数とが入力されることにより、前記曲率に対応する曲率半径値を算出・出力するものである請求項１１記載の三次元ＣＡＤ用突起解析システム。
【請求項１３】
予め定められた直径の仮想球を前記突起点群に対して接触させるシミュレーション演算を行なうととともに、当該仮想球と前記突起点群との接触形態に基づいて、該突起点群により記述される前記突起の存在形態を解析する突起存在形態解析部を備える請求項１ないし請求項１２のいずれか１項に記載の三次元ＣＡＤ用突起解析システム。
【請求項１４】
前記突起存在形態解析部は、前記仮想球との直接接触が生ずる接触型突起点群と、周囲に存在する隣接突起点群との干渉により前記仮想球との直接接触が不能となる非接触型突起点群とを識別するものである請求項１３記載の三次元ＣＡＤ用突起解析システム。
【請求項１５】
前記仮想球に対し１つの突起点群が単独でのみ接触可能となる場合の該突起点群を独立接触型突起点群とし、前記仮想球に対し複数組の突起点群が同時に接触する場合のそれら複数組の突起点群を重複接触型突起点群として、前記突起存在形態解析部は前記接触型突起点群が、前記独立接触型突起点群と前記重複接触型突起点群とのいずれであるかをさらに識別するものである請求項１４記載の三次元ＣＡＤ用突起解析システム。
【請求項１６】
前記サブ点群に対する回帰分析を行なうことにより、前記サブ点群に適合する３次元回帰曲面の関数式を決定する回帰曲面決定部と、
前記回帰曲面に対する前記サブ点群の距離的な偏差を外れ値として演算する外れ値演算部とを備え、
前記曲率情報生成部は、前記外れ値が予め定められた閾値を超える場合に、該外れ値が前記閾値を超えるサブ点を含む４以上の点の座標値に基づき、当該サブ点群に対応する領域の曲率情報を生成する一方、前記外れ値が前記閾値未満の場合には前記三次元回帰曲面の関数式に対する微分解析により前記曲率情報を生成する請求項１ないし請求項１５のいずれか１項に記載の三次元ＣＡＤ用突起解析システム。
【請求項１７】
先鋭化した突起先端形状に由来して、該突起先端における数学的な接平面が定義不能となる特異点を前記サブ点群が含む場合に、前記曲率情報生成部は、該特異点にて前記外れ値が前記閾値を超えるに伴い、該特異点を含む前記サブ点群の座標値に基づき、当該サブ点群に対応する領域の曲率情報を生成するものである請求項１６記載の三次元ＣＡＤ用突起解析システム。
【請求項１８】
前記サブ点群選択部は、前記解析対象部品モデルの表面に分散する前記点群中の１つの点を基準点として定めるとともに、当該基準点から一定の回収半径内に存在する少なくとも６つの点を前記サブ点群として定めるものであり、前記回帰曲面決定部は前記三次元回帰曲面を二次曲面として決定する請求項１６又は請求項１７に記載の三次元ＣＡＤ用突起解析システム。
【請求項１９】
前記サブ点群選択部は、前記回収半径内に存在する７以上の点を前記サブ点群として定めるものであり、
前記回帰曲面決定部は前記サブ点群を用いた最小二乗回帰により前記二次曲面を決定する請求項１８記載の三次元ＣＡＤ用突起解析システム。
【請求項２０】
前記回帰曲面決定部は、前記回収半径内の前記サブ点群に対し、それらサブ点群をなす点の座標値の分散・共分散行列の３つの固有値のうち、最小の固有値をλ０として、該λ０に対応する固有ベクトルを突起極大点における法線方向を示すｚ軸と、該ｚ軸と各々直交するｘ軸及びｙ軸とを定め、前記二次曲面をそれらｘ−ｙ−ｚ直交空間座標系にて記述するものであり、
前記外れ値演算部は、前記サブ点群のｘ座標値及びｙ座標値を前記二次曲面を示す関数式ｚ（ｘ，ｙ）に代入することにより、前記二次曲面上の対応ｚ軸座標値ｚ’を演算し、前記サブ点群をなす各点のｚ座標をｚｓとして前記外れ値σを、
σ＝｜ｚｓ−ｚ’｜
にて演算するものである請求項１８又は請求項１９に記載の三次元ＣＡＤ用突起解析システム。
【請求項２１】
前記曲率情報生成部は、前記外れ値が前記閾値を超える場合には、表面の曲率半径が既知の学習用突起を含む参照部品モデルの前記学習用突起について前記曲率情報生成部により算出された前記曲率の値と、当該曲率の算出に用いた前記サブ点群の点の数とを含む入力情報と、前記学習用突起の前記曲率半径値を含む出力情報とからなる教師データを複数組用いて機械学習済みの曲率半径機械学習部を備え、前記解析対象部品モデルの前記突起について前記曲率情報生成部により算出された前記曲率の値と、当該曲率の算出に用いた前記サブ点群の点の数とが入力されることにより、前記曲率に対応する曲率半径値を算出・出力する一方、前記外れ値が前記閾値未満の場合には、前記二次曲面を示す前記関数式を用いて前記基準点での値として演算されたガウス曲率と平均曲率との値に基づき、前記曲率半径値を算出・出力するものである請求項２０記載の三次元ＣＡＤ用突起解析システム。
【請求項２２】
コンピュータが、
突起を有した解析対象部品モデルの表面形状を図形データとして記述する三次元ＣＡＤデータを、前記解析対象部品モデルの表面に沿って分散する点群に変換し、
前記点群から各々４以上を含む突起探索用のサブ点群を選択し、
前記サブ点群に含まれる４以上の点の座標値に基づき、当該サブ点群に対応する領域の曲率情報を生成し、
前記曲率情報が示す前記領域の曲率が予め定められた値よりも大きくなる場合に、対応する前記サブ点群を前記突起に由来する突起点群として特定する、
ことを特徴とする三次元ＣＡＤ用突起解析方法。
【請求項２３】
突起を有した解析対象部品モデルの表面形状を図形データとして記述する三次元ＣＡＤデータを、前記解析対象部品モデルの表面に沿って分散する点群に変換する点群変換ステップと、
前記点群から各々４以上を含む突起探索用のサブ点群を選択するサブ点群選択ステップと、
前記サブ点群に含まれる４以上の点の座標値に基づき、当該サブ点群に対応する領域の曲率情報を生成する曲率情報生成ステップと、
前記曲率情報が示す前記領域の曲率が予め定められた値よりも大きくなる場合に、対応する前記サブ点群を前記突起に由来する突起点群として特定する突起点群特定ステップと、
をコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、車両の外装部品等として使用される部品モデルを立体的に設計するための三次元ＣＡＤ（Computer Aided Designing）システムにおいて、ＣＡＤデータ上に表れる部品モデル表面の突起を解析するための三次元ＣＡＤ用突起解析システム、次元ＣＡＤ用突起解析方法及びコンピュータプログラムに関するものである。
【背景技術】
【０００２】
自動車などの車両は、フード、グリル、バンパ、ヘッドライト、フェンダー、及びそれら部品上に実装されるエンブレムなどの装飾部品などを外装部品として備えている。こうした車両の部品モデルの設計にあたっては、法規により定められた条件を各部品が充足している必要がある。具体的には、乗車人員１０人未満の乗用車の適用される外部突起にかかる基準として、平成２７年４月１日より施行される道路運送車両の保安基準（国土交通省）第１８条には、次のように規定されている。
「自動車の車枠及び車体は、次の基準に適合するものでなければならない。
車枠及び車体は、堅ろうで運行に十分耐えるものとして、強度、取付方法等に関し告示で定める基準に適合するものであること。
（中略）
二 車体の外形その他自動車の形状は、鋭い突起がないこと、回転部分が突出していないこと等他の交通の安全を妨げるおそれがないものとして、告示で定める基準に適合するものであること。」
【０００３】
また、上記保安基準の細目を定める告示の第１００条には、次のように規定されている。
「車枠及び車体の強度、取付方法等に関し、保安基準第１８条第１項第１号の告示で定める基準は、次の各号に掲げる基準とする。
（中略）
2 車体の外形その他自動車の形状に関し、保安基準第１８条第１項第２号の告示で定める基準は、車体の外形その他自動車の形状が、鋭い突起を有し、又は回転部分が突出する等他の交通の安全を妨げるおそれのあるものでないこととする。この場合において、次に該当する車枠及び車体は、この基準に適合するものとする。
（中略）
三  専ら乗用の用に供する乗車定員１０人以下の自動車及び貨物の運送の用に供する車
両総重量２．８ｔ以下の自動車に備えるエア・スポイラ（中略）であって、次の要件に適合するもの
イ  エア・スポイラは、自動車の前部及び後部のいずれの部分においても、自動車の最前端又は最後端とならないものであること。ただし、バンパの下端より下方にある部分であって、直径１００ｍｍ の球体が静的に接触することのできる部分（中略）の角部が半径５ ｍｍ以上であるもの（中略）。
ロ  エア・スポイラ（中略）は、直径１００ｍｍ の球体が静的に接触することのできる部分に半径２．５ｍｍ未満の角部を有さないものであること。
（中略）
ニ 乗車定員が１０人未満の専ら乗用の用に供する自動車（中略）であって、車体等その他基部から突出量 が５ｍｍ 以上であり、かつ先端の曲率半径が ２．５ｍｍ 未満である突起物を有するもの。」
【０００４】
ところで、一般的な三次元ＣＡＤシステムでは、部品モデルを作図するにあたり、突起を含めたその表面形状はパラメトリックな図形データとして入力されている。具体的には、該図形データは、立体形状（球面、円柱面、円錐面、ペジェ曲面やスプライン曲面などの自由曲面等）を定義する数式と、図形の具体的な寸法や形状、姿勢などを規定するハンドリング点座標との組み合わせに記述されるものであり、面輪郭の細部は数式演算により決定される。従って、部品モデル中の個々の突起の曲率半径の具体的な値は、ＣＡＤデータからは直接的には読み取れないことの方が多い。その結果、設計後のモックアップ等の段階で基準に適合しない突起等が発見されることも多く、その都度ＣＡＤデータを修正してはモックアップを繰り返す必要があるなど、非常に面倒な作業が必要であった。
【０００５】
そこで、上記のような外部突起の基準適合要件を系統的にチェックできるようにするために、例えば特許文献１には、部品モデルの３次元ＣＡＤデータを用意するとともに、ＣＡＤ上で部品モデルの突起の曲率半径を測定することにより法規に対する機械的な良否判断を可能としたＣＡＤシステムが提案されている。また、特許文献２には、突起の断面輪郭上に、同一直線状にない３つのサンプリング点を幾何学的作図により生成し、該サンプリング点により曲率半径値を自動算出するシステムが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−２３７０５４号公報
【特許文献２】特開２０１７−１１１６３６号公報
【非特許文献】
【０００７】
【非特許文献１】Semantic 3D Object Maps for Everyday Robot Manipulation, Radu Bogdan Rusu, Springer (2013)
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１の構成では、突起の曲率半径値の測定を、オペレータがＣＡＤ上で手作業により行なうため、チェック対象となる突起が多数存在する場合はオペレータの負担が非常に大きく、不具合箇所の抽出漏れや測定ミスを誘引するおそれがあった。
【０００９】
他方、特許文献２の構成では、突起曲率半径の算出自体は自動で行っているものの、次のような欠点がある。
（１）突起輪郭と、曲率半径決定のためのサンプリング点の生成をＣＡＤデータ上での幾何学的作図により実施しているため、サンプリング点生成の処理負荷が大きい。
（２）球面の曲率半径を断面輪郭の円近似で行っており、サンプリング点の数も高々円弧を特定可能な３点のみであるため、球面の曲率半径値の決定精度は低い。
（３）ＣＡＤ上にて突起位置を探索する機能が備わっておらず、ＣＡＤ上での突起の特定は、特許文献１と同様にオペレータ作業に委ねられている。その結果、突起の存在自体を見落としてしまう不具合までは解消できないし、多数の突起が存在する場合、その探索作業の負荷は依然大きい。
【００１０】
本発明の課題は、解析対象部品モデルの三次元ＣＡＤデータ上に存在する突起を確実かつ簡単に特定でき、各突起の曲率に関する情報を高精度にて生成できる三次元ＣＡＤ用突起解析システム、三次元ＣＡＤ用突起解析方法及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
上記の課題を解決するために、本発明の三次元ＣＡＤ用突起解析システムは、突起を有した解析対象部品モデルの表面形状を図形データとして記述する三次元ＣＡＤデータを、解析対象部品モデルの表面に沿って分散する点群に変換する点群変換部と、点群から各々４以上を含む突起探索用のサブ点群を選択するサブ点群選択部と、サブ点群に含まれる４以上の点の座標値に基づき、当該サブ点群に対応する領域の曲率情報を生成する曲率情報生成部と、曲率情報が示す領域の曲率が予め定められた値よりも大きくなる場合に、対応するサブ点群を突起に由来する突起点群として特定する突起点群特定部と、を備えたことを特徴とする。
【００１２】
また、本発明の三次元ＣＡＤ用突起解析方法は、コンピュータが、突起を有した解析対象部品モデルの表面形状を図形データとして記述する三次元ＣＡＤデータを、解析対象部品モデルの表面に沿って分散する点群に変換し、点群から各々４以上を含む突起探索用のサブ点群を選択し、サブ点群に含まれる４以上の点の座標値に基づき、当該サブ点群に対応する領域の曲率情報を生成し、曲率情報が示す領域の曲率が予め定められた値よりも大きくなる場合に、対応するサブ点群を突起に由来する突起点群として特定することを特徴とする。
【００１３】
さらに、本発明のコンピュータプログラムは、突起を有した解析対象部品モデルの表面形状を図形データとして記述する三次元ＣＡＤデータを、解析対象部品モデルの表面に沿って分散する点群に変換する点群変換ステップと、点群から各々４以上を含む突起探索用のサブ点群を選択するサブ点群選択ステップと、サブ点群に含まれる４以上の点の座標値に基づき、当該サブ点群に対応する領域の曲率情報を生成する曲率情報生成ステップと、
曲率情報が示す領域の曲率が予め定められた値よりも大きくなる場合に、対応するサブ点群を突起に由来する突起点群として特定する突起点群特定ステップと、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１４】
上記本発明によると、解析対象部品モデルの三次元ＣＡＤデータ上に存在する突起を確実かつ簡単に特定できるようになる。さらに、突起特定に使用されるサブ点群が、球面を直接特定可能な４点以上に確保されるため、各突起の曲率情報を高精度にて生成できる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態１にかかる三次元ＣＡＤ用突起解析システムの電気的構成の一例を示すブロック図。
【図２】ネイティブファイルの概念図。
【図３】ＳＴＬファイルの概念図。
【図４】点群データの概念図。
【図５】突起解析データの概念図。
【図６】ネイティブファイルに含まれる曲面パッチ図形の模式図。
【図７】突起を記述するＳＴＬデータの模式図。
【図８】三角形データの概念図。
【図９】三角形の頂点座標に基づいて点群を生成する一概念を示す模式図。
【図１０】点群生成プログラムの処理の流れを示すフローチャート。
【図１１】実施の形態１における曲率解析プログラムの流れを示すフローチャート。
【図１２】三次元Ｋｄ木の概念図。
【図１３】点群とＫｄ木ルートセルとの関係を示す図。
【図１４】Ｋｄ木によるルートセルの分割シーケンスを示す説明図。
【図１５】図１４に続く説明図。
【図１６】図１５に続く説明図。
【図１７】Ｋｄ木を利用した最近傍点探索シーケンスを示す説明図。
【図１８】図１７に続く説明図。
【図１９】サブ点群Ｐ、回収半径ρ、曲率ｋ及び曲率半径ｒの関係を示す説明図。
【図２０】点群で記述された部品モデルデータにおける曲率マッピングの例を示す画像。
【図２１】曲率半径学習エンジンの概念を示すブロック図。
【図２２】仮想球を用いた突起存在形態解析の概念を示す説明図。
【図２３】（Ａ）〜（Ｃ）は、仮想球を用いた突起存在形態解析の概念を示す別の説明図。
【図２４】点群で記述された部品モデルデータにおいて独立接触型突起点群を識別可能にマッピングした例を示す画像。
【図２５】同じく重複接触型突起点群を識別可能にマッピングした例を示す画像。
【図２６】第１種突起と第２種突起とを比較して示す図。
【図２７】第１種突起における最大外れ値の発生状況を示す説明図。
【図２８】第２種突起における最大外れ値の発生状況を示す説明図。
【図２９】本発明の実施の形態２にかかる三次元ＣＡＤ用突起解析システムの電気的構成の一例を示すブロック図。
【図３０】実施の形態２における曲率解析プログラムの流れを示すフローチャート。
【図３１】２次曲面回帰処理の流れを示すフローチャート。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態を添付の図面に基づき説明する。
（実施の形態１）
図１は、本発明の三次元ＣＡＤ用突起解析システムの一構成例を示すブロック図である。三次元ＣＡＤ用突起解析システム１はマイコン５０を処理主体として備えている。該マイコン５０は、ＣＰＵ５１、プログラム実行領域となるＲＡＭ５２、ＲＯＭ５３、入出力部５４及びそれらを相互に接続するバス５６等からなる。バス５６にはハードディスクドライブ５５が接続されている。また、入出力部５４には情報出力用のモニタ５９及びプリンタ６１と、入力部６０（キーボード、マウス、タッチパネル等）とが接続されている。
【００１７】
ハードディスクドライブ５５には三次元ＣＡＤソフトウェア１５５がインストールされている。ＣＡＤソフトウェア１５５は、ＣＰＵ５１が実行することによりマイコン５０を、入力部６０を作図入力部、モニタ５９及びプリンタ６１を作図データの出力部とする形で、例えば車両用の部品モデルを三次元的に作図するための三次元ＣＡＤシステムとして機能させる。三次元ＣＡＤソフトウェア１５５は種々の市販品を使用することができる。
【００１８】
三次元ＣＡＤソフトウェア１５５による作図により直接作成される作図ファイルはネイティブファイル１５６である。ネイティブファイル１５６は、部品モデルの表面形状を図形データとして記述する三次元ＣＡＤデータの一つであり、図６に示す自由曲面パッチｏｂや、円柱、球、円錐、回転楕円体、管などの表面形状を記述する、パラメトリックな図形データの組み合わせとして構成される。これらの図形データは、曲面形状（球面、円柱面、円錐面、ペジェ曲面やスプライン曲面などの自由曲面等）を定義する数式と、図形の具体的な寸法、形状及び姿勢などを規定するハンドリング点ｈｐの座標との組み合わせに記述されるものであり、面形状の細部は数式演算により決定される。
【００１９】
図２は、ネイティブファイル１５６のデータ構造を模式的に示すものであり、描画された図形ごとに作成される図形ＩＤ１５６ａ、図形種別１５６ｂ、記述データ１５６ｃ（数式種別と係数、ハンドリング点座標など）、位置データ１５６ｄなどを含む。なお、本実施形態において設計・作図の対象となるのは、例えば、フード、グリル、バンパ、ヘッドライト、フェンダー、及びそれら部品上に実装されるエンブレムなどの装飾部品などからなる自動車用の外装部品であるが、これらに限定されるものではない。なお、ネイティブファイルの形式は三次元ＣＡＤソフトウェア１５５の種類によって異なり、ソフトウェアの種別が相違するネイティブファイル同士の互換性は一般には担保されていない。
【００２０】
次に、三次元ＣＡＤソフトウェア１５５は通常、上記のネイティブファイル１５６をＳＴＬ（Standard Triangulated Language）ファイル（ＳＴＬデータ）１５７に変換する機能を備えている。ＳＴＬファイル１５７は、ネイティブファイル１５６が記述する三次元形状を、図７に示すような、小さな三角形ＳＴＬのデータの集合体として表現するＣＡＤデータファイルである。突起ＢＭＰの周辺では、曲率の大きい表面領域は小さい三角形ＳＴＬの集合により、曲率の小さい表面領域は小さい三角形ＳＴＬの集合により表現される。図３に示すＳＴＬファイル１５７において、部品モデル表面の立体形状は、図８に示すように、三つの頂点の座標（位置ベクトル：Ｖ１，Ｖ２，Ｖ３）１５７ｂと法線ベクトル（ｎ）１５７ｃにより定義される三角形（ファセットともいう）ＳＴＬと、個々の三角形ＳＴＬを特定するＳＴＬＩＤ１５７ａの集合により表現される。
【００２１】
図８に示すように、法線ベクトルｎは、三角形ＳＴＬの裏と表、ひいては三角形ＳＴＬが近似する立体表面の内部と外部を識別するために用いられる。法線ベクトルｎはベクトルの外積を用いて
ｎ＝（Ｖ２−Ｖ１）×（Ｖ３−Ｖ１）
として記述でき、必要に応じて外積ベクトルの大きさを用いて正規化したデータとして演算される。なお、三次元ＣＡＤソフトウェア１５５に組み込まれているＳＴＬファイルコンバータは、要求される解像度に応じて三角形への分割数をカスタマイズできるようになっている。
【００２２】
次に、ハードディスクドライブ５５には、本発明の三次元ＣＡＤ用突起ＢＭＰ解析システム１の主要機能を実現するための突起解析ソフトウェア１５８がインストールされている。突起解析ソフトウェア１５８は、具体的には、ＣＰＵ５１により実行される以下のような機能実現プログラム群を含んでいる。
・点群生成プログラム１５８ａ：ＳＴＬファイル１５７として与えられる三次元ＣＡＤデータを、解析対象部品モデルの表面に沿って分散する点群のデータに変換する（点群変換部）。具体的には、ＳＴＬファイルを構成する三角形ＳＴＬの頂点座標に基づいて点群の座標値を生成する点群座標値生成部の機能が組み込まれている。
・点群選択プログラム１５８ｂ：点群空間内にて、上記点群から各々４点以上を含む突起探索用のサブ点群を選択する（サブ点群選択部）。具体的には、解析対象部品モデルの表面に分散する点群中の１つの点を基準点として定めるとともに、当該基準点から一定の回収半径ρ内に存在する点群をサブ点群として定める。なお、点群選択プログラム１５８ｂは、回収半径ρが張る球体空間の全域を一様に走査して点群を特定するように構成してもよいが、本実施形態では処理負荷軽減のために、回収半径ρ内に存在する基準点を起点とした最近傍点列を順次探索する最近傍点探索部の機能が組み込まれている。
【００２３】
・曲率解析プログラム１５８ｃ：サブ点群に含まれる複数の点の座標値に基づき、当該サブ点群に対応する領域の曲率情報を生成する（曲率情報生成部）。そして、曲率情報が予め定められた突起特定条件を充足する場合に、対応するサブ点群を突起に由来する突起点群として特定する（突起点群特定部）。突起特定条件は、このあと詳述するように、サブ点群に対応する領域の曲率が基準値以上となっているか否か、等の条件が採用される。
・曲率半径学習エンジン１５８ｄ：図２１に示す如く、解析対象部品モデルについて算出された曲率ｋの値、曲率の算出に用いたサブ点群の点の数（回収点の数）Ｎ（及び、本実施形態では、サブ点群の回収半径ρ）が入力されることにより、曲率ｋに対応する曲率半径値ｒｃを演算・出力する学習済みＡＩエンジンモジュールとして構成される。詳細については、後述する。
・突起存在形態解析プログラム１５８ｅ：図２２及図２３に示す如く、予め定められた直径の仮想球ＳＢを突起点群に対して接触させるシミュレーション演算を行なうととともに、当該仮想球ＳＢと突起点群との接触形態に基づいて、該突起点群により規定される突起の存在形態を解析する（突起存在形態解析部）。
【００２４】
また、ハードディスクドライブ５５には、突起解析ソフトウェア１５８が作成する点群データ１５９及び突起解析データ１６０が記憶されている。図４は、点群データ１５９の構造を模式的に示すものであり、生成された点群の各点の点ＩＤ１５９ａと点座標 １５９ｂとが互いに対応付けて記憶されている。また、点群探索処理に使用する探索フラグ１５９ｃ、及び突起点群特定処理に使用する突起点群フラグ１５９ｄも併せて形成されているが、これらについては後述する。
【００２５】
図５は突起解析データ１６０の構造を示すもので、突起に由来すると判定された突起点群を示す突起ＩＤ１６０ａと、突起点群の座標値から算出される突起の曲率半径１６０ｂ、ネイティブファイル１５６内の当該突起に対応する対応する図形の図形ＩＤ１５６ａ、突起存在形態解析プログラム１５８ｅの実行により特定される突起種別１６０ｃ、及び後述する重複接触型突起と判定された突起群をグループ化するための重複接触グループＩＤ１６０ｄが、互いに対応付けられた形で記憶されている。
【００２６】
次に、点群生成プログラム１５８ａの処理の流れを、図１０のフローチャートに従い説明する。まず、Ｓ１０１ではＳＴＬファイル１５７を開き、三角形の３つの頂点の座標値（位置ベクトル：Ｖ１, Ｖ２, Ｖ３）を読み込む。続いて、Ｓ１０２では、三角形の面積ＡをＶ１, Ｖ２, Ｖ３を用い、例えばベクトルを用いた周知の面積公式；
Ａ＝（１／２）｛（Ｖ２−Ｖ１）２・ （Ｖ３−Ｖ１）２
−（Ｖ２−Ｖ１）・ （Ｖ３−Ｖ１）｝１／２  ・・（１０）
等を用いて演算する。
【００２７】
Ｓ１０３では、三角形の内部に分散生成させる点の数Ｎを設定する。本実施形態では、三角形のサイズが大きいほど、１つの三角形ＳＴＬ内に形成される点の数Ｎが多くなるように、具体的には上記算出された面積Ａに比例して点の数Ｎが多くなるように設定する。以下、各三角形内に複数の点がランダムに分散形成されるよう、乱数を用いて各点群の座標値を決定する処理に移る。具体的には、正規化された結合係数κ１、κ２、κ３（ただし、κ１＋κ２＋κ３＝１）を用いて三角形ＳＴＬ内の点の位置ベクトルＰを、三角形ＳＴＬの３つの頂点の位置ベクトルＶ１，Ｖ２，Ｖ３の線形結合により、
Ｐ≡κ１・Ｖ１＋κ２・Ｖ２＋κ３・Ｖ３  ・・・（１１）
にて記述したとき、結合係数κ１、κ２、κ３の２つを、各々独立した２つの一様乱数ε１及びε２を用いて決定する。一様乱数は確率変数の実現値として定義されるので、０＜ε１＜１及び０＜ε２＜１である。なお、使用する独立した乱数の数が２であることは、二次元平面上に任意の点の位置座標を設定するための必要十分条件でもある。
【００２８】
まず、Ｓ１０４にて第１乱数ε１を発生させ、続いてＳ１０５で第１乱数ε２を発生させる。本実施形態では、図９に示すごとく、三角形ＳＴＬの２辺（図ではベクトル（Ｖ２−Ｖ１）及びベクトル（Ｖ３−Ｖ１））を隣り合う２辺とする平行四辺形（頂点の位置ベクトル；Ｖ１, Ｖ２, Ｖ３、Ｖ１’）内に点Ｐをランダム発生させる処理が採用されており、Ｓ１０６にて３つのκ１、κ２、κ３を、例えば、
κ１＝ε１
κ２＝ε２
κ３＝１− κ１−κ２  ・・・（１２）
として決定し、Ｓ１０７にて生成点Ｐの座標（位置ベクトル）を式（１１）により計算する。なお、三角形内に生成点をより一様に分散させるために、κ１＋κ２＋κ３＝１を充足させつつ、κ１、κ２、κ３の少なくともいずれかを適宜補正して算出するようにしてもよい。
【００２９】
なお、図９に示すように、平行四辺形（Ｖ１→Ｖ２→Ｖ３→Ｖ１’）の内部には生成される点が、三角形（Ｖ１→Ｖ２→Ｖ３）の外部の点Ｐ’となる場合がある。そこで、Ｓ１０８では、得られた生成点Ｐが三角形（Ｖ１→Ｖ２→Ｖ３）の内部にあるか否かの判定を行なう。この判定は、例えば、以下の３つのベクトル外積
Ｑ１＝（Ｖ２−Ｖ１）× （Ｐ−Ｖ２）
Ｑ２＝（Ｖ３−Ｖ２）× （Ｐ−Ｖ３）
Ｑ３＝（Ｖ１−Ｖ３）× （Ｐ−Ｖ１）  ・・・（１３）
を求め、これら３つの外積ベクトルの向きが一致しているかどうかを調べることにより実施できる（向きが一致している場合、生成点Ｐが三角形の内部にある、と判定される）。外積ベクトルＱ１、Ｑ２、Ｑ３の向きは、例えば内積Ｑ１・Ｑ２、Ｑ２・Ｑ３及びＱ３・Ｑ１の符号比較等により判定が可能である。
【００３０】
なお、式（１１）により計算される生成点Ｐが必ず三角形の内部のものとなるようにするには、結合係数κ１、κ２、κ３を例えば、
κ１＝（ε１）１／２
κ２＝（１−ε２）・（ε１）１／２
κ３＝ε２  ・（ε１）１／２        ・・・（１４）
と選べばよい。しかし、一様乱数の平方根演算が介在する処理であり、多数の点群を発生させたい場合は演算量が肥大化する可能性があるため、式（１２）ないしその補正形を用いることがより望ましいといえる。
【００３１】
生成した点Ｐが三角形の外部であればＳ１１０に進み、当該点Ｐは採用せずに棄却する。一方、三角形内部の点であった場合はＳ１１１に進み、生成点Ｐを点群データとして記憶するとともに、生成点の数カウンタをインクリメントする。Ｓ１１２にて、生成点の数カウンタが示す点の数を調べ、Ｓ１０３で算出した発生点の数Ｎに到達していなければＳ１０４に戻り、Ｓ１１２までの処理を繰り返す。一方、Ｓ１１２にて発生点の数Ｎに到達していた場合はＳ１１３に進み、ここでは、ＳＴＬファイル内に次の処理対象の三角形があるか否かを調べる。次の三角形があればＳ１０１に戻り、以下のＳ１１３までの処理を繰り返す。そして、最後の三角形についての処理が完了すれば処理は終了する。
【００３２】
続いて、曲率解析プログラム１５８ｃの処理の流れを、図１１のフローチャートに従い説明する。まず、Ｓ２０１では点群ファイルを開き、探索フラグ １５９ｃ及び突起点群フラグ１５９ｄの値を「０」にリセットしておく。続いて、Ｓ２０２に進み、突起点群探索のための回収半径ρの値を設定する。該回収半径ρの設定に際しては、例えば次のような点に留意する。
・前述の保安基準等にて「鋭い突起」として認識されるべき曲率半径の上限値（例えば２．５ｍｍ〜７ｍｍ程度、特に基準値として明示されている２．５ｍｍないし５ｍｍ）の突起が確実に検出されること。この場合、回収半径ρは、突起の表面全体を包含できるように設定する必要はなく、望ましくは、突起以外の表面領域がなるべく含まれないよう、突起表面の一部のみが切り取られるように設定するのがよい。回収半径を不要に大きく設定しすぎると、当該回収半径内に複数の突起が含まれてしまうこともあり得、曲率算出の精度低下につながる懸念を生じうる。
【００３３】
回収半径ρは例えば固定的に設定することも可能であるが、例えば回収半径ρを段階的に縮小しつつ設定し、突起探索処理を繰り返し実施することも可能である。これにより、回収半径の球内に収まる表面領域に占める特定の突起領域の面積比率が段階的に増大するので、当該突起の曲率決定精度をより向上させることができる。また、部品モデルの表面領域に対し、最終的に設定する回収半径ρの仮想球に包含される領域面積よりも大きい予備探索領域（これは、予備的な回収半径の仮想球が切り取る領域としてもよいが、例えば点群空間を等価な直方体で事前に分割して得られるもの等であってもよい）を設定し、その予備探索領域内の点群を用いた平均的曲率ｒｔを演算し、その平均的曲率ｒｔよりも小さい回収半径ρ（例えばｒｔ／２を新たに設定し、当該回収半径ρにて予備探索領域内の突起を改めて探索し、最終的な曲率ｒｆを算出することもできる。予備探索領域の面積は、例えば部品モデルの表面領域の全面積の３％以上７％以下（例えば５％）程度に定めることができる。
【００３４】
続いてＳ２０３に進み、点群中にて、突起点群探索のための基準点Ｐ０を任意に選択する。そして、Ｓ２０４で該基準点Ｐ０を探索参照点として、その最近傍点を探索する処理を行なう。上記基準点Ｐ０を起点として該基準点Ｐ０から回収半径ρ内に存在する最近傍点列が順次探索されるとともに、その探索された４点以上の所定数の最近傍点列が、突起探索のために選択されるサブ点群とされる。
【００３５】
本実施形態では、点群の座標空間を三次元Ｋｄ木により分割し、基準点Ｐ０が所属する葉セルを探索起点セルとして、隣接する葉セルをＫｄ木構造に沿って順次探索することにより最近傍点列を決定する。図１２には三次元Ｋｄ木の概念を示す。図中、灰色の丸印が点群を示し、個々の点はｘｙｚ直交座標系にて座標記述されている（白の丸印は、ルートセル及び葉セルの頂点を示すものであり、探索対象の点群と区別している）。回収半径ρの球内に含まれる全点の各軸方向の座標値の最大値、最小値及びメジアン（中央値）を求める。Ｋｄ木のルートセルは、ｘ軸座標の最大値及び最小値が規定する２つの当該ｘ軸との直交平面、ｙ軸座標の最大値及び最小値が規定する２つの当該ｙ軸との直交平面、ｚ軸座標の最大値及び最小値が規定する２つの当該ｚ軸との直交平面、の６つの平面で区画される直方体空間である。
【００３６】
Ｋｄ木のルートセルは、セル内点群の各軸方向の座標の分散値の序列と、分割セル内における座標のメジアンに従い、第一階層分割面（図１２ではｘ軸と直交）、第二階層分割面（図１２ではｙ軸と直交）及び第三階層分割面（図１２ではｚ軸と直交）により８つの葉セルに分割されている。以下、Ｋｄ木の空間分割シーケンスを図１３及び図１４により説明する。図１３は、ルートセルと該ルートセル内の点群（ａ〜ｇ）の分布状況を、ｘｙ平面への投影にて示すものである（ｘｙ平面と直交する面は線分にて表示される）。これら点群のｘ座標、ｙ座標及びｚ座標の分散をそれぞれ計算し、そのいずれが最も小さいかを特定する。例えば、ｘ座標の分散が最も小さかったとすると、図１４に示すように、そのｘ座標のメジアンX1mを与える点ｆを通り、ｘ軸と直交する平面を第１階層分割面ξ１として定める。第１階層分割面ξ１は、Ｋｄ木による空間分割階層構造の最上位の階層を与えるものである。
【００３７】
次に、図１５に示すように、第１階層分割面ξ１によりルートセルが分割されて生ずる２つの中位セルのそれぞれについて、含まれる各点のｙ座標値及ｚ座標値（ｘ座標以外の残余の座標値）のいずれの分散が小さいかを調べる。例えば、それがｙ座標であった場合は、各下位セル内の点群について、ｙ座標値のメジアンY1m及びY2mを与える点ｇ及び点ｅを通り、ｙ軸と直交する２つの平面を第２階層分割面η１，η２として定める。第２階層分割面η１，η２はＫｄ木による空間分割階層構造の中位の階層を与えるものである。
【００３８】
そして、図１６に示すように、第２階層分割面η１，η２により２つの中位セルのが分割されて生ずる４つの下位セルついて、含まれる点群のｚ座標値のメジアンZ1m、Z2m、Z3m、Z4mを与える点ｃ、ｄ、ａ、ｂをそれぞれ通り、ｚ軸と直交する４つの平面を第３階層分割面ζ１，ζ２，ζ３，ζ４として定める。第３階層分割面ζ１，ζ２，ζ３，ζ４はＫｄ木による空間分割階層構造の最下位の階層を与えるものであり、これにより最下位セルである８つの葉セルL11〜L42が規定される。
【００３９】
このＫｄ木を利用した最近傍点探索処理の概要を図１７及び図１８により説明する。
まず、図１７において、基準点Ｐ０が葉セルL11〜L42のうちどれに所属しているかを調べる。例えば、Ｐ０が葉セルL21（第３階層分割面ζ２により紙面直交方向に分割される２つの葉セルL21, L22のうち、前面側に位置するものである）に属していた場合、Ｐ０を探索参照点として、L21内のＰ０の最短点Ｐｔまでの距離ｒ0と、ζ2までの距離ｒζ2とを比較する。ここでは、ｒ0＞ζ2となっており、ζ2に関する隣接葉セルL22内に真の最近傍点が存在する可能性がある。よって、葉セルL22内にＰ０の最短点（非図示）までの距離ｒiとｒ0とを比較する。ｒ0＜ｒiであれば、葉セルL22内にＰ０の真の最近傍点は存在しないので、葉セルL22を探索対象から除外する（図中破線で表示：他方、ｒ0＞ｒiの場合は探索参照点をL22内の最短点と置き換える）。
【００４０】
次に、１つ上の階層に移り、第２階層分割面η１までの距離ｒη1とｒ0とを比較する。図１７ではｒ0＞ｒη1となっているので、η1に関して隣接する葉セルL11, L12内にＰ０の真の最近傍点が存在する可能性がある。そこで、葉セルL21（及びL22）の隣接葉セルL11, L12内の最短点P11までの距離ｒ1とｒ0とを比較する。ｒ0＜ｒ1ならば、葉セルL11, L12は探索対象から除外される（図中破線で表示：他方、ｒ0＞ｒ1の場合は探索参照点をL11, L12内の最短点と置き換える）。
【００４１】
続いてさらに１つ上の階層に移り、第１階層分割面ξ１までの距離ｒξ1とｒ0とを比較する。もし、ｒξ1＞ｒ0ならば、ξ１に関して隣接する中位セル（葉セルL31＋L32＋L41＋L42）には真の最近傍点は存在しないから、ここで探索を打ち切り、P11をP0の最近傍点として確定させる。他方、ｒξ1＜ｒ0ならば上記中位セルに真の最近傍点が存在する可能性があるので、該中位セル内に階層を下げ、図１８に示すように、η２に関する下位セル（L31＋L32又はL41＋L42）につき、P0からの距離がｒ０未満となる点を順次探索する。
【００４２】
図１８では、葉セルL41内の最短点P41までの距離ｒ４について、ｒ４＜ｒ０となっており、探索参照点はＰ０からＰ41に置き換えられている。他方、η２に関して反対側の下位セル（L31＋L32）内の最短点Ｐ31までの距離ｒ３については、ｒ４＜ｒ３なので、L31及びL32は探索から除外されている。最終的には、葉セルＰ42の探索結果も参照して最短点P41が最終的な最近傍点として確定されている。このように、最近傍点探索を繰り返しながら点群を探索する手法により、図１７及び図１８に破線で示すように、探索参照点との距離比較によって最近傍点の存在が幾何学的に否定される葉セルを積極的に探索から除外することができ、三次元ＣＡＤデータで記述される部品モデルの表面にのみ局在化したような点群の場合は、これを極めて効率的に探索・回収できることがわかる。
【００４３】
図１１に戻り、Ｓ２０４における最近傍点探索処理により最近傍点列を順次回収するとともに、Ｓ２０５では、回収された点の数が曲率決定に必要な所定数に達したかどうかを確認する。未達であればＳ２０６に進み、探索された最近傍点を回収するとともに、該近傍点により探索参照点を更新する。そして、Ｓ２０４に戻り、最近傍点探索処理を継続する。一方、上記所定数に到達していればＳ２０７に進み、回収された最近傍点列を突起点群探索のためのサブ点群として定め、各点の座標値から曲率ｋを演算する。なお、曲率決定に必要な回収点の数は球面を一義的に決定できる４点ないしそれ以上である必要があり、点の数をそれよりも多くすることで曲率計算精度をより向上できる。最終的な回収半径ρの仮想球内に入る点の数は、例えば７５点以上２００点以下（望ましくは８５点を超え２００点以下、より望ましくは１００点以上２００点以下）である。他方、前段階として、前述の予備探索領域を設定し、その平均的な曲率ｒｔの算出を行なう場合は、その予備探索領域内での回収点の数は、ある程度大まかな曲率演算のみでよい点に鑑み、例えば７５点以上８５点以下程度に設定するのがよい。
【００４４】
図１９に示すように、サブ点群ＳＰＧは、基準点Ｐ０に対する近傍点集合としてとらえることができる。曲率ｋ（逆数が曲率半径ｒ）は、サブ点群をなす複数の点の座標値の分散・共分散行列の３つの固有値λ０、λ１、λ２（ただし、λ０は最小固有値）に基づいて、
ｋ＝λ０／（λ０＋λ１＋λ２）・・・（１５）
と算出することができる。上記分散・共分散行列Ｓは、数学的には、
【００４５】
【数１】
2020027654.tif 000003
と表すことができる。ｐｉはｎ個の点群のｉ番目のものの座標を与える行ベクトル、ｐavはｎ個の点群の平均座標（重心座標）を与える行ベクトルである。（ｐｉ−ｐav）Ｔは（ｐｉ−ｐav）を転置して得られる列ベクトルであるから両者の積は行列となり、そのｎ個の点群についての平均を与える行列Ｓは点群座標の分散・共分散行列となることが理解されよう。
【００４６】
上記近傍点集合（サブ点群）の座標値の分散・共分散行列の最小固有値λ0に対する固有ベクトルは、基準点Ｐ０周りの近傍点集合が統計的に張る平面（いわゆる、最小二乗近似平面）の法線ベクトルを与え、上記基準点近傍の局所的な近似曲率が、該分散・共分散行列の３つの固有値λ０、λ１、λ２を用いて上記（１）式により与えられることが、非特許文献１により知られている。点群を用いて突起表面の曲率解析を行なう場合、突起点群をなすサブ点群は、含まれる点の数が多いほど曲率算出の精度は向上するといえる。個々の突起の曲率の高精度な算出を目的としてサブ点群の点の数を増加させたい場合は、統計学的な上記手法を用いることにより、近似曲率の算出を点群座標の分散共分散行列の主成分分析に帰着でき、演算アルゴリズムの大幅な簡略化を図ることができる
【００４７】
Ｓ２０８では、サブ点群が突起に由来した突起点群であるか否かを判定する処理を行なう。具体的には、計算された曲率ｋが、あらかじめ定められた下限値ｋinf を超えていなければＳ２１０に進み、サブ点群を平坦領域の点群とみなし、棄却する。図４の点群データ１５９において、探索フラグ１５９ｃは「１」（探索済み）とし、突起フラグは「０」（突起点群を構成しない）とする。
【００４８】
一方、Ｓ２０８で曲率ｋが下限値ｋinf を超えていればサブ点群は突起点群であると判定し（突起特定条件）、Ｓ２０９に進んで、図２１に示す曲率半径学習エンジン１５８ｄを用いて曲率半径ｒを算出する。具体的には、表面の曲率半径が既知の学習用突起を含む参照部品モデルを用意し、その参照部品モデルに上記本発明のシステム１による曲率解析を実施する。そして、参照部品モデル中の学習用突起について算出された曲率ｋの値と、当該曲率ｋの算出に用いたサブ点群の回収点の数Ｎｐと、本実施形態ではさらに、点群探索時に設定した回収半径ρとを含む入力情報と、学習用突起の（既知の）曲率半径rAとからなる教師データを複数組用意する。
【００４９】
曲率半径学習エンジン１５８ｄには、上記入力情報と曲率半径値とを、予め定められた学習パラメータを媒介として結ぶ曲率半径の算出式が組み込まれている。学習パラメータの値は、教師データによる学習を繰り返すことにより、算出される曲率半径値が真値に近づくように事前に適正化されている。曲率半径の算出式自体は、曲率半径の算出値が教師データに可及的に近づくよう実験的に決定されるものであり、その過程には周知の重回帰分析の手法を採用することができる。
【００５０】
図１１に戻り、Ｓ２１１では、曲率半径ｒが計算された突起点群に対応する図形ＩＤをネイティブファイル１５６（図２）中にて検索し、取得する。また、Ｓ２１２では、突起存在形態解析プログラム１５８ｅ（図１）による解析を行なう。図２２及び図２３に、該解析の内容を概念的に示している。すなわち、車両の外装部品等の突起については、人体頭部などとの衝突を想定して曲率半径の下限値が、指定された直径の球との接触が生じうる突起に限定して規定されている場合がある。この場合、図２２に示すように、突起ＢＭＰの点群データ（図中、丸印にて示している）に対して、予め定められた直径（前述の保安基準にある１００ｍｍ以下の値：例えば、５０ｍｍ）の仮想球ＳＢを突起点群に対して接触させるシミュレーション演算を行なう。該シミュレーションは、破線で示す如く仮想球ＳＢの位置を種々に変更しつつ（必要により仮想球ＳＢの直径を変更数することも可能である）、突起点群との間に接触点ＳＰが生じるか否か、生じるとすれば何個の突起との間で接触が生ずるか、を判別する形で実施される。
【００５１】
図２２及図２３では、仮想球ＳＢの直接接触が生ずる接触型突起点群と、周囲に存在する隣接突起点群との干渉により仮想球ＳＢの直接接触が不能となる非接触型突起点群とが識別されている。図２２のように、周囲に別の突起が存在しない孤立した突起の場合は、仮想球ＳＢとの接触が必ずどこかの１点で生ずるので、これを構成する点群は接触型突起点群として識別される。一方、図２３の（Ｃ）突起ＢＭＰ３のように、周囲に別の突起ＢＭＰ１，ＢＭＰ２が存在し、先にこれらとの干渉が生じてしまうために、仮想球ＳＢが接触不能となっているものは、これを構成する点群が非接触型突起点群として識別される。非接触型突起点群が規定する突起ＢＭＰ３は、球体ＳＢを外部から接近させたとき隣接突起ＢＭＰ１ないしＢＭＰ２と先に干渉する結果、当該球ＳＢとの接触を免れる突起であり、曲率半径が仮に基準値よりも小さくても、設計変更等の対象からは除外しうる場合がある。
【００５２】
また、図２２の突起ＢＭＰを構成する点群は、仮想球ＳＢに対し１つの突起点群が単独でのみ接触可能となる独立接触型突起点群となっている。一方、図２３の（Ａ）及び（Ｂ）に示す突起ＢＭＰ２，ＢＭＰ３を構成する点群は、仮想球ＳＢに対し複数組（接触点はそれぞれＳＰ１及びＳＰ２）が同時に接触可能な重複接触型突起点群となっている。重複接触型突起点群の識別は、例えば、着目している突起ＢＭＰ２へ仮想球ＳＢを一旦単独で接触させ、該接触状態を維持しつつ仮想球ＳＢを突起ＢＭＰ２上で種々の方向に移動させて、他の突起ＢＭＰ３との接触点を生じるか否かを確認することにより行う。また、重複接触型突起点群と判別された複数の突起点群には、重複接触グループＩＤ１６０ｄ（図５）を付与する。
【００５３】
以上の解析が終了すると、Ｓ２１３に進み、各突起点群には突起ＩＤ１６０ａが付与され、図５に示す突起解析データ１６０において、図形ＩＤ１５６ａ、突起種別１６０ｃ及び重複接触グループＩＤ１６０ｄが互いに対応付けられた形で記憶される。さらに、Ｓ２１４では、図４の点群データ１５９において、探索フラグ１５９ｃが「１」（探索済み）に、突起フラグが「１」（突起点群を構成する）にそれぞれセットされる。
【００５４】
Ｓ２１５では、図４の点群データ１５９において上記の探索フラグ１５９ｃの値を参照することにより、未探索の点群が存在するかどうかを確認する。存在すればＳ２０３に戻り、以下の処理を繰り返す一方、存在しなければ曲率解析プログラム全体の処理を終了する。
【００５５】
上記のごとく、突起解析によりその曲率半径が特定されると、例えば前述の保安基準を充足させるための、下記のような踏み込んだ対応を実施できる。
・「バンパの下端より下方にある部分であって、直径１００ｍｍ の球体が静的に接触することのできる部分（中略）の角部（突起）が半径５ ｍｍ未満」となっていた場合：
→角部を削除するか、半径５ ｍｍ以上となるように設計変更を行なう。
・「エア・スポイラ（中略）において、直径１００ｍｍ の球体が静的に接触することのできる部分に半径２．５ｍｍ未満の角部（突起）」が発見された場合：
→角部を削除するか、半径２．５ｍｍ以上となるように設計変更を行なう。
・「 乗車定員が１０人未満の専ら乗用の用に供する自動車（中略）であって、車体等その他基部から突出量 が５ｍｍ 以上であり、かつ先端の曲率半径が ２．５ｍｍ 未満である突起物」が生じていた場合：
→突起を削除するか、半径２．５ｍｍ以上となるように設計変更を行なう。
【００５６】
また、図４の点群データ１５９と図５の突起解析データ１６０を参照することにより、サブ点群ごとの曲率半径の値を視覚的にマッピングし、図１のモニタ５９やプリンタ６１から出力することができる。図２０はその一例を示すものであり、解析対象部品モデルＰＭにおいて、点群を示す画素に対し曲率半径の値に応じて濃度ないし色彩を変化させ、カラービットマップないしグレースケールビットマップの形で出力している。また、点群を示す画素の濃度ないし色彩は、突起種別に応じて変更することも可能である。図２４は、半径５０ｍｍの仮想球ＳＢを用いた時の独立接触型突起点群ＳＰＡを、残余の点群に対して識別可能となるように出力した例であり、図中黒い領域が独立接触型突起点群ＳＰＡを示している。また、図２５は、半径５０ｍｍの仮想球ＳＢを用いた時の重複接触型突起点群ＤＳＰＡを、残余の点群に対して識別可能となるように出力した例であり、図中白い領域が重複接触型突起点群ＤＳＰＡを示している。
【００５７】
以上、本発明の実施の形態について説明したが、あくまで例示であって、本発明はこれに限定されるものではない。例えば、点群生成用の三次元ＣＡＤデータは、ＳＴＬファイルに限定されるものではなく、三角形以外のポリゴンを用いて記述されたもの等を採用することが可能である。また、ＳＴＬデータを使用する場合も、解析対象部品モデル表面の三角形による分割数が十分大きくできる場合は、三角形の頂点や重心を点群に流用してもよい。また、三角形の大きさに関係なく、三角形１個当たりの生成点の数を同じに設定してもよい。
【００５８】
また、三角形内に複数の点を分散生成させる場合は、上記実施形態のような乱数を用いるのではなく、三角形の２辺にそれぞれ平行な単位ベクトルを設定し、その単位ベクトルが張る座標メッシュ点を点群として採用してもよい。突起点群の探索に関しては、点群空間全体を立方体等の単位セルであらかじめ分割し、各単位セル内の点群の有無のみを調べる予備走査処理を実施したのち、点群が存在すると判定されたセルについて該セルに含まれる点群をサブ点群として選択するようにしてもよい。
【００５９】
また、本発明の適用対象は対人的接触を考慮した安全対策が必要となる機器部品であればよく、上記例示した自動車部品に限らず、例えば遊具、玩具、オートバイ、自転車、航空機、船舶、鉄道車両などの部品などについても同様に適用が可能である。
【００６０】
（実施の形態２）
上記実施の形態１における突起解析手法では、探索された突起の形状とは無関係に、生成した点群の座標値を用いて突起の曲率を演算し、さらに機械学習的な手法によりこれを曲率半径に変換していた。しかし、該手法は、最終的な曲率半径値が得られるまでに要する演算量がやや多く、対象部品表面の全点群を対象に適用した場合、全ての突起の曲率半径の特定に相当の時間を要する問題がある。
【００６１】
例えば、図２６の突起ＢＰ１の先端ＳＰは、極大点で接平面が一義的に定まる滑らかな表面端形状を有しているのに対し（以下、第一種突起という）、突起ＢＰ２，ＢＰ３については先端ＳＰ’が先鋭であり、極大点での接平面が不定となる（以下、第二種突起という）。これは、第１種突起については、突起先端面のあらゆる点において数学的に解析可能となっているのに対し、第２種突起は先端点が数学的に解析不能な特異点をとなっていることを意味する。ＳＴＬファイル上では、部品の真の表面形状が三角形ＳＴＬの集合により可及的に高精度にて近似され、曲率半径が極度に小さくなる第２種突起の先端面形状についても、三角形ＳＴＬの集合により良好に表現されうる。
【００６２】
ＳＴＬの集合により、第１種突起も第２種突起も区別なく表現しうる状況に鑑みれば、三角形ＳＴＬの面上に多数の点群を生成し、その点群の座標値から突起先端面の曲率を演算する本発明の実施の形態１の手法により、第２種突起のように特異点を含む先端面形状でも曲率を問題なく演算できる利点がある。他方、特異点を含まない第１種突起については、突起表面の全ての点が解析的であることから、近似的な曲面を数学的に表現することができれば、曲面に対する突起先端（曲面の極大点）付近の曲率を、より単純な数学的解析手法により演算できると考えられる。
【００６３】
本実施形態では、三次元ＣＡＤ用突起解析システムを次のように構成する。すなわち、サブ点群に対する回帰分析を行なうことにより、サブ点群に適合する３次元回帰曲面の関数式を決定する回帰曲面決定部と、回帰曲面に対するサブ点群の距離的な偏差を外れ値として演算する外れ値演算部と設ける。曲率情報生成部は、外れ値が予め定められた閾値を超える場合に、該外れ値が閾値を超えるサブ点を含む４以上の点の座標値に基づき、当該サブ点群に対応する領域の曲率情報を生成する一方、外れ値が閾値未満の場合には三次元回帰曲面の関数式に対する微分解析により曲率情報を生成するものとする。
【００６４】
上記の構成では、三次元ＣＡＤデータ（ＳＴＬ等）から生成したサブ点群に対し、数学的な回帰分析を適用し、３次元回帰曲面の関数式を決定する。そして、回帰曲面に対するサブ点群の距離的な偏差を外れ値として演算し、外れ値が予め定められた閾値を超える点が存在する場合は、その点を特異点とみなし（第２種突起の場合に相当）、外れ値が閾値を超えるサブ点を含む４以上の点の座標値に基づき、当該サブ点群に対応する領域の曲率情報を生成する（上記、実施の形態１の手法）。他方、外れ値が閾値未満の場合は特異点が存在せず（第１種突起の場合に相当）、三次元回帰曲面の関数式に対する微分解析により曲率情報を生成する。つまり、点群生成後に第１種突起と第２種突起とを区別し、第１種突起については上記のような数学的解析手法により曲率を演算する手法を併用すれば、部品全体の突起解析に要する演算量及び演算時間を大幅に短縮することができる。
【００６５】
第２種突起においては、先鋭化した突起先端形状に由来して、該突起先端における数学的な接平面が定義不能となる特異点をサブ点群が含む関係上、該特異点にて外れ値が閾値を超える形となる。この事情を図２７及び図２８を用いて説明する。図２７は第１種突起の先端付近を模式的に示すものであり、ＣＡＤネイティブ曲面形状（ネイティブファイルのデータがトレースする曲面形状）は突起先端も含めて滑らかである。一方、これに対応するＳＴＬファイルに含まれる各三角形ＳＴＬは平面であり、ＣＡＤネイティブ曲面とは既定の誤差範囲（例えば０．０５ｍｍ以内）内に収まる形でＣＡＤネイティブ曲面を近似している。一方、図中の丸印は三角形ＳＴＬ上に生成されたサブ点群であり、このサブ点群に対して回帰分析処理実施することで回帰曲面の数式を決定することができる（図２８では二次曲面（後述））。そして、回帰曲面の数式が決定できれば、サブ点群と回帰曲面との間の距離的な偏差を一義的に計算することができる。
【００６６】
そして、サブ点群に含まれる点ごとに計算される該外れ値（距離的な偏差）のうち、最大のものを最大外れ値として定義できる。最大外れ値が所定の閾値（例えば、ＣＡＤネイティブ曲面と上記三角形ＳＴＬとの許容誤差）以内に収まっていれば、サブ点群が表す突起を第１種突起とみなし、回帰曲面の数式の微分演算により曲率情報生成部が突起の曲率を演算するように構成することで、曲率演算の負荷を大幅に減ずることができる。
【００６７】
一方、図２８は第２種突起の先端付近を模式的に示すものであり、ＣＡＤネイティブ曲面形状は突起先端が先鋭な特異点となっている。この場合、ＳＴＬファイルに含まれる各三角形ＳＴＬはＣＡＤネイティブ曲面を良好に近似するが、サブ点群全体に対して図２７と同様の手法により曲面回帰を行なうと、特異点付近のサブ点群には回帰曲面からの距離的な偏差が大きくなり、上記の閾値を上回る状況が生ずる。この場合は、曲率情報生成部は、該特異点を含むサブ点群の座標値に基づき、当該サブ点群に対応する領域の曲率情報を生成する。つまり、ＣＡＤネイティブ曲面との距離偏差が大きくなる回帰曲面ではなく、ＣＡＤネイティブ曲面をより高精度に近似するサブ点群により曲率情報を生成することで、第２種突起についても曲率（ひいては曲率半径）を高精度に算出することが可能となる。
【００６８】
サブ点群選択部は、解析対象部品モデルの表面に分散する点群中の１つの点を基準点として定めるとともに、当該基準点から一定の回収半径内に存在する少なくとも６つの点をサブ点群として定めるように構成できる。回帰曲面決定部は上記の三次元回帰曲面を二次曲面として決定するものとされる。三次元回帰曲面は例えば球面や回転楕円体などを表す関数としてもよいが、仮想球の回収半径を適当な大きさに定めてＣＡＤネイティブ曲面の全体を適度に細分化することで、各仮想球内のＣＡＤネイティブ曲面のセグメントを、三次元曲面として最も単純な二次曲面により近似しても、誤差を十分小さくすることができる。よって、回帰曲面を記述する数式の単純化を図ることができ、曲率演算の負荷をさらに小さくすることができる。
【００６９】
サブ点群に対する回帰曲面のフィッティング精度を向上するには、サブ点群選択部は、回収半径内に存在する７以上の点をサブ点群として定めるものとし、回帰曲面決定部はサブ点群を用いた最小二乗回帰により二次曲面を決定するように構成するとよい。この場合、回帰曲面決定部は、回収半径内のサブ点群に対し、それらサブ点群をなす点の座標値の分散・共分散行列の３つの固有値のうち、最小の固有値をλ０として、該λ０に対応する固有ベクトルを突起極大点における法線方向を示すｚ軸と、該ｚ軸と各々直交するｘ軸及びｙ軸とを定め、二次曲面をそれらｘ−ｙ−ｚ直交空間座標系（各点ごとに定められるローカル座標系）にて記述するように構成することが望ましい。
【００７０】
上記のようなローカル座標系を設定すれば、二次曲面の方程式は、下記数２のように、６つの係数ａ１〜ａ６を含む形で記述することができ、これら係数をたとえば最小２乗回帰により決定すればよい。
【００７１】
【数２】
2020027654.tif 000004
【００７２】
これにより、外れ値演算部は、サブ点群のｘ座標値及びｙ座標値を二次曲面を示す関数式ｚ（ｘ，ｙ）に代入することにより、二次曲面上の対応ｚ軸座標値ｚ’を演算し、サブ点群をなす各点のｚ座標をｚｓとして、外れ値σを
σ＝｜ｚｓ−ｚ’｜
として演算するように構成できる。これにより、距離の外れ値σをｚ軸上の座標差分により簡単に演算できる。
【００７３】
そして、曲率情報生成部は、外れ値が閾値を超える場合には、実施の形態１の曲率半径機械学習部により曲率半径値を算出・出力する一方、外れ値が閾値未満の場合には、二次曲面を示す関数式を用いて基準点での値として演算されたガウス曲率Ｋと平均曲率Ｈとの値に基づき、曲率半径値を算出・出力するように構成できる。前述のローカル座標系（ｘ−ｙ−ｚ直交座標系）にて記述される曲面ｚ（ｘ，ｙ）の任意の点におけるガウス曲率Ｋと平均曲率Ｈは、それぞれ下記数３及び数４により記述されることが知られている。
【００７４】
【数３】
2020027654.tif 000005
【００７５】
【数４】
2020027654.tif 000006
【００７６】
上記数３及び数４に含まれるｚ（ｘ，ｙ）の偏微分関数は、回帰曲面ｚ（ｘ，ｙ）が数２のような二次曲面として記述されている場合、偏微分操作を陽に実行することができ、下記数５のように非常に単純な数式として記述できる。
【００７７】
【数５】
2020027654.tif 000007
【００７８】
数５を数４に代入することで、二次曲面ｚ＝ｚ（ｘ，ｙ）上の各点（ｘ，ｙ，ｚ）におけるガウス曲率Ｋと平均曲率Ｈとは、各点の座標値と前記した６つの係数ａ１〜ａ６をのみを用いて単純に演算できる。そして、各点における曲率半径Ｒは周知の下記数６により演算することができる。
【００７９】
【数６】
2020027654.tif 000008
【００８０】
外れ値σが閾値未満の場合、図２７に示すように、最小２乗近似により得られる二次曲面は、全ての点にわたってＣＡＤネイティブ曲面との偏差が小さくなり、ＣＡＤネイティブ曲面に設計寸法が正確に反映されている限り、上記数６により算出される曲率半径の寸法的な信頼性も十分なレベルにて得ることができる。なお、点群中のどの点を基準点として定めるかについては、例えばＳＴＬデータを構成する各三角形の代表点（例えば三角形の幾何学的重心に最も近い点）など、点群の一部を選択的に基準点として定めることも可能であるし、点群内の全点を漏れなく基準点として定めることも可能である。後者の場合、点群内の全点を渡るように順次基準点を変更しつつ仮想球によりサブ点群を回収し、そのサブ点群に対して曲面回帰を行なうことにより、全点について固有の回帰曲面（点ごとのローカル座標系にて数式記述される）をもれなく定めることができる。各固有曲面は、隣接する基準点同士でサブ点群が一部共通するものとなり、互いに重なり合う形で設定されるとともに、個々の固有曲面の集合は、外れ点の近傍を除いてＣＡＤネイティブ曲面を略再現するものとなる。よって、外れ点以外の点位置での曲率（及び曲率半径）は、各点を基準点とする回帰曲面の該基準点における曲率（及び曲率半径）として数５及び数６により個別にかつ高精度に算出することができる。
【００８１】
以上の機能は、図１の三次元ＣＡＤ用突起解析システム１の電気的構成を図２９のように変形することにより実現できる。突起解析ソフトウェア１５８には曲面回帰プログラム１５８ｆが追加され、また、決定された回帰曲面に対する各点の距離偏差である外れ値を記憶するための外れ値情報記憶部１６１も合わせて設けられている。残余の構成は図１と同様であり、詳細な説明は略する。
【００８２】
また、図１１の曲率解析プログラム１５８ｃの処理の流れは、例えば図３０のように変形される。Ｓ２０１〜Ｓ２０５に至る処理は図１１と全く同様である。Ｓ２５０では、回収された点群に対し二次曲面回帰処理が曲面回帰プログラム１５８ｆにより実行される。図３１は、二次曲面回帰処理の詳細を示すものであり、Ｓ２５０１にて、回収されたＮ個の点群から曲面回帰用の点を初期値Ｎｐｉにてサンプリングする（この段階で、回帰対象点数ＮはＮｐｉである）。Ｓ２５０２では、前述の最小固有値λ0に対する固有ベクトルをｚ軸として、サンプリング点に対し、最小２乗法により２次曲面回帰を実行する（得られる２次曲面の関数式をｚ（ｘ，ｙ）とする）。
【００８３】
次に、Ｓ２５０３では、サンプリング点の座標を（ｘｓ，ｙｓ、ｚｓ）とし、各サンプリング点について、外れ値σを。前述のごとくσ＝｜ｚｓ−ｚ（ｘ，ｙ）｜にて演算する。Ｓ２５０４では、得られた２次曲面に対するサンプリング点のフィッティング状況を、外れ値σの値から確認する。具体的には、σ ＞ σ tor（σ torは前述の既定の誤差範囲：例えば０．０５ｍｍ）となる点が規定数Ｎｃ以上になっているかどうかを調べ、規定数Ｎｃ以上であればＳ２５０５にてサンプリング点をリセットする。そして、Ｓ２５０１に戻ってサンプリング点を選びなおし、Ｓ２５０４までの処理を繰り返す。一方、Ｓ２５０４でσ ＞ σ torとなる点が規定数Ｎｃ未満であればフィッティング結果は良好であると判断し、Ｓ２５０６に進んで、回収された点から上記のサンプリング点を除いた残余点の１つを選択し、この時点で得られている２次曲面の関数式ｚ（ｘ，ｙ）を用いて外れ値σを同様に演算する。Ｓ２５０７にてσ ＞ σ torであればＳ２５０８に進み、その残余点をサンプリング点に組み入れて再回帰処理を行ない、二次曲面の関数ｚ（ｘ，ｙ）を更新する。また、Ｓ２５０７にてσ ≦ σ torであればＳ２５０８をスキップする。
【００８４】
Ｓ２５０９では次の残余点があるかどうかを調べ、次の残余点があればＳ２５１０に進んでサンプリング点に該残余点を加え、Ｓ２５０６に戻ってＳ２５０９までの処理を繰り返す。一方、Ｓ２５０９で次の残余点が残っていなければＳ２５１１に進み、最終的なｚ（ｘ，ｙ）を用いて全ての回収点の外れ値σを演算し、外れ値情報記憶部１６１に記憶する。その後、図３０の処理に戻る。
【００８５】
Ｓ２５１では、外れ値情報記憶部１６１に記憶されている外れ値のうち、最大のものを最大外れ値σmaxとして演算する。Ｓ２５２では、該σmax の値を前述の σ tor（閾値）と比較する。σmax＞σ torであれば突起は第２種突起であると判断し、Ｓ２０７に進む。以下の処理は図１１と全く同じなので、詳細な説明は略する。
【００８６】
一方、Ｓ２５２でσmax＜σ torの場合はＳ２５３に進み、前述の数２〜図５を用いて、ガウス曲率Ｋと平均曲率Ｈを演算する。次いでＳ２０８’に進み、ガウス曲率Ｋと平均曲率Ｈを各々の下限値Kinf又はＨinfと比較する。Ｈ＜Ｈinf又はＫ＜Ｋinfならば、図１１と同様にＳ２１０に進み、該点を平坦領域の点（つまり、探索対象の突起でない）とみなして棄却する。一方、Ｓ２０８’でＨ＞ＨinfかつＫ＞Ｋinfならば探索対象の突起とみなし、Ｓ２０９’で前述の数６を用いて曲率半径Ｒを演算する。次いで、Ｓ２１１に進み、以下、図１１と同様の処理となる。
【００８７】
以上、本発明の実施の形態を詳細に説明したが、本発明の作用及び効果の詳細は次のとおりまとめられる。上記本発明においては、解析対象部品モデルの突起解析を行うに際し、部品モデルの表面形状を図形データとして記述する三次元ＣＡＤデータを、該解析対象部品モデルの表面に沿って分散する点群に一旦変換し、その点群から各々４点（球面の特定に必要な最低点の数である）以上を含む突起探索用のサブ点群を選択する。そして、そのサブ点群に含まれる複数の点の座標値に基づき、当該サブ点群に対応する解析対象部品モデルの表面領域の曲率情報を生成し、該曲率情報が予め定められた突起特定条件を充足する場合に、対応するサブ点群を突起に由来する突起点群として特定する。図形データを部品モデル表面上に分散する点群のデータに一旦変換することで、ＣＡＤ空間内での突起探索処理は、突起探索用のサブ点群を単位とした点群座標値による曲率評価と、突起特定条件充足の判定処理に置き換えることができる。その結果、解析対象部品モデルの三次元ＣＡＤデータ上に存在する突起を確実かつ簡単に特定できるようになる。さらに、突起特定に使用されるサブ点群が、球面を直接特定可能な４点以上に確保されるため、各突起の曲率情報を高精度にて生成できる。
【００８８】
三次元ＣＡＤデータは解析対象部品モデルの表面の立体曲面形状を複数の三角形の集合にて近似的に記述するＳＴＬデータとすることができる。この場合、点群変換部は、ＳＴＬデータを構成する三角形の頂点座標に基づいて点群の座標値を生成する点群座標値生成部を有するものとして構成できる。三次元ＣＡＤシステムは、ＣＡＤ上での作図入力によりパラメトリックな図形データの集合として作成されるネイティブファイルを、ＣＡＭ（Computer Aided Manufacturing）、光造形、あるいは３Ｄプリンタ出力などに直接出力が可能なＳＴＬデータファイルに変換する機能を有しているのが一般的である。そして、三次元ＣＡＤデータとしてこのＳＴＬデータが使用可能な場合、ＳＴＬファイルに含まれる三角形の頂点座標は、部品モデル表面の一部を近似する平面を一義的に与えるものとなる。よって、曲面をなす部品モデル表面への点群の生成処理を、上記三角形の頂点座標の活用により、三角形を構成する平面領域上での点群生成処理に置き換えることができ、点群生成処理の大幅な簡略化と処理負荷軽減に貢献する。
【００８９】
この場合、点群座標値生成部は、個々の三角形の頂点座標に基づき各三角形の内部に複数の点が分散生成するように、それら点群の座標値を決定するものとして構成できる。これにより、部品モデルの表面への点群の生成密度を高めることができ、突起形状の特定精度ひいては曲率値（ないし曲率半径値）の算出精度を高めることができる。
【００９０】
また、ＳＴＬデータは通常、立体曲面形状において曲率の大きい領域ほどサイズの小さい三角形群で被覆されるように構成される。この場合、点群座標値生成部は、三角形のサイズが大きいほど、１つの三角形内に生成される点の数が多くなるように点群の座標値を決定するように構成できる。これにより、ＳＴＬデータにおける部品モデル表面の三角形領域のサイズが一定でない場合も、部品モデル表面に点群を均一な密度で生成させることができ、突起形状の特定精度ひいては曲率値（ないし曲率半径値）の算出精度をさらに高めることができる。
【００９１】
また、点群座標値生成部は、各三角形内に点群がランダムに分散生成されるよう、乱数を用いて点群の座標値を決定するように構成できる。これにより、三角形内に点群を一様に発生させることができ、突起形状の特定精度ひいては曲率値（ないし曲率半径値）の算出精度をさらに高めることができる。この場合、点群座標値生成部は、結合係数κ１、κ２、κ３（ただし、κ１＋κ２＋κ３＝１）を用いて三角形内の点の位置ベクトルＰを、三角形の３つの頂点の位置ベクトルＶ１，Ｖ２，Ｖ３の線形結合により、
Ｐ≡κ１・Ｖ１＋κ２・Ｖ２＋κ３・Ｖ３
にて記述するとともに、結合係数κ１、κ２、κ３の２つを、各々独立した一様乱数ε１及びε２を用いて決定するように構成できる。三角形の３つの頂点の座標値（位置ベクトルの成分）の線形結合を用いた簡易な計算アルゴリズムに、点群をランダムに発生させるための乱数を簡便に組み込むことができ、点群発生の処理負荷の軽減に貢献する。
【００９２】
サブ点群選択部は、サブ点群選択部は、解析対象部品モデルの表面に分散する点群中の１つの点を基準点として定めるとともに、当該基準点から一定の回収半径内に存在する点をサブ点群として定めるものとすることができる。部品モデル上の突起の大きさ（あるいは、曲率半径）は、前述の保安基準に定められているごとく、基準外と認識されるための上限値が存在する。上記構成によれば、１つの突起を探索するのに必要十分な空間を上記回収半径により規定することができ、探索の処理負荷を軽減するのに貢献する。
【００９３】
この場合、サブ点群選択部は、回収半径内に存在する基準点を起点とした複数の点からなる最近傍点列を順次探索する最近傍点探索部を備えるものとして構成できる。ＣＡＤ空間は三次元であるが、生成した点群が存在するのは、部品モデル表面付近の限られた空間領域に過ぎない。しかし、部品モデル表面のどこに突起が存在しているのかが不明な場合、空間を３方向に機械的に走査して点群を探索する方法は、ほとんどの走査点が点群の存在しない走査点となるため、処理上の無駄が甚だしくなる。しかし、上記のように最近傍点列として点群を順次探索する方法を採用すれば、点群が部品モデルの表面に局在化していることが前提になっているために、探索空間もまた部品モデルの表面に必然的に限定され、突起特定のためのサブ点群を効率的に抽出することができる。
【００９４】
この場合、最近傍点探索部は、点群の座標空間を三次元Ｋｄ木により分割するとともに、基準点が所属する葉セルを探索起点セルとして、隣接する葉セルをＫｄ木構造に沿って順次探索することにより最近傍点列を決定するものとして構成できる。Ｋｄ木を採用すると、探索のための葉セルへの分割が、空間を張る３つの軸方向において点群座標成分の分散が最小化される軸の判定と、当該軸に対応する座標値のメジアン（中央値）特定により簡単に決定でき、かつ、木構造に従う順序にて各葉セルを順次探索することで最近傍点を容易に特定でき、探索の処理負荷をさらに軽減することができる。
【００９５】
曲率情報生成部は、サブ点群をなす複数の点の座標値の分散・共分散行列の３つの固有値λ０、λ１、λ２に基づいて、曲率ｋを、
ｋ＝λ０／（λ０＋λ１＋λ２）・・・（１）
と算出するものとして構成できる。
【００９６】
曲率情報生成部は、曲率を曲率半径値に変換する曲率半径値変換部を備えるものとして構成できる。突起の曲率半径値具体的に得られることで、ＣＡＤデータが記述する部品モデル上の突起が前述の保安基準等に定められた曲率半径条件を充足しているか否か等の判定をより直接的に実施できる。
【００９７】
曲率半径は数学的には曲率の逆数として定義され、ＣＡＤデータから生成される点群の座標が、部品モデルの実寸を記述する空間座標としての信頼性を有していれば、点群座標から得られる曲率の逆数を演算することで曲率半径値を得ることができる。他方、点群座標から得られる突起曲率が実際の部品モデル上での突起曲率の絶対値から多少乖離していても、同じ部品モデル上の異なる突起間での曲率の相対的な大小関係については一定の信頼度が担保されている、と考えられる場合は、例えば次のような構成を採用することができる。
【００９８】
すなわち、該構成において曲率半径値変換部は、表面の曲率半径が既知の学習用突起を含む参照部品モデルの学習用突起について曲率情報生成部により算出された曲率の値と、当該曲率の算出に用いたサブ点群の点の数とを含む入力情報と、学習用突起の曲率半径値を含む出力情報とからなる教師データを複数組用いて機械学習済みの曲率半径機械学習部を備え、曲率の算出に用いたサブ点群の点の数とが入力されることにより、曲率に対応する曲率半径値を算出・出力するものとされる。ＣＡＤデータ上の突起の実寸を用いて学習させた曲率半径機械学習部を用いることで、点群座標から得られる曲率の絶対値の信頼度が多少低くとも、これを曲率半径値に精度よく、かつ簡便に変換することができる。
【００９９】
曲率情報生成部は、点群の座標空間において、各サブ点群に対応する曲率半径値をマッピングする曲率半径値マッピング部と、曲率半径値のマッピング結果を出力するマッピング結果出力部と、を備えるものとして構成できる。ＣＡＤデータに対応する点群空間内にて曲率半径値のマッピングを行ない、出力することにより、部品モデル表面の各位置における曲率半径値の分布を容易に把握することができる。この場合、マッピング結果出力部は、曲率半径値が予め定められた基準値未満となる突起点群を、曲率半径値が基準値を超える突起点群と識別可能に出力するように構成することができる。部品モデル表面に基準値を超える曲率半径の突起が存在している場合に、上記構成により、これを容易に識別することができる。
【０１００】
前述した道路運送車両の保安基準のごとく、車両の外装部品の突起については、人体頭部などとの衝突時を想定して、指定された直径（例えば、前述の保安基準では１００ｍｍ）の球との接触が生じうる突起を対象に、曲率半径の下限値が規定されている場合がある。この場合、本発明のシステムには、予め定められた直径の仮想球を突起点群に対して接触させるシミュレーション演算を行なうととともに、当該仮想球と突起点群との接触形態に基づいて、該突起点群により記述される突起の存在形態を解析する突起存在形態解析部を備えるものとして構成できる。ＣＡＤデータを点群に変換して用いることで、指定された直径の仮想球と突起表面の点との接触関係を容易にシミュレートすることができ、ひいては球との接触形態に基づく突起存在形態の解析を容易に実施することができる。
【０１０１】
具体的には、突起存在形態解析部は、仮想球との直接接触が生ずる接触型突起点群と、周囲に存在する隣接突起点群との干渉により仮想球との直接接触が不能となる非接触型突起点群とを識別するものとすることができる。非接触型突起点群が規定する突起は、球体を外部から接近させたとき、球体が隣接突起と先に干渉する結果、当該球との接触を免れる突起を意味し、曲率半径が仮に基準値よりも小さくても、設計変更等の対象からは除外しうるものである。よって、突起存在形態解析部により非接触型突起点群を接触型突起点群から明確に識別できるようにすることで、無駄な設計変更等を回避する上で役立つ。
【０１０２】
さらに、突起存在形態解析部は次のように構成することも可能である。すなわち、仮想球に対し１つの突起点群が単独でのみ接触可能となる場合の該突起点群を独立接触型突起点群とし、仮想球に対し複数組の突起点群が同時に接触する場合のそれら複数組の突起点群を重複接触型突起点群として、突起存在形態解析部は接触型突起点群が、独立接触型突起点群と重複接触型突起点群とのいずれであるかをさらに識別するように構成する。この構成によると、球体が衝突する時の衝突点が１点のみの独立接触型突起と衝突点が２点以上生じてしまう重複接触型突起とをさらに識別することが可能となり、特に後者の場合は、複数の突起の配置位置を変更して独立接触型突起に設計変更する、といった積極的な対応を促すことが可能となる。
【符号の説明】
【０１０３】
１  三次元ＣＡＤ用突起解析システム
５０  マイコン
５１  ＣＰＵ
５２  ＲＡＭ
５３  ＲＯＭ
５４  入出力部
５５  ハードディスクドライブ
５６  バス
５９  モニタ
６０  入力部
６１  プリンタ
１５５  三次元ＣＡＤソフトウェア
１５６  ＣＡＤネイティブファイル
１５６ａ  図形ＩＤ
１５７  ＳＴＬファイル
１５８  突起解析ソフトウェア
１５８ａ  点群生成プログラム
１５８ｂ  点群探索プログラム
１５８ｃ  曲率解析プログラム
１５８ｄ  曲率半径学習エンジン
１５８ｅ  突起存在形態解析プログラム
１５８ｆ  曲面回帰プログラム
１５９  点群データ
１６０  突起解析データ
１５６ａ  図形ＩＤ
１５６ｂ  図形種別
１５６ｃ  記述データ
１５７ａ  ＳＴＬＩＤ 
１５７ｂ  頂点座標
ｎ  法線ベクトル
１５９ａ  点ＩＤ
１５９ｂ  点座標 
１５９ｃ  探索フラグ 
１５９ｄ  突起点群フラグ
１６０ａ  突起ＩＤ
１６０ｂ  曲率半径
１６１外れ値情報記憶部
ｈｐ  ハンドリング点
ｏｂ  曲面パッチオブジェクト
ＢＭＰ  突起
ＳＴＬ  三角形
Ｖ１，Ｖ２，Ｖ３  頂点位置ベクトル
Ｐ  点
ＳＰＧ  サブ点群
ＰＭ  解析対象部品モデル
ρ  回収半径
ｋ  曲率
ｒ  曲率半径
ＳＢ  仮想球
【図１】
2020027654.tif 000009
【図２】
2020027654.tif 000010
【図３】
2020027654.tif 000011
【図４】
2020027654.tif 000012
【図５】
2020027654.tif 000013
【図６】
2020027654.tif 000014
【図７】
2020027654.tif 000015
【図８】
2020027654.tif 000016
【図９】
2020027654.tif 000017
【図１０】
2020027654.tif 000018
【図１１】
2020027654.tif 000019
【図１２】
2020027654.tif 000020
【図１３】
2020027654.tif 000021
【図１４】
2020027654.tif 000022
【図１５】
2020027654.tif 000023
【図１６】
2020027654.tif 000024
【図１７】
2020027654.tif 000025
【図１８】
2020027654.tif 000026
【図１９】
2020027654.tif 000027
【図２０】
2020027654.tif 000028
【図２１】
2020027654.tif 000029
【図２２】
2020027654.tif 000030
【図２３】
2020027654.tif 000031
【図２４】
2020027654.tif 000032
【図２５】
2020027654.tif 000033
【図２６】
2020027654.tif 000034
【図２７】
2020027654.tif 000035
【図２８】
2020027654.tif 000036
【図２９】
2020027654.tif 000037
【図３０】
2020027654.tif 000038
【図３１】
2020027654.tif 000039