以下、図面を参照しながら実施形態の説明を述べる。なお、以降、説明済みの要素と同一または類似の要素には同一または類似の符号を付し、重複する説明については基本的に省略する。
(実施形態)
図1に例示されるように、実施形態に係る設計支援システムは、設計支援サーバ100と、端末200とを含む。設計支援サーバ100は、ネットワーク経由で端末200と接続されており、種々のデータをやり取りすることが可能である。
設計支援サーバ100は、1台または複数台のサーバコンピュータを含み得る。端末200は、例えば、PC(Personal Computer)、タブレット端末、スマートフォンなどのコンピュータであり得る。
端末200は、3次元構造体の設計者であるユーザからの入力に応答して、種々のデータを、ネットワークを介して設計支援サーバ100へ送信する。設計支援サーバ100は、端末200からの受信データに応答して、ユーザが設計している3次元構造体の少なくとも一部に対してユーザの要求する仕様に合致した候補構造体を特定してユーザに提示したり、ユーザが選択した候補構造体のシミュレーション結果をユーザに提示したりする。
図2に、本実施形態に係る設計支援システムを構成する設計支援サーバ100のハードウェア構成の一例を示す。設計支援サーバ100は、プロセッサ11と、メモリ12と、ストレージ13と、通信IF(Interface)14と、入出力IF15とを備える。なお、端末200もまた同様のハードウェア構成を有し得る。
プロセッサ11は、プログラムに記述された命令セットを実行するためのハードウェアであり、演算装置、レジスタ、周辺回路などにより構成される。メモリ12は、プログラム、および、プログラムなどで処理されるデータなどを一時的に記憶するためのものであり、例えばDRAM(Dynamic Random Access Memory)などの揮発性のメモリである。
ストレージ13は、データを保存するための記憶装置であり、例えばフラッシュメモリ、HDD(Hard Disc Drive)、SSD(Solid State Drive)、などである。通信IF14は、設計支援サーバ100が外部の装置、例えば端末200と通信するため、信号を入出力するためのインタフェースである。
入出力IF15は、利用者からの入力操作を受け付けるための入力装置(例えば、タッチスクリーン、タッチパッド、マウスなどのポインティングデバイス、キーボードなど)、および、利用者に対し情報を提示するための出力装置(ディスプレイ、スピーカなど)とのインタフェースである。
図3に、本実施形態に係る設計支援システムを構成する設計支援サーバ100のブロック図を示す。設計支援サーバ100は、制御部110と、記憶部120と、通信部130とを含む。設計支援サーバ100中の各要素は、バスを介して電気的に接続され得る。図4は、図3中の候補構造体DB121のデータ構造を例示する図である。
制御部110は、記憶部120としてのメモリ12に記憶されるプログラムを読み込んで、プログラムに含まれる命令を実行することにより、設計支援サーバ100の動作を制御する。制御部110は、例えば前述のプロセッサ11を含む。制御部110は、プログラムに従って動作することにより、仕様取得部111、仕様解釈部112、候補特定部113、候補提示部114、操作取得部115、シミュレート部116、およびシミュレーション結果提示部117としての機能を発揮する。
仕様取得部111は、設計対象となる3次元構造体の性能および/または機能に対して要求される仕様(要求仕様)を示す仕様データを取得する。具体的には、仕様取得部111は、通信部130によって端末200から受信された仕様データを取得する。例えば、端末200のユーザがブラウザ等により設計支援サーバ100にアクセスする場合、設計支援サーバ100は、画面を生成するための信号を端末200へ応答することにより、端末200のディスプレイに、仕様データの入力をユーザから受け付けるための画面を表示させる。また、端末200で動作するプログラムが、端末200のユーザから仕様データの入力を受け付けるための画面を表示させることとし、当該画面でユーザから入力を受け付けた仕様データを端末200から設計支援サーバ100へ送信してもよい。
ここで、性能は、3次元構造体の1つ以上の物理的性質に課される基準を規定する数値、または数値範囲であり得る。物理的性質は、力学的性質、波動的性質、および熱的性質を含み得る。力学的性質は、例えば、密度、硬さ、弾力、外力作用時の応答、などであり得る。波動的性質は、例えば、3次元構造体の波動の伝播特性を含み、具体的には振動の伝播特性、音響の伝播特性などであり得る。熱的性質は、例えば、3次元構造体の熱の伝播特性、放射特性などであり得る。端末200は、端末200のユーザから、仕様データとして、三次元構造体が有するべき物理的性質のパラメータ、例えば、密度のパラメータ、硬さのパラメータ等の力学的性質のパラメータの入力を受け付けることとしてもよい。
また、機能は、例えばフィット感の高い座り心地、といった何らかのユーザ体験の提供を含んでいてもよい。3次元構造体が機能として提供するユーザ体験としては、3次元構造体の力学的性質に関するもの、波動的性質に関するもの、熱的性質に関するものが含まれ得る。
例えば、3次元構造体の力学的性質に関するユーザ体験として、3次元構造体がユーザの身体に接触すること(座る、装着する、把持する等)に関するものがある。例えば、ユーザ体験として、シートにおける「フィット感の高い座り心地」等があり、当該シートのユーザ体験は、シートを構成する各部材の形状、各部材の変形可能な量、各部材の硬さ等により実現される。
3次元構造体の波動的性質に関するユーザ体験として、3次元構造体を設置することによる安全性、安定性、ユーザの快適さ等に関するものがある。例えば、3次元構造体として、室内空間または車両等の移動体に設置される緩衝材を例にすると、ユーザ体験として、当該緩衝材における「振動遮断性能」等がある。当該緩衝材のユーザ体験は、3次元構造体の設計により、特定の音または振動の周波数を遮断する性能を発揮させること等によって実現される。また当該緩衝材のユーザ体験は、3次元構造体の設計により、特定の方向についての音または振動を遮断する性能を発揮させること等によって実現される。
3次元構造体の熱的性質に関するユーザ体験として、3次元構造体が採用される製品の性能、動作の安定さに関するものがある。例えば、3次元構造体として、マイクロチップ筐体を例にすると、ユーザ体験として、当該筐体における「放熱性能」等がある。当該筐体のユーザ体験は、3次元構造体の設計により、構造による不均質な熱伝導特性を制御すること等によって実現される。
機能は、例えば、ユーザ体験を評価者が主観的に評価した主観スコアとして定義されてもよい。例えば、主観スコアとしては、器具、設備、機械など構造体を使用者が使用する際のユーザ体験を、一次元の評価軸で評価したものを含む。一次元の評価軸としては、例えば、評価者が段階的に数値で評価したものがある。例えば、構造体として、シートの座り心地について評価する場合、主観スコアは、複数の段階(座り心地の良さ、悪さを段階的に表したもの)に基づいて評価者が主観的に評価した評価値を含む。
なお、構造体について、ユーザ体験を1または複数の項目に分けて、これら各項目のユーザ体験の評価値に基づいて、構造体の機能を定義してもよい。例えば、構造体が所定の製品である場合に、構造体の機能として、当該製品を主観によって評価する際に使用されている表現それぞれについての主観スコアを含むこととしてもよい。例えば、製品として輸送車両に搭載されるシートを評価する場合、(i)項目「座り心地」、項目「フィット感」、項目「弾力感」など当該製品が提供する機能に関連する項目(例えば、シートであれば、使用者を着座させる機能)と、(ii)項目「高級感」、項目「スポーツ車感」など当該製品の顧客層に向けたブランドイメージに関連する項目等の、複数のユーザ体験についての主観スコアを用いて、構造体の機能を定義することとしてもよい。
また、主観スコアとしては、一次元の評価軸の他に、多次元の評価軸で評価したものを含むこととしてもよい。例えば、ユーザ体験を、複数の軸でマトリックス状に評価するときに、そのマトリックスにおける座標値を、主観スコアとしてもよい。
また、機能は、主観スコアのようなパラメータに限らず、例えば、柔らかい、硬い、軽い、重厚感がある、などの言語的な表現を許容し得る。つまり、端末200のユーザは、仕様データとして、数値化した値(密度のパラメータなど)を指定せず、三次元構造体の所定の部分について「柔らかい」、「軽い、かつ、硬い」などの言語的な表現を指定することもできる。
或いは、触覚センサのような力覚フィードバックによる直観的な入力値を用いてユーザが機能を定義してもよい。例えば、構造体に対してユーザが身体の部位(胴体、手など)を押し込んだときにユーザにとって望ましい応答を、触覚センサの検出結果に基づいて、構造体に要求される機能として定義でき得る。
さらに、要求仕様は、材料(素材)の指定を含んでもよい。材料としては、金属材料、樹脂等があり得る。後述する候補特定部113は、要求仕様によって指定された材料(例えば、鉄、アルミニウム、マグネシウム合金などの金属材料、ポリプロピレンなどの熱可塑性樹脂)を用いて、候補構造体のフィルタリングを行うことができる。
設計支援サーバ100は、端末200のユーザに対し、要求仕様を、3次元構造体の全体に対して指定可能としてもよいし、部分毎に指定可能としてもよい。また、要求仕様は、例えば、3次元構造体(の全体または部分)が複数の異なる方向からの外力作用時にそれぞれ要求される応答を含み得る。
具体的には、端末200のユーザが、例えば、3次元構造体として人間の腕を模した3次元構造体を設計する場合を想定する。設計支援サーバ100において、予め、3次元構造体として、人間の腕を模した3Dモデルを記憶しているとする。
ここで、図5に例示されるように、設計支援サーバ100は、端末200のディスプレイに、3Dモデル70を表示させる。図5の例では、腕を模した3Dモデルとして、肩関節から肘関節に至る部分と、肘関節から手首に至る部分の一部とを示している。3Dモデル70は、複数の部分(複数のオブジェクト)により構成されており、具体的には、腕における骨に相当する第1の部分70Aと、腕における肉に相当する第2の部分70Bと、肘関節に相当する第3の部分70Cとを含む。
図5に例示されるように、端末200は、端末200のユーザから、骨に相当する部分(第1の部分70A)には「軽くて硬い」、肉に相当する部分(第2の部分70B)には「柔らかい」、関節に相当する部分(第3の部分70C)には「曲げ伸ばし/回旋運動可能」のように、部分ごとに個別に要求仕様を受け付けることとしてもよい。
また、端末200は、設計対象となる3次元構造体に対してメッシュを設定し、メッシュにより規定される各部分について、ユーザから、要求仕様の指定を受け付けることとしてもよい。ここで「メッシュを設定する」とは、設計対象の3次元構造体に対し、任意の3次元形状で分割することをいう。メッシュを設定する方法としては、設計対象の3次元構造体の形状にかかわらず、所定の形状に基づいてメッシュを設定することとしてもよい。例えば、設計対象となる3次元モデルについて、所定の体積を単位として(ボクセルを単位として)区切るようメッシュを設定することとしてもよい。ここで、メッシュにより3次元構造体を分割する数(分割数)について予め規定しておき、所定の分割数を単位として3次元構造体を分割するようメッシュを設定することとしてもよい。端末200は、構造体に対するメッシュの設定方法についてユーザから指定を受け付けることとしてもよい。
また、設計対象となる3次元構造体の3Dモデルを、図5に示すように複数の部分(第1の部分70A、第2の部分70B、第3の部分70C等)により構成する場合に、設計支援サーバ100は、各部分にそれぞれ任意の座標系を設定し(例えば、3次元座標系を設定可能としてもよい)、当該設定されたそれぞれの座標系に基づいて、各部分のメッシュを設定することとしてもよい。構造体の各部分についてメッシュを設定するために、例えば、構造体の表面の任意の点を基準として、表面に対する法線方向に軸を設定するとともに、構造体の表面に沿って複数の軸を設定し、各軸に基づいてメッシュを設定することとしてもよい。
図6は、構造体にメッシュを設定する方法の一例を示す。図6には、構造体61として、直方体の例を示している。図6(A)は、構造体の、ある面において、座標系61Aを設定している例を示す。図6(A)において、当該面に対する法線方向に軸を設定するとともに、面において2つの軸を設定する。別の面についても座標系を設定することで、図6(B)に示すように、構造体61に対してメッシュを設定することができる。
図7は、構造体にメッシュを設定する、別の例を示す。図7には、構造体62として、曲面状の表面を有する構造体(円柱)の例を示している。図7(A)は、座標系62Aと座標系62Bを設定している例を示す。図7(A)に示すように、構造体62の曲面において、当該曲面に対する法線方向の軸を含む座標系62Bを設定する。また、構造体62の、曲面とは異なる面(円形状の面)において、当該面の法線方向の軸62Aを含む座標系を設定する。当該座標系は、法線方向の軸62Aを設定する点に基づいて、軸62Aと、当該円形状の面において、当該点からの距離および方向とからなる。これらの座標系の設定に基づいて、図7(B)に示すように、構造体62に対してメッシュを設定することができる。
なお、図7の例では、構造体62にメッシュを設定した結果、メッシュにより分割される各部分のうち、円柱の中心部に近い部分は三角柱の形状となり、円柱の周辺の部分は立方体の形状となる。この他に、構造体にメッシュを設定する方法として、メッシュにより分割される各部分の立体形状のカテゴリを統一するように、メッシュを設定してもよい。
図19は、構造体63に、メッシュにより分割される各部分の立体形状のカテゴリを統一するようにメッシュを設定する例を示す図である。図19には、構造体63として、上面および底面が略楕円状であって、上部および底部から中央部へ向かって断面積が大きくなる曲面状の側面を有する構造体の例を示している。
図19の例では、構造体63にメッシュを設定することにより、メッシュにより分割される各部分の立体形状を立方体としている。これにより、メッシュにより分割される各部分に、複数のカテゴリの立体形状(例えば、三角柱と立方体)が含まれる場合と比較して、構造解析の負荷を低減させることができる。
さらに、設計支援サーバ100は、端末200のユーザに対し、3次元構造体が有するべき異方性をユーザが指定できるようにしてもよい。例えば、設計支援サーバ100が、ユーザから、3次元構造体の各部分について、任意の座標系の設定を受け付けることとする。設計支援サーバ100は、設定した座標系に基づいて、ユーザが要求仕様を指定することができるようにしてもよい。例えば、3Dモデル70の肉に相当する部分(第2の部分70B)について、皮膚に相当する外表面の平面、および、当該外表面の法線からなる座標系を設定するとする。端末200のユーザは、皮膚に相当する外表面の法線方向から加わる外力に対して硬く(変形しづらく)、当該法線方向と直交する方向から加わる外力に対して柔らかく(変形しやすく)あるように、異方性を有する要求仕様を指定することができる。つまり、設計支援サーバ100は、端末200のユーザが、3次元構造体について、異方性を有する物理的性質(例えば、ある方向には変形しづらく、ある方向には変形しやすい)を指定できるようにしている。
仕様解釈部112は、仕様データの示す要求仕様が例えば機能を含む場合に、当該要求仕様を解釈し、設計対象となる3次元構造体の1つ以上の物理的性質に課される基準に変換する。
仕様解釈部112は、例えば、事前定義されたルールに従って変換を行ってもよい。例えば、設計支援サーバ100は、端末200のユーザから、密度、重量などの物理的性質を示す数値ではなく、言語的な表現を含む仕様データを取得したとする。例えば、設計支援サーバ100は、言語的な表現として、「硬い」、「軽い」、「曲がる」などの、機能の性質を示す表現と、「少し」(曲がる)、「大きく」(変形する)、などの性質の程度を示す表現と、これらの組み合わせ(「軽くて硬い」など)を端末200のユーザから受け付ける。仕様解釈部112は、仕様データに示される要求仕様を解釈するためのルールとして、予め、これらの言語的な表現それぞれと、物理的性質のパラメータとを対応付けた基準情報を記憶することとしてもよい。例えば、「硬い」、「軽い」などの各表現と、物理的性質を示す数値(密度、重量など)とを対応付けることとしてもよい。これにより、仕様解釈部112は、要求仕様を解釈し、設計対象となる3次元構造体の1つ以上の物理的性質に課される基準に変換することができる。
また、設計支援サーバ100は、設計対象の3次元構造体のカテゴリに応じて、言語的な表現それぞれと物理的性質のパラメータとを対応付けた基準情報を記憶することとしてもよい。つまり、設計対象の3次元構造体が、家具として用いられるものか、車両用のシートとして用いられるものか、生命体の身体の可動域を模した人形として用いられるものかに応じて、言語的な表現としては略同一(例えば、「硬い」、「軽い」)であったとしても、求められる物理的性質のパラメータは異なり得る。設計支援サーバ100の仕様解釈部112は、設計対象の3次元構造体のカテゴリに関する情報を取得することにより(例えば、ユーザから、設計対象の3次元構造体のカテゴリを指定する操作を受け付ける)、上記の基準情報を選択し、当該基準情報に基づいて、要求仕様を解釈することとしてもよい。
また、仕様解釈部112は、要求仕様を、設計対象の3次元構造体の物理的性質に変換するために、学習済みモデルを用いることとしてもよい。
例えば、以下に詳細に説明するが、設計支援サーバ100は、ユーザが指定した要求仕様に対し、候補となる構造体を提示する。設計支援サーバ100は、ユーザが指定した構造体の情報を記憶することにより、設計対象の3次元構造体と、ユーザが指定する要求仕様と、ユーザが指定した構造体の情報(つまり、構造体の物理的性質を示す数値)とを対応付けて記憶することができる。これらの情報に基づき学習を行うことにより、ユーザが指定する要求仕様に対して、設計対象の3次元構造体の物理的性質を出力するための学習済みモデルを作成することができる。詳しくは後述する。
なお、仕様解釈部112は、仕様データの内容次第では不要となり得る。例えば、設計支援サーバ100は、設計対象の3次元構造体と、ユーザが指定する要求仕様と、学習済みモデルとを用いることにより、候補となる3次元構造体をユーザに提示し得る。つまり、要求仕様を、設計対象の3次元構造体の物理的性質に変換することが不要となり得る。
候補特定部113は、候補構造体DB(Database)121から、要求仕様を満足する候補構造体を特定する。候補特定部113は、例えば、端末200のユーザから受け付けた仕様データに示される要求仕様を、仕様解釈部112により、設計対象の3次元構造体の物理的性質を示すパラメータに変換した結果に基づいて、候補構造体DB121を参照することにより、要求仕様を満足する候補構造体を特定する。候補構造体DB121には、図4に例示されるように、材料および/または構造において互いに異なる複数の候補構造体の各々の物理的性質を記述するパラメータが登録されている。
これらデータベースに登録される複数の候補構造体の少なくとも1つは、異方性を有する。つまり、これら複数の候補構造体は、特定方向からの荷重に対して高い剛性をもち、別の方向からの荷重に対しては低い剛性(柔軟性)をもつものが含まれる。すなわち、候補構造体には、候補構造体に対する荷重に対して剛性および柔軟性を併せ持つものを含む。候補構造体は、例えば、図8に例示されるラティス構造81により構成されるものとしてもよいし、図9に例示されるコンプライアントメカニズム(compliant mechanism)91により構成されるものとしてもよい。構造体にラティス構造を用いることにより、構造体の軽量化を図りつつ、所定の方向からの荷重に対しては一定量の変形を許容しつつ、異なる方向からの荷重に対しては剛性を持たせることができる。つまり、ラティス構造を用いた構造体は、異方性を有し得る。
また、例えば、構造体にコンプライアントメカニズムを用いることにより、ユーザが構造体に求めるモーション(動き)を達成するために、構造体に要求される動きを満たす変形には柔軟であり、構造体に要求されない動きを発生させる変形には高い剛性を持たせる、という異方性を実現できる。例えば、図9に例示するようなコンプライアントメカニズム91を用いることにより、異方性を有する構造体を実現することができ、異方性を有する構造体の動きにより生命感を表現でき得る。例えば、図9の例では、地面を這って移動する生命体の骨のような可動を表現することができ得る。図9の例では、ある方向からの荷重に対しては剛性を有しつつ(図9の例では、軸方向からの荷重に対しては剛性を有しつつ)、別の方向からの荷重に対しては低い剛性を有することとして一定量の変形を可能とする(軸方向とは垂直な方向からの荷重に対しては変形可能であり、構造体の全体の形状を、軸方向を基準として円弧上にしたり、直線状にしたりすることができる)。以上のように、候補構造体に、ラティス構造、コンプライアントメカニズムを有するものを含めることにより、複数の候補構造体の少なくとも一部に、異方性を有するものを含めることができる。
候補構造体DB121には、複数の候補構造体の各々の外力作用時の応答を記述するパラメータが登録され得る。特にかかるパラメータは、図4に例示されるように、複数の異なる外力作用方向のそれぞれについて登録されてよい。
このように、方向毎に外力作用時の応答を記述するパラメータを登録することで、異方性を有する候補構造体であってもその物理的性質を適切に記述して取り扱うことが可能となる。設計支援サーバ100は、例えば、ある方向から加わる外力に対して硬く(変形しづらく)、当該方向に直交する方向から加わる外力に対して柔らかい(変形しやすい)といった異方性を有する候補構造体を、前述の人間の腕を模した3次元構造体のうち肉に相当する部分に対する要求仕様を満たすものとして特定することができ、特定した候補構造体を、端末200のユーザに提示することができる。
他方、等方性を有する構造体は、外力に対してその作用方向によらず硬い/柔らかいといった物理的性質を有するため、例えば前述の人間の腕を模した3次元構造体のうち骨に相当する部分(第1の部分70A)に対する要求仕様である「軽くて硬い」を満足する一方で、肉に相当する部分(第2の部分70B)に対する要求仕様を十分に満足できないかもしれない。例えば、等方性を有する候補構造体によって肉に相当する部分(第2の部分70B)を構成したとしても、皮膚に相当する外表面の法線方向からの外力に対して過度に柔らかくて生体組織が本来有するはずの自然な弾力を感じさせないおそれがある。人間の腕を模した3次元構造体において、関節部(第3の部分70C)には、関節を曲げ伸ばしする動作以外の変形は望ましくなく、関節の動作を生み出す変形にのみ柔軟であり、その他の変形に対しては高い剛性を有する、といった異方性が望まれる。以上のように、候補構造体DB121に等方性を有する候補構造体および異方性を有する候補構造体のどちらも登録しておくことで、様々な要求仕様に的確に応えることが可能となる。
候補特定部113は、例えば、候補構造体DB121に登録されたパラメータを手掛かりとして、要求仕様に含まれる、および/または要求仕様から変換された、前述の1つ以上の基準を全て満足する候補構造体を特定し得る。
候補特定部113は、設計対象の3次元構造体の各部分について、要求仕様(つまり、3次元構造体の各部分に必要とされる機能と性能)に基づいて、各部分、または、各部分に設定されるメッシュにより規定される領域ごとに(例えば、ボクセルによりメッシュを設定する場合は、ボクセル単位で)、必要とされる機能および性能を割り当てる。候補特定部113は、各領域に割り当てられる機能および性能の要件を満たす候補構造体を推定することにより、各領域の候補構造体を特定する。
例えば、要求仕様として、3次元構造体の、ある部分が所定の方向に変形可能な変形量が入力されるとする。当該部分に設定されるメッシュにより規定される単位それぞれが所定の方向に変形可能な量に基づいて、当該部分が変形可能な量が演算され得る。つまり、当該部分が所定の方向に変形可能な変形量が、要求仕様を満たすように、当該部分に設定されるメッシュにより規定される単位それぞれに必要な機能と性能とを特定し得る。これにより、候補特定部113は、メッシュにより規定される単位それぞれに、候補となる候補構造体を特定する。
候補特定部113は、設計対象の3次元構造体の各部分について特定した候補構造体に基づいて、各部分の部分間の構造体の接続が、要求仕様に適合するように候補構造体を割り当てる。例えば、候補特定部113は、各部分の要求仕様に基づいて、当該各部分の候補構造体を特定した場合に、これらの候補構造体に基づいて各部分を接続した場合の性能および機能を、例えばシミュレーションを行うことにより評価する。候補特定部113は、評価結果が要求仕様に適合しない場合、各部分の接続が良好でないとして、3次元構造体の各部分、または、各部分に設定されるメッシュにより規定される領域ごとに、候補構造体を推定する処理を繰り返す。
候補提示部114は、候補特定部113によって特定された1つ以上の候補構造体の情報をユーザに提示する。具体的には、候補提示部114は、通信部130に候補構造体の情報を端末200へ送信させる。候補構造体の情報は、候補構造体を構成する材料、その構造、および/またはその物理的性質を表す画像データ、動画データ、などであり得る。
操作取得部115は、候補提示部114によって提示された候補構造体のうちいずれかの候補構造体を選択する操作データを取得する。具体的には、操作取得部115は、通信部130によって端末200から受信された操作データを取得する。なお、操作取得部115は、後述されるシミュレーション結果の提示後に、別の候補構造体を選択する操作データを取得し得る。
シミュレート部116は、操作取得部115がいずれかの候補構造体を選択する操作データを取得したことに応答して、3次元構造体を当該候補構造体によって構成した場合に当該3次元構造体が達成する性能および機能の少なくとも一方をシミュレートし、シミュレーション結果を得る。
シミュレーション結果は、例えば外力作用時の3次元構造体の全体または部分の挙動を表す動画データであり得る。また、シミュレーション結果は、3次元構造体を候補構造体によって構成した場合に当該3次元構造体の全体または部分が達成すると予測される1つ以上の物理的性質、例えば力学的性能に基づく機能評価を含み得る。
例えば、図5に示すように、腕を表す3次元構造体を設計する場合に、シミュレート部116は、3次元構造体の全体または部分の挙動として、腕を伸ばす方向に荷重を加えたときに変形可能な状態と、腕を曲げる方向に荷重を加えたときに変形可能な状態とに基づいて、これら荷重を加える方向を切り替えることにより、シミュレーション結果を得ることとしてもよい。これにより、図5の例では、シミュレート部116は、腕を最大限曲げたり最大限伸ばしたりするよう変形させる動画データを得ることができる。
なお、仕様データが3次元構造体の全体ではなく部分毎に指定されている場合には、シミュレート部116は部分毎の仕様データに基づいて提示された当該部分に対する候補構造体のうち操作データによって選択された1つによって当該部分を構成した場合のシミュレーションを行う。
また、シミュレート部116は、操作取得部115が候補構造体を選択する操作データを取得する度に、シミュレーションを行い得る。例えば、ユーザが最初に選択した候補構造体に関するシミュレーション結果が気に入らなかった場合や他の候補構造体のシミュレーション結果を確認するために、提示された候補構造体のうち最初に選択した候補構造体とは異なる候補構造体を新たに選択するかもしれない。かかる場合に、シミュレート部116は、新たに選択された候補構造体に関してシミュレーションを行って新たなシミュレーション結果を生成することになる。
シミュレーション結果提示部117は、シミュレーション結果をユーザに提示する。具体的には、シミュレーション結果提示部117は、通信部130にシミュレーション結果を端末200へ送信させる。なお、シミュレーション結果提示部117は、シミュレート部116がシミュレーションを行う度に、シミュレーション結果をユーザに提示し得る。
記憶部120は、例えば前述のメモリ12および/またはストレージ13を含み、設計支援サーバ100が使用するデータおよびプログラムを記憶する。ある局面において、記憶部120は、前述の候補構造体DB121を記憶し得る。ただし、候補構造体DB121は、必ずしも設計支援サーバ100に構築されずともよく、設計支援サーバ100とは別個の外部装置、例えばデータベースサーバに構築されてもよい。
通信部130は、設計支援サーバ100が端末200または他の外部装置と有線または無線で通信するために、変復調処理などの種々の信号処理を行う通信モジュールである。通信部130は、受信信号を制御部110へ与え、逆に送信信号を制御部110から受け取る。通信部130は、前述の通信IF14を含む。
以下、図10を用いて、設計支援サーバ100の動作例を説明する。
まず、仕様取得部111は、設計対象となる3次元構造体の性能および/または機能に対する要求仕様を示す仕様データを取得する(ステップS301)。
候補特定部113は、候補構造体DB121から、当該ステップS301において取得された仕様データの示す要求仕様を満足する候補構造体を特定する(ステップS302)。
なお、ステップS301とステップS302との間に、仕様解釈部112が、ステップS301において取得された仕様データの示す要求仕様を解釈し、設計対象となる3次元構造体の1つ以上の物理的性質に課される基準に変換するステップを追加してもよい。
候補提示部114は、ステップS302において特定された1つ以上の候補構造体の情報をユーザに提示する(ステップS303)。
操作取得部115は、ステップS303において提示された候補構造体のうちいずれかの候補構造体を選択する操作データの取得を待ち受ける(ステップS304)。操作取得部115が操作データを取得すると、処理はステップS305へ進む。
ステップS305では、シミュレート部116が、3次元構造体をステップS304において取得された操作データによって選択された候補構造体によって構成した場合に当該3次元構造体が達成する性能および機能の少なくとも一方をシミュレートし、シミュレーション結果を得る(ステップS306)。
シミュレーション結果提示部117は、ステップS306において得られたシミュレーション結果をユーザに提示する(ステップS307)。ステップS307の後に、操作取得部115は、ステップS303において提示された候補構造体のうちいずれかの候補構造体を新たに選択する操作データの取得を待ち受ける(ステップS304)。
図11に、本実施形態に係る設計支援システムを構成する端末200のブロック図を示す。端末200は、制御部210と、記憶部220と、通信部230と、入出力部240とを含む。端末200中の各要素は、バスを介して電気的に接続され得る。
制御部210は、記憶部220としてのメモリに記憶されるプログラムを読み込んで、プログラムに含まれる命令を実行することにより、端末200の動作を制御する。制御部210は、例えばプロセッサを含む。制御部210は、プログラムに従って動作することにより、仕様生成部211、送信制御部212、候補取得部213、候補提示部214、操作生成部215、シミュレーション結果取得部216、およびシミュレーション結果提示部217としての機能を発揮する。
仕様生成部211は、ユーザからの入力に基づいて、前述の仕様データを生成する。同様に、操作生成部215は、ユーザからの入力に基づいて前述の操作データを生成する。ユーザからの入力は、入出力部240に含まれる入力装置によって受理され、入出力IFを介して制御部210に渡される。
送信制御部212は、通信部230に、仕様生成部211によって生成された仕様データを設計支援サーバ100へ送信させる。また、送信制御部212は、通信部230に、操作生成部215によって生成された操作データを設計支援サーバ100へ送信させる。
候補取得部213は、通信部230によって設計支援サーバ100から受信された候補構造体の情報を取得する。そして、候補提示部214は、候補取得部213によって取得された候補構造体の情報をユーザに提示する。具体的には、候補提示部214は、入出力部240に含まれる出力装置に候補構造体の情報を出力させ得る。
シミュレーション結果取得部216は、通信部230によって設計支援サーバ100から受信されたシミュレーション結果を取得する。そして、シミュレーション結果提示部217は、シミュレーション結果取得部216によって取得されたシミュレーション結果をユーザに提示する。具体的には、シミュレーション結果提示部217は、入出力部240に含まれる出力装置にシミュレーション結果を出力させ得る。
記憶部220は、例えばメモリおよび/またはストレージを含み、端末200が使用するデータおよびプログラムを記憶する。
通信部230は、端末200が設計支援サーバ100または他の外部装置と有線または無線で通信するために、変復調処理などの種々の信号処理を行う通信モジュールである。通信部230は、受信信号を制御部210へ与え、逆に送信信号を制御部210から受け取る。通信部230は、通信IFを含む。
入出力部240は、入力装置および出力装置を含む。入力装置は、例えば、キーボード、ポインティングデバイス、などであり得る。出力装置は、例えばディスプレイである。
以下、図12を用いて、端末200の動作例を説明する。
まず、仕様生成部211は、設計対象となる3次元構造体の性能および/または機能に対する要求仕様の入力をユーザから受け付け、当該要求仕様を示す仕様データを生成する(ステップS401)。
送信制御部212は、通信部230に、ステップS401において生成された仕様データを設計支援サーバ100へ送信させる(ステップS402)。
ステップS402の後に、候補取得部213は、通信部230によって設計支援サーバ100から受信された候補構造体の情報を取得する(ステップS403)。この候補構造体は、ステップS402において送信された仕様データの示す要求仕様を満足するとして、候補構造体DB(Database)121から設計支援サーバ100によって特定されたものである。
候補提示部214は、ステップS403において取得された候補構造体の情報をユーザに提示する。(ステップS404)。
操作生成部215は、入出力部240に含まれる入力装置が、ステップS404において提示された候補構造体のうちいずれかの候補構造体を選択する入力を検出するのを待ち受ける(ステップS405)。入力装置がかかる入力を検出すると、処理はステップS406へ進む。
ステップS406では、操作生成部215が、ステップS405において検出された、いずれかの候補構造体を選択する入力をユーザから受け付け、当該候補構造体の選択を意味する操作データを生成する。
送信制御部212は、通信部230に、ステップS406において生成された操作データを設計支援サーバ100へ送信させる(ステップS407)。
シミュレーション結果取得部216は、ステップS407の後に、通信部230によって設計支援サーバ100から受信されたシミュレーション結果を取得する(ステップS408)。
シミュレーション結果提示部217は、シミュレーション結果取得部216によって取得されたシミュレーション結果をユーザに提示する。(ステップS409)。ステップS409の後に、操作生成部215は、入出力部240に含まれる入力装置が、ステップS404において提示された候補構造体のうちいずれかの候補構造体を新たに選択する入力を検出するのを待ち受ける(ステップS405)。
図13は、ユーザが構造体を設計する際の画面遷移の例を示す図である。
図13の画面例(A)は、ユーザが、設計対象とする構造体を指定する局面を示す。画面例(A)に示すように、端末200は、ディスプレイに、通知250Aと、第1の設計対象候補250Bと、第2の設計対象候補250Cと、読込受付部250Dとを表示する。
通知250Aは、端末200のユーザに対し、設計対象の構造体を指定するよう通知する領域である。
第1の設計対象候補250Bは、第1の設計対象の構造体(図示する例では、「家具」)と対応しており、第2の設計対象候補250Cは、第2の設計対象の構造体(図示する例では、「人型」)と対応している。
端末200は、第1の設計対象候補250Bをユーザが指定する操作に応答して、第1の設計対象候補250Bに対応する構造体に関するデータ(3Dモデル、設計対象の構造体を各部分に分割するための情報、メッシュの設定など)を読み込む。同様に、端末200は、第2の設計対象候補250Cをユーザが指定する操作に応答して、第2の設計対象候補250Cに対応する構造体に関するデータを読み込む。
読込受付部250Dは、設計対象とする構造体の候補を、ユーザが指定できるよう、さらにディスプレイに表示する操作を受け付けるための領域である。端末200は、例えば、読込受付部250Dをユーザが指定する操作、または、ユーザが端末200に対して入力可能な所定の操作(例えば、端末200がタッチスクリーンを搭載する場合、タッチスクリーンに対するフリック操作等)に応答して、設計対象の構造体の候補を、設計支援サーバ100に問い合わせる等により取得する。
以上により、端末200のユーザは、端末200が受け付けることが可能な所定の操作(例えば、ポインティングデバイスで入力可能な操作)により、設計対象の構造体を指定することができる。
画面例(A)において、ユーザが、第2の設計対象候補250Cを指定したことに応答して、端末200は、画面例(B)に示すように、設計対象とする構造体(図示する例では、人型のうち、腕の部分)の設計を支援するための画面をユーザに提示する。
画面例(B)は、設計対象の構造体の各部分に、ユーザが、要求仕様を指定する局面を示す。
図示するように、端末200は、設計対象の構造体の一部として、上腕および前腕に相当する構造体を示す3Dモデル70をユーザに提示している。また、端末200は、3Dモデル70を構成する各部分として、第1の部分70Aと、第2の部分70Bと、第3の部分70Cと、第4の部分70Dと、第5の部分70Eとをユーザが識別可能に表示している。第1の部分70Aは、上腕の骨の部分に相当する。第2の部分70Bは、上腕の筋肉、皮膚の部分に相当する。第3の部分70Cは、肘の部分に相当する。第4の部分70Dは、前腕の肉、皮膚の部分に相当する。第5の部分70Eは、前腕の骨に相当する。
端末200は、ディスプレイに表示させる3Dモデル70の各部分(70A〜70E)と対応付けて、各部分についてユーザが指定した内容を表示するための詳細表示部(251A〜251E)を表示する。端末200は、詳細表示部251Aと、第1の部分70Aとが関連付けられていることをユーザに提示する(図示する例では、第1の部分70Aと詳細表示部251Aとを点線で接続する態様で表示している)。同様に、端末200は、詳細表示部251Bと第2の部分70Bとを関連付けた表示、詳細表示部251Cと第3の部分70Cとを関連付けた表示、詳細表示部251Dと第4の部分70Dとを関連付けた表示、詳細表示部251Eと第5の部分70Eとを関連付けた表示を行う。
画面例(B)において、端末200は、ユーザから、設計対象の構造体の各部分を指定する操作を受け付ける。例えば、端末200は、詳細表示部(251A〜251E)を指定する操作、または、3Dモデル70の各部分(70A〜70E)を指定する操作をユーザから受け付けることで、設計対象の構造体の各部分について、性能および/または機能に対する要求仕様の入力を受け付ける。ここで、上記のように、ユーザは、設計対象の構造体の性能および/または機能として、異方性を指定することができる。
例えば、画面例(B)において、ユーザが、詳細表示部251Cを指定して、第3の部分70Cについて性能および/または機能に対する要求仕様を入力したとする。図10のステップS301に相当する。ここでは、第3の部分70Cは、腕の肘に相当する部分であるため、前腕を一定程度までは伸ばせるように変形できるようにしつつ、一定程度を超えて伸ばせることがないよう(腕が曲がり過ぎないよう)、曲げ伸ばし、回旋可能であることをユーザが指定する。また、ユーザは、例えば第2の部分70B(上腕の肉の部分)については、皮膚の表面において法線方向からの荷重には変形を小さくするように、異方性を有することを指定することができる。例えば、異方性を有することをユーザが指定するために、設計対象の構造体の各部分に、ユーザが任意に座標系を指定できることとしてもよい。例えば、端末200は、ディスプレイに表示される第2の部分70Bまたは詳細表示部251Bをユーザが指定することに応答して、座標系の指定を受け付けることとしてもよい。端末200は、ユーザから、当該座標系に基づいて、異方性についてのパラメータの入力を受け付ける(例えば、座標系の第1の軸の方向には変形させず、第2の軸の方向には一定量の変形をさせる等)。
ユーザによる当該要求仕様の入力に応答して、端末200は、画面例(C)に示すように、構造体の各部分の候補を提示する画面を表示する。
画面例(C)は、構造体の各部分の候補となる候補構造体をユーザに提示して、候補構造体の指定をユーザから受け付けつつ、シミュレーション結果をユーザに提示する局面を示す。
画面例(C)に示すように、端末200は、ディスプレイに、設計対象の構造体についてユーザが指定した要求仕様に対応する構造体の候補(候補構造体)を表示する。端末200は、ディスプレイに、候補構造体提示部252Aと、第1の候補構造体252Bと、第2の候補構造体252Cと、候補読込部252Dと、シミュレーション結果提示部252Eと、物理的性質表示部252Fとを表示する。
候補構造体提示部252Aは、ユーザに対し、設計対象の構造体のうち、ユーザが指定した部分における要求仕様を通知することと、構造体の候補を提示することとを行うための領域である。
第1の候補構造体252Bと第2の候補構造体252Cとは、ユーザが指定した部分の構造体の候補となる候補構造体を示す。図10のステップS303の処理に対応する。図示する例では、端末200は、ユーザが指定している候補構造体を強調表示することにより(第1の候補構造体252Bが指定されている)、ユーザが指定していない候補構造体と区別できるようユーザに提示している。なお、図示する例では、端末200は、シミュレーション結果提示部252Eにおいて、設計対象の構造体について、ユーザに対し、肘関節(第3の部分70C)、骨(第1の部分70A)のように、設計対象の3次元構造体について、ある程度のパーツに分類したうえで、分類されたパーツ全体について、ユーザが要求する機能の指定を受け付けることとしている。要求仕様に基づいて特定された候補構造体がある場合、端末200は、シミュレーション結果提示部252Eにおいて、設計対象の3次元構造体の各部分を、特定された候補構造体で充填された態様で表示することとしてもよい。端末200は、シミュレーション結果提示部252Eユーザが候補構造体(252B、252C)を指定する都度、指定された候補構造体により充填された態様で、設計対象の3次元構造体の各部分を表示することとしてもよい。端末200は、シミュレーション結果提示部252Eにおいて、各部分に設定されるメッシュについて表示しないこととしてもよい。これにより、ユーザに対し、メッシュの設定、ボクセルの設定について認識させることを要さずとも、3次元構造体の設計を可能とすることができる。
この他に、端末200は、設計対象の構造体についてユーザが指定した部分のうち、メッシュにより規定される単位のいずれかについて、1または複数の候補構造体をユーザに提示することとしてもよい。端末200は、メッシュにより規定される単位についてユーザが候補構造体を指定することにより、メッシュにより規定される単位の複数の箇所について、候補構造体を適用することとしてもよい。例えば、端末200は、当該メッシュにより規定される単位と同等の機能または性能が必要となる単位について、ユーザが指定した候補構造体を適用してもよい。
候補読込部252Dは、より多くの候補構造体をユーザに提示するための操作を受け付ける領域である。
シミュレーション結果提示部252Eと物理的性質表示部252Fとは、ユーザが各部分について候補構造体を指定した結果に基づいてシミュレートされたシミュレーション結果を表示するための領域である。図10のステップS306に対応する。画面例(C)では、シミュレーション結果提示部252Eにおいて、3Dモデル70が、第3の部分70C(つまり、腕の肘に相当する部分)を起点として、腕が曲がるような変形として、第4の部分70Dおよび第5の部分70Eを、荷重に応じて回旋させたシミュレーション結果を、アニメーションとして表示している。例えば、画面例(C)において、端末200は、第4の部分70Dおよび第5の部分70Eを、実線及び点線で示す範囲で移動または変形させるアニメーションを表示させる。物理的性質表示部252Fは、シミュレーション結果に基づいて、設計対象の構造体の物理的性質のパラメータを表示するための領域である。物理的性質のパラメータとしては、設計対象の構造体が、各方向からの荷重に対する変形量、どの程度の荷重に耐えるのかの耐久性、剛性、密度その他のパラメータを含む。
画面例(C)において、ユーザが、第1の候補構造体252Bとは異なる第2の候補構造体252Cを指定することに応答して(ステップS304)、端末200は、画面例(D)を表示させる。
画面例(D)は、ユーザが候補構造体を指定した操作に応答して、新たにシミュレーション結果をユーザに提示する局面を示す。画面例(D)に示すように、第2の候補構造体252Cが、他の候補構造体よりも強調表示されており、第2の候補構造体252Cがユーザによって指定されたことを示している。
端末200は、ユーザが第2の候補構造体252Cを指定したことに応答して、設計支援サーバ100に、ユーザが指定した候補構造体の情報を送信する。端末200は、設計支援サーバ100から、ユーザが第2の候補構造体252Cを指定したことに応じてシミュレートされたシミュレーション結果を受信する(ステップS305、S306)。端末200は、シミュレーション結果提示部252Eに、ユーザが第2の候補構造体252Cを指定したことにより取得したシミュレーション結果を表示する。画面例(C)と比較すると、画面例(D)では、設計対象の構造体(3Dモデル70で示される)の変形が、画面例(C)とは異なることがシミュレーション結果としてユーザに提示されている。
ユーザは、このように、要求仕様を入力して、要求仕様に応じて設計支援サーバ100により特定される候補構造体を指定することにより得られるシミュレーション結果を確認しつつ、構造体を設計することができる。つまり、ユーザは、設計対象の構造体の各部分に、候補構造体DB121を参照してユーザに提示される候補構造体を指定することで、ユーザの要求仕様に対応する性能および/または機能を有する構造体の各部分の構造を特定することができる。
以上説明したように、本実施形態に係る設計支援システムでは、設計支援サーバは、材料および構造の少なくとも一方において互いに異なる複数の候補構造体の各々の物理的性質を記述するパラメータが登録されたデータベースから、設計対象となる3次元構造体の性能および機能の少なくとも一方に対する要求仕様を満足する候補構造体を特定する。故に、この設計支援システムによれば、要求仕様を満足可能な候補構造体をユーザ自らが試行錯誤をすることなく、すなわち、より高速に特定することができる。また、これら複数の候補構造体に異方性を有するものを含めることで、例えば、ある方向から加わる外力に対して硬く(変形しづらく)、当該方向に直交する方向から加わる外力に対して柔らかい(変形しやすい)といった異方性を有する候補構造体を、人間の腕を模した3次元構造体のうち肉に相当する部分に対する要求仕様を満たすものとして特定してユーザに提示することができる。
また、設計された構造体について、3Dプリンティング技術を用いることにより、ラティス構造、または、コンプライアントメカニズムを有する構造体を容易に製造することができる。
(変形例1)
前述の実施形態では、設計支援システムは、いわゆるサーバクライアント方式のシステムとして設計支援サーバ100と端末200との協調により実現した。しかしながら、かかる設計支援システムは、端末200に設計支援サーバ100の機能を組み込むことで、スタンドアローン方式のシステムとして実現することもできる。
(変形例2)
前述の実施形態では、設計支援システムは、要求仕様として機能が指定された場合に、これを設計対象となる3次元構造体の1つ以上の物理的性質に課される基準に変換し、当該基準を満足する候補構造体を特定し、ユーザに提示し得る。しかしながら、ユーザの操作履歴データを蓄積して機械学習を行うことで、かかる変換を行うことなくユーザの指定した機能を満足すると推定される候補構造体を提示することができる。
具体的には、端末200または設計支援サーバ100において、図14に例示される操作履歴データ221を蓄積し、これに基づいて例えば教師あり学習のための学習データを用意することができる。
操作履歴データ221は、設計対象の構造体について、ユーザが行った操作の履歴を示す。操作履歴データ221の各レコードは、項目「構造体の部分」と、項目「ユーザが要求仕様として指定した機能」と、項目「必要な物理的性質」と、項目「ユーザに提示した候補構造体」と、項目「ユーザが最終的に選択した候補構造体」とを含む。
項目「構造体の部分」は、上記で説明した、設計対象の構造体について規定される各部分を示す。
項目「ユーザが要求仕様として指定した機能」は、設計対象の構造体の各部分について、ユーザが要求仕様として指定した性能および/または機能を示す。
項目「必要な物理的性質」は、ユーザが指定した要求仕様に基づいて、設計対象となる構造体に課される物理的性質に変換した結果を示す。
項目「ユーザに提示した候補構造体」は、ユーザに対して提示した候補構造体を特定する情報を示す。
項目「ユーザが最終的に選択した候補構造体」は、ユーザに対して提示された候補構造体のうち、設計対象の構造体を設計するために、ユーザが選択した候補構造体を示す。
図14において、項目「構造体の部分」および項目「ユーザが要求仕様として指定した機能」は、仕様データに基づいて登録可能である。また、図14において、項目「必要な物理的性質」は、仕様解釈部112の出力に基づいて登録可能である。図14において、項目「ユーザに提示した候補構造体」は、候補特定部113および/または候補提示部114の出力に基づいて登録可能である。さらに、図14において、項目「ユーザが最終的に選択した候補構造体」は、操作取得部115の出力に基づいて特定可能である。
以上のように、操作履歴データ221は、ユーザが設計対象の構造体を設計するために、構造体の各部分についてユーザが最終的に指定した候補構造体の情報を含む。
そして、例えば、項目「ユーザが要求仕様として指定した機能」に示される情報を入力データとし、これに対応する項目「ユーザが最終的に選択した候補構造体」に示される情報を正解ラベルとする学習データを用いて機械学習(教師あり学習)を行って学習済みモデルを作成するとする。かかる学習済みモデルを利用することで、ユーザによって指定された機能からユーザが最終的に選択するであろう候補構造体をダイレクトに特定し、ユーザに提示することができる。
(変形例3)
図13の画面例の説明では、図13の画面例(B)、画面例(C)に示すように、ユーザが設計対象の構造体の各部分を指定したうえで要求仕様を指定することと(詳細表示部251A〜251E)、要求仕様に応じて候補構造体を表示すること(252B〜252D)とを別の画面としている。
この他に、ユーザが3次元構造体の各部分を指定する操作と、各部分の要求仕様を指定する操作とを受け付ける態様としては、図15〜図18で示すように構成することとしてもよい。
図15および図16は、ユーザが構造体を設計する際の画面例を示す図である。図15は、図5の例と同様に、腕を模した3Dモデルとして、肩関節から肘関節に至る部分と、肘関節から手首に至る部分の一部とを示している。
図15に示すように、端末200は、設計対象の3次元構造体を示す3Dモデル70をディスプレイに表示させ、3Dモデル70の各部分(第1の部分70A、第2の部分70B、第3の部分70C)をユーザが指定可能に表示する。
また、端末200は、設計対象の3次元構造体(3Dモデル70)とともに、3Dモデル70の各部分の性能および機能の指定を受け付けるための受付部72を表示させる。受付部72は、候補構造体を表示してユーザから候補構造体の指定を受け付けるための領域(候補構造体表示部72A、72B)と、性能および機能の指定を受け付けるための領域(指定受付部72C)とを含む。
端末200は、ポインティングデバイス等によりユーザの操作を受け付けており、ユーザから、ポインタ71Cを移動させて、3Dモデル70の各部分を指定する操作を受け付ける。図示する例のように、端末200は、ユーザがポインタ71Cを移動させる操作を受け付けて、第3の部分70Cを指定する操作を受け付けたとする。当該操作に応答して、端末200は、図15の画面から図16に示す画面へと遷移させる。
図16において、端末200は、ユーザが指定した第3の部分70Cを、ユーザが指定していない他の部分(第1の部分70A、第2の部分70B)と区別できる態様で表示する。例えば、端末200は、図示するように、ユーザが指定した第3の部分70Cを強調して表示する。
図16において、端末200は、受付部72において、ユーザが指定した第3の部分70Cについての性能および機能の指定を受け付ける。図示するように、端末200は、例えば、「Soft」、「kinematic joint」、「stiff」等の言語的な表現により、ユーザから性能および機能の指定を受け付ける。図示する例では、端末200は、指定受付部72Cにおいて、ユーザが指定可能な性能および機能をスクロールさせる操作を受け付けており、ユーザから、性能および機能「kinematic joint」の指定を受け付けている。例えば、端末200は、指定受付部72Cにおいてフリック操作、ドラッグ操作等の、ポインティングデバイスで指定する位置を移動させる操作を受け付けることにより、ユーザが指定可能な性能および機能をスクロールさせる。
端末200は、ユーザが指定した性能および機能に応じて、候補特定部113により特定される1以上の候補構造体を、候補構造体表示部72A、72Bに表示する。候補構造体表示部72A、72Bは、それぞれ、候補構造体の外観を表示している。端末200は、ユーザから、候補構造体72A、72Bのいずれかを指定する操作を受け付けることにより、ユーザが指定した第3の部分70Cに対して、ユーザが指定した候補構造体を適用した場合の外観をディスプレイに表示させる。ユーザから、候補構造体表示部72A、72Bに表示される候補構造体の指定を受け付ける都度、端末200は、ユーザが指定した候補構造体を適用した場合の外観を表示させる。また、端末200は、ユーザが候補構造体を指定する都度、シミュレート部116でシミュレートされた結果(物理的性質を示すパラメータ、構造体の可動範囲を示す動画データ)をディスプレイに表示させる。
図17および図18は、性能および機能の指定をユーザから受け付ける局面を示す図である。
図示するように、端末200は、操作受付部80をディスプレイに表示させる。端末200は、操作受付部80において、候補構造体の外観83と、性能および機能の指定を一次元的に受け付ける指定受付部82Aとをディスプレイに表示させる。端末200は、指定受付部82Aにおいて、ユーザが指定した量82Bを、ポインタ81により移動させる操作を受け付ける。これにより、端末200は、性能および機能についてのパラメータの指定をユーザから受け付ける。
図17と図18とを比較すると、ユーザが指定受付部82Aにおいて要求仕様の指定を行うことにより、外観83において、構造体の充填度合いが変更されていることが示されている。
(変形例4)
図13において、ユーザが候補構造体を指定したことに応答して、シミュレーション結果提示部217が、指定された候補構造体に基づいてシミュレーションされたシミュレーション結果を表示する例を説明している。
ここで、ユーザが複数の候補構造体を指定した場合に、指定された候補構造体それぞれに基づいて得られるシミュレーション結果を、1画面にまとめて表示することとしてもよい。図13の例では、画面例(C)と画面例(D)とに、それぞれ、ユーザが指定した候補構造体に基づいて得られたシミュレーション結果を表示しているが、これらを、候補構造体それぞれと対応付けて1画面にまとめて表示してもよい。これにより、ユーザは、複数のシミュレーション結果を比較して、3次元構造体を設計することができる。
上述の実施形態は、本発明の概念の理解を助けるための具体例を示しているに過ぎず、本発明の範囲を限定することを意図されていない。実施形態は、本発明の要旨を逸脱しない範囲で、様々な構成要素の付加、削除または転換をすることができる。
上述の実施形態では、いくつかの機能部を説明したが、これらは各機能部の実装の一例に過ぎない。例えば、1つの装置に実装されると説明された複数の機能部が複数の別々の装置に亘って実装されることもあり得るし、逆に複数の別々の装置に亘って実装されると説明された機能部が1つの装置に実装されることもあり得る。
上記各実施形態において説明された種々の機能部は、回路を用いることで実現されてもよい。回路は、特定の機能を実現する専用回路であってもよいし、プロセッサのような汎用回路であってもよい。
上記各実施形態の処理の少なくとも一部は、例えば汎用のコンピュータに搭載されたCPUおよび/またはGPU、マイコン、FPGA、またはDSP、などのプロセッサを基本ハードウェアとして用いることでも実現可能である。上記処理を実現するプログラムは、コンピュータで読み取り可能な記録媒体に格納して提供されてもよい。プログラムは、インストール可能な形式のファイルまたは実行可能な形式のファイルとして記録媒体に記憶される。記録媒体としては、磁気ディスク、光ディスク(CD−ROM、CD−R、DVD等)、光磁気ディスク(MO等)、半導体メモリなどである。記録媒体は、プログラムを記憶でき、かつ、コンピュータが読み取り可能であれば、何れであってもよい。また、上記処理を実現するプログラムを、インターネットなどのネットワークに接続されたコンピュータ(サーバ)上に格納し、ネットワーク経由でコンピュータ(クライアント)にダウンロードさせてもよい。
<付記>
実施形態で説明した事項を、以下に付記する。
(付記1)
プロセッサ(11)と、記憶部(12、13)とを備えるコンピュータ(100、200)において実行されるプログラムであって、プログラムは、プロセッサに、設計対象となる3次元構造体の性能および機能の少なくとも一方について、要求される仕様を示す第1の情報の入力をユーザから受け付ける第1のステップと(S401、S402、S301、211、111、250A〜250D)、第1の情報に基づいて、3次元構造体の構造の候補となる複数の候補構造体それぞれについての物性パラメータが登録されたデータベース(121)の登録内容のうちユーザに提示する候補構造体を特定する第2のステップと(S302、112、113、114)、特定される候補構造体に基づいて、設計対象の3次元構造体の性能および機能のシミュレーション結果をユーザに提示する第3のステップと(S306、S408、S409、116、117、216、217、252E、252F)、を実行させる、プログラム。
(付記2)
第1のステップにおいて、第1の情報として、設計対象となる3次元構造体を構成する各部分について要求される仕様をユーザから受け付けており(251A〜251E)、第2のステップにおいて、設計対象となる3次元構造体の各部分について、第1の情報に基づいて候補構造体を特定する(252A〜252D)、(付記1)に記載のプログラム。
(付記3)
第1のステップにおいて、第1の情報として、3次元構造体の使用者の体験に関する評価結果をユーザから受け付けており(251A〜251E)、第2のステップにおいて、体験に関する評価結果に基づいて、候補構造体を特定する(112、252A〜252D)、(付記1)または(付記2)に記載のプログラム。
(付記4)
データベースの登録内容には、異方性を有する候補構造体についての物性パラメータが含まれており(121)、第1のステップにおいて、第1の情報として、異方性に関する情報をユーザから受け付けており(251A〜251E、252A〜252D)、第2のステップにおいて、異方性を有する候補構造体を特定した場合に、第3のステップにおいて、シミュレーション結果に、異方性を示す情報を含めてユーザに提示する(252A〜252F)、(付記1)から(付記3)のいずれかに記載のプログラム。
(付記5)
データベースの登録内容には、変形について異方性を有する候補構造体として、ラティス構造を有する構造体の情報(81)と、コンプライアントメカニズムを有する構造体の情報(91)との少なくともいずれかを含む、(付記4)に記載のプログラム。
(付記6)
第3のステップにおいて、設計対象の3次元構造体の性能および機能のシミュレーション結果として、当該3次元構造体の力学的性質のパラメータを提示する(252F)、(付記1)から(付記5)のいずれかに記載のプログラム。
(付記7)
第3のステップにおいて、設計対象の3次元構造体の性能および機能のシミュレーション結果として、当該3次元構造体に対して外力を与えた場合の変形量を、変形の過程をユーザに対し視覚的に表示する態様で提示する(252E)、(付記1)から(付記6)のいずれかに記載のプログラム。
(付記8)
第2のステップにおいて、複数の候補構造体を特定し、第3のステップにおいて、特定される複数の候補構造体をユーザが指定可能に提示し(252B、252C、252D)、ユーザが候補構造体を指定することに応答して、当該指定された候補構造体に基づいて設計対象の3次元構造体の性能および機能のシミュレーション結果を取得し、取得したシミュレーション結果をユーザに提示する(252E、252F、S405、S408、S409、S304、S306)、(付記1)から(付記7)のいずれかに記載のプログラム。
(付記9)
第2のステップにおいて、複数の候補構造体を特定し、第3のステップにおいて、特待される複数の候補構造体のうち、少なくとも2つの候補構造体について、各候補構造体に基づいて設計対象の3次元構造体の性能および機能のシミュレーション結果を取得し、取得したシミュレーション結果を、少なくとも2つの候補構造体のそれぞれと関連付けてユーザに1画面において提示する、(付記1)から(付記7)のいずれかに記載のプログラム。
(付記10)
制御部(11)と、記憶部(12、13)とを備えるコンピュータ(100、200)において実行される方法であって、制御部が、設計対象となる3次元構造体の性能および機能の少なくとも一方について、要求される仕様を示す第1の情報の入力をユーザから受け付ける第1のステップと(S401、S402、S301、211、111、250A〜250D)、第1の情報に基づいて、3次元構造体の構造の候補となる複数の候補構造体それぞれについての物性パラメータが登録されたデータベース(121)の登録内容のうちユーザに提示する候補構造体を特定する第2のステップと(S302、112、113、114)、特定される候補構造体に基づいて、設計対象の3次元構造体の性能および機能のシミュレーション結果をユーザに提示する第3のステップと(S306、S408、S409、116、117、216、217、252E、252F)、を実行する、方法。
(付記11)
制御部(11)と、記憶部(12、13)とを備える情報処理装置(100、200)であって、制御部が、設計対象となる3次元構造体の性能および機能の少なくとも一方について、要求される仕様を示す第1の情報の入力をユーザから受け付ける第1のステップと(S401、S402、S301、211、111、250A〜250D)、第1の情報に基づいて、3次元構造体の構造の候補となる複数の候補構造体それぞれについての物性パラメータが登録されたデータベース(121)の登録内容のうちユーザに提示する候補構造体を特定する第2のステップと(S302、112、113、114)、特定される候補構造体に基づいて、設計対象の3次元構造体の性能および機能のシミュレーション結果をユーザに提示する第3のステップと(S306、S408、S409、116、117、216、217、252E、252F)、を実行する、情報処理装置。