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

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

▶ JX日鉱日石金属株式会社の特許一覧

特開2024-105040粒子のシミュレートに関する方法及びプログラム
<>
  • 特開-粒子のシミュレートに関する方法及びプログラム 図1
  • 特開-粒子のシミュレートに関する方法及びプログラム 図2
  • 特開-粒子のシミュレートに関する方法及びプログラム 図3
  • 特開-粒子のシミュレートに関する方法及びプログラム 図4
  • 特開-粒子のシミュレートに関する方法及びプログラム 図5
  • 特開-粒子のシミュレートに関する方法及びプログラム 図6
  • 特開-粒子のシミュレートに関する方法及びプログラム 図7
  • 特開-粒子のシミュレートに関する方法及びプログラム 図8
  • 特開-粒子のシミュレートに関する方法及びプログラム 図9
  • 特開-粒子のシミュレートに関する方法及びプログラム 図10
  • 特開-粒子のシミュレートに関する方法及びプログラム 図11
  • 特開-粒子のシミュレートに関する方法及びプログラム 図12
  • 特開-粒子のシミュレートに関する方法及びプログラム 図13
  • 特開-粒子のシミュレートに関する方法及びプログラム 図14
  • 特開-粒子のシミュレートに関する方法及びプログラム 図15
  • 特開-粒子のシミュレートに関する方法及びプログラム 図16
  • 特開-粒子のシミュレートに関する方法及びプログラム 図17
  • 特開-粒子のシミュレートに関する方法及びプログラム 図18
  • 特開-粒子のシミュレートに関する方法及びプログラム 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024105040
(43)【公開日】2024-08-06
(54)【発明の名称】粒子のシミュレートに関する方法及びプログラム
(51)【国際特許分類】
   G16Z 99/00 20190101AFI20240730BHJP
【FI】
G16Z99/00
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023009562
(22)【出願日】2023-01-25
(71)【出願人】
【識別番号】502362758
【氏名又は名称】JX金属株式会社
(74)【代理人】
【識別番号】110000523
【氏名又は名称】アクシス国際弁理士法人
(72)【発明者】
【氏名】曽田 力央
(72)【発明者】
【氏名】山本 通典
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049DD02
(57)【要約】
【課題】粒子を配置する操作を行うユーザの負担を軽減することを目的とする。
【解決手段】
一側面において以下の発明を提供する。
容器内の粒子の挙動をシミュレートするためのプログラムであって、
情報処理装置のプロセッサに命じて、以下を含むステップを実行させることが可能である、プログラム:
前記容器の3次元データを読み込むステップと、
前記粒子のデータを読み込むステップと、
前記容器の内部空間の一部を少なくとも含む第1領域を設定するステップと、
前記3次元データに少なくとも基づいた前記容器の内部空間に対応する第2領域と前記第1領域とに共通する第3領域に前記粒子を配置するステップ。
【選択図】図3
【特許請求の範囲】
【請求項1】
容器内の粒子の挙動をシミュレートするためのプログラムであって、
情報処理装置のプロセッサに命じて、以下を含むステップを実行させることが可能である、プログラム:
前記容器の3次元データを読み込むステップと、
前記粒子のデータを読み込むステップと、
前記容器の内部空間の一部を少なくとも含む第1領域を設定するステップと、
前記3次元データに少なくとも基づいた前記容器の内部空間に対応する第2領域と前記第1領域とに共通する第3領域に前記粒子を配置するステップ。
【請求項2】
請求項1のプログラムであって、
前記プログラムは、前記容器の内部空間に少なくとも部分的に配置される構造物の3次元データを読み込むステップを更に実行させることが可能であり、
前記第3領域は、前記構造物の外側に該当する空間となる、
プログラム。
【請求項3】
請求項1のプログラムであって、前記粒子を配置するステップは、
前記第1領域内で任意の点座標を選択すること、
前記点座標又はこれに対応する粒子の位置が、前記第2領域内であるか否かを判断すること、
前記点座標又はこれに対応する粒子の位置が前記第2領域内ではないと判断した場合には、前記座標に粒子が存在しないように設定すること、
前記点座標又はこれに対応する粒子の位置が前記第2領域内であると判断した場合には、前記座標に粒子が存在するように設定すること
を含む、プログラム。
【請求項4】
前記第1領域を設定するステップは、少なくとも2点の3次元空間座標に少なくとも基づいて当該第1領域を設定することを含む、請求項1のプログラム。
【請求項5】
前記配置された前記粒子を重力に従い前記容器内で再配置させるステップを更に実行させることが可能である、請求項1のプログラム。
【請求項6】
前記再配置させるステップが、個別要素法又は離散要素法に従って再配置させることを含む、請求項5のプログラム。
【請求項7】
前記粒子の挙動をシミュレートするステップを更に実行させることが可能である、請求項1のプログラム。
【請求項8】
請求項1~7いずれか1項に記載のプログラムを、情報処理装置を用いて実行することを含む方法。
【請求項9】
容器内の粒子の挙動をシミュレートしたデータを製造する方法であって、請求項1~7いずれか1項に記載のプログラムを、情報処理装置を用いて実行することを含む方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、粒子のシミュレートに関する方法及びプログラムに関する。より具体的には、容器内の粒子の挙動をシミュレートするためのプログラム、当該プログラムを用いた方法、及び、当該プログラムを用いてデータを製造する方法に関する。
【背景技術】
【0002】
粒子の挙動をシミュレートする方法として、離散要素法(又は個別要素法:DEM:Discrete Element Method)が知られている。当該方法では、最初に、粒子を球等の要素とみなす。次に、各要素間の接触及び/又は滑動を算出する。そして、各時刻におけるそれぞれの要素の運動を追跡する。
【0003】
容器内の粒子の挙動をシミュレートする場合には、粒子を容器内に配置する作業を行うことが必要になる場合がある。特許文献1では、仮想粒子を配置するための範囲を入力すること、次いで、仮想粒子を配置する座標位置を設定することが開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2011-081530号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
容器内に粒子を配置する方法はいくつか存在し、例えば、容器内の空間の一部を範囲指定して、当該範囲内に粒子を配置する方法が含まれる。この場合、容器内の底面に対して極端に狭い範囲に指定してしまうと、底面の一部に粒子が集中してしまう。一方で、容器内の底面全体に近い範囲まで指定することは、精密な入力装置の操作を伴う。換言すれば、小さな範囲指定のずれが原因となって、粒子が容器外又は容器の壁と重なる位置に配置されてしまう。
【0006】
従って、ソフトウェアを用いて容器内の粒子をシミュレートする場合、入力装置を用いて粒子を配置する操作は、精密さが必要で、ユーザにとって煩わしく、且つ、集中力が必要であった。そこで、本開示は、粒子を配置する操作を行うユーザの負担を軽減することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するための発明は、以下のように特定される。
【0008】
(発明1)
容器内の粒子の挙動をシミュレートするためのプログラムであって、
情報処理装置のプロセッサに命じて、以下を含むステップを実行させることが可能である、プログラム:
前記容器の3次元データを読み込むステップと、
前記粒子のデータを読み込むステップと、
前記容器の内部空間の一部を少なくとも含む第1領域を設定するステップと、
前記3次元データに少なくとも基づいた前記容器の内部空間に対応する第2領域と前記第1領域とに共通する第3領域に前記粒子を配置するステップ。
(発明2)
発明1のプログラムであって、
前記プログラムは、前記容器の内部空間に少なくとも部分的に配置される構造物の3次元データを読み込むステップを更に実行させることが可能であり、
前記第3領域は、前記構造物の外側に該当する空間となる、
プログラム。
(発明3)
発明1又は2のプログラムであって、前記粒子を配置するステップは、
前記第1領域内で任意の点座標を選択すること、
前記点座標又はこれに対応する粒子の位置が、前記第2領域内であるか否かを判断すること、
前記点座標又はこれに対応する粒子の位置が前記第2領域内ではないと判断した場合には、前記点座標に粒子が存在しないように設定すること、
前記点座標又はこれに対応する粒子の位置が前記第2領域内であると判断した場合には、前記点座標に粒子が存在するように設定すること
を含む、プログラム。
(発明4)
前記第1領域を設定するステップは、少なくとも2点の3次元空間座標に少なくとも基づいて当該第1領域を設定することを含む、発明1~3いずれか1つに記載のプログラム。
(発明5)
前記配置された前記粒子を重力に従い前記容器内で再配置させるステップを更に実行させることが可能である、発明1~4いずれか1つに記載のプログラム。
(発明6)
前記再配置させるステップが、個別要素法又は離散要素法に従って再配置させることを含む、発明5のプログラム。
(発明7)
前記粒子の挙動をシミュレートするステップを更に実行させることが可能である、発明1~6いずれか1つに記載のプログラム。
(発明8)
発明1~7いずれか1つに記載のプログラムを、情報処理装置を用いて実行することを含む方法。
(発明9)
容器内の粒子の挙動をシミュレートしたデータを製造する方法であって、発明1~7いずれか1つに記載のプログラムを、情報処理装置を用いて実行することを含む方法。
【発明の効果】
【0009】
一側面において、上記発明は、3次元データに少なくとも基づいた容器の内部空間に対応する第2領域と第1領域とに共通する第3領域に粒子を配置するステップを含む。これにより、ユーザが精密な操作を行わなくても、適切に粒子を配置することができ、そして、ユーザの負担が軽減される。
【図面の簡単な説明】
【0010】
図1】一実施形態における本開示の情報処理装置を示す。
図2】一実施形態における本開示のシステムを示す。システムは、複数の端末と、少なくとも1つのサーバとを含むことができる。端末とサーバはネットワークを通して接続されてもよい。
図3】一実施形態における本開示の方法を示す。
図4】一実施形態における本開示の方法を示す。
図5】一実施形態における本開示のインターフェースを示す。当該インターフェースは、容器の3次元データファイル(図5では「3Dデータファイル」と表現、以降の図でも同様)を受信するためのアイテムと、粒子のデータを受信するためのアイテムとを備えてもよい。また、当該インターフェースは、容器を3次元形式で表示するためのアイテムを備えてもよい。
図6】一実施形態における本開示のインターフェースを示す。図5に示すインターフェースと同様の構成であるが、容器のプロパティを設定するためのアイテムを備えてもよい。具体的には、容器の内部へ粒子を配置(充填)することを許可するかどうかのプロパティを設定することができる。
図7】一実施形態において、第1領域を設定するための方法を示す。ある一点(下向き矢印)をクリックした後、ドラッグ(斜め下方向矢印)して領域を指定することができる。指定された領域の形状は直方体であってもよい。
図8】一実施形態において、第1領域を設定するための方法を示す。ある一点(第1の下向き矢印)をクリックした後、続いて別の一点(第2の下方向矢印)をクリックして領域を指定することができる。指定された領域の形状は直方体であってもよい。
図9】一実施形態において、第1領域を設定するための方法を示す。ある一点(下向き矢印)をクリックした後、ドラッグ(斜め下方向矢印)して領域を指定することができる。指定された領域の形状は円柱であってもよい。
図10】一実施形態において、第1領域を設定するための方法を示す。ある一点(下向き矢印)をクリックした後、ドラッグ(斜め下方向矢印)して領域を指定することができる。指定された領域の形状は多角柱であってもよい。
図11】一実施形態において、第2領域を設定するための方法を示す。
図12】一実施形態において、第3領域を設定するための方法を示す。第1領域と、第2領域と、第3領域との関係をわかりやすく示すため、容器を側面から見た状態を示す。
図13】一実施形態において、第3領域が設定された後、粒子が配置される状態を示す。
図14】粒子を容器の上方に配置した状態、容器内に粒子を落下させた状態、及び、構造物上方に残った粒子を振動などにより落とした状態を示す。
図15】一実施形態における本開示の方法を示す。
図16】一実施形態における本開示のインターフェースを示す。当該インターフェースは、容器の3次元データファイルを受信するためのアイテムと、構造物の3次元データファイルを受信するためのアイテムと、粒子のデータを受信するためのアイテムとを備えてもよい。また、当該インターフェースは、容器を3次元形式で表示するためのアイテムを備えてもよい。
図17】一実施形態において、第3領域を設定するための方法を示す。
図18】一実施形態における本開示の方法を示す。
図19】一実施形態における本開示の方法を示す。
【発明を実施するための形態】
【0011】
以下、発明を実施するための具体的な実施形態について説明する。以下の説明は、発明の理解を促進するためのものである。即ち、本発明の範囲を限定することを意図するものではない。
【0012】
1.概要
一実施形態において、本開示は、容器内の粒子の挙動をシミュレートするためのプログラム、当該プログラムを用いた方法、及び、当該プログラムを用いてデータを製造する方法に関する。
【0013】
適用対象の技術分野は特に限定されず、容器内の粒子の挙動をシミュレートする任意の技術分野に適用可能である。技術分野の例としては、以下が含まれるが、これらに限定されない:容器内の攪拌中の粒子の挙動、流動床中の粒子の挙動、スクリューフィーダによる粒子の挙動、ホッパー内の粒子の挙動、分級機内の粒子の挙動、造粒装置内の粒子の挙動、空気輸送装置内の粒子の挙動、粉体計量器内の粒子の挙動、圧密成型機内の粒子の挙動、粉体混合器内の粒子の挙動、打錠成型機内の粒子の挙動など。
【0014】
粒子のサイズも特に限定されず、本開示の方法及びプログラムは、任意のサイズの粒子に適用可能である。例えば、粒子のサイズは、ミリオーダーであってもよく、マイクロオーダーであってもよく、ナノオーダーであってもよい。粒子は、固体、原子、分子など離散的な物体を含む。また、粒子の種類も限定されず、本開示の方法及びプログラムを通して、1種類の粒子の挙動をシミュレートすることができ、或いは、2種類以上の粒子の挙動をシミュレートすることができる。粒子の形状、粒子の数も特に限定されない。
【0015】
2.プログラムを実行する環境
プログラム及び方法を実行するための環境は特に限定されず、典型的な情報処理装置を用いることができる。情報処理装置(100)は、典型的には、図1に示すように、プロセッサ(110)、メモリ(120)、非一時的記憶媒体(130)、及び、通信モジュール(140)を備えることができる。
【0016】
情報処理装置(100)は、例えば、以下が含まれるがこれらに限定されない:サーバ、パーソナルコンピュータ、タブレット端末、スマートフォン、スマートウォッチ、スマートグラス等。
【0017】
プログラムは、非一時的な記憶媒体(130、例えば、HDD、SSD等)に記憶され、適宜、メモリ(120、例えば、RAM等)にロードされ、プロセッサ(110、例えば、CPU等)によって実行される。必要に応じて、プログラムは、通信モジュール(140)を通してネットワークに接続して、情報の送信及び受信を行うことができる。
【0018】
一実施形態において、プログラムは、アプリケーションソフトとして、1台の情報処理装置(100)にインストールされてもよく、そして、当該情報処理装置(100)によって実行されてもよい。
【0019】
別の実施形態において、情報処理装置(100)の数は1台に限定されず、必要に応じて複数台の情報処理装置(100)を利用してもよい。その際には、プログラムの機能を複数台の情報処理装置(100)に分散させてもよい。
【0020】
或いは、図2に示すように、サーバ(210)と端末(220)とがネットワークを通して相互に接続されたシステム(200)の構成を採用してもよい。当該システム(200)において、端末(220)は、ユーザからの入力を受信し、当該受信した入力の少なくとも一部をサーバ(210)に送信してもよい。サーバ(210)は、端末(220)から送信された入力情報を受信し、情報処理を行い、出力の一部を端末(220)に送信してもよい。そして、端末(220)は、サーバ(210)から送信された出力情報を受信し、端末(220)において表示してもよい。
【0021】
従って、別の一側面において、本開示は、本開示のプログラムを含む情報処理装置、及び、当該情報処理装置を含むシステムにも関する。更に別の一側面においては、本開示は、本開示のシステムを構成する端末、及び/又は、サーバに関する。端末及びサーバの内部構成は、図1に示す情報処理装置と同様であってもよい。更に別の一側面においては、本開示は、プログラムを記憶した記憶媒体(例えば、HDD、SSD、フラッシュメモリ、光学ディスク等)に関する。
【0022】
3.プログラムのステップの概要
一実施形態において、本開示のプログラムは、少なくとも以下を含むステップを実行する(図3):
・容器の3次元データを読み込むステップ(S10)
・粒子のデータを読み込むステップ(S20)
・容器の内部空間の一部を少なくとも含む第1領域を設定するステップ(S30)
・3次元データに少なくとも基づいた容器の内部空間に対応する第2領域と第1領域とに共通する第3領域に粒子を配置するステップ(S40)
【0023】
上記一連のステップを実行することを含むプログラムの具体例を、以下各実施形態として説明する。
【0024】
4.第一実施形態
一実施形態において、本開示のプログラムは、少なくとも以下を含むステップを実行する(図4):
・容器の3次元データを読み込むステップ(S10)
・粒子のデータを読み込むステップ(S20)
・容器の内部空間の一部を少なくとも含む第1領域を設定するステップ(S30)
・3次元データに少なくとも基づいて容器の内部空間に対応する第2領域を設定するステップ(S50)
・第1領域と第2領域とに共通する第3領域を設定するステップ(S60)
・第3領域に粒子を配置するステップ(S70)
【0025】
上記各ステップについて、以下詳述する。
【0026】
4-1.容器の3次元データを読み込むステップ
容器の3次元データの形式は特に限定されない。典型的には、容器の3次元データの形式は、CADファイルであってもよい。或いは、容器の3次元データの形式は、3Dスキャナで取得した点群データの形式であってもよい。例えば、容器の3次元データのファイルは、以下の拡張子のファイルを読み込んでもよい:「.model」、「.CATPart」、「.CATProdet」、「.sldprt」、「.sldasm」、「.prt」、「.asm」、「.ipt」、「.iam」、「.x_t」、「.x_b」、「.xmt_txt」、「.sat」、「.sab」、「.jt」、「.dxf」、「.dwg」、「.dwf」、「.igs」、「.iges」、「.stp」、「.step」、「.stl」、「.obj」、「.amf」、「.3mf」「.wrl」「.vda」「.skp」「.3dm」「.rvt」「.QIF」「.ply」「.anf」「.pkg」「.idf」「.idb」「.emn」「.prt」「.sat」「.asat」「.sat」「.asat」「.3dxml」「.rsdoc」「.scdoc」。
【0027】
容器の3次元データを読み込むステップは、ユーザの操作によって開始されてもよい。典型的には、容器の3次元データを読み込むステップは、ユーザの操作に応答して、指定されたファイルを情報処理装置へアップロードすることを含んでもよい。また、当該装置は、アップロードするためのユーザインタフェースを提供してもよい。例えば、図5に示すように、ローカル又はクラウド上に保存したファイルを指定するためのインターフェースを設けてもよい。更には、容器の3次元データを読み込んだ後、ユーザインタフェース上に、容器の形状を表現したオブジェクトを表示してもよい。
【0028】
情報処理装置は、容器の3次元データを読み込む前、読み込む時、又は、読みこんだ後、当該データに対して、内部への粒子充填を許可するか禁止するかを示すプロパティを付与してもよい。こうしたプロパティを付与する処理は、図6に示すように、ユーザの操作に応答して行われてもよく(例えば、チェックボックスをクリック等)、或いは、情報処理装置が所定の処理を実行することで自動的に行われてもよい。自動的に行われる場合、典型的には、容器内部への粒子の充填は許可されるプロパティが設定される。
【0029】
4-2.粒子のデータを読み込むステップ
容器の3次元データを読み込むステップに加えて、粒子のデータを読み込むステップを情報処理装置のプログラムが実行する。なお、両方のステップは、任意の順序で行うことができる。即ち、容器の3次元データを読み込むステップの後に、粒子のデータを読み込むステップを情報処理装置のプログラムが実行してもよい。或いは、容器の3次元データを読み込むステップの前に、粒子のデータを読み込むステップを情報処理装置のプログラムが実行してもよい。或いは、容器の3次元データを読み込むステップと、粒子のデータを読み込むステップとを、情報処理装置のプログラムがパラレルに実行してもよい。
【0030】
典型的には、粒子のデータを読み込むステップは、ユーザからの入力操作に応答して、粒子のデータを情報処理装置が受信することを含んでもよい。また、当該装置は、受信するためのアイテムをユーザインタフェース上に提供してもよい。例えば、図5に示すように、粒子に関する種々の特性に関するデータを入力するためのアイテムをインターフェース上に設けてもよい。また、複数種類の粒子をシミュレートする場合には、各種類の粒子ごとに、特性に関するデータを入力するためのアイテムをインターフェース上に設けてもよい。
【0031】
また、粒子のデータを読み込むステップは、ユーザの操作に応答して、粒子のデータを含む指定されたファイルを情報処理装置がアップロードすることを含んでもよい。この場合には、図5に示す、容器の3次元データのファイルをアップロードするためのアイテムと類似のアイテムをインターフェース上に設けてもよい。
【0032】
粒子のデータは、限定されないが、以下のいずれか1以上を含むことができる:粒子のサイズ(例えば、直径)、形状、ポアソン比、ヤング率、摩擦係数、反発係数、接触角、物質名、粒子1つあたりの質量、粒子1つあたりの体積、密度、並びに、後述する第3領域に配置するすべての粒子の個数、質量、及び、体積。これらのうち、特に粒子を配置するにあたって、重要なのは、以下の(1)~(3)の3つの情報となる。
(1)粒子の1つあたりのサイズ、及び、質量のうちいずれか1つ
(2)粒子の形状、並びに、
(3)第3領域に配置する粒子のトータルの個数、質量、及び、体積のうちいずれか1つ
【0033】
4-3.第1領域を設定するステップ
第1領域を設定するステップは、粒子のデータを読み込む上記ステップとは独立して実行されてもよい。即ち、第1領域を設定するステップは、粒子のデータを読み込むステップの前、後、又は、当該ステップとパラレルに実行されてもよい。
【0034】
また、第1領域を設定するステップは、容器の3次元データを読み込むステップの後に実行される。理由は、第1領域が容器の内部空間の一部を少なくとも含んでおり、従って、容器の3次元データを予め読み込む必要があるからである。
【0035】
典型的には、第1領域を設定するステップは、容器の3次元データを読み込むステップの後であって、当該容器の3次元データを表示した後に実行される。
【0036】
第1領域を設定するステップは、典型的には、ユーザの操作に応答して、実行される。ユーザの操作は、第1領域を指定する操作を含む。例えば、ユーザの操作は、3次元空間座標内の少なくとも2点を指定する操作を含むことができる。指定する方法は、特に限定されず、少なくとも2箇所をクリックする操作を含んでもよく、或いは、1か所をクリックした後ドラッグを行い、別の1箇所でドラッグを終了させる操作を含んでもよい。
【0037】
例えば、マウス又はトラックボールを使用して、ある1点をクリックした後、別の位置まで、ドラッグしてもよい(図7に示す、下方向の矢印、及び、斜め方向の矢印を参照)。別の例では、タッチパネル又はタッチパッドを使用して、ある1点をタップした後、別の位置まで、ドラッグしてもよい。更に別の例では、マウス又はトラックボールを使用して、ある1点をクリックした後、別の位置で、再度クリックしてもよい(図8に示す、2つの下方向の矢印を参照)。更に別の例では、タッチパネル又はタッチパッドを使用して、ある1点をタップした後、別の位置で、再度タップしてもよい。
【0038】
上記の例は、マウス又はトラックボールなどを使用した例であるが、別の方法によって、第1領域を設定することも可能である。例えば、ユーザが3次元空間上の2点の座標の値をインターフェース上に入力してもよい。
【0039】
また、ユーザの操作によって設定された領域が容器の内部空間を全く含まない場合、情報処理装置はインターフェース上にその旨を表すエラーを表示してもよい。
【0040】
他の実施形態において、第1領域を設定するステップは、ユーザの操作によらず、情報処理装置が、容器の3次元データに基づいて自動的に実行してもよい。一例として、情報処理装置は、容器の3次元データに基づいて容器の内部空間を全て含むように第1領域を設定してもよい。他の例として、情報処理装置は、容器の3次元データに基づいて容器の内部空間を全て含むような第1領域となるように2点の座標をインターフェース上に自動的に入力し、必要に応じてユーザがこの2点の座標を修正する態様であってもよい。
【0041】
上記ユーザの操作に応答して、又は、情報処理装置の実行の後に、情報処理装置は、所定の3次元形状で表される第1領域を設定することができる。3次元形状は、特に限定されず、円柱形、多角柱形、直方体、立方体、球体等を含む。3次元形状は、好ましくは、直方体である(図7、及び図8参照)。
【0042】
直方体の場合、上記の操作によって特定される2点は、直方体において互いに最も遠い位置に存在する2つの頂点に対応してもよい。
【0043】
円柱形の場合、上記の操作によって特定される2点は、円柱形において、頂面の中心位置と、底面の円周上の1点とに対応してもよく(図9参照)、或いは、底面の中心位置と、頂面の円周上の1点とに対応してもよい。多角柱形の場合、上記の操作によって特定される2点は、多角柱形において、頂面の中心位置と、底面の複数の頂点のうちの1つの頂点とに対応してもよく(図10参照)、或いは、底面の中心位置と、頂面の複数の頂点のうちの1つの頂点とに対応してもよい。
【0044】
3次元形状で表される第1領域は、ユーザの操作に応答して、ユーザインタフェース上に、表示される。例えば、3次元形状で表される第1領域は、3次元形状で表される容器にオーバーレイされるように、表示されてもよい(図7図8図9図10)。
【0045】
設定された第1領域の情報は、情報処理装置に記憶される(例えば、情報処理装置(100)が備えるメモリ(120))。
【0046】
4-4.第2領域を設定するステップ
第2領域を設定するステップは、容器の3次元データを読み込むステップの後に実行される。しかし、第2領域を設定するステップは、粒子のデータを読み込むステップ、及び、第1領域を設定するステップの前、後、又は、これらのステップとパラレルに実行されてもよい。
【0047】
情報処理装置は、容器の3次元データを読み込んだ後、当該データに少なくとも基づいて、内部空間に対応する領域を決定し、当該データを第2領域として設定する(図11)。内部空間に対応する領域を決定する方法は限定されず、当分野で公知の方法で決定することができる。図11を用いて第2領域を設定する処理の一例を以下に記載する。情報処理装置は、容器の3次元データに基づいて3次元空間上に円柱状の容器(310)を配置する。情報処理装置は、粒子のデータに含まれる粒子の直径に基づいて粒子の半径を算出する。情報処理装置は、容器(310)よりも当該半径分だけ周囲が小さい円柱状の領域を第2領域(330)として設定する。これにより、後述する第3領域に粒子を配置する際に、粒子が容器(310)の壁面(内壁)と接触するような事態を回避することができる。
【0048】
従って、第2領域を設定するステップは、好ましくは、ユーザの操作に応答して実行されるというよりは、むしろ、容器の3次元データを読み込んだ後に自動的に実行される。
【0049】
第2領域は、ユーザインタフェースに表示されてもよく、或いは、表示されなくてもよい。
【0050】
設定された第2領域の情報は、情報処理装置に記憶される(例えば、情報処理装置(100)が備えるメモリ(120))。
【0051】
4-5.第3領域を設定するステップ
第1領域を設定するステップ及び第2領域を設定するステップの後に、第3領域を設定するステップが実行される。情報処理装置は、例えば、図12に示すように、第1領域(320)と第2領域(330)とを読み込み、両方の領域に共通する領域(340)を抽出する。そして、抽出された領域を第3領域として設定する。設定された第3領域の情報は、情報処理装置に記憶される(例えば、情報処理装置(100)が備えるメモリ(120))。
【0052】
また、設定された第3領域は、好ましくは、ユーザインタフェース上に表示される。より好ましくは、3次元形状で表される容器にオーバーレイされる形で表示された第1領域を消し、その後、第3領域を、3次元形状で表される容器にオーバーレイさせてもよい。
【0053】
4-6.粒子を配置するステップ
粒子のデータを読み込むステップの後に、且つ、第3領域を設定するステップの後に、第3領域に粒子を配置するステップが実行される。情報処理装置は、設定された第3領域内に存在するように粒子を配置する。粒子の配置方法は特に限定されない。典型的には、粒子のデータに少なくとも基づいて、情報処理装置は、粒子を第3領域内に配置することができる。例えば、粒子の形状、粒子の数及び粒子のサイズに少なくとも基づいて、情報処理装置は、粒子を第3領域内に配置することができる。
【0054】
配置する際には、第3領域内の下方から積み上げる方式で粒子を配置してもよい。積み上げる際には、例えば、正方配列、六方最密配列、及びランダム配列のいずれかに基づいて、粒子を積み上げてもよい。
【0055】
インターフェースにおいては、第3領域が予め表示されており、その後、「粒子を配置しますか?」などの確認メッセージを表示してもよい。そして、配置してもよいことを示す操作がユーザにより行われると、第3領域をいったん消し、その後、粒子を表示してもよい(図13)。
【0056】
なお、粒子サイズが大きすぎる、及び/又は、粒子の数が多すぎる場合には、第3領域内に全ての粒子を配置することができない可能性がある。その場合には、第3領域の上方に更に粒子を配置してもよい。或いは、情報処理装置は、ユーザインタフェースを通して、メッセージを出力してもよい。メッセージは、例えば、「第3領域が小さすぎてすべての粒子を配置できません」というエラーメッセージであってもよい。
【0057】
上記の一連のステップを実行することにより、集中力を要する精密な操作をユーザが行うことなく、容器内に粒子を配置することが可能となる。第1領域の設定、第2領域の設定、第3領域の設定を含む、3段階のステップを経ることで、粒子を配置すべき領域を、容器内の壁面近くまで設定できるからである。
【0058】
5.第二実施形態
第一実施形態では、容器の内部空間に構造物が存在していなかった。しかし、粒子を配置する容器の内部空間には、様々な構造物が配置される可能性がある。
【0059】
本明細書において、用語「構造物」とは、当該部品の少なくとも一部が容器の内部空間に存在する形で容器に取り付けられ、且つ、容器とは独立した部品を意味する。例えば、構造物は、容器から取り外し可能な部品であってもよい。例えば、構造物は、容器とは独立して動くことが可能な部品であってもよい。また、構造物のサイズ、形状等は特に限定されず、任意のサイズ、形状等であってもよい。限定されるものではないが、構造物の例としては、スクリュー、プロペラ、粉砕刃、容器の蓋、取り外し可能なバッフル等が挙げられる。なお、容器と一体化した部品(例えば、容器と一体化したバッフル等)は、容器の三次元データに組み込めばよい。
【0060】
粒子を配置する領域を設定するとき、上記の構造物に重ならないように配置することが必要となる。
【0061】
ユーザによる操作で指定された領域がそのまま粒子を配置する領域に設定される方法では、マウス、タッチパッド等の入力機器を用いて、容器内の構造物を含まないように領域を設定することは困難である。
【0062】
また、別のアプローチとして、図14に示す方法で粒子を配置する方法が存在する。具体的には、図14に示す方法は、以下のステップを含む。
・構造物(350)の情報を含む容器(310)の3次元データを読み込むステップ
・容器の上部に粒子を配置するための領域(340)を設定するステップ
・設定した領域(340)に粒子を配置するステップ
・粒子に重力を付与して粒子を落下させるステップ(更に好ましくは、構造物(350)への振動付与等により構造物(350)の上方に落下した粒子を落下させるステップ)
・落下後、容器の上部に蓋(360)を配置するステップ
【0063】
この方法であれば、構造物と重ならないように粒子を配置することが可能となる。
【0064】
しかし、この方法では、いくつかの問題が存在する。1つめの問題は、小さな範囲指定のずれが原因となって、重力落下させた際に粒子が容器の外側に落ちる可能性がある。2つめの問題は、重力落下させた際に構造物の上に粒子が残る可能性がある。そして、粒子が残ると、容器に蓋をすることができなくなる可能性がある。別途構造物(350)に振動を与えて粒子を構造物(350)の上から落とすことができるが、その分余分な手間が増えることになる。
【0065】
本開示の第二実施形態における方法は、こうした問題を解決することができる。
【0066】
具体的には、第二実施形態における方法は、図15に示す各ステップを含むことができる。図15に示すステップは、上記第一実施形態の方法と同じステップを含む。ただし、相違点として、構造物の3次元データを読み込むステップを更に含む。また、第3領域は、第1領域と第2領域とに共通する領域であり、且つ、構造物の外部に該当する領域となるように設定される。以下では、第一実施形態との相違部分となるステップについて、詳述する。
【0067】
5-1.容器の内部空間に配置される構造物の3次元データを読み込むステップ
構造物の3次元データは特に限定されない。典型的には、構造物の3次元データは、容器の3次元データと同様、CADファイル、3Dスキャナで取得した点群データのファイル等であってもよく、そして、上記拡張子のファイルを読み込むことができる。
【0068】
また、構造物の3次元データを読み込むためのインターフェースは、例えば、図5に示す容器の3次元データファイルをアップロードするためのアイテムと同様のアイテムを採用してもよい(図16)。
【0069】
容器の3次元データと同様に、情報処理装置は、構造物の3次元データを読み込む前、読み込む時、又は、読みこんだ後、当該データに対して、内部への粒子充填を許可するか禁止するかを示すプロパティを付与してもよい。こうしたプロパティを付与する処理は、ユーザの操作に応答して行われてもよく、或いは、情報処理装置が所定の処理を実行することで自動的に行われてもよい。
【0070】
構造物の3次元データを読み込んだ後、インターフェース上に、容器と構造物がともに表示されてもよい。また、ユーザからの操作(例えば、マウスなどで構造物のオブジェクトをドラッグするなど)により、構造物の位置を、任意の位置へと調節することができる。或いは、構造物の3次元データの中に、予め3次元空間座標の位置の情報が含まれる場合には、当該情報に基づいて、構造物の位置を、任意の位置へと調節することができる。
【0071】
構造物の数は限定されない。従って、構造物の数に応じて、構造物の3次元データを読み込むステップを複数回繰り返してもよい。
【0072】
5-2.第3領域を設定するステップ
上記第一実施形態においては、第2領域は、3次元データに基づく容器の内部空間に対応している。第二実施形態においては、更に構造物の存在に基づいて、第2領域を設定することができる。具体的な処理方法、演算方法等については、限定されないが、例えば、図17に示すように、最初に容器の内部空間領域を、容器の3次元データに基づいて確定し、その後、構造物の3次元データに基づいて、容器の内部空間領域から構造物の部分を差し引いて、第2領域を設定してもよい。
【0073】
この第2領域を用いて、第3領域を、上記第一実施形態と同様の方法で設定すると、粒子を配置する領域は、容器の内部空間に該当し、且つ、構造物の外部空間に該当する領域に設定される。
【0074】
無論、上記以外の方法で、第3領域を設定することも可能である。例えば、図4に示す「第1領域と第2領域とに共通する第3領域を設定するステップ」までは、第一実施形態と同様の方法で処理し、その後、更に、構造物の部分を差し引いて、第3の領域を再設定してもよい。或いは、第1領域から構造物の部分を差し引いて得られた領域と、第2領域とに共通する領域を、粒子を配置するための第3領域として設定してもよい。
【0075】
いずれのやり方で行ったとしても、最終的に設定される第3領域は、容器の内部空間に該当し、且つ、構造物の外部空間に該当する領域に設定される。
【0076】
この方法で第3領域が設定されると、粒子が構造物に重ならないように配置されることが可能となる。
【0077】
6.第三実施形態
第一実施形態では、情報処理装置によって第2領域及び第3領域が設定された。本開示の第三実施形態では、第2領域及び第3領域を設定することなく、実質的に第3領域に粒子を配置する。
【0078】
具体的には、第三実施形態における方法は、図18に示す各ステップを含むことができる。図18に示すステップは、上記第一実施形態の方法と一部共通している。以下では第一実施形態との相違部分となるステップについて、詳述する。
【0079】
6-1.粒子を配置するステップ
第1領域を設定するステップの後に、第1領域に粒子を1つ配置するステップが実行される。配置する際には、第1領域内の任意の点座標を選択してもよい。また、選択する際には、既に配置した粒子が存在する場合には、その粒子と重ならないかどうかを判定したうえで、当該点座標を選択してもよい。
【0080】
6-2.粒子が第2領域に配置された否かを判定するステップ
上記第1領域に配置された粒子が、容器の内部空間に対応する第2領域に配置されたか否かを判定するステップが実行される。一例として、情報処理装置は、配置された粒子の3次元空間座標と、容器の3次元データとを用いて、面(例えば三角形)と線分との交差判定を行うことができる。例えば、容器の3次元データをポリゴンで表現されたデータに変換することで、容器のあらゆる箇所が多角形の面の組み合わせで表現される。そして、配置された粒子の3次元空間座標(例えば、粒子の中心位置の座標)から任意の方向に伸ばした線分と、面とが交差するかどうかを判定する。そして、交差回数が奇数回の場合は当該粒子が容器内部に存在すると判定できる。交差回数が偶数回の場合は当該粒子が容器の外部に存在すると判定できる。
【0081】
面(例えば三角形)と線分との交差判定を行うアルゴリズムは、特に限定されず、当分野で用いられる任意のアルゴリズムを採用することができる。一例として、Tomas Mollerの内外判定アルゴリズムに基づいて当該ステップを実行してもよい(例えば、以下を参照:Tomas Moller and Ben Trumbore. Journal of Graphics Tools, 2(1):21-28, 1997)。
【0082】
粒子が第2領域(容器の内部空間)に配置されていないと判定された場合、情報処理装置は第1領域に配置した粒子を削除して、再度第1領域に粒子を配置するステップを実行する。
【0083】
粒子が第2領域に配置されたと判定された場合、情報処理装置は、当該粒子を削除することなく次の処理に進む。
【0084】
このとき、情報処理装置は、粒子のサイズと容器の3次元データとに基づいて、第2領域に配置された粒子が容器の壁面に接触しているか否かを更に判断するステップを実行しても良い。粒子が容器の壁面に接触していると判断された場合、情報処理装置は当該粒子を削除して、再度第1領域に粒子を配置するステップを実行する。
【0085】
このようにして配置された粒子は、第1領域と第2領域とに共通する領域(即ち第3領域)に存在することになる。
【0086】
6-3.配置された粒子の総数が所定の数に到達したか否かを判定するステップ
粒子が第2領域に配置されたと判定された場合、情報処理装置は、配置された粒子の総数が所定の数に到達したか否かを判定するステップを実行する。所定の数は、粒子のデータに含まれる第3領域に配置する粒子の個数であってもよいし、粒子のデータに含まれる粒子の質量と第3領域に配置する粒子の質量とから計算される粒子の個数であってもよいし、粒子のデータに含まれる粒子の体積と第3領域に配置する粒子の体積とから計算される粒子の個数であってもよい。
【0087】
情報処理装置は、配置された粒子の総数が所定の数に到達したと判断した場合は一連の粒子を配置する処理を終了し、そうでない場合は再度第1領域に粒子を配置するステップを実行する。
【0088】
第三実施形態において、情報処理装置は容器の内部空間に対応する第2領域を設定する処理、及び第1領域と第2領域とに共通する第3領域を設定する処理を行っていない。
【0089】
そのため、第三実施形態で実行される処理は、第一実施形態で実行される処理よりも粒子を配置する処理に要する計算時間を短縮し得る。
【0090】
なお、上記において第1領域に粒子を1つずつ配置しているが、複数の粒子を同時に配置しても良い。
【0091】
また、第二実施形態で実行される処理と第三実施形態で実行される処理とを組み合わせることもできる。
【0092】
一例として、粒子が第2領域に配置されたか否かを判定するステップの後又は前に、情報処理装置は、当該粒子が構造物の外側に位置するか否かを判定するステップを実行する。この処理は、例えば、配置された粒子の3次元空間座標と、構造物の3次元データとを用いて、面と線分の交差判定を行うことに基づいてもよい。そして、交差回数が奇数回の場合は当該粒子が構造物の内部に存在すると判定できる。交差回数が偶数回の場合は当該粒子が構造物の外部に存在すると判定できる。そして、粒子が構造物の内部に存在すると判定した場合には、図18のS100と同様に、配置した粒子を削除することができる。上記同様に、面(例えば三角形)と線分との交差判定を行うアルゴリズムは、特に限定されず、当分野で用いられる任意のアルゴリズムを採用することができる。一例として、Tomas Mollerの内外判定アルゴリズムに基づいて情報処理装置によって実行することができる。
【0093】
第三実施形態に示す方法では、いくつかの変更が可能である。例えば、図18に示す方法に代えて、図19に示す方法を実行してもよい。図18に示す方法では、一度粒子を配置した後、当該配置された粒子が容器の内部空間に対応する第2領域に配置されたかどうかの判定を行う。そして、Noの場合には、粒子を削除する。
【0094】
図19に示す方法では、座標を選択して、当該座標が、容器の内部空間に対応する第2領域に位置するかどうかの判定を行う。この判定は、図18に示す方法と同様、配置された粒子の3次元空間座標と、容器の3次元データとを用いて、面(例えば三角形)と線分との交差判定を行うものであってもよい。
【0095】
判定の結果Yesの場合には、粒子を配置し、Noの場合には粒子を配置せず、更に別の座標を選択するため、第1領域内の座標を1つ選択するステップに戻る。
【0096】
以上の方法により、図18に示す方法と同様に、粒子を配置することができる。
【0097】
7.第四実施形態
第一実施形態、第二実施形態、及び第三実施形態の少なくとも1つの実施形態で実行される処理に加えて、第四実施形態は、第3領域に配置された粒子を、重力に従い容器内で再配置させるステップを更に含んでもよい。具体的には、粒子に重力を付与した後で、粒子を重力に従って落下させたときの粒子の挙動をシミュレートする処理が実行されてもよい。シミュレートするための具体的な処理方法は特に限定されないが、典型的には、離散要素法又は個別要素法(Discrete Element Method、又は、Distinct Element Method)に従ってシミュレートしてもよい。
【0098】
これにより、より実態に近い状態で粒子を配置することができる。無論、正方配列、六方最密配列、及びランダム配列のいずれかに基づいて、粒子を積み上げてもよいが、それだと、不自然に整然と粒子が配置されたり、不自然に隙間なく粒子が配置されたり、不自然に隙間が存在した状態で粒子が配置されたりする可能性がある。粒子を重力に従って落下させる処理を行うことで、こうした不自然さを解消することができる。
【0099】
また、第二実施形態と第四実施形態とを組み合わせた場合、又は、第三実施形態(第三実施形態であって、構造物を有する場合)と第四実施形態を組み合わせた場合には、図14に示される配置方法と比べて利点が存在する。
【0100】
より具体的には、図14に示される配置方法では、上記述べたとおり、容器の外側に粒子が落下する可能性がある。これを避ける目的で、領域を狭く設定することも可能である。しかし、狭い状態で粒子を配置してしまうと、落下させるための計算処理に時間がかかることになる。
【0101】
しかし、第二実施形態と第三実施形態とを組み合わせた場合、又は、第三実施形態(第三実施形態であって、構造物を有する場合)と第四実施形態を組み合わせた場合には、容器の外側に粒子が落下する可能性をユーザが考慮することなく、粒子を配置する領域を設定することが可能である。そして、容器の壁面近くまで粒子を配置する領域を広げることが可能である。従って、粒子を落下させる処理を実行したときにかかる時間を最小限にできる。
【0102】
8.その後の処理
上記第一実施形態、第二実施形態、第三実施形態、及び、第四実施形態のいずれか1以上に示す各ステップを実行した後、プログラムは、更に、容器又は構造物に力を付与して、これらのオブジェクトを動かし、粒子の挙動をシミュレートするステップを含むことができる。シミュレートするための具体的な処理方法は特に限定されないが、典型的には、離散要素法又は個別要素法(Discrete Element Method、又は、Distinct Element Method)に従ってシミュレートしてもよい。
【0103】
プログラムは、上記シミュレートするステップを実行した後、粒子の挙動を定義したデータを作成することができる。当該データは、粒子ごとに、時間、3次元空間座標内の位置に関する情報を含むことができる。そして、所望のアプリケーションが上記データを読みこんで、粒子の挙動をユーザインタフェース上に再生することができる。
【0104】
従って、一実施形態において、本開示は、容器内の粒子の挙動をシミュレートしたデータを製造する方法に関する。
【0105】
以上、発明の具体的な実施形態について説明してきた。上記実施形態は、具体例に過ぎず、本発明は上記実施形態に限定されない。例えば、上記実施形態の1つに開示された技術的特徴は、他の実施形態に適用することができる。また、特記しない限り、特定の方法については、一部の工程を他の工程の順序と入れ替えることも可能であり、特定の2つの工程の間に更なる工程を追加してもよい。本発明の範囲は、特許請求の範囲によって規定される。
【符号の説明】
【0106】
100 情報処理装置
110 プロセッサ
120 メモリ
130 非一時的記憶媒体
140 通信モジュール
200 システム
210 サーバ
220 端末
310 容器
320 第1領域
330 第2領域
340 第3領域
350 構造物
360 蓋
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19