[第1実施形態]
図1に、本発明の第1実施形態の例による設計支援装置の内部構成の概略の例を示す。図1に示す設計支援装置10は、設計データ記憶部100、部品DB110、操作受付部120、設計データ処理部130、および表示部140を備える。
設計データ記憶部100は、設計対象物の設計データを記憶する。設計データは、設計対象物のデザインを表す情報であり、後述のようにユーザ(設計者)の指示に従って生成される。設計データは、例えば、設計対象物を構成する各要素の種類、形状、寸法、および配置位置などに関する情報を含む。設計データは、CAD(Computer Aided Design)のシステムにおいて一般的に用いられるデータ構造を有していてよい。
図2に、設計データ記憶部100に記憶される設計データの内容の一例を模式的に示す。図2の例の設計データは、品物の包装用のパッケージ(箱)のデザインを表す。図2の例の設計データが表すパッケージは、本体要素、部品要素1、部品要素2、および部品要素3の4つの構成要素を備える。また、本例の設計データは、本体要素の形状が直方体であることを表し、この直方体の寸法として幅W,長さL,高さHの値を示す。さらに、本例の設計データは、各部品要素1,2,3について、部品名、形状、位置、寸法、および制約条件の情報を含む。部品名は、部品要素の名称である。本例では、部品名は、部品要素の種類を表す。部品要素1,2の部品名は「切り取りリボン」である。「切り取りリボン」は、パッケージの開封のために切り取られる帯状の部分を意味する。また、「切り取りリボン」である部品要素1,2の形状は、図2に例示するとおりである。部品要素3の部品名は「取っ手用穴」である。「取っ手用穴」は、パッケージの蓋を取り外すときに取っ手として用いられる穴を意味する。「取っ手用穴」である部品要素3の形状は、図2に例示するとおりである。各部品要素の位置は、当該部品要素の配置位置を表す。例えば、本体要素における一点を原点とする3次元座標空間において、各部品要素の中心点の座標値を当該部品要素の「位置」として設計データ中に記述しておけばよい。また、図2の例において、各部品要素の寸法は、当該部品要素の横方向および縦方向(部品要素を2次元平面上で表す場合のX軸方向およびY軸方向)の大きさを示す。各部品要素の制約条件は、当該部品要素の寸法の制約条件であり、図2の例では、各部品要素について許容される寸法の最小値を表す。部品要素の寸法の制約条件は、例えば、当該部品要素の機能が損なわれない部品要素の寸法の最小値を考慮して予め設定される。図2に例示する「切り取りリボン」の場合、パッケージの開封のための切り取りが可能と考えられる寸法の最小値が制約条件として設定される。「取っ手用穴」の場合、取っ手として利用可能と考えられる寸法の最小値が制約条件として設定される。さらに他の例では、例えば文字列を表示する部品要素の制約条件として、文字列の可読性が維持される寸法の最小値を設定しておくことが考えられる。
図2の例の設計データが表すパッケージを図式的に表すと、例えば図3Aおよび図3Bに示すとおりになる。図3Aを参照し、パッケージの本体要素である直方体形状の1つの面に部品要素1(切り取りリボン)が配置され、部品要素1が配置された面に隣接する1つの面に、部品要素2が配置されている。また、部品要素1,2は、部品要素1の一方の端部と部品要素2の一方の端部とが互いに接するように配置されている。図3Bは、図3Aに示すパッケージを矢印Xの方向から見た場合の例を示す。図3Bを参照し、部品要素3は、部品要素1の配置面に対向する面であって部品要素2の配置面に隣接する面に配置されている。
なお、図2は、設計データの内容の具体的な態様を限定するものではない。また、設計データは、図2に例示する内容の他の情報を含んでいてよい。例えば、設計データは、図2の例の内容の他にも、設計対象物の図面を表示部140に表示させるために必要な各種の情報を含んでいてよい。
図1の説明に戻り、部品DB110は、本体要素に付加され得る部品要素に関する情報を予め記憶したデータベースである。部品DB110には、各部品要素について、その種類や名称、形状、および制約条件などを記憶する。ユーザは、本体要素に付加する部品要素を、部品DB110に記憶された部品要素の中から選択する。図4に、部品DB110のデータ内容の一例を示す。
図4を参照し、本例の部品DB110は、各部品要素について、部品名、制約条件、および形状の各項目の値を記憶する。部品名は、当該部品要素の名称である。制約条件は、当該部品要素の寸法に関する制約条件である。図4の例では、当該部品要素の寸法として許容される最小値を表す。ただし、当該部品要素の寸法として許容される最大値を表す制約条件、または、許容される最小値および最大値の両方を表す制約条件を設定しておいてもよい。制約条件において最小値および最大値のいずれを設定するかは、当該部品要素の機能に応じて決定すればよい。形状は、当該部品要素の形状を表す。部品DB110に登録された各部品要素の情報は、当該部品要素を含む設計対象物の設計データ中に組み込まれる。例えば、図2の例の設計データを参照し、部品名「切り取りリボン」である各部品要素1,2の情報には、図4の例の部品DB110に登録された「切り取りリボン」の制約条件および形状が含まれている。また、図2に例示する部品要素3(部品名「取っ手用穴」)の情報には、図4の例の部品DB110に登録された「取っ手用穴」の制約条件および形状が含まれている。以上より、部品DB110を、各部品要素のオブジェクトのクラスを定義する情報を記憶したデータベースであると捉え、設計データ中の各部品要素の情報を、当該部品要素のオブジェクトのインスタンスであると捉えてもよい。
再び図1を参照し、操作受付部120は、ユーザによる各種の入力を受け付ける。操作受付部120は、例えば、マウスやキーボードなどの図示しない入力装置を用いてユーザが入力した情報を取得し、取得した情報を設計データ処理部130に渡す。
設計データ処理部130は、操作受付部120が受け付けたユーザの指示に従って、設計対象物の設計データに対する操作を実行する。設計データ処理部130は、位置/形状管理部132、制約条件判定部134、および表示制御部136を備える。
設計データ処理部130は、設計データを新規作成して設計データ記憶部100に格納したり、設計データ記憶部100に記憶された設計データの内容を変更したりする。例えば、設計データ処理部130は、設計対象物の本体要素を選択する指示に従って、選択された本体要素の情報を含む設計データを作成し、作成した設計データを設計データ記憶部100に格納する。また例えば、設計データ処理部130は、設計データ記憶部100中の特定の設計データの本体要素に部品要素を付加する指示に従って、当該指示に係る部品要素の情報を部品DB110から取得し、取得した情報と、現在の設計対象物における当該部品要素の寸法および位置と、を含む部品要素の情報を生成して当該設計データに追加する。また、設計データ処理部130は、特定の設計データ中の部品要素を削除する指示に従って、指示された部品要素を設計データから削除することもある。設計データ処理部130は、さらに、本体要素に付加された部品要素の位置を変更したり、設計対象物の構成要素(本体要素または部品要素)を変形させたりする処理を行う。ここで、構成要素の「変形」とは、拡大縮小や、縦/横/奥行きの比率の変更などを表す。構成要素が変形されると、当該要素の少なくとも一部の寸法が変更されることになる。
位置/形状管理部132は、設計データに含まれる各構成要素の位置および寸法を管理する。位置/形状管理部132は、設計データ処理部130において、設計データ中の構成要素の寸法や位置の変更を伴う操作が行われる場合に、変更後の各構成要素の寸法および位置を求める。例えば、位置/形状管理部132は、設計データ中の本体要素の寸法を変更する指示に従って、本体要素の変更後の寸法を求め、かつ、当該本体要素に付加された各部品要素の寸法を本体要素の寸法の変更に応じて変更した場合の、各部品要素の変更後の寸法を求める。一具体例として、本体要素を1/2だけ縮小する指示を受けた場合に、位置/形状管理部132は、現在の本体要素の寸法を1/2倍した寸法を求めると共に、各部品要素についても、現在の寸法を1/2倍した寸法を求める。位置/形状管理部132は、本体要素の寸法の変更に応じて各部品要素の変更後の寸法を求めると、制約条件判定部134に依頼して、当該変更後の寸法が当該部品要素の制約条件を満たしているか否かを判定させる。
制約条件判定部134は、設計データに含まれる各部品要素の寸法が制約条件を満たしているか否かを判定する。制約条件判定部134は、例えば、位置/形状管理部132からの上述の依頼を受けて、本体要素の寸法の変更に応じた変更後の各部品要素の寸法を取得する。さらに、処理対象の設計データ中に記述された各部品要素の制約条件を取得する。そして、各部品要素の変更後の寸法が当該部品要素の制約条件を満たしているか否かを判定する。つまり、変更後の寸法が、制約条件によって表される値の範囲内にあるか否かを判定する。
制約条件判定部134による判定の結果、すべての部品要素の変更後の寸法が当該部品要素の制約条件を満たしていれば、設計データ処理部130は、処理対象の設計データにおいて、各部品要素および本体要素の寸法をそれぞれ変更後の寸法に書き換える。変更後の寸法が制約条件を満たさない部品要素が存在する場合、設計データ処理部130は、制約条件に違反した状態を解消するための処理を行う。例えば、設計データ処理部130の表示制御部136により、制約条件を満たさない部品要素が存在する旨をユーザに通知する警告を表示部140に表示させる。また例えば、位置/形状管理部132により、各部品要素の制約条件を満たす範囲で、本体要素および各部品要素の寸法を変更するようにしてもよい。例えば、制約条件で示される最小値を下回らないような限界まで、本体要素および各部品要素を縮小したり、制約条件で示される最大値を超えないような限界まで、本体要素および各部品要素を拡大したりする。
表示制御部136は、設計データ処理部130における処理の過程や結果を表示部140に表示させるための制御を行う。本実施形態の例の表示制御部136は、表示の内容および態様を指示する表示制御情報を生成して表示部140に渡すことで、表示部140における表示を制御する。表示制御部136は、例えば、設計データ処理部130の処理対象の設計データが表すデザインを表示部140に図式的に表示させる。また、設計データに対する操作を受け付けるための操作メニューの表示画面を表示させることもある。また、表示制御部136は、制約条件判定部134の判定の結果を表す情報を表示部140に表示させることもある。
表示部140は、表示制御部136から渡された表示制御情報に従った表示を行う。表示部140は、例えば液晶ディスプレイなどの表示装置であってよい。ユーザは、表示部140に表示される内容を確認して、入力装置を用いて設計データに対する操作の指示を行う。
図5に、設計データに対するユーザの操作を受け付けるために表示制御部136が表示部140に表示させる表示画面の一例を示す。図5の例の表示画面には、メニューM、設計対象物D1、および部品要素パレットPが表示されている。メニューMは、設計データに関する操作のメニューを表示する。設計対象物D1の図は、設計データ中に記述された情報に従って表示画面上に描画される。図5に示す設計対象物D1は、図2,図3A,図3Bを参照して上述した例のパッケージであるとする。部品要素パレットPは、部品DB110に登録された各部品要素を表示する。ユーザは、例えばマウスなどの入力装置を用いて、部品要素パレットPに表示された部品要素を選択し、選択した部品要素を設計対象物D1の図上に配置する。この選択および配置の入力を操作受付部120が受け付けて、設計対象物D1の本体要素に、選択された部品要素を付加する指示として設計データ処理部130に渡す。この指示を受け取った設計データ処理部130は、選択された部品要素の情報を設計データに追加する処理を行う。
図6は、ユーザが設計データ中の本体要素の寸法を変更する指示を行った場合に、設計支援装置10で実行される処理の手順の例を示すフローチャートである。設計支援装置10の設計データ処理部130は、操作受付部120を介して取得したユーザの操作指示が、設計データ中の本体要素の寸法を変更する指示である場合に、図6の例の手順の処理を開始する。なお、図6の例の手順の処理を開始する前に、設計データ処理部130は、ユーザによる変更指示の対象の設計データを設計データ記憶部100から取得済みであるとする。
設計データ処理部130は、まず、本体要素の寸法の変更指示の内容を特定する(ステップS10)。ステップS10では、操作受付部120から取得された変更指示が、本体要素の寸法をどのように変更することを指示するものであるかを特定する。変更指示は、例えば、本体要素の全体を特定の比率で拡大または縮小する指示である。あるいは、例えば、特定の方向に特定の比率で本体要素を拡大または縮小する指示であってもよい。さらに他の例では、本体要素の縦/横/奥行きの比率を変更する指示であってもよい。
変更指示の内容が特定されると、設計データ処理部130の位置/形状管理部132は、変更指示に従った変更後の本体要素および各部品要素の寸法を求める(ステップS12)。ステップS12で、位置/形状管理部132は、変更指示に従った変更後の本体要素の寸法を求め、かつ、本体要素の変更に応じて各部品要素の寸法を変更した場合の各部品要素の変更後の寸法を求める。例えば、本体要素の全体を拡大または縮小する変更指示の場合、拡大または縮小後の本体要素の寸法と、本体要素に付加された各部品要素を本体要素の拡大または縮小と同じ比率で拡大または縮小した結果の各部品要素の寸法と、を求める。また、特定の方向に特定の比率で本体要素を拡大または縮小する変更指示または本体要素の縦/横/奥行きの比率を変更する指示の場合、本体要素の面ごとに(本体要素の形状が直方体であれば対向する面の組ごとに)拡大または縮小の比率が異なる場合がある。このような場合は、各部品要素について、当該部品要素が配置された本体要素の面の拡大・縮小の比率を求め、この比率を用いて当該部品要素の拡大・縮小後の寸法(変更後の寸法)を求めるようにすればよい。
ステップS12の後、設計データ処理部130の制約条件判定部134は、各部品要素の変更後の寸法が各部品要素の制約条件を満たすか否かを確認する(ステップS14)。制約条件判定部134は、処理対象の設計データに含まれる各部品要素の制約条件を参照し、ステップS12で求められた各部品要素の変更後の寸法が当該部品要素の制約条件で表される範囲内の値であるか否かを確認する。
ステップS14の確認の結果、制約条件を満たさない部品要素がない場合(ステップS16でNO)、設計データ処理部130は、ステップS12で求めた変更後の本体要素および部品要素の寸法を設計データに反映させる(ステップS24)。例えば、設計データ記憶部100において、処理対象の設計データに含まれる本体要素および各部品要素の寸法を、それぞれ、変更後の値に書き換える。
ステップS14の確認の結果、制約条件を満たさない部品要素がある場合(ステップS16でYES)、表示制御部136は、その旨をユーザに通知するための警告を表示部140に表示させる(ステップS18)。ステップS18では、例えば、制約条件を満たさない部品要素を利用者にとって識別可能とする情報と、当該部品要素の制約条件と、を表示部140に表示させる。図7に、ステップS18で表示される警告の一例を示す。図7は、図5の例の表示画面に表示された設計対象物D1の本体要素の全体を縮小する指示に従って求められた各部品要素の変更後の寸法が制約条件の寸法の下限値を下回る場合の警告表示の例である。図7の例の設計対象物D1´は、設計対象物D1を指示通りに縮小した場合のデザインを表す。図7の例の警告表示ウィンドウW1には、「部品要素のサイズが下限値を下回っています。」とのメッセージが表示され、各部品要素1,2,3の変更後の寸法(サイズ)および制約条件で定められる寸法の下限値を示す表が表示されている。警告表示ウィンドウW1の表中の「サイズ」の項目において、下線が付された数値は、制約条件の下限値を下回る寸法であることを示す。警告表示ウィンドウW1は、さらに、「元に戻す」、「指定値で更新」、「下限値を下回らないよう更新」のメニューボタンを含む。ユーザは、マウスなどの入力装置により、これらのメニューボタンのいずれかを押下する。各メニューボタンが押下された場合の処理については後述する。
再び図6を参照し、ステップS18で、制約条件を満たさない部品要素がある旨の警告を表示部140に表示させた後、設計データ処理部130は、制約条件を満たす範囲内でのさらなる変更指示を待ち受ける(ステップS20でNO判定のループ)。さらなる変更指示は、例えば、図7の例の警告表示ウィンドウW1のメニューボタンの押下により受け付けられる。ユーザが「元に戻す」ボタンを押下すると、操作受付部120は、処理対象の設計データ中の本体要素および各部品要素の寸法を変更前の値のまま維持する指示を設計データ処理部130に渡す。ユーザが「指定値で更新」ボタンを押下すると、操作受付部120は、各部品要素の寸法を、警告表示ウィンドウW1の表における各部品要素の「サイズ」の項目に示された値に変更する指示を設計データ処理部130に渡す。なお、本例において、警告表示ウィンドウW1中の表における「サイズ」の項目の値は、ユーザの入力により変更可能であるとする。ユーザが「下限値を下回らないよう更新」ボタンを押下すると、操作受付部120は、各部品要素の寸法が制約条件の下限値を下回らない範囲で本体要素の寸法が最小となるように本体要素を縮小する指示を設計データ処理部130に渡す。上述の各メニューボタンに対応する指示のうち、「元に戻す」ボタンおよび「下限値を下回らないよう更新」ボタンの押下に応じた指示は、制約条件を満たす範囲内での変更指示であると言える。「指定値で更新」ボタンの押下に応じた指示は、警告表示ウィンドウW1中の表における「サイズ」の項目の値のうち、対応する下限値を下回るものがなければ、制約条件を満たす範囲内での変更指示である。「サイズ」の項目の値のうち、対応する下限値を下回るものがある状態で「指定値の更新」ボタンが押下された場合、設計データ処理部130が取得する指示は、制約条件を満たす範囲内での変更指示ではない。
図6のステップS18の後、制約条件を満たす範囲内での変更指示を設計データ処理部130が取得すると(ステップ20でYES)、位置/形状管理部132において、当該変更指示に従って各部品要素の変更後の寸法を求める(ステップS22)。ステップS22では、ステップS20で取得された変更指示が本体要素の寸法の変更を伴う場合、本体要素の変更後の寸法も求める。例えば、図7を参照する上述の例で「下限値を下回らないよう更新」ボタンが押下された場合、ステップS22で、位置/形状管理部132は、各部品要素の寸法が制約条件の下限値を下回らない範囲で本体要素の寸法が最小となるように本体要素を縮小した場合の、本体要素および各部品要素の寸法を求める。また例えば、上述の例で、図7の警告表示ウィンドウW1中の表において「サイズ」の項目の値に制約条件の下限値を下回る値がない状態で「指定値で更新」ボタンが押下された場合、ステップS22で、各部品要素の「サイズ」の項目に入力された値を変更後の寸法とすればよい。また、この例の場合、本体要素の変更後の寸法は、ステップS12で求めた値を用いればよい。なお、上述の例で「元に戻す」ボタンが押下された場合、処理対象の設計データ中の各構成要素の寸法を、そのまま、ステップS22で求める変更後の寸法とすればよい。この場合にステップS22で求められる各構成要素の寸法は、ステップS10で特定された変更指示に従った変更を行う前の値であると言える。あるいは、例えば、「元に戻す」ボタンが押下された場合はステップS22の処理を省略するようにしてもよい。
ステップS22の後、設計データ処理部130は、設計データ記憶部100中の処理対象の設計データにおいて、ステップS22で求めた各構成要素の寸法を反映させる(ステップS24)。ステップS24の後、図6の例の手順の処理は終了する。
図6のステップS20で制約条件を満たす範囲内での変更指示を待ち受ける間に、図7を参照する例において、「サイズ」の項目の値のうち対応する下限値を下回るものがある状態で「指定値の更新」ボタンが押下された場合、設計データ処理部130の表示制御部136は、例えば、図8に示すようなメッセージを表示部140に表示させてもよい。図8に例示するウィンドウW2は、各部品要素の「サイズ」の項目に下限値より大きな値を入力することをユーザに促すメッセージを表示する。図8の例のメッセージを表示させた後、設計データ処理部130は、引き続き、制約条件を満たす範囲内での変更指示を待ち受ける。
なお、図7および図8を参照する上述の具体例は、本体要素を縮小する指示に従って部品要素を縮小すると、寸法の最小値を定める制約条件に違反する場合の例である。寸法の最大値を定める制約条件が設定された部品要素が本体要素に付加されており、本体要素を拡大する指示に従って部品要素を拡大すると制約条件に違反する場合、ステップS18で、例えば、図7の例の警告表示ウィンドウW1と同様の警告表示において、各部品要素の「下限値」の代わりに「上限値」を表示し、「下限値を下回らないよう更新」ボタンの代わりに「上限値を超えないよう更新」ボタンを表示させればよい。この警告表示を行った場合に、ある部品要素について上限値を超える「サイズ」が入力された状態で「指定値で更新」ボタンが押下されると、上限値より小さな値を設定することを促すメッセージを表示させればよい。
図6を参照して説明した例の手順によると、本体要素の寸法の変更に応じて、本体要素に付加された部品要素の寸法も変更する場合に、各部品要素の寸法の制約条件に違反するような変更は回避される。
[第2実施形態]
第2実施形態の例では、各部品要素について、寸法の最大値や最小値を表す制約条件を設定しておく代わりに、各部品要素の本体要素における配置面と各部品要素の寸法の範囲との組合せに適した形状を設定する。第2実施形態の例では、本体要素の寸法の変更に応じて本体要素に付加された部品要素の寸法が変更される場合に、当該部品要素の配置面および変更後の寸法に応じて、当該部品要素の形状の変更の要否の判定が行われる。
図9に、第2実施形態の例による設計支援装置10の内部構成の概略を示す図である。図9において、図1と同様の要素には図1と同様の符号を付し、その詳細な説明を省略する。図9の例の設計支援装置10は、設計データ処理部130において、制約条件判定部134の代わりに部品形状管理部135を備える点で、図1の例の設計支援装置10と異なる。また、第2実施形態の例では、部品DB110において、各部品要素の寸法の最大値や最小値を表す制約条件の代わりに、各部品要素の配置面および寸法の組合せに応じた形状を記憶する。
図10に、第2実施形態の例における部品DB110のデータ内容の例を示す。図10の例の表は、部品種別、貼り付け面、Xサイズ、Yサイズ、および部品形状の各項目を含む。部品種別は、部品要素の種別を表す。部品要素の種別は、例えば、部品要素をその機能に基づいて分類した場合の種別であってよい。図10では、部品種別として「開封部品」を示す。開封部品は、包装用のパッケージを開封するための機能を有する部品である。貼り付け面とは、本体要素において部品要素が配置される面を表す。図10の例では、貼り付け面として、「正面」、「側面」、および「上面」を示す。本例では、本体要素の形状を直方体であるとし、直方体の6つの面のうち、面積が最大である2つの面を「正面」、面積が最小である2つの面を「上面」、面積が2番目に大きい(小さい)2つの面を「側面」と呼ぶ(図11参照)。図10の例の表のXサイズおよびYサイズの各項目は、それぞれ、部品要素を2次元平面上で表す場合のX軸方向およびY軸方向の寸法の範囲を表す。部品形状の項目は、対応する貼り付け面、Xサイズ、およびYサイズの組合せに応じた、当該部品要素の形状を表す。例えば、図10の行L1を参照すると、部品種別が開封部品である部品要素の貼り付け面が本体要素の「正面」であり、当該部品要素のX軸方向の寸法が15mm未満、かつY軸方向の寸法が15mm未満である場合、当該部品要素の形状は、行L1の「部品形状」の項目で示される形状に設定される。また、行L2の「部品形状」は、貼り付け面が正面であり、X軸方向の寸法が15mm以上50mm未満、かつY軸方向の寸法が15mm以上35mm未満の場合の当該部品要素の形状を表す。同様に、行L3の「部品形状」は、貼り付け面が正面であり、X軸方向の寸法が50mm以上、かつY軸方向の寸法が35mm以上の場合の当該部品要素の形状を表す。また、図10の例の表の行L4では、XサイズおよびYサイズの項目には値が設定されていない。行L4は、「開封部品」である部品要素の貼り付け面が「側面」であれば、当該部品要素の寸法にかかわらず、当該部品要素を行L4の「部品形状」の項目で表される形状に設定することを表す。また、行L5,L6には、Xサイズの項目に値の設定がない。行L5,L6は、「開封部品」である部品要素の貼り付け面が「上面」である場合、当該部品要素のX軸方向の寸法にかかわらず、Y軸方向の寸法が15mm以下であれば行L5の「部品形状」に、Y軸方向の寸法が15mm未満であれば行L6の「部品形状」に、当該部品要素の形状を設定することを表す。図10の例の表は、「開封部品」である部品要素が取り得る複数の形状のそれぞれについて、適切な部品要素の貼り付け面および寸法の値の範囲を定める情報であるとも捉えられる。
第2実施形態の例において設計データ記憶部100に記憶される設計データは、各部品要素に関し、当該部品要素の部品種別に応じて部品DB110から読み出された図10の例の表のような情報と、当該部品要素の本体要素における現在の貼り付け面(配置面)を表す情報と、当該部品要素の現在の寸法と、を含む。一具体例として、図12に例示する設計対象物D2の設計データの場合を考える。設計対象物D2は、包装用パッケージである。設計対象物D2の本体要素には、フタに相当する部分に爪(部品要素4)が開封部品として設けられる。設計対象物D2は、部品要素4の爪を図示しない穴の部分に差し込むことで当該爪を固定するようにしたデザインを有する。部品要素4の寸法(サイズ)は、X軸方向60mm,Y軸方向40mmであり、貼り付け面は、本体要素の正面であるとする。設計対象物D2の設計データは、部品要素4に関し、現在の寸法「X×Y=60mm×40mm」および現在の貼り付け面「正面」を表す情報と共に、開封部品の貼り付け面、寸法、および部品形状を示す図10の例の表の情報を含む。なお、図12に例示する部品要素4は、その貼り付け面および寸法が図10の例の表の行L3の設定値に該当するため、行L3の部品形状が示すとおり、2本の爪を含む形状を有する。設計対象物D2の設計データは、部品要素4の現在の形状を表す情報も含む。
図9の説明に戻り、設計データ処理部130の位置/形状管理部132は、部品要素が付加された本体要素の寸法を変更する指示に応じて、上述の第1実施形態の例と同様に、位置/形状管理部132が当該部品要素の変更後の寸法を求める。さらに、位置/形状管理部132は、指示に従って本体要素の寸法を変更した後、当該部品要素の貼り付け面が本体要素の正面、側面、および上面のいずれになるかを確認する。例えば、本体要素の変更後の寸法を用いて、当該部品要素の貼り付け面の面積と、本体要素の他の各面の面積と、を求めて比較することで確認すればよい。本体要素の寸法の変更によって当該部品要素の貼り付け面の面積が変化することで、本体要素の寸法の変更の前後で、部品要素の貼り付け面が正面、側面、および上面のうちの1つから他の種類の面に変化する場合がある。このため、第2実施形態の例の位置/形状管理部132は、本体要素の寸法の変更の指示に従って、部品要素の変更後の寸法だけでなく、本体要素の寸法を変更した後の部品要素の貼り付け面の情報も求める。求めた変更後の寸法および貼り付け面の情報は、位置/形状管理部132により、設計データ記憶部100中の設計データに反映される。
設計データ処理部130の部品形状管理部135は、部品DB110の設定内容に従って、部品要素の形状を管理する。例えば、本体要素の寸法を変更する指示に応じて、位置/形状管理部132が上述のように当該部品要素の変更後の寸法および貼り付け面を求めた場合、この変更後の寸法および貼り付け面に応じて、当該部品要素の形状を変更するか否かを判定する。この判定は、設計データ中の当該部品要素に関して貼り付け面および寸法に応じた形状を定義する情報(図10参照)に基づいて行えばよい。例えば、部品要素の変更後の寸法および貼り付け面に対応する形状が現在の形状と同じであれば、形状の変更は不要であると判定し、部品要素の変更後の寸法および貼り付け面に対応する形状が現在の形状と異なっていれば、形状の変更が必要であると判定する。形状の変更が必要である場合、部品形状管理部135は、設計データ記憶部100中の設計データにおいて、当該部品要素の形状を、変更後の寸法および貼り付け面に対応した形状に変更する。
図13は、図9の例の設計支援装置10が実行する処理の手順の例を示すフローチャートである。設計支援装置10の設計データ処理部130は、操作受付部120を介して取得したユーザの操作指示が、設計データ中の本体要素の寸法を変更する指示である場合に、図13の例の手順の処理を開始する。
図13のステップS10で変更指示の内容を特定する処理は、第1実施形態の例の処理における図6の例の手順のステップS10と同様であってよい。
ステップS10の後、設計データ処理部130の位置/形状管理部132は、変更指示に従った変更後の本体要素の寸法と、各部品要素の変更後の寸法および貼り付け面と、を求める(ステップS30)。本体要素および各部品要素の変更後の寸法を求める処理は、図6のステップS12を参照して説明した処理と同様であってよい。各部品要素の貼り付け面は、例えば、本体要素の変更後の寸法を用いて本体要素の各面の面積を求め、各部品要素の配置された面が、正面(面積最大)、側面(面積が2番目に大きい)、および上面(面積最小)のいずれであるかを特定することで求めればよい。なお、本体要素の6面のうち4面の面積が等しく、正面と側面との区別または上面と側面との区別が付かない場合は、正面(または上面)と側面とのうちの一方の面を各部品要素の貼り付け面として選択してよい。例えば、本体要素において面積最大である4面のうちの1面に部品要素が配置されている場合に当該部品要素の貼り付け面を正面および側面のうちのいずれとみなすか、予め決定しておけばよい。同様に、本体要素において面積最小である4面のうちの1面に部品要素が配置されている場合に当該部品要素の貼り付け面を上面および側面のうちのいずれとみなすかについても、予め決定しておいてよい。なお、本体要素が立方体である(すべての面の面積が等しい)場合は、正面、側面、および上面のうち任意の面を各部品要素の貼り付け面として選択してよい。例えば、本体要素が立方体である場合は部品要素の貼り付け面を正面とみなす、などのように予め決定しておけばよい。
ステップS30の後、設計データ処理部130の部品形状管理部135は、各部品要素の変更後の寸法および貼り付け面に応じた形状を確認する(ステップS32)。ステップS32で、部品形状管理部135は、例えば、処理対象の設計データから、各部品要素についてその貼り付け面と寸法とに応じた形状を定義する情報を読み出し、読み出した情報において、当該部品要素の変更後の寸法および貼り付け面に対応づけられた形状を特定する。例えば、当該部品要素の貼り付け面について設定された寸法の値の範囲のうち、どの範囲が当該部品要素の変更後の寸法を含むかを特定し、特定された寸法の値の範囲に対応づけられた形状を、当該部品要素の変更後の寸法および貼り付け面に応じた形状として特定する。
すべての部品要素についてステップS32で確認した形状が現在の形状と同じである場合、部品要素の形状の変更は不要であることから、ステップS34でNO判定されて、処理はステップS40に進む。ステップS40で、設計データ処理部130は、変更後の本体要素および部品要素の寸法を設計データに反映させる。つまり、設計データ記憶部100中の設計データにおいて、本体要素および各部品要素の寸法を変更後の値に書き換える。ここでは、部品要素の形状は変更されない。
1以上の部品要素についてステップS32で確認した形状と現在の形状とが異なる場合、部品要素の形状の変更が必要であるため、ステップS34でYES判定されて、処理はステップS36に進む。ステップS36で、設計データ処理部130は、処理対象の設計データにおいて、本体要素の変更後の寸法と各部品要素の変更後の寸法とを反映させ、かつ、形状の変更が必要な部品要素の形状をステップS32で確認した形状に設定する。
ステップS36の後、設計データ処理部130の表示制御部136は、本体要素の寸法の変更に伴って部品要素の形状を変更した旨を表す情報を表示部140に表示させる(ステップS38)。
ステップS38またはステップS40の後、図13の例の手順の処理は終了する。
以下、図12、図14、および図15を参照し、図13の例の手順により部品要素の形状が変更される様子の具体例を説明する。本具体例では、まず、図12に例示する設計対象物D2の本体要素を縮小する指示が行なわれ、図13の例の手順の処理が実行されるとする。図13のステップS30で、部品要素4の変更後のX軸方向およびY軸方向の寸法として、それぞれ、40mmおよび27mmが求められたとする。また、部品要素4の貼り付け面は、本体要素の寸法の変更の前後を通じて、「正面」であるとする。この場合、ステップS32で、部品形状管理部135は、設計対象物D2の設計データにおいて、部品要素4についての寸法および貼り付け面に応じた形状を定義する情報(図10の例の表)を参照し、部品要素4の変更後の寸法(X×Y=40mm×27mm)および貼り付け面(正面)に対応する形状として、図10の表の行L2の「部品形状」を特定する。本体要素の寸法の変更前の部品要素4の形状は、図10の表の行L3の「部品形状」の形状であることから、図13のステップS34で、部品要素4の形状の変更が必要であると判定される。ステップS36で、本体要素の変更後の寸法と、部品要素4の変更後の寸法および形状(図10の行L2)とが設計データに反映される。そして、ステップS38で、表示制御部136は、例えば図14のような表示画面を表示部140に表示させることで、本体要素の寸法の変更に伴い、部品要素4の形状が変更された旨をユーザに通知する。図14の例の表示画面に示される設計対象物D2´は、設計対象物D2の本体要素および部品要素4の寸法の変更と部品要素4の形状の変更とを反映させた設計データが表すパッケージのデザインの図の例である。
図15を参照し、部品要素4の貼り付け面が変更される場合の例を説明する。図12の例の設計対象物D2または図14の例の設計対象物D2´に対して、本体要素の縦/横/奥行きの比率を変更するような指示が行なわれ、これに伴って部品要素4の貼り付け面が正面から上面(本体要素において面積最小の面)に変更されるとする。また、図13のステップS30で求められる変更後の部品要素4の寸法がX軸方向40mm,Y軸方向27mmであるとする。この場合、図13のステップS32で、部品形状管理部135は、部品要素4の変更後の寸法および貼り付け面に対応する形状として、図10の例の表の行L5の部品形状を特定する。さらに、表示制御部136は、図13のステップS38で、図15の例の表示画面を表示させて、部品要素4の貼り付け面の変更に伴い、形状が変更された旨をユーザに通知する。
なお、部品要素4の変更後のX軸方向およびY軸方向の寸法が、それぞれ、図10の例の表において異なる行の「Xサイズ」および「Yサイズ」の範囲に該当することもあり得る。一具体例として、部品要素4の貼り付け面が正面であって、部品要素4の寸法がX軸方向45mmかつY軸方向40mmの場合、図10の行L2のXサイズ、行L3のYサイズに該当する。このような場合、例えば、行L2,L3の一方の部品形状を選択して用いればよい。XサイズおよびYサイズのいずれに対応する部品形状を用いるか、予め決定しておいてもよい。あるいは、例えば、当該部品要素のX軸方向およびY軸方向の一方の寸法の変更を促す情報を表示部140に表示させ、当該部品要素の寸法を、図10の例の表の1行で定められるXサイズおよびYサイズの両方の値の範囲に該当する寸法に変更するようにしてもよい。この例では、図10の表の1行におけるXサイズおよびYサイズの両方の値の範囲に該当するように部品要素の寸法を変更した上で、当該部品要素の形状を特定すればよい。
第2実施形態の例によると、本体要素の寸法の変更に伴って部品要素の貼り付け面や寸法が変更される場合に、当該部品要素の形状は、当該部品要素の変更後の貼り付け面および寸法に応じた形状に自動的に変更される。
なお、以上では、本体要素の形状が直方体である場合を具体例として説明したが、本体要素の形状は直方体の他の多面体であってもよい。例えば、多面体の各面の面積の大小関係に応じて面の種類を定義し、定義した面の種類ごとに、部品要素の寸法の値の範囲と形状との組を部品DB110に記憶させておけば、第2実施形態の例の処理を上記の説明と同様に実行し得る。
[変形例など]
本発明の実施の形態は、上述の第1実施形態および第2実施形態の例の態様に限定されず、各種の変形例があってよい。
上記の第1実施形態および第2実施形態の説明では、本体要素に部品要素がすでに配置された状態で、本体要素の寸法を変更する場合の処理の例を述べた。第1実施形態の例の制約条件に基づく寸法の確認および第2実施形態の例のような形状の確認は、本体要素の寸法の変更指示が行なわれた時点の他のタイミングで行ってもよい。
例えば、第1実施形態の変形例において、設計データ処理部130は、本体要素に新たな部品要素を配置する指示を受けた場合に、当該部品要素の部品名に対応する寸法の制約条件を確認し、当該制約条件を満たす範囲内の寸法を当該部品要素の現在の寸法として設計データ中に設定する。また、例えば、本体要素の寸法の変更指示ではなく、部品要素自体の寸法の変更指示を受けた場合に、その指示に従った変更後の部品要素の寸法が制約条件を満たしているか否かを判定し、満たしていない場合に上述の図6のステップS18以降の処理を行ってもよい。
また、第2実施形態の変形例において、設計データ処理部130は、本体要素に新たな部品要素を配置する指示を受けた場合に、当該部品要素の部品種別に対応する形状の情報(図10参照)を部品DB110から読み出し、当該部品要素の形状を、指示された貼り付け面および寸法に応じた形状に設定する。また、例えば、すでに本体要素に付加された部品要素を、本体要素の他の面に移動させる指示を受けた場合に、移動後の貼り付け面に対応する形状を確認して、現在の形状と異なっていれば当該部品要素の形状を変更するようにしてもよい。また、部品要素自体の寸法の変更指示に応じて、変更後の寸法に応じた形状に変更するようにしてもよい。
さらに他の変形例では、第1実施形態の例による寸法の制約条件に関する処理と、第2実施形態の例による部品の形状に関する処理と、の両方を行ってもよい。例えば、部品DB110において、部品種別ごとに、図10の例のような表の情報に加えて、各部品要素の寸法について許容される値の範囲を設定しておき、本体要素の寸法の変更指示に応じて、各部品要素の変更後の寸法の制約条件の確認と、変更後の寸法および貼り付け面に応じた形状の確認と、を行う。本変形例では、例えば、まず、図6の例のステップS10〜S16の処理を行って、各部品要素の変更後の寸法が制約条件を満たしているか否かを判定し、すべての部品要素が制約条件を満たしていれば(ステップS16でNO)、図13の例のステップS32以降の処理を行い、各部品要素の形状を、変更後の寸法に応じた形状に設定する。一方、寸法の制約条件を満たさない部品要素がある場合(ステップS16でYES)、警告を表示し(ステップS18)、制約条件を満たす範囲内でのさらなる変更指示を待ち受ける(ステップS20でNO判定のループ)。制約条件を満たす範囲内でのさらなる変更指示を受けた場合(ステップS20でYES)、図13のステップS32以降の処理により、各部品要素の形状を、図6のステップS20で受け付けた指示に従った変更後の寸法に応じた形状に設定する。
また、第2実施形態の他の変形例において、部品要素の貼り付け面についての設定を省略してもよい。この変形例の場合、部品要素の寸法について異なる値の範囲に応じて、部品要素の形状を設定しておき、部品要素の寸法が変更される場合に、部品要素の形状を、変更後の寸法に応じた形状に設定するようにすればよい。
なお、上述の第1実施形態および第2実施形態の例では、本体要素に部品要素が付加される場合、部品DB110に記憶された当該部品要素に関する情報を部品DB110から取得して設計データ中に組み込み、設計データを参照して制約条件や部品要素の形状の確認を行う。各実施形態の変形例では、本体要素に付加された各部品要素について、部品名または部品種別、現在の寸法、位置、および形状のみを設計データに記述しておき、寸法の制約条件または形状の情報を用いる処理の実行時に、部品名または部品種別をキーにして部品DB110内を検索して制約条件または形状の情報を部品DB110から取得してもよい。
また、以上では、包装用のパッケージの設計を例にとり各実施形態および変形例を説明したが、設計対象物は、包装用のパッケージに限られない。本体要素に部品要素を付加することで設計される設計対象物であれば、上述の各種の実施形態および変形例の処理を同様に実行してよい。また、上記の説明において用いた具体例の設計対象物のデザインは、いずれも、3次元で表現されるが、2次元で表現されるデザインについても、上述の各種の実施形態および変形例の処理は同様に実行してよい。
上述の設計支援装置10は、典型的には、汎用のコンピュータにて上述の設計支援装置10の各部の機能または処理内容を記述したプログラムを実行することにより実現される。コンピュータは、例えば、ハードウエアとして、図16に示すように、CPU(中央演算装置)80、メモリ(一次記憶)82、各種I/O(入出力)インタフェース84等がバス86を介して接続された回路構成を有する。また、そのバス86に対し、例えばI/Oインタフェース84経由で、HDD(ハードディスクドライブ)88やCDやDVD、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体を読み取るためのディスクドライブ90が接続される。このようなドライブ88又は90は、メモリに対する外部記憶装置として機能する。実施形態の処理内容が記述されたプログラムがCDやDVD等の記録媒体を経由して、またはネットワーク経由で、HDD88等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがメモリに読み出されCPUにより実行されることにより、実施形態の処理が実現される。
なお、以上では、設計支援装置10を1台のコンピュータにより実現する実施形態および変形例を説明したが、設計支援装置10の上述の例の各種の機能を複数のコンピュータに分散させて実現してもよい。