説明

生成装置、生成プログラムおよび生成方法

【課題】簡易に可動線を生成すること。
【解決手段】生成装置10は、親部品、子部品、および親部品と子部品との拘束関係に関する情報を記憶する記憶部13を有する。生成装置10は、記憶部13に記憶された記憶内容に基づいて、親部品に対して駆動する子部品を駆動部品として検出する検出部14aを有する。生成装置10は、駆動部品として検出された子部品を所定の条件に従って駆動させた場合の親部品の可動線を生成する生成部14bを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、生成装置、生成プログラムおよび生成方法に関する。
【背景技術】
【0002】
従来、ドアなどの駆動部品の可動可能な範囲の線分である可動線を生成し、生成した可動線を表示する装置がある。例えば、可動線を生成する装置は、駆動部品の可動線に関する情報が登録されたDB(Data Base)を保持する。そして、可動線を生成する装置は、DBに登録された駆動部品の可動線に関する情報を取得し、取得した情報に基づいて可動線を生成し、表示する。
【0003】
また、従来、ユーザによって指定された駆動部品の点の軌跡を一定時間表示する装置がある。駆動部品の点の軌跡を表示する装置は、ユーザによって指定された移動距離に応じて駆動部品を移動させた場合の点の軌跡を一定時間表示する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平11−224274号公報
【特許文献2】特開2005−284393号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記の従来の装置では、ユーザにとって面倒であるという問題がある。具体例を挙げて説明すると、上記の可動線を生成する装置では、ユーザによる、駆動部品の可動線に関する情報をDBに登録する作業が発生する。そのため、ユーザにとって面倒である。また、駆動部品の点の軌跡を表示する装置では、ユーザが駆動部品の移動距離および点を指定するため、ユーザにとって面倒である。
【0006】
開示の技術は、上記に鑑みてなされたものであって、簡易に可動線を生成することができる生成装置、生成プログラムおよび生成方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
本願の開示する生成装置は、記憶部と、検出部と、生成部とを有する。記憶部は、第一の部品、第二の部品、および第一の部品と第二の部品との拘束関係に関する情報を記憶する。検出部は、記憶部に記憶された拘束関係に基づいて、第一の部品に対して駆動する第二の部品を検出する。生成部は、検出部により検出された第二の部品を所定の条件に従って駆動させた場合の第二の部品の可動線を生成する。
【発明の効果】
【0008】
本願の開示する生成装置、生成プログラムおよび生成方法の一つの態様によれば、簡易に可動線を生成することができる。
【図面の簡単な説明】
【0009】
【図1】図1は、実施例1に係る生成装置の機能構成の一例を示す図である。
【図2A】図2Aは、親部品と、子部品との関係の一例を説明するための図である。
【図2B】図2Bは、親部品と、子部品との関係の一例を説明するための図である。
【図3A】図3Aは、拘束関係の一例を説明するための図である。
【図3B】図3Bは、拘束関係の一例を説明するための図である。
【図3C】図3Cは、拘束関係の一例を説明するための図である。
【図3D】図3Dは、拘束関係の一例を説明するための図である。
【図3E】図3Eは、拘束関係の一例を説明するための図である。
【図3F】図3Fは、拘束関係の一例を説明するための図である。
【図4】図4は、図3A、図3B、図3Cの例における「面一致」という拘束関係、および「軸一致」という拘束関係を有する3次元モデルの一例を示す図である。
【図5】図5は、図3D、図3E、図3Fの例における「面一致」という拘束関係、および「軸一致」という拘束関係を有する3次元モデルの一例を示す図である。
【図6】図6は、実施例1に係る生成装置で実行される処理を説明するための図である。
【図7】図7は、実施例1に係る生成装置で実行される処理を説明するための図である。
【図8】図8は、実施例1に係る生成装置で実行される処理を説明するための図である。
【図9】図9は、実施例1に係る生成装置で実行される処理を説明するための図である。
【図10A】図10Aは、実施例1に係る生成装置で実行される処理を説明するための図である。
【図10B】図10Bは、実施例1に係る生成装置で実行される処理を説明するための図である。
【図11】図11は、実施例1に係る生成装置で実行される処理を説明するための図である。
【図12】図12は、実施例1に係る生成装置で実行される処理を説明するための図である。
【図13】図13は、実施例1に係る生成装置で実行される処理を説明するための図である。
【図14】図14は、実施例1に係る生成装置で実行される処理を説明するための図である。
【図15A】図15Aは、実施例1に係る生成装置で実行される処理を説明するための図である。
【図15B】図15Bは、実施例1に係る生成装置で実行される処理を説明するための図である。
【図15C】図15Cは、実施例1に係る生成装置で実行される処理を説明するための図である。
【図16】図16は、実施例1に係る生成処理の手順を示すフローチャートである。
【図17】図17は、実施例1に係る第一の可動線生成処理の手順を示すフローチャートである。
【図18】図18は、実施例1に係る第二の可動線生成処理の手順を示すフローチャートである。
【図19】図19は、生成プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【0010】
以下に、本願の開示する生成装置、生成プログラムおよび生成方法の各実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例1】
【0011】
実施例1に係る生成装置について説明する。図1は、実施例1に係る生成装置の機能構成の一例を示す図である。本実施例に係る生成装置10は、3次元CAD(Computer Aided Design)データが示す3次元モデルの部品の中から、駆動部品を検出し、駆動部品を可動可能な範囲で可動させた場合の可動線を生成する。すなわち、本実施例に係る生成装置10は、自動的に駆動部品を検出し、駆動部品を可動可能な範囲で可動させた場合の可動線を生成する。したがって、本実施例に係る生成装置10によれば、簡易に可動線を生成することができる。
【0012】
[生成装置の機能構成]
図1に示すように、生成装置10は、入力部11と、表示部12と、記憶部13と、制御部14とを有する。
【0013】
入力部11は、各種情報を制御部14に入力する。例えば、入力部11は、ユーザから、後述の生成処理を実行する指示を受け付けて、受け付けた指示を制御部14に入力する。また、入力部11は、ユーザから、可動線を含む図面を表示させる指示を受け付けて、受け付けた指示を制御部14に入力する。入力部11のデバイスの一例としては、マウスやキーボードなどの操作受付デバイスなどが挙げられる。
【0014】
表示部12は、各種の情報を表示する。例えば、表示部12は、後述の表示制御部14cによって、駆動部品の可動線を含む画像であって、3次元モデルの正面図、背面図、右側面図、左側面図、上面図、底面図などの画像を表示する。表示部12のデバイスの一例としては、液晶ディスプレイなどが挙げられる。
【0015】
記憶部13は、各種情報を記憶する。例えば、記憶部13は、3次元CADデータ13aと、画像13bとを記憶する。
【0016】
3次元CADデータ13aは、3次元モデルを示すCADデータである。ここで、3次元モデルは、複数の部品を含む。すなわち、3次元CADデータ13aには、各部品に関する情報が含まれる。例えば、3次元CADデータ13aには、各部品を識別するID(IDentification)が含まれる。また、3次元CADデータ13aには、部品のそれぞれの面を識別するIDが含まれる。さらに、3次元CADデータ13aには、面のそれぞれの辺に対応する線を識別するIDが含まれる。また、3次元CADデータ13aには、線の両端の位置を示す3次元の位置情報が含まれる。すなわち、3次元CADデータ13aに含まれる両端の位置情報によって、3次元空間上の線分が定義される。また、各辺に対応する線分、および法線ベクトルによって3次元空間上の面が定義される。また、各面によって、3次元空間上の部品が定義される。また、3次元CADデータ13aが示す3次元モデルでは、3次元空間おいて互いに直交するX軸、Y軸、Z軸の3軸が定義されている。例えば、3次元モデルでは、XY平面が水平面となるようにX軸、Y軸が定義され、Z軸が水平面に対して鉛直上向きとなるように定義される。このように定義された場合には、3次元モデルの各面を特定することができる。例えば、法線ベクトルの方向が、XY平面の法線ベクトルの方向と同一または許容誤差の範囲内であって、他の面よりもZ軸上での値が小さい面を特定することで、底面を特定することができる。これは、3次元モデルにおける底面は、XY平面と同様な水平面であり、また、他の面よりZ軸上での値が小さいからである。
【0017】
また、3次元CADデータ13aには、複数の部品のうち、親と子との関係にある部品を特定する情報が含まれる。例えば、部品が、親の部品である親部品である場合には、この部品に対して、親部品であることを示す情報が付加される。また、部品が、子の部品である子部品である場合には、この部品に対して、子部品であることを示す情報が付加される。ここで、親の部品である親部品と子の部品である子部品との関係の一例について説明する。図2Aおよび図2Bは、親部品と、子部品との関係の一例を説明するための図である。図2Aの例では、親部品20に対して、子部品21が回転軸22周りの方向に回転する。また、図2Bの例では、親部品25に対して、子部品26がスライド軸27方向にスライドする。このように、図2Aおよび図2Bの例では、親部品に対して、子部品が駆動するような関係にある。すなわち、図2Aおよび図2Bの例では、子部品は、駆動部品であると言える。
【0018】
さらに、3次元CADデータ13aには、親部品の面または線と、子部品の面または線との拘束関係を示す情報が含まれる。図3A、図3B、図3C、図3D、図3E、図3Fは、拘束関係の一例を説明するための図である。図3A、図3Bの例では、親部品20は、面30、面31など複数の面を有する。図3A、図3Bの例では、面30は、線40など複数の線を有する。図3A、図3Bの例では、面31は、線40、線41など複数の線を有する。また、図3A、図3Cの例では、子部品21は、面32、面33など複数の面を有する。図3A、図3Cの例では、面32は、線42など複数の線を有する。図3A、図3Cの例では、面33は、線42、線43など複数の線を有する。
【0019】
また、図3A、図3B、図3Cの例では、親部品20の面30と、子部品21の面32とが同一平面上である。このため、面30と面32とは、同一平面上であることを示す「面一致」という拘束関係を有する。
【0020】
また、図3A、図3B、図3Cの例では、親部品20の線41と、子部品21の線43とは、子部品21が駆動する場合の同一の駆動軸であることを示す「軸一致」という拘束関係を有する。
【0021】
図4は、図3A、図3B、図3Cの例における「面一致」という拘束関係、および「軸一致」という拘束関係を有する3次元モデルの一例を示す図である。図4の例では、親部品20に対して、子部品21は、線41および線43を回転軸として、回転軸周りの方向に可動することができる。このように、駆動軸が回転軸である場合には、「面一致」という拘束関係を有する面30および面32に対して、「軸一致」という拘束関係を有する線41および線43が示す駆動軸の方向は、垂直となる。したがって、「面一致」という拘束関係を有する面に対して、「軸一致」という拘束関係を有する線が示す駆動軸の方向が垂直である場合には、子部品は、駆動軸を回転軸として、回転軸周りの方向に可動することができる。
【0022】
また、図3D、図3Eの例では、親部品25は、面34など複数の面を有する。図3D、図3Eの例では、面34は、線44など複数の線を有する。また、図3D、図3Fの例では、子部品26は、面35、面36、面37など複数の面を有する。図3D、図3Fの例では、面37は、線46、線47など複数の線を有する。
【0023】
また、図3D、図3E、図3Fの例では、親部品25の面34と、子部品26の面37とが同一平面上である。ここで、面34と面37との距離が閾値より小さい場合には、面34と面37との距離が同一平面上であるとみなされる。よって、面34と面37とは、同一平面上であることを示す「面一致」という拘束関係を有する。
【0024】
また、図3D、図3E、図3Fの例では、親部品25の線44と、子部品26の線47とは、子部品26が駆動する場合の同一の駆動軸であることを示す「軸一致」という拘束関係を有する。
【0025】
図5は、図3D、図3E、図3Fの例における「面一致」という拘束関係、および「軸一致」という拘束関係を有する3次元モデルの一例を示す図である。図5の例では、親部品25に対して、子部品26は、線44および線47をスライド軸として、スライド軸の方向に可動することができる。このように、駆動軸がスライド軸である場合には、「面一致」という拘束関係を有する面34および面37の法線ベクトルに対して、「軸一致」という拘束関係を有する線44および線47が示す駆動軸の方向は、垂直となる。したがって、「面一致」という拘束関係を有する面の法線ベクトルに対して、「軸一致」という拘束関係を有する線が示す駆動軸の方向が垂直である場合には、子部品は、駆動軸をスライド軸として、スライド軸の方向に可動することができる。すなわち、「面一致」という拘束関係を有する面に対して、「軸一致」という拘束関係を有する線が示す駆動軸の方向が平行である場合には、子部品は、駆動軸をスライド軸として、スライド軸の方向に可動することができる。
【0026】
画像13bは、駆動部品の可動線を含む画像であって、3次元モデルの正面図、背面図、右側面図、左側面図、上面図、底面図などの画像である。画像13bは、後述の生成部14bにより、生成される。そして、画像13bは、生成部14bにより、記憶部13に格納される。
【0027】
記憶部13は、例えば、フラッシュメモリなどの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部13は、上記の種類の記憶装置に限定されるものではなく、RAM(Random Access Memory)、ROM(Read Only Memory)であってもよい。
【0028】
制御部14は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。図1に示すように、制御部14は、検出部14aと、生成部14bと、表示制御部14cとを有する。
【0029】
検出部14aは、記憶部13に記憶された3次元CADデータ13aに含まれる拘束関係に基づいて、親部品に対して駆動する駆動部品である子部品を検出する。検出部14aは、拘束関係に基づいて、親部品の面と子部品の面とが同一平面上に存在し、かつ、親部品の線と子部品の線とが同一の軸を示すとともに、軸の方向が、平面と垂直である場合には、子部品を、軸を回転軸として回転する駆動部品として検出する。検出部14aは、拘束関係に基づいて、親部品の面と子部品の面とが同一平面上に存在し、かつ、親部品の線と子部品の線とが同一の軸を示すとともに、軸が、平面と平行である場合には、子部品を、軸をスライド軸としてスライドする駆動部品として検出する。
【0030】
具体例を挙げて説明する。検出部14aは、まず、記憶部13から、3次元CADデータ13aを取得する。続いて、検出部14aは、3次元CADデータ13aから親部品と子部品との拘束関係を検索する。図3Aの例では、検出部14aは、検索の結果、面30と面32とが同一平面上であることを示す「面一致」という拘束関係を得ることができる。また、図3Aの例では、検出部14aは、検索の結果、線41と線43とが、子部品21が駆動する場合の同一の駆動軸であることを示す「軸一致」という拘束関係を得ることができる。また、図3Dの例では、検出部14aは、検索の結果、面34と面37とが同一平面上であることを示す「面一致」という拘束関係を得ることができる。また、図3Dの例では、検出部14aは、検索の結果、線44と線47とが、子部品26が駆動する場合の同一の駆動軸であることを示す「軸一致」という拘束関係を得ることができる。
【0031】
そして、検出部14aは、検索の結果、拘束関係が得られたか否かを判定する。拘束関係が得られた場合には、検出部14aは、拘束関係がある親部品と子部品との全てのペアのそれぞれに対して、下記の処理を行う。すなわち、検出部14aは、まず、親部品の面と子部品との面とが「面一致」という拘束関係を有するか否かを判定する。判定の結果、「面一致」という拘束関係を有する場合には、検出部14aは、親部品の線と子部品の線とが「軸一致」という拘束関係を有するか否かを判定する。判定の結果、「軸一致」という拘束関係を有する場合には、検出部14aは、次のような処理を行う。すなわち、検出部14aは、「軸一致」という拘束関係を有する線が示す駆動軸の方向が、「面一致」という拘束関係を有する面と垂直であるか否かを判定する。なお、検出部14aは、許容誤差を加味して、駆動軸の方向が、面と垂直であるか否かを判定することができる。図4の例では、検出部14aは、「軸一致」という拘束関係を有する線41,43が示す駆動軸の方向が、「面一致」という拘束関係を有する面30,32と垂直であると判定する。判定の結果、垂直であると判定した場合には、検出部14aは、「軸一致」という拘束関係を有する線が示す駆動軸を、回転軸として検出する。図4の例では、検出部14aは、線41,43が示す駆動軸を回転軸として検出する。また、判定の結果、垂直であると判定した場合には、検出部14aは、子部品を、「軸一致」という拘束関係を有する線が示す駆動軸を回転軸として、回転軸周りに回転する駆動部品として検出する。図4の例では、検出部14aは、子部品21を、線41,43が示す駆動軸を回転軸として、回転軸周りに回転する駆動部品として検出する。このように、検出部14aは、自動的に、回転軸、回転軸周りに回転する駆動部品を検出することができる。
【0032】
一方、「軸一致」という拘束関係を有する線が示す駆動軸の方向が、「面一致」という拘束関係を有する面と垂直でないと判定した場合、検出部14aは、次のような処理を行う。すなわち、検出部14aは、「軸一致」という拘束関係を有する線が示す駆動軸の方向が、「面一致」という拘束関係を有する面と平行であるか否かを判定する。なお、検出部14aは、許容誤差を加味して、駆動軸の方向が、面と平行であるか否かを判定することができる。図5の例では、検出部14aは、「軸一致」という拘束関係を有する線44,47が示す駆動軸の方向が、「面一致」という拘束関係を有する面34,37と平行であると判定する。判定の結果、平行であると判定した場合には、検出部14aは、「軸一致」という拘束関係を有する線が示す駆動軸を、スライド軸として検出する。図5の例では、検出部14aは、線44,47が示す駆動軸をスライド軸として検出する。また、判定の結果、平行であると判定した場合には、検出部14aは、子部品を、「軸一致」という拘束関係を有する線が示す駆動軸をスライド軸として、スライド軸方向にスライドする駆動部品として検出する。図4の例では、検出部14aは、子部品26を、線44,47が示す駆動軸をスライド軸として、スライド軸方向にスライドする駆動部品として検出する。このように、検出部14aは、自動的に、スライド軸、スライド軸方向にスライドする駆動部品を検出することができる。上述した処理を、検出部14aは、拘束関係がある親部品と子部品との全てのペアのそれぞれに対して行う。
【0033】
生成部14bは、検出部14aにより駆動部品として検出された子部品を所定の条件に従って駆動させた場合の子部品の可動線を生成する。生成部14bは、検出部14aにより駆動部品として検出された子部品を、親部品との干渉が発生しない範囲で駆動させた場合の子部品の可動線を生成する。
【0034】
具体例を挙げて説明する。検出部14aにより、子部品が回転軸周りに回転する駆動部品として検出された場合には、生成部14bは、まず、次のような処理を行う。すなわち、生成部14bは、3次元モデルの正面図、背面図、右側面図、左側面図、上面図、底面図などの各図に対応する面のうち、回転軸と垂直な方向の面を投影面として決定する。なお、生成部14bは、許容誤差を加味して、回転軸と垂直な方向の面を投影面として決定することができる。図6は、実施例1に係る生成装置で実行される処理を説明するための図である。図6の例では、親部品20および子部品21を有する3次元モデルが示されている。図6の例では、生成部14bは、正面51、右側面52、上面53、図示しない背面、図示しない左側面、図示しない底面の6つの面のうち、線41,43が示す回転軸と垂直な方向の上面53を投影面として決定する。なお、図6の例では、生成部14bは、6つの面のうち、線41,43が示す回転軸と垂直な方向の、底面を投影面として決定することもできる。
【0035】
そして、生成部14bは、回転軸から最も遠い子部品上の点を駆動点として検出する。図7は、実施例1に係る生成装置で実行される処理を説明するための図である。図7の例では、先の図4の例に示した子部品21が示されている。図7の例では、生成部14bは、線41,43が示す回転軸から最も遠い子部品21上の点55を駆動点として検出する。
【0036】
続いて、生成部14bは、親部品との干渉が発生するか、または、駆動部品である子部品が1回転するまで、子部品を回転軸周りの所定方向に所定量ずつ回転させる。例えば、生成部14bは、上面から3次元モデルを見た場合に、回転軸の右回りの方向に子部品を5度ずつ回転させる。そして、生成部14bは、子部品を5度回転させるごとに、親部品との干渉が発生したか否か、および、子部品が1回転したか否かを判定する。子部品と親部品とで干渉が発生した場合には、生成部14bは、干渉が発生した位置から、子部品の回転を1つ戻した場合の駆動点の位置、すなわち、回転軸の左回りの方向に子部品を5度戻した場合の駆動点の位置を記憶部13に格納する。図8は、実施例1に係る生成装置で実行される処理を説明するための図である。図8の例では、先の図4の例に示した親部品20および子部品21を有する三次元モデルが示されている。図8の例では、上面から3次元モデルを見た場合に、線41,43が示す回転軸の右回りの方向に子部品21を5度ずつ回転させたときに、箇所56において、子部品21と親部品20との干渉が発生した場合が示されている。図8の例では、生成部14bは、干渉が発生したときの子部品21の位置から、回転軸の左回りの方向に、子部品21の位置を5度戻し、位置を戻した子部品21の駆動点55の位置を記憶部13に格納する。また、親部品と子部品との干渉が発生した場合には、生成部14bは、記憶部13に設けられた図示しないフラグの値を、干渉が発生したことを示す所定値、例えば、「0」に設定する。
【0037】
また、生成部14bは、子部品が1回転したと判定した場合には、1回転したときの駆動点55の位置を記憶部13に格納する。また、生成部14bは、子部品が1回転したと判定した場合には、上述したフラグの値を、子部品が1回転したことを示す所定値、例えば、「1」に設定する。
【0038】
また、生成部14bは、子部品を回転軸周りの所定方向に所定量ずつ回転させた場合に、親部品との干渉が発生した場合には、次のような処理を行う。すなわち、生成部14bは、親部品との干渉が発生するまで、子部品を回転軸周りの、上述した所定方向とは逆方向に所定量ずつ回転させる。例えば、生成部14bは、上面から3次元モデルを見た場合に、回転軸の左回りの方向に子部品を5度ずつ回転させる。そして、生成部14bは、子部品を5度回転させるごとに、親部品との干渉が発生したか否かを判定する。子部品と親部品とで干渉が発生した場合には、生成部14bは、干渉が発生した位置から、子部品の回転を1つ戻した駆動点の位置、すなわち、回転軸の右回りの方向に子部品を5度戻した場合の駆動点の位置を記憶部13に格納する。図9は、実施例1に係る生成装置で実行される処理を説明するための図である。図9の例では、先の図4の例に示した親部品20および子部品21を有する三次元モデルが示されている。図9の例では、上面から3次元モデルを見た場合に、線41,43が示す回転軸の左回りの方向に子部品21を5度ずつ回転させたときに、箇所57において、子部品21と親部品20との干渉が発生した場合が示されている。図9の例では、生成部14bは、干渉が発生したときの子部品21の位置から、回転軸の右回りの方向に、子部品21の位置を5度戻し、位置を戻した子部品21の駆動点55の位置を記憶部13に格納する。
【0039】
そして、生成部14bは、投影面として決定した全ての面について、下記の処理を行う。すなわち、生成部14bは、まず、投影面として決定した面と、回転軸との交点を円の中心として決定する。そして、生成部14bは、上述したフラグの値を取得する。続いて、取得したフラグの値が、干渉が発生したことを示す所定値である場合には、生成部14bは、記憶部13に記憶された駆動点55の2つの位置を取得し、取得した2つの位置を投影面として決定した面の図面に投影する。図10Aおよび図10Bは、実施例1に係る生成装置で実行される処理を説明するための図である。図10Aおよび図10Bの例では、先の図6に示した3次元モデル、および、投影面として決定された上面53が示されている。図10Aの例では、生成部14bは、上面53と、線41,43が示す回転軸との交点58を円の中心として決定する。また、図10Aの例では、生成部14bは、記憶部13に記憶された駆動点55の2つの位置59,60を上面53の上面図に投影する。図10Aの例では、位置59,60が投影された上面53の上面図の点61,62が示されている。
【0040】
そして、生成部14bは、円の中心として決定された点を円の中心として、図面に投影した2つの点をそれぞれ始点と終点とする円弧を図面に描画することにより、可動線を生成する。図10Bの例では、点58を円の中心として、上面図に投影した2つの点61,62をそれぞれ始点と終点とする円弧63を上面図に描画することにより、可動線63を生成する。
【0041】
一方、取得したフラグの値が、1回転したことを示す所定値である場合には、生成部14bは、記憶部13に記憶された駆動点55の1つの位置を取得し、取得した1つの位置を投影面として決定した面の図面に投影する。そして、生成部14bは、円の中心として決定された点を円の中心として、図面に投影した1つの点と円の中心とを半径とする円を図面に描画することにより、可動線を生成する。生成部14bは、投影面として決定した全ての面について、上述した処理を行う。このように、生成部14bは、駆動部品を可動可能な範囲で可動させた場合の可動線を生成する。したがって、生成部14bによれば、簡易に可動線を生成することができる。
【0042】
その後、生成部14bは、生成された可動線を含む図面の画像13bを記憶部13に格納する。
【0043】
また、検出部14aにより、子部品がスライド軸方向にスライドする駆動部品として検出された場合には、生成部14bは、まず、次のような処理を行う。すなわち、生成部14bは、3次元モデルの正面図、背面図、右側面図、左側面図、上面図、底面図などの各図に対応する面のうち、スライド軸と垂直な方向の面以外の面を投影面として決定する。図11は、実施例1に係る生成装置で実行される処理を説明するための図である。図11の例では、親部品25および子部品26を有する3次元モデルが示されている。図11の例では、生成部14bは、正面51、右側面52、上面53、背面、左側面、底面の6つの面のうち、線44,47が示すスライド軸と垂直な方向の右側面52および左側面以外の正面51、上面53などを投影面として決定する。なお、図11の例では、生成部14bは、6つの面のうち、底面や背面を投影面として決定することもできる。
【0044】
そして、生成部14bは、子部品のスライド軸方向の両端の点のうち少なくとも1つの点を駆動点として検出する。図12は、実施例1に係る生成装置で実行される処理を説明するための図である。図12の例では、先の図5の例に示した子部品26が示されている。図12の例では、生成部14bは、線44,47が示すスライド軸から最も遠い子部品26上のスライド軸方向の両端の点64,65のうち少なくとも1つの点を駆動点として検出する。
【0045】
続いて、生成部14bは、親部品との干渉が発生するか、または、投影面として決定した面に駆動点を投影した点が、投影面として決定した面に対応する図の領域を超えるまで、子部品をスライド軸方向に、所定量ずつスライドさせる。例えば、生成部14bは、スライド軸の一方の方向を正方向、他の方向を負方向とした場合に、正方向に子部品を1cmずつスライドさせる。そして、生成部14bは、子部品を1cmスライドさせるごとに、親部品との干渉が発生したか否か、および、投影面として決定した面に駆動点を投影した点が、投影面として決定した面に対応する図の領域を超えたか否かを判定する。子部品と親部品とで干渉が発生した場合には、生成部14bは、干渉が発生した位置から、子部品のスライドを1つ戻した場合の駆動点の位置、すなわち、負方向に子部品を1cm戻した場合の駆動点の位置を記憶部13に格納する。図13は、実施例1に係る生成装置で実行される処理を説明するための図である。図13の例では、先の図5の例に示した親部品25および子部品26を有する三次元モデルが示されている。図13の例では、スライド軸の正方向に子部品26を1cmずつスライドさせたときに、箇所66において、子部品26と親部品25との干渉が発生した場合が示されている。図13の例では、生成部14bは、干渉が発生したときの子部品26の位置から、スライド軸の負方向に、子部品26の位置を1cm戻し、位置を戻した子部品26の駆動点65の位置を記憶部13に格納する。なお、図13の例では、生成部14bが、図12の例における両端の点64,65のうち点65を駆動点として検出した場合が示されている。
【0046】
また、生成部14bは、投影面として決定した面に駆動点を投影した点が、投影面として決定した面に対応する図の領域を超えたと判定した場合には、領域を超えたときの子部品の位置を、負方向に1cm戻した場合の駆動点の位置を記憶部13に格納する。
【0047】
また、生成部14bは、子部品をスライド軸の正方向に所定量ずつスライドさせた場合に、親部品との干渉が発生した場合、投影面として決定した面に駆動点を投影した点が、投影面として決定した面に対応する図の領域を超えた場合には、次のような処理を行う。すなわち、生成部14bは、親部品との干渉が発生するか、または、投影面として決定した面に駆動点を投影した点が、投影面として決定した面に対応する図の領域を超えるまで、子部品をスライド軸の負方向に所定量ずつスライドさせる。例えば、生成部14bは、スライド軸の負方向に子部品を1cmずつスライドさせる。そして、生成部14bは、子部品を1cmスライドさせるごとに、親部品との干渉が発生したか否か、および、投影面として決定した面に駆動点を投影した点が、投影面として決定した面に対応する図の領域を超えたか否かを判定する。子部品と親部品とで干渉が発生した場合には、生成部14bは、干渉が発生した位置から、子部品のスライドを1つ戻した駆動点の位置、すなわち、スライド軸の正方向に子部品を1cm戻した場合の駆動点の位置を記憶部13に格納する。また、投影面として決定した面に駆動点を投影した点が、投影面として決定した面に対応する図の領域を超えた場合には、生成部14bは、次のような処理を行う。すなわち、生成部14bは、領域を超えた位置から、子部品のスライドを1つ戻した場合の駆動点の位置を記憶部13に格納する。図14は、実施例1に係る生成装置で実行される処理を説明するための図である。図14の例では、先の図5の例に示した親部品25および子部品26を有する三次元モデルが示されている。図14の例では、線44,47が示すスライド軸の負方向に子部品26を1cmずつスライドさせたときに、箇所67において、子部品26と親部品25との干渉が発生した場合が示されている。図14の例では、生成部14bは、干渉が発生したときの子部品26の位置から、スライド軸の正方向に、子部品26の位置を1cm戻し、位置を戻した子部品26の駆動点65の位置を記憶部13に格納する。
【0048】
そして、生成部14bは、記憶部13に記憶された駆動点65の2つの位置を取得し、取得した2つの位置を投影面として決定した面の図面に投影する。図15A、図15Bおよび図15Cは、実施例1に係る生成装置で実行される処理を説明するための図である。図15A、図15Bおよび図15Cの例では、先の図11に示した3次元モデル、および、投影面として決定された正面51、上面53が示されている。図15Aの例では、生成部14bは、記憶部13に記憶された駆動点65の2つの位置70,71を上面53の上面図および正面51の正面図に投影する。図15Aの例では、位置70,71が投影された正面51の正面図の点72,73が示されている。また、図15Aの例では、位置70,71が投影された上面53の上面図の点74,75が示されている。
【0049】
そして、生成部14bは、図面に投影した2つの点をそれぞれ始点と終点とする矢印の線分を図面に描画することにより、可動線を生成する。図15Bの例では、上面図に投影した2つの点75,74をそれぞれ始点と終点とする矢印の線分76を上面図に描画することにより、可動線76を生成する。図15Cの例では、正面図に投影した2つの点73,72をそれぞれ始点と終点とする矢印の線分77を正面図に描画することにより、可動線77を生成する。生成部14bは、投影面として決定した全ての面について、上述した処理を行う。このように、生成部14bは、駆動部品を可動可能な範囲で可動させた場合の可動線を生成する。したがって、生成部14bによれば、簡易に可動線を生成することができる。
【0050】
その後、生成部14bは、生成された可動線を含む図面の画像13bを記憶部13に格納する。
【0051】
表示制御部14cは、表示部12の表示内容を制御する。例えば、表示制御部14cは、入力部11から可動線を含む図面を表示させる指示を受け付けると、記憶部13から画像13bを取得し、取得した画像13bを表示するように表示部12を制御する。
【0052】
制御部14は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。
【0053】
[処理の流れ]
次に、本実施例に係る生成装置10の処理の流れを説明する。図16は、実施例1に係る生成処理の手順を示すフローチャートである。生成処理が実行されるタイミングの一例としては、入力部11を介して、ユーザから生成処理を実行する指示を制御部14が受け付けた場合などが挙げられる。
【0054】
図16に示すように、検出部14aは、記憶部13から、3次元CADデータ13aを取得する(ステップS101)。続いて、検出部14aは、3次元CADデータ13aから親部品と子部品との拘束関係を検索する(ステップS102)。
【0055】
そして、検出部14aは、検索の結果、拘束関係が得られたか否かを判定する(ステップS103)。拘束関係が得られなかった場合(ステップS103否定)には、処理を終了する。一方、拘束関係が得られた場合(ステップS103肯定)には、検出部14aは、拘束関係がある親部品と子部品との全てのペアのうち、下記のステップS105で未選択のペアがあるか否かを判定する(ステップS104)。
【0056】
未選択のペアがない場合(ステップS104否定)には、処理を終了する。未選択のペアがある場合(ステップS104肯定)には、検出部14aは、未選択のペアを処理対象のペアとして選択する(ステップS105)。検出部14aは、親部品の面と子部品との面とが「面一致」という拘束関係を有するか否かを判定する(ステップS106)。「面一致」という拘束関係を有しない場合(ステップS106否定)には、ステップS104へ戻る。一方、「面一致」という拘束関係を有する場合(ステップS106肯定)には、検出部14aは、親部品の線と子部品の線とが「軸一致」という拘束関係を有するか否かを判定する(ステップS107)。
【0057】
「軸一致」という拘束関係を有しない場合(ステップS107否定)には、ステップS104へ戻る。一方、「軸一致」という拘束関係を有する場合(ステップS107肯定)には、検出部14aは、次のような処理を行う。すなわち、検出部14aは、「軸一致」という拘束関係を有する線が示す駆動軸の方向が、「面一致」という拘束関係を有する面と垂直であるか否かを判定する(ステップS108)。
【0058】
垂直であると判定した場合(ステップS108肯定)には、検出部14aは、「軸一致」という拘束関係を有する線が示す駆動軸を、回転軸として検出する(ステップS109)。そして、検出部14aは、子部品を、「軸一致」という拘束関係を有する線が示す駆動軸を回転軸として、回転軸周りに回転する駆動部品として検出する(ステップS110)。続いて、生成部14bは、第一の可動線生成処理を実行し(ステップS111)、ステップS104へ戻る。第一の可動線生成処理については、後述する。
【0059】
一方、垂直でないと判定した場合(ステップS108否定)には、検出部14aは、次のような処理を行う。すなわち、検出部14aは、「軸一致」という拘束関係を有する線が示す駆動軸の方向が、「面一致」という拘束関係を有する面と平行であるか否かを判定する(ステップS112)。平行であると判定した場合(ステップS112肯定)には、検出部14aは、「軸一致」という拘束関係を有する線が示す駆動軸を、スライド軸として検出する(ステップS113)。そして、検出部14aは、子部品を、「軸一致」という拘束関係を有する線が示す駆動軸をスライド軸として、スライド軸方向にスライドする駆動部品として検出する(ステップS114)。続いて、生成部14bは、第二の可動線生成処理を実行し(ステップS115)、ステップS104へ戻る。第二の可動線生成処理については、後述する。
【0060】
図17は、実施例1に係る第一の可動線生成処理の手順を示すフローチャートである。
【0061】
図17に示すように、生成部14bは、3次元モデルの正面図、背面図、右側面図、左側面図、上面図、底面図などの各図に対応する面のうち、回転軸と垂直な方向の面を投影面として決定する(ステップS201)。
【0062】
そして、生成部14bは、回転軸から最も遠い子部品上の点を駆動点として検出する(ステップS202)。
【0063】
続いて、生成部14bは、子部品を回転軸周りの所定方向に所定量回転させる(ステップS203)。そして、生成部14bは、子部品と親部品とで干渉が発生したか否かを判定する(ステップS204)。干渉が発生しない場合(ステップS204否定)には、生成部14bは、子部品が1回転したか否かを判定する(ステップS205)。一回転していない場合(ステップS205否定)には、ステップS203へ戻る。
【0064】
一方、干渉が発生した場合(ステップS204肯定)には、生成部14bは、フラグの値を干渉が発生したことを示す所定値、例えば、「0」に設定する(ステップS206)。そして、生成部14bは、干渉が発生した位置から、子部品の回転を1つ戻した場合の駆動点の位置を記憶部13に格納し(ステップS207)、ステップS208へ進む。
【0065】
また、子部品が1回転した場合(ステップS205肯定)には、生成部14bは、上述したフラグの値を、子部品が1回転したことを示す所定値、例えば、「1」に設定する(ステップS211)。そして、生成部14aは、1回転したときの駆動点の位置を記憶部13に格納し(ステップS212)、ステップS213へ進む。
【0066】
また、生成部14bは、子部品を回転軸周りの、上述した所定方向とは逆方向に所定量回転させる(ステップS208)。そして、生成部14bは、子部品と親部品とで干渉が発生したか否かを判定する(ステップS209)。干渉が発生しない場合(ステップS209否定)には、ステップS208へ戻る。一方、干渉が発生した場合(ステップS209肯定)には、生成部14bは、干渉が発生した位置から、子部品の回転を1つ戻した場合の駆動点の位置を記憶部13に格納する(ステップS210)。
【0067】
そして、生成部14bは、ステップS201で投影面として決定された面のうち、下記のステップS214で未選択の面があるか否かを判定する(ステップS213)。
【0068】
未選択の面がない場合(ステップS213否定)には、生成部14bは、処理結果を制御部14の内部メモリに格納し、リターンする。未選択の面がある場合(ステップS213肯定)には、生成部14bは、未選択の面を処理対象の面として1つ選択する(ステップS214)。生成部14bは、投影面として決定した面と、回転軸との交点を円の中心として決定する(ステップS215)。そして、生成部14bは、上述したフラグの値を取得する(ステップS216)。続いて、生成部14bは、取得したフラグの値が、干渉が発生したことを示す所定値、例えば、「0」であるか否かを判定する(ステップS217)。取得したフラグの値が、干渉が発生したことを示す所定値である場合(ステップS217肯定)には、生成部14bは、記憶部13に記憶された駆動点の2つの位置を取得し、取得した2つの位置を投影面として決定した面の図面に投影する(ステップS218)。
【0069】
そして、生成部14bは、円の中心として決定された点を円の中心として、図面に投影した2つの点をそれぞれ始点と終点とする円弧を図面に描画することにより、可動線を生成する(ステップS219)。その後、生成部14bは、生成された可動線を含む図面の画像13bを記憶部13に格納し(ステップS220)、ステップS213へ戻る。
【0070】
一方、取得したフラグの値が、干渉が発生したことを示す所定値でない場合、すなわち、子部品が1回転したことを示す所定値である場合(ステップS217否定)には、生成部14bは、次のような処理を行う。すなわち、生成部14bは、記憶部13に記憶された駆動点の1つの位置を取得し、取得した1つの位置を投影面として決定した面の図面に投影する(ステップS221)。そして、生成部14bは、円の中心として決定された点を円の中心として、図面に投影した1つの点と円の中心とを半径とする円を図面に描画することにより、可動線を生成する(ステップS222)。その後、生成部14bは、生成された可動線を含む図面の画像13bを記憶部13に格納し(ステップS223)、ステップS213へ戻る。
【0071】
図18は、実施例1に係る第二の可動線生成処理の手順を示すフローチャートである。
【0072】
図18に示すように、生成部14bは、3次元モデルの正面図、背面図、右側面図、左側面図、上面図、底面図などの各図に対応する面のうち、スライド軸と垂直な方向の面以外の面を投影面として決定する(ステップS301)。そして、生成部14bは、子部品のスライド軸方向の両端の点のうち少なくとも1つの点を駆動点として検出する(ステップS302)。続いて、生成部14bは、スライド軸の一方の方向を正方向、他の方向を負方向とした場合に、正方向に子部品を所定量スライドさせる(ステップS303)。
【0073】
そして、生成部14bは、子部品と親部品とで干渉が発生したか否かを判定する(ステップS304)。干渉が発生しない場合(ステップS304否定)には、生成部14bは、投影面として決定した面に駆動点を投影した点が、投影面として決定した面に対応する図の領域を超えたか否かを判定する(ステップS305)。超えていない場合(ステップS305否定)には、ステップS303へ戻る。
【0074】
一方、干渉が発生した場合(ステップS304肯定)には、生成部14bは、干渉が発生した位置から、子部品のスライドを1つ戻した場合の駆動点の位置を記憶部13に格納し(ステップS306)、ステップS308へ進む。
【0075】
また、超えた場合(ステップS305肯定)には、生成部14bは、駆動点が図の領域を超えた位置から、子部品のスライドを1つ戻した場合の駆動点の位置を記憶部13に格納する(ステップS307)。
【0076】
また、生成部14bは、スライド軸の負方向に子部品を所定量スライドさせる(ステップS308)。
【0077】
そして、生成部14bは、子部品と親部品とで干渉が発生したか否かを判定する(ステップS309)。干渉が発生しない場合(ステップS309否定)には、生成部14bは、投影面として決定した面に駆動点を投影した点が、投影面として決定した面に対応する図の領域を超えたか否かを判定する(ステップS310)。超えていない場合(ステップS310否定)には、ステップS308へ戻る。
【0078】
一方、干渉が発生した場合(ステップS309肯定)には、生成部14bは、干渉が発生した位置から、子部品のスライドを1つ戻した場合の駆動点の位置を記憶部13に格納し(ステップS311)、ステップS313へ進む。
【0079】
また、超えた場合(ステップS310肯定)には、生成部14bは、駆動点が図の領域を超えた位置から、子部品のスライドを1つ戻した場合の駆動点の位置を記憶部13に格納する(ステップS312)。
【0080】
そして、生成部14bは、ステップS301で投影面として決定された面のうち、下記のステップS314で未選択の面があるか否かを判定する(ステップS313)。
【0081】
未選択の面がない場合(ステップS313否定)には、生成部14bは、処理結果を制御部14の内部メモリに格納し、リターンする。未選択の面がある場合(ステップS313肯定)には、生成部14bは、未選択の面を処理対象の面として1つ選択する(ステップS314)。
【0082】
そして、生成部14bは、記憶部13に記憶された駆動点の2つの位置を取得し、取得した2つの位置を投影面として決定した面の図面に投影する(ステップS315)。
【0083】
そして、生成部14bは、図面に投影した2つの点をそれぞれ始点と終点とする矢印の線分を図面に描画することにより、可動線を生成する(ステップS316)。その後、生成部14bは、生成された可動線を含む図面の画像13bを記憶部13に格納し(ステップS317)、ステップS313へ戻る。
【0084】
[実施例1の効果]
上述してきたように、本実施例に係る生成装置10は、親部品、子部品、および親部品と子部品との拘束関係に関する情報を記憶する。本実施例に係る生成装置10は、記憶部13に記憶された記憶内容に基づいて、親部品に対して駆動する子部品を検出する。本実施例に係る生成装置10は、検出された子部品を、所定の条件、例えば、親部品との干渉が発生しない範囲、または、駆動点が投影図を超えない範囲で駆動させた場合の親部品の可動線を生成する。このように、本実施例に係る生成装置10は、自動的に駆動部品を検出し、駆動部品を可動可能な範囲で可動させた場合の可動線を生成する。したがって、本実施例に係る生成装置10によれば、簡易に可動線を生成することができる。
【0085】
また、本実施例に係る生成装置10は、拘束関係に基づいて、親部品の面と子部品の面とが同一平面上に存在し、かつ、親部品の線と子部品の線とが同一の駆動軸を示す場合には、次のような処理を行う。すなわち、本実施例に係る生成装置10は、駆動軸が、平面と垂直である場合には、子部品を、駆動軸を回転軸として回転する駆動部品として検出する。また、本実施例に係る生成装置10は、駆動軸を回転軸として回転する駆動部品として検出された子部品を、回転軸周りに回転させた場合の子部品の可動線を生成する。したがって、本実施例に係る生成装置10によれば、回転軸周りを回転する駆動部品の可動線を簡易に生成することができる。
【0086】
また、本実施例に係る生成装置10は、拘束関係に基づいて、親部品の面と子部品の面とが同一平面上に存在し、かつ、親部品の線と子部品の線とが同一の軸を示す場合には、次のような処理を行う。すなわち、本実施例に係る生成装置10は、さらに、駆動軸が、平面と平行である場合には、子部品を、駆動軸をスライド軸としてスライドする駆動部品として検出する。また、本実施例に係る生成装置10は、駆動軸をスライド軸としてスライドする駆動部品として検出された子部品を、スライド軸の方向にスライドさせた場合の子部品の可動線を生成するしたがって、本実施例に係る生成装置10によれば、スライド軸をスライドする駆動部品の可動線を簡易に生成することができる。
【0087】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【0088】
たとえば、実施例1において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。また、本実施例において説明した各処理のうち、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。例えば、図17に示すステップS220、ステップS223、図18に示すステップS317において、それぞれ、画像を記憶部13に格納する処理をユーザが入力部11を介して記憶部13に格納してもよい。
【0089】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理を任意に細かくわけたり、あるいはまとめたりすることができる。また、ステップを省略することもできる。例えば、図16に示すステップS106、S107をまとめて1つの処理にしてもよい。
【0090】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理の順番を変更できる。例えば、図16に示すステップS106の処理を行う前に、ステップS107の処理を行うこともできる。
【0091】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図1に示す生成部14bと、表示制御部14cとが統合されてもよい。
【実施例2】
【0092】
[生成プログラム]
また、上記の実施例で説明した生成装置10の各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図19を用いて、上記の実施例で説明した生成装置10と同様の機能を有する生成プログラムを実行するコンピュータの一例を説明する。図19は、生成プログラムを実行するコンピュータを示す図である。
【0093】
図19に示すように、実施例2におけるコンピュータ300は、CPU(Central Processing Unit)310、ROM(Read Only Memory)320、HDD(Hard Disk Drive)330、RAM(Random Access Memory)340とを有する。これら300〜340の各部は、バス350を介して接続される。
【0094】
ROM320には、上記の実施例1で示す検出部14aと、生成部14bと同様の機能を発揮する生成プログラム320aが予め記憶される。なお、生成プログラム320aについては、適宜分離しても良い。例えば、検出部14aと同様の機能を発揮するプログラムと、生成部14bと同様の機能を発揮するプログラムとに分離しても良い。
【0095】
そして、CPU310が、生成プログラム320aをROM320から読み出して実行する。
【0096】
そして、HDD330には、3次元CADデータが設けられる。この3次元CADデータは、図1に示した3次元CADデータ13aに対応する。
【0097】
そして、CPU310は、3次元CADデータを読み出してRAM340に格納する。さらに、CPU310は、RAM340に格納された3次元CADデータを用いて、生成プログラム320aを実行する。なお、RAM340に格納される各データは、常に全てのデータがRAM340に格納される必要はなく、処理に必要なデータのみがRAM340に格納されれば良い。
【0098】
なお、上記した生成プログラムについては、必ずしも最初からROM320に記憶させておく必要はない。
【0099】
例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。
【0100】
さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ300に接続される「他のコンピュータ(またはサーバ)」などにプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。
【0101】
以上説明した実施形態及びその変形例に関し、更に以下の付記を開示する。
【0102】
(付記1)第一の部品、第二の部品、および第一の部品と第二の部品との拘束関係に関する情報を記憶する記憶部と、
前記記憶部に記憶された拘束関係に基づいて、前記第一の部品に対して駆動する第二の部品を検出する検出部と、
前記検出部により検出された第二の部品を所定の条件に従って駆動させた場合の該第二の部品の可動線を生成する生成部と、
を有することを特徴とする生成装置。
【0103】
(付記2)前記検出部は、前記拘束関係に基づいて、前記第一の部品の面と前記第二の部品の面とが同一平面上に存在し、かつ、該第一の部品の線と該第二の部品の線とが同一の軸を示すとともに、該軸が、前記平面と垂直である場合には、該第二の部品を、該軸を回転軸として回転する駆動部品として検出し、
前記生成部は、前記検出部により前記軸を回転軸として回転する駆動部品として検出された第二の部品を、前記回転軸周りに回転させた場合の該第二の部品の可動線を生成する
ことを特徴とする付記1に記載の生成装置。
【0104】
(付記3)前記検出部は、前記拘束関係に基づいて、前記第一の部品の面と前記第二の部品の面とが同一平面上に存在し、かつ、該第一の部品の線と該第二の部品の線とが同一の軸を示すとともに、該軸が、前記平面と平行である場合には、該第二の部品を、該軸をスライド軸としてスライドする駆動部品として検出し、
前記生成部は、前記検出部により前記軸をスライド軸としてスライドする駆動部品として検出された第二の部品を、前記スライド軸の方向にスライドさせた場合の該第二の部品の可動線を生成する
ことを特徴とする付記1または2に記載の生成装置。
【0105】
(付記4)前記生成部は、前記検出部により検出された第二の部品を、前記第一の部品との干渉が発生しない範囲で駆動させた場合の該第二の部品の可動線を生成する
ことを特徴とする付記1、2、3のいずれか1つに記載の生成装置。
【0106】
(付記5)コンピュータに、
第一の部品、第二の部品、および第一の部品と第二の部品との拘束関係に関する情報を記憶する記憶部に記憶された拘束関係に基づいて、前記第一の部品に対して駆動する第二の部品を検出し、
検出された第二の部品を所定の条件に従って駆動させた場合の該第二の部品の可動線を生成する
各処理を実行させるための生成プログラム。
【0107】
(付記6)前記第二の部品を検出する処理は、前記拘束関係に基づいて、前記第一の部品の面と前記第二の部品の面とが同一平面上に存在し、かつ、該第一の部品の線と該第二の部品の線とが同一の軸を示すとともに、該軸が、前記平面と垂直である場合には、該第二の部品を、該軸を回転軸として回転する駆動部品として検出し、
前記可動線を生成する処理は、前記軸を回転軸として回転する駆動部品として検出された第二の部品を、前記回転軸周りに回転させた場合の該第二の部品の可動線を生成する
ことを特徴とする付記5に記載の生成プログラム。
【0108】
(付記7)前記第二の部品を検出する処理は、前記拘束関係に基づいて、前記第一の部品の面と前記第二の部品の面とが同一平面上に存在し、かつ、該第一の部品の線と該第二の部品の線とが同一の軸を示すとともに、該軸が、前記平面と平行である場合には、該第二の部品を、該軸をスライド軸としてスライドする駆動部品として検出し、
前記可動線を生成する処理は、前記軸をスライド軸としてスライドする駆動部品として検出された第二の部品を、前記スライド軸の方向にスライドさせた場合の該第二の部品の可動線を生成する
ことを特徴とする付記5または6に記載の生成プログラム。
【0109】
(付記8)前記可動線を生成する処理は、前記検出された第二の部品を、前記第一の部品との干渉が発生しない範囲で駆動させた場合の該第二の部品の可動線を生成する
ことを特徴とする付記5、6、7のいずれか1つに記載の生成プログラム。
【0110】
(付記9)コンピュータが実行する生成方法であって、
第一の部品、第二の部品、および第一の部品と第二の部品との拘束関係に関する情報を記憶する記憶部に記憶された拘束関係に基づいて、前記第一の部品に対して駆動する第二の部品を検出し、
検出された第二の部品を所定の条件に従って駆動させた場合の該第二の部品の可動線を生成する
ことを特徴とする生成方法。
【0111】
(付記10)前記第二の部品を検出する処理は、前記拘束関係に基づいて、前記第一の部品の面と前記第二の部品の面とが同一平面上に存在し、かつ、該第一の部品の線と該第二の部品の線とが同一の軸を示すとともに、該軸が、前記平面と垂直である場合には、該第二の部品を、該軸を回転軸として回転する駆動部品として検出し、
前記可動線を生成する処理は、前記軸を回転軸として回転する駆動部品として検出された第二の部品を、前記回転軸周りに回転させた場合の該第二の部品の可動線を生成する
ことを特徴とする付記9に記載の生成方法。
【0112】
(付記11)前記第二の部品を検出する処理は、前記拘束関係に基づいて、前記第一の部品の面と前記第二の部品の面とが同一平面上に存在し、かつ、該第一の部品の線と該第二の部品の線とが同一の軸を示すとともに、該軸が、前記平面と平行である場合には、該第二の部品を、該軸をスライド軸としてスライドする駆動部品として検出し、
前記可動線を生成する処理は、前記軸をスライド軸としてスライドする駆動部品として検出された第二の部品を、前記スライド軸の方向にスライドさせた場合の該第二の部品の可動線を生成する
ことを特徴とする付記9または10に記載の生成方法。
【0113】
(付記12)前記可動線を生成する処理は、前記検出された第二の部品を、前記第一の部品との干渉が発生しない範囲で駆動させた場合の該第二の部品の可動線を生成する
ことを特徴とする付記9、10、11のいずれか1つに記載の生成方法。
【符号の説明】
【0114】
10 生成装置
13 記憶部
13a 3次元CADデータ
13b 画像
14 制御部
14a 検出部
14b 生成部

【特許請求の範囲】
【請求項1】
第一の部品、第二の部品、および第一の部品と第二の部品との拘束関係に関する情報を記憶する記憶部と、
前記記憶部に記憶された拘束関係に基づいて、前記第一の部品に対して駆動する第二の部品を検出する検出部と、
前記検出部により検出された第二の部品を所定の条件に従って駆動させた場合の該第二の部品の可動線を生成する生成部と、
を有することを特徴とする生成装置。
【請求項2】
前記検出部は、前記拘束関係に基づいて、前記第一の部品の面と前記第二の部品の面とが同一平面上に存在し、かつ、該第一の部品の線と該第二の部品の線とが同一の軸を示すとともに、該軸が、前記平面と垂直である場合には、該第二の部品を、該軸を回転軸として回転する駆動部品として検出し、
前記生成部は、前記検出部により前記軸を回転軸として回転する駆動部品として検出された第二の部品を、前記回転軸周りに回転させた場合の該第二の部品の可動線を生成する
ことを特徴とする請求項1に記載の生成装置。
【請求項3】
前記検出部は、前記拘束関係に基づいて、前記第一の部品の面と前記第二の部品の面とが同一平面上に存在し、かつ、該第一の部品の線と該第二の部品の線とが同一の軸を示すとともに、該軸が、前記平面と平行である場合には、該第二の部品を、該軸をスライド軸としてスライドする駆動部品として検出し、
前記生成部は、前記検出部により前記軸をスライド軸としてスライドする駆動部品として検出された第二の部品を、前記スライド軸の方向にスライドさせた場合の該第二の部品の可動線を生成する
ことを特徴とする請求項1または2に記載の生成装置。
【請求項4】
前記生成部は、前記検出部により検出された第二の部品を、前記第一の部品との干渉が発生しない範囲で駆動させた場合の該第二の部品の可動線を生成する
ことを特徴とする請求項1、2、3のいずれか1つに記載の生成装置。
【請求項5】
コンピュータに、
第一の部品、第二の部品、および第一の部品と第二の部品との拘束関係に関する情報を記憶する記憶部に記憶された拘束関係に基づいて、前記第一の部品に対して駆動する第二の部品を検出し、
検出された第二の部品を所定の条件に従って駆動させた場合の該第二の部品の可動線を生成する
各処理を実行させるための生成プログラム。
【請求項6】
コンピュータが実行する生成方法であって、
第一の部品、第二の部品、および第一の部品と第二の部品との拘束関係に関する情報を記憶する記憶部に記憶された拘束関係に基づいて、前記第一の部品に対して駆動する駆動部品を検出し、
検出された第二の部品を所定の条件に従って駆動させた場合の該第二の部品の可動線を生成する
ことを特徴とする生成方法。

【図1】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図3C】
image rotate

【図3D】
image rotate

【図3E】
image rotate

【図3F】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10A】
image rotate

【図10B】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15A】
image rotate

【図15B】
image rotate

【図15C】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2013−45254(P2013−45254A)
【公開日】平成25年3月4日(2013.3.4)
【国際特許分類】
【出願番号】特願2011−181942(P2011−181942)
【出願日】平成23年8月23日(2011.8.23)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】