(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-29
(45)【発行日】2023-04-06
(54)【発明の名称】三次元CAD用突起解析システム、三次元CAD用突起解析方法及びコンピュータプログラム
(51)【国際特許分類】
G06F 30/10 20200101AFI20230330BHJP
【FI】
G06F30/10 100
(21)【出願番号】P 2019145749
(22)【出願日】2019-08-07
【審査請求日】2022-02-28
(31)【優先権主張番号】P 2018150845
(32)【優先日】2018-08-09
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】508154715
【氏名又は名称】ニュートラル株式会社
(74)【代理人】
【識別番号】110002516
【氏名又は名称】弁理士法人白坂
(72)【発明者】
【氏名】山戸 辰彦
【審査官】堀井 啓明
(56)【参考文献】
【文献】特開2013-131171(JP,A)
【文献】特開2006-277304(JP,A)
【文献】米国特許第5903458(US,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/00-30/398
(57)【特許請求の範囲】
【請求項1】
突起を有した解析対象部品モデルの表面形状を図形データとして記述する三次元CADデータを、前記解析対象部品モデルの表面に沿って分散する点群に変換する点群変換部と、
前記点群から各々4点以上を含む突起探索用のサブ点群を選択するサブ点群選択部と、
前記サブ点群に含まれる4以上の点の座標値に基づき、当該サブ点群に対応する領域の曲率情報を生成する曲率情報生成部と、
前記曲率情報が示す前記領域の曲率が予め定められた値よりも大きくなる場合に、対応する前記サブ点群を前記突起に由来する突起点群として特定する突起点群特定部と、
を備えたことを特徴とする三次元CAD用突起解析システム。
【請求項2】
前記三次元CADデータは前記解析対象部品モデルの表面の立体曲面形状を複数の三角形の集合にて近似的に記述するSTLデータであり、前記点群変換部は、前記STLデータを構成する前記三角形の頂点座標に基づいて前記点群の座標値を生成する点群座標値生成部を有する請求項1記載の三次元CAD用突起解析システム。
【請求項3】
前記点群座標値生成部は、個々の前記三角形の前記頂点座標に基づき各前記三角形の内部に複数の点が分散生成するように、それら点の座標値を決定するものである請求項2記載の三次元CAD用突起解析システム。
【請求項4】
前記STLデータは、前記立体曲面形状において曲率の大きい領域ほどサイズの小さい三角形群で被覆されるように構成されており、
前記点群座標値生成部は、前記三角形のサイズが大きいほど、1つの三角形内に生成される点の数が多くなるように前記点群の座標値を決定するものである請求項3記載の三次元CAD用突起解析システム。
【請求項5】
前記点群座標値生成部は、各前記三角形内に前記点群がランダムに分散生成されるよう、乱数を用いて前記点群の座標値を決定するものである請求項3又は請求項4に記載の三次元CAD用突起解析システム。
【請求項6】
前記点群座標値生成部は、結合係数κ1、κ2、κ3(ただし、κ1+κ2+κ3=1)を用いて前記三角形内の点の位置ベクトルPを、前記三角形の3つの頂点の位置ベクトルV1,V2,V3の線形結合により、
P≡κ1・V1+κ2・V2+κ3・V3
にて記述するとともに、前記結合係数κ1、κ2、κ3の2つを、各々独立した一様乱数ε1及びε2を用いて決定するものである請求項5記載の三次元CAD用突起解析システム。
【請求項7】
前記サブ点群選択部は、前記解析対象部品モデルの表面に分散する前記点群中の1つの点を基準点として定めるとともに、当該基準点から一定の回収半径内に存在する点を前記サブ点群として定めるものである請求項1ないし請求項6のいずれか1項に記載の三次元CAD用突起解析システム。
【請求項8】
前記サブ点群選択部は、前記回収半径内に存在する前記基準点を起点とした複数の点からなる最近傍点列を順次探索する最近傍点探索部を備える請求項7記載の三次元CAD用突起解析システム。
【請求項9】
前記最近傍点探索部は、前記点群の座標空間を三次元Kd木により分割するとともに、前記基準点が所属する葉セルを探索起点セルとして、隣接する葉セルを前記Kd木構造に沿って順次探索することにより前記最近傍点列を決定する請求項8記載の三次元CAD用突起解析システム。
【請求項10】
前記曲率情報生成部は、前記サブ点群をなす複数の前記点の座標値の分散・共分散行列の3つの固有値λ0、λ1、λ2(ただし、λ0は最小固有値)に基づいて、前記曲率kを、
k=λ0/(λ0+λ1+λ2)
として算出するものである請求項1ないし請求項9のいずれか1項に記載の三次元CAD用突起解析システム。
【請求項11】
前記曲率情報生成部は、前記曲率を曲率半径値に変換する曲率半径値変換部を備える請求項1ないし請求項10のいずれか1項に記載の三次元CAD用突起解析システム。
【請求項12】
前記曲率半径値変換部は、表面の曲率半径が既知の学習用突起を含む参照部品モデルの前記学習用突起について前記曲率情報生成部により算出された前記曲率の値と、当該曲率の算出に用いた前記サブ点群の点の数とを含む入力情報と、前記学習用突起の前記曲率半径値を含む出力情報とからなる教師データを複数組用いて機械学習済みの曲率半径機械学習部を備え、前記解析対象部品モデルの前記突起について前記曲率情報生成部により算出された前記曲率の値と、当該曲率の算出に用いた前記サブ点群の点の数とが入力されることにより、前記曲率に対応する曲率半径値を算出・出力するものである請求項11記載の三次元CAD用突起解析システム。
【請求項13】
予め定められた直径の仮想球を前記突起点群に対して接触させるシミュレーション演算を行なうととともに、当該仮想球と前記突起点群との接触形態に基づいて、該突起点群により記述される前記突起の存在形態を解析する突起存在形態解析部を備える請求項1ないし請求項12のいずれか1項に記載の三次元CAD用突起解析システム。
【請求項14】
前記突起存在形態解析部は、前記仮想球との直接接触が生ずる接触型突起点群と、周囲に存在する隣接突起点群との干渉により前記仮想球との直接接触が不能となる非接触型突起点群とを識別するものである請求項13記載の三次元CAD用突起解析システム。
【請求項15】
前記仮想球に対し1つの突起点群が単独でのみ接触可能となる場合の該突起点群を独立接触型突起点群とし、前記仮想球に対し複数組の突起点群が同時に接触する場合のそれら複数組の突起点群を重複接触型突起点群として、前記突起存在形態解析部は前記接触型突起点群が、前記独立接触型突起点群と前記重複接触型突起点群とのいずれであるかをさらに識別するものである請求項14記載の三次元CAD用突起解析システム。
【請求項16】
前記サブ点群に対する回帰分析を行なうことにより、前記サブ点群に適合する3次元回帰曲面の関数式を決定する回帰曲面決定部と、
前記回帰曲面に対する前記サブ点群の距離的な偏差を外れ値として演算する外れ値演算部とを備え、
前記曲率情報生成部は、前記外れ値が予め定められた閾値を超える場合に、該外れ値が前記閾値を超えるサブ点を含む4以上の点の座標値に基づき、当該サブ点群に対応する領域の曲率情報を生成する一方、前記外れ値が前記閾値未満の場合には前記三次元回帰曲面の関数式に対する微分解析により前記曲率情報を生成する請求項1ないし請求項15のいずれか1項に記載の三次元CAD用突起解析システム。
【請求項17】
先鋭化した突起先端形状に由来して、該突起先端における数学的な接平面が定義不能となる特異点を前記サブ点群が含む場合に、前記曲率情報生成部は、該特異点にて前記外れ値が前記閾値を超えるに伴い、該特異点を含む前記サブ点群の座標値に基づき、当該サブ点群に対応する領域の曲率情報を生成するものである請求項16記載の三次元CAD用突起解析システム。
【請求項18】
前記サブ点群選択部は、前記解析対象部品モデルの表面に分散する前記点群中の1つの点を基準点として定めるとともに、当該基準点から一定の回収半径内に存在する少なくとも6つの点を前記サブ点群として定めるものであり、前記回帰曲面決定部は前記三次元回帰曲面を二次曲面として決定する請求項16又は請求項17に記載の三次元CAD用突起解析システム。
【請求項19】
前記サブ点群選択部は、前記回収半径内に存在する7以上の点を前記サブ点群として定めるものであり、
前記回帰曲面決定部は前記サブ点群を用いた最小二乗回帰により前記二次曲面を決定する請求項18記載の三次元CAD用突起解析システム。
【請求項20】
前記回帰曲面決定部は、前記回収半径内の前記サブ点群に対し、それらサブ点群をなす点の座標値の分散・共分散行列の3つの固有値のうち、最小の固有値をλ0として、該λ0に対応する固有ベクトルを突起極大点における法線方向を示すz軸と、該z軸と各々直交するx軸及びy軸とを定め、前記二次曲面をそれらx-y-z直交空間座標系にて記述するものであり、
前記外れ値演算部は、前記サブ点群のx座標値及びy座標値を前記二次曲面を示す関数式z(x,y)に代入することにより、前記二次曲面上の対応z軸座標値z’を演算し、前記サブ点群をなす各点のz座標をzsとして前記外れ値σを、
σ=|zs-z’|
にて演算するものである請求項18又は請求項19に記載の三次元CAD用突起解析システム。
【請求項21】
前記曲率情報生成部は、前記外れ値が前記閾値を超える場合には、表面の曲率半径が既知の学習用突起を含む参照部品モデルの前記学習用突起について前記曲率情報生成部により算出された前記曲率の値と、当該曲率の算出に用いた前記サブ点群の点の数とを含む入力情報と、前記学習用突起の前記曲率半径値を含む出力情報とからなる教師データを複数組用いて機械学習済みの曲率半径機械学習部を備え、前記解析対象部品モデルの前記突起について前記曲率情報生成部により算出された前記曲率の値と、当該曲率の算出に用いた前記サブ点群の点の数とが入力されることにより、前記曲率に対応する曲率半径値を算出・出力する一方、前記外れ値が前記閾値未満の場合には、前記二次曲面を示す前記関数式を用いて前記基準点での値として演算されたガウス曲率と平均曲率との値に基づき、前記曲率半径値を算出・出力するものである請求項20記載の三次元CAD用突起解析システム。
【請求項22】
コンピュータが、
突起を有した解析対象部品モデルの表面形状を図形データとして記述する三次元CADデータを、前記解析対象部品モデルの表面に沿って分散する点群に変換し、
前記点群から各々4以上を含む突起探索用のサブ点群を選択し、
前記サブ点群に含まれる4以上の点の座標値に基づき、当該サブ点群に対応する領域の曲率情報を生成し、
前記曲率情報が示す前記領域の曲率が予め定められた値よりも大きくなる場合に、対応する前記サブ点群を前記突起に由来する突起点群として特定する、
ことを特徴とする三次元CAD用突起解析方法。
【請求項23】
突起を有した解析対象部品モデルの表面形状を図形データとして記述する三次元CADデータを、前記解析対象部品モデルの表面に沿って分散する点群に変換する点群変換ステップと、
前記点群から各々4以上を含む突起探索用のサブ点群を選択するサブ点群選択ステップと、
前記サブ点群に含まれる4以上の点の座標値に基づき、当該サブ点群に対応する領域の曲率情報を生成する曲率情報生成ステップと、
前記曲率情報が示す前記領域の曲率が予め定められた値よりも大きくなる場合に、対応する前記サブ点群を前記突起に由来する突起点群として特定する突起点群特定ステップと、
をコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、車両の外装部品等として使用される部品モデルを立体的に設計するための三次元CAD(Computer Aided Designing)システムにおいて、CADデータ上に表れる部品モデル表面の突起を解析するための三次元CAD用突起解析システム、次元CAD用突起解析方法及びコンピュータプログラムに関するものである。
【背景技術】
【0002】
自動車などの車両は、フード、グリル、バンパ、ヘッドライト、フェンダー、及びそれら部品上に実装されるエンブレムなどの装飾部品などを外装部品として備えている。こうした車両の部品モデルの設計にあたっては、法規により定められた条件を各部品が充足している必要がある。具体的には、乗車人員10人未満の乗用車の適用される外部突起にかかる基準として、平成27年4月1日より施行される道路運送車両の保安基準(国土交通省)第18条には、次のように規定されている。
「自動車の車枠及び車体は、次の基準に適合するものでなければならない。
車枠及び車体は、堅ろうで運行に十分耐えるものとして、強度、取付方法等に関し告示で定める基準に適合するものであること。
(中略)
二 車体の外形その他自動車の形状は、鋭い突起がないこと、回転部分が突出していないこと等他の交通の安全を妨げるおそれがないものとして、告示で定める基準に適合するものであること。」
【0003】
また、上記保安基準の細目を定める告示の第100条には、次のように規定されている。
「車枠及び車体の強度、取付方法等に関し、保安基準第18条第1項第1号の告示で定める基準は、次の各号に掲げる基準とする。
(中略)
2 車体の外形その他自動車の形状に関し、保安基準第18条第1項第2号の告示で定める基準は、車体の外形その他自動車の形状が、鋭い突起を有し、又は回転部分が突出する等他の交通の安全を妨げるおそれのあるものでないこととする。この場合において、次に該当する車枠及び車体は、この基準に適合するものとする。
(中略)
三 専ら乗用の用に供する乗車定員10人以下の自動車及び貨物の運送の用に供する車
両総重量2.8t以下の自動車に備えるエア・スポイラ(中略)であって、次の要件に適合するもの
イ エア・スポイラは、自動車の前部及び後部のいずれの部分においても、自動車の最前端又は最後端とならないものであること。ただし、バンパの下端より下方にある部分であって、直径100mm の球体が静的に接触することのできる部分(中略)の角部が半径5 mm以上であるもの(中略)。
ロ エア・スポイラ(中略)は、直径100mm の球体が静的に接触することのできる部分に半径2.5mm未満の角部を有さないものであること。
(中略)
ニ 乗車定員が10人未満の専ら乗用の用に供する自動車(中略)であって、車体等その他基部から突出量 が5mm 以上であり、かつ先端の曲率半径が 2.5mm 未満である突起物を有するもの。」
【0004】
ところで、一般的な三次元CADシステムでは、部品モデルを作図するにあたり、突起を含めたその表面形状はパラメトリックな図形データとして入力されている。具体的には、該図形データは、立体形状(球面、円柱面、円錐面、ペジェ曲面やスプライン曲面などの自由曲面等)を定義する数式と、図形の具体的な寸法や形状、姿勢などを規定するハンドリング点座標との組み合わせに記述されるものであり、面輪郭の細部は数式演算により決定される。従って、部品モデル中の個々の突起の曲率半径の具体的な値は、CADデータからは直接的には読み取れないことの方が多い。その結果、設計後のモックアップ等の段階で基準に適合しない突起等が発見されることも多く、その都度CADデータを修正してはモックアップを繰り返す必要があるなど、非常に面倒な作業が必要であった。
【0005】
そこで、上記のような外部突起の基準適合要件を系統的にチェックできるようにするために、例えば特許文献1には、部品モデルの3次元CADデータを用意するとともに、CAD上で部品モデルの突起の曲率半径を測定することにより法規に対する機械的な良否判断を可能としたCADシステムが提案されている。また、特許文献2には、突起の断面輪郭上に、同一直線状にない3つのサンプリング点を幾何学的作図により生成し、該サンプリング点により曲率半径値を自動算出するシステムが開示されている。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2010-237054号公報
【文献】特開2017-111636号公報
【非特許文献】
【0007】
【文献】Semantic 3D Object Maps for Everyday Robot Manipulation, Radu Bogdan Rusu, Springer (2013)
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、特許文献1の構成では、突起の曲率半径値の測定を、オペレータがCAD上で手作業により行なうため、チェック対象となる突起が多数存在する場合はオペレータの負担が非常に大きく、不具合箇所の抽出漏れや測定ミスを誘引するおそれがあった。
【0009】
他方、特許文献2の構成では、突起曲率半径の算出自体は自動で行っているものの、次のような欠点がある。
(1)突起輪郭と、曲率半径決定のためのサンプリング点の生成をCADデータ上での幾何学的作図により実施しているため、サンプリング点生成の処理負荷が大きい。
(2)球面の曲率半径を断面輪郭の円近似で行っており、サンプリング点の数も高々円弧を特定可能な3点のみであるため、球面の曲率半径値の決定精度は低い。
(3)CAD上にて突起位置を探索する機能が備わっておらず、CAD上での突起の特定は、特許文献1と同様にオペレータ作業に委ねられている。その結果、突起の存在自体を見落としてしまう不具合までは解消できないし、多数の突起が存在する場合、その探索作業の負荷は依然大きい。
【0010】
本発明の課題は、解析対象部品モデルの三次元CADデータ上に存在する突起を確実かつ簡単に特定でき、各突起の曲率に関する情報を高精度にて生成できる三次元CAD用突起解析システム、三次元CAD用突起解析方法及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【0011】
上記の課題を解決するために、本発明の三次元CAD用突起解析システムは、突起を有した解析対象部品モデルの表面形状を図形データとして記述する三次元CADデータを、解析対象部品モデルの表面に沿って分散する点群に変換する点群変換部と、点群から各々4以上を含む突起探索用のサブ点群を選択するサブ点群選択部と、サブ点群に含まれる4以上の点の座標値に基づき、当該サブ点群に対応する領域の曲率情報を生成する曲率情報生成部と、曲率情報が示す領域の曲率が予め定められた値よりも大きくなる場合に、対応するサブ点群を突起に由来する突起点群として特定する突起点群特定部と、を備えたことを特徴とする。
【0012】
また、本発明の三次元CAD用突起解析方法は、コンピュータが、突起を有した解析対象部品モデルの表面形状を図形データとして記述する三次元CADデータを、解析対象部品モデルの表面に沿って分散する点群に変換し、点群から各々4以上を含む突起探索用のサブ点群を選択し、サブ点群に含まれる4以上の点の座標値に基づき、当該サブ点群に対応する領域の曲率情報を生成し、曲率情報が示す領域の曲率が予め定められた値よりも大きくなる場合に、対応するサブ点群を突起に由来する突起点群として特定することを特徴とする。
【0013】
さらに、本発明のコンピュータプログラムは、突起を有した解析対象部品モデルの表面形状を図形データとして記述する三次元CADデータを、解析対象部品モデルの表面に沿って分散する点群に変換する点群変換ステップと、点群から各々4以上を含む突起探索用のサブ点群を選択するサブ点群選択ステップと、サブ点群に含まれる4以上の点の座標値に基づき、当該サブ点群に対応する領域の曲率情報を生成する曲率情報生成ステップと、
曲率情報が示す領域の曲率が予め定められた値よりも大きくなる場合に、対応するサブ点群を突起に由来する突起点群として特定する突起点群特定ステップと、をコンピュータに実行させることを特徴とする。
【発明の効果】
【0014】
上記本発明によると、解析対象部品モデルの三次元CADデータ上に存在する突起を確実かつ簡単に特定できるようになる。さらに、突起特定に使用されるサブ点群が、球面を直接特定可能な4点以上に確保されるため、各突起の曲率情報を高精度にて生成できる。
【図面の簡単な説明】
【0015】
【
図1】本発明の実施の形態1にかかる三次元CAD用突起解析システムの電気的構成の一例を示すブロック図。
【
図6】ネイティブファイルに含まれる曲面パッチ図形の模式図。
【
図9】三角形の頂点座標に基づいて点群を生成する一概念を示す模式図。
【
図10】点群生成プログラムの処理の流れを示すフローチャート。
【
図11】実施の形態1における曲率解析プログラムの流れを示すフローチャート。
【
図13】点群とKd木ルートセルとの関係を示す図。
【
図14】Kd木によるルートセルの分割シーケンスを示す説明図。
【
図17】Kd木を利用した最近傍点探索シーケンスを示す説明図。
【
図19】サブ点群P、回収半径ρ、曲率k及び曲率半径rの関係を示す説明図。
【
図20】点群で記述された部品モデルデータにおける曲率マッピングの例を示す画像。
【
図21】曲率半径学習エンジンの概念を示すブロック図。
【
図22】仮想球を用いた突起存在形態解析の概念を示す説明図。
【
図23】(A)~(C)は、仮想球を用いた突起存在形態解析の概念を示す別の説明図。
【
図24】点群で記述された部品モデルデータにおいて独立接触型突起点群を識別可能にマッピングした例を示す画像。
【
図25】同じく重複接触型突起点群を識別可能にマッピングした例を示す画像。
【
図26】第1種突起と第2種突起とを比較して示す図。
【
図27】第1種突起における最大外れ値の発生状況を示す説明図。
【
図28】第2種突起における最大外れ値の発生状況を示す説明図。
【
図29】本発明の実施の形態2にかかる三次元CAD用突起解析システムの電気的構成の一例を示すブロック図。
【
図30】実施の形態2における曲率解析プログラムの流れを示すフローチャート。
【
図31】2次曲面回帰処理の流れを示すフローチャート。
【発明を実施するための形態】
【0016】
以下、本発明の実施の形態を添付の図面に基づき説明する。
(実施の形態1)
図1は、本発明の三次元CAD用突起解析システムの一構成例を示すブロック図である。三次元CAD用突起解析システム1はマイコン50を処理主体として備えている。該マイコン50は、CPU51、プログラム実行領域となるRAM52、ROM53、入出力部54及びそれらを相互に接続するバス56等からなる。バス56にはハードディスクドライブ55が接続されている。また、入出力部54には情報出力用のモニタ59及びプリンタ61と、入力部60(キーボード、マウス、タッチパネル等)とが接続されている。
【0017】
ハードディスクドライブ55には三次元CADソフトウェア155がインストールされている。CADソフトウェア155は、CPU51が実行することによりマイコン50を、入力部60を作図入力部、モニタ59及びプリンタ61を作図データの出力部とする形で、例えば車両用の部品モデルを三次元的に作図するための三次元CADシステムとして機能させる。三次元CADソフトウェア155は種々の市販品を使用することができる。
【0018】
三次元CADソフトウェア155による作図により直接作成される作図ファイルはネイティブファイル156である。ネイティブファイル156は、部品モデルの表面形状を図形データとして記述する三次元CADデータの一つであり、
図6に示す自由曲面パッチobや、円柱、球、円錐、回転楕円体、管などの表面形状を記述する、パラメトリックな図形データの組み合わせとして構成される。これらの図形データは、曲面形状(球面、円柱面、円錐面、ペジェ曲面やスプライン曲面などの自由曲面等)を定義する数式と、図形の具体的な寸法、形状及び姿勢などを規定するハンドリング点hpの座標との組み合わせに記述されるものであり、面形状の細部は数式演算により決定される。
【0019】
図2は、ネイティブファイル156のデータ構造を模式的に示すものであり、描画された図形ごとに作成される図形ID156a、図形種別156b、記述データ156c(数式種別と係数、ハンドリング点座標など)、位置データ156dなどを含む。なお、本実施形態において設計・作図の対象となるのは、例えば、フード、グリル、バンパ、ヘッドライト、フェンダー、及びそれら部品上に実装されるエンブレムなどの装飾部品などからなる自動車用の外装部品であるが、これらに限定されるものではない。なお、ネイティブファイルの形式は三次元CADソフトウェア155の種類によって異なり、ソフトウェアの種別が相違するネイティブファイル同士の互換性は一般には担保されていない。
【0020】
次に、三次元CADソフトウェア155は通常、上記のネイティブファイル156をSTL(Standard Triangulated Language)ファイル(STLデータ)157に変換する機能を備えている。STLファイル157は、ネイティブファイル156が記述する三次元形状を、
図7に示すような、小さな三角形STLのデータの集合体として表現するCADデータファイルである。突起BMPの周辺では、曲率の大きい表面領域は小さい三角形STLの集合により、曲率の小さい表面領域は小さい三角形STLの集合により表現される。
図3に示すSTLファイル157において、部品モデル表面の立体形状は、
図8に示すように、三つの頂点の座標(位置ベクトル:V1,V2,V3)157bと法線ベクトル(n)157cにより定義される三角形(ファセットともいう)STLと、個々の三角形STLを特定するSTLID157aの集合により表現される。
【0021】
図8に示すように、法線ベクトルnは、三角形STLの裏と表、ひいては三角形STLが近似する立体表面の内部と外部を識別するために用いられる。法線ベクトルnはベクトルの外積を用いて
n=(V2-V1)×(V3-V1)
として記述でき、必要に応じて外積ベクトルの大きさを用いて正規化したデータとして演算される。なお、三次元CADソフトウェア155に組み込まれているSTLファイルコンバータは、要求される解像度に応じて三角形への分割数をカスタマイズできるようになっている。
【0022】
次に、ハードディスクドライブ55には、本発明の三次元CAD用突起BMP解析システム1の主要機能を実現するための突起解析ソフトウェア158がインストールされている。突起解析ソフトウェア158は、具体的には、CPU51により実行される以下のような機能実現プログラム群を含んでいる。
・点群生成プログラム158a:STLファイル157として与えられる三次元CADデータを、解析対象部品モデルの表面に沿って分散する点群のデータに変換する(点群変換部)。具体的には、STLファイルを構成する三角形STLの頂点座標に基づいて点群の座標値を生成する点群座標値生成部の機能が組み込まれている。
・点群選択プログラム158b:点群空間内にて、上記点群から各々4点以上を含む突起探索用のサブ点群を選択する(サブ点群選択部)。具体的には、解析対象部品モデルの表面に分散する点群中の1つの点を基準点として定めるとともに、当該基準点から一定の回収半径ρ内に存在する点群をサブ点群として定める。なお、点群選択プログラム158bは、回収半径ρが張る球体空間の全域を一様に走査して点群を特定するように構成してもよいが、本実施形態では処理負荷軽減のために、回収半径ρ内に存在する基準点を起点とした最近傍点列を順次探索する最近傍点探索部の機能が組み込まれている。
【0023】
・曲率解析プログラム158c:サブ点群に含まれる複数の点の座標値に基づき、当該サブ点群に対応する領域の曲率情報を生成する(曲率情報生成部)。そして、曲率情報が予め定められた突起特定条件を充足する場合に、対応するサブ点群を突起に由来する突起点群として特定する(突起点群特定部)。突起特定条件は、このあと詳述するように、サブ点群に対応する領域の曲率が基準値以上となっているか否か、等の条件が採用される。
・曲率半径学習エンジン158d:
図21に示す如く、解析対象部品モデルについて算出された曲率kの値、曲率の算出に用いたサブ点群の点の数(回収点の数)N(及び、本実施形態では、サブ点群の回収半径ρ)が入力されることにより、曲率kに対応する曲率半径値rcを演算・出力する学習済みAIエンジンモジュールとして構成される。詳細については、後述する。
・突起存在形態解析プログラム158e:
図22及
図23に示す如く、予め定められた直径の仮想球SBを突起点群に対して接触させるシミュレーション演算を行なうととともに、当該仮想球SBと突起点群との接触形態に基づいて、該突起点群により規定される突起の存在形態を解析する(突起存在形態解析部)。
【0024】
また、ハードディスクドライブ55には、突起解析ソフトウェア158が作成する点群データ159及び突起解析データ160が記憶されている。
図4は、点群データ159の構造を模式的に示すものであり、生成された点群の各点の点ID159aと点座標 159bとが互いに対応付けて記憶されている。また、点群探索処理に使用する探索フラグ159c、及び突起点群特定処理に使用する突起点群フラグ159dも併せて形成されているが、これらについては後述する。
【0025】
図5は突起解析データ160の構造を示すもので、突起に由来すると判定された突起点群を示す突起ID160aと、突起点群の座標値から算出される突起の曲率半径160b、ネイティブファイル156内の当該突起に対応する対応する図形の図形ID156a、突起存在形態解析プログラム158eの実行により特定される突起種別160c、及び後述する重複接触型突起と判定された突起群をグループ化するための重複接触グループID160dが、互いに対応付けられた形で記憶されている。
【0026】
次に、点群生成プログラム158aの処理の流れを、
図10のフローチャートに従い説明する。まず、S101ではSTLファイル157を開き、三角形の3つの頂点の座標値(位置ベクトル:V1, V2, V3)を読み込む。続いて、S102では、三角形の面積AをV1, V2, V3を用い、例えばベクトルを用いた周知の面積公式;
A=(1/2){(V2-V1)
2・ (V3-V1)
2
-(V2-V1)・ (V3-V1)}
1/2 ・・(10)
等を用いて演算する。
【0027】
S103では、三角形の内部に分散生成させる点の数Nを設定する。本実施形態では、三角形のサイズが大きいほど、1つの三角形STL内に形成される点の数Nが多くなるように、具体的には上記算出された面積Aに比例して点の数Nが多くなるように設定する。以下、各三角形内に複数の点がランダムに分散形成されるよう、乱数を用いて各点群の座標値を決定する処理に移る。具体的には、正規化された結合係数κ1、κ2、κ3(ただし、κ1+κ2+κ3=1)を用いて三角形STL内の点の位置ベクトルPを、三角形STLの3つの頂点の位置ベクトルV1,V2,V3の線形結合により、
P≡κ1・V1+κ2・V2+κ3・V3 ・・・(11)
にて記述したとき、結合係数κ1、κ2、κ3の2つを、各々独立した2つの一様乱数ε1及びε2を用いて決定する。一様乱数は確率変数の実現値として定義されるので、0<ε1<1及び0<ε2<1である。なお、使用する独立した乱数の数が2であることは、二次元平面上に任意の点の位置座標を設定するための必要十分条件でもある。
【0028】
まず、S104にて第1乱数ε1を発生させ、続いてS105で第1乱数ε2を発生させる。本実施形態では、
図9に示すごとく、三角形STLの2辺(図ではベクトル(V2-V1)及びベクトル(V3-V1))を隣り合う2辺とする平行四辺形(頂点の位置ベクトル;V1, V2, V3、V1’)内に点Pをランダム発生させる処理が採用されており、S106にて3つのκ1、κ2、κ3を、例えば、
κ1=ε1
κ2=ε2
κ3=1- κ1-κ2 ・・・(12)
として決定し、S107にて生成点Pの座標(位置ベクトル)を式(11)により計算する。なお、三角形内に生成点をより一様に分散させるために、κ1+κ2+κ3=1を充足させつつ、κ1、κ2、κ3の少なくともいずれかを適宜補正して算出するようにしてもよい。
【0029】
なお、
図9に示すように、平行四辺形(V1→V2→V3→V1’)の内部には生成される点が、三角形(V1→V2→V3)の外部の点P’となる場合がある。そこで、S108では、得られた生成点Pが三角形(V1→V2→V3)の内部にあるか否かの判定を行なう。この判定は、例えば、以下の3つのベクトル外積
Q1=(V2-V1)× (P-V2)
Q2=(V3-V2)× (P-V3)
Q3=(V1-V3)× (P-V1) ・・・(13)
を求め、これら3つの外積ベクトルの向きが一致しているかどうかを調べることにより実施できる(向きが一致している場合、生成点Pが三角形の内部にある、と判定される)。外積ベクトルQ1、Q2、Q3の向きは、例えば内積Q1・Q2、Q2・Q3及びQ3・Q1の符号比較等により判定が可能である。
【0030】
なお、式(11)により計算される生成点Pが必ず三角形の内部のものとなるようにするには、結合係数κ1、κ2、κ3を例えば、
κ1=(ε1)1/2
κ2=(1-ε2)・(ε1)1/2
κ3=ε2 ・(ε1)1/2 ・・・(14)
と選べばよい。しかし、一様乱数の平方根演算が介在する処理であり、多数の点群を発生させたい場合は演算量が肥大化する可能性があるため、式(12)ないしその補正形を用いることがより望ましいといえる。
【0031】
生成した点Pが三角形の外部であればS110に進み、当該点Pは採用せずに棄却する。一方、三角形内部の点であった場合はS111に進み、生成点Pを点群データとして記憶するとともに、生成点の数カウンタをインクリメントする。S112にて、生成点の数カウンタが示す点の数を調べ、S103で算出した発生点の数Nに到達していなければS104に戻り、S112までの処理を繰り返す。一方、S112にて発生点の数Nに到達していた場合はS113に進み、ここでは、STLファイル内に次の処理対象の三角形があるか否かを調べる。次の三角形があればS101に戻り、以下のS113までの処理を繰り返す。そして、最後の三角形についての処理が完了すれば処理は終了する。
【0032】
続いて、曲率解析プログラム158cの処理の流れを、
図11のフローチャートに従い説明する。まず、S201では点群ファイルを開き、探索フラグ 159c及び突起点群フラグ159dの値を「0」にリセットしておく。続いて、S202に進み、突起点群探索のための回収半径ρの値を設定する。該回収半径ρの設定に際しては、例えば次のような点に留意する。
・前述の保安基準等にて「鋭い突起」として認識されるべき曲率半径の上限値(例えば2.5mm~7mm程度、特に基準値として明示されている2.5mmないし5mm)の突起が確実に検出されること。この場合、回収半径ρは、突起の表面全体を包含できるように設定する必要はなく、望ましくは、突起以外の表面領域がなるべく含まれないよう、突起表面の一部のみが切り取られるように設定するのがよい。回収半径を不要に大きく設定しすぎると、当該回収半径内に複数の突起が含まれてしまうこともあり得、曲率算出の精度低下につながる懸念を生じうる。
【0033】
回収半径ρは例えば固定的に設定することも可能であるが、例えば回収半径ρを段階的に縮小しつつ設定し、突起探索処理を繰り返し実施することも可能である。これにより、回収半径の球内に収まる表面領域に占める特定の突起領域の面積比率が段階的に増大するので、当該突起の曲率決定精度をより向上させることができる。また、部品モデルの表面領域に対し、最終的に設定する回収半径ρの仮想球に包含される領域面積よりも大きい予備探索領域(これは、予備的な回収半径の仮想球が切り取る領域としてもよいが、例えば点群空間を等価な直方体で事前に分割して得られるもの等であってもよい)を設定し、その予備探索領域内の点群を用いた平均的曲率rtを演算し、その平均的曲率rtよりも小さい回収半径ρ(例えばrt/2を新たに設定し、当該回収半径ρにて予備探索領域内の突起を改めて探索し、最終的な曲率rfを算出することもできる。予備探索領域の面積は、例えば部品モデルの表面領域の全面積の3%以上7%以下(例えば5%)程度に定めることができる。
【0034】
続いてS203に進み、点群中にて、突起点群探索のための基準点P0を任意に選択する。そして、S204で該基準点P0を探索参照点として、その最近傍点を探索する処理を行なう。上記基準点P0を起点として該基準点P0から回収半径ρ内に存在する最近傍点列が順次探索されるとともに、その探索された4点以上の所定数の最近傍点列が、突起探索のために選択されるサブ点群とされる。
【0035】
本実施形態では、点群の座標空間を三次元Kd木により分割し、基準点P0が所属する葉セルを探索起点セルとして、隣接する葉セルをKd木構造に沿って順次探索することにより最近傍点列を決定する。
図12には三次元Kd木の概念を示す。図中、灰色の丸印が点群を示し、個々の点はxyz直交座標系にて座標記述されている(白の丸印は、ルートセル及び葉セルの頂点を示すものであり、探索対象の点群と区別している)。回収半径ρの球内に含まれる全点の各軸方向の座標値の最大値、最小値及びメジアン(中央値)を求める。Kd木のルートセルは、x軸座標の最大値及び最小値が規定する2つの当該x軸との直交平面、y軸座標の最大値及び最小値が規定する2つの当該y軸との直交平面、z軸座標の最大値及び最小値が規定する2つの当該z軸との直交平面、の6つの平面で区画される直方体空間である。
【0036】
Kd木のルートセルは、セル内点群の各軸方向の座標の分散値の序列と、分割セル内における座標のメジアンに従い、第一階層分割面(
図12ではx軸と直交)、第二階層分割面(
図12ではy軸と直交)及び第三階層分割面(
図12ではz軸と直交)により8つの葉セルに分割されている。以下、Kd木の空間分割シーケンスを
図13及び
図14により説明する。
図13は、ルートセルと該ルートセル内の点群(a~g)の分布状況を、xy平面への投影にて示すものである(xy平面と直交する面は線分にて表示される)。これら点群のx座標、y座標及びz座標の分散をそれぞれ計算し、そのいずれが最も小さいかを特定する。例えば、x座標の分散が最も小さかったとすると、
図14に示すように、そのx座標のメジアンX1mを与える点fを通り、x軸と直交する平面を第1階層分割面ξ1として定める。第1階層分割面ξ1は、Kd木による空間分割階層構造の最上位の階層を与えるものである。
【0037】
次に、
図15に示すように、第1階層分割面ξ1によりルートセルが分割されて生ずる2つの中位セルのそれぞれについて、含まれる各点のy座標値及z座標値(x座標以外の残余の座標値)のいずれの分散が小さいかを調べる。例えば、それがy座標であった場合は、各下位セル内の点群について、y座標値のメジアンY1m及びY2mを与える点g及び点eを通り、y軸と直交する2つの平面を第2階層分割面η1,η2として定める。第2階層分割面η1,η2はKd木による空間分割階層構造の中位の階層を与えるものである。
【0038】
そして、
図16に示すように、第2階層分割面η1,η2により2つの中位セルのが分割されて生ずる4つの下位セルついて、含まれる点群のz座標値のメジアンZ1m、Z2m、Z3m、Z4mを与える点c、d、a、bをそれぞれ通り、z軸と直交する4つの平面を第3階層分割面ζ1,ζ2,ζ3,ζ4として定める。第3階層分割面ζ1,ζ2,ζ3,ζ4はKd木による空間分割階層構造の最下位の階層を与えるものであり、これにより最下位セルである8つの葉セルL11~L42が規定される。
【0039】
このKd木を利用した最近傍点探索処理の概要を
図17及び
図18により説明する。
まず、
図17において、基準点P0が葉セルL11~L42のうちどれに所属しているかを調べる。例えば、P0が葉セルL21(第3階層分割面ζ2により紙面直交方向に分割される2つの葉セルL21, L22のうち、前面側に位置するものである)に属していた場合、P0を探索参照点として、L21内のP0の最短点Ptまでの距離r0と、ζ2までの距離rζ2とを比較する。ここでは、r0>ζ2となっており、ζ2に関する隣接葉セルL22内に真の最近傍点が存在する可能性がある。よって、葉セルL22内にP0の最短点(非図示)までの距離riとr0とを比較する。r0<riであれば、葉セルL22内にP0の真の最近傍点は存在しないので、葉セルL22を探索対象から除外する(図中破線で表示:他方、r0>riの場合は探索参照点をL22内の最短点と置き換える)。
【0040】
次に、1つ上の階層に移り、第2階層分割面η1までの距離rη1とr0とを比較する。
図17ではr0>rη1となっているので、η1に関して隣接する葉セルL11, L12内にP0の真の最近傍点が存在する可能性がある。そこで、葉セルL21(及びL22)の隣接葉セルL11, L12内の最短点P11までの距離r1とr0とを比較する。r0<r1ならば、葉セルL11, L12は探索対象から除外される(図中破線で表示:他方、r0>r1の場合は探索参照点をL11, L12内の最短点と置き換える)。
【0041】
続いてさらに1つ上の階層に移り、第1階層分割面ξ1までの距離rξ1とr0とを比較する。もし、rξ1>r0ならば、ξ1に関して隣接する中位セル(葉セルL31+L32+L41+L42)には真の最近傍点は存在しないから、ここで探索を打ち切り、P11をP0の最近傍点として確定させる。他方、rξ1<r0ならば上記中位セルに真の最近傍点が存在する可能性があるので、該中位セル内に階層を下げ、
図18に示すように、η2に関する下位セル(L31+L32又はL41+L42)につき、P0からの距離がr0未満となる点を順次探索する。
【0042】
図18では、葉セルL41内の最短点P41までの距離r4について、r4<r0となっており、探索参照点はP0からP41に置き換えられている。他方、η2に関して反対側の下位セル(L31+L32)内の最短点P31までの距離r3については、r4<r3なので、L31及びL32は探索から除外されている。最終的には、葉セルP42の探索結果も参照して最短点P41が最終的な最近傍点として確定されている。このように、最近傍点探索を繰り返しながら点群を探索する手法により、
図17及び
図18に破線で示すように、探索参照点との距離比較によって最近傍点の存在が幾何学的に否定される葉セルを積極的に探索から除外することができ、三次元CADデータで記述される部品モデルの表面にのみ局在化したような点群の場合は、これを極めて効率的に探索・回収できることがわかる。
【0043】
図11に戻り、S204における最近傍点探索処理により最近傍点列を順次回収するとともに、S205では、回収された点の数が曲率決定に必要な所定数に達したかどうかを確認する。未達であればS206に進み、探索された最近傍点を回収するとともに、該近傍点により探索参照点を更新する。そして、S204に戻り、最近傍点探索処理を継続する。一方、上記所定数に到達していればS207に進み、回収された最近傍点列を突起点群探索のためのサブ点群として定め、各点の座標値から曲率kを演算する。なお、曲率決定に必要な回収点の数は球面を一義的に決定できる4点ないしそれ以上である必要があり、点の数をそれよりも多くすることで曲率計算精度をより向上できる。最終的な回収半径ρの仮想球内に入る点の数は、例えば75点以上200点以下(望ましくは85点を超え200点以下、より望ましくは100点以上200点以下)である。他方、前段階として、前述の予備探索領域を設定し、その平均的な曲率rtの算出を行なう場合は、その予備探索領域内での回収点の数は、ある程度大まかな曲率演算のみでよい点に鑑み、例えば75点以上85点以下程度に設定するのがよい。
【0044】
図19に示すように、サブ点群SPGは、基準点P0に対する近傍点集合としてとらえることができる。曲率k(逆数が曲率半径r)は、サブ点群をなす複数の点の座標値の分散・共分散行列の3つの固有値λ0、λ1、λ2(ただし、λ0は最小固有値)に基づいて、
k=λ0/(λ0+λ1+λ2)・・・(15)
と算出することができる。上記分散・共分散行列Sは、数学的には、
【0045】
【数1】
と表すことができる。piはn個の点群のi番目のものの座標を与える行ベクトル、pavはn個の点群の平均座標(重心座標)を与える行ベクトルである。(pi-pav)
Tは(pi-pav)を転置して得られる列ベクトルであるから両者の積は行列となり、そのn個の点群についての平均を与える行列Sは点群座標の分散・共分散行列となることが理解されよう。
【0046】
上記近傍点集合(サブ点群)の座標値の分散・共分散行列の最小固有値λ0に対する固有ベクトルは、基準点P0周りの近傍点集合が統計的に張る平面(いわゆる、最小二乗近似平面)の法線ベクトルを与え、上記基準点近傍の局所的な近似曲率が、該分散・共分散行列の3つの固有値λ0、λ1、λ2を用いて上記(1)式により与えられることが、非特許文献1により知られている。点群を用いて突起表面の曲率解析を行なう場合、突起点群をなすサブ点群は、含まれる点の数が多いほど曲率算出の精度は向上するといえる。個々の突起の曲率の高精度な算出を目的としてサブ点群の点の数を増加させたい場合は、統計学的な上記手法を用いることにより、近似曲率の算出を点群座標の分散共分散行列の主成分分析に帰着でき、演算アルゴリズムの大幅な簡略化を図ることができる
【0047】
S208では、サブ点群が突起に由来した突起点群であるか否かを判定する処理を行なう。具体的には、計算された曲率kが、あらかじめ定められた下限値kinf を超えていなければS210に進み、サブ点群を平坦領域の点群とみなし、棄却する。
図4の点群データ159において、探索フラグ159cは「1」(探索済み)とし、突起フラグは「0」(突起点群を構成しない)とする。
【0048】
一方、S208で曲率kが下限値kinf を超えていればサブ点群は突起点群であると判定し(突起特定条件)、S209に進んで、
図21に示す曲率半径学習エンジン158dを用いて曲率半径rを算出する。具体的には、表面の曲率半径が既知の学習用突起を含む参照部品モデルを用意し、その参照部品モデルに上記本発明のシステム1による曲率解析を実施する。そして、参照部品モデル中の学習用突起について算出された曲率kの値と、当該曲率kの算出に用いたサブ点群の回収点の数Npと、本実施形態ではさらに、点群探索時に設定した回収半径ρとを含む入力情報と、学習用突起の(既知の)曲率半径rAとからなる教師データを複数組用意する。
【0049】
曲率半径学習エンジン158dには、上記入力情報と曲率半径値とを、予め定められた学習パラメータを媒介として結ぶ曲率半径の算出式が組み込まれている。学習パラメータの値は、教師データによる学習を繰り返すことにより、算出される曲率半径値が真値に近づくように事前に適正化されている。曲率半径の算出式自体は、曲率半径の算出値が教師データに可及的に近づくよう実験的に決定されるものであり、その過程には周知の重回帰分析の手法を採用することができる。
【0050】
図11に戻り、S211では、曲率半径rが計算された突起点群に対応する図形IDをネイティブファイル156(
図2)中にて検索し、取得する。また、S212では、突起存在形態解析プログラム158e(
図1)による解析を行なう。
図22及び
図23に、該解析の内容を概念的に示している。すなわち、車両の外装部品等の突起については、人体頭部などとの衝突を想定して曲率半径の下限値が、指定された直径の球との接触が生じうる突起に限定して規定されている場合がある。この場合、
図22に示すように、突起BMPの点群データ(図中、丸印にて示している)に対して、予め定められた直径(前述の保安基準にある100mm以下の値:例えば、50mm)の仮想球SBを突起点群に対して接触させるシミュレーション演算を行なう。該シミュレーションは、破線で示す如く仮想球SBの位置を種々に変更しつつ(必要により仮想球SBの直径を変更数することも可能である)、突起点群との間に接触点SPが生じるか否か、生じるとすれば何個の突起との間で接触が生ずるか、を判別する形で実施される。
【0051】
図22及
図23では、仮想球SBの直接接触が生ずる接触型突起点群と、周囲に存在する隣接突起点群との干渉により仮想球SBの直接接触が不能となる非接触型突起点群とが識別されている。
図22のように、周囲に別の突起が存在しない孤立した突起の場合は、仮想球SBとの接触が必ずどこかの1点で生ずるので、これを構成する点群は接触型突起点群として識別される。一方、
図23の(C)突起BMP3のように、周囲に別の突起BMP1,BMP2が存在し、先にこれらとの干渉が生じてしまうために、仮想球SBが接触不能となっているものは、これを構成する点群が非接触型突起点群として識別される。非接触型突起点群が規定する突起BMP3は、球体SBを外部から接近させたとき隣接突起BMP1ないしBMP2と先に干渉する結果、当該球SBとの接触を免れる突起であり、曲率半径が仮に基準値よりも小さくても、設計変更等の対象からは除外しうる場合がある。
【0052】
また、
図22の突起BMPを構成する点群は、仮想球SBに対し1つの突起点群が単独でのみ接触可能となる独立接触型突起点群となっている。一方、
図23の(A)及び(B)に示す突起BMP2,BMP3を構成する点群は、仮想球SBに対し複数組(接触点はそれぞれSP1及びSP2)が同時に接触可能な重複接触型突起点群となっている。重複接触型突起点群の識別は、例えば、着目している突起BMP2へ仮想球SBを一旦単独で接触させ、該接触状態を維持しつつ仮想球SBを突起BMP2上で種々の方向に移動させて、他の突起BMP3との接触点を生じるか否かを確認することにより行う。また、重複接触型突起点群と判別された複数の突起点群には、重複接触グループID160d(
図5)を付与する。
【0053】
以上の解析が終了すると、S213に進み、各突起点群には突起ID160aが付与され、
図5に示す突起解析データ160において、図形ID156a、突起種別160c及び重複接触グループID160dが互いに対応付けられた形で記憶される。さらに、S214では、
図4の点群データ159において、探索フラグ159cが「1」(探索済み)に、突起フラグが「1」(突起点群を構成する)にそれぞれセットされる。
【0054】
S215では、
図4の点群データ159において上記の探索フラグ159cの値を参照することにより、未探索の点群が存在するかどうかを確認する。存在すればS203に戻り、以下の処理を繰り返す一方、存在しなければ曲率解析プログラム全体の処理を終了する。
【0055】
上記のごとく、突起解析によりその曲率半径が特定されると、例えば前述の保安基準を充足させるための、下記のような踏み込んだ対応を実施できる。
・「バンパの下端より下方にある部分であって、直径100mm の球体が静的に接触することのできる部分(中略)の角部(突起)が半径5 mm未満」となっていた場合:
→角部を削除するか、半径5 mm以上となるように設計変更を行なう。
・「エア・スポイラ(中略)において、直径100mm の球体が静的に接触することのできる部分に半径2.5mm未満の角部(突起)」が発見された場合:
→角部を削除するか、半径2.5mm以上となるように設計変更を行なう。
・「 乗車定員が10人未満の専ら乗用の用に供する自動車(中略)であって、車体等その他基部から突出量 が5mm 以上であり、かつ先端の曲率半径が 2.5mm 未満である突起物」が生じていた場合:
→突起を削除するか、半径2.5mm以上となるように設計変更を行なう。
【0056】
また、
図4の点群データ159と
図5の突起解析データ160を参照することにより、サブ点群ごとの曲率半径の値を視覚的にマッピングし、
図1のモニタ59やプリンタ61から出力することができる。
図20はその一例を示すものであり、解析対象部品モデルPMにおいて、点群を示す画素に対し曲率半径の値に応じて濃度ないし色彩を変化させ、カラービットマップないしグレースケールビットマップの形で出力している。また、点群を示す画素の濃度ないし色彩は、突起種別に応じて変更することも可能である。
図24は、半径50mmの仮想球SBを用いた時の独立接触型突起点群SPAを、残余の点群に対して識別可能となるように出力した例であり、図中黒い領域が独立接触型突起点群SPAを示している。また、
図25は、半径50mmの仮想球SBを用いた時の重複接触型突起点群DSPAを、残余の点群に対して識別可能となるように出力した例であり、図中白い領域が重複接触型突起点群DSPAを示している。
【0057】
以上、本発明の実施の形態について説明したが、あくまで例示であって、本発明はこれに限定されるものではない。例えば、点群生成用の三次元CADデータは、STLファイルに限定されるものではなく、三角形以外のポリゴンを用いて記述されたもの等を採用することが可能である。また、STLデータを使用する場合も、解析対象部品モデル表面の三角形による分割数が十分大きくできる場合は、三角形の頂点や重心を点群に流用してもよい。また、三角形の大きさに関係なく、三角形1個当たりの生成点の数を同じに設定してもよい。
【0058】
また、三角形内に複数の点を分散生成させる場合は、上記実施形態のような乱数を用いるのではなく、三角形の2辺にそれぞれ平行な単位ベクトルを設定し、その単位ベクトルが張る座標メッシュ点を点群として採用してもよい。突起点群の探索に関しては、点群空間全体を立方体等の単位セルであらかじめ分割し、各単位セル内の点群の有無のみを調べる予備走査処理を実施したのち、点群が存在すると判定されたセルについて該セルに含まれる点群をサブ点群として選択するようにしてもよい。
【0059】
また、本発明の適用対象は対人的接触を考慮した安全対策が必要となる機器部品であればよく、上記例示した自動車部品に限らず、例えば遊具、玩具、オートバイ、自転車、航空機、船舶、鉄道車両などの部品などについても同様に適用が可能である。
【0060】
(実施の形態2)
上記実施の形態1における突起解析手法では、探索された突起の形状とは無関係に、生成した点群の座標値を用いて突起の曲率を演算し、さらに機械学習的な手法によりこれを曲率半径に変換していた。しかし、該手法は、最終的な曲率半径値が得られるまでに要する演算量がやや多く、対象部品表面の全点群を対象に適用した場合、全ての突起の曲率半径の特定に相当の時間を要する問題がある。
【0061】
例えば、
図26の突起BP1の先端SPは、極大点で接平面が一義的に定まる滑らかな表面端形状を有しているのに対し(以下、第一種突起という)、突起BP2,BP3については先端SP’が先鋭であり、極大点での接平面が不定となる(以下、第二種突起という)。これは、第1種突起については、突起先端面のあらゆる点において数学的に解析可能となっているのに対し、第2種突起は先端点が数学的に解析不能な特異点をとなっていることを意味する。STLファイル上では、部品の真の表面形状が三角形STLの集合により可及的に高精度にて近似され、曲率半径が極度に小さくなる第2種突起の先端面形状についても、三角形STLの集合により良好に表現されうる。
【0062】
STLの集合により、第1種突起も第2種突起も区別なく表現しうる状況に鑑みれば、三角形STLの面上に多数の点群を生成し、その点群の座標値から突起先端面の曲率を演算する本発明の実施の形態1の手法により、第2種突起のように特異点を含む先端面形状でも曲率を問題なく演算できる利点がある。他方、特異点を含まない第1種突起については、突起表面の全ての点が解析的であることから、近似的な曲面を数学的に表現することができれば、曲面に対する突起先端(曲面の極大点)付近の曲率を、より単純な数学的解析手法により演算できると考えられる。
【0063】
本実施形態では、三次元CAD用突起解析システムを次のように構成する。すなわち、サブ点群に対する回帰分析を行なうことにより、サブ点群に適合する3次元回帰曲面の関数式を決定する回帰曲面決定部と、回帰曲面に対するサブ点群の距離的な偏差を外れ値として演算する外れ値演算部と設ける。曲率情報生成部は、外れ値が予め定められた閾値を超える場合に、該外れ値が閾値を超えるサブ点を含む4以上の点の座標値に基づき、当該サブ点群に対応する領域の曲率情報を生成する一方、外れ値が閾値未満の場合には三次元回帰曲面の関数式に対する微分解析により曲率情報を生成するものとする。
【0064】
上記の構成では、三次元CADデータ(STL等)から生成したサブ点群に対し、数学的な回帰分析を適用し、3次元回帰曲面の関数式を決定する。そして、回帰曲面に対するサブ点群の距離的な偏差を外れ値として演算し、外れ値が予め定められた閾値を超える点が存在する場合は、その点を特異点とみなし(第2種突起の場合に相当)、外れ値が閾値を超えるサブ点を含む4以上の点の座標値に基づき、当該サブ点群に対応する領域の曲率情報を生成する(上記、実施の形態1の手法)。他方、外れ値が閾値未満の場合は特異点が存在せず(第1種突起の場合に相当)、三次元回帰曲面の関数式に対する微分解析により曲率情報を生成する。つまり、点群生成後に第1種突起と第2種突起とを区別し、第1種突起については上記のような数学的解析手法により曲率を演算する手法を併用すれば、部品全体の突起解析に要する演算量及び演算時間を大幅に短縮することができる。
【0065】
第2種突起においては、先鋭化した突起先端形状に由来して、該突起先端における数学的な接平面が定義不能となる特異点をサブ点群が含む関係上、該特異点にて外れ値が閾値を超える形となる。この事情を
図27及び
図28を用いて説明する。
図27は第1種突起の先端付近を模式的に示すものであり、CADネイティブ曲面形状(ネイティブファイルのデータがトレースする曲面形状)は突起先端も含めて滑らかである。一方、これに対応するSTLファイルに含まれる各三角形STLは平面であり、CADネイティブ曲面とは既定の誤差範囲(例えば0.05mm以内)内に収まる形でCADネイティブ曲面を近似している。一方、図中の丸印は三角形STL上に生成されたサブ点群であり、このサブ点群に対して回帰分析処理実施することで回帰曲面の数式を決定することができる(
図28では二次曲面(後述))。そして、回帰曲面の数式が決定できれば、サブ点群と回帰曲面との間の距離的な偏差を一義的に計算することができる。
【0066】
そして、サブ点群に含まれる点ごとに計算される該外れ値(距離的な偏差)のうち、最大のものを最大外れ値として定義できる。最大外れ値が所定の閾値(例えば、CADネイティブ曲面と上記三角形STLとの許容誤差)以内に収まっていれば、サブ点群が表す突起を第1種突起とみなし、回帰曲面の数式の微分演算により曲率情報生成部が突起の曲率を演算するように構成することで、曲率演算の負荷を大幅に減ずることができる。
【0067】
一方、
図28は第2種突起の先端付近を模式的に示すものであり、CADネイティブ曲面形状は突起先端が先鋭な特異点となっている。この場合、STLファイルに含まれる各三角形STLはCADネイティブ曲面を良好に近似するが、サブ点群全体に対して
図27と同様の手法により曲面回帰を行なうと、特異点付近のサブ点群には回帰曲面からの距離的な偏差が大きくなり、上記の閾値を上回る状況が生ずる。この場合は、曲率情報生成部は、該特異点を含むサブ点群の座標値に基づき、当該サブ点群に対応する領域の曲率情報を生成する。つまり、CADネイティブ曲面との距離偏差が大きくなる回帰曲面ではなく、CADネイティブ曲面をより高精度に近似するサブ点群により曲率情報を生成することで、第2種突起についても曲率(ひいては曲率半径)を高精度に算出することが可能となる。
【0068】
サブ点群選択部は、解析対象部品モデルの表面に分散する点群中の1つの点を基準点として定めるとともに、当該基準点から一定の回収半径内に存在する少なくとも6つの点をサブ点群として定めるように構成できる。回帰曲面決定部は上記の三次元回帰曲面を二次曲面として決定するものとされる。三次元回帰曲面は例えば球面や回転楕円体などを表す関数としてもよいが、仮想球の回収半径を適当な大きさに定めてCADネイティブ曲面の全体を適度に細分化することで、各仮想球内のCADネイティブ曲面のセグメントを、三次元曲面として最も単純な二次曲面により近似しても、誤差を十分小さくすることができる。よって、回帰曲面を記述する数式の単純化を図ることができ、曲率演算の負荷をさらに小さくすることができる。
【0069】
サブ点群に対する回帰曲面のフィッティング精度を向上するには、サブ点群選択部は、回収半径内に存在する7以上の点をサブ点群として定めるものとし、回帰曲面決定部はサブ点群を用いた最小二乗回帰により二次曲面を決定するように構成するとよい。この場合、回帰曲面決定部は、回収半径内のサブ点群に対し、それらサブ点群をなす点の座標値の分散・共分散行列の3つの固有値のうち、最小の固有値をλ0として、該λ0に対応する固有ベクトルを突起極大点における法線方向を示すz軸と、該z軸と各々直交するx軸及びy軸とを定め、二次曲面をそれらx-y-z直交空間座標系(各点ごとに定められるローカル座標系)にて記述するように構成することが望ましい。
【0070】
上記のようなローカル座標系を設定すれば、二次曲面の方程式は、下記数2のように、6つの係数a1~a6を含む形で記述することができ、これら係数をたとえば最小2乗回帰により決定すればよい。
【0071】
【0072】
これにより、外れ値演算部は、サブ点群のx座標値及びy座標値を二次曲面を示す関数式z(x,y)に代入することにより、二次曲面上の対応z軸座標値z’を演算し、サブ点群をなす各点のz座標をzsとして、外れ値σを
σ=|zs-z’|
として演算するように構成できる。これにより、距離の外れ値σをz軸上の座標差分により簡単に演算できる。
【0073】
そして、曲率情報生成部は、外れ値が閾値を超える場合には、実施の形態1の曲率半径機械学習部により曲率半径値を算出・出力する一方、外れ値が閾値未満の場合には、二次曲面を示す関数式を用いて基準点での値として演算されたガウス曲率Kと平均曲率Hとの値に基づき、曲率半径値を算出・出力するように構成できる。前述のローカル座標系(x-y-z直交座標系)にて記述される曲面z(x,y)の任意の点におけるガウス曲率Kと平均曲率Hは、それぞれ下記数3及び数4により記述されることが知られている。
【0074】
【0075】
【0076】
上記数3及び数4に含まれるz(x,y)の偏微分関数は、回帰曲面z(x,y)が数2のような二次曲面として記述されている場合、偏微分操作を陽に実行することができ、下記数5のように非常に単純な数式として記述できる。
【0077】
【0078】
数5を数4に代入することで、二次曲面z=z(x,y)上の各点(x,y,z)におけるガウス曲率Kと平均曲率Hとは、各点の座標値と前記した6つの係数a1~a6をのみを用いて単純に演算できる。そして、各点における曲率半径Rは周知の下記数6により演算することができる。
【0079】
【0080】
外れ値σが閾値未満の場合、
図27に示すように、最小2乗近似により得られる二次曲面は、全ての点にわたってCADネイティブ曲面との偏差が小さくなり、CADネイティブ曲面に設計寸法が正確に反映されている限り、上記数6により算出される曲率半径の寸法的な信頼性も十分なレベルにて得ることができる。なお、点群中のどの点を基準点として定めるかについては、例えばSTLデータを構成する各三角形の代表点(例えば三角形の幾何学的重心に最も近い点)など、点群の一部を選択的に基準点として定めることも可能であるし、点群内の全点を漏れなく基準点として定めることも可能である。後者の場合、点群内の全点を渡るように順次基準点を変更しつつ仮想球によりサブ点群を回収し、そのサブ点群に対して曲面回帰を行なうことにより、全点について固有の回帰曲面(点ごとのローカル座標系にて数式記述される)をもれなく定めることができる。各固有曲面は、隣接する基準点同士でサブ点群が一部共通するものとなり、互いに重なり合う形で設定されるとともに、個々の固有曲面の集合は、外れ点の近傍を除いてCADネイティブ曲面を略再現するものとなる。よって、外れ点以外の点位置での曲率(及び曲率半径)は、各点を基準点とする回帰曲面の該基準点における曲率(及び曲率半径)として数5及び数6により個別にかつ高精度に算出することができる。
【0081】
以上の機能は、
図1の三次元CAD用突起解析システム1の電気的構成を
図29のように変形することにより実現できる。突起解析ソフトウェア158には曲面回帰プログラム158fが追加され、また、決定された回帰曲面に対する各点の距離偏差である外れ値を記憶するための外れ値情報記憶部161も合わせて設けられている。残余の構成は
図1と同様であり、詳細な説明は略する。
【0082】
また、
図11の曲率解析プログラム158cの処理の流れは、例えば
図30のように変形される。S201~S205に至る処理は
図11と全く同様である。S250では、回収された点群に対し二次曲面回帰処理が曲面回帰プログラム158fにより実行される。
図31は、二次曲面回帰処理の詳細を示すものであり、S2501にて、回収されたN個の点群から曲面回帰用の点を初期値Npiにてサンプリングする(この段階で、回帰対象点数NはNpiである)。S2502では、前述の最小固有値λ0に対する固有ベクトルをz軸として、サンプリング点に対し、最小2乗法により2次曲面回帰を実行する(得られる2次曲面の関数式をz(x,y)とする)。
【0083】
次に、S2503では、サンプリング点の座標を(xs,ys、zs)とし、各サンプリング点について、外れ値σを。前述のごとくσ=|zs-z(x,y)|にて演算する。S2504では、得られた2次曲面に対するサンプリング点のフィッティング状況を、外れ値σの値から確認する。具体的には、σ > σ tor(σ torは前述の既定の誤差範囲:例えば0.05mm)となる点が規定数Nc以上になっているかどうかを調べ、規定数Nc以上であればS2505にてサンプリング点をリセットする。そして、S2501に戻ってサンプリング点を選びなおし、S2504までの処理を繰り返す。一方、S2504でσ > σ torとなる点が規定数Nc未満であればフィッティング結果は良好であると判断し、S2506に進んで、回収された点から上記のサンプリング点を除いた残余点の1つを選択し、この時点で得られている2次曲面の関数式z(x,y)を用いて外れ値σを同様に演算する。S2507にてσ > σ torであればS2508に進み、その残余点をサンプリング点に組み入れて再回帰処理を行ない、二次曲面の関数z(x,y)を更新する。また、S2507にてσ ≦ σ torであればS2508をスキップする。
【0084】
S2509では次の残余点があるかどうかを調べ、次の残余点があればS2510に進んでサンプリング点に該残余点を加え、S2506に戻ってS2509までの処理を繰り返す。一方、S2509で次の残余点が残っていなければS2511に進み、最終的なz(x,y)を用いて全ての回収点の外れ値σを演算し、外れ値情報記憶部161に記憶する。その後、
図30の処理に戻る。
【0085】
S251では、外れ値情報記憶部161に記憶されている外れ値のうち、最大のものを最大外れ値σmaxとして演算する。S252では、該σmax の値を前述の σ tor(閾値)と比較する。σmax>σ torであれば突起は第2種突起であると判断し、S207に進む。以下の処理は
図11と全く同じなので、詳細な説明は略する。
【0086】
一方、S252でσmax<σ torの場合はS253に進み、前述の数2~
図5を用いて、ガウス曲率Kと平均曲率Hを演算する。次いでS208’に進み、ガウス曲率Kと平均曲率Hを各々の下限値Kinf又はHinfと比較する。H<Hinf又はK<Kinfならば、
図11と同様にS210に進み、該点を平坦領域の点(つまり、探索対象の突起でない)とみなして棄却する。一方、S208’でH>HinfかつK>Kinfならば探索対象の突起とみなし、S209’で前述の数6を用いて曲率半径Rを演算する。次いで、S211に進み、以下、
図11と同様の処理となる。
【0087】
以上、本発明の実施の形態を詳細に説明したが、本発明の作用及び効果の詳細は次のとおりまとめられる。上記本発明においては、解析対象部品モデルの突起解析を行うに際し、部品モデルの表面形状を図形データとして記述する三次元CADデータを、該解析対象部品モデルの表面に沿って分散する点群に一旦変換し、その点群から各々4点(球面の特定に必要な最低点の数である)以上を含む突起探索用のサブ点群を選択する。そして、そのサブ点群に含まれる複数の点の座標値に基づき、当該サブ点群に対応する解析対象部品モデルの表面領域の曲率情報を生成し、該曲率情報が予め定められた突起特定条件を充足する場合に、対応するサブ点群を突起に由来する突起点群として特定する。図形データを部品モデル表面上に分散する点群のデータに一旦変換することで、CAD空間内での突起探索処理は、突起探索用のサブ点群を単位とした点群座標値による曲率評価と、突起特定条件充足の判定処理に置き換えることができる。その結果、解析対象部品モデルの三次元CADデータ上に存在する突起を確実かつ簡単に特定できるようになる。さらに、突起特定に使用されるサブ点群が、球面を直接特定可能な4点以上に確保されるため、各突起の曲率情報を高精度にて生成できる。
【0088】
三次元CADデータは解析対象部品モデルの表面の立体曲面形状を複数の三角形の集合にて近似的に記述するSTLデータとすることができる。この場合、点群変換部は、STLデータを構成する三角形の頂点座標に基づいて点群の座標値を生成する点群座標値生成部を有するものとして構成できる。三次元CADシステムは、CAD上での作図入力によりパラメトリックな図形データの集合として作成されるネイティブファイルを、CAM(Computer Aided Manufacturing)、光造形、あるいは3Dプリンタ出力などに直接出力が可能なSTLデータファイルに変換する機能を有しているのが一般的である。そして、三次元CADデータとしてこのSTLデータが使用可能な場合、STLファイルに含まれる三角形の頂点座標は、部品モデル表面の一部を近似する平面を一義的に与えるものとなる。よって、曲面をなす部品モデル表面への点群の生成処理を、上記三角形の頂点座標の活用により、三角形を構成する平面領域上での点群生成処理に置き換えることができ、点群生成処理の大幅な簡略化と処理負荷軽減に貢献する。
【0089】
この場合、点群座標値生成部は、個々の三角形の頂点座標に基づき各三角形の内部に複数の点が分散生成するように、それら点群の座標値を決定するものとして構成できる。これにより、部品モデルの表面への点群の生成密度を高めることができ、突起形状の特定精度ひいては曲率値(ないし曲率半径値)の算出精度を高めることができる。
【0090】
また、STLデータは通常、立体曲面形状において曲率の大きい領域ほどサイズの小さい三角形群で被覆されるように構成される。この場合、点群座標値生成部は、三角形のサイズが大きいほど、1つの三角形内に生成される点の数が多くなるように点群の座標値を決定するように構成できる。これにより、STLデータにおける部品モデル表面の三角形領域のサイズが一定でない場合も、部品モデル表面に点群を均一な密度で生成させることができ、突起形状の特定精度ひいては曲率値(ないし曲率半径値)の算出精度をさらに高めることができる。
【0091】
また、点群座標値生成部は、各三角形内に点群がランダムに分散生成されるよう、乱数を用いて点群の座標値を決定するように構成できる。これにより、三角形内に点群を一様に発生させることができ、突起形状の特定精度ひいては曲率値(ないし曲率半径値)の算出精度をさらに高めることができる。この場合、点群座標値生成部は、結合係数κ1、κ2、κ3(ただし、κ1+κ2+κ3=1)を用いて三角形内の点の位置ベクトルPを、三角形の3つの頂点の位置ベクトルV1,V2,V3の線形結合により、
P≡κ1・V1+κ2・V2+κ3・V3
にて記述するとともに、結合係数κ1、κ2、κ3の2つを、各々独立した一様乱数ε1及びε2を用いて決定するように構成できる。三角形の3つの頂点の座標値(位置ベクトルの成分)の線形結合を用いた簡易な計算アルゴリズムに、点群をランダムに発生させるための乱数を簡便に組み込むことができ、点群発生の処理負荷の軽減に貢献する。
【0092】
サブ点群選択部は、サブ点群選択部は、解析対象部品モデルの表面に分散する点群中の1つの点を基準点として定めるとともに、当該基準点から一定の回収半径内に存在する点をサブ点群として定めるものとすることができる。部品モデル上の突起の大きさ(あるいは、曲率半径)は、前述の保安基準に定められているごとく、基準外と認識されるための上限値が存在する。上記構成によれば、1つの突起を探索するのに必要十分な空間を上記回収半径により規定することができ、探索の処理負荷を軽減するのに貢献する。
【0093】
この場合、サブ点群選択部は、回収半径内に存在する基準点を起点とした複数の点からなる最近傍点列を順次探索する最近傍点探索部を備えるものとして構成できる。CAD空間は三次元であるが、生成した点群が存在するのは、部品モデル表面付近の限られた空間領域に過ぎない。しかし、部品モデル表面のどこに突起が存在しているのかが不明な場合、空間を3方向に機械的に走査して点群を探索する方法は、ほとんどの走査点が点群の存在しない走査点となるため、処理上の無駄が甚だしくなる。しかし、上記のように最近傍点列として点群を順次探索する方法を採用すれば、点群が部品モデルの表面に局在化していることが前提になっているために、探索空間もまた部品モデルの表面に必然的に限定され、突起特定のためのサブ点群を効率的に抽出することができる。
【0094】
この場合、最近傍点探索部は、点群の座標空間を三次元Kd木により分割するとともに、基準点が所属する葉セルを探索起点セルとして、隣接する葉セルをKd木構造に沿って順次探索することにより最近傍点列を決定するものとして構成できる。Kd木を採用すると、探索のための葉セルへの分割が、空間を張る3つの軸方向において点群座標成分の分散が最小化される軸の判定と、当該軸に対応する座標値のメジアン(中央値)特定により簡単に決定でき、かつ、木構造に従う順序にて各葉セルを順次探索することで最近傍点を容易に特定でき、探索の処理負荷をさらに軽減することができる。
【0095】
曲率情報生成部は、サブ点群をなす複数の点の座標値の分散・共分散行列の3つの固有値λ0、λ1、λ2に基づいて、曲率kを、
k=λ0/(λ0+λ1+λ2)・・・(1)
と算出するものとして構成できる。
【0096】
曲率情報生成部は、曲率を曲率半径値に変換する曲率半径値変換部を備えるものとして構成できる。突起の曲率半径値具体的に得られることで、CADデータが記述する部品モデル上の突起が前述の保安基準等に定められた曲率半径条件を充足しているか否か等の判定をより直接的に実施できる。
【0097】
曲率半径は数学的には曲率の逆数として定義され、CADデータから生成される点群の座標が、部品モデルの実寸を記述する空間座標としての信頼性を有していれば、点群座標から得られる曲率の逆数を演算することで曲率半径値を得ることができる。他方、点群座標から得られる突起曲率が実際の部品モデル上での突起曲率の絶対値から多少乖離していても、同じ部品モデル上の異なる突起間での曲率の相対的な大小関係については一定の信頼度が担保されている、と考えられる場合は、例えば次のような構成を採用することができる。
【0098】
すなわち、該構成において曲率半径値変換部は、表面の曲率半径が既知の学習用突起を含む参照部品モデルの学習用突起について曲率情報生成部により算出された曲率の値と、当該曲率の算出に用いたサブ点群の点の数とを含む入力情報と、学習用突起の曲率半径値を含む出力情報とからなる教師データを複数組用いて機械学習済みの曲率半径機械学習部を備え、曲率の算出に用いたサブ点群の点の数とが入力されることにより、曲率に対応する曲率半径値を算出・出力するものとされる。CADデータ上の突起の実寸を用いて学習させた曲率半径機械学習部を用いることで、点群座標から得られる曲率の絶対値の信頼度が多少低くとも、これを曲率半径値に精度よく、かつ簡便に変換することができる。
【0099】
曲率情報生成部は、点群の座標空間において、各サブ点群に対応する曲率半径値をマッピングする曲率半径値マッピング部と、曲率半径値のマッピング結果を出力するマッピング結果出力部と、を備えるものとして構成できる。CADデータに対応する点群空間内にて曲率半径値のマッピングを行ない、出力することにより、部品モデル表面の各位置における曲率半径値の分布を容易に把握することができる。この場合、マッピング結果出力部は、曲率半径値が予め定められた基準値未満となる突起点群を、曲率半径値が基準値を超える突起点群と識別可能に出力するように構成することができる。部品モデル表面に基準値を超える曲率半径の突起が存在している場合に、上記構成により、これを容易に識別することができる。
【0100】
前述した道路運送車両の保安基準のごとく、車両の外装部品の突起については、人体頭部などとの衝突時を想定して、指定された直径(例えば、前述の保安基準では100mm)の球との接触が生じうる突起を対象に、曲率半径の下限値が規定されている場合がある。この場合、本発明のシステムには、予め定められた直径の仮想球を突起点群に対して接触させるシミュレーション演算を行なうととともに、当該仮想球と突起点群との接触形態に基づいて、該突起点群により記述される突起の存在形態を解析する突起存在形態解析部を備えるものとして構成できる。CADデータを点群に変換して用いることで、指定された直径の仮想球と突起表面の点との接触関係を容易にシミュレートすることができ、ひいては球との接触形態に基づく突起存在形態の解析を容易に実施することができる。
【0101】
具体的には、突起存在形態解析部は、仮想球との直接接触が生ずる接触型突起点群と、周囲に存在する隣接突起点群との干渉により仮想球との直接接触が不能となる非接触型突起点群とを識別するものとすることができる。非接触型突起点群が規定する突起は、球体を外部から接近させたとき、球体が隣接突起と先に干渉する結果、当該球との接触を免れる突起を意味し、曲率半径が仮に基準値よりも小さくても、設計変更等の対象からは除外しうるものである。よって、突起存在形態解析部により非接触型突起点群を接触型突起点群から明確に識別できるようにすることで、無駄な設計変更等を回避する上で役立つ。
【0102】
さらに、突起存在形態解析部は次のように構成することも可能である。すなわち、仮想球に対し1つの突起点群が単独でのみ接触可能となる場合の該突起点群を独立接触型突起点群とし、仮想球に対し複数組の突起点群が同時に接触する場合のそれら複数組の突起点群を重複接触型突起点群として、突起存在形態解析部は接触型突起点群が、独立接触型突起点群と重複接触型突起点群とのいずれであるかをさらに識別するように構成する。この構成によると、球体が衝突する時の衝突点が1点のみの独立接触型突起と衝突点が2点以上生じてしまう重複接触型突起とをさらに識別することが可能となり、特に後者の場合は、複数の突起の配置位置を変更して独立接触型突起に設計変更する、といった積極的な対応を促すことが可能となる。
【符号の説明】
【0103】
1 三次元CAD用突起解析システム
50 マイコン
51 CPU
52 RAM
53 ROM
54 入出力部
55 ハードディスクドライブ
56 バス
59 モニタ
60 入力部
61 プリンタ
155 三次元CADソフトウェア
156 CADネイティブファイル
156a 図形ID
157 STLファイル
158 突起解析ソフトウェア
158a 点群生成プログラム
158b 点群探索プログラム
158c 曲率解析プログラム
158d 曲率半径学習エンジン
158e 突起存在形態解析プログラム
158f 曲面回帰プログラム
159 点群データ
160 突起解析データ
156a 図形ID
156b 図形種別
156c 記述データ
157a STLID
157b 頂点座標
n 法線ベクトル
159a 点ID
159b 点座標
159c 探索フラグ
159d 突起点群フラグ
160a 突起ID
160b 曲率半径
161外れ値情報記憶部
hp ハンドリング点
ob 曲面パッチオブジェクト
BMP 突起
STL 三角形
V1,V2,V3 頂点位置ベクトル
P 点
SPG サブ点群
PM 解析対象部品モデル
ρ 回収半径
k 曲率
r 曲率半径
SB 仮想球