IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特開2024-176143特定プログラム、特定方法、および情報処理装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024176143
(43)【公開日】2024-12-19
(54)【発明の名称】特定プログラム、特定方法、および情報処理装置
(51)【国際特許分類】
   G06F 30/17 20200101AFI20241212BHJP
   G06F 119/20 20200101ALN20241212BHJP
【FI】
G06F30/17
G06F119:20
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023094433
(22)【出願日】2023-06-07
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100104190
【弁理士】
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】安曽 徳康
【テーマコード(参考)】
5B146
【Fターム(参考)】
5B146DA02
5B146DE05
5B146DL08
(57)【要約】
【課題】特定の部位について新たな寸法を追加して、形状データの異なる部位間の寸法の関係性を導出すること。
【解決手段】情報処理装置101は、同一グループに分類された各形状データが示す形状に含まれる複数の部位のうち、中心点が定義された特定の部位について、第1の距離を算出する。例えば、情報処理装置101は、形状データ110内の特定の部位111について、中心点O1と直線115との距離b1、および中心点O1と直線116との距離c1を、第1の距離として算出する。情報処理装置101は、算出した第1の距離を各形状データ内の特定の部位の寸法情報に追加する。例えば、情報処理装置101は、特定の部位111について、第1の距離131(距離b1、距離c1)を寸法情報121に追加する。情報処理装置101は、グループ内の各形状データの部位ごとの寸法情報に基づいて、グループ内の形状データの異なる部位間の寸法の関係性を特定する。
【選択図】図1
【特許請求の範囲】
【請求項1】
同一グループに分類された各形状データが示す形状に含まれる複数の部位のうち、中心点が定義された特定の部位について、前記各形状データにおける前記中心点と、当該中心点と同一の平面上の直線との第1の距離を算出し、
算出した前記第1の距離を前記各形状データ内の前記特定の部位の寸法情報に追加し、
前記グループ内の各形状データの部位ごとの前記寸法情報に基づいて、前記グループ内の前記形状データの異なる部位間の寸法の関係性を特定する、
処理をコンピュータに実行させることを特徴とする特定プログラム。
【請求項2】
前記特定の部位は、中心点、半径、中心角および端点が定義された曲線部である、ことを特徴とする請求項1に記載の特定プログラム。
【請求項3】
前記特定の部位は、中心点および半径が定義された、前記各形状データを貫通する、または、前記各形状データ上のくぼんだ、穴部である、ことを特徴とする請求項1に記載の特定プログラム。
【請求項4】
前記算出する処理は、
前記特定の部位が前記穴部の場合、前記穴部の中心点と、前記各形状データにおける当該中心点と同一の平面上の他の穴部の中心点との第2の距離をさらに算出し、
前記追加する処理は、
算出した前記第2の距離を前記各形状データ内の前記特定の部位の寸法情報にさらに追加する、
ことを特徴とする請求項3に記載の特定プログラム。
【請求項5】
複数の形状データそれぞれの形状データから、中心点および半径が定義された、前記形状データを貫通する、または、前記形状データ上のくぼんだ、穴部の寸法情報を削除し、
前記穴部の寸法情報を削除した削除後の前記複数の形状データそれぞれの形状データを、各座標軸方向の成分ごとに正規化して単位形状データを作成し、
作成した前記それぞれの形状データの単位形状データに基づいて、前記複数の形状データを分類する、
処理を前記コンピュータに実行させ、
前記同一グループに分類された各形状データは、前記分類する処理により分類したグループ内の形状データである、
ことを特徴とする請求項1に記載の特定プログラム。
【請求項6】
前記グループ内の形状データに対応する単位形状データと対応付けて、特定した前記寸法の関係性を示す情報を出力する、
処理を前記コンピュータに実行させることを特徴とする請求項1~5のいずれか一つに記載の特定プログラム。
【請求項7】
同一グループに分類された各形状データが示す形状に含まれる複数の部位のうち、中心点が定義された特定の部位について、前記各形状データにおける前記中心点と、当該中心点と同一の平面上の直線との第1の距離を算出し、
算出した前記第1の距離を前記各形状データ内の前記特定の部位の寸法情報に追加し、
前記グループ内の各形状データの部位ごとの前記寸法情報に基づいて、前記グループ内の前記形状データの異なる部位間の寸法の関係性を特定する、
処理をコンピュータが実行することを特徴とする特定方法。
【請求項8】
同一グループに分類された各形状データが示す形状に含まれる複数の部位のうち、中心点が定義された特定の部位について、前記各形状データにおける前記中心点と、当該中心点と同一の平面上の直線との第1の距離を算出し、
算出した前記第1の距離を前記各形状データ内の前記特定の部位の寸法情報に追加し、
前記グループ内の各形状データの部位ごとの前記寸法情報に基づいて、前記グループ内の前記形状データの異なる部位間の寸法の関係性を特定する、
制御部を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、特定プログラム、特定方法、および情報処理装置に関する。
【背景技術】
【0002】
従来、3D(Dimensions)形状の設計や製図には多くの工数がかかるため、過去の3D形状データを利用した流用設計が行われる場合がある。一方で、過去の3D形状データは、分類が不十分であることが多く、似たような形状も大量に存在するため、新規に既存品の類似形状の設計を行う際には、過去の3D形状データを適切に分類して、設計物の標準化を行うことが望ましい。例えば、過去の3D形状データを適切に分類して、3D形状の部位間の寸法の関係性(パラメトリックモデル)を導出することができれば、パラメトリック設計を行うことができる。
【0003】
先行技術としては、標準部品をパラメトリックに創成するためのCAD(コンピュータ支援設計)システムがある。また、入力された形状モデルに追加された部分形状を差分形状として取得し、差分形状と類似する形状を複数個の基本形状から検索し、差分形状の形状パラメータを抽出し、差分形状の形状パラメータが、検索された基本形状の設計ルールを満足するかを判断する技術がある。また、スケッチ機能を含むパラメトリック機能履歴を使用してオブジェクトの編集可能なモデルを準備し、滑らかな曲線の押し出しバージョンを組み合わせて、境界表現形式でオブジェクトの3Dモデルを形成し、スケッチ機能に関するユーザ入力に応答して平滑曲線のサブセットを再形成する技術がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平7-182391号公報
【特許文献2】特開2010-211434号公報
【特許文献3】米国特許出願公開第2020/0151286号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、曲線部や穴などを含む3D形状データについて、3D形状データの異なる部位間の寸法の関係性を適切に導出することができず、設計意図を反映したパラメトリックモデルを構築することが難しい。
【0006】
一つの側面では、本発明は、特定の部位について新たな寸法を追加して、形状データの異なる部位間の寸法の関係性を導出することを目的とする。
【課題を解決するための手段】
【0007】
1つの実施態様では、同一グループに分類された各形状データが示す形状に含まれる複数の部位のうち、中心点が定義された特定の部位について、前記各形状データにおける前記中心点と、当該中心点と同一の平面上の直線との第1の距離を算出し、算出した前記第1の距離を前記各形状データ内の前記特定の部位の寸法情報に追加し、前記グループ内の各形状データの部位ごとの前記寸法情報に基づいて、前記グループ内の前記形状データの異なる部位間の寸法の関係性を特定する、特定プログラムが提供される。
【発明の効果】
【0008】
本発明の一側面によれば、特定の部位について新たな寸法を追加して、形状データの異なる部位間の寸法の関係性を導出することができるという効果を奏する。
【図面の簡単な説明】
【0009】
図1図1は、実施の形態にかかる特定方法の一実施例を示す説明図である。
図2図2は、情報処理システム200のシステム構成例を示す説明図である。
図3図3は、モデル生成装置201のハードウェア構成例を示すブロック図である。
図4図4は、3D形状DB220の記憶内容の一例を示す説明図である。
図5図5は、標準形状DB230の記憶内容の一例を示す説明図(その1)である。
図6図6は、モデル生成装置201の機能的構成例を示すブロック図である。
図7図7は、単位3D形状データの作成例を示す説明図である。
図8図8は、3D形状データの分類例を示す説明図である。
図9図9は、弧形のエッジ部の一例を示す説明図である。
図10A図10Aは、穴部の一例を示す説明図(その1)である。
図10B図10Bは、穴部の一例を示す説明図(その2)である。
図11A図11Aは、モデル生成装置201の動作例を示す説明図(その1)である。
図11B図11Bは、モデル生成装置201の動作例を示す説明図(その2)である。
図12図12は、穴部に関する新たな寸法の算出例を示す説明図である。
図13図13は、3D形状データの一例を示す説明図である。
図14図14は、新たな寸法の算出例を示す説明図(その1)である。
図15図15は、新たな寸法の算出例を示す説明図(その2)である。
図16図16は、3D形状データ内の部位の寸法の一例を示す説明図である。
図17図17は、部位間の寸法の関係性を示す関係式の構築例を示す説明図である。
図18図18は、穴位置モデルの具体例をあらわす説明図である。
図19A図19Aは、穴部の配置例を示す説明図(その1)である。
図19B図19Bは、穴部の配置例を示す説明図(その2)である。
図19C図19Cは、穴部の配置例を示す説明図(その3)である。
図20図20は、モデル生成装置201の事前準備処理手順の一例を示すフローチャートである。
図21図21は、単位形状作成処理の具体的処理手順の一例を示すフローチャートである。
図22図22は、モデル生成装置201の標準形状登録処理手順の一例を示すフローチャートである。
図23図23は、形状分類処理の具体的処理手順の一例を示すフローチャートである。
図24図24は、対応付け処理の具体的処理手順の一例を示すフローチャートである。
図25図25は、向き合わせ処理の具体的処理手順の一例を示すフローチャートである。
図26図26は、寸法情報追加処理の具体的処理手順の一例を示すフローチャート(その1)である。
図27図27は、寸法情報追加処理の具体的処理手順の一例を示すフローチャート(その2)である。
図28図28は、関係式構築処理の具体的処理手順の一例を示すフローチャートである。
図29図29は、穴位置モデル構築処理の具体的処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下に図面を参照して、本発明にかかる特定プログラム、特定方法、および情報処理装置の実施の形態を詳細に説明する。
【0011】
(実施の形態)
図1は、実施の形態にかかる特定方法の一実施例を示す説明図である。図1において、情報処理装置101は、対象物の設計を支援するコンピュータである。対象物は、設計対象となる物であり、例えば、部品、製品、建設部材、建築物などの立体物である。
【0012】
ここで、3D形状の設計には多くの工数がかかるため、過去の3D形状データを利用した流用設計ができれば、大変有用である。一方で、過去の3D形状データは、分類が不十分であることが多く、似たような形状も大量に存在するため、設計意図に応じた3D形状データを人手で検索するには時間や手間がかかる。
【0013】
このため、新規に既存品の類似形状の設計を行うにあたり、過去の3D形状データを適切に分類して、設計物の標準化を行うことが望ましい。例えば、過去の3D形状データを適切に分類して、3D形状の部位間の寸法の関係性(パラメトリックモデル)を導出することができれば、モデルに対して各種寸法を設定することで、3D形状を規定する設計(いわゆる、パラメトリック設計)を行うことができる。
【0014】
過去の3D形状データを分類する手法としては、3D形状データ同士を比較して類似度を求め、その類似度をもとに3D形状データを分類するものがある。例えば、ターゲットとして指定された3D形状データとの類似度をもとに、同一グループに分類する3D形状データを検索することが考えられる。
【0015】
この分類手法では、ターゲットと同じ形状や、幾何学的に相似な形状の3D形状データが検索される。ところが、3D形状データでは似た形状においても、設計意図によって部位間の寸法に関係性があるものとないものがあり、同じ形状や相似な形状の3D形状データだけが、同一グループに分類したい3D形状データとは限らない。
【0016】
また、過去の3D形状データを一つ一つ人手により確認しながら、設計の意図を考慮した分類を行うことも考えられる。しかしながら、膨大な数の3D形状データを人手により分類するには時間や手間がかかり、ひいては、対象物の設計にかかる工数の増大を招くという問題がある。さらに、設計者以外の者が、3D形状データから設計の意図を判断することは難しい。
【0017】
また、各3D形状データを正規化した単位3D形状データをもとに、複数の3D形状データを分類し、単位3D形状データで分類される3D形状データ内の部位間の寸法の関係性を特定することで、パラメトリックモデルを構築する技術がある(「従来技術1」という)。3D形状データは、例えば、3次元CAD(Computer Aided Design)を利用して過去に設計された設計データである。
【0018】
従来技術1では、例えば、3D形状データを、各座標軸方向の成分ごとに正規化して単位3D形状データを作成する。3D形状データを各座標軸方向の成分ごとに正規化するとは、各座標軸方向(例えば、x軸、y軸、z軸方向)での部位間の寸法の関係性を維持したまま、3D形状データを変換することである。
【0019】
単位3D形状データをもとに類似性を判断することで、各座標軸方向での辺の比率が同じもの同士で分類することが可能となり、ターゲットと同一な形状や相似な形状だけでなく、一部長さが異なる形状も同一グループに分類することが期待できる。なお、従来技術1については、例えば、特開2022-75139号公報を参照することができる。
【0020】
ところが、従来技術1では、曲線部や穴などを含む3D形状データについては、設計意図を適切に読み取ることができず、部位間の寸法の関係性を見つけることが難しい。例えば、3D形状のCADデータには、直線については、直線という属性のほか、端点の座標、長さが含まれる。
【0021】
一方、穴については、曲線という属性のほか、中心点の座標、半径が含まれる。また、曲線部については、曲線という属性のほか、中心点の座標、半径、中心角(中心角度)、端点の座標が含まれる。設計者は、曲線部や穴などの部位については、他の部位(例えば、辺)との距離などを考慮して中心点を配置することがある。
【0022】
しかしながら、3D形状のCADデータには、曲線部や穴などの部位について、他の部位との距離などの情報は含まれていない。このため、従来技術1では、曲線部や穴については中心点の座標から個々の特徴点の対応をとることができても、座標は寸法ではないため、設計者の意図を読み取ることができず、部位間の寸法のパラメトリックな関係性を見つけることができない場合がある。
【0023】
そこで、本実施の形態では、形状データ内の特定の部位について、新たな寸法を追加して、形状データの異なる部位間の寸法の関係性を導出する特定方法について説明する。ここで、情報処理装置101の処理例(下記(1)~(3)の処理に対応)について説明する。
【0024】
(1)情報処理装置101は、同一グループに分類された各形状データが示す形状に含まれる複数の部位のうち、中心点が定義された特定の部位について、第1の距離を算出する。ここで、形状データは、設計物の形状をあらわす情報であり、例えば、各部位の寸法情報を含む。部位は、形状データがあらわす一部分の形状である。なお、以下の説明では、各形状データが示す形状に含まれる複数の部位を、単に「各形状データの部位」と表記する場合がある。
【0025】
部位は、例えば、辺、面、曲線部、穴部などである。曲線部は、例えば、弧形のエッジ部である。エッジ部は、頂点同士を結ぶ辺に対応し、例えば、面の端部分を表す。エッジ部は、例えば、外形線や輪郭線に相当する。弧形のエッジ部は、円弧のかたちとなる。穴部は、例えば、形状データ(の一部または全部)を貫通する孔(あな)、または、形状データ上のくぼんだ穴(あな)である。
【0026】
各部位の寸法情報は、例えば、各部位の属性情報を含む。属性情報は、辺、面、曲線などの属性を表す。また、各部位の寸法情報は、例えば、各特徴点の位置情報を含む。特徴点は、例えば、設計物の頂点、穴の中心点などである。特徴点の位置情報は、例えば、直交座標系における特徴点の座標を示す。
【0027】
また、部位「辺」の寸法情報には、例えば、属性「直線」、端点(特徴点)の座標、長さが含まれる。また、部位「面」の寸法情報には、例えば、属性「面」、頂点(特徴点)の座標が含まれる。また、部位「穴部」の寸法情報には、例えば、属性「曲線」、中心点(特徴点)の座標、半径が含まれる。
【0028】
また、部位「曲線部(例えば、弧形のエッジ部)」の寸法情報には、例えば、属性「曲線」、中心点(特徴点)の座標、半径、中心角、端点(特徴点)の座標が含まれる。なお、形状データには、例えば、各面の色情報、材質情報などが含まれていてもよい。形状データは、例えば、3次元形状データであり、3次元CADを利用して過去に設計された設計データであってもよい。また、形状データは、2次元形状データであってもよい。
【0029】
同一グループに分類された複数の形状データは、類似形状として分類された形状データである。形状データの分類方法としては、既存のいかなる技術を用いてもよい。例えば、形状データの分類方法として、従来技術1を用いることができる。ただし、従来技術1では、3D形状データから単位3D形状データを作成する際に、円形状の穴などの部位は、円形状が楕円形状になり類似形状検索の精度が低下する場合がある。
【0030】
このため、情報処理装置101は、類似形状の形状データを分類するにあたり、例えば、各形状データから穴の寸法情報を削除した上で単位形状化して、類似形状を検索することにしてもよい。なお、各形状データから穴の寸法情報を削除した上で単位形状化して、類似形状を検索する際の具体的な処理内容については後述する。また、同一グループに分類された複数の形状データは、ユーザにより指定された形状データであってもよい。
【0031】
また、特定の部位は、例えば、中心点、半径、中心角および端点が定義された曲線部である。また、特定の部位は、中心点および半径が定義された穴部であってもよい。また、特定の部位は、例えば、中心点および半径が定義された突起部(円柱状や円錐状の突起部)であってもよい。
【0032】
第1の距離は、各形状データにおける特定の部位の中心点と、当該中心点と同一平面にある直線との距離である。同一平面にある直線は、例えば、直線のエッジ部である。第1の距離は、例えば、特定の部位の中心点と同一平面にある全ての直線について算出されてもよい。また、第1の距離は、例えば、特定の部位の中心点と同一平面にある直線のうち、当該中心点から最も近い直線について算出されてもよい。
【0033】
図1の例では、形状データ110が示されている。形状データ110は、3次元CADを利用して過去に設計された設計データである。形状データ110には、特定の部位111,112,113が含まれる。特定の部位111,112,113は、中心点O1,O2,O3および半径r1,r2,r3が定義された穴部(形状データ110を貫通する孔)である。
【0034】
形状データ110には、特定の部位111,112,113の寸法情報121,122,123が含まれる。寸法情報121は、特定の部位111の中心点O1の座標(x1,y1,z1)、半径r1を含む。寸法情報122は、特定の部位112の中心点O2の座標(x2,y2,z2)、半径r2を含む。寸法情報123は、特定の部位113の中心点O3の座標(x3,y3,z3)、半径r3を含む。
【0035】
ここで、寸法情報121,122,123には、特定の部位111,112,113と他の部位との距離などの情報は含まれていない。例えば、形状データ110において、特定の部位111,112,113の各中心点O1,O2,O3と、同一平面にある直線との距離は、設計者の意図を表す寸法といえる。
【0036】
形状データ110において、各中心点O1,O2,O3と同一平面にある直線は、例えば、平面114の端部分を表す直線115,116(直線のエッジ部)である。このため、情報処理装置101は、例えば、特定の部位111について、中心点O1と直線115との距離b1を第1の距離として算出する。また、情報処理装置101は、例えば、特定の部位111について、中心点O1と直線116との距離c1を第1の距離として算出する。
【0037】
また、情報処理装置101は、例えば、特定の部位112について、中心点O2と直線115との距離b4(b1+b2)を第1の距離として算出する。また、情報処理装置101は、例えば、特定の部位112について、中心点O2と直線116との距離c1を第1の距離として算出する。
【0038】
また、情報処理装置101は、例えば、特定の部位113について、中心点O3と直線115との距離b5(b1+b2+b3)を第1の距離として算出する。また、情報処理装置101は、例えば、特定の部位112について、中心点O3と直線116との距離c1を第1の距離として算出する。
【0039】
なお、形状データ110において、特定の部位111,112,113の中心点間の距離は、設計者の意図を表す寸法といえる。このため、情報処理装置101は、特定の部位111について、例えば、中心点O1と他の中心点O2,O3との距離を第2の距離として算出してもよい。また、情報処理装置101は、特定の部位112について、例えば、中心点O2と他の中心点O1,O3との距離を第2の距離として算出してもよい。また、情報処理装置101は、特定の部位113について、例えば、中心点O3と他の中心点O1,O2との距離を第2の距離として算出してもよい。
【0040】
(2)情報処理装置101は、算出した第1の距離を各形状データ内の特定の部位の寸法情報に追加する。図1の例では、情報処理装置101は、特定の部位111について、算出した第1の距離131(距離b1、距離c1)を寸法情報121に追加する。
【0041】
また、情報処理装置101は、特定の部位112について、算出した第1の距離132(距離b4、距離c1)を寸法情報122に追加する。また、情報処理装置101は、特定の部位113について、算出した第1の距離133(距離b5、距離c1)を寸法情報123に追加する。
【0042】
(3)情報処理装置101は、グループ内の各形状データの部位ごとの寸法情報に基づいて、グループ内の形状データの異なる部位間の寸法の関係性を特定する。同一グループに分類された各形状データは、例えば、単位形状データ同士が類似しており(正規化した形状が略一致)、互いに対応する部位をそれぞれ有している。
【0043】
情報処理装置101は、グループ内の各形状データの部位ごとの寸法情報をもとに、回帰分析等の手法により、ある部位と他の部位との関係を導出する。より詳細に説明すると、例えば、情報処理装置101は、各形状データ内の複数の部位のうちのいずれかの部位を目的変数とし、他の部位を説明変数として、異なる部位間の寸法の関係性を示す関係式を作成する。
【0044】
このように、情報処理装置101によれば、形状データ内の特定の部位について、設計者の意図があらわすような新たな寸法(第1の距離)を追加して、形状データの異なる部位間の寸法の関係性を導出することができる。このため、情報処理装置101は、設計意図を反映したパラメトリックモデルを構築することができる。
【0045】
図1の例では、情報処理装置101は、形状データ110内の穴部である特定の部位111~113について、同一平面114上の直線115,116との位置関係をあらわす新たな寸法(距離b1,b4,b5,c1)を定義することができる。このため、情報処理装置101は、特定の部位111~113について、設計者の意図をあらわすような新たな寸法を追加して、形状データ110の異なる部位間の寸法の関係性を導出することができる。
【0046】
(情報処理システム200のシステム構成例)
つぎに、情報処理装置101を含む情報処理システム200のシステム構成例について説明する。ここでは、図1に示した情報処理装置101を、情報処理システム200内のモデル生成装置201に適用した場合を例に挙げて説明する。情報処理システム200は、例えば、製品や建築物に関する3D形状の設計を支援するコンピュータシステムに適用される。
【0047】
以下の説明では、形状データとして「3D(3次元)形状データ」を例に挙げて説明する。
【0048】
図2は、情報処理システム200のシステム構成例を示す説明図である。図2において、情報処理システム200は、モデル生成装置201と、クライアント装置202とを含む。情報処理システム200において、モデル生成装置201およびクライアント装置202は、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、インターネット、LAN、WAN(Wide Area Network)などである。
【0049】
ここで、モデル生成装置201は、3D形状DB(Database)220および標準形状DB230を有する。モデル生成装置201は、例えば、サーバである。3D形状DB220は、過去に設計された3D形状データを記憶するデータベースである。標準形状DB230は、標準形状データを記憶するデータベースである。3D形状DB220および標準形状DB230の記憶内容については、図4および図5を用いて後述する。
【0050】
クライアント装置202は、ユーザが使用するコンピュータである。クライアント装置202は、例えば、PC(Personal Computer)、タブレットPCなどである。ユーザは、例えば、対象物の設計を行う設計者である。
【0051】
なお、図2の例では、クライアント装置202を1台のみ表記したが、これに限らない。例えば、情報処理システム200には、複数のクライアント装置202が含まれていてもよい。また、モデル生成装置201は、クライアント装置202と別体に設けることにしたが、これに限らない。例えば、モデル生成装置201は、クライアント装置202により実現されることにしてもよい。
【0052】
(モデル生成装置201のハードウェア構成例)
図3は、モデル生成装置201のハードウェア構成例を示すブロック図である。図3において、モデル生成装置201は、CPU(Central Processing Unit)301と、メモリ302と、ディスクドライブ303と、ディスク304と、通信I/F(Interface)305と、可搬型記録媒体I/F306と、可搬型記録媒体307と、を有する。また、各構成部は、バス300によってそれぞれ接続される。
【0053】
ここで、CPU301は、モデル生成装置201の全体の制御を司る。CPU301は、複数のコアを有していてもよい。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMがOS(Operating System)のプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
【0054】
ディスクドライブ303は、CPU301の制御に従ってディスク304に対するデータのリード/ライトを制御する。ディスク304は、ディスクドライブ303の制御で書き込まれたデータを記憶する。ディスク304は、例えば、磁気ディスク、光ディスクなどである。
【0055】
通信I/F305は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して外部のコンピュータ(例えば、図2に示したクライアント装置202)に接続される。そして、通信I/F305は、ネットワーク210と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。通信I/F305は、例えば、モデムやLANアダプタなどである。
【0056】
可搬型記録媒体I/F306は、CPU301の制御に従って可搬型記録媒体307に対するデータのリード/ライトを制御する。可搬型記録媒体307は、可搬型記録媒体I/F306の制御で書き込まれたデータを記憶する。可搬型記録媒体307は、例えば、CD(Compact Disc)-ROM、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリなどである。
【0057】
なお、モデル生成装置201は、上述した構成部のうち、例えば、ディスクドライブ303、ディスク304、可搬型記録媒体I/F306、可搬型記録媒体307を有さなくてもよい。また、モデル生成装置201は、上述した構成部のほかに、例えば、ディスプレイ、入力装置などを有してもよい。また、図2に示したクライアント装置202についても、モデル生成装置201と同様のハードウェア構成により実現することができる。ただし、クライアント装置202は、上述した構成部のほかに、例えば、入力装置、ディスプレイなどを有する。
【0058】
(各種DB220,230の記憶内容)
つぎに、図4および図5を用いて、モデル生成装置201が有する各種DB220,230の記憶内容について説明する。各種DB220,230は、例えば、図3に示したメモリ302、ディスク304などの記憶装置により実現される。
【0059】
図4は、3D形状DB220の記憶内容の一例を示す説明図である。図4において、3D形状DB220は、idおよび3D形状データのフィールドを有し、各フィールドに情報を設定することで、3D形状管理情報(例えば、3D形状管理情報400-1~400-3)をレコードとして記憶する。
【0060】
ここで、idは、3D形状データを一意に識別する識別子である。3D形状データは、過去に設計された3D形状データである。ここでは説明の便宜上、各3D形状データを「D1,D2,D3,…」と表記している。例えば、3D形状管理情報400-1は、id「1」の3D形状データD1を示す。
【0061】
図5は、標準形状DB230の記憶内容の一例を示す説明図(その1)である。図5において、標準形状DB230は、id、標準形状データ、関係式および類似形状リストのフィールドを有し、各フィールドに情報を設定することで、標準形状管理情報(例えば、標準形状管理情報500-1,500-2)をレコードとして記憶する。
【0062】
ここで、idは、標準形状データの作成元である3D形状データのidである。標準形状データは、標準形状データとして登録された単位3D形状データである。関係式は、標準形状データの作成元である3D形状データ内の異なる部位(例えば、辺)間の寸法の関係性を示す数式である。関係式には、後述する穴位置モデルが含まれていてもよい。穴位置モデルは、3D形状データ内の面に対応する、当該面上の複数の穴部の位置関係を表現するモデルである。
【0063】
ここでは、Re##は、それぞれ異なる数式を示している(##は数字)。各数式は、例えば、3D形状データ内の異なる辺間の寸法の関係性を示している。類似形状リストは、標準形状データ(単位3D形状データ)をもとに同一グループに分類された3D形状データのidをリスト化したものである。
【0064】
例えば、標準形状管理情報500-1は、id「1」の3D形状データD1に対応する標準形状データD1’’、関係式{Re11,Re12,…}および類似形状リスト{1,7,18,21,33}を示す。なお、標準形状データ(単位3D形状データ)における各部位をあらわす変数は、関係式における変数と対応している。これにより、標準形状データ(単位形状データ)内のどの部位が、関係式におけるどの変数に対応しているか特定可能である。
【0065】
また、標準形状管理情報には、標準形状データ(単位3D形状データ)に対応する穴部の寸法情報が含まれてもよい。標準形状データ(単位3D形状データ)に対応する穴部の寸法情報は、単位3D形状データを作成するにあたり、3D形状データから削除された穴部の寸法情報であり、例えば、同一グループに分類されたいずれかの3D形状データ内の穴部の寸法情報である。
【0066】
(モデル生成装置201の機能的構成例)
つぎに、モデル生成装置201の機能的構成例について説明する。
【0067】
図6は、モデル生成装置201の機能的構成例を示すブロック図である。図6において、モデル生成装置201は、受付部601と、作成部602と、分類部603と、算出部604と、特定部605と、検索部606と、生成部607と、出力部608と、記憶部610と、を含む。受付部601~出力部608は制御部600となる機能であり、具体的には、例えば、図3に示したメモリ302、ディスク304、可搬型記録媒体307などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、通信I/F305により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302、ディスク304などの記憶装置に記憶される。また、記憶部610は、例えば、メモリ302、ディスク304などの記憶装置により実現される。具体的には、例えば、記憶部610は、図4に示した3D形状DB220や、図5に示した標準形状DB230を記憶する。
【0068】
受付部601は、ターゲットの3D形状データの指定を受け付ける。ターゲットの3D形状データは、例えば、対象物についての設計意図を指定するための3D形状データである。ターゲットの3D形状データは、中心点が定義された特定の部位を含む。特定の部位は、例えば、曲線部や穴部である。
【0069】
曲線部は、中心点、半径、中心角および端点が定義された部位であり、例えば、弧形のエッジ部(面の端部分)である。中心角は、曲線部の一方の端点と中心点とを結ぶ線分と、他方の端点と中心点とを結ぶ線分とがなす角度である。弧形のエッジ部の端点は、中心点、半径および中心角から特定されてもよい。
【0070】
穴部は、中心点および半径が定義された部位であり、例えば、3D形状データを貫通する孔、または、3D形状データ上のくぼんだ穴である。ここでは、穴部の断面形状が円形の場合を想定する。なお、穴部の断面形状が四角形(正方形、長方形など)の場合、例えば、半径のかわりに対角線の長さが定義される。
【0071】
ターゲットの3D形状データは、例えば、3D形状DB220に記憶された3D形状データの中から指定される。また、ターゲットの3D形状データは、対象物についての基本設計(大まかな寸法で設計したもの)を終えた状態の3D形状データであってもよい。
【0072】
具体的には、例えば、受付部601は、クライアント装置202から、3D形状DB220に記憶されたいずれかの3D形状データのidの指定を受け付けることにより、ターゲットの3D形状データの指定を受け付ける。また、受付部601は、クライアント装置202から、ターゲットの3D形状データそのものを受信することにしてもよい。
【0073】
作成部602は、複数の3D形状データそれぞれの3D形状データについて、単位3D形状データを生成する。複数の3D形状データは、例えば、3D形状DB220に記憶された3D形状データである。複数の3D形状データそれぞれの3D形状データは、例えば、中心点が定義された特定の部位(例えば、曲線部、穴部)を含む。
【0074】
具体的には、例えば、作成部602は、複数の3D形状データそれぞれの3D形状データから、特定の部位のうちの穴部の寸法情報を削除する。そして、作成部602は、穴部の寸法情報を削除した削除後の複数の3D形状データそれぞれの3D形状データを、各座標軸方向の成分ごとに正規化して単位3D形状データを作成する。
【0075】
以下の説明では、穴部の寸法情報を削除した削除後の3D形状データを「3D形状データ(削除後)」と表記する場合がある。
【0076】
より具体的には、例えば、作成部602は、それぞれの3D形状データ(削除後)の各特徴点の座標から各座標軸方向の最小値を抽出する。特徴点は、例えば、設計物の頂点である。そして、作成部602は、各特徴点の座標の各値から、抽出した各座標軸方向の最小値を減算する。
【0077】
つぎに、作成部602は、減算後の各特徴点の座標から各座標軸方向の最大値を抽出する。そして、作成部602は、減算後の各特徴点の座標の各値を、抽出した各座標軸方向の最大値で除算することにより、それぞれの3D形状データ(削除後)の単位3D形状データを作成する。
【0078】
ここで、図7を用いて、単位3D形状データの作成例について説明する。以下の説明では、複数の3D形状データのうち任意の3D形状データを「3D形状データDi」と表記する場合がある(ただし、iは、1以上の自然数)。
【0079】
図7は、単位3D形状データの作成例を示す説明図である。図7において、3D形状データ(削除後)Di(図7中、実線)の各頂点jの座標をPij(xij,yij,zij)とする(j=1,2,…,J)。ここでは、3D形状データ(削除後)Diが「直方体」である場合を例に挙げて説明する。
【0080】
まず、作成部602は、3D形状データ(削除後)Diの各頂点jの座標から各座標軸方向の最小値を抽出する。そして、作成部602は、各頂点jの座標Pijの各値から、抽出した各座標軸方向の最小値を減算することにより、3D形状データ(削除後)Diを平行移動する。ここで得られる新たな3D形状データ(削除後)を「Di’」とし(図7中、一点鎖線)、各頂点の座標をPij’(xij’,yij’,zij’)とする。
【0081】
ij’,yij’,zij’は、下記式(1)~(3)によってあらわされる。ただし、「i,j,J∈自然数」とし、「xij,yij,zij>0」とする。
【0082】
ij’=xij-Min([xi1,xi2,…,xiJ]) ・・・(1)
ij’=yij-Min([yi1,yi2,…,yiJ]) ・・・(2)
ij’=zij-Min([zi1,zi2,…,ziJ]) ・・・(3)
【0083】
つぎに、作成部602は、各頂点の座標Pij’から各座標軸方向の最大値を抽出する。そして、作成部602は、各頂点の座標Pij’の各値を、抽出した各座標軸方向の最大値で除算して、正規化した単位3D形状データを作成する。ここで得られる単位D形状データを「Di’’」とし(図7中、点線)、各頂点の座標をPij’’(xij’’,yij’’,zij’’)とする。
【0084】
ij’’,yij’’,zij’’は、下記式(4)~(6)によってあらわされる。
【0085】
ij’’=xij’/Max([xi1’,xi2’,…,xiJ’]) ・・・(4)
ij’’=yij’/Max([yi1’,yi2’,…,yiJ’]) ・・・(5)
ij’’=zij’/Max([zi1’,zi2’,…,ziJ’]) ・・・(6)
【0086】
なお、3D形状データ(削除後)には、穴部の寸法情報のうち中心点のみは特徴点として含まれていてもよい。この場合、作成部602は、3D形状データ(削除後)から、穴部の中心点が表現された単位3D形状データを作成することができる。
【0087】
図6の説明に戻り、分類部603は、作成されたそれぞれの3D形状データ(削除後)の単位3D形状データに基づいて、複数の3D形状データを分類する。分類対象の複数の3D形状データそれぞれの3D形状データは、3D形状データ(削除後)に対応する3D形状データである。
【0088】
具体的には、例えば、分類部603は、それぞれの3D形状データの単位3D形状データ間の類似度を算出する。つぎに、分類部603は、算出した類似度が閾値以上となる単位3D形状データの組み合わせを特定する。そして、分類部603は、特定した単位3D形状データの組み合わせに含まれる単位3D形状データそれぞれに対応する3D形状データ同士が同一グループとなるように、複数の3D形状データを分類する。閾値は、任意に設定可能である。例えば、閾値は、類似度が閾値以上であれば、単位3D形状データ同士が一致すると判断できる程度の値に設定される。
【0089】
より詳細に説明すると、例えば、分類部603は、指定されたターゲットの3D形状データの単位3D形状データと、3D形状DB220内の各3D形状データの単位3D形状データとを比較して、単位3D形状データ間の類似度を算出する。ターゲットの3D形状データの単位3D形状データは、穴部の寸法情報を削除した上で作成される。
【0090】
比較対象となる3D形状DB220内の各3D形状データは、例えば、特定の部位(例えば、曲線部、穴部)を含む3D形状データである。また、比較対象となる3D形状DB220内の各3D形状データは、例えば、ターゲットの3D形状データと穴部の数が同じ3D形状データであってもよい。分類部603は、3D形状DB220から、ターゲットの3D形状データと穴部の数が同じ3D形状データを選択してもよい。
【0091】
例えば、分類部603は、複数の方向から各単位3D形状データを撮像した画像を、単位3D形状データ間で比較して、画像間の類似度を算出する。画像間の類似度の算出には、既存のいかなる技術を用いることにしてもよい。
【0092】
つぎに、分類部603は、算出した画像間の類似度を累積することにより、単位3D形状データ間の類似度を算出する。そして、分類部603は、算出した類似度が閾値以上となる単位3D形状データの組み合わせに対応する3D形状データを同一グループに分類する。これにより、ターゲットの3D形状データと単位3D形状データが類似する3D形状データを3D形状DB220から抽出することができる。
【0093】
ここで、図8を用いて、3D形状データの分類例について説明する。
【0094】
図8は、3D形状データの分類例を示す説明図である。図8において、3D形状データD11~D15が表示されている。ただし、図8では、3D形状データD11~D15が、特定の部位(例えば、曲線部、穴部)が削除された状態で表示されている。
【0095】
3D形状データD11は、ターゲットの3D形状データである。3D形状データD12は、ターゲットの3D形状データD11と向きが異なる3D形状データである。3D形状データD13は、ターゲットの3D形状データD11と相似関係にある3D形状データである。3D形状データD14,D15は、ターゲットの3D形状データD11と一部長さが異なる3D形状データである。図8中、3D形状データD11内のl1~l18は、3D形状データD11内の辺を示している。また、各3D形状データD11~D15内の数値は、各辺の寸法を示している。
【0096】
ここで、各3D形状データD11~D15を、図7で説明したように、各座標軸方向の成分ごとに正規化すると、同じ形状の単位3D形状データ800(3D形状データD11’’~D15’’に相当)がそれぞれ作成される。この場合、3D形状データD11~D15は、同一グループに分類される。
【0097】
このように、単位3D形状データ(パラメトリックな関係性)をもとに類似性を判断することで、各座標軸方向での辺の比率が同じもの同士で分類することが可能となり、ターゲットと同一な形状や相似な形状だけでなく、一部長さが異なる形状も同一グループに分類することができる。
【0098】
算出部604は、分類されたグループ内の各3D形状データが示す形状に含まれる複数の部位のうち、中心点が定義された特定の部位について、第1の距離を算出する。そして、算出部604は、算出した第1の距離を、各3D形状データ内の特定の部位の寸法情報に追加する。ここで、第1の距離は、各3D形状データにおいて特定の部位の中心点と同一平面にある直線と当該中心点との距離である。同一平面にある直線は、例えば、直線のエッジ部である。
【0099】
例えば、特定の部位を、弧形のエッジ部(曲線部)であるとする。弧形のエッジ部には、例えば、中心点、半径、中心角および端点が定義されている。この場合、算出部604は、3D形状データにおいて、弧形のエッジ部の中心点と、当該中心点と同一平面にある直線との距離(第1の距離)を算出する。
【0100】
弧形のエッジ部の中心点との距離は、例えば、同一平面にある全ての直線について算出されてもよい。また、弧形のエッジ部の中心点との距離は、同一平面にある直線のうち当該中心点から最も近い直線について算出されてもよい。そして、算出部604は、算出した第1の距離を、3D形状データ内の弧形のエッジ部の寸法情報に追加する。
【0101】
ここで、図9を用いて、弧形のエッジ部の第1の距離の算出例について説明する。
【0102】
図9は、弧形のエッジ部の一例を示す説明図である。図9において、弧形のエッジ部900は、3D形状データ内の特定の部位の一例である。弧形のエッジ部900には、中心点O1、半径r1、中心角θ1および端点A,Bが定義されている。
【0103】
まず、算出部604は、3D形状データから、中心点O1に隣接する2本の直線901,902を特定する。つぎに、算出部604は、特定した直線901,902の4つの端点が同一平面にあるか否かを判断する。ここで、4つの端点が同一平面にある場合、算出部604は、その平面上に中心点O1があるか否かを判断する。
【0104】
ここで、その平面上に中心点O1がある場合、算出部604は、中心点O1と同一の平面上に直線901,902があると判断する。この場合、算出部604は、弧形のエッジ部900の中心点O1と各直線901,902との距離(最短距離)d1,d2を、第1の距離として算出する。
【0105】
また、特定の部位を、穴部であるとする。穴部は、3D形状データを貫通する孔、または、3D形状データ上のくぼんだ穴である。穴部には、例えば、中心点および半径が定義されている。この場合、算出部604は、3D形状データにおいて、穴部の中心点と、当該中心点と同一平面にある直線との距離(第1の距離)を算出する。
【0106】
穴部の中心点との距離は、例えば、同一平面にある全ての直線について算出されてもよい。また、穴部の中心点との距離は、同一平面にある直線のうち当該中心点から最も近い直線について算出されてもよい。そして、算出部604は、算出した第1の距離を、3D形状データ内の穴部の寸法情報に追加する。
【0107】
また、算出部604は、特定の部位が穴部の場合、穴部の中心点と、3D形状データにおける当該中心点と同一の平面上の他の穴部の中心点との距離(第2の距離)をさらに算出してもよい。そして、算出部604は、算出した第2の距離を、3D形状データ内の穴部の寸法情報に追加してもよい。
【0108】
ここで、図10Aおよび図10Bを用いて、穴部の第1および第2の距離の算出例について説明する。
【0109】
図10Aは、穴部の一例を示す説明図(その1)である。図10Aにおいて、穴部1000は、3D形状データ内の特定の部位の一例である。穴部1000には、中心点O2および半径r2が定義されている。直線1001,1002は、穴部1000の中心点O2と同一の平面上の直線である。
【0110】
この場合、算出部604は、穴部1000の中心点O2と、各直線1001,1002との距離(最短距離)d3,d4を第1の距離として算出する。
【0111】
図10Bは、穴部の一例を示す説明図(その2)である。図10Bにおいて、穴部1011は、3D形状データ内の特定の部位の一例である。穴部1011には、中心点O3および半径r3が定義されている。中心点O4,O5は、穴部1011の中心点O3と同一の平面上にある他の穴部1012,1013の中心点である。
【0112】
この場合、算出部604は、穴部1000の中心点O3と、他の穴部1012,1013の中心点O4,O5との距離d5,d6を第2の距離として算出する。
【0113】
図6の説明に戻り、特定部605は、分類されたグループ内の各3D形状データの部位ごとの寸法情報に基づいて、グループ内の3D形状データの異なる部位間の寸法の関係性を特定する。ここで、3D形状データの部位は、例えば、辺、面、弧形のエッジ部、穴部などである。
【0114】
部位「辺」の寸法情報は、例えば、属性「直線」、端点の座標、長さを含む。また、部位「面」の寸法情報は、例えば、属性「面」、頂点の座標、辺を含む。また、部位「穴部」の寸法情報は、例えば、属性「曲線」、中心点の座標、半径を含む。また、部位「穴部」の寸法情報には、追加された第1の距離や第2の距離が含まれる。また、部位「弧形のエッジ部」の寸法情報は、例えば、属性「曲線」、中心点の座標、半径、中心角、端点の座標を含む。また、部位「弧形のエッジ部」の寸法情報には、追加された第1の距離が含まれる。
【0115】
具体的には、例えば、特定部605は、グループ内の各3D形状データ内の部位ごとに、当該部位の各3D形状データにおける寸法を要素とするベクトルを作成する。各部位の寸法は、寸法情報から特定される。そして、特定部605は、各3D形状データ内の複数の部位のうちのいずれかの部位を目的変数とし、他の部位を説明変数として、作成した部位ごとのベクトルに基づいて、異なる部位間の寸法の関係性を示す関係式を作成する。異なる部位間の寸法の関係性は、例えば、線形回帰分析、非線形回帰分析、ニューラルネットワークを用いた機械学習等の手法により構築することができる。
【0116】
また、特定部605は、各3D形状データ内の複数の部位のうち、作成したベクトルの要素の分散が相対的に高い部位を目的変数とすることにしてもよい。これにより、グループ内の3D形状データ間で寸法が変わらないような部位を目的変数から除外して、関係式を構築することができる。なお、変数間の相関係数を求め、相関が相対的に低い変数を除外することにしてもよい。
【0117】
また、特定部605は、各3D形状データ内の複数の部位のうち、目的変数に対して寄与率が相対的に高い部位を説明変数とすることにしてもよい。寄与率(決定係数)は、説明変数が目的変数のどれくらいを説明できるかをあらわす値である。より詳細に説明すると、例えば、特定部605は、関係式を構築する際に、ステップワイズ法により、目的変数に対して寄与率が高い変数を説明変数として選択してもよい。
【0118】
ここで、特定部605は、同一グループに分類された3D形状データ間における部位の対応関係を特定するにあたり、例えば、各3D形状データの単位3D形状データについて、x軸、y軸、z軸の方向を一致させて向きを揃える。そして、特定部605は、向きを揃えた単位3D形状データに基づき、グループ内の各3D形状データの向きを揃えて、3D形状データ間で対応する部位を特定してもよい。
【0119】
グループ内の3D形状データ間における部位の対応関係を特定する処理は、例えば、従来技術2(特開2022-168686号公報)を参照することができる。
【0120】
例えば、特定部605は、第1の3D形状データ内の第1の部位と対応する第2の3D形状データ内の第2の部位を特定する。ここで、第1の3D形状データおよび第2の3D形状データは、分類されたグループ内の3D形状データである。第1の3D形状データは、例えば、ターゲットの3D形状データである。
【0121】
第2の3D形状データは、分類されたグループ内の第1の3D形状データとは異なる他の3D形状データである。第1の部位は、第1の3D形状データがあらわす一部分の形状(部位)である。第2の部位は、第2の3D形状データがあらわす一部分の形状(部位)である。各部位は、例えば、辺、穴部、弧形のエッジ部などである。
【0122】
例えば、特定部605は、第1の3D形状データの各部位(第1の部位)について、第1の3D形状データの部位(第1の部位)と対応する第2の3D形状データの部位(第2の部位)を特定する。
【0123】
具体的には、例えば、特定部605は、第1の3D形状データと第2の3D形状データとのそれぞれについて、第3の単位3D形状データと第4の単位3D形状データとを取得する。ここで、第3の単位3D形状データは、例えば、第1の3D形状データを各座標軸方向の成分ごとに正規化して作成される単位3D形状データである。第4の単位3D形状データは、例えば、第2の3D形状データを各座標軸方向の成分ごとに正規化して作成される単位3D形状データである。
【0124】
ただし、第3の単位3D形状データは、第1の3D形状データから穴部の寸法情報のうちの中心点以外の情報が削除された3D形状データをもとに作成されてもよい。同様に、第4の単位3D形状データは、第2の3D形状データから穴部の寸法情報のうちの中心点以外の情報が削除された3D形状データをもとに作成されてもよい。これにより、特定部605は、穴部の外形部分を削除しつつ、穴部の中心点を特徴点として残して、単位3D形状データを作成することができる。
【0125】
つぎに、特定部605は、第3の単位3D形状データと第4の単位3D形状データとのそれぞれを、複数の軸のそれぞれの両方向から撮像した第1の複数の画像と第2の複数の画像とを生成する。ここで、第1の複数の画像は、例えば、x軸、y軸およびz軸のそれぞれの両方向から第3の単位3D形状データを撮像した2D画像の集合である。また、第2の複数の画像は、例えば、x軸、y軸およびz軸のそれぞれの両方向から第4の単位3D形状データを撮像した2D画像の集合である。
【0126】
以下の説明では、x軸、y軸およびz軸の各軸の正負の方向から3D形状データを撮像した6枚の画像(2D画像)からなる一組の図面を「6面図」と表記する場合がある。6面図のいずれかの面は、x軸、y軸およびz軸の各軸の正負の方向から3D形状データを撮像したいずれかの画像に対応する。
【0127】
より詳細に説明すると、例えば、特定部605は、x軸、y軸およびz軸のそれぞれの両方向(正負の方向)の各方向について、当該軸を中心に所定の角度αずつ第3の単位3D形状データを回転させて各方向から撮像した画像を生成することによって、第1の複数の画像を生成する。所定の角度αは、任意に設定可能であり、例えば、45度、90度、180度などの値に設定される。
【0128】
また、特定部605は、x軸、y軸およびz軸のそれぞれの両方向(正負の方向)の各方向について、当該軸を中心に所定の角度αずつ第4の単位3D形状データを回転させて各方向から撮像した画像を生成することによって、第2の複数の画像を生成する。
【0129】
例えば、x軸、y軸およびz軸のそれぞれの正負の方向の各方向について、当該軸を中心に90度ずつ3D形状データ(第3の単位3D形状データ、第4の単位3D形状データ)を回転させて各方向から撮像した場合、24枚(6×4)の画像が生成される。
【0130】
そして、特定部605は、第1の複数の画像と第2の複数の画像との比較の結果に基づいて、第1の3D形状データと第2の3D形状データの向きを合わせることによって、第1の3D形状データの第1の部位と対応する第2の3D形状データの第2の部位を特定する。
【0131】
ここで、第1の3D形状データと第2の3D形状データの向きを合わせることは、例えば、第3の単位3D形状データと第4の単位3D形状データの向きを合わせることによって行われる。第1の複数の画像と第2の複数の画像との比較の結果に基づいて、第3の単位3D形状データと第4の単位3D形状データの向きを合わせる手法(手法1~3)については後述する。
【0132】
また、特定部605は、第3の単位3D形状データと第4の単位3D形状データの向きを合わせて、第3の単位3D形状データと第4の単位3D形状データとの間の部位同士の対応関係を特定する。例えば、各単位3D形状データの各部位を辺とする。弧形のエッジ部は、辺として扱ってもよい。また、各辺を、3次元空間における各部位の始点(xstart,ystart,zstart)、終点(xend,yend,zend)を要素とするベクトルによって表す。
【0133】
この場合、特定部605は、第3の単位3D形状データの辺ごとに、当該辺のベクトルと、第4の単位3D形状データの各辺のベクトルとを比較して、ベクトル間の距離を算出する。そして、特定部605は、第3の単位3D形状データの辺ごとに、第4の単位3D形状データの辺のうち、算出した距離が最も近い辺を、第3の単位3D形状データの辺に対応する辺として特定する。これにより、第3の単位3D形状データと第4の単位3D形状データとの間の辺同士の対応関係を特定することができる。
【0134】
また、各単位3D形状データの各部位を穴部とする。また、各穴部を、各穴部の中心点の座標を要素とするベクトルによって表す。この場合、特定部605は、第3の単位3D形状データの穴部ごとに、当該穴部のベクトルと、第4の単位3D形状データの各穴部のベクトルとを比較して、ベクトル間の距離を算出する。
【0135】
そして、特定部605は、第3の単位3D形状データの穴部ごとに、第4の単位3D形状データの穴部のうち、算出した距離が最も近い穴部を、第3の単位3D形状データの穴部に対応する穴部として特定する。これにより、第3の単位3D形状データと第4の単位3D形状データとの間の穴部同士の対応関係を特定することができる。
【0136】
ここで、第1の3D形状データと第3の単位3D形状データとの部位同士の対応関係は、例えば、変換前後の対応する部位を関連付けておくことで特定可能である。また、第2の3D形状データと第4の単位3D形状データとの部位同士の対応関係は、例えば、変換前後の対応する部位を関連付けておくことで特定可能である。
【0137】
このため、特定部605は、第3の単位3D形状データと第4の単位3D形状データとの間の部位同士の対応関係から、第1の3D形状データの第1の部位と対応する第2の3D形状データの第2の部位を特定することができる。例えば、特定部605は、第3の単位3D形状データと第4の単位3D形状データとの間の部位同士の対応関係から、変換前の3D形状データ間の同一の場所を同定する。
【0138】
このように、特定部605は、第3の単位3D形状データと第4の単位3D形状データの向きを合わせることができれば、第1の3D形状データの第1の部位と対応する第2の3D形状データの第2の部位を特定することができる。
【0139】
ここで、第1の複数の画像と第2の複数の画像との比較の結果に基づいて、第3の単位3D形状データと第4の単位3D形状データの向きを合わせる手法(手法1~3)について説明する。
【0140】
まず、第1の複数の画像と第2の複数の画像との比較の結果に基づいて、第3の単位3D形状データと第4の単位3D形状データの向きを合わせる手法1について説明する。
【0141】
特定部605は、第1の複数の画像のそれぞれと第2の複数の画像のそれぞれとを比較して、各画像間の類似度を算出する。各画像間の類似度は、例えば、各画像の特徴量をもとに算出される。つぎに、特定部605は、算出した各画像間の類似度に基づいて、第1の複数の画像に含まれる画像と、第2の複数の画像に含まれる画像との対応関係を特定する。そして、特定部605は、特定した対応関係に基づいて、第3の単位3D形状データと第4の単位3D形状データの向きを合わせる。
【0142】
より詳細に説明すると、例えば、特定部605は、第1の複数の画像(例えば、24枚)と第2の複数の画像(例えば、24枚)とを用いて、第3の単位3D形状データと第4の単位3D形状データとの間で、総当たりで画像の類似度を算出する。そして、特定部605は、算出した類似度が高い上位3つの画像ペア(面)を特定することで、第3の単位3D形状データと第4の単位3D形状データとの向きを特定する情報を取得する。
【0143】
これにより、特定部605は、第1の3D形状データと第2の3D形状データの向きを合わせて、第1の3D形状データの第1の部位と対応する第2の3D形状データの第2の部位を特定することができる。
【0144】
つぎに、第1の複数の画像と第2の複数の画像との比較の結果に基づいて、第3の単位3D形状データと第4の単位3D形状データの向きを合わせる手法2について説明する。
【0145】
特定部605は、第1の複数の画像から第1の基準画像を選択する。ここで、基準画像とは、6面図における各画像(面)の配置パターンを考慮して、第1の複数の画像と第2の複数の画像とを比較する際に基準となる画像であり、例えば、第1の複数の画像のうちの特徴が最も大きい画像である。
【0146】
つぎに、特定部605は、選択した第1の基準画像と第2の複数の画像のそれぞれとの比較の結果に基づいて、第2の複数の画像から第2の基準画像を特定する。具体的には、例えば、特定部605は、第2の複数の画像から、第1の基準画像との類似度が最も高い画像を第2の基準画像として特定する。
【0147】
つぎに、特定部605は、第1の複数の画像のうち、第1の基準画像を撮像した際の第3の単位3D形状データを、第1の基準画像を撮像した方向とは異なる他の方向のそれぞれから撮像した画像の組み合わせ(「第1の組み合わせ」という)を特定する。第1の組み合わせは、例えば、第1の基準画像を撮像した方向に隣接する他の方向のそれぞれから撮像した画像の組み合わせである。
【0148】
一例として、第1の基準画像を撮像した方向をx軸の負の方向とすると、その方向に隣接する他の方向は、最大でy軸の正負の方向およびz軸の正負の方向の4方向である。より詳細に説明すると、例えば、第1の組み合わせは、第1の基準画像に対応する面の隣接4面のそれぞれに対応する画像の組み合わせである。ただし、第1の組み合わせは、第1の基準画像に対応する面の隣接4面のうちの少なくとも1面の画像であってもよい。
【0149】
また、特定部605は、第2の複数の画像のうち、第2の基準画像を撮像した際の第4の3D形状データを、第2の基準画像を撮像した方向とは異なる他の方向のそれぞれから撮像した画像の組み合わせ(「第2の組み合わせ」という)を特定する。第2の組み合わせは、例えば、第2の基準画像を撮像した方向に隣接する他の方向のそれぞれから撮像した画像の組み合わせである。
【0150】
一例として、第2の基準画像を撮像した方向をx軸の負の方向とすると、その方向に隣接する他の方向は、最大でy軸の正負の方向およびz軸の正負の方向の4方向である。より詳細に説明すると、例えば、第2の組み合わせは、第2の基準画像に対応する面の隣接4面のそれぞれに対応する画像の組み合わせである。ただし、第2の組み合わせは、第2の基準画像に対応する面の隣接4面のうちの少なくとも1面の画像であってもよい。
【0151】
そして、特定部605は、特定した第1の組み合わせの画像と第2の組み合わせの画像との比較の結果に基づいて、第3の単位3D形状データと第4の単位3D形状データの向きを合わせる。このように、手法2では、特定部605は、例えば、最も特徴の大きな面(基準画像)を特定した後、その面の隣接4面により、第3の単位3D形状データと第4の単位3D形状データの向きを合わせる。
【0152】
これにより、特定部605は、第1の3D形状データと第2の3D形状データの向きを合わせて、第1の3D形状データの第1の部位と対応する第2の3D形状データの第2の部位を特定することができる。
【0153】
つぎに、第1の複数の画像と第2の複数の画像との比較の結果に基づいて、第3の単位3D形状データと第4の単位3D形状データの向きを合わせる手法3について説明する。
【0154】
特定部605は、第1の複数の画像から、第3の単位3D形状データを固定して、複数の軸のそれぞれの両方向から第3の単位3D形状データを撮像した画像の組み合わせ(以下、「第3の組み合わせ」という)を特定する。また、特定部605は、第2の複数の画像から、複数の軸のそれぞれを中心に所定の角度αずつ回転させた第4の単位3D形状データごとに、複数の軸のそれぞれの両方向から第4の単位3D形状データを撮像した画像の組み合わせ(以下「第4の組み合わせ」という)をそれぞれ特定する。
【0155】
そして、特定部605は、特定した第3の組み合わせの画像と第4の組み合わせの画像との比較の結果に基づいて、第3の単位3D形状データと第4の単位3D形状データの向きを合わせる。具体的には、例えば、特定部605は、第3の単位3D形状データと第4の単位3D形状データとの間で、6面同時に面同士を比較し、総合評価が最も高いパターンを特定する。
【0156】
これにより、特定部605は、第1の3D形状データと第2の3D形状データの向きを合わせて、第1の3D形状データの第1の部位と対応する第2の3D形状データの第2の部位を特定することができる。
【0157】
ただし、特定部605は、同一グループに分類された3D形状データ間における部位の対応関係を特定するにあたり、例えば、クライアント装置202を用いたユーザの操作入力により、グループ内の各3D形状データの向きを揃えてもよい。また、特定部605は、ユーザの操作入力により、グループ内の3D形状データ間で対応する部位を特定してもよい。
【0158】
ここで、グループ内の3D形状データ(第1の3D形状データ)内の部位(第1の部位)と対応する他の3D形状データ(第2の3D形状データ)内の部位(第2の部位)がそれぞれ特定されたとする。この場合、特定部605は、特定した部位の対応関係、および、グループ内の各3D形状データの部位ごとの寸法情報に基づいて、グループ内の3D形状データの異なる部位間の寸法の関係性を特定する。
【0159】
具体的には、例えば、特定部605は、例えば、第1の3D形状データから第1の部位の寸法を抽出する。また、特定部605は、第2の3D形状データから、第1の部位に対応する第2の部位の寸法を抽出する。
【0160】
例えば、特定部605は、抽出した第1の部位の寸法と、抽出した第2の部位の寸法とを対応付けることで、後述の図17に示すような寸法表1700を作成することができる。特定部605は、抽出した第1の部位の寸法と、抽出した第2の部位の寸法とに基づいて、グループ内の3D形状データの異なる部位間の寸法の関係性を特定する。
【0161】
より詳細に説明すると、例えば、特定部605は、後述の図17に示すような寸法表1700を参照して、グループ内の各3D形状データ内の部位ごとに、当該部位の各3D形状データにおける寸法を要素とするベクトルを作成する。そして、特定部605は、各3D形状データ内の複数の部位のうちのいずれかの部位を目的変数とし、他の部位を説明変数として、作成した部位ごとのベクトルに基づいて、異なる部位間の寸法の関係性を示す関係式を作成する。
【0162】
また、特定部605は、グループ内の3D形状データについて、3D形状データ内の同一平面上の異なる穴部間の位置の関係性を特定してもよい。具体的には、例えば、特定部605は、グループ内の各3D形状データについて、各3D形状データにおける平面上に、同一直線上の複数の穴部それぞれの中心点が存在するか否かを判断する。
【0163】
ここで、同一直線上の複数の穴部それぞれの中心点が存在する場合、特定部605は、複数の穴部それぞれの中心点が直線上に等間隔に配置されているか否かを判断する。そして、特定部605は、複数の穴部それぞれの中心点が直線上に等間隔に配置されている場合、平面上の異なる穴部間の位置の関係性を特定する。
【0164】
より詳細に説明すると、例えば、特定部605は、複数の穴部に含まれる穴部の個数に基づいて、複数の穴部の両端の穴部の中心点間の間隔と、複数の穴部の隣接する穴部の中心点間の間隔とから、平面上の異なる穴部間の位置の関係性を特定する穴位置モデルを作成する。
【0165】
これにより、特定部605は、平面上の異なる穴部間の位置の関係性(穴位置モデル)を導出することができる。穴位置モデルは、穴部の個数をパラメータとして、複数の穴部の位置関係を表現するものであり、パラメトリックモデルに含まれる。穴位置モデルは、グループ内の3D形状データ内の面(平面)に対して導出される。穴位置モデルの具体例については、図18を用いて後述する。
【0166】
出力部608は、分類されたグループ内の3D形状データに対応する単位3D形状データと対応付けて、特定された部位間の寸法の関係性を示す情報を出力する。ここで、3D形状データに対応する単位3D形状データとは、例えば、3D形状データ(削除後)から作成された単位3D形状データである。この場合、単位3D形状データには、穴部の寸法情報が含まれていない。
【0167】
このため、出力部608は、3D形状データ内の穴部の寸法情報をさらに対応付けて出力してもよい。これにより、出力部608は、例えば、単位3D形状データと対応付けて、特定された部位間の寸法の関係性を示す情報を出力する際に、単位3D形状データ内の、穴部の中心点に対応する位置に、穴部をあらわすシンボルなどを表示可能にすることができる。
【0168】
単位3D形状データにおける穴部の中心点に対応する位置は、任意に設定可能である。例えば、元の3D形状データにおいて穴部の中心点が存在する平面に対応する、単位3D形状データ内の平面上の所定の位置としてもよい。所定の位置は、例えば、平面の中央付近、左上付近、右上付近などである。
【0169】
また、出力部608は、3D形状データ内の平面と対応付けて、特定された穴部間の位置の関係性を示す情報をさらに対応付けて出力してもよい。例えば、分類されたグループ内の3D形状データ内の第1の平面に対応する穴位置モデルが作成されたとする。また、3D形状データの単位3D形状データにおける第1の平面に対応する平面を第2の平面とする。
【0170】
この場合、出力部608は、例えば、単位3D形状データ内の第2の平面と対応付けて、第1の平面に対応する穴位置モデルを出力してもよい。第1の平面に対応する穴位置モデルは、例えば、第1の平面に対応する、グループ内の他の3D形状データ内の平面における穴部間の位置の関係性もあらわしているといえる。
【0171】
出力部608の出力形式としては、例えば、メモリ302、ディスク304などの記憶装置への記憶、通信I/F305による他のコンピュータ(例えば、図2に示したクライアント装置202)への送信、不図示のディスプレイへの表示などがある。具体的には、例えば、出力部608は、グループ内の3D形状データの単位3D形状データと対応付けて、特定された部位間の寸法の関係性を示す情報を記憶部610に記憶することにしてもよい。
【0172】
より詳細に説明すると、例えば、出力部608は、グループ内の3D形状データの単位3D形状データを標準形状データとして、特定されたグループ内の3D形状データの部位間の寸法の関係性を示す関係式と対応付けて、図5に示した標準形状DB230に記憶してもよい。関係式には、穴位置モデルが含まれていてもよい。
【0173】
この際、出力部608は、標準形状データ(単位3D形状データ)をもとに同一グループに分類された3D形状データを特定可能な情報、例えば、類似形状リストを、標準形状DB230にあわせて記憶してもよい。また、出力部608は、同一グループに分類されたいずれかの3D形状データ内の穴部の寸法情報を、標準形状DB230にあわせて記憶してもよい。
【0174】
これにより、単位3D形状データとともに、単位3D形状データで分類される3D形状のパラメトリックモデル(関係式)を知識として蓄積することができる。
【0175】
また、作成部602は、指定されたターゲットの3D形状データを、各座標軸方向の成分ごとに正規化して、ターゲットの単位3D形状データを作成する。具体的には、たとえ亜、作成部602は、指定されたターゲットの3D形状データから、穴部の寸法情報を削除する。そして、作成部602は、ターゲットの3D形状データ(削除後)を、各座標軸方向の成分ごとに正規化して単位3D形状データを作成する。
【0176】
検索部606は、記憶部610を参照して、作成されたターゲットの単位3D形状データと類似する第1の単位3D形状データを検索する。具体的には、例えば、検索部606は、標準形状DB230を参照して、ターゲットの単位3D形状データと標準形状データとの類似度を算出する。そして、検索部606は、算出した類似度が閾値以上となる標準形状データを検索する。
【0177】
出力部608は、検索された第1の単位3D形状データと、第1の単位3D形状データと対応付けて記憶部610に記憶された異なる部位間の寸法の関係性を示す情報を出力する。具体的には、例えば、出力部608は、検索された標準形状データと、当該標準形状データと対応付けて標準形状DB230に記憶されている関係式とを出力する。この際、出力部608は、標準形状データにおける穴部の中心点に対応する位置に、穴部をあらわすシンボルを表示してもよい。また、出力部608は、標準形状データ内の面(第2の平面)と対応付けて、当該面に対応する3D形状データ内の面(第1の平面)について作成された穴位置モデルを出力してもよい。
【0178】
標準形状データと関係式の出力先は、例えば、クライアント装置202である。これにより、設計者は、新規設計を行う際に、標準形状データをもとに、関係式(パラメトリックな関係)に従って対象物の設計を行うことができる。
【0179】
また、受付部601は、対象物に関する設計要件の指定を受け付けてもよい。ここで、対象物に関する設計要件は、対象物を設計する際に満たすべき条件を示すものであり、例えば、特定の部位の寸法を示す。
【0180】
生成部607は、検索された第1の単位3D形状データと、指定された設計要件とに基づいて、第1の単位3D形状データと対応付けて記憶部610に記憶された異なる部位間の寸法の関係性を示す情報に従って、対象物に関する設計データを生成する。この場合、出力部608は、生成された対象物に関する設計データを出力する。
【0181】
具体的には、例えば、生成部607は、検索された標準形状データと、指定された設計要件とに基づいて、当該標準形状データと対応付けて標準形状DB230に記憶されている関係式に従って、対象物に関する設計データを生成する。
【0182】
これにより、例えば、設計者が標準形状データの特定の辺の寸法を指定すると、関係式に従って、その辺と寸法の関係性を有する他の辺の寸法が自動で変更され、対象物に関する設計データを自動生成することができる。なお、関係式に反した設計要件が指定された場合は、例えば、要件違反としてエラーとなる。
【0183】
また、記憶部610には、グループ内の3D形状データの単位3D形状データと対応付けて、当該グループ内の3D形状データが記憶されることにしてもよい。この場合、出力部608は、検索された第1の単位形状データと対応付けて記憶部610に記憶された、グループ内の3D形状データを出力することにしてもよい。
【0184】
具体的には、例えば、まず、出力部608は、検索された標準形状データと対応付けて標準形状DB230に記憶されている類似形状リストを特定する。つぎに、出力部608は、3D形状DB220から、特定した類似形状リストに含まれるidの3D形状データを抽出する。そして、出力部608は、抽出した3D形状データを出力する。
【0185】
これにより、設計者は、新規設計を行う際に、例えば、単位3D形状データをもとにターゲットと同一グループに分類された、過去に設計された3D形状データを流用して、対象物の設計を行うことができる。
【0186】
また、出力部608は、検索された第1の単位形状データと対応付けて記憶部610に記憶された、グループ内の3D形状データと、異なる部位間の寸法の関係性を示す情報とを出力することにしてもよい。具体的には、例えば、まず、出力部608は、検索された標準形状データと対応付けて標準形状DB230に記憶されている類似形状リストを特定する。
【0187】
つぎに、出力部608は、3D形状DB220から、特定した類似形状リストに含まれるidの3D形状データを抽出する。そして、出力部608は、抽出した3D形状データと、検索された標準形状データと対応付けて標準形状DB230に記憶されている関係式(例えば、穴位置モデルを含む)とを出力する。
【0188】
これにより、設計者は、新規設計を行う際に、過去に設計された3D形状データをもとに、関係式(パラメトリックな関係)に従って対象物の設計を行うことができる。また、例えば、設計者が、過去に設計された3D形状データのある辺の寸法を指定すると、関係式に従って、その辺と寸法の関係性を有する他の辺の寸法が自動で変更され、対象物に関する設計データを自動生成することができる。また、設計者は、同一直線上の複数の穴部について、穴位置モデルから、周期的に生じる離散的にあらわれる関係性を見つけることができる。
【0189】
なお、上述した説明では、標準形状DB230には、同一グループに分類された3D形状データごとの単位3D形状データが記憶されることにしたが、これに限らない。例えば、標準形状DB230には、同一グループに分類されたいずれかの3D形状データの単位3D形状データのみが標準形状データとして登録されることにしてもよい。
【0190】
(モデル生成装置201の動作例)
つぎに、図11Aおよび図11Bを用いて、モデル生成装置201の動作例について説明する。
【0191】
図11Aおよび図11Bは、モデル生成装置201の動作例を示す説明図である。図11Aにおいて、3D形状DB220内の3D形状データ1101~1103が示されている。3D形状データ1101~1103は、2個の穴部をそれぞれ有する3D形状データであり、3D形状DB220内の複数の3D形状データの一例である。
【0192】
モデル生成装置201は、各3D形状データ1101~1103から、穴部の寸法情報を削除する。ここでは、各3D形状データ1101~1103から穴部の寸法情報が削除された削除後の3D形状データ1101’~1103’(削除後)が示されている。この際、モデル生成装置201は、例えば、穴部の寸法情報のうち中心点のみは特徴点として、各3D形状データ1101’~1103’(削除後)に残してもよい。
【0193】
つぎに、モデル生成装置201は、各3D形状データ1101’~1103’(削除後)を、各座標軸方向の成分ごとに正規化して単位3D形状データを作成する。ここでは、各3D形状データ1101’~1103’(削除後)から各単位3D形状データ1111~1113が作成される。
【0194】
そして、モデル生成装置201は、作成した各単位3D形状データ1111~1113に基づいて、3D形状データ1101~1103を分類する。ここでは、3D形状データ1101をターゲットの3D形状データとし、3D形状データ1101の単位3D形状データ1111と単位3D形状データ1112,1113との類似度が閾値以上であったとする。この場合、3D形状データ1101~1103が同一グループに分類される(類似形状検索)。
【0195】
図11Bにおいて、モデル生成装置201は、分類したグループ内の各3D形状データ1101~1103の各穴部について、第1の距離を算出する。第1の距離は、各3D形状データ1101~1103において各穴部の中心点と同一平面にある直線との距離である。そして、モデル生成装置201は、算出した第1の距離を、各3D形状データ1101~1103内の各穴部の寸法情報に追加する。
【0196】
また、モデル生成装置201は、各3D形状データ1101~1103の各穴部について、第2の距離を算出する。第2の距離は、各穴部の中心点と、同一の平面上の他の穴部の中心点との距離である。そして、モデル生成装置201は、算出した第2の距離を、各3D形状データ1101~1103内の各穴部の寸法情報に追加する。
【0197】
ここで、図12を用いて、穴部に関する新たな寸法の算出例について説明する。
【0198】
図12は、穴部に関する新たな寸法の算出例を示す説明図である。図12において、3D形状データ1111が示されている。3D形状データ1101は、穴部1201,1202を有する。モデル生成装置201は、平面piの3つの端点(エッジ部の端点)の座標から、平面piの方程式「pi:αx+βy+γz+δ=0」を算出する(α、β、γ、δは、定数)。
【0199】
つぎに、モデル生成装置201は、平面piの方程式「pi:αx+βy+γz+δ=0」から、平面pi上にある穴部の中心点Oiを特定する。ここでは、2つの穴部1201,1202の中心点O1,O2が特定される。モデル生成装置201は、各穴部1201,1202について、第1および第2の距離を算出する。
【0200】
例えば、穴部1202について、中心点O2と同一平面piにある直線1203との距離d1が、第1の距離として算出される。また、穴部1202について、中心点O2と同一平面piにある他の穴部1201の中心点Oとの距離d2が、第2の距離として算出される。
【0201】
図11Bの説明に戻り、モデル生成装置201は、分類したグループ内の各3D形状データ1101~1103の部位ごとの寸法情報に基づいて、グループ内の3D形状データ1101~1103の異なる部位間の寸法の関係性を特定する。ここでは、3D形状データ1101~1103の異なる部位間の寸法の関係性が特定されて、パラメトリックモデル1120が生成された場合を想定する。
【0202】
パラメトリックモデル1120は、単位3D形状データ1111と、関係式1121とを含む。単位3D形状データ1111では、穴部の中心点(特徴点)がある位置に、穴部を表すシンボル1122,1123が表示されている。関係式1121は、3D形状データ1101~1103の異なる部位間の寸法の関係性を示す関係式である。
【0203】
(パラメトリックモデルの構築例)
つぎに、図13図17を用いて、パラメトリックモデルの構築例について説明する。
【0204】
図13は、3D形状データの一例を示す説明図である。図13において、3D形状データA~Eは、単位3D形状データをもとに同一グループに分類された3D形状データである。ここで、3D形状データCを例に挙げて、新たな寸法(第1の距離、第2の距離)の算出例について説明する。
【0205】
図14および図15は、新たな寸法の算出例を示す説明図である。図14において、3D形状データC内の平面P1が示されている。ここでは、3D形状データC内の平面P1を例に挙げて、新たな寸法の算出例について説明する。
【0206】
(i)モデル生成装置201は、平面P1の端点Aの座標(ax,ay,az)、端点Bの座標(bx,by,bz)および端点C(cx,cy,cz)の座標から、平面P1の方程式「p1:α1x+β1y+γ1z+δ1=0」を算出する。ここでは、平面P1を例に挙げて説明したが、3D形状データC内の各平面Piについて、平面Piの方程式が算出される(i=1,2,…)。
【0207】
(ii)モデル生成装置201は、3D形状データC内の各穴部の中心点Ojの座標から、各平面Pi上にある中心点を特定し、特定した中心点をグループGikとする(k=1,2,…)。ここでは、平面P1上にある中心点O1,O2,O3を含むグループG11が特定される。
【0208】
(iii)モデル生成装置201は、グループGik内の各中心点Ojに対して、平面Pi上の直線Lim(m=1,2,…)との距離djimを算出する。ここでは、平面P1上にある中心点O1と、平面P1上の直線L11との距離d111が算出される(第1の距離)。また、平面P1上にある中心点O1と、平面P1上の直線L12との距離d112が算出される(第1の距離)。
【0209】
また、平面P1上にある中心点O2と、平面P1上の直線L11との距離d211が算出される(第1の距離)。また、平面P1上にある中心点O2と、平面P1上の直線L12との距離d212が算出される(第1の距離)。
【0210】
図示は省略するが、同様に、平面P1上にある中心点O3についても、平面P1上にある中心点O3と、平面P1上の直線L11との距離d311が算出される(第1の距離)。また、平面P1上にある中心点O3と、平面P1上の直線L12との距離d312が算出される(第1の距離)。
【0211】
図15において、3D形状データC内の平面P1(端点A,B,C,D)が示されている。(iv)モデル生成装置201は、グループGik内の中心点群に対して、異なる中心点間(中心点Osと中心点Otとの間)の距離Dstを算出する。(s,t:自然数)。ここでは、グループG11内の中心点O1,O2間の距離D12と、グループG11内の中心点O1,O3間の距離D13と、グループG11内の中心点O2,O3間の距離D23とが算出される。
【0212】
(v)モデル生成装置201は、グループGik内の中心点群に対して、異なる中心点Os,Otを結ぶ直線の方程式Lstを構築し、Lstを用いて同直線状上の点を総当たりで探索する。そして、モデル生成装置201は、同一直線上の中心点のグループを作成し、その中心点の個数を新たなパラメータ個数Nとする。
【0213】
方程式Lstは、例えば、下記式(7)によって表される。ただし、中心点Osの座標を(xs,ys,zs)とし、中心点Otの座標を(xt,yt,zt)とする。
【0214】
st:(x-xs)/(xs-xt)=(y-ys)/(ys-yt
=(z-zs)/(zs-zt) ・・・(7)
【0215】
例えば、モデル生成装置201は、上記(i)~(v)の処理を、図13に示した各3D形状データA~E内の各面(平面Pi)に対して実行する。算出された結果は、各3D形状データA~E内の各穴部の寸法情報に追加される。そして、モデル生成装置201は、各3D形状データA~Eから各部位の寸法を抽出し、図17に示すような寸法表1700を作成する。
【0216】
図16は、3D形状データ内の部位の寸法の一例を示す説明図である。図17は、部位間の寸法の関係性を示す関係式の構築例を示す説明図である。図16において、同一グループに分類された3D形状データA~Eのうちの3D形状データCが示されている。
【0217】
3D形状データC内のs1~s11は、3D形状データC内の部位に関する寸法を示している。ただし、図16および図17では、3D形状データC内の部位に関する寸法の一部を抜粋して表示している。例えば、寸法s1~s3,s9は、部位「辺」の長さを示す。寸法s10,s11は、穴部の寸法(例えば、半径)を示す。寸法s4~s8は、穴部について新たに算出された寸法(例えば、第1の距離、第2の距離)を示す。
【0218】
まず、モデル生成装置201は、同一グループに分類された3D形状データA~Eの単位3D形状データについて、x軸、y軸、z軸の方向を一致させて向きを揃える。つぎに、モデル生成装置201は、向きを揃えた単位3D形状データに基づき、各3D形状データA~Eの向きを揃えて、同一の部位となる頂点や寸法の整合性をとることにより、図17に示すような各部位の寸法表1700を作成する。
【0219】
図17において、寸法表1700は、各3D形状データA~Eにおける各部位に関する寸法s1~s11を示す。ここでは、各3D形状データA~Eにおける各部位に関する寸法s1~sn(n:自然数)のうちの寸法s1~s11のみを示している。
【0220】
つぎに、モデル生成装置201は、作成した寸法表1700を参照して、各部位間の寸法の関係性を回帰分析等により関係式を導出する。例えば、モデル生成装置201は、各寸法について、当該各寸法の各3D形状データA~Eにおける値を要素とする列ベクトルv(例えば、v1,v2,…,vn)を作成する。
【0221】
そして、モデル生成装置201は、変数v[v1,v2,…,vn]を用いて、各部位間の寸法の関係性を示す関係式を求める。例えば、モデル生成装置201は、変数vを目的変数yと説明変数xに分けて、回帰モデルを構築する。例えば、vnを目的変数yとし、残りの変数を説明変数xkとして回帰モデルを構築すると、下記式(8)のようにあらわされる。ただし、β0,β1,β2,…は、回帰母数である。
【0222】
【数1】
【0223】
図16に示した3D形状データCの場合、例えば、下記式(9)~(13)の関係式(回帰モデル)が得られる。ただし、下記式(9)~(13)は、各部位間の寸法の関係性を示す関係式の一部を抜粋したものである。
【0224】
s5=s6×0.5 ・・・(9)
s5=s1×0.2 ・・・(10)
s4=s2×0.5 ・・・(11)
s9=s3 ・・・(12)
s10=s11 ・・・(13)
【0225】
これにより、モデル生成装置201は、単位3D形状データをもとに分類される形状(3D形状データA~E)のパラメトリックモデル(例えば、上記式(9)~(13))を構築することができる。
【0226】
(穴位置モデルの具体例)
つぎに、穴位置モデルの具体例について説明する。
【0227】
図18は、穴位置モデルの具体例をあらわす説明図である。図18において、穴部A1,A2,…Anは、3D形状データの同一平面pi上において、穴部A1,A2,…Anそれぞれの中心点が同一直線1801上に等間隔に並んだ複数の穴部をあらわす。
【0228】
このような場合、平面pi上の穴部A1,A2,…Anの位置関係は、例えば、下記式(14)のような穴位置モデルによってあらわされる。ただし、nは、穴部の個数である。d0は、穴部A1~Anの両端の穴部の中心点間の間隔である。diは、穴部A1~Anの隣接する穴部の中心点間の間隔である。
【0229】
i=d0/(n-1) ・・・(14)
【0230】
図19A図19Bおよび図19Cは、穴部の配置例を示す説明図である。図19Aにおいて、3D形状データの同一平面p1上において、同一直線1901上に等間隔に並んだ2個の穴部A1,A2が示されている。この場合、上記式(14)に穴部の個数「n=2」を代入することにより、穴部A1,A2の位置関係を表現する穴位置モデル「di=d1/(2-1)」が作成される。
【0231】
図19Bにおいて、3D形状データの同一平面p2上において、同一直線1902上に等間隔に並んだ3個の穴部A1,A2,A3が示されている。この場合、上記式(14)に穴部の個数「n=3」を代入することにより、穴部A1,A2,A3の位置関係を表現する穴位置モデル「di=d2/(3-1)」が作成される。
【0232】
図19Cにおいて、3D形状データの同一平面p3上において、同一直線1903上に等間隔に並んだ4個の穴部A1,A2,A3,A4が示されている。この場合、上記式(14)に穴部の個数「n=4」を代入することにより、穴部A1,A2,A3,A4の位置関係を表現する穴位置モデル「di=d3/(4-1)」が作成される。
【0233】
このように、穴位置モデルによれば、例えば、3D形状データ内の平面piにおいて、同一直線上に周期的にあらわれる複数の穴部の関係性を見つけることができる。
【0234】
(モデル生成装置201の各種処理手順)
つぎに、図20図31を用いて、モデル生成装置201の各種処理手順について説明する。まず、図20を用いて、モデル生成装置201の事前準備処理手順について説明する。
【0235】
図20は、モデル生成装置201の事前準備処理手順の一例を示すフローチャートである。図20のフローチャートにおいて、まず、モデル生成装置201は、3D形状DB220を参照して、選択されていない未選択の3D形状データを選択する(ステップS2001)。選択対象とする3D形状データは、例えば、特定の部位(曲線部、穴部)を有する3D形状データである。
【0236】
つぎに、モデル生成装置201は、選択した3D形状データについて、穴部の寸法情報を削除した3D形状データ(削除後)を作成する(ステップS2002)。そして、モデル生成装置201は、3D形状データ(削除後)についての単位形状作成処理を実行する(ステップS2003)。単位形状作成処理の具体的な処理手順については、図21を用いて後述する。
【0237】
そして、モデル生成装置201は、3D形状DB220を参照して、選択されていない未選択の3D形状データがあるか否かを判断する(ステップS2004)。ここで、未選択の3D形状データがある場合(ステップS2004:Yes)、モデル生成装置201は、ステップS2001に戻る。一方、未選択の3D形状データがない場合(ステップS2004:No)、モデル生成装置201は、本フローチャートによる一連の処理を終了する。
【0238】
これにより、モデル生成装置201は、事前準備として、3D形状DB220に登録されている各3D形状データの単位3D形状データを作成することができる。この際、モデル生成装置201は、3D形状データに穴部が含まれる場合、3D形状データから穴部の寸法情報を削除した3D形状データ(削除後)の単位3D形状データを作成することができる。なお、作成された単位3D形状データは、例えば、作成元の3D形状データと対応付けて、3D形状DB220に保持されることにしてもよい。
【0239】
つぎに、図21を用いて、図20に示したステップS2003の単位形状作成処理の具体的な処理手順について説明する。
【0240】
図21は、単位形状作成処理の具体的処理手順の一例を示すフローチャートである。図21のフローチャートにおいて、まず、モデル生成装置201は、3D形状データ(削除後)の各頂点の座標から各座標軸方向の最小値を抽出する(ステップS2101)。そして、モデル生成装置201は、各頂点の座標の各値から、抽出した各座標軸方向の最小値を減算して、3D形状データ(削除後)を平行移動する(ステップS2102)。
【0241】
つぎに、モデル生成装置201は、平行移動後の3D形状データ(削除後)の各頂点の座標から各座標軸方向の最大値を抽出する(ステップS2103)。そして、モデル生成装置201は、平行移動後の3D形状データ(削除後)の各頂点の座標の各値を、抽出した各座標軸方向の最大値で除算して、単位3D形状データを作成し(ステップS2104)、単位形状作成処理を呼び出したステップに戻る。
【0242】
これにより、モデル生成装置201は、各座標軸方向での部位間の寸法の関係性を維持したまま、3D形状データ(削除後)を正規化することができる。
【0243】
つぎに、図22を用いて、モデル生成装置201の標準形状登録処理手順について説明する。標準形状登録処理は、対象物の設計を行う前に、標準形状DB230に標準形状データを事前登録するための処理である。
【0244】
図22は、モデル生成装置201の標準形状登録処理手順の一例を示すフローチャートである。図22のフローチャートにおいて、まず、モデル生成装置201は、ターゲット形状の指定を受け付けたか否かを判断する(ステップS2201)。ここで指定されるターゲット形状は、3D形状DB220に登録されている3D形状データを分類するために指定される3D形状データであり、例えば、3D形状DB220から指定される。
【0245】
ここで、モデル生成装置201は、ターゲット形状の指定を受け付けるのを待つ(ステップS2201:No)。そして、モデル生成装置201は、ターゲット形状の指定を受け付けた場合(ステップS2201:Yes)、指定されたターゲット形状について、穴部の寸法情報を削除したターゲット形状(削除後)を作成する(ステップS2202)、ターゲット形状(削除後)についての単位形状作成処理を実行する(ステップS2203)。
【0246】
なお、ターゲット形状についての単位形状作成処理の具体的な処理手順については、図21に示した処理手順と同様のため、図示および説明を省略する。ターゲット形状の単位3D形状データが既に作成済みの場合は、モデル生成装置201は、ステップS2203をスキップすることにしてもよい。
【0247】
つぎに、モデル生成装置201は、作成した単位3D形状データに基づいて、複数の3D形状データを分類する形状分類処理を実行する(ステップS2204)。形状分類処理の具体的な処理手順については、図23を用いて後述する。
【0248】
そして、モデル生成装置201は、分類したグループ内の3D形状データ間の部位同士の対応関係を特定する対応付け処理を実行する(ステップS2205)。対応付け処理の具体的な処理手順については、図24を用いて後述する。
【0249】
つぎに、モデル生成装置201は、分類したグループ内の各3D形状データに対して、新たな寸法を追加する寸法情報追加処理を実行する(ステップS2206)。寸法情報追加処理の具体的な処理手順については、図26および図27を用いて後述する。
【0250】
そして、モデル生成装置201は、分類したグループ内の3D形状データの異なる部位間の寸法の関係式を構築する関係式構築処理を実行する(ステップS2207)。関係式構築処理の具体的な処理手順については、図28を用いて後述する。
【0251】
つぎに、モデル生成装置201は、分類したグループ内の各3D形状データについて、各面に対して穴位置モデルを構築する穴位置モデル構築処理を実行する(ステップS2208)。穴位置モデル構築処理の具体的な処理手順については、図29を用いて後述する。
【0252】
そして、モデル生成装置201は、グループ内の各3D形状データの単位3D形状データをそれぞれ標準形状データとして、標準形状データと、構築した関係式および穴位置モデルと、類似形状リストとを対応付けて、標準形状DB230に登録して(ステップS2209)、本フローチャートによる一連の処理を終了する。
【0253】
これにより、モデル生成装置201は、標準形状データ(単位3D形状データ)とともに、標準形状データで分類される3D形状のパラメトリックモデル(関係式、穴位置モデル)をDB化することができる。
【0254】
つぎに、図23を用いて、図22に示したステップS2204の形状分類処理の具体的な処理手順について説明する。ここでは、図22に示したステップS2203において作成されたターゲット形状(削除後)の単位3D形状データを「単位ターゲット形状」と表記する。
【0255】
図23は、形状分類処理の具体的処理手順の一例を示すフローチャートである。図23のフローチャートにおいて、まず、モデル生成装置201は、3D形状DB220内の各3D形状データについての単位3D形状データのうち選択されていない未選択の単位3D形状データを選択する(ステップS2301)。
【0256】
そして、モデル生成装置201は、選択した単位3D形状データと、作成した単位ターゲット形状との類似度を算出する(ステップS2302)。つぎに、モデル生成装置201は、3D形状DB220内の各3D形状データの単位3D形状データのうち選択されていない未選択の単位3D形状データがあるか否かを判断する(ステップS2303)。
【0257】
ここで、未選択の単位3D形状データがある場合(ステップS2303:Yes)、モデル生成装置201は、ステップS2301に戻る。一方、未選択の単位3D形状データがない場合(ステップS2303:No)、算出した類似度が閾値以上の単位3D形状データを特定する(ステップS2304)。
【0258】
つぎに、モデル生成装置201は、3D形状DB220から、特定した単位3D形状データに対応する3D形状データを抽出する(ステップS2305)。そして、モデル生成装置201は、抽出した3D形状データを同一グループに分類して(ステップS2306)、形状分類処理を呼び出したステップに戻る。
【0259】
これにより、モデル生成装置201は、ターゲットの3D形状データと単位3D形状データが類似する3D形状データを同一グループに分類することができる。例えば、同じ形状や相似な形状だけでなく、寸法が一部異なる形状についても、同一グループに分類することができ、人間の感性に近いグループ分けを行って、新規設計時の汎用性を向上させることができる。
【0260】
また、単位3D形状データは、穴部の寸法情報が削除された3D形状データ(削除後)をもとに作成される。このため、モデル生成装置201は、穴部を有する3D形状データであっても、類似形状検索を精度よく行うことができる。例えば、モデル生成装置201は、単位3D形状データに変換するにあたり、穴部の円形状が楕円形状になって類似形状検索の精度が低下するのを防ぐことができる。
【0261】
つぎに、図24を用いて、図22に示したステップS2205の対応付け処理の具体的な処理手順について説明する。
【0262】
図24は、対応付け処理の具体的処理手順の一例を示すフローチャートである。図24のフローチャートにおいて、まず、モデル生成装置201は、ターゲット形状の単位ターゲット形状(単位3D形状データ)を取得する(ステップS2401)。ターゲット形状は、上述した第1の3D形状データに対応する。単位ターゲット形状は、ターゲット形状を各座標軸方向の成分ごとに正規化して作成される。
【0263】
そして、モデル生成装置201は、x軸、y軸およびz軸のそれぞれの両方向(正負の方向)の各方向について、当該軸を中心に90度ずつ単位ターゲット形状を回転させて各方向から撮像した画像を生成することによって、第1の複数の画像を生成する(ステップS2402)。
【0264】
つぎに、モデル生成装置201は、ステップS2204において分類されたグループから選択されていない未選択の3D形状データを選択する(ステップS2403)。ここで選択される3D形状データは、上述した第2の3D形状データに対応する。以下の説明では、ステップS2403において選択された3D形状データを「比較対象形状」と表記する場合がある。
【0265】
そして、モデル生成装置201は、選択した3D形状データの単位3D形状データを取得する(ステップS2404)。ここで取得される単位3D形状データは、選択した3D形状データを各座標軸方向の成分ごとに正規化して作成される。以下の説明では、ステップS2404において取得された「比較対象単位形状」と表記する場合がある。
【0266】
つぎに、モデル生成装置201は、x軸、y軸およびz軸のそれぞれの両方向(正負の方向)の各方向について、当該軸を中心に90度ずつ比較対象単位形状を回転させて各方向から撮像した画像を生成することによって、第2の複数の画像を生成する(ステップS2405)。
【0267】
そして、モデル生成装置201は、単位ターゲット形状と比較対象単位形状の向きを合わせる向き合わせ処理を実行する(ステップS2406)。向き合わせ処理の具体的な処理手順については、図25を用いて後述する。
【0268】
つぎに、モデル生成装置201は、向きを合わせた単位ターゲット形状の各部位と対応する比較対象単位形状の各部位を特定する(ステップS2407)。そして、モデル生成装置201は、特定した結果に基づいて、ターゲット形状の各部位(第1の部位)と対応する比較対象形状の各部位(第2の部位)を特定する(ステップS2408)。
【0269】
つぎに、モデル生成装置201は、ステップS2204において分類されたグループから選択されていない未選択の3D形状データがあるか否かを判断する(ステップS2409)。ここで、未選択の3D形状データがある場合(ステップS2409:Yes)、モデル生成装置201は、ステップS2403に戻る。
【0270】
一方、未選択の3D形状データがない場合(ステップS2409:No)、モデル生成装置201は、対応付け処理を呼び出したステップに戻る。これにより、モデル生成装置201は、ターゲット形状の各部位(第1の部位)と比較対象形状の各部位(第2の部位)との対応関係を特定することができる。
【0271】
つぎに、図25を用いて、図24に示したステップS2406の向き合わせ処理の具体的な処理手順について説明する。この向き合わせ処理は、上述した第3の単位3D形状データ(単位ターゲット形状)と第4の単位3D形状データ(比較対象単位形状)の向きを合わせる手法1に対応する。
【0272】
図25は、向き合わせ処理の具体的処理手順の一例を示すフローチャートである。図25のフローチャートにおいて、まず、モデル生成装置201は、第1の複数の画像のそれぞれと第2の複数の画像のそれぞれとを比較して、各画像間の類似度を算出する(ステップS2501)。
【0273】
つぎに、モデル生成装置201は、算出した各画像間の類似度に基づいて、類似度が最も高い画像ペア(面[1])を特定する(ステップS2502)。つぎに、モデル生成装置201は、算出した各画像間の類似度に基づいて、特定した画像ペア(面[1])を除いて、類似度が最も高い画像ペア(面[2])を特定する(ステップS2503)。
【0274】
つぎに、モデル生成装置201は、算出した各画像間の類似度に基づいて、特定した画像ペア(面[1],[2])を除いて、類似度が最も高い画像ペア(面[3])を特定する(ステップS2504)。
【0275】
そして、モデル生成装置201は、特定した画像ペア(面[1],[2],[3])に基づいて、単位ターゲット形状と比較対象単位形状の向きを合わせて(ステップS2505)、第1の向き合わせ処理を呼び出したステップに戻る。
【0276】
これにより、モデル生成装置201は、単位ターゲット形状の面(24枚)と比較対象単位形状の面(24枚)とを総当たりで比較して、単位3Dデータ間で対応する3面を特定し、単位ターゲット形状と比較対象単位形状の向きを合わせることができる。
【0277】
つぎに、図26および図27を用いて、図22に示したステップS2206の寸法情報追加処理の具体的な処理手順について説明する。
【0278】
図26および図27は、寸法情報追加処理の具体的処理手順の一例を示すフローチャートである。図26のフローチャートにおいて、まず、モデル生成装置201は、分類したグループ内の3D形状データのうち選択されていない未選択の3D形状データを選択する(ステップS2601)。
【0279】
つぎに、モデル生成装置201は、選択した3D形状データの各平面pi(=p1,p2,…)の方程式を算出する(ステップS2602)。例えば、モデル生成装置201は、選択した3D形状データの直線のいずれかの端点を3点選択し、平面piの方程式を算出する。モデル生成装置201は、選択した3D形状データについて、端点の選択を総当たりで行って、各平面piの方程式を算出する。
【0280】
そして、モデル生成装置201は、選択した3D形状データ内の平面のうち選択されていない未選択の平面piを選択する(ステップS2603)。つぎに、モデル生成装置201は、選択した3D形状データ内の曲線部および穴部の中心点Oj(=O1,O2,…)のうち選択されていない未選択の中心点Ojを選択する(ステップS2604)。そして、モデル生成装置201は、選択した平面piの方程式を用いて、選択した中心点Ojが平面pi上にあるか否かを判断する(ステップS2605)。
【0281】
ここで、中心点Ojが平面pi上にない場合(ステップS2605:No)、モデル生成装置201は、ステップS2607に移行する。一方、中心点Ojが平面pi上にある場合(ステップS2605:Yes)、モデル生成装置201は、選択した中心点Ojを平面piと対応付ける(ステップS2606)。
【0282】
つぎに、モデル生成装置201は、選択した3D形状データ内の曲線部および穴部の中心点Ojのうち選択されていない未選択の中心点があるか否かを判断する(ステップS2607)。ここで、未選択の中心点がある場合(ステップS2607:Yes)、モデル生成装置201は、ステップS2604に戻る。
【0283】
一方、未選択の中心点がない場合(ステップS2607:No)、モデル生成装置201は、選択した3D形状データ内の平面のうち選択されていない未選択の平面があるか否かを判断する(ステップS2608)。ここで、未選択の平面がある場合(ステップS2608:Yes)、モデル生成装置201は、ステップS2603に戻る。
【0284】
一方、未選択の中心点がない場合(ステップS2608:No)、モデル生成装置201は、図27に示すステップS2701に移行する。
【0285】
図27のフローチャートにおいて、まず、モデル生成装置201は、選択した3D形状データ内の平面のうち選択されていない未選択の平面piを選択する(ステップS2701)。そして、モデル生成装置201は、選択した平面pi上の各中心点Ojについて、平面上の各直線との距離(第1の距離)を算出する(ステップS2702)。
【0286】
つぎに、モデル生成装置201は、選択した平面pi上の異なる穴部の中心点間の距離(第2の距離)を算出する(ステップS2703)。そして、モデル生成装置201は、算出した各距離を対応する各部位(曲線部、穴部)の寸法情報に追加する(ステップS2704)。
【0287】
つぎに、モデル生成装置201は、選択した平面piにおける同一直線上の複数の穴部の中心点を特定する(ステップS2705)。例えば、選択した平面piにおいて、取り得る中心点の組み合わせを総当たりで探索して、同一直線上となる全ての中心点の組み合わせが特定される。そして、モデル生成装置201は、特定した複数の穴部に含まれる穴部の個数nを特定する(ステップS2706)。例えば、全ての中心点の組み合わせについて、個数nが特定される。
【0288】
つぎに、モデル生成装置201は、特定した個数nを平面piに対応する寸法情報に追加する(ステップS2707)。なお、平面piにおいて、同一直線上の複数の穴部の中心点が存在しない場合、モデル生成装置201は、ステップS2705~S2707をスキップする。
【0289】
そして、モデル生成装置201は、選択した3D形状データ内の平面のうち選択されていない未選択の平面があるか否かを判断する(ステップS2708)。ここで、未選択の平面がある場合(ステップS2708:Yes)、モデル生成装置201は、ステップS2701に戻る。
【0290】
一方、未選択の平面がない場合(ステップS2708:No)、モデル生成装置201は、分類したグループ内の3D形状データのうち選択されていない未選択の3D形状データがあるか否かを判断する(ステップS2709)。ここで、未選択の3D形状データがある場合(ステップS2709:Yes)、モデル生成装置201は、図26に示したステップS2601に戻る。
【0291】
一方、未選択の3D形状データがない場合(ステップS2709:No)、モデル生成装置201は、寸法情報追加処理を呼び出したステップに戻る。
【0292】
これにより、モデル生成装置201は、3D形状データ内の曲線部(例えば、弧形のエッジ部)や穴部について、設計意図を表す新たな寸法(第1の距離、第2の距離)を寸法情報に追加することができる。
【0293】
つぎに、図28を用いて、図22に示したステップS2207の関係式構築処理の具体的な処理手順について説明する。
【0294】
図28は、関係式構築処理の具体的処理手順の一例を示すフローチャートである。図28のフローチャートにおいて、まず、モデル生成装置201は、ステップS2406の結果に基づいて、ステップS2204において分類されたグループ内の3D形状データについて、x軸、y軸、z軸の方向を一致させて向きを揃える(ステップS2801)。
【0295】
つぎに、モデル生成装置201は、ステップS2408の結果に基づいて、グループ内の3D形状データの各部位の寸法を抽出することによって、グループ内の3D形状データの各部位の寸法表を作成する(ステップS2802)。そして、モデル生成装置201は、作成した各部位の寸法表を参照して、各部位について、各3D形状データにおける寸法を要素とする列ベクトルを作成する(ステップS2803)。
【0296】
つぎに、モデル生成装置201は、作成した各部位の列ベクトルを変数として、最も分散の高い変数を選択する(ステップS2804)。そして、モデル生成装置201は、選択した変数の分散が所定の閾値以下か否かを判断する(ステップS2805)。所定の閾値は、任意に設定可能である。
【0297】
ここで、分散が所定の閾値以下の場合(ステップS2805:Yes)、モデル生成装置201は、関係式構築処理を呼び出したステップに戻る。
【0298】
一方、分散が所定の閾値より大きい場合(ステップS2805:No)、モデル生成装置201は、選択した変数を目的変数に設定する(ステップS2806)。つぎに、モデル生成装置201は、ステップワイズ法により目的変数に対して寄与率の高い変数を説明変数に設定する(ステップS2807)。
【0299】
そして、モデル生成装置201は、作成した列ベクトルに基づく回帰分析により、3D形状データの異なる部位間の寸法の関係式を作成する(ステップS2808)。つぎに、モデル生成装置201は、選択されていない未選択の変数があるか否かを判断する(ステップS2809)。
【0300】
ここで、未選択の変数がある場合(ステップS2809:Yes)、モデル生成装置201は、ステップS2804に戻る。一方、未選択の変数がない場合(ステップS2809:No)、モデル生成装置201は、関係式構築処理を呼び出したステップに戻る。
【0301】
これにより、モデル生成装置201は、同一グループに分類された3D形状データの異なる部位間の寸法の関係性を示す関係式を構築することができる。この際、モデル生成装置201は、曲線部(例えば、弧形のエッジ部)や穴部についても、設計者の意図をあらわすような部位間の寸法の関係性を導出することができる。
【0302】
つぎに、図29を用いて、図22に示したステップS2208の穴位置モデル構築処理の具体的な処理手順について説明する。穴位置モデル構築処理は、例えば、ステップS2204において分類されたグループ内の各3D形状データ内の各平面piについて実行される。
【0303】
図29は、穴位置モデル構築処理の具体的処理手順の一例を示すフローチャートである。図29のフローチャートにおいて、まず、モデル生成装置201は、3D形状データ内の平面piにおいて、同一直線上にある複数の穴部の中心点のうちの両端の穴部の中心点を結ぶ直線の方程式を算出する(ステップS2901)。
【0304】
つぎに、モデル生成装置201は、算出した直線の方程式と、穴部の個数nと、穴位置モデルとから、同一直線上にある複数の穴部の中心点のうちの両端以外の穴部の中心点の仮の座標を算出する(ステップS2902)。穴位置モデルは、例えば、上記式(14)によってあらわされる。
【0305】
例えば、モデル生成装置201は、上記式(14)に、穴部の個数nと、両端の穴部の中心点間の距離d0とを代入して、各中心点間の距離di(等間隔の距離)を算出する。そして、モデル生成装置201は、算出した距離diと、両端の穴部の中心点と、直線の方程式とから、両端以外の穴部の中心点の仮の座標を算出する。
【0306】
そして、モデル生成装置201は、両端以外の穴部の中心点の座標が、算出した仮の座標と一致するか否かを判断する(ステップS2903)。ここで、仮の座標と一致する場合(ステップS2903:Yes)、モデル生成装置201は、上記式(14)に穴部の個数nを代入することにより、平面piに対する穴位置モデルを作成して(ステップS2904)、穴位置モデル構築処理を呼び出したステップに戻る。
【0307】
一方、仮の座標と一致しない場合(ステップS2903:No)、モデル生成装置201は、穴位置モデル構築処理を呼び出したステップに戻る。なお、ステップS2901~S2904の処理は、例えば、平面piにおいて同一直線上にある複数の穴部の組み合わせごとに実行される。
【0308】
これにより、モデル生成装置201は、3D形状データ内の平面piに対して、平面pi上の複数の穴部の位置関係を表現する穴位置モデルを構築することができる。
【0309】
以上説明したように、実施の形態にかかるモデル生成装置201によれば、同一グループに分類された各3D形状データが示す形状に含まれる複数の部位のうち、中心点が定義された特定の部位について、各3D形状データにおける中心点と、当該中心点と同一の平面上の直線との第1の距離を算出することができる。そして、モデル生成装置201によれば、算出した第1の距離を各3D形状データ内の特定の部位の寸法情報に追加し、グループ内の各3D形状データの部位ごとの寸法情報に基づいて、グループ内の3D形状データの異なる部位間の寸法の関係性を特定することができる。
【0310】
これにより、モデル生成装置201は、3D形状データ内の特定の部位について、設計者の意図があらわすような新たな寸法(第1の距離)を追加して、3D形状データの異なる部位間の寸法の関係性を導出することができる。このため、モデル生成装置201は、設計意図を反映したパラメトリックモデルを構築することができる。
【0311】
また、モデル生成装置201によれば、中心点、半径、中心角および端点が定義された曲線部について、第1の距離を算出することができる。曲線部は、例えば、弧形のエッジ部である。
【0312】
これにより、モデル生成装置201は、弧形のエッジ部のような曲線部を含む3D形状データの場合に、曲線部について、同一平面上の直線との位置関係をあらわす新たな寸法を定義することができる。このため、モデル生成装置201は、曲線部について、設計者の意図をあらわすような新たな寸法を追加して、3D形状データの異なる部位間の寸法の関係性を導出することができる。
【0313】
また、モデル生成装置201によれば、中心点および半径が定義された穴部について、第1の距離を算出することができる。穴部は、例えば、各3D形状データを貫通する孔、または、各3D形状データ上のくぼんだ穴である。
【0314】
これにより、モデル生成装置201は、穴部(穴、孔など)を含む3D形状データの場合に、穴部について、同一平面上の直線との位置関係をあらわす新たな寸法を定義することができる。このため、モデル生成装置201は、穴部について、設計者の意図をあらわすような新たな寸法を追加して、3D形状データの異なる部位間の寸法の関係性を導出することができる。
【0315】
また、モデル生成装置201によれば、中心点および半径が定義された穴部について、穴部の中心点と、各3D形状データにおける当該中心点と同一の平面上の他の穴部の中心点との第2の距離を算出することができる。そして、モデル生成装置201によれば、算出した第2の距離を各3D形状データ内の穴部の寸法情報に追加することができる。
【0316】
これにより、モデル生成装置201は、穴部(穴、孔など)について、同一平面上の他の穴部との位置関係をあらわす新たな寸法(第2の距離)を定義することができる。このため、モデル生成装置201は、穴部について、設計者の意図をあらわすような新たな寸法をさらに追加して、3D形状データの異なる部位間の寸法の関係性を導出することができる。なお、モデル生成装置201は、3D形状データ内の穴部について、同一平面上の他の穴部との位置関係をあらわす第2の距離のみを、新たな寸法として寸法情報に追加してもよい。
【0317】
また、モデル生成装置201によれば、複数の3D形状データそれぞれの3D形状データから、中心点および半径が定義された穴部の寸法情報を削除し、穴部の寸法情報を削除した複数の3D形状データ(削除後)それぞれの3D形状データ(削除後)を、各座標軸方向の成分ごとに正規化して単位形状データを作成することができる。そして、モデル生成装置201によれば、作成したそれぞれの3D形状データ(削除後)の単位形状データに基づいて、複数の3D形状データを分類することができる。
【0318】
これにより、モデル生成装置201は、穴部を有する3D形状データであっても、単位3D形状データを利用した類似形状検索を精度よく行うことができる。例えば、モデル生成装置201は、単位3D形状データに変換するにあたり、穴部の円形状が楕円形状になって類似形状検索の精度が低下するのを防ぐことができる。
【0319】
また、モデル生成装置201によれば、グループ内の3D形状データと他の3D形状データとのそれぞれについて、各座標軸方向の成分ごとに正規化した単位形状データを取得し、取得した3D形状データの単位形状データと他の3D形状データの単位形状データとのそれぞれを、複数の軸のそれぞれの両方向から撮像した第1の複数の画像と第2の複数の画像とを生成することができる。また、モデル生成装置201によれば、第1の複数の画像と第2の複数の画像との比較の結果に基づいて、3D形状データと他の3D形状データの向きを合わせることによって、3D形状データ内の部位と他の3D形状データ内の部位との対応関係を特定することができる。そして、モデル生成装置201によれば、特定した対応関係、および、グループ内の各3D形状データの部位ごとの寸法情報に基づいて、グループ内の3D形状データの異なる部位間の寸法の関係性を特定することができる。
【0320】
これにより、モデル生成装置201は、パラメトリックな関係性をもとに分類される3D形状データ間で対応関係にある部位を特定することができる。
【0321】
また、モデル生成装置201によれば、各3D形状データにおける平面上に、同一直線上の複数の穴部それぞれの中心点が存在し、かつ、複数の穴部それぞれの中心点が当該直線上に等間隔に配置されている場合、穴位置モデルを作成することができる。穴位置モデルは、複数の穴部に含まれる穴部の個数に基づいて、複数の穴部の両端の穴部の中心点間の間隔と、複数の穴部の隣接する穴部の中心点間の間隔とから、平面上の異なる穴部間の位置の関係性を特定するモデル(関係式)である。
【0322】
これにより、モデル生成装置201は、同一直線上の複数の穴部について、周期的に生じる離散的にあらわれる関係性を把握可能にすることができる。
【0323】
また、モデル生成装置201によれば、グループ内の3D形状データに対応する単位3D形状データと対応付けて、特定した寸法の関係性を示す情報を出力することができる。
【0324】
これにより、モデル生成装置201は、単位3D形状データをもとに、パラメトリックモデルに従って、設計意図に応じた設計データを容易に作成可能にすることができる。
【0325】
また、モデル生成装置201によれば、特定した寸法の関係性を示す情報を出力する際に、さらに、作成した穴位置モデルを出力することができる。
【0326】
これにより、モデル生成装置201は、同一平面上に配置される複数の穴部について、周期的に生じる離散的にあらわれる関係性を考慮した設計を容易にすることができる。
【0327】
これらのことから、モデル生成装置201によれば、曲線部や穴部を含むような3D形状データであっても、3D形状データの異なる部位間の寸法の関係性を適切に特定して、設計意図を反映したパラメトリックモデルを構築することができる。また、モデル生成装置201によれば、パラメトリックモデル(部位間の寸法の関係式、穴位置モデル)が付与された標準形状データを利用して、対象物に関する新規設計を行うことができる。これにより、モデル生成装置201は、3D形状の設計にかかる工数を削減することができる。設計者は、新規設計時に、パラメトリックモデルに従って、各部位の寸法を変更することで、設計ミスを減らすことができる。また、設計者は、新規設計時に利用する標準形状データを、単位3D形状データをもとに検索することで、設計意図に応じた標準形状データを容易に検索することができる。
【0328】
なお、本実施の形態で説明した特定方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本特定プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、DVD、USBメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本特定プログラムは、インターネット等のネットワークを介して配布してもよい。
【0329】
また、本実施の形態で説明したモデル生成装置201(情報処理装置101)は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けICやFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。
【0330】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0331】
(付記1)同一グループに分類された各形状データが示す形状に含まれる複数の部位のうち、中心点が定義された特定の部位について、前記各形状データにおける前記中心点と、当該中心点と同一の平面上の直線との第1の距離を算出し、
算出した前記第1の距離を前記各形状データ内の前記特定の部位の寸法情報に追加し、
前記グループ内の各形状データの部位ごとの前記寸法情報に基づいて、前記グループ内の前記形状データの異なる部位間の寸法の関係性を特定する、
処理をコンピュータに実行させることを特徴とする特定プログラム。
【0332】
(付記2)前記特定の部位は、中心点、半径、中心角および端点が定義された曲線部である、ことを特徴とする付記1に記載の特定プログラム。
【0333】
(付記3)前記特定の部位は、中心点および半径が定義された、前記各形状データを貫通する、または、前記各形状データ上のくぼんだ、穴部である、ことを特徴とする付記1または2に記載の特定プログラム。
【0334】
(付記4)前記算出する処理は、
前記特定の部位が前記穴部の場合、前記穴部の中心点と、前記各形状データにおける当該中心点と同一の平面上の他の穴部の中心点との第2の距離をさらに算出し、
前記追加する処理は、
算出した前記第2の距離を前記各形状データ内の前記特定の部位の寸法情報にさらに追加する、
ことを特徴とする付記3に記載の特定プログラム。
【0335】
(付記5)複数の形状データそれぞれの形状データから、中心点および半径が定義された、前記形状データを貫通する、または、前記形状データ上のくぼんだ、穴部の寸法情報を削除し、
前記穴部の寸法情報を削除した削除後の前記複数の形状データそれぞれの形状データを、各座標軸方向の成分ごとに正規化して単位形状データを作成し、
作成した前記それぞれの形状データの単位形状データに基づいて、前記複数の形状データを分類する、
処理を前記コンピュータに実行させ、
前記同一グループに分類された各形状データは、前記分類する処理により分類したグループ内の形状データである、
ことを特徴とする付記1~4のいずれか一つに記載の特定プログラム。
【0336】
(付記6)前記グループ内の形状データと他の形状データとのそれぞれについて、各座標軸方向の成分ごとに正規化した単位形状データを取得し、
取得した前記形状データの単位形状データと前記他の形状データの単位形状データとのそれぞれを、複数の軸のそれぞれの両方向から撮像した第1の複数の画像と第2の複数の画像とを生成し、
前記第1の複数の画像と前記第2の複数の画像との比較の結果に基づいて、前記形状データと前記他の形状データの向きを合わせることによって、前記形状データ内の部位と前記他の形状データ内の部位との対応関係を特定する、
処理を前記コンピュータに実行させ、
前記特定する処理は、
特定した前記対応関係、および、前記グループ内の各形状データの部位ごとの前記寸法情報に基づいて、前記グループ内の前記形状データの異なる部位間の寸法の関係性を特定する、ことを特徴とする付記1~5のいずれか一つに記載の特定プログラム。
【0337】
(付記7)前記各形状データにおける平面上に、同一直線上の複数の穴部それぞれの中心点が存在し、かつ、前記複数の穴部それぞれの中心点が前記直線上に等間隔に配置されている場合、前記複数の穴部に含まれる穴部の個数に基づいて、前記複数の穴部の両端の穴部の中心点間の間隔と、前記複数の穴部の隣接する穴部の中心点間の間隔とから、前記平面上の異なる穴部間の位置の関係性を特定する穴位置モデルを作成する、
処理を前記コンピュータに実行させることを特徴とする付記1~6のいずれか一つに記載の特定プログラム。
【0338】
(付記8)前記グループ内の形状データに対応する単位形状データと対応付けて、特定した前記寸法の関係性を示す情報を出力する、
処理を前記コンピュータに実行させることを特徴とする付記1~7のいずれか一つに記載の特定プログラム。
【0339】
(付記9)同一グループに分類された各形状データが示す形状に含まれる複数の部位のうち、中心点が定義された特定の部位について、前記各形状データにおける前記中心点と、当該中心点と同一の平面上の直線との第1の距離を算出し、
算出した前記第1の距離を前記各形状データ内の前記特定の部位の寸法情報に追加し、
前記グループ内の各形状データの部位ごとの前記寸法情報に基づいて、前記グループ内の前記形状データの異なる部位間の寸法の関係性を特定する、
処理をコンピュータが実行することを特徴とする特定方法。
【0340】
(付記10)同一グループに分類された各形状データが示す形状に含まれる複数の部位のうち、中心点が定義された特定の部位について、前記各形状データにおける前記中心点と、当該中心点と同一の平面上の直線との第1の距離を算出し、
算出した前記第1の距離を前記各形状データ内の前記特定の部位の寸法情報に追加し、
前記グループ内の各形状データの部位ごとの前記寸法情報に基づいて、前記グループ内の前記形状データの異なる部位間の寸法の関係性を特定する、
制御部を有することを特徴とする情報処理装置。
【符号の説明】
【0341】
101 情報処理装置
110 形状データ
111,112,113 特定の部位
114 平面
115,116,901,902,1001,1002,1203 直線
121,122,123 寸法情報
131,132,133 距離
200 情報処理システム
201 モデル生成装置
202 クライアント装置
210 ネットワーク
220 3D形状DB
230 標準形状DB
300 バス
301 CPU
302 メモリ
303 ディスクドライブ
304 ディスク
305 通信I/F
306 可搬型記録媒体I/F
307 可搬型記録媒体
600 制御部
601 受付部
602 作成部
603 分類部
604 算出部
605 特定部
606 検索部
607 生成部
608 出力部
610 記憶部
900 弧形のエッジ部
1000,1011,1012,1013 穴部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10A
図10B
図11A
図11B
図12
図13
図14
図15
図16
図17
図18
図19A
図19B
図19C
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29