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

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

▶ MHIニュークリアシステムズ・ソリューションエンジニアリング株式会社の特許一覧

特許7333801データ変換プログラム、データ変換方法及びデータ変換装置
<>
  • 特許-データ変換プログラム、データ変換方法及びデータ変換装置 図1
  • 特許-データ変換プログラム、データ変換方法及びデータ変換装置 図2
  • 特許-データ変換プログラム、データ変換方法及びデータ変換装置 図3
  • 特許-データ変換プログラム、データ変換方法及びデータ変換装置 図4
  • 特許-データ変換プログラム、データ変換方法及びデータ変換装置 図5
  • 特許-データ変換プログラム、データ変換方法及びデータ変換装置 図6
  • 特許-データ変換プログラム、データ変換方法及びデータ変換装置 図7
  • 特許-データ変換プログラム、データ変換方法及びデータ変換装置 図8
  • 特許-データ変換プログラム、データ変換方法及びデータ変換装置 図9
  • 特許-データ変換プログラム、データ変換方法及びデータ変換装置 図10
  • 特許-データ変換プログラム、データ変換方法及びデータ変換装置 図11
  • 特許-データ変換プログラム、データ変換方法及びデータ変換装置 図12
  • 特許-データ変換プログラム、データ変換方法及びデータ変換装置 図13
  • 特許-データ変換プログラム、データ変換方法及びデータ変換装置 図14
  • 特許-データ変換プログラム、データ変換方法及びデータ変換装置 図15
  • 特許-データ変換プログラム、データ変換方法及びデータ変換装置 図16
  • 特許-データ変換プログラム、データ変換方法及びデータ変換装置 図17
  • 特許-データ変換プログラム、データ変換方法及びデータ変換装置 図18
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-17
(45)【発行日】2023-08-25
(54)【発明の名称】データ変換プログラム、データ変換方法及びデータ変換装置
(51)【国際特許分類】
   G06F 30/10 20200101AFI20230818BHJP
【FI】
G06F30/10
【請求項の数】 9
(21)【出願番号】P 2021044559
(22)【出願日】2021-03-18
(65)【公開番号】P2022143833
(43)【公開日】2022-10-03
【審査請求日】2022-03-31
(73)【特許権者】
【識別番号】515223662
【氏名又は名称】MHINSエンジニアリング株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】早川 信博
(72)【発明者】
【氏名】原 健治
(72)【発明者】
【氏名】設楽 天
【審査官】堀井 啓明
(56)【参考文献】
【文献】特表2006-528814(JP,A)
【文献】特開昭62-251965(JP,A)
【文献】米国特許出願公開第2007/0002043(US,A1)
【文献】米国特許第06392645(US,B1)
【文献】中国特許出願公開第106709163(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/00-30/28
G06T 17/10
(57)【特許請求の範囲】
【請求項1】
3次元空間においてモデリングされたソリッドモデルを含むCADデータから、空間領域構成法によって前記ソリッドモデルをCSG表現したデータであるCSGデータへデータ変換を行うために、ハードウェア上において実行されるデータ変換プログラムであって、
前記CADデータに基づいて、前記ソリッドモデルを境界表現したデータであるB-repデータを生成するステップと、
生成した前記B-repデータに基づいて、前記境界表現から前記CSG表現に変換するための所定のアルゴリズムを用いて、前記ソリッドモデルの前記CSGデータを生成するステップと、を実行させ、
前記B-repデータを生成するステップでは、
前記CADデータから、前記ソリッドモデルを区画するシェルに関する情報を取得するステップと、
前記CADデータから、前記シェルを構成する面要素に関する情報を取得するステップと、
前記CSGデータへの変換を可能とするための補助面となる曖昧面に関する情報を設定するステップと、
前記面要素に対して半空間を定義するステップと、を実行させるデータ変換プログラム。
【請求項2】
前記曖昧面に関する情報を設定するステップでは、
前記ソリッドモデルが所定の設定条件を満たす場合に前記曖昧面が設定されており、
前記所定の設定条件として、
前記ソリッドモデルが円筒面または円錐面を有する場合、前記円筒面または前記円錐面の周方向の両側に設けられる他の面との間の2つの境界線の両端における4つの端点のうち、3つの前記端点を含む平面を前記曖昧面として設定する第1の設定条件と、
前記ソリッドモデルが非平面同士を接続する稜線を有するものであって、前記稜線が平面に配置可能である場合、前記稜線を含む平面を前記曖昧面として設定する第2の設定条件と、
前記ソリッドモデルがトーラス面を有する場合、前記トーラス面の回転軸と同軸となる円筒面を前記曖昧面として設定する第3の設定条件と、
前記ソリッドモデルがトーラス面を有する場合、前記トーラス面の回転軸と直交する平面を前記曖昧面として設定する第4の設定条件と、
前記ソリッドモデルがトーラス面を有し、前記第2の設定条件において設定された前記曖昧面が、前記トーラス面の回転軸に直交する場合、前記稜線は円を描くことから、前記稜線上をとおり、前記トーラス面の回転軸と同軸となる円筒面を前記曖昧面として設定する第5の設定条件と、
前記ソリッドモデルが、異径の円筒面同士を接続したものである場合、小径となる円筒面の接続側の端面を含む平面を前記曖昧面として設定する第6の設定条件と、があり、
前記第1の設定条件から前記第6の設定条件のうち、少なくとも1つの設定条件を含む請求項1に記載のデータ変換プログラム。
【請求項3】
前記B-repデータを生成するステップでは、
前記ソリッドモデルを包含する領域と、前記ソリッドモデルを包含しない外部領域とに区画しており、
前記面要素に対して半空間を定義するステップでは、
前記ソリッドモデルを包含する領域内において、前記面要素に対して、物体領域と空間領域とに分けるように前記半空間が定義される請求項1または2に記載のデータ変換プログラム。
【請求項4】
前記CSGデータを生成するステップでは、
前記物体領域同士の干渉、及び前記空間領域同士の干渉を判定するステップと、
干渉していると判定した場合、エラーを報知するステップと、をさらに実行している請求項3に記載のデータ変換プログラム。
【請求項5】
生成した前記CSGデータの前記ソリッドモデルにおいて、重複する前記面要素が定義された場合、重複する前記面要素を削除するステップを、さらに実行する請求項1から4のいずれか1項に記載のデータ変換プログラム。
【請求項6】
前記CADデータは、前記ソリッドモデルに付された色情報を、さらに含み、
前記色情報と物質情報とを関連付けたテーブルに基づいて、生成された前記CSGデータの前記ソリッドモデルに前記物質情報を関連付けるステップを、さらに実行する請求項1から5のいずれか1項に記載のデータ変換プログラム。
【請求項7】
前記ソリッドモデルの前記CSGデータに基づいて、前記ソリッドモデルの前記CADデータを生成するステップと、をさらに実行する請求項1から6のいずれか1項に記載のデータ変換プログラム。
【請求項8】
3次元空間においてモデリングされたソリッドモデルを含むCADデータから、空間領域構成法によって前記ソリッドモデルをCSG表現したデータであるCSGデータへデータ変換を行う演算部を備えたデータ変換装置が実行するデータ変換方法であって、
前記演算部は、
前記CADデータに基づいて、前記ソリッドモデルを境界表現したデータであるB-repデータを生成するステップと、
生成した前記B-repデータに基づいて、前記境界表現から前記CSG表現に変換するための所定のアルゴリズムを用いて、前記ソリッドモデルの前記CSGデータを生成するステップと、を実行し
前記B-repデータを生成するステップでは、
前記CADデータから、前記ソリッドモデルを区画するシェルに関する情報を取得するステップと、
前記CADデータから、前記シェルを構成する面要素に関する情報を取得するステップと、
前記CSGデータへの変換を可能とするための補助面である曖昧面に関する情報を設定するステップと、
前記面要素に対して半空間を定義するステップと、を実行するデータ変換方法。
【請求項9】
3次元空間においてモデリングされたソリッドモデルを含むCADデータから、空間領域構成法によって前記ソリッドモデルをCSG表現したデータであるCSGデータへデータ変換を行う演算部を備えたデータ変換装置であって、
前記演算部は、
前記CADデータに基づいて、前記ソリッドモデルを境界表現したデータであるB-repデータを生成するステップと、
生成した前記B-repデータに基づいて、前記境界表現から前記CSG表現に変換するための所定のアルゴリズムを用いて、前記ソリッドモデルの前記CSGデータを生成するステップと、を実行し、
前記B-repデータを生成するステップでは、
前記CADデータから、前記ソリッドモデルを区画するシェルに関する情報を取得するステップと、
前記CADデータから、前記シェルを構成する面要素に関する情報を取得するステップと、
前記CSGデータへの変換を可能とするための補助面である曖昧面に関する情報を設定するステップと、
前記面要素に対して半空間を定義するステップと、を実行するデータ変換装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データ変換プログラム、データ変換方法及びデータ変換装置に関するものである。
【背景技術】
【0002】
従来、CADモデルから表面ベースの組合せ幾何学形状(SBCG)フォーマットへ自動変換する方法が知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【文献】特表2006-528814号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、3Dモデル(3次元モデル)は、モデリング体系として、ワイヤーフレームモデル、サーフィスモデル、ソリッドモデルに大別される。特許文献1は、表面ベースの組合せ幾何学形状であることから、サーフィスモデルで表現されており、ソリッドモデルへの変換は考慮されていない。ソリッドモデルの表現方法としては、例えば、境界表現(B-rep:Boundary Representation)、CSG表現(CSG:Constructive Solid Geometry(空間領域構成法))がある。
【0005】
ここで、CADデータから、ソリッドモデルをCSG表現したCSGデータに変換する場合、特許文献1の変換方法を用いると、サーフィスモデルとなるSBCGフォーマットに変換するための情報を、CADデータから取得することから、CSGデータに変換するための情報が不足することとなる。また、CADデータからCSGデータに変換する場合、ソリッドモデルの形状によっては、CSGデータへの変換を可能とするための補助面となる曖昧面を設定する必要が生じる。このため、CADデータをCSGデータに変換する場合、手動で不足した情報を追加したり、曖昧面を設定したりすることになり、労力を要していた。
【0006】
そこで、本開示は、CADデータからCSGデータへのデータ変換を、好適に自動で実行することができるデータ変換プログラム、データ変換方法及びデータ変換装置を提供することを課題とする。
【課題を解決するための手段】
【0007】
本開示のデータ変換プログラムは、3次元空間においてモデリングされたソリッドモデルを含むCADデータから、空間領域構成法によって前記ソリッドモデルをCSG表現したデータであるCSGデータへデータ変換を行うために、ハードウェア上において実行されるデータ変換プログラムであって、前記CADデータに基づいて、前記ソリッドモデルを境界表現したデータであるB-repデータを生成するステップと、生成した前記B-repデータに基づいて、前記境界表現から前記CSG表現に変換するための所定のアルゴリズムを用いて、前記ソリッドモデルの前記CSGデータを生成するステップと、を実行させ、前記B-repデータを生成するステップでは、前記CADデータから、前記ソリッドモデルを区画するシェルに関する情報を取得するステップと、前記CADデータから、前記シェルを構成する面要素に関する情報を取得するステップと、前記CSGデータへの変換を可能とするための補助面となる曖昧面に関する情報を設定するステップと、前記面要素に対して半空間を定義するステップと、を実行させる。
【0008】
本開示のデータ変換方法は、3次元空間においてモデリングされたソリッドモデルを含むCADデータから、空間領域構成法によって前記ソリッドモデルをCSG表現したデータであるCSGデータへデータ変換を行うデータ変換方法であって、前記CADデータに基づいて、前記ソリッドモデルを境界表現したデータであるB-repデータを生成するステップと、生成した前記B-repデータに基づいて、前記境界表現から前記CSG表現に変換するための所定のアルゴリズムを用いて、前記ソリッドモデルの前記CSGデータを生成するステップと、を備え、前記B-repデータを生成するステップでは、前記CADデータから、前記ソリッドモデルを区画するシェルに関する情報を取得するステップと、前記CADデータから、前記シェルを構成する面要素に関する情報を取得するステップと、前記CSGデータへの変換を可能とするための補助面である曖昧面に関する情報を設定するステップと、前記面要素に対して半空間を定義するステップと、を有する。
【0009】
本開示のデータ変換装置は、3次元空間においてモデリングされたソリッドモデルを含むCADデータから、空間領域構成法によって前記ソリッドモデルをCSG表現したデータであるCSGデータへデータ変換を行う演算部を備えたデータ変換装置であって、前記演算部は、前記CADデータに基づいて、前記ソリッドモデルを境界表現したデータであるB-repデータを生成するステップと、生成した前記B-repデータに基づいて、前記境界表現から前記CSG表現に変換するための所定のアルゴリズムを用いて、前記ソリッドモデルの前記CSGデータを生成するステップと、を実行し、前記B-repデータを生成するステップでは、前記CADデータから、前記ソリッドモデルを区画するシェルに関する情報を取得するステップと、前記CADデータから、前記シェルを構成する面要素に関する情報を取得するステップと、前記CSGデータへの変換を可能とするための補助面である曖昧面に関する情報を設定するステップと、前記面要素に対して半空間を定義するステップと、を実行する。
【発明の効果】
【0010】
本開示によれば、CADデータからCSGデータへのデータ変換を好適に自動で実行することができる。
【図面の簡単な説明】
【0011】
図1図1は、本実施形態に係るデータ変換装置のブロック図である。
図2図2は、データ変換に関する処理フローの説明図である。
図3図3は、本実施形態に係るデータ変換方法の順変換に関する一例のフローチャートである。
図4図4は、本実施形態に係るデータ変換方法の順変換に関する一例のフローチャートである。
図5図5は、曖昧面の設定に関する一例の説明図である。
図6図6は、論理演算に関する一例の説明図である。
図7図7は、論理演算に関する一例の説明図である。
図8図8は、曖昧面の設定に関する一例の説明図である。
図9図9は、論理演算に関する一例の説明図である。
図10図10は、論理演算に関する一例の説明図である。
図11図11は、曖昧面の設定に関する一例の説明図である。
図12図12は、曖昧面の設定に関する一例の説明図である。
図13図13は、曖昧面の設定に関する一例の説明図である。
図14図14は、曖昧面の設定に関する一例の説明図である。
図15図15は、曖昧面の設定に関する一例の説明図である。
図16図16は、外部領域、空間領域、物体領域の分類に関する説明図である。
図17図17は、本実施形態に係るデータ変換方法の一例のフローチャートである。
図18図18は、本実施形態に係るデータ変換方法の逆変換に関する一例のフローチャートである。
【発明を実施するための形態】
【0012】
以下に、本開示に係る実施形態を図面に基づいて詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。また、下記実施形態における構成要素には、当業者が置換可能かつ容易なもの、あるいは実質的に同一のものが含まれる。さらに、以下に記載した構成要素は適宜組み合わせることが可能であり、また、実施形態が複数ある場合には、各実施形態を組み合わせることも可能である。
【0013】
[実施形態]
本実施形態に係るデータ変換プログラムP、データ変換方法及びデータ変換装置1は、CADデータからCSGデータへ、また、CSGデータからCADデータへデータ変換を自動で実行するものとなっている。データ変換装置1は、いわゆるコンピュータ(ハードウェア)であり、コンピュータに記憶されたデータ変換プログラムP(ソフトウェア)を実行することで、データ変換を行うことが可能となっている。
【0014】
図1は、本実施形態に係るデータ変換装置のブロック図である。図2は、データ変換に関する処理フローの説明図である。図3及び図4は、本実施形態に係るデータ変換方法の順変換に関する一例のフローチャートである。図5図8図11から図15は、曖昧面の設定に関する一例の説明図である。図6図7図9図10は、論理演算に関する一例の説明図である。図16は、外部領域、空間領域、物体領域の分類に関する説明図である。図17は、本実施形態に係るデータ変換方法の一例のフローチャートである。図18は、本実施形態に係るデータ変換方法の逆変換に関する一例のフローチャートである。
【0015】
(データ変換装置)
先ず、図1を参照して、データ変換装置1について説明する。データ変換装置1は、演算部11と、記憶部12とを有している。
【0016】
演算部11は、各種プログラムを実行するための演算を行うCPU(Central Processing Unit)等の集積回路を含んでいる。演算部11は、記憶部12に記憶されたデータ変換プログラムPを実行することで、各種処理を実行することが可能となる。
【0017】
記憶部12は、例えば、半導体記憶デバイス、及び磁気記憶デバイス等の任意の記憶デバイスを含む。記憶部12は、演算部11の処理結果を一時的に記憶する作業領域として利用されたり、各種プログラム及び各種データを記憶したりしている。記憶部12は、例えば、各種プログラムとして、データ変換を行うデータ変換プログラムP等が記憶されている。また、記憶部12は、各種データとして、データ変換の対象となるCADデータD1及びCSGデータD3、CADデータD1とCSGデータD3とのデータ変換時に生成されるB-repデータD2、CADデータD1とCSGデータD3とに含まれる情報を紐付けるためのテーブルT等を記憶している。
【0018】
演算部11は、データ変換プログラムPを実行することで、CADデータD1をCSGデータD3に順変換したり、CSGデータD3をCADデータD1に逆変換したりすることが可能となっている。また、演算部11は、データ変換プログラムPを実行することで、CADデータのファイル形式を異なる形式に変更したり、CSGデータD3に基づいて、他のプログラムにおいて用いられるファイル形式に変換したりすることが可能となっている。
【0019】
ここで、図2を参照して、データ変換プログラムPを実行することにより処理されるデータ変換に関する処理フローについて、具体的に説明する。このデータ変換プログラムPは、「McBit」と呼称されるプログラムとなっている。CADデータD1は、CADソフトによって生成されるデータであり、CADソフトによって生成されるモデルは、ソリッドモデルとなっている。ソリッドモデルとは、中身の詰まった中実の物体として生成されるモデルである。CADデータD1は、有限の閉じた空間において生成されたソリッドモデルのデータであり、ソリッドモデルのデータとしては、頂点データ、稜線データ、面データ、シェルデータを含んでいる。そして、CADソフトによってソリッドモデルの形状が作成される(ステップS101)。このCADデータD1は、ファイル形式として、例えば、STEP(Standard for the Exchange of Product model data)形式で出力される(ステップS102)。また、CADソフトでは、作成したソリッドモデルを、ファイル形式が、例えば、STL(Standard Triangulated Language)形式となるメッシュデータとして出力することができる(ステップS103)。なお、本実施形態では、ファイル形式として、STEP形式及びSTL形式を適用したが、上記に特に限定されず、いずれのファイル形式であってもよい。
【0020】
データ変換プログラムPを実行する演算部11は、CADデータD1の読み込みを実行する(ステップS104)。すると、演算部11は、読み込んだCADデータD1に基づいて、B-repデータD2を生成する(ステップS106)。B-repデータD2は、ソリッドモデルを境界表現したデータである。境界表現とは、ソリッドモデルを構成する面要素、面要素同士の境界線となる稜線、稜線の端点となる頂点を、方程式で表現することである。また、B-repデータD2には、物質情報が紐付けられている(ステップS107)。物質情報は、記憶部12に記憶されたテーブルTである。具体的に、テーブルTは、CADデータD1の色情報と、色情報と物質情報とを対応付けたものである。そして、CSGデータD3は、このテーブルTに基づいて、CADデータD1の色情報に対応する物質情報が紐付けられる。なお、物質情報とは、材料に関する情報、密度に関する情報を含む。また、演算部11は、B-repデータD2に基づいて、CADデータD1を書き出す(生成する)ことが可能となっている(ステップS105)。演算部11は、書き出したCADデータD1に基づいて、STEP形式のCADデータD1として出力することができ、また、STL形式のメッシュデータとしても出力することができる。
【0021】
演算部11は、生成したB-repデータD2からCSGデータD3へ順変換して(ステップS110)、CSGデータD3を生成する(ステップS112)。CSGデータD3は、ソリッドモデルをCSG表現したデータである。CSG表現とは、基本立体(プリミティブ立体)を組み合わせて、論理演算(ブーリアン演算または集合演算ともいう)を行うことで、ソリッドモデルを表現することである。また、演算部11は、CSGデータD3からB-repデータD2へ逆変換して(ステップS111)、B-repデータD2を生成する(ステップS106)ことも可能となっている。このCSGデータD3は、例えば、放射線輸送解析コード、光学設計、迷光解析、熱放射輸送解析、可視情景描写、光線追跡等に用いられる。このため、演算部11は、CSGデータD3を、放射線輸送解析コードの一つであるPHITSの入力ファイルとして出力可能となっており(ステップS114、ステップS115)、同様に、CSGデータD3を、放射線輸送解析コードの一つであるMCNPの入力ファイルとして出力可能となっている(ステップS117、ステップS118)。さらに、演算部11は、PHITSの入力ファイルに基づいて、CSGデータD3を生成可能となっており(ステップS113)、同様に、MCNPの入力ファイルに基づいて、CSGデータD3を生成可能となっている(ステップS116)。
【0022】
(データ変換方法)
次に、図3及び図4を参照して、データ変換装置1によるデータ変換方法について説明する。図3及び図4は、CADデータD1からCSGデータD3へ順変換するデータ変換方法となっている。データ変換方法では、CADデータD1に基づいて、ソリッドモデルのB-repデータD2を生成するステップS1と、生成したB-repデータD2に基づいて、ソリッドモデルのCSGデータD3を生成するステップS2と、を実行している。図3では、B-repデータD2を生成するステップS1を説明し、図4では、CSGデータD3を生成するステップS2を説明している。
【0023】
先ず、図3に示すように、演算部11は、CADデータD1を取得すると、CADデータD1に含まれるソリッドモデル群(1以上のソリッドモデル)の処理を実行する(ステップS11)。ステップS11において、演算部11は、CADデータD1に含まれる各ソリッドモデルに対して半空間を定義し、ソリッドモデル群の半空間の集合を取っている(Hsolids=O:空集合)。ソリッドモデルに対して半空間を定義するとは、例えば、ソリッドモデルが球体である場合、球体の内部側が中実となる物体領域であり、球体の外部側が空となる空間領域であると定義することであり、CADデータに基づいて定義される。なお、詳細は後述するが、ステップS1の処理を実行する場合、バウンディングボックスBを用いて、ソリッドモデルを包含する領域と、ソリッドモデルを包含しない外部領域とに区画している。
【0024】
続いて、演算部11は、各ソリッドモデルを構成する1つ以上のシェルを処理する(ステップS12)。シェルとは、ソリッドモデルを区画する連なる面である。例えば、ソリッドモデルが直方体である場合、表面を構成する6面が1つのシェルとして定義される。また、例えば、ソリッドモデルが内部に空間を有する直方体形状の箱体である場合、外表面を構成する6面が1つのシェルとして定義され、内表面を構成する6面が1つのシェルとして定義される。つまり、ステップS12において、演算部11は、CADデータD1から、ソリッドモデルを区画するシェルに関する情報を取得する。
【0025】
次に、演算部11は、1つのシェルを構成する面群を収集する(ステップS13)。面群を収集するとは、例えば、シェルが直方体を構成する表面側の6面である場合、6つの面要素を面群の集合Fshellとして収集する。つまり、ステップS13において、演算部11は、CADデータD1から、シェルを構成する面要素に関する情報を取得する。
【0026】
この後、演算部11は、曖昧面を設定するための設定条件に基づいて、曖昧面を設定するか否かを判定し、曖昧面を設定すると判定したら、曖昧面を面要素として追加設定する(ステップS14)。ここで、曖昧面とは、CSGデータへの変換を可能とするための補助面である。方程式で表現された面要素同士を論理演算する場合、面要素の形状によっては、CSGデータへの変換時において、ソリッドモデルの形状を適切に表現することが困難な場合がある。曖昧面は、ソリッドモデルの形状を適切に表現するために設定される補助面となっている。ステップS14において、演算部11は、ソリッドモデルが所定の設定条件を満たす場合に曖昧面を設定している。
【0027】
ここで、図5から図15を参照して、曖昧面の設定について説明する。曖昧面を設定するための所定の設定条件として、図5から図10に示す第1の設定条件と、図11に示す第2の設定条件と、図12に示す第3の設定条件と、図13に示す第4の設定条件と、図14に示す第5の設定条件と、図15に示す第6の設定条件とがある。
【0028】
第1の設定条件は、ソリッドモデルが円筒面(または円錐面)を有する場合、円筒面(または円錐面)の周方向の両側に設けられる他の面との間の2つの境界線(稜線)L1の両端における4つの端点O1のうち、3つの端点O1を含む平面を曖昧面20aとして設定する条件である。図5に示すように、ソリッドモデルM1は、外側に凸となる円筒面と、円筒面の周方向の両側に連なる2つの平面とを有しており、円筒面と一方側の平面との間に境界線L1が形成され、円筒面と他方側の平面との間に境界線L1が形成される。演算部11は、ステップS14において、この2本の境界線L1の両端における4つの端点O1のうち、任意の3つの端点O1を含む平面を曖昧面20aとして設定する。
【0029】
図6及び図7は、図5のソリッドモデルM1を水平面で切った断面における論理演算の説明図である。図6では、曖昧面20aを設定しない場合の論理演算となっており、図7では、曖昧面20aを設定した場合の論理演算となっている。
【0030】
図6に示すように、曖昧面20aを設定しない場合、ソリッドモデルM1は、円筒面と2つの平面とを用いて論理演算が行われる。ここで、円筒面は、内側に半空間A2が設定され、2つの平面は、矢印方向に半空間A1,A3が設定される。ソリッドモデルM1は、論理演算として、半空間A1~A3の共通部分(A1∩A2∩A3)をとることで、円筒面の内側が中実となる円柱として誤った表現がなされてしまう。
【0031】
一方で、図7に示すように、曖昧面20aを設定する場合、ソリッドモデルM1は、円筒面と2つの平面と曖昧面20aとを用いて論理演算が行われる。曖昧面20aは、矢印方向に半空間A4が設定され、半空間A4の反対側の矢印方向に半空間A4の否定が設定される。ソリッドモデルM1は、論理演算として、半空間A1,A3,A4の共通部分(A1∩A3∩A4)をとり、また、半空間A2と半空間A4の否定との共通部分(A2∩notA4)をとって、これらの共通部分の和集合((A1∩A3∩A4)∪(A2∩notA4))をとることで、適切な表現がなされる。
【0032】
図8に示すソリッドモデルM1aは、内側に凹となる円筒面と、円筒面の周方向の両側に連なる2つの平面とを有しており、円筒面と一方側の平面との間に境界線L1が形成され、円筒面と他方側の平面との間に境界線L1が形成される。図8に示すソリッドモデルM1aは、図5に示すソリッドモデルM1と比べて、円筒面の凹凸が逆となっている。この場合においても、演算部11は、ステップS14において、この2本の境界線L1の両端における4つの端点O1のうち、任意の3つの端点O1を含む平面を曖昧面20aとして設定する。
【0033】
図9及び図10は、図8のソリッドモデルM1aを水平面で切った断面における論理演算の説明図である。図9では、曖昧面20aを設定しない場合の論理演算となっており、図10では、曖昧面20aを設定した場合の論理演算となっている。
【0034】
図9に示すように、曖昧面20aを設定しない場合、ソリッドモデルM1aは、円筒面と2つの平面とを用いて論理演算が行われる。ここで、円筒面は、外側に半空間A2が設定され、2つの平面は、矢印方向に半空間A1,A3が設定される。ソリッドモデルM1aは、論理演算として、半空間A1~A3の共通部分(A1∩A2∩A3)をとることで、円筒面の内側が中空となる物体として誤った表現がなされてしまう。
【0035】
一方で、図10に示すように、曖昧面20aを設定する場合、ソリッドモデルM1aは、円筒面と2つの平面と曖昧面20aとを用いて論理演算が行われる。曖昧面20aは、矢印方向に半空間A4が設定される。ソリッドモデルM1aは、論理演算として、半空間A1~A4の共通部分(A1∩A2∩A3∩A4)をとることで、適切な表現がなされる。
【0036】
なお、下記する第2の設定条件から第6の設定条件において、第1の設定条件のような論理演算の説明は省略するが、第1の設定条件と同様に、ソリッドモデルの形状を適切に表現するために曖昧面が設定される。
【0037】
第2の設定条件は、ソリッドモデルが非平面同士を接続する稜線を有するものであって、稜線が平面に配置可能である場合、稜線を含む平面を曖昧面として設定する条件である。図11の左側に示すように、ソリッドモデルM2aは、同径の円柱を直交させて接続したモデルとなっており、円筒面同士が接続されている。この円筒面同士を接続する稜線L2は、図11の上下方向を軸方向とする円柱の上側に1本、円柱の下側に1本形成され、2本の稜線L2は、その端部同士が接続されている。各稜線L2は、平面に配置可能となっており、演算部11は、ステップS14において、稜線L2を含む平面を曖昧面20bとして設定する。図11の右側に示すように、ソリッドモデルM2bは、半円環の両端部に、円柱を接続したモデルとなっており、トーラス面と円筒面とが接続されている。トーラス面と円筒面と接続する稜線L3は、半円環の一方側の端部と、半円環の他方側の端部とにそれぞれ形成され、円形状となっている。2本の稜線L3は、平面に配置可能となっており、演算部11は、ステップS14において、2本の稜線L3を含む平面を曖昧面20cとして設定する。
【0038】
第3の設定条件は、ソリッドモデルがトーラス面を有する場合、トーラス面の回転軸と同軸となる円筒面を曖昧面として設定する条件である。図12の左側に示すように、ソリッドモデルM3aは、所定の半径を有する円柱と、円柱の外周面の軸方向における長さを直径とする断面半円の円環と、を接続したモデルとなっており、トーラス面を有するものとなっている。トーラス面と円柱の軸方向における端面とを接続する稜線L4は、円柱の半径となる円形状となっており、演算部11は、ステップS14において、円柱の半径と同じ半径となる円筒面であって、稜線L4を通る円筒面を曖昧面20dとして設定する。図12の右側に示すように、ソリッドモデルM3bは、所定の半径を有する円柱の軸方向における端面の周縁が面取りされたトーラス面を有するモデルとなっている。トーラス面の内側には稜線L5が形成されており、演算部11は、ステップS14において、稜線L5の半径よりも大きく、円柱の外周面の半径よりも小さい半径となる円筒面を曖昧面20eとして設定する。
【0039】
第4の設定条件は、ソリッドモデルがトーラス面を有する場合、トーラス面の回転軸と直交する平面を曖昧面として設定する条件である。図13に示すように、ソリッドモデルM4は、ボルトであり、ボルトの頭部において、ボルトの軸方向における端面の周縁が面取りされたトーラス面を有するモデルとなっている。図13は、左側が斜視図となっており、右側が側面図となっている。ボルトの頭部の外周面とトーラス面との間には稜線L6が形成されており、稜線L6は、隣接する稜線L6と端部同士で接続される接点O2を有する。演算部11は、トーラス面の回転軸と直交する平面であって、稜線L6の接点O2を通る平面を曖昧面20fとして設定する。
【0040】
第5の設定条件は、図14に示すように、ソリッドモデルがトーラス面を有し、第2の設定条件において設定された曖昧面20b,20cが、トーラス面の回転軸に直交する場合、稜線L2は円を描くことから、稜線L2上をとおり、トーラス面の回転軸と同軸となる円筒面を曖昧面20gとして設定する条件である。
【0041】
第6の設定条件は、ソリッドモデルが、異径の円筒面同士を接続したものである場合、小径となる円筒面の接続側の端面を含む平面を曖昧面として設定する条件である。図15に示すように、ソリッドモデルM5は、大径の円柱に、小径の円柱を直交させて接続したモデルとなっており、円筒面同士が接続されている。この円筒面同士を接続する稜線L7は、大径の円柱に周面に形成されている。演算部11は、ステップS14において、小径の円柱の接続側の端面を含む平面を曖昧面20hとして設定する。
【0042】
再び、図3を参照して、演算部11は、ステップS14の実行後、1つのシェルの面群(複数の面要素)に対して半空間を定義し、面群の半空間の集合Hshellを取っている(ステップS15)。面要素に対して半空間を定義するとは、例えば、面要素が平面である場合、平面の一方側が中実となる物体領域であり、平面の他方側が空となる空間領域であると定義することである。そして、面群の半空間の集合を取ることで、ソリッドモデルの各シェルにおける物体領域が定義される。
【0043】
この後、演算部11は、ソリッド群の半空間の集合に、各ソリッドモデルにおけるシェルの半空間の集合を対応付ける(ステップS16)(Hsolids=Merge(Hsolids,Hshell))。これにより、CADデータD1に含まれる1以上のソリッドモデルのそれぞれに対して、1以上のシェルが対応付けられ、また、各シェルに対して、1以上の面要素が対応付けられる。そして、面要素に対して半空間が対応付けられる。このような処理を実行することで、面要素、シェル、ソリッドモデルが、それぞれグルーピングされると共に、階層構造として、情報収集される。演算部11は、収集した情報を、B-repデータD2として、記憶部12に記憶させる。
【0044】
そして、演算部11は、シェルの面群の収集が終了したか否かを判定し(ステップS17)、面群の収集が終了していないと判定した場合(ステップS17:No)、再びステップS13に進む。一方で、演算部11は、面群の収集が終了したと判定した場合(ステップS17:Yes)、シェルの処理が終了したか否かを判定し(ステップS18)、シェルの処理が終了していないと判定した場合(ステップS18:No)、再びステップS12に進む。一方で、演算部11は、シェルの処理が終了したと判定した場合(ステップS18:Yes)、図4のステップS2へ進む。
【0045】
図4に示すように、演算部11は、ソリッドモデルのCSGデータD3を生成する場合、先ず、B-repデータD2に基づいて、ステップS1において収集したソリッド群に対応する半空間の集合(Hsolids)を取得する(ステップS21)。この後、演算部11は、各ソリッドモデルを構成する1つ以上のシェルを処理する(ステップS22)。つまり、ステップS22において、演算部11は、B-repデータD2から、ソリッドモデルを区画するシェルに関する情報を取得する。演算部11は、シェルに関する情報として、面群の集合Fshellと、面群の半空間の集合Hshellとを取得する(ステップS23)。そして、演算部11は、境界表現からCSG表現に変換するためのBHC(B-rep Half CSG)アルゴリズムを用いた処理を実行する(ステップS24)。演算部11は、ステップS24を実行することで、1つのシェルをCSG表現したCSGデータD3を取得する(ステップS25)。
【0046】
この後、演算部11は、全てのシェルのCSG表現が終了したか否かを判定し(ステップS26)、全てのシェルのCSG表現が終了していないと判定した場合(ステップS26:No)、再びステップS23に進む。一方で、演算部11は、全てのシェルのCSG表現が終了したと判定した場合(ステップS26:Yes)、シェルごとにCSG表現をintersect演算により結合し、1つのソリッドモデルがCSG表現されたCSGデータD3を取得する(ステップS27)。そして、演算部11は、全てのソリッドモデルのCSG表現が終了したか否かを判定し(ステップS28)、全てのソリッドモデルのCSG表現が終了していないと判定した場合(ステップS28:No)、再びステップS22に進む。一方で、演算部11は、全てのソリッドモデルのCSG表現が終了したと判定した場合(ステップS28:Yes)、次のステップS29に移行する。演算部11は、ステップS28までを実行することで、図2のステップS112に示すように、ソリッドモデルのCSGデータD3を取得する。
【0047】
演算部11は、ソリッドモデルのCSGデータD3に基づいて、MCNP/PHITSの入力ファイルを生成する場合、ステップS29及びステップS30を実行する。具体的に、演算部11は、ステップS29において、ソリッドモデルごとのCSG表現から、MCNP/PHITSのセル表現(セルデータ)を取得する。この後、演算部11は、ソリッドモデル群の半空間の集合(Hsolids)からMCNP/PHITSの面表現(面データ)を取得する(ステップS30)。ここで、演算部11は、テーブルTに基づいて、CSGデータD3に対応付けられる物質情報を取得可能となっている。このため、演算部11は、MCNP/PHITSの入力ファイルとして必要な、セル(立体)表現、面表現、及び物質情報を取得できる。演算部11は、ステップS30の実行後、CADデータD1からCSGデータD3へ順変換するための処理を終了する。なお。ステップS30においては、取得した面データ(面要素)がソリッドモデルにおいて重複する場合、重複する面要素を削除するステップが実行される。
【0048】
次に、図16を参照して、データ変換時において分類される領域について説明する。CADデータD1は、有限となる三次元領域においてソリッドモデルが表現される。一方で、CSGデータD3は、無限となる三次元領域においてソリッドモデルが表現される。このため、CADデータD1からCSGデータD3へ順変換する場合、ソリッドモデルを有限となる三次元領域で区画する必要がある。
【0049】
演算部11は、順変換にあたって、有限の三次元領域として区画可能なバウンディングボックスBを設定する。バウンディングボックスBは、CADデータD1に含まれるソリッドモデルを全て包含するように設定される。バウンディングボックスB外の領域は、外部領域E1として設定され、外部領域E1は、演算対象外の領域として取り扱われる。バウンディングボックスBの内部の領域は、空間領域E2と、物体領域E3とに分けられる。空間領域E2と物体領域E3とは、面要素に定義される半空間に基づいて分けられる。つまり、バウンディングボックスB内における面要素の一方側を空間領域E2とし、面要素の他方側を物体領域E3と定義することで、空間領域E2と物体領域E3とが分類される。
【0050】
ここで、図17を参照して、データ変換方法における領域分類に関する処理について説明する。演算部11は、CADデータD1のソリッドモデルに対して、図16に示す領域分類を処理した結果、物体領域E3同士の干渉、及び空間領域E2同士の干渉があるか否かを判定する(ステップS41)。演算部11は、領域同士の干渉がないと判定すると(ステップS41:Yes)、CADデータD1からCSGデータD3への順変換のデータ変換を実行して(ステップS42)、処理を終了する。一方で、演算部11は、領域同士の干渉があると判定すると(ステップS41:No)、エラー報知を実行し(ステップS43)、処理を終了する。
【0051】
次に、図18を参照して、CSGデータD3からCADデータD1へ逆変換するデータ変換方法について説明する。データ変換方法では、CSGデータD3に基づいて、ソリッドモデルのCADデータD1を生成するステップS51、S52を実行している。
【0052】
図18では、MCNP/PHITSの入力ファイルに基づいて逆変換を行っている。具体的に、図18に示すように、演算部11は、CSGデータD3のソリッドモデルに対して、ソリッドモデルを包含する有限領域を設定する(ステップS51)。演算部11は、ステップS51において、有限領域とCSG表現されたソリッドモデルの各面要素における半空間の定義から、面要素の表裏側(両側)に定義される空間領域E2及び物体領域E3を表現するCADデータD1を生成する。例えば、ソリッドモデルが直方体である場合、6面の表裏側に関するCADデータD1は、データ数が12データ分だけ生成されることとなる。
【0053】
続いて、演算部11は、MCNP/PHITSの入力ファイルに含まれている立体(セル)の面データの集合演算を、CADデータD1を用いた集合演算に置き換えることで、セルデータに対応するソリッドモデルのCADデータD1を生成し(ステップS52)、処理を終了する。
【0054】
以上のように、本実施形態に記載のデータ変換プログラムP、データ変換方法及びデータ変換装置1は、例えば、以下のように把握される。
【0055】
第1の態様に係るデータ変換装置1は、3次元空間においてモデリングされたソリッドモデルを含むCADデータD1から、空間領域構成法によって前記ソリッドモデルをCSG表現したデータであるCSGデータD3へデータ変換を行うために、ハードウェア上において実行されるデータ変換プログラムPであって、前記CADデータD1に基づいて、前記ソリッドモデルを境界表現したデータであるB-repデータD2を生成するステップS1,S106と、生成した前記B-repデータD2に基づいて、前記境界表現から前記CSG表現に変換するための所定のアルゴリズムを用いて、前記ソリッドモデルの前記CSGデータD3を生成するステップS2,S110と、を実行させ、前記B-repデータを生成するステップS1では、前記CADデータD1から、前記ソリッドモデルを区画するシェルに関する情報を取得するステップS12と、前記CADデータD1から、前記シェルを構成する面要素に関する情報を取得するステップS13と、前記CSGデータへの変換を可能とするための補助面となる曖昧面に関する情報を設定するステップS14と、前記面要素に対して半空間を定義するステップS15と、を実行させる。
【0056】
この構成によれば、CADデータD1からCSGデータD3に変換するための情報として、面群に対応する半空間の集合を取得することができ、また、曖昧面を設定することでデータ変換時におけるソリッドモデルの形状を適切に表現できるため、ソリッドモデルをCSGデータD3へ適切にデータ変換することができる。
【0057】
第2の態様として、前記曖昧面に関する情報を設定するステップS14では、前記ソリッドモデルM1~M5が所定の設定条件を満たす場合に前記曖昧面20a~20hが設定されており、前記所定の設定条件として、前記ソリッドモデルM1が円筒面または円錐面を有する場合、前記円筒面または前記円錐面の周方向の両側に設けられる他の面との間の2つの境界線L1の両端における4つの端点O1のうち、3つの前記端点O1を含む平面を前記曖昧面20aとして設定する第1の設定条件と、前記ソリッドモデルM2a,M2bが非平面同士を接続する稜線L2,L3を有するものであって、前記稜線L2,L3が平面に配置可能である場合、前記稜線L2,L3を含む平面を前記曖昧面20b,20cとして設定する第2の設定条件と、前記ソリッドモデルM3a,M3bがトーラス面を有する場合、前記トーラス面の回転軸と同軸となる円筒面を前記曖昧面20d,20eとして設定する第3の設定条件と、前記ソリッドモデルM4がトーラス面を有する場合、前記トーラス面の回転軸と直交する平面を前記曖昧面20fとして設定する第4の設定条件と、前記ソリッドモデルM2a,M2bがトーラス面を有し、前記第2の設定条件において設定された前記曖昧面20b,20cが、前記トーラス面の回転軸に直交する場合、前記稜線L2は円を描くことから、前記稜線L2上をとおり、前記トーラス面の回転軸と同軸となる円筒面を前記曖昧面20gとして設定する第5の設定条件と、前記ソリッドモデルM5が、異径の円筒面同士を接続したものである場合、小径となる円筒面の接続側の端面を含む平面を前記曖昧面20hとして設定する第6の設定条件と、があり、前記第1の設定条件から前記第6の設定条件のうち、少なくとも1つの設定条件を含む。
【0058】
この構成によれば、設定条件に基づいて、適切な曖昧面を設定することができるため、CADデータD1からCSGデータD3へより適切にデータ変換することができる。
【0059】
第3の態様として、前記B-repデータを生成するステップS1では、前記ソリッドモデルを包含する領域と、前記ソリッドモデルを包含しない外部領域E1とに区画しており、前記面要素に対して半空間を定義するステップS15では、前記ソリッドモデルを包含する領域内において、前記面要素に対して、前記物体領域E3と前記空間領域E2とに分けるように前記半空間が定義される。
【0060】
この構成によれば、CADデータD1のソリッドモデルをCSG表現する場合であっても、有限となる三次元領域においてソリッドモデルを表現することが可能となるため、CADデータD1からCSGデータD3へ好適にデータ変換することができる。
【0061】
第4の態様として、前記CSGデータD3を生成するステップS2では、前記物体領域E3同士の干渉、及び前記空間領域E2同士の干渉を判定するステップS41と、干渉していると判定した場合、エラーを報知するステップS43と、をさらに実行している。
【0062】
この構成によれば、CADデータD1からCSGデータD3へのデータ変換する場合、領域干渉によるデータの誤変換を抑制することができる。
【0063】
第5の態様として、生成した前記CSGデータD3の前記ソリッドモデルにおいて、重複する前記面要素が定義された場合、重複する前記面要素を削除するステップを、さらに実行する。
【0064】
この構成によれば、例えば、CSGデータD3を、MCNPまたはPHITSの入力ファイルとして用いる場合であっても、重複する面要素を削除することで、適切な面データとなる入力ファイルを生成することができる。
【0065】
第6の態様として、前記CADデータD1は、前記ソリッドモデルに付された色情報を、さらに含み、前記色情報と物質情報とを関連付けたテーブルTに基づいて、生成された前記CSGデータD3の前記ソリッドモデルに前記物質情報を関連付けるステップS107を、さらに実行する。
【0066】
この構成によれば、CADデータD1の色情報に基づいて、テーブルTを用いて、CSGデータD3に物質情報を関連付けることができる。
【0067】
第7の態様として、前記ソリッドモデルの前記CSGデータに基づいて、前記ソリッドモデルの前記CADデータを生成するステップと、をさらに実行する。
【0068】
この構成によれば、CSGデータD3からCADデータD1に逆変換を実行することができる。
【0069】
第8の態様に係るデータ変換方法は、3次元空間においてモデリングされたソリッドモデルを含むCADデータから、空間領域構成法によって前記ソリッドモデルをCSG表現したデータであるCSGデータへデータ変換を行うデータ変換方法であって、前記CADデータに基づいて、前記ソリッドモデルを境界表現したデータであるB-repデータを生成するステップと、生成した前記B-repデータに基づいて、前記境界表現から前記CSG表現に変換するための所定のアルゴリズムを用いて、前記ソリッドモデルの前記CSGデータを生成するステップと、を備え、前記B-repデータを生成するステップでは、前記CADデータから、前記ソリッドモデルを区画するシェルに関する情報を取得するステップと、前記CADデータから、前記シェルを構成する面要素に関する情報を取得するステップと、前記CSGデータへの変換を可能とするための補助面である曖昧面に関する情報を設定するステップと、前記面要素に対して半空間を定義するステップと、を有する。
【0070】
この構成によれば、CADデータD1からCSGデータD3に変換するための情報として、面群に対応する半空間の集合を取得することができ、また、曖昧面を設定することでデータ変換時におけるソリッドモデルの形状を適切に表現できるため、ソリッドモデルをCSGデータD3へ適切にデータ変換することができる。
【0071】
第9の態様に係るデータ変換装置1は、3次元空間においてモデリングされたソリッドモデルを含むCADデータから、空間領域構成法によって前記ソリッドモデルをCSG表現したデータであるCSGデータへデータ変換を行う演算部を備えたデータ変換装置であって、前記演算部は、前記CADデータに基づいて、前記ソリッドモデルを境界表現したデータであるB-repデータを生成するステップと、生成した前記B-repデータに基づいて、前記境界表現から前記CSG表現に変換するための所定のアルゴリズムを用いて、前記ソリッドモデルの前記CSGデータを生成するステップと、を実行し、前記B-repデータを生成するステップでは、前記CADデータから、前記ソリッドモデルを区画するシェルに関する情報を取得するステップと、前記CADデータから、前記シェルを構成する面要素に関する情報を取得するステップと、前記CSGデータへの変換を可能とするための補助面である曖昧面に関する情報を設定するステップと、前記面要素に対して半空間を定義するステップと、を実行する。
【0072】
この構成によれば、CADデータD1からCSGデータD3に変換するための情報として、面群に対応する半空間の集合を取得することができ、また、曖昧面を設定することでデータ変換時におけるソリッドモデルの形状を適切に表現できるため、ソリッドモデルをCSGデータD3へ適切にデータ変換することができる。
【符号の説明】
【0073】
1 データ変換装置
11 演算部
12 記憶部
20a~20h 曖昧面
P データ変換プログラム
D1 CADデータ
D2 B-repデータ
D3 CSGデータ
T テーブル
B バウンディングボックス
E1 外部領域
E2 空間領域
E3 物体領域
M1~M5 ソリッドモデル
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18