以下に、本発明の実施の形態に係る図形選択装置、図形選択方法および図形選択プログラムを図面に基づいて詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、実施の形態1に係る図形選択装置の構成を示すブロック図である。図形選択装置101は、図面データから選択候補となる図形を生成するコンピュータである。図形選択装置101が生成する図形は、設計システム、製造システムまたは制御システムでの図形編集に用いられる。設計システムの一例は、CAD(Computer Aided Design)である。また、製造システムの一例は、CAM(Computer Aided Manufacturing)システムである。また、制御システムの一例は、NC(Numerical Control)の自動プログラミングシステムである。なお、図形選択装置101が生成した図形は、NCプログラムの生成に用いられてもよい。
図形選択装置101は、表示装置21および入力装置22に接続されている。表示装置21は、図面データで示される物体の形状を表示する。入力装置22は、図形選択装置101への指示を受付けて図形選択装置101に入力する。表示装置21の一例は、液晶モニタであり、入力装置22の一例は、マウスである。
図形選択装置101は、図面データ入力部1、図面データ記憶部2、図形条件記憶部3およびセグメント条件記憶部4を備えている。また、図形選択装置101は、図形条件判定部5、セグメント条件判定部6、目的図形候補生成部7、目的図形候補記憶部8、目的図形選択部9を備えている。また、図形選択装置101は、プリセット条件記憶部11、プリセット条件設定部12、条件編集部13、図面情報指定部14および条件自動更新部31を備えている。
図面データ入力部1は、図面データを読み込んで図面データ記憶部2に入力する。具体的には、図面データ入力部1は、線で表現されたセグメントが組み合わされて構成された選択元の図形の図面データを図面データ記憶部2に入力する。
図面データ記憶部2は、図面データ入力部1からの図面データを記憶する。本実施の形態の図面データは、加工物または加工工具の形状を表したものである。具体的には、図面データは、図面を構成するセグメントの形状と位置、色または線種といったセグメントの属性情報、ハッチングの範囲およびレイヤ情報である。
なお、図面データは、これらの情報に限られず何れの情報であってもよい。本実施の形態では、セグメントの種類が、線分、円弧または円である場合について説明する。図面データ記憶部2に格納された図面データは、目的図形候補生成部7および図面情報指定部14によって読み出される。
図形条件記憶部3は、作業者が選択しようとしている目的図形が満たす必要のある条件である図形条件を記憶する。図形条件は、目的図形の形状の条件であり、編集可能な情報である。図形条件は、プリセット条件記憶部11から読み出されて図形条件記憶部3に格納される。また、図形条件記憶部3内の図形条件は、必要に応じて作業者によって編集される。
図形条件判定部5は、図形条件記憶部3および目的図形候補生成部7に接続されている。図形条件判定部5は、目的図形候補生成部7から目的図形の候補が送られてくると、この目的図形の候補が図形条件記憶部3で記憶されている各図形条件を満たすか否かを判定する。
以下の説明では、目的図形の候補であって、目的図形候補生成部7から図形条件判定部5に送られてくるものを、図形判定候補という。本実施の形態では、図形判定候補が目的図形の第1の候補であり、目的図形候補生成部7が目的図形候補記憶部8に格納する目的図形の候補が目的図形の第2の候補である。換言すると、目的図形の第1の候補のうち、判定結果が合格であったのものが、目的図形の第2の候補である。
図形条件判定部5は、図形判定候補が全ての図形条件を満たす場合には、目的図形候補生成部7に「真」を返す。一方、図形条件判定部5は、図形判定候補が図形条件の何れかを満たさない場合には、目的図形候補生成部7に「偽」を返す。図形条件判定部5が目的図形候補生成部7に返す「真」は、図形判定候補が全ての図形条件を満たすことを示す情報である。また、図形条件判定部5が目的図形候補生成部7に返す「偽」は、図形判定候補が図形条件の何れかを満たさないことを示す情報である。図形条件記憶部3が記憶し、図形条件判定部5が判定する図形条件には複数の種類がある。各図形条件の詳細については後述する。
セグメント条件記憶部4は、作業者が選択しようとしている目的図形を構成する全てのセグメントが満たす必要のある条件であるセグメント条件を記憶する。セグメント条件は、作業者の選択の目的となる目的図形が有するセグメントの条件であり、編集可能な情報である。セグメント条件は、プリセット条件記憶部11から読み出されてセグメント条件記憶部4に格納される。また、セグメント条件記憶部4内のセグメント条件は、必要に応じて作業者によって編集される。
セグメント条件判定部6は、セグメント条件記憶部4および目的図形候補生成部7に接続されている。セグメント条件判定部6は、目的図形候補生成部7からセグメントが送られてくると、このセグメントがセグメント条件記憶部4で記憶されている各セグメント条件を満たすか否かを判定する。
セグメント条件判定部6は、セグメントが全てのセグメント条件を満たす場合には、目的図形候補生成部7に「真」を返す。一方、セグメント条件判定部6は、セグメントが何れかのセグメント条件を満たさない場合には、目的図形候補生成部7に「偽」を返す。セグメント条件判定部6が目的図形候補生成部7に返す「真」は、セグメントが全てのセグメント条件を満たすことを示す情報である。また、セグメント条件判定部6が目的図形候補生成部7に返す「偽」は、セグメントがセグメント条件の何れかを満たさないことを示す情報である。セグメント条件記憶部4が記憶し、セグメント条件判定部6が判定するセグメント条件には複数の種類がある。各セグメント条件の詳細については後述する。
プリセット条件記憶部11は、図形選択が開始される前に、予め種々の図形条件および種々のセグメント条件を記憶しておく。プリセット条件記憶部11が記憶しておく図形条件は、図面データ入力部1が読み込む図面の性質および選択される図形の性質に対応する図形条件を含んでいる。また、プリセット条件記憶部11が記憶しておくセグメント条件は、図面データ入力部1が読み込む図面の性質および選択される図形の性質に対応するセグメント条件を含んでいる。
プリセット条件設定部12は、プリセット条件記憶部11に接続されている。プリセット条件設定部12は、プリセット条件記憶部11に格納されている図形条件を読み出して図形条件記憶部3に設定する。また、プリセット条件設定部12は、プリセット条件記憶部11に格納されているセグメント条件をセグメント条件記憶部4に設定する。
条件編集部13は、表示装置21、入力装置22、図形条件記憶部3、セグメント条件記憶部4および図面情報指定部14に接続されている。条件編集部13は、図形条件記憶部3に設定されている図形条件と、セグメント条件記憶部4に設定されているセグメント条件とを、表示装置21に表示させる。
また、条件編集部13は、入力装置22から入力される作業者の指示に従い、図形条件記憶部3およびセグメント条件記憶部4の内容を書き換える。具体的には、条件編集部13は、入力装置22から入力される作業者の指示に従って、図形条件記憶部3内の図形条件を追加または削除する。また、条件編集部13は、入力装置22から入力される作業者の指示に従って、セグメント条件記憶部4内のセグメント条件を追加または削除する。また、条件編集部13は、パラメータが存在する図形条件またはセグメント条件については、入力装置22から入力される作業者の指示に従って、パラメータを変更してもよい。
図面情報指定部14は、表示装置21、入力装置22、図面データ記憶部2、図形条件記憶部3、セグメント条件記憶部4および条件編集部13に接続されている。図面情報指定部14は、入力装置22から入力される作業者の指示に従い、図面依存条件のパラメータとなる図面の情報を図面データ記憶部2から読み出して条件編集部13へ送る。本実施の形態における図面依存条件は、パラメータを定義する際に図面データ記憶部2に格納されている図面データが必要となる図形条件またはセグメント条件である。従って、図面依存条件のパラメータは、図形条件またはセグメント条件のパラメータであるとも言える。
図面依存条件のパラメータに直接的に利用される図面の情報は、図面データ記憶部2に格納されているレイヤ名またはセグメント番号である。また、図面情報指定部14は、図面データ記憶部2に格納されている図面データと座標系とを対応付けることによって図面データ内のセグメントとの間の位置関係を計算できる点または閉図形を、図面依存条件のパラメータに用いてもよい。本実施の形態では、後述する図形条件16〜18までと、後述するセグメント条件6,7とが、図面依存条件である。
条件編集部13は、図面情報指定部14から送られてくる図面の情報に基づいて、図形条件またはセグメント条件を編集する。条件編集部13は、作業者が図面依存条件の編集を行う際に、図面情報指定部14を呼び出す。図面情報指定部14は、レイヤ指定部15、点指定部16、閉図形指定部17およびセグメント指定部18を有している。
レイヤ指定部15は、図面データ記憶部2に格納されているレイヤの情報を表示装置21に表示させ、作業者が入力装置22を操作することによって指定したレイヤの名称を条件編集部13へ送る。
点指定部16は、図面データ記憶部2に格納されている図面の情報を表示装置21に表示させ、作業者が入力装置22を操作することによって指定した点を条件編集部13へ送る。作業者が指定する点は、図面の座標系で定義された点である。
表示装置21に図面の情報がグラフィカルに表示される場合、作業者はタッチまたはクリックといった操作によって点を指定する。このとき、図面情報指定部14は、図面データ記憶部2に格納されているセグメントの端点を、選択しやすい表示方法で表示装置21に表示させることによって、作業者に容易な操作方法を提供してもよい。この場合、図面情報指定部14は、選択できることが分かりやすくなるように、セグメントの端点を他の図形要素とは異なる形式で表示する。なお、図面の情報が、セグメントの端点の座標値から成るテキストの形式で表示装置21に表示される場合には、作業者は、点の座標値を直接数値で入力してもよい。
閉図形指定部17は、図面データ記憶部2に格納されている図面の情報を表示装置21に表示させ、作業者が入力装置22を操作することによって指定した閉図形を条件編集部13へ送る。作業者が指定する閉図形は、線分または円弧が連続して作図されることで定義される。
表示装置21に図面の情報がグラフィカルに表示される場合、作業者は各線分または円弧の定義に必要な代表点を、タッチまたはクリックといった操作で指定していくことで、閉図形を定義する。
なお、図面の情報が、セグメントの端点の座標値から成るテキストの形式で表示装置21に表示される場合には、作業者は、線分または円弧の定義に必要な代表点の座標値を直接数値で入力していくことで、閉図形を定義してもよい。
セグメント指定部18は、図面データ記憶部2に格納されているセグメントの情報を表示装置21に表示させる。このとき、セグメント指定部18は、図形条件記憶部3に設定されている図形条件およびセグメント条件記憶部4に設定されているセグメント条件を参照し、作業者がセグメントを指定しやすくなるように表示方法を調整する。例えば、セグメント指定部18は、セグメント条件を満たしていないセグメントに対し、セグメントの色を目立たない色に変えて表示させる。作業者は、表示装置21を見て、入力装置22を操作し、セグメントを指定する。セグメント指定部18は、指定されたセグメントのセグメント番号を条件編集部13へ送る。
なお、図面の情報が、セグメントの端点の座標値およびセグメント番号から成るテキストの形式で表示装置21に表示される場合には、作業者は、セグメント番号を入力することでセグメントを指定してもよい。
表示装置21に図面の情報がグラフィカルに表示される場合、セグメント指定部18で指定可能なセグメントの指定方法は複数ある。セグメント指定部18で指定可能な指定方法は、以下の第1〜第6の指定方法である。
(第1の指定方法)
第1の指定方法は、クリックまたはタッチによって単一のセグメントを指定する方法である。
(第2の指定方法)
第2の指定方法は、入力装置22を用いて作図された線分に交差したセグメントを全て指定する方法である。この方法の場合、セグメント指定部18は、図面データ記憶部2に格納されている全てのセグメントについて、作図された線分と交差するか否かの判定を行う。セグメント指定部18は、セグメントの種類が線分である場合、線分と線分との交差判定を行い、セグメントの種類が円弧である場合、円弧と線分との交差判定を行う。そして、セグメント指定部18は、交差していると判定した全てのセグメントを指定されたセグメントとする。
(第3の指定方法)
第3の指定方法は、入力装置22を用いて作図された線分と交差しなかったセグメントを全て指定する方法である。セグメント指定部18は、図面データ記憶部2に格納されている全てのセグメントについて、作図された線分と交差するか否かの判定を行う。セグメント指定部18は、セグメントの種類が線分である場合、線分と線分との交差判定を行い、セグメントの種類が円弧である場合、円弧と線分との交差判定を行う。そして、セグメント指定部18は、交差していないと判定した全てのセグメントを指定されたセグメントとする。
(第4の指定方法)
第4の指定方法は、入力装置22を用いて作図された矩形内に有る全てのセグメントを指定する方法である。セグメント指定部18は、図面データ記憶部2に格納されている全てのセグメントについて、セグメントの全体が矩形内に入っているか否かの判定を行う。そして、セグメント指定部18は、矩形内に入っていると判定した全てのセグメントを指定されたセグメントとする。
(第5の指定方法)
第5の指定方法は、入力装置22を用いて作図された矩形内に無い全てのセグメントを指定する方法である。セグメント指定部18は、図面データ記憶部2に格納されている全てのセグメントについて、セグメントの全体が矩形内に入っているか否かの判定を行う。そして、セグメント指定部18は、矩形内に入っていないと判定した全てのセグメントを指定されたセグメントとする。
(第6の指定方法)
第6の指定方法は、表示装置21の表示範囲内に無い全てのセグメントを指定する方法である。例えば、表示範囲が矩形である場合、セグメント指定部18は、図面データ記憶部2に格納されている全てのセグメントについて、セグメントの全体が表示範囲に対応する矩形内に入っているか否かの判定を行う。そして、セグメント指定部18は、矩形内に入っていないと判定した全てのセグメントを指定されたセグメントとする。
なお、セグメント指定部18は、矩形以外にも、点、線、連続した複数の線、マウスで描いた自由曲線、多角形または円に対して、包含関係または交差関係を用いることでセグメントを指定してもよい。
目的図形候補生成部7は、図面データ記憶部2に格納されている全てのセグメントを読み出して、セグメント条件判定部6に順番に送る。セグメント条件判定部6は、セグメント毎に「真」または「偽」を目的図形候補生成部7に返す。
目的図形候補生成部7は、セグメント条件判定部6から送られてくる「真」または「偽」を示す情報に基づいて、図面データ記憶部2に格納されているセグメントの中からセグメント条件を満たすセグメントを抽出する。目的図形候補生成部7は、抽出したセグメントを組み合わせた図形判定候補を複数作成する。目的図形候補生成部7は、作成した目的図形候補を図形条件判定部5に順番に送る。図形条件判定部5は、図形判定候補毎に「真」または「偽」を目的図形候補生成部7に返す。
目的図形候補生成部7は、図形条件判定部5から送られてくる「真」または「偽」を示す情報に基づいて、図形判定候補の中から図形条件を満たす図形判定候補のみを目的図形候補記憶部8に格納する。この目的図形候補記憶部8に格納される図形判定候補が、作業者に提示される目的図形の候補である。
なお、目的図形候補生成部7は、目的図形の候補または図形判定候補を生成する際に、図形条件記憶部3に格納されている図形条件を参照してもよい。この場合、目的図形候補生成部7は、参照した図形条件に基づいて目的図形の候補または図形判定候補を生成してもよいし、図形条件を満たさない目的図形の候補または図形判定候補の生成を除外してもよい。
整理すると、目的図形候補記憶部8に格納する目的図形の候補が各図形条件を満たしていることを保証する方法には2通りの方法がある。1つ目の方法は、目的図形候補生成部7が、図形判定候補の生成時に図形条件を参照し、図形条件を満たすように図形判定候補を生成する方法である。2つ目の方法は、図形条件判定部5が、目的図形候補生成部7で生成された図形判定候補が図形条件を満たすか否かを判定し、図形条件が満たされていないものを排除する方法である。目的図形候補生成部7は、あくまでも図形判定候補のうち全ての図形条件を満たしたもののみを目的図形候補記憶部8に記憶する。このように、1つ目の方法の場合、目的図形の候補が図形条件を満たすか否かを目的図形候補生成部7が判定し、2つ目の方法の場合、目的図形の候補が図形条件を満たすか否かを図形条件判定部5が判定する。
1つ目の方法の場合、目的図形候補生成部7は、図形条件に基づいて図形判定候補を生成し、その後、生成した図形判定候補を構成するセグメントがセグメント条件を満たすか否かの判定に基づいて、目的図形の候補を生成してもよい。換言すると、目的図形候補生成部7は、先に図形条件から図形を生成し、その生成した図形を構成するセグメントについて、セグメント条件判定部6がセグメント条件を満たしているか否かを判定する。そして、目的図形候補生成部7が、生成した図形のうち、図形を構成するすべてのセグメントがセグメント条件を満たす図形のみを目的図形候補記憶部8に記憶してもよい。
例えば、目的とする図形が四角形の場合には、目的図形候補生成部7は、図面にある線分4本の組み合わせについて総当たりで、まず閉ループになっているか、すなわち、線分同士が端点で接続しているかを判定する。そして、セグメント条件判定部6が、4本の線分がセグメント条件を満たしているか否かを判定する。
目的図形選択部9は、目的図形候補記憶部8に格納されている目的図形の候補の情報を表示装置21に表示させる。目的図形選択部9は、入力装置22からの作業者の指示に従い、目的図形の候補の中から作業者が意図している目的図形を選択する。目的図形選択部9が選択した目的図形は、図形選択装置101内に格納しておいてもよいし、外部装置に出力されてもよい。
条件自動更新部31は、図形条件記憶部3に格納されている図形条件と、セグメント条件記憶部4に格納されているセグメント条件と、目的図形候補記憶部8に格納されている目的図形の候補を分析する。条件自動更新部31は、分析結果に基づいて、図形条件記憶部3に格納されている図形条件の追加、削除またはパラメータ変更を行う。また、条件自動更新部31は、分析結果に基づいて、セグメント条件記憶部4に格納されているセグメント条件の追加、削除またはパラメータ変更を行う。
つぎに、図形選択装置101の動作処理手順について説明する。図2は、実施の形態1に係る図形選択装置の動作処理手順を示すフローチャートである。図形選択装置101は、動作を開始すると、ステップS10において、前回入力した図面データを再利用するか否かを確認する。図形選択装置101は、前回入力した図面データを再利用することを示す再利用指示が入力装置22から入力されたか否かをチェックしている。再利用指示が無かった場合、すなわち、ステップS10においてNoの場合、ステップS20において、図面データ入力部1は、CADデータから図面データを読み出して図面データ記憶部2に入力する。ここでのCADデータの一例は、DXF(Drawing Exchange Format)ファイルである。
図面データ入力部1は、図面データからセグメントを読み込む際には、全てのセグメントに異なるセグメント番号を割り当てる。そして、図面データ入力部1は、セグメント番号とセグメントとを対応付けして、セグメントとともに図面データ記憶部2に入力する。これにより、図面データ記憶部2は、セグメント番号とセグメントとが対応付けされたものを記憶する。
この後、ステップS30では、プリセット条件設定部12が、予めプリセット条件記憶部11に格納されているプリセット条件を設定する。具体的には、プリセット条件設定部12が、予めプリセット条件記憶部11に格納されている図形条件を図形条件記憶部3に設定する。また、プリセット条件設定部12が、予めプリセット条件記憶部11に格納されているセグメント条件をセグメント条件記憶部4に設定する。図形選択装置101では、プリセット条件設定部12が図形条件を図形条件記憶部3に格納することが、図形条件を図形条件記憶部3に設定することに対応している。また、プリセット条件設定部12がセグメント条件をセグメント条件記憶部4に格納することが、セグメント条件をセグメント条件記憶部4に設定することに対応している。
ステップS10においてYesの場合、すなわち、再利用指示があった場合、ステップS20の処理が実行されることなく、ステップS30において、プリセット条件設定部12が、予めプリセット条件記憶部11に格納されているプリセット条件を設定する。
プリセット条件が設定された後、ステップS40において、作業者が条件の手動設定を行うと、条件編集部13が、作業者による入力装置22への指示に従って、図形条件およびセグメント条件の追加、削除または変更を行う。
条件編集部13は、パラメータを伴わない図形条件を追加する際には、何れの種類の何れの図形条件が追加されたかを示す情報を、図形条件記憶部3に格納する。また、条件編集部13は、パラメータを伴わないセグメント条件を追加する際には、何れの種類の何れのセグメント条件が追加されたかを示す情報を、セグメント条件記憶部4に格納する。
また、条件編集部13は、パラメータを伴う図形条件を追加する際には、パラメータの指定を作業者に求め、作業者に指定されたパラメータを、追加された図形条件の種類とともに図形条件記憶部3に格納する。また、条件編集部13は、パラメータを伴うセグメント条件を追加する際には、パラメータの指定を作業者に求め、作業者に指定されたパラメータを、追加されたセグメント条件の種類とともにセグメント条件記憶部4に格納する。
また、条件編集部13は、既に設定されている図形条件のパラメータの変更を行う場合には、新たなパラメータの指定を作業者に求め、図形条件記憶部3が記憶しているパラメータを、作業者に指定されたパラメータで書き換える。また、条件編集部13は、既に設定されているセグメント条件のパラメータの変更を行う場合には、新たなパラメータの指定を作業者に求め、セグメント条件記憶部4が記憶しているパラメータを、作業者に指定されたパラメータで書き換える。
また、条件編集部13は、図形条件を削除する場合には、削除対象の図形条件を図形条件記憶部3が記憶する図形条件から消去する。また、条件編集部13は、セグメント条件を削除する場合には、削除対象のセグメント条件をセグメント条件記憶部4が記憶するセグメント条件から消去する。
ステップS40において、作業者が図面依存条件のパラメータを指定する際には、図面情報指定部14が、作業者の指示に従ってパラメータを指定する。図面情報指定部14は、各図形条件および各セグメント条件について、パラメータを伴うか否かを判断し、伴う場合にはどのようなパラメータをどのように設定するかを決定する。図面情報指定部14が図形条件およびセグメント条件の種類毎に行う種々の判断および決定については後述する。
なお、パラメータが異なる場合、作業者は同じ種類の図形条件、または、同じ種類のセグメント条件を、複数設定してもよい。ステップS40においては、条件編集部13が、図形条件およびセグメント条件を編集するための編集画面を表示装置21に表示させる。この編集画面において、条件編集部13は、使用頻度が高いと考えられる条件の編集項目を、スクロール操作または別の画面を開く操作が不要な、すぐに編集できる位置に配置してもよい。また、条件編集部13は、使用頻度が低いと考えられるその他の条件の編集項目を、スクロール操作または別の画面を開く操作で辿りつける位置に配置してもよい。
また、本実施の形態では、ステップS40において、条件編集部13が、ステップS30で設定されたプリセット条件に含まれる図形条件、および、セグメント条件を編集できる場合について説明したが、条件編集部13は、プリセット条件設定部12が設定した図形条件、および、セグメント条件の変更を禁止し、削除、および、パラメータの変更を、作業者が追加した図形条件、または、セグメント条件に限定してもよい。
作業者が、図形条件またはセグメント条件の編集を完了すると、ステップS50において、目的図形候補生成部7が、目的図形の候補を生成する。具体的には、目的図形候補生成部7は、図面データ記憶部2に格納されている全てのセグメントに対して、1つずつセグメント条件判定部6でセグメント条件を満たすか否かの判定を行なわせる。そして、セグメント条件判定部6からの第1の判定結果である判定結果に基づいて、目的図形候補生成部7が、全セグメントの中からセグメント条件を全て満たしたセグメントだけを抽出する。セグメント条件判定部6において、各セグメント条件がどのように判定されるかの具体例については後述する。目的図形候補生成部7は、セグメントを抽出した後、抽出したセグメントを組み合わせることによって図形を生成する。ここでの図形が、図形判定候補である。
目的図形候補生成部7は、図形判定候補を図形条件判定部5に送り、図形判定候補が図形条件を満たすか否かの判定を図形条件判定部5に行なわせる。目的図形候補生成部7は、図形条件判定部5からの第2の判定結果である判定結果に基づいて、図形条件を全て満たした目的図形の候補のみを目的図形候補記憶部8に格納する。
目的図形候補生成部7は、セグメントの組み合わせを総当たりで行い、全ての組み合わせについて図形条件判定部5が、図形条件を満たすか否かの判定を行う。図形条件判定部5において、各図形条件がどのように判定されるかの具体例については後述する。
図形条件判定部5が、生成された図形判定候補の全てに対して判定処理を終えると、ステップS60において、目的図形選択部9が、目的図形候補記憶部8に格納された目的図形の候補を表示装置21に表示させる。
この後、ステップS70において、図形選択装置101は、目的図形の候補生成をやり直すか否かを判定する。図形選択装置101は、目的図形の候補生成をやり直すことを示すやり直し指示が入力装置22から入力されたか否かをチェックしている。作業者がやり直しを指示する場合には、目的とする図形が目的図形の候補の中に無い場合、または目的図形の候補が多すぎて目的図形を探し出すのが困難である場合が考えられる。
やり直し指示があった場合、すなわち、ステップS70においてYesの場合、ステップS71において、条件自動更新部31が、目的図形候補記憶部8に格納されている目的図形の候補の情報に基づいて、図形条件記憶部3およびセグメント条件記憶部4の内容である図形条件またはセグメント条件の自動更新を行う。
具体的には、条件自動更新部31は、目的図形候補記憶部8内の全ての目的図形の候補に含まれているセグメントを探し、もしあれば、このセグメントのセグメント番号をパラメータに設定した後述の図形条件16を、図形条件記憶部3に追加する。
また、条件自動更新部31は、目的図形候補記憶部8内の何れの目的図形の候補にも含まれていないセグメントを探し、もしあれば、このセグメントのセグメント番号をパラメータに設定した後述のセグメント条件7を、セグメント条件記憶部4に追加する。
ステップS71において、条件自動更新部31が、図形条件またはセグメント条件の自動更新を行った後、図形選択装置101は、ステップS40〜S70の処理を繰り返す。そして、ステップS70においてNoの場合、すなわち、やり直し指示が無かった場合、ステップS80において、目的図形選択部9は、目的図形の選択を行う。具体的には、目的図形選択部9が、入力装置22から入力される作業者の指示に従って、ステップS60で表示された目的図形の候補の中から、目的図形の選択を行う。その後、図形選択装置101は、動作を停止する。
なお、図形選択装置101は、他のシステムの一部に用いられてもよい。図形選択装置101は、CADシステムまたはCAMシステムに組み込まれてもよい。この場合、ステップS10における再利用指示は、作業者からではなく、CADシステムまたはCAMシステムから図形選択装置101に送られてもよい。また、図面データ記憶部2と図面情報指定部14は、CADシステムまたはCAMシステムに配置されていてもよい。
また、図形選択装置101は、NCの自動プログラミング装置の一部に用いられてもよい。この場合、自動プログラミング装置を使ったプログラミングにおいて、作業者が加工の種類を選択すると、自動プログラミング装置内の図形選択装置101が、図形の候補を提示する。ここで提示される図形の候補は、作業者によって選択された加工の種類で加工が行われた場合に、加工が適切となる個所の図形である。提示された図形の候補の中から作業者が図形を選択すると、自動プログラミング装置は、選択された図形のデータから加工パスを生成する。
具体例を説明する。作業者が、事前に自動プログラミング装置に対して図面データを読み込ませ原点を設定していたとする。作業者が、複数ある加工の種類の中からポケット加工を選択したとき、自動プログラミング装置内の図形選択装置101が、図面に存在する閉領域を目的図形の候補に設定して提示する。提示された候補の1つを作業者が選択すると、自動プログラミング装置は、選択された図形、つまり、閉領域をポケット加工する加工パスを生成する。
このような自動プログラミング装置は、一部に図形選択装置101を以下のように備えることで実現可能である。まず、プリセット条件記憶部11が、加工の種類ごとに異なる複数のプリセット条件を記憶する。各プリセット条件は、各加工の種類で選択される図形に対応するものである。
つぎに、作業者が加工の種類を選択した際に、自動プログラミング装置は、加工の種類に対応したプリセット条件を指定して、図形選択装置101を起動させる。そして、図形選択装置101において、ステップS30まで実行された際に、プリセット条件設定部12は、自動プログラミング装置からの指定に従ってプリセット条件を設定する。これにより、図形選択装置101は、加工の種類に対して適切な目的図形の候補を提示することができる。従って、作業者は、提示された目的図形の候補の中から目的の図形を選択することによって加工形状を指示することができる。
また、自動プログラミング装置がプリセット条件を指定して図形選択装置101を起動した後、図形選択装置101は、最初にステップS40の処理となった際にだけ、条件の手動設定をスキップさせてもよい。図形選択装置101は、プリセット条件だけで適切に少数の目的図形の候補に絞り込めることができる場合、上述のスキップを行うことで、作業者による操作回数を削減できる。具体的には、自動プログラミング装置は、作業者が加工の種類を選択するだけで、目的図形の候補、つまり、加工個所の候補を表示する。従って、作業者が、加工個所の候補の中の1つを選択するだけで、加工形状の指示を完了させることができるようになる。
なお、本実施の形態に係る図形選択装置101は、三次元の図面データに対して用いられてもよいし、二次元の図面データに対して用いられてもよい。線分または円弧といったセグメントは、三次元座標系においても定義可能である。また、セグメント条件は、レイヤに関係するもの以外は、三次元の図面データに対しても、そのまま利用可能である。さらに、図形条件についても、そのまま、もしくは、多少の修正で、三次元の図面データに対しても利用可能なものがある。従って、図形選択装置101は、適切なセグメント条件と適切な図形条件を用いることで、三次元の図面データに対しても適用可能である。
つぎに、各図形条件の具体例と、各セグメント条件の具体例について説明する。本実施の形態では、図形選択装置101が、図形条件1〜18の何れかと、セグメント条件1〜7の何れかと、を用いて目的図形の候補を生成する。
(図形条件1)
図形条件1は、判定する図形が指定された属性を持っているという条件である。属性の一例は、ハッチングまたは塗りつぶしの色といった装飾の情報であるが、図形に付与できる属性であれば何れの情報でもよい。図形条件1が用いられる場合、図形条件1のパラメータは、属性の内容である。
条件編集部13は、ステップS40において、作業者が図形条件1を追加する場合または図形条件1のパラメータを変更する場合に、作業者が指示した属性の内容を図形条件記憶部3に格納する。
そして、図形条件判定部5は、ステップS50において、図形条件1を判定する際に、図面データ記憶部2に格納されている属性のうちの図形に対応するものの中から、判定する図形に付与されているとみなせる属性を全て抽出する。抽出した属性の中に、図形条件記憶部3内に格納されているパラメータである属性と同じものがあれば、図形条件判定部5は、図形条件1は満たされていると判定する。一方、抽出した属性の中に、図形条件記憶部3内に格納されているパラメータである属性と同じものがなければ、図形条件判定部5は、図形条件1は満たされていないと判定する。
(図形条件2)
図形条件2は、判定される図形の面積が指定された範囲内であるという条件である。この図形条件2のパラメータは、判定される図形の面積の最小値および最大値である。条件編集部13は、ステップS40において、作業者が図形条件2を追加する場合または図形条件2のパラメータを変更する場合に、作業者が指示した面積の最小値および最大値を図形条件記憶部3に格納する。
そして、図形条件判定部5は、ステップS50において、図形条件2を判定する際に、まず、判定する図形の面積を計算する。そして、図形条件判定部5は、計算した面積と、図形条件記憶部3に格納されている面積の最小値および最大値とを比較する。計算した面積が、最小値以上であり且つ最大値以下であれば、図形条件判定部5は、図形条件2は満たされていると判定する。一方、計算した面積が、最小値よりも小さいかまたは最大値よりも大きい場合、図形条件判定部5は、図形条件2は満たされていないと判定する。
(図形条件3)
図形条件3は、判定する図形を構成する全ての円および円弧の半径が同一であるという条件である。この図形条件3は、パラメータを含んでいない。図形条件判定部5は、図形条件3を判定する際に、まず、判定する図形を構成するセグメントの中から円および円弧のみを抽出する。円および円弧の何れもが存在しなかった場合には、図形条件判定部5は、図形条件3は満たされていると判定して処理を終了する。
一方、円および円弧の何れかが存在していた場合には、図形条件判定部5は、半径の比較を行う。半径の比較では、図形条件判定部5が、集めた円および円弧の中から、任意の1つの円または円弧を選択し、選択した円または円弧の半径を調べる。そして、図形条件判定部5は、集めた円および円弧について、これらの全ての半径が、任意で選択した円または円弧の半径と同じであるか否かの判定を行う。集めた円および円弧の全ての半径が任意で選択した円または円弧の半径と同じであれば、図形条件判定部5は、図形条件3は満たされていると判定する。一方、集めた円および円弧の何れかの半径が任意で選択した円または円弧の半径と異なる場合、図形条件判定部5は、図形条件3は満たされていないと判定する。
(図形条件4)
図形条件4は、判定する図形を構成するセグメントの数が指定された範囲内に入っているという条件である。図形条件4のパラメータは、セグメント数の最小値および最大値である。条件編集部13は、ステップS40において、作業者が図形条件4を追加する場合または図形条件4のパラメータを変更する場合に、作業者が指示したセグメント数の最小値および最大値を図形条件記憶部3に格納する。
そして、図形条件判定部5は、ステップS50において、図形条件4を判定する際に、まず、判定する図形のセグメント数を数える。そして、図形条件判定部5は、数えたセグメント数と、図形条件記憶部3に格納されているセグメント数の最小値および最大値とを比較する。数えたセグメント数が、最小値以上であり且つ最大値以下であれば、図形条件判定部5は、図形条件4は満たされていると判定する。一方、数えたセグメント数が、最小値よりも小さいまたは最大値よりも大きい場合、図形条件判定部5は、図形条件4は満たされていないと判定する。
なお、図形条件判定部5は、判定する図形のセグメント数を数える際に、曲率が一定の同一線上で連続している複数のセグメントを1つのセグメントに数えてもよい。この処理は、作業者が目的としている図形の辺の一部が、別の図形と重なっているような場合に有効である。
図3は、図形条件のセグメント数を説明するための図である。図3は、作業者が目的としている図形の一例を示している。線分A2は、三角形の一辺であり、かつ、四角形の一辺の一部となっている。また、線分A1,A3は、四角形の一辺の一部である。
目的の図形が図3に示す四角形である場合、図形条件判定部5が、同一の直線上に配置された線分A1〜A3をまとめて1つのセグメントに数えると、セグメント数の最小値および最大値が共に4つとなる。この場合、作業者は、セグメント数の最小値および最大値が4つであるという図形条件4を設定しておけばよい。これは四角形の辺の数は4つであるという一般的知識と整合するので、作業者は、パラメータの設定を容易に行うことが可能となる。
(図形条件5)
図形条件5は、判定する図形を構成するコンポーネントの数が指定された範囲に入っているという条件である。本実施の形態におけるコンポーネントは、直接的に、もしくは、間接的に接続しているセグメントの集まりである。本実施の形態において、第1のセグメントと第2のセグメントとが直接的に接続しているということは、第1のセグメントと第2のセグメントとが接していることを意味している。また、本実施の形態において、第1のセグメントと第2のセグメントとが間接的に接続しているということは、第1のセグメントから出発して直接的に接続したセグメントを辿っていくことで第2のセグメントに辿りつけることを意味している。
図4は、図形条件のコンポーネント数を説明するための図である。図4は、作業者が目的としている図形の一例を示している。線分B1と線分B2とは、直接的に接続されており、線分B2と線分B3とは、直接的に接続されている。そして、線分B1と線分B3とは、間接的に接続されている。また、線分B4は、何れの線分とも接続していない。以上から、図4に示す図形には、線分B1〜B3の3つから成るコンポーネントと、線分B4の1つから成るコンポーネントがあるので、図4に示す図形のコンポーネント数は2となる。
図形条件5のパラメータは、コンポーネント数の最小値および最大値である。条件編集部13は、ステップS40において、作業者が図形条件5を追加する場合または図形条件5のパラメータを変更する場合、作業者が指示したコンポーネント数の最小値および最大値を図形条件記憶部3に格納する。
そして、図形条件判定部5は、ステップS50において、図形条件5を判定する際に、まず、判定する図形のコンポーネント数を計算する。さらに、図形条件判定部5は、計算したコンポーネント数と、図形条件記憶部3に格納されているコンポーネント数の最小値および最大値とを比較する。計算したコンポーネント数が、最小値以上であり且つ最大値以下であれば、図形条件判定部5は、図形条件5は満たされていると判定する。一方、計算したコンポーネント数が、最小値よりも小さいまたは最大値よりも大きい場合、図形条件判定部5は、図形条件5は満たされていないと判定する。
(図形条件6)
図形条件6は、判定する図形が分岐を持たないという条件である。図形条件判定部5は、判定する図形を構成するセグメントの端点に対して、3つ以上の端点が同一点となっていないかを判定する。この図形条件6は、パラメータを含んでいない。
図形条件判定部5は、ステップS50において、図形条件6を判定する際に、判定する図形を構成するセグメントにおける全ての端点について、他の端点と同一点であるかを判定する。図形条件判定部5は、他の2つ以上の端点と同一点と判定された端点が1つもなければ、図形条件6は満たされていると判定する。一方、図形条件判定部5は、他の2つ以上の端点と同一点と判定された端点が1つでもあれば、図形条件6は満たされていないと判定する。
(図形条件7)
図形条件7は、判定する図形が1つまたは複数の閉ループで構成されているという条件である。この図形条件7は、パラメータを含んでいない。図形条件判定部5は、ステップS50において、図形条件7を判定する際に、以下の図5に示すフローチャートに従って動作する。
図5は、閉ループ判定の処理手順を示すフローチャートである。図形条件判定部5は、図形条件7の判定を開始すると、ステップS100において、判定する図形が分岐を持つか否かを判定する。具体的には、図形条件判定部5は、図形条件6、つまり、分岐を持たないという条件を満たしているかを判定する。
判定する図形が分岐を持つ場合、すなわち、ステップS100においてYesの場合、図形条件判定部5は、ステップS192において、図形条件7は満たされていないと判定する。そして、図形条件判定部5は、図形条件7は満たされていないことを示す判定結果である「偽」を示す情報を、目的図形候補生成部7に返す。そして、図形条件判定部5は、判定処理を終了する。
一方、判定する図形が分岐を持たない場合、すなわち、ステップS100においてNoの場合、図形条件判定部5は、ステップS110において、判定する図形の中に未判定のセグメントが残っているか否かを判定する。このとき、図形条件判定部5は、訪れていないセグメントを未判定のセグメントとみなす。
未判定のセグメントが残っている場合、すなわち、ステップS110においてYesの場合、図形条件判定部5は、ステップS120において、未判定である、つまり、未訪問のセグメントの中から任意の未判定のセグメントを選択し、選択したセグメントから始めて、一方向に隣接するセグメントを辿っていく。このとき、図形条件判定部5は、辿った、つまり、訪れたセグメントの記録を残す。そして、図形条件判定部5は、ステップS130において、辿り始めの元のセグメントに戻ってきたか否かを判定する。
元のセグメントに戻ってきた場合、すなわち、ステップS130においてYesの場合、図形条件判定部5は、ステップS110〜S130の処理を行う。そして、図形条件判定部5は、ステップS130においてNoの場合、すなわち、元のセグメントに戻ってくることなく、隣接するセグメントが無くなった場合、ステップS192において、図形条件7は満たされていないと判定する。そして、図形条件判定部5は、図形条件7は満たされていないことを示す判定結果である「偽」を示す情報を、目的図形候補生成部7に返す。そして、図形条件判定部5は、判定処理を終了する。
一方、ステップS110においてNoの場合、すなわち、未判定のセグメントが残っていない場合、図形条件判定部5は、ステップS191において、図形条件7は満たされていると判定する。そして、図形条件判定部5は、図形条件7は満たされていることを示す判定結果である「真」を示す情報を、目的図形候補生成部7に返す。そして、図形条件判定部5は、判定処理を終了する。
(図形条件8)
図形条件8は、判定する図形が分岐を持たず、かつ、閉ループである連続線を持たないという条件である。この図形条件8は、パラメータを含んでいない。図形条件判定部5は、ステップS50において、図形条件8を判定する際に、以下の図6に示すフローチャートに従って動作する。
図6は、連続線判定の処理手順を示すフローチャートである。図6のフローチャートは、図5のフローチャートと比較して、ステップS130とステップS230が異なる。図形条件判定部5は、図形条件8の判定を開始すると、ステップS200において、判定する図形が分岐を持つか否かを判定する。判定する図形が分岐を持つ場合、すなわち、ステップS200においてYesの場合、図形条件判定部5は、ステップS292において、図形条件8は満たされていないと判定する。そして、図形条件判定部5は、判定処理を終了する。
一方、判定する図形が分岐を持たない場合、すなわち、ステップS200においてNoの場合、図形条件判定部5は、ステップS210において、判定する図形の中に未判定のセグメントが残っているか否かを判定する。このとき、図形条件判定部5は、訪れていないセグメントを未判定のセグメントとみなす。
未判定のセグメントが残っている場合、すなわち、ステップS210においてYesの場合、図形条件判定部5は、ステップS220において、未判定である、つまり、未訪問のセグメントの中から任意の未判定のセグメントを選択し、選択したセグメントから始めて、一方向に隣接するセグメントを辿っていく。このとき、図形条件判定部5は、辿った、つまり、訪れたセグメントの記録を残す。そして、図形条件判定部5は、ステップS230において、辿り始めの元のセグメントに戻ってきたか否かを判定する。
元のセグメントに戻ってくることなく、隣接するセグメントが無くなった場合、すなわち、ステップS230においてNoの場合、図形条件判定部5は、ステップS210〜S230の処理を行う。そして、図形条件判定部5は、ステップS230においてYesの場合、すなわち、元のセグメントに戻ってきた場合、ステップS292において、図形条件8は満たされていないと判定する。そして、図形条件判定部5は、判定処理を終了する。
一方、ステップS210においてNoの場合、すなわち、未判定のセグメントが残っていない場合、図形条件判定部5は、ステップS291において、図形条件8は満たされていると判定する。そして、図形条件判定部5は、判定処理を終了する。
(図形条件9)
図形条件9は、判定する図形が2つの閉ループで構成され、かつ、一方の閉ループが他方の閉ループを包含しているという条件である。この図形条件9は、パラメータを含んでいない。図形条件判定部5は、ステップS50において、図形条件9を判定する際に、まず、図形条件7、つまり、図形が閉ループで構成されているという条件を満たすか否かの判定を行う。
図形が閉ループで構成されていない場合、図形条件判定部5は、図形条件9は満たされていないと判定し、判定処理を終了する。一方、図形が閉ループで構成されている場合、図形条件判定部5は、図形条件9は満たされると判定し、コンポーネント数の条件判定処理に進む。
図形条件判定部5は、コンポーネント数の条件である図形条件5に基づいて、コンポーネント数が2つ以上かつ2つ以下であるか否かを判定する。コンポーネント数が2つ以上かつ2つ以下でない場合、図形条件判定部5は、図形条件9は満たされていないと判定し、判定処理を終了する。一方、コンポーネント数が2つ以上かつ2つ以下である場合、図形条件判定部5は、図形条件9は満たされていると判定し、包含関係の確認処理に進む。
ここまでの判定で、図形条件判定部5は、判定する図形が2つの閉ループから構成されることが分かっている。包含関係の確認処理では、図形条件判定部5は、2つの閉ループについて、一方の閉ループが他方の閉ループを包含しているか否かを判定する。
図形条件判定部5は、2つの閉ループのうちの何れか一方の閉ループを選び、選んだ閉ループを包含する側の閉ループと仮定し、他方の閉ループを包含される側の閉ループであると仮定する。そして、図形条件判定部5は、包含される側の閉ループの全てのセグメントが、包含する側の閉ループに包含されているか否かを判定する。
図形条件判定部5は、包含される側の全てのセグメントが包含する側に包含されていれば、図形条件9は満たされていると判定する。一方、図形条件判定部5は、何れかのセグメントが包含する側に包含されていなければ、図形条件判定部5は、包含する側の閉ループと包含される側の閉ループとを入れ替えて、1回目と同様に2回目の包含判定を行う。閉ループを入れ替えて行った2回目の包含判定の結果が、包含される側の全てのセグメントが包含する側に包含されているというものであれば、図形条件判定部5は、図形条件9は満たされていると判定する。一方、図形条件判定部5は、2回目の包含判定の結果が、何れかのセグメントが包含する側に包含されていないというものであれば、図形条件9は満たされていないと判定する。
(図形条件10)
図形条件10は、判定する図形が外回り閉図形であるという条件である。この図形条件10は、パラメータを含んでいない。外回り閉図形は、複数の隣接した閉図形が複合化されて構成されている全体閉図形において、内側の閉図形を全て含む最も外側の輪郭をとる閉図形である。閉図形が、複数の隣接した閉図形が複合化されて構成されている全体閉図形ではなく単一の閉図形である場合には、この単一の閉図形が、外回り閉図形となる。
ステップS50において、図形条件判定部5は、図形条件10を判定する前に、セグメント条件を満たしたセグメントの抽出を行う。そして、図形条件判定部5は、抽出したセグメントの集合から、全ての外回り閉図形を抽出する。図形条件判定部5は、外回り閉図形を抽出する際に、特許第2942681号公報に開示されている方法において、セグメントを回る向きを見る方法を用いる。なお、図形条件判定部5は、他の方法によって外回り閉図形を抽出してもよい。
図形条件判定部5は、抽出した外回り閉図形の中から判定する図形と同じ図形を探す。図形条件判定部5は、同じ図形が見つかった場合は、図形条件10は満たされていると判定し、同じ図形が見つからなかった場合は、図形条件10は満たされていないと判定する。
(図形条件11)
図形条件11は、判定する図形が内回り閉図形であるという条件である。この図形条件11は、パラメータを含んでいない。内回り閉図形は、この内側を見た場合に、複数の隣接する閉図形が複合化されていない閉図形である。
ステップS50において、図形条件判定部5は、図形条件11を判定する前に、セグメント条件を満たしたセグメントの抽出を行う。そして、図形条件判定部5は、抽出したセグメントの集合から、全ての内回り閉図形を抽出する。図形条件判定部5は、内回り閉図形を抽出する際に、特許第2942681号公報に開示されている方法において、セグメントを回る向きを見る方法を用いる。特許第2942681号公報の手法においては、外回り閉図形とはセグメントを回る向きが逆向きの閉図形が、内回り閉図形である。なお、図形条件判定部5は、他の方法によって内回り閉図形を抽出してもよい。
図形条件判定部5は、抽出した内回り閉図形の中から判定する図形と同じ図形を探す。図形条件判定部5は、同じ図形が見つかる場合は、図形条件11は満たされていると判定し、同じ図形が見つからない場合は、図形条件11は満たされていないと判定する。
(図形条件12)
図形条件12は、判定する図形の各セグメントが滑らかに接続しているという条件である。数学的に表現すると、図形条件12は、判定する図形を表す曲線がn回微分可能であるという条件である。ここでのnは、基準値よりも大きな自然数である。図形条件12のパラメータは、微分可能回数である。
条件編集部13は、図2のステップS40において、作業者が図形条件12を追加する場合、または図形条件12のパラメータを変更する場合には、作業者が指示した微分可能回数を図形条件記憶部3に格納する。
ステップS50において、図形条件判定部5が図形条件12を判定する際に、図形条件判定部5は、まず、判定する図形を構成する全てのセグメントに対して、図形条件記憶部3に格納されている微分可能回数の微分が可能であるか否かの判定を行う。
つぎに、図形条件判定部5は、判定する図形を構成する2つのセグメントが接続している全ての接続点について、図形条件記憶部3に格納されている微分可能回数の微分が可能であるか否かの判定を行う。
全てのセグメントが微分可能であり、かつ、全ての接続点で微分可能である場合、図形条件判定部5は、図形条件12は満たされていると判定する。一方、何れかのセグメントが微分不可能であるか、または、何れかの接続点で微分不可能である場合、図形条件判定部5は、図形条件12は満たされていないと判定する。
図形条件判定部5は、1回の微分が可能であるか否かを判定する際に、判定する図形を構成する全てのセグメントが1回の微分が可能であるか否かと、これらセグメント間の全ての接続点でセグメントの接線ベクトルが合致しているか否かと、を判定する。
(図形条件13)
図形条件13は、判定する図形が鏡像対称性を有しているという条件である。図形条件13のパラメータは、図形の対称軸であるが、作業者は、図形条件13のパラメータを設定しなくてもよい。
ステップS40において、作業者が図形条件13を追加する場合、または図形条件13のパラメータを変更する場合、作業者が指示した場合に、条件編集部13は、図形条件記憶部3に対称軸を格納する。
作業者が対称軸を指定する場合、本実施の形態では、セグメント指定部18が、作業者からの指示に従って、図面データ記憶部2に含まれる線分を指定することで対称軸を指定する。なお、図形選択装置101は、作業者に直線の定義を数値入力させ、この直線の定義で対称軸を指定してもよい。図形条件判定部5は、ステップS50において、図形条件13を判定する際に、以下の図7に示すフローチャートに従って動作する。
図7は、鏡像対称性判定の処理手順を示すフローチャートである。図形条件判定部5は、図形条件13の判定を開始すると、ステップS300において、図形条件記憶部3が対称軸を記憶しているか否かに基づいて、図形に対称軸が与えられているか否かを判定する。
図形に対称軸が与えられている場合、すなわち、ステップS300においてYesの場合、図形条件判定部5は、ステップS350において、図形条件記憶部3に記憶された対称軸に対して鏡像対称なセグメントが存在するかを判定する。このとき、図形条件判定部5は、判定する図形を構成する全てのセグメントに対して1つずつ鏡像対称か否かの判定を行う。
鏡像対称な部分の存在を判定する方法の一例は、以下の方法である。まず、図形条件判定部5は、判定中のセグメントを、判定する図形を構成する他の全てのセグメントと順次比較していく。図形条件判定部5は、判定中のセグメントに対して鏡像対称となる部分を記録しておく。図形条件判定部5は、判定中のセグメント以外の他のセグメントとの比較を全て行う。そして、図形条件判定部5は、全ての比較が終わると、判定中のセグメント全体について鏡像対称となるセグメントが記録の中から見つかったか否かを判定する。見つかった場合、図形条件判定部5は、判定中のセグメントには鏡像対称の部分が存在すると判定する。一方、図形条件判定部5は、見つからない部分がある場合、判定中のセグメントには鏡像対称の部分が存在しないと判定する。
図形条件判定部5は、判定する図形を構成する全てのセグメントに対して、鏡像対称な部分が存在するか否かを判定する。図形条件判定部5は、判定する図形を構成する全てのセグメントに対して鏡像対称な部分が存在していると判定した場合、すなわち、ステップS350においてYesの場合、ステップS391において、鏡像対称性である対極性を持つという判定結果を目的図形候補生成部7に送る。具体的には、図形条件判定部5は、目的図形候補生成部7に対して、図形条件13は満たされているという判定結果である「真」の情報を送る。そして、図形条件判定部5は、図形が図形条件13を満たすか否かの判定処理を終了する。
一方、ステップS350においてNoの場合、すなわち、図形条件判定部5が、判定する図形を構成する何れかのセグメントに対して鏡像対称な部分が存在していないと判定した場合、ステップS392において、図形条件判定部5は、対極性を持たないという判定結果を目的図形候補生成部7に送る。具体的には、図形条件判定部5は、目的図形候補生成部7に対して、図形条件13は満たされていないという判定結果である「偽」の情報を送る。そして、図形条件判定部5は、図形が図形条件13を満たすか否かの判定処理を終了する。
ステップS300においてNoの場合、すなわち、図形に対称軸が与えられていない場合、図形条件判定部5は、ステップS310において、判定する図形を構成するセグメントを用いて、セグメント対のリストを作成する。具体的には、図形条件判定部5は、判定する図形を構成するセグメントに対し、全てのセグメントの組み合わせを表すために、各組み合わせに対応するセグメント対の全てを含むリストを作成する。
そして、図形条件判定部5は、ステップS320において、リストに次のセグメント対が残っているか否かを判定する。リストに次のセグメント対が残っている場合、すなわち、ステップS320においてYesの場合、図形条件判定部5は、ステップS330において、セグメント対から対称軸を計算できたか否かを判定する。
具体的には、図形条件判定部5は、まず、リストから任意のセグメント対を選ぶ。そして、図形条件判定部5は、選んだセグメント対の2つのセグメントが鏡像対称となる場合の対称軸の計算を試みる。図形条件判定部5は、対称軸を計算できなかった場合、すなわち、対称軸を見つけ出すことができなかった場合、選んだセグメント対をリストから削除する。対称軸を見つけ出すことができない場合の例は、セグメント対の一方が線分であり、他方が円弧である場合である。
図形条件判定部5は、セグメント対から対称軸を計算できた場合、すなわち、ステップS330においてYesの場合、ステップS340において、計算した対称軸に対して鏡像対称となるセグメントが存在するか否かを判定する。このとき、図形条件判定部5は、計算した対称軸に対して鏡像対称となるセグメントの部分が存在するか否かを、判定する図形を構成する全てのセグメントに対して1つずつ判定する。図形条件判定部5は、ステップS330で計算した対称軸に対し、ステップS350と同様の処理によって図形を構成する各セグメントに対して鏡像対称判定を行う。
図形条件判定部5は、全てのセグメントに対して鏡像対称な部分が存在していると判定した場合、すなわち、ステップS340においてYesの場合、ステップS391において、鏡像対称性である対極性を持つという判定結果を目的図形候補生成部7に送る。そして、図形条件判定部5は、図形が図形条件13を満たすか否かの判定処理を終了する。
一方、ステップS340においてNoの場合、すなわち、図形条件判定部5が、何れかのセグメントに対して鏡像対称な部分が存在していないと判定した場合、図形条件判定部5は、ステップS330で選んだセグメント対をリストから削除する。そして、図形条件判定部5は、ステップS320の処理に進む。
ステップS320においてNoの場合、すなわち、リストに次のセグメント対が残っていない場合、図形条件判定部5は、ステップS392において、対極性を持たないという判定結果を目的図形候補生成部7に送る。そして、図形条件判定部5は、図形が図形条件13を満たすか否かの判定処理を終了する。
ステップS320においてYesの場合、すなわち、リストに次のセグメント対が残っている場合、図形条件判定部5は、ステップS330において、セグメント対から対称軸を計算できたか否かを判定する。
ステップS330においてNoの場合、すなわち、セグメント対から対称軸を計算できなかった場合、図形条件判定部5は、ステップS320の処理に進む。ステップS330においてYesの場合、すなわち、セグメント対から対称軸を計算できた場合、図形条件判定部5は、ステップS340において、計算した対称軸に対して鏡像対称となるセグメントが存在するか否かを判定する。
図形選択装置101は、ステップS340の後、ステップS391において鏡像対称性を持つという判定結果を目的図形候補生成部7に送るか、または、ステップS392において鏡像対称性を持たないという判定結果を目的図形候補生成部7に送るまで、ステップS320〜S340の処理を繰り返す。
(図形条件14)
図形条件14は、判定する図形が回転対称性を持っているという条件である。本実施の形態における回転条件は、回転中心、回転角度、および繰り返し回数の3つから成る条件であるとする。図形条件14のパラメータは、回転条件であるが、このパラメータを設定するか否かは作業者が選ぶことができる。作業者は、パラメータを設定する場合には、回転条件の3つの項目全てを設定しなくてはならない。一方、作業者は、パラメータを設定しない場合は、回転条件の全ての項目を設定しないままにしなくてはならない。作業者は、入力装置22に回転条件を入力することによって回転条件を設定する。
作業者が、図2のステップS40において、新たにパラメータを設定する場合、または、既に設定されているパラメータを変更する場合、作業者は、回転条件の3つの項目のうち、繰り返し回数を数値で直接指定する。また、作業者は、回転中心を回転中心の座標値で設定し、回転角度を回転角度の数値で設定する。なお、作業者は、セグメント指定部18で図面データ記憶部2に含まれるセグメントを2つ指定することで回転中心および回転角度の設定を行ってもよい。条件編集部13は、作業者が指定した回転条件を図形条件記憶部3に格納する。
ここで、図8〜図10を用いて、回転中心および回転角度の計算方法を説明する。図8は、回転角の第1の例を示す図であり、図9は、回転角の第2の例を示す図であり、図10は、回転角の第3の例を示す図である。
図形条件判定部5は、回転させると一致する2つのセグメントから、回転中心および回転角度を求めることができる。セグメントが共に線分の場合、線分の端点の対応関係が2通り考えられるので、回転中心は2つ求まるが、回転角度は何れの回転中心でも同じ値となる。この場合、作業者が線分を2つ選んだ後に、図面情報指定部14は、求まった2つの回転中心を表示装置21に表示させるので、作業者は何れかの回転中心を選択する。
図8は、セグメントSc1の端点C1とセグメントSc2の端点C3とを対応させ、セグメントSc1の端点C2とセグメントSc2の端点C4とを対応させた場合の回転角CO1を示している。直線CL51は、端点C1および端点C3の垂直二等分線であり、直線CL52は、端点C2および端点C4の垂直二等分線である。
そして、垂直二等分線である直線CL51,CL52の交点が、回転中心CO1である。回転角度CR61は、この回転中心CO1から対応する端点へ各々伸ばした線分が成す角度である。図8では、回転中心CO1から端点C1,C3へ伸ばした線分で回転角度CR61を示している。
図9は、セグメントSc3の端点C21とセグメントSc4の端点C24とを対応させ、セグメントSc3の端点C22とセグメントSc4の端点C23とを対応させた場合の回転角CO2を示している。直線CL53は、端点C21および端点C24の垂直二等分線であり、直線CL54は、端点C22および端点C23の垂直二等分線である。
そして、垂直二等分線である直線CL53,CL54の交点が、回転中心CO2である。回転角度CR62は、この回転中心CO2から対応する端点へ各々伸ばした線分が成す角度である。図9では、回転中心CO2から端点C22,C23へ伸ばした線分で回転角度CR62を示している。
2つの円弧を平面の中で回転させて一致させるためには、円弧上の任意の点から時計回りに進んで達する円弧の端点同士と、反時計回りに進んで達する円弧の端点同士とを対応させる必要がある。この対応を示したのが、図10である。
図10は、セグメントSc5の端点C31とセグメントSc6の端点C33とを対応させ、セグメントSc5の端点C32とセグメントSc6の端点C34とを対応させた場合の回転角CO3を示している。直線CL55は、端点C31および端点C33の垂直二等分線であり、直線CL56は、端点C32および端点C34の垂直二等分線である。
そして、垂直二等分線である直線CL55,CL56の交点が、回転中心CO3である。回転角度CR63は、この回転中心CO3から対応する端点へ各々伸ばした線分が成す角度である。図10では、回転中心CO3から端点C31,C33へ伸ばした線分で回転角度CR63を示している。
図形条件判定部5は、図2のステップS50において、図形条件14である回転対称性判定を行う際に、以下の図11に示すフローチャートに従って動作する。図11は、回転対称性判定の処理手順を示すフローチャートである。
図形条件判定部5は、図形条件14の判定を開始すると、ステップS400において、図形条件記憶部3が回転条件を記憶しているか否かに基づいて、回転条件が設定されているか否かを判定する。
回転条件が設定されている場合、すなわち、ステップS400においてYesの場合、図形条件判定部5は、ステップS450において、回転条件を用いれば、判定する図形に一致する繰り返し部分が存在するか否かを判定する。このとき、図形条件判定部5は、判定する図形を構成するセグメントを組み合わせて繰り返し部分の候補を生成する。そして、図形条件判定部5は、生成した繰り返し部分の候補を、図形条件記憶部3に記憶された回転条件、つまり、回転中心、回転角度、および、繰り返し回数に従って複製する。図形条件判定部5は、複製した繰り返し部分の候補が、判定する図形に一致する図形となるか否かの判定を行う。
図形条件判定部5は、セグメントの組み合わせを全て生成し、生成したセグメントの各組み合わせについて、回転対称の繰り返し部分であるか否かを判定する。具体的には、図形条件判定部5は、判定する図形を構成するセグメントの組み合わせを、総当たりで行い、全ての組み合わせを生成する。この生成されたセグメントの組み合わせの1つ1つが繰り返し部分の候補となる。次に、図形条件判定部5は、各繰り返し部分の候補を、回転条件に従って複製していき図形を生成する。この図形を複製結果の図形と呼ぶ。図形条件判定部5は、複製結果の図形を得るために、まず、繰り返し部分の候補を回転させずに複製する。次に、図形条件判定部5は、繰り返し部分の候補を、回転中心を中心にして、回転角度だけ反時計回りに回転させ、回転させたものを、前記の複製結果の図形に追加する。
繰り返し回数が2回であれば、図形条件判定部5は、ここまでで複製結果の図形の完成とする。繰り返し回数が3回以上であれば、図形条件判定部5は、繰り返し部分の候補をさらに回転させ、回転させたものを、前記の複製結果の図形にさらに追加する処理を、繰り返し回数に達するまで繰り返す。図形条件判定部5は、複製結果の図形が出来上がったら、この複製結果の図形を、判定する図形と比較する。図形条件判定部5は、複製結果の図形と判定する図形が一致すれば、複製結果の図形の元となった繰り返し部分の候補は、真の繰り返し部分であったと判定する。図形条件判定部5は、複製結果の図形と判定する図形が一致しなければ、複製結果の図形の元となった繰り返し部分の候補は、真の繰り返し部分ではなかったと判定する。
ステップS450においてYesの場合、すなわち、図形条件記憶部3に記憶された回転条件で、判定する図形に一致する繰り返し部分の候補が1つでも見つかる場合、図形条件判定部5は、ステップS491において、回転対称性を持つという判定結果を目的図形候補生成部7に送る。具体的には、図形条件判定部5は、目的図形候補生成部7に対して、図形条件14は満たされているという判定結果である「真」の情報を送る。そして、図形条件判定部5は、図形が図形条件14を満たすか否かの判定処理を終了する。
一方、ステップS450においてNoの場合、すなわち、図形条件記憶部3に記憶された回転条件で、判定する図形に一致する繰り返し部分の候補が1つも見つからない場合、図形条件判定部5は、ステップS492において、回転対称性を持たないという判定結果を目的図形候補生成部7に送る。具体的には、図形条件判定部5は、目的図形候補生成部7に対して、図形条件14は満たされていないという判定結果である「偽」の情報を送る。そして、図形条件判定部5は、図形が図形条件14を満たすか否かの判定処理を終了する。
ステップS400においてNoの場合、すなわち、回転条件が設定されてない場合、図形条件判定部5は、ステップS410において、判定する図形を構成するセグメントを用いて、セグメント対のリストを作成する。具体的には、図形条件判定部5は、判定する図形を構成するセグメントに対し、全てのセグメントの組み合わせを表すために、各組み合わせに対応するセグメント対の全てを含むリストを作成する。
そして、図形条件判定部5は、ステップS420において、リストに次のセグメント対が残っているか否かを判定する。リストに次のセグメント対が残っている場合、すなわち、ステップS420においてYesの場合、図形条件判定部5は、ステップS430において、セグメント対から回転中心を計算できたか否かを判定する。
具体的には、図形条件判定部5は、まず、リストから任意のセグメント対を選ぶ。そして、図形条件判定部5は、選んだセグメント対の2つのセグメントから、図8〜図10で説明した方法によって回転中心の計算を試みる。図形条件判定部5は、回転中心を計算できなかった場合、すなわち、回転中心を見つけ出すことができなかった場合、選んだセグメント対をリストから削除する。回転中心を見つけ出すことができない場合の例は、セグメント対の一方が線分であり、他方が円弧である場合である。
図形条件判定部5は、セグメント対から回転中心を計算できた場合、すなわち、ステップS430においてYesの場合、図形条件判定部5は、ステップS440において、回転条件を用いれば、判定する図形に一致する繰り返し部分が存在するか否かを判定する。
具体的には、図形条件判定部5は、計算した回転中心から回転条件を導出する。そして、図形条件判定部5は、導出した回転条件を用いれば、判定する図形に一致する繰り返し部分が存在するかについて判定を行う。図形条件判定部5は、ステップS430で計算した回転中心が2つある場合には、一致判定処理を2回繰り返す。
図形条件判定部5は、まず、ステップS430で計算した回転中心から任意の1つを選び、図8〜図10で説明した方法によって回転中心から回転角度を求める。次に、図形条件判定部5は、繰り返し部分を探すため、判定する図形を構成するセグメントの全てを総当たりで組み合わせることによって、繰り返し部分の候補を生成し、各繰り返し部分の候補に対して一致判定を行う。図形条件判定部5は、この時点で、試す回転条件のうち、回転中心および回転角度は決定している。図形条件判定部5は、繰り返し回数については、まずは2回と仮定する。図形条件判定部5は、回転条件と繰り返し部分の候補から複製結果の図形を求める。複製結果の図形の具体的な求め方は、ステップS450と同様である。
図形条件判定部5は、複製結果の図形が出来上がったら、この複製結果の図形を、判定する図形と比較する。図形条件判定部5は、複製結果の図形と判定する図形とが一致すれば、複製結果の図形の元となった繰り返し部分の候補は、真の繰り返し部分であり、繰り返し部分が見つかったと判定する。図形条件判定部5は、複製結果の図形と判定する図形とが一致しなかった場合は、判定を保留する。そして、図形条件判定部5は、現在の繰り返し部分の候補に対して繰り返し回数を変えて複製結果の図形を生成するか、または現在の繰り返し部分の候補を却下して次の繰り返し部分の候補の判定へと移るかを決めるために、複製結果の図形のセグメントと判定する図形のセグメントとの対応関係を調べる。
具体的には、図形条件判定部5は、複製結果の図形を構成する第1のセグメントと、判定する図形を構成する第2のセグメントとの、位置および形状が同じ場合、第1および第2のセグメントは対応しているものと判定する。図形条件判定部5は、第1および第2のセグメントの対応付けを1対1で行い、既に対応付けられているセグメントに対して別のセグメントを対応付けることは行わない。
図形条件判定部5は、複製結果の図形を構成する全てのセグメントについて対応付けを試みた後に、対応付けのできなかった複製結果の図形のセグメントが残った場合には、現在の繰り返し部分の候補を却下して、次の繰り返し部分の候補の判定へと移る。
一方、図形条件判定部5は、複製結果の図形を構成する全てのセグメントについて対応付けを試みた後に、対応付けのできなかった複製結果の図形のセグメントが残らなかった場合には、判定する図形のセグメントの中に対応付けられなかったものがあると判定する。この場合、図形条件判定部5は、繰り返し回数を1回増やして3回と仮定し、複製から対応付けまでの処理を繰り返す。
図形条件判定部5は、繰り返し回数を1回増やすたびに複製結果のセグメントを増加して行く。従って、図形条件判定部5が繰り返し回数を1回ずつ増やしていくと、どこかの回数で、複製結果の図形と判定する図形とが一致する場合がある。この場合、図形条件判定部5は、繰り返し部分が見つかったと判定する。
一方、図形条件判定部5が繰り返し回数を増やしても、複製結果と判定する図形とが一致しない場合がある。この場合、複製結果の図形を構成するセグメントの中に、判定する図形のセグメントと対応付けられないものが発生するので、図形条件判定部5は、繰り返し部分の候補を却下する。図形条件判定部5は、全ての繰り返し部分の候補を却下した場合には、ステップS430で選んだセグメント対をリストから削除する。そして、図形条件判定部5は、繰り返し部分が見つからなかったと判定する。
ステップS440においてYesの場合、すなわち、ステップS430で計算した回転中心を基にした回転条件で、判定する図形に一致する繰り返し部分の候補が1つでも見つかる場合、図形条件判定部5は、ステップS491において、回転対称性を持つという判定結果を目的図形候補生成部7に送る。そして、図形条件判定部5は、図形が図形条件14を満たすか否かの判定処理を終了する。
一方、ステップS440においてNoの場合、すなわち、ステップS430で計算した回転中心を基にした回転条件で、判定する図形に一致する繰り返し部分の候補が1つも見つからない場合、図形条件判定部5は、ステップS420の処理へ進む。
なお、図形選択装置101は、作業者が、回転条件の3つの項目のうちの、1項目だけ、もしくは、2項目だけを設定できるようにしてもよい。この場合、図形条件判定部5は、ステップS440からステップS491へと進む条件に、直前に複製を行った際の回転条件の3項目のうち作業者によって設定されている項目に対して項目設定値と一致しているという条件を足しておく。これにより、図形条件判定部5は、作業者が部分的に行った設定を満たす形で回転対称性を持つときのみ、図形条件14が満たされていると判定することとなる。
ステップS420においてNoの場合、すなわち、リストに次のセグメント対が残っていない場合、図形条件判定部5は、ステップS492において、回転対称性を持たないという判定結果を目的図形候補生成部7に送る。そして、図形条件判定部5は、図形が図形条件14を満たすか否かの判定処理を終了する。
ステップS420においてYesの場合、すなわち、リストに次のセグメント対が残っている場合、図形条件判定部5は、ステップS430において、セグメント対から回転中心を計算できたか否かを判定する。
ステップS430においてNoの場合、すなわち、セグメント対から回転中心を計算できなかった場合、図形条件判定部5は、ステップS420の処理へ進む。ステップS430においてYesの場合、すなわち、セグメント対から回転軸を計算できた場合、図形条件判定部5は、ステップS440の処理へ進む。
図形選択装置101は、ステップS440の後、ステップS491において回転対称性を持つという判定結果を目的図形候補生成部7に送るか、または、ステップS492において回転対称性を持たないという判定結果を目的図形候補生成部7に送るまで、ステップS420〜S440の処理を繰り返す。
(図形条件15)
図形条件15は、判定する図形が並進対称性を持っているという条件である。本実施の形態における並進条件は、並進ベクトルおよび繰り返し回数の2つから成る条件であるとする。図形条件15のパラメータは、並進条件であるが、このパラメータを設定するか否かは作業者が選ぶことができる。作業者は、パラメータを設定する場合には、並進条件の2つの項目全てを設定しなくてはならない。一方、作業者は、パラメータを設定しない場合は、全ての項目を設定しないままにしなくてはならない。作業者は、入力装置22に並進条件を入力することによって並進条件を設定する。
図2のステップS40において、作業者が設定または指定を行う場合、入力装置22は、作業者からの指示を受付ける。この場合において、作業者が新たにパラメータを設定する場合、または、既に設定されているパラメータを変更する場合、作業者は、並進条件の2つの項目のうち、繰り返し回数を数値で直接指定する。また、作業者は、並進ベクトルの要素値を数値で設定するか、またはセグメント指定部18で図面データ記憶部2に含まれるセグメントを2つ指定することで並進ベクトルを設定する。
そして、条件編集部13は、作業者が指定した並進条件を図形条件記憶部3に格納する。並進させると一致する2つのセグメントからは、図12または図13に示すような並進ベクトルを求めることができる。
ここで、図12および図13を用いて、並進ベクトルの計算方法を説明する。2つのセグメントのうちの一方のセグメントの両端点の中点から、他方のセグメントの両端点の中点へ向かうベクトルを、並進ベクトルとする。条件編集部13または作業者は、並進ベクトルの起点を何れのセグメントの中点にするかを任意に決定する。
図12は、並進ベクトルの第1の計算方法を説明するための図であり、図13は、並進ベクトルの第2の計算方法を説明するための図である。図12では、2つの線分のセグメントSd1,Sd2から求められた並進ベクトルD1を示している。また、図13では、2つの円弧のセグメントSd3,Sd4から求められた並進ベクトルD2を示している。図2のステップS50において、図形条件判定部5が図形条件15を判定する場合、図形条件判定部5は、以下の図14に示すフローチャートに従って動作する。
図14は、並進対称性判定の処理手順を示すフローチャートである。図形条件判定部5は、図形条件15の判定を開始すると、ステップS500において、図形条件記憶部3に並進条件が記憶されているか否かに基づいて、並進条件が設定されているか否かを判定する。
並進条件が設定されている場合、すなわち、ステップS500においてYesの場合、図形条件判定部5は、ステップS550において、並進条件を用いれば、判定する図形に一致する繰り返し部分が存在するか否かを判定する。このとき、図形条件判定部5は、判定する図形を構成するセグメントを組み合わせて繰り返し部分の候補を生成する。そして、図形条件判定部5は、生成した繰り返し部分の候補を、図形条件記憶部3に記憶された並進条件、つまり、並進ベクトル、および、繰り返し回数に従って複製する。図形条件判定部5は、複製した繰り返し部分の候補が、判定する図形に一致する図形となるか否かの判定を行う。
図形条件判定部5は、繰り返し部分の候補を生成するためのセグメントの組み合わせを、判定する図形を構成するセグメントの総当たりで行い、全ての組み合わせを生成する。この生成されたセグメントの組み合わせの1つ1つが繰り返し部分の候補となる。次に、図形条件判定部5は、各繰り返し部分の候補を、並進条件に従って複製していき図形を生成する。この図形を複製結果の図形と呼ぶ。
図形条件判定部5は、複製結果の図形を得るために、まず、繰り返し部分を元の位置のままで複製する。次に、図形条件判定部5は、繰り返し部分を、並進ベクトルの分だけ並進移動させ、並進移動させたものを前記の複製結果の図形に追加する。
繰り返し回数が2回であれば、図形条件判定部5は、ここまでで複製結果の図形の完成とする。繰り返し回数が3回以上であれば、図形条件判定部5は、繰り返し部分をさらに並進移動させ、並進移動させたものを、前記の複製結果の図形にさらに追加する処理を、繰り返し回数に達するまで繰り返す。図形条件判定部5は、複製結果の図形が出来上がると、この複製結果の図形を、判定する図形と比較する。図形条件判定部5は、複製結果の図形と判定する図形とが一致すれば、複製結果の図形の元となった繰り返し部分の候補は、真の繰り返し部分であったと判定する。図形条件判定部5は、複製結果の図形と判定する図形とが一致しなければ、複製結果の図形の元となった繰り返し部分の候補は、真の繰り返し部分ではなかったと判定する。
ステップS550においてYesの場合、すなわち、図形条件記憶部3に記憶された並進条件で、判定する図形に一致する繰り返し部分の候補が1つでも見つかる場合、図形条件判定部5は、ステップS591において、並進対称性を持つという判定結果を目的図形候補生成部7に送る。具体的には、図形条件判定部5は、目的図形候補生成部7に対して、図形条件15は満たされているという判定結果である「真」の情報を送る。そして、図形条件判定部5は、図形が図形条件15を満たすか否かの判定処理を終了する。
一方、ステップS550においてNoの場合、すなわち、図形条件記憶部3に記憶された並進条件で、判定する図形に一致する繰り返し部分の候補が1つも見つからない場合、図形条件判定部5は、ステップS592において、並進対称性を持たないという判定結果を目的図形候補生成部7に送る。具体的には、図形条件判定部5は、目的図形候補生成部7に対して、図形条件15は満たされていないという判定結果である「偽」の情報を送る。そして、図形条件判定部5は、図形が図形条件15を満たすか否かの判定処理を終了する。
ステップS500においてNoの場合、すなわち、図形に並進条件が与えられていない場合、図形条件判定部5は、ステップS510において、判定する図形を構成するセグメントを用いて、セグメント対のリストを作成する。具体的には、図形条件判定部5は、判定する図形を構成するセグメントに対し、全てのセグメントの組み合わせを表すために、各組み合わせに対応するセグメント対の全てを含むリストを作成する。
そして、図形条件判定部5は、ステップS520において、リストに次のセグメント対が残っているか否かを判定する。リストに次のセグメント対が残っている場合、すなわち、ステップS520においてYesの場合、図形条件判定部5は、ステップS530において、セグメント対から並進ベクトルを計算できたか否かを判定する。
具体的には、図形条件判定部5は、まず、リストから任意のセグメント対を選ぶ。そして、図形条件判定部5は、選んだセグメント対の2つのセグメントから、図12および図13で説明した方法によって並進ベクトルの計算を試みる。図形条件判定部5は、並進ベクトルを計算できなかった場合、すなわち、並進ベクトルを見つけ出すことができなかった場合、選んだセグメント対をリストから削除する。並進ベクトルを見つけ出すことができない場合の例は、セグメント対の一方が線分であり、他方が円弧である場合である。
図形条件判定部5は、セグメント対から並進ベクトルを計算できた場合、すなわち、ステップS530においてYesの場合、図形条件判定部5は、ステップS540において、並進ベクトルを用いれば、判定する図形に一致する繰り返し部分が存在するか否かを判定する。
具体的には、図形条件判定部5は、計算した並進ベクトルから並進条件を導出する。そして、図形条件判定部5は、導出した並進条件を用いれば、判定する図形に一致する繰り返し部分が存在するかについて判定を行う。図形条件判定部5は、繰り返し部分を探すため、総当たりで繰り返し部分の候補を生成し、各繰り返し部分の候補に対して一致判定を行う。
図形条件判定部5は、一致判定を行う際には、ステップS530で計算した並進ベクトルを用いる。このとき、図形条件判定部5は、繰り返し回数については、まずは2回と仮定する。図形条件判定部5は、並進条件に従って繰り返し部分の候補を複製した結果の図形を求める。複製した結果の図形の具体的な求め方は、ステップS550と同様である。図形条件判定部5は、複製結果の図形が出来上がると、この複製結果の図形を、判定する図形と比較する。図形条件判定部5は、複製結果の図形と判定する図形が一致すれば、複製結果の図形の元となった繰り返し部分の候補は、真の繰り返し部分であり、繰り返し部分が見つかったと判定する。図形条件判定部5は、複製結果の図形と判定する図形が一致しなかった場合は、判定を保留する。そして、図形条件判定部5は、現在の繰り返し部分の候補に対して繰り返し回数を変えて複製結果の図形を生成するか、または現在の繰り返し部分の候補を却下して次の繰り返し部分の候補の判定へと移るかを決めるために、複製結果の図形のセグメントと判定する図形のセグメントとの対応関係を調べる。
具体的には、図形条件判定部5は、複製結果の図形を構成する第1のセグメントと、判定する図形を構成する第2のセグメントとの、位置および形状が同じ場合、第1および第2のセグメントは対応しているものと判定する。図形条件判定部5は、第1および第2のセグメントの対応付けを1対1で行い、既に対応付けられているセグメントに対して別のセグメントを対応付けることは行わない。
図形条件判定部5は、複製結果の図形を構成する全てのセグメントについて対応付けを試みた後に、対応付けのできなかった複製結果の図形のセグメントが残った場合には、現在の繰り返し部分の候補を却下して、次の繰り返し部分の候補の判定へと移る。
一方、図形条件判定部5は、複製結果の図形を構成する全てのセグメントについて対応付けを試みた後に、対応付けのできなかった複製結果の図形のセグメントが残らなかった場合には、判定する図形のセグメントの中に対応付けられなかったものがあると判定する。この場合、図形条件判定部5は、繰り返し回数を1回増やして3回と仮定し、複製から対応付けまでの処理を繰り返す。
図形条件判定部5は、繰り返し回数を1回増やすたびに複製結果のセグメントを増加して行く。従って、図形条件判定部5が繰り返し回数を1回ずつ増やしていくと、どこかの回数で、複製結果の図形と判定する図形とが一致する場合がある。この場合、図形条件判定部5は、繰り返し部分が見つかったと判定する。
一方、図形条件判定部5が繰り返し回数を増やしても、複製結果の図形と判定する図形とが一致しない場合がある。この場合、複製結果の図形を構成するセグメントの中に、判定する図形のセグメントと対応付けられないものが発生するので、図形条件判定部5は、繰り返し部分の候補を却下する。図形条件判定部5は、全ての繰り返し部分の候補を却下した場合には、ステップS530で選んだセグメント対をリストから削除する。そして、図形条件判定部5は、繰り返し部分が見つからなかったと判定する。
ステップS540においてYesの場合、すなわち、ステップS530で計算した並進ベクトルを基にした並進条件で、判定する図形に一致する繰り返し部分の候補が1つでも見つかる場合、図形条件判定部5は、ステップS591において、並進対称性を持つという判定結果を目的図形候補生成部7に送る。そして、図形条件判定部5は、図形が図形条件15を満たすか否かの判定処理を終了する。
一方、ステップS540においてNoの場合、すなわち、ステップS530で計算した並進ベクトルを基にした並進条件で、判定する図形に一致する繰り返し部分の候補が1つも見つからない場合、図形条件判定部5は、ステップS520の処理へ進む。
なお、図形選択装置101は、作業者が、並進条件の2つの項目のうちの、1項目だけを設定できるようにしてもよい。この場合、図形条件判定部5は、ステップS540からステップS591へと進む条件に、直前に複製を行った際の並進条件の2項目のうち作業者によって設定されている項目に対して項目設定値と一致しているという条件を足しておく。これにより、図形条件判定部5は、作業者が部分的に行った設定を満たす形で並進対称性を持つときのみ、図形条件15が満たされていると判定することとなる。
ステップS520においてNoの場合、すなわち、リストに次のセグメント対が残っていない場合、図形条件判定部5は、ステップS592において、並進対称性を持たないという判定結果を目的図形候補生成部7に送る。そして、図形条件判定部5は、図形が図形条件15を満たすか否かの判定処理を終了する。
ステップS520においてYesの場合、すなわち、リストに次のセグメント対が残っている場合、図形条件判定部5は、ステップS530において、セグメント対から並進ベクトルを計算できたか否かを判定する。
ステップS530においてNoの場合、すなわち、セグメント対から並進ベクトルを計算できなかった場合、図形条件判定部5は、ステップS520の処理へ進む。ステップS530においてYesの場合、すなわち、セグメント対から並進ベクトルを計算できた場合、図形条件判定部5は、ステップS540の処理へ進む。
図形選択装置101は、ステップS540の後、ステップS591において並進対称性を持つという判定結果を目的図形候補生成部7に送るか、または、ステップS592において並進対称性を持たないという判定結果を目的図形候補生成部7に送るまで、ステップS520〜S540の処理を繰り返す。
(図形条件16)
図形条件16は、判定する図形を構成するセグメントの中に、図面データ記憶部2に記憶されている特定のセグメントが存在しているという条件である。図形条件16のパラメータは、判定する図形を構成するセグメントの中に存在する必要があるセグメントのセグメント番号のリストである。
図2のステップS40において、作業者が設定または指定を行う場合、入力装置22は、作業者からの指示を受付ける。この場合において、作業者が図形条件16を追加する場合、または図形条件16のパラメータを変更する場合、作業者が、セグメント指定部18を用いて1つまたは複数のセグメントを指定する。条件編集部13は、指定されたセグメントのセグメント番号をリストにして図形条件記憶部3に格納する。
また、ステップS50において、図形条件判定部5が、図形条件16を判定する。このとき、図形条件判定部5は、判定を行う図形を構成するセグメントのセグメント番号の中に、図形条件記憶部3で記憶されているリスト内のセグメント番号が全て存在するか否かを確認する。図形条件判定部5は、全てのセグメント番号が存在すれば、図形条件16は満たされていると判定し、1つのセグメント番号でも存在しないものがあれば、図形条件16は満たされていないと判定する。
(図形条件17)
図形条件17は、判定する図形と指定点との間の幾何的関係の条件である。図形条件17のパラメータは、指定点と、幾何的関係の種類と、の2つである。幾何的関係の種類は、判定する図形が指定点を「含む」と、判定する図形が指定点を「含まない」の2種類である。
図2のステップS40において、作業者が設定または指定を行う場合、入力装置22は、作業者からの指示を受付ける。この場合において、作業者が図形条件17を追加する場合、または図形条件17のパラメータを変更する場合、条件編集部13は作業者が指定した点と、幾何的関係の種類とを、図形条件記憶部3に格納する。作業者は、点を指定する際には、点指定部16を用いる。
また、ステップS50において、図形条件17を判定する際に、図形条件判定部5は、まず、判定する図形が閉図形であるか否かを判定する。閉図形でない場合、図形条件判定部5は、図形条件17は満たされていないと判定して処理を終了する。一方、閉図形である場合、図形条件判定部5は、内外関係の判定処理へ進む。
図形条件判定部5は、この時点で判定する図形が閉図形であることが分かっているので、閉図形と点との内外関係の判定を行うことで、指定点が判定する図形の内側と外側との何れにあるかを判定する。
図形条件判定部5は、幾何的関係の種類が「含む」の場合、指定点が、判定する図形の内側であれば、図形条件17は満たされていると判定し、指定点が判定する図形の外側であれば、図形条件17は満たされていないと判定する。
また、図形条件判定部5は、幾何的関係の種類が「含まない」の場合、指定点が、判定する図形の外側であれば、図形条件17は満たされていると判定し、指定点が判定する図形の内側であれば、図形条件17は満たされていないと判定する。
(図形条件18)
図形条件18は、判定する図形と指定閉図形との間の幾何的関係の条件である。図形条件18のパラメータは、指定閉図形と、幾何的関係の種類と、の2つである。幾何的関係の種類は、判定する図形と指定閉図形との関係が「交わる」および「交わらない」と、判定する図形が指定閉図形を「包含する」および「包含しない」と、判定する図形が指定閉図形に「包含される」および「包含されない」との合計6種類である。
条件編集部13は、図2のステップS40において、作業者が図形条件18を追加する場合、または図形条件18のパラメータを変更する場合、作業者が指定した閉図形と、幾何的関係の種類とを、図形条件記憶部3に格納する。作業者は、閉図形を指定する際には、閉図形指定部17を用いる。
図形条件判定部5は、図2のステップS50において、図形条件18を判定する際に、まず、判定する図形が閉図形であるか否かを確認する。閉図形でなかった場合、図形条件判定部5は、図形条件18は満たされていないと判定し処理を終了する。一方、閉図形であった場合、図形条件判定部5は、図形条件18は満たされる可能性があると判定し、ブーリアン演算へ進む。図形条件判定部5は、この時点で、判定する図形が閉図形であることが分かっているので、閉図形同士のブーリアン演算を行うことで、図形条件18を満たすか否かを判定する。
幾何的関係の種類が、「交わる」または「交わらない」の場合、図形条件判定部5は、図形条件記憶部3に格納された指定閉図形と、判定する図形と、に対してブーリアン演算の積演算を行う。
そして、幾何的関係の種類が、「交わる」の場合、図形条件判定部5は、演算の結果に残った部分が存在すれば、図形条件18は満たされていると判定し、演算の結果に残った部分が存在しなければ図形条件18は満たされていないと判定する。
また、幾何的関係の種類が、「交わらない」の場合、図形条件判定部5は、演算の結果に残った部分が存在しなければ、図形条件18は満たされていると判定し、演算の結果に残った部分が存在すれば、図形条件18は満たされていないと判定する。
幾何的関係の種類が、「包含する」または「包含しない」の場合、図形条件判定部5は、図形条件記憶部3に格納された指定閉図形から、判定する図形を引くブーリアン演算の差演算を行う。
そして、幾何的関係の種類が、「包含する」の場合、図形条件判定部5は、演算の結果に残った部分が存在しなければ、図形条件18は満たされていると判定し、演算の結果に残った部分が存在すれば、図形条件18は満たされていないと判定する。
また、幾何的関係の種類が、「包含しない」の場合、図形条件判定部5は、演算の結果に残った部分が存在すれば、図形条件18は満たされていると判定し、演算の結果に残った部分が存在しなければ、図形条件18は満たされていないと判定する。
幾何的関係の種類が、「包含される」または「包含されない」の場合は、図形条件判定部5は、判定する図形から、図形条件記憶部3に格納された指定閉図形を引くブーリアン演算の差演算を行う。
そして、幾何的関係の種類が、「包含される」の場合、図形条件判定部5は、演算の結果に残った部分が存在しなければ、図形条件18は満たされていると判定し、演算の結果に残った部分が存在すれば、図形条件18は満たされていないと判定する。
また、幾何的関係の種類が、「包含されない」の場合、図形条件判定部5は、演算の結果に残った部分が存在すれば、図形条件18は満たされていると判定し、演算の結果に残った部分が存在しなければ、図形条件18は満たされていないと判定する。
つぎに、各セグメント条件の具体例について説明する。セグメント条件は、作業者が選択しようとしている目的図形を構成する全てのセグメントが満たす必要のある条件である。本実施の形態のセグメント条件は、以下のセグメント条件1〜7である。
(セグメント条件1)
セグメント条件1は、判定するセグメントが、指定された属性を持っているという条件である。属性の具体例は、色、線種、太さといった装飾の情報であるが、個々のセグメントに付与できる属性であれば何れの情報であってもよい。セグメント条件のパラメータは、属性の内容である。
条件編集部13は、ステップS40においてセグメント条件1を追加する場合またはセグメント条件1のパラメータを変更する場合、作業者が指示した属性の内容をセグメント条件記憶部4に格納する。
セグメント条件判定部6は、ステップS50においてセグメント条件を判定する際に、判定を行うセグメントのセグメント番号に基づいて、図面データ記憶部2からセグメントに付与されている属性を全て抽出する。セグメント条件判定部6は、抽出した属性の中に、セグメント条件記憶部4内に格納されているパラメータである属性と同じものがあれば、セグメント条件1は満たされていると判定する。一方、セグメント条件判定部6は、抽出した属性の中に、セグメント条件記憶部4内に格納されているパラメータである属性と同じものがなければ、セグメント条件1は満たされていないと判定する。
(セグメント条件2)
セグメント条件2は、判定するセグメントの曲率が指定された曲率の範囲内に入っているという条件である。セグメント条件2のパラメータは、1つ以上の曲率の最小値と最大値との組である。
条件編集部13は、ステップS40においてセグメント条件2を追加する場合またはセグメント条件2のパラメータを変更する場合、作業者が指示した曲率の最小値と最大値との組を、1つ以上セグメント条件記憶部4に格納する。
セグメント条件判定部6は、ステップS50においてセグメント条件を判定する際に、まず、判定を行うセグメントの曲率の値を計算する。セグメント条件判定部6は、セグメントの曲率が連続的に変化するものである場合、曲率の取る範囲を求める。次に、セグメント条件判定部6は、セグメント条件記憶部4に格納されている曲率の組全てに対し、計算した曲率の値、もしくは、曲率の範囲が、組の最小値以上で最大値以下に収まるか否かを判定する。セグメント条件判定部6は、収まる組が1つでも存在すれば、セグメント条件2は満たされていると判定し、収まる組が1つも無ければ、セグメント条件2は満たされていないと判定する。
作業者が、図2のステップS40において、セグメント条件2に線分または半径rの円弧の何れかという指定を追加する場合がある。この場合、直線の曲率は0であり、半径rの円弧の曲率は1/rであるので、セグメント条件判定部6は、最小値が0で最大値が0の組と、最小値が1/rで最大値が1/rの組と、の2つの組をセグメント条件記憶部4に格納する。
(セグメント条件3)
セグメント条件3は、判定するセグメントが線分ならば、線分の長さが指定された範囲内に入っているという条件である。セグメント条件3のパラメータは、1つ以上の長さの最小値と最大値との組である。
作業者が、図2のステップS40においてセグメント条件3を追加する場合またはセグメント条件3のパラメータを変更する場合、条件編集部13は、作業者が指示した長さの最小値と最大値との組を1つ以上セグメント条件記憶部4に格納する。
セグメント条件判定部6は、ステップS50においてセグメント条件3を判定する際に、まず、セグメントが線分であるか否かを判定する。セグメント条件判定部6は、セグメントが線分でなかった場合には、セグメント条件3は満たされていると判定する。一方、セグメント条件判定部6は、セグメントが線分であった場合には、この線分の長さを計算する。そして、セグメント条件判定部6は、計算した長さが、セグメント条件記憶部4に格納されている長さの組全てに対し、これらの組の最小値以上かつ最大値以下に収まるか否かを判定する。セグメント条件判定部6は、収まる組が1つでも存在すれば、セグメント条件3は満たされていると判定し、収まる組が1つも無ければ、セグメント条件3は満たされていないと判定する。
(セグメント条件4)
セグメント条件4は、判定するセグメントが円弧ならば、この円弧の円弧中心角が指定された範囲内に入っているという条件である。セグメント条件4のパラメータは、1つ以上の中心角の最小値と最大値との組である。
作業者が、図2のステップS40においてセグメント条件4を追加する場合またはセグメント条件4のパラメータを変更する場合、条件編集部13は、作業者が指示した中心角の最小値と最大値との組を1つ以上セグメント条件記憶部4に格納する。
セグメント条件判定部6は、ステップS50においてセグメント条件4を判定する際に、まず、セグメントが一定曲率の曲線であるか否かを判定する。セグメント条件判定部6は、セグメントが一定曲率の曲線でなかった場合には、セグメント条件4は満たされていると判定する。一方、セグメント条件判定部6は、セグメントが一定曲率の曲線であった場合には、この曲線を円弧とみなしたときの中心角を計算する。そして、セグメント条件判定部6は、計算した中心角が、セグメント条件記憶部4に格納されている中心角の組全てに対し、これらの組の最小値以上かつ最大値以下に収まるか否かを判定する。セグメント条件判定部6は、収まる組が1つでも存在すれば、セグメント条件4は満たされていると判定し、収まる組が1つも無ければ、セグメント条件4は満たされていないと判定する。
(セグメント条件5)
セグメント条件5は、セグメントの両端で接線方向かつ外側に向かうベクトルと、座標系の軸のベクトルとが成す角度が、指定された角度の範囲内に入っているという条件である。セグメント条件5のパラメータは、1つ以上の角度の最小値と最大値との組である。
作業者が、図2のステップS40においてセグメント条件5を追加する場合またはセグメント条件5のパラメータを変更する場合、条件編集部13は、作業者が指示した角度の最小値と最大値との組を1つ以上セグメント条件記憶部4に格納する。
セグメント条件判定部6は、ステップS50においてセグメント条件を判定する際に、まず、判定を行うセグメントの両端で接線方向かつ外側に向かうベクトルを計算する。次に、セグメント条件判定部6は、計算した2つのベクトルの各々について、X軸正方向のベクトルと成す角度を計算する。このセグメント条件判定部6が計算する角度について図15および図16を用いて説明する。
ここでは、図15および図16を用いて、セグメントと座標系との成す角度について説明する。図15は、線分のセグメントに対する角度を示す図であり、図16は、円弧のセグメントに対する角度を示す図である。図15は、線分のセグメントSe1に対してセグメント条件判定部6が計算する角度E11,E12を示し、図16は、円弧のセグメントSe2に対してセグメント条件判定部6が計算する角度E31,E32を示している。
セグメント条件判定部6は、計算した2つの角度のうちの一方が、セグメント条件記憶部4に格納されている角度の組全てに対し、これらの組の最小値以上かつ最大値以下に収まるか否かを判定する。セグメント条件判定部6は、収まる組が1つでも存在すれば、2つの角度のうちの一方の角度は指定範囲内であると判定する。
セグメント条件判定部6は、2つの角度のうちの他方についても、2つの角度のうちの一方と同様の判定を行う。セグメント条件判定部6は、2つの角度の両方が指定範囲内であった場合には、セグメント条件5が満たされていると判定し、2つの角度の何れか一方でも指定範囲内でなかった場合には、セグメント条件5が満たされていないと判定する。
図15に示す線分のセグメントSe1の場合、セグメント条件判定部6は、セグメントSe1の両端で接線方向かつ外側に向かうベクトルE1,E2を計算する。そして、セグメント条件判定部6は、ベクトルE1について、X軸正方向のベクトルE3と成す角度E11を計算し、ベクトルE2について、X軸正方向のベクトルE3と成す角度E12を計算する。セグメント条件判定部6は、計算した角度E11,E12の両方が指定範囲内であった場合には、セグメント条件5が満たされていると判定する。
図16に示す線分のセグメントSe2の場合、セグメント条件判定部6は、セグメントSe2の両端で接線方向かつ外側に向かうベクトルE21,E22を計算する。そして、セグメント条件判定部6は、ベクトルE21について、X軸正方向のベクトルE23と成す角度E31を計算し、ベクトルE22について、X軸正方向のベクトルE23と成す角度E32を計算する。セグメント条件判定部6は、計算した角度E31,E32の両方が指定範囲内であった場合には、セグメント条件5が満たされていると判定する。
なお、ここでは角度の基準とするベクトルをX軸正方向のベクトルに固定する場合について説明したが、図形選択装置101は、作業者が、図面の座標系で定義される任意のベクトルをパラメータに設定できるようにしてもよい。
(セグメント条件6)
セグメント条件6は、指定されているレイヤに判定対象のセグメントが属していないという条件である。セグメント条件6のパラメータは、セグメントが属さないレイヤの名前である。
作業者は、図2のステップS40においてセグメント条件6を追加する場合またはセグメント条件6のパラメータを変更する場合、レイヤ指定部15を用いてレイヤを1つ指定する。条件編集部13は、作業者によって指定されたレイヤの名前をセグメント条件記憶部4に格納する。
セグメント条件判定部6は、ステップS50においてセグメント条件6を判定する際に、判定を行うセグメントのセグメント番号に基づいて、図面データ記憶部2からセグメントが属するレイヤの名前を取得する。セグメント条件判定部6は、取得したレイヤの名前とセグメント条件記憶部4に記憶されているレイヤの名前とが異なれば、セグメント条件6は満たされていると判定する。一方、セグメント条件判定部6は、取得したレイヤの名前とセグメント条件記憶部4に記憶されているレイヤの名前とが同じであれば、セグメント条件6は満たされていないと判定する。なお、作業者は、セグメントが属さないレイヤを複数指定したい場合には、パラメータが異なる複数のセグメント条件6を設定してもよい。
(セグメント条件7)
セグメント条件7は、判定するセグメントは図面データ記憶部2に記憶されている特定のセグメントではないという条件である。セグメント条件7のパラメータは、該当してはならないセグメント番号のリストである。
作業者は、図2のステップS40においてセグメント条件7を追加する場合、またはセグメント条件7のパラメータを変更する場合、セグメント指定部18を用いて、1つまたは複数のセグメントを指定する。条件編集部13は、指定されたセグメントのセグメント番号のリストをセグメント条件記憶部4に格納する。
セグメント条件判定部6は、ステップS50においてセグメント条件7を判定する際に、セグメント条件記憶部4のセグメント番号のリストの中に、判定を行うセグメントのセグメント番号が存在するか否かを確認する。セグメント条件判定部6は、セグメント番号が存在しなければセグメント条件7は満たされていると判定し、セグメント番号が存在すればセグメント条件7は満たされていないと判定する。
ここで、複数の図形条件および複数のセグメント条件に共通する補足事項について説明する。図形選択装置101は、数値計算誤差が問題になる場合には閾値を用いる。図形選択装置101は、角度用の閾値および長さ用の閾値のように複数の閾値を用いてもよい。図形選択装置101は、図形条件2の面積の最小値および最大値のような、整数でない値によって定義された範囲に入っているか否かの判定を行う場合がある。このような場合、図形選択装置101は、最小値を下回ったまたは最大値を上回った場合であっても、この下回った量または上回った量が、面積の閾値の範囲内ならば、範囲内に収まっていると判定してもよい。
また、図形選択装置101は、図形条件3の判定処理における半径の比較においても、比較する2つの半径の差が半径の閾値の範囲内であれば、半径は同じであるとみなしてもよい。また、作業者が、これらの閾値を指定してもよい。
また、図形選択装置101は、閉ループまたはコンポーネント数に関連する条件のように、セグメントとセグメントとの接続が問題になる条件では、セグメントの端点と別のセグメントの端点との位置ずれについて閾値を設けてもよい。この場合、図形選択装置101は、閾値内の位置ずれである場合、セグメント同士が接続していると判定してもよい。また、作業者が、これらの閾値を指定してもよい。
図形選択装置101は、パラメータであるセグメント番号を指定する条件を設定する際に、セグメント番号の代わりに、点、線、連続した複数の線、マウスで描いた自由曲線、多角形または円への包含関係または交差関係を用いてもよい。
また、図形選択装置101は、図形条件18を発展させて、判定する図形と、点、線、連続した複数の線またはマウスで描いた自由曲線のうちの何れか1つと、の包含関係または交差関係を設定できるようにしてもよい。
以上、説明したように、本実施の形態の図形選択装置101は、セグメント条件または図形条件を適切に設定することで、閉ループまたは連続線以外の図形に対しても、少ない操作回数および短い操作時間で選択可能になるという効果がある。
また、図形選択装置101は、セグメント条件と図形条件を適切に設定することで、個別のセグメントの選択操作を減らすことができる。さらに、図形選択装置101は、プリセット条件から生成された目的図形の候補の数が少なければ、セグメントの選択またはパラメータの調整を行わせる必要がなくなる。この場合、図形選択装置101は、目的図形の候補の中から1つの図形を選ぶという操作だけで、目的の図形を選択することができる。このような操作回数の減少の効果、特にセグメント選択操作の減少の効果は、入力装置22が、タッチパネルといった細かな操作が難しい装置である場合には、操作時間の短縮および作業者の作業負担の軽減に大きく寄与する。
なお、図形条件判定部5は、上述した図形条件1〜18以外の図形条件を用いて図形を判定してもよい。また、セグメント条件判定部6は、上述したセグメント条件1〜7以外のセグメント条件を用いて図形を判定してもよい。
このように、実施の形態1によれば、図形条件またはセグメント条件に基づいて、目的図形の候補を生成するので、図形選択装置101は、従来の閉ループ選択装置および連続線選択装置では選択できない種類の図形を、少ない操作回数で選択できる。また、図形選択装置101は、図面に存在するセグメントまたは分岐の数が多い場合でも、入力する図面の性質または選択する図形の性質に合わせた図形条件またはセグメント条件を設定すれば、少ない操作回数で目的の図形を選択できる。
また、図形選択装置101は、種々の図形条件およびセグメント条件を組み合わせることで、種々の図形に対して、少ない操作回数で目的図形の候補を生成できる。さらに、作業者が適宜図形条件またはセグメント条件を柔軟に変更できるので、図形選択装置101は、作業者の知見を随時反映させたうえで、操作回数を減らすことができる。
また、図形選択装置101は、図面に対応する図面情報を利用した図形条件またはセグメント条件を追加することによって、表示される目的図形の候補を大幅に減らすことが可能となる。従って、図形選択装置101は、選択にかかる操作回数を大幅に減らすことができる。
また、条件自動更新部31が、図形条件またはセグメント条件を適切な条件に自動的に更新するので、図形選択装置101は、作業者による条件の編集が無い場合であっても、目的図形候補生成部7が更新後の条件で再生成する目的図形の候補を改善することができる。また、図形選択装置101は、前回生成された目的図形の候補に基づいて設定できる条件を、自動的に設定するので、作業者による操作回数を減らすことができる。
実施の形態2.
つぎに、図1、図2、図17〜図21を用いてこの発明の実施の形態2について説明する。なお、実施の形態2では、実施の形態1と同様の図形選択装置101を用いるので、その構成の説明は省略する。実施の形態2では、プリセット条件記憶部11が、目的図形に適した図形条件9を格納しておく。そして、図形選択装置101が、図形条件9に基づいて、目的図形である閉ループを包含した閉ループの図形候補を生成する。
本実施の形態では、図形選択装置101が、プリセット条件記憶部11に、図形条件9である閉ループを包含した閉ループを格納しておく。図形選択装置101は、この図形条件9を用いることによって、部品となる部材の中に削り残す部分があるポケット加工個所を選択する。
以下、図17〜図21を用いて、ポケット加工個所のような閉ループを包含した閉ループを表す図形を選択する処理について説明する。図17〜図21では、ポケット加工される部品を示している。
図17は、実施の形態2において図形選択装置に入力される図面の一例を示す図である。図17に示す図面51〜53の図面データは、図2のステップS20において図面データ入力部1に読み込ませる図面データである。
図面51は、図面データ入力部1に読み込ませる部品の平面図を示している。図面52は、図面データ入力部1に読み込ませる部品の正面図を示し、図面53は、図面データ入力部1に読み込ませる部品の側面図を示している。
図18は、図17に示した図面に対応する部品を斜めから見た図である。図18では、図面51〜53に対応する部品50の斜視図を示している。図19〜図21は、図面51〜53に対応する部品50の平面図を示している。図19は、図17の図面に対して作業者が目的とする加工箇所を示す図である。図19では、斜線部分が、作業者の目的とする加工箇所F1を示している。図20は、図17の図面に対して作業者が目的とする輪郭図形を示す図である。図20では、太線部分が、加工箇所F1の輪郭を表す輪郭図形F2,F3を示している。この輪郭図形F2,F3が、作業者の目的とする図形であるとする。図21は、図17の図面に対して作業者が選択候補を除外する目的で指定した特定のセグメントを示す図である。
作業者が、図2のステップS10において、図面を再利用しないことを選択したとする。この場合、図面データ入力部1は、ステップS20において、CADデータから図面データを読み出して図面データ記憶部2に入力する。この後、ステップS30では、プリセット条件設定部12が、予めプリセット条件記憶部11に格納されている図形条件9を図形条件記憶部3に設定する。
そして、作業者が、ステップS40において、条件編集部13に対して、セグメント条件7を追加したとする。セグメント条件7は、判定するセグメントは図面データ記憶部2に記憶されている特定のセグメントではないという条件である。ここでは、作業者が、セグメント条件7のパラメータ設定の際に、図21に示した線分F4を指定した場合について説明する。
作業者が、ステップS40においてセグメント条件の編集を終えると、目的図形候補生成部7が、ステップS50において、目的図形の候補を生成する。目的図形候補生成部7は、セグメント条件7により、平面図の最も外側の四角形の一辺に相当するセグメントは、目的図形の候補の生成に用いないと判定する。従って、目的図形候補生成部7は、線分F4を含んだ四角形から閉ループを生成することはない。
このため、閉ループを含む閉ループは、図20において、太線で表した輪郭図形F2,F3のみとなる。従って、目的図形候補生成部7は、目的図形の候補である輪郭図形F2,F3のみを目的図形候補記憶部8に記憶させる。目的図形選択部9は、ステップS60において、目的図形候補記憶部8に記憶された輪郭図形F2,F3を表示装置21に表示させる。
表示装置21が目的図形の候補を表示しているので、作業者は、目的図形の候補生成をやり直すかとの問いに対して「いいえ」と回答する。これにより、入力装置22は、ステップS70において、作業者からの「いいえ」と回答を受付ける。そして、作業者は、目的図形の唯一の候補を選択する。これにより、入力装置22は、ステップS80において、目的図形の選択指示を受付ける。そして、図形選択装置101は、選択処理を終了する。
このように、実施の形態2によれば、プリセット条件記憶部11が、目的図形に適した図形条件9を格納しておくので、作業者は、少ない操作回数で、ポケット加工個所のような、閉ループを包含した閉ループを表す図形を選択することができる。
実施の形態3.
つぎに、図1、図2、図22〜図27を用いてこの発明の実施の形態3について説明する。なお、実施の形態3では、実施の形態1と同様の図形選択装置101を用いるので、その構成の説明は省略する。実施の形態3では、プリセット条件記憶部11が、目的図形に適した図形条件5,11を格納しておく。そして、図形選択装置101が、セグメント条件5,11に基づいて、目的図形である内回り閉図形の候補を生成する。
本実施の形態では、図形選択装置101が、プリセット条件記憶部11に、図形条件11である内回り閉図形と、図形条件5であるコンポーネント数とを格納しておく。本実施の形態では、図形選択装置101が、プリセット条件記憶部11に格納されている図形条件5のパラメータであるコンポーネント数の最小値および最大値の両方を「1」に設定する場合について説明する。図形選択装置101は、図形条件5,11を用いることによって、ポケット加工個所を選択する。
以下、図22〜図27を用いて、ポケット加工個所のような内回り閉図形を選択する処理について説明する。図22〜図27では、ポケット加工される部品を示している。図22は、実施の形態3において図形選択装置に入力される図面の一例を示す図である。図22に示す図面61の図面データは、図2のステップS20において図面データ入力部1に読み込ませる図面データである。図面61は、部品の正面図である。
図23は、図22に示した図面に対応する部品を斜めから見た図である。図23では、図面61に対応する部品60を斜めから見た図を示している。図24〜図27は、図面61に対応する部品60の正面図を示している。図24は、図22の図面に対して作業者が指定した点を示す図である。図25〜図27は、内回り閉図形の図形条件を満たす図形を示す図である。図25は、図22の図面に対して作業者が目的とする輪郭図形を示す図である。図25では、太線で示した図形が加工個所の輪郭を表す輪郭図形G2を示している。この輪郭図形G2が、作業者の目的とする図形であるとする。図26は、内回り閉図形の図形条件を満たす他の図形の第1例を示す図であり、図27は、内回り閉図形の図形条件を満たす他の図形の第2例を示す図である。
作業者が、図2のステップS10において、図面を再利用しないことを選択したとする。この場合、図面データ入力部1は、ステップS20において、CADデータから図面データを読み出して図面データ記憶部2に入力する。この後、ステップS30では、プリセット条件設定部12が、予めプリセット条件記憶部11に格納されている図形条件5,11を図形条件記憶部3に設定する。
そして、作業者が、ステップS40において、条件編集部13に対して、図形条件17を追加したとする。図形条件17は、判定する図形と指定点との間の幾何的関係の条件である。ここでは、作業者が、図形条件17のパラメータ設定の際に、幾何的関係の種類に「含む」を指定し、さらに図24に示した点G1を指定した場合について説明する。
作業者が、ステップS40においてセグメント条件の編集を終えると、目的図形候補生成部7が、ステップS50において、実施の形態1と同様に、セグメント条件を満たすセグメントの抽出を行う。ここでの目的図形候補生成部7は、目的図形の候補を生成する際に、効率化のため、実施の形態1の方式であるセグメントの組み合わせの総当たりは行わない。代わりに、目的図形候補生成部7は、特許第2942681号公報に開示されている方法で図形条件11を満たす図形を全て生成する。そして、目的図形候補生成部7は、生成された各図形を図形条件判定部5で判定し、図形条件記憶部3に記憶されている図形条件17を満たした図形だけを目的図形候補記憶部8に格納する。
図22に示した図面61の図形要素のうち、図形条件11を満たす図形、つまり内回り閉図形は、図25〜図27の各々において太線で示した輪郭図形G2,G3,G4である。
これらの3つの輪郭図形G2〜G4の中で、図形条件17を満たすのは図25に示した輪郭図形G2だけである。また、輪郭図形G2は、図形条件5も満たす。従って、目的図形候補生成部7は、目的図形の候補である輪郭図形G2のみを目的図形候補記憶部8に記憶させる。目的図形選択部9は、ステップS60において、目的図形候補記憶部8に記憶されている輪郭図形G2を選択して表示装置21に表示させる。
表示装置21が目的図形の候補を表示しているので、作業者は、目的図形の候補生成をやり直すかとの問いに対して「いいえ」と回答する。これにより、入力装置22は、ステップS70において、作業者からの「いいえ」と回答を受付ける。そして、作業者は、目的図形の唯一の候補を選択する。これにより、入力装置22は、ステップS80において、目的図形の選択指示を受付ける。そして、図形選択装置101は、選択処理を終了する。
このように、実施の形態3によれば、プリセット条件記憶部11が、目的図形に適した図形条件5,11を格納しておくので、作業者は、少ない操作回数で、ポケット加工個所のような内回り閉図形を表す図形を選択することができる。
実施の形態4.
つぎに、図1、図2、図28および図29を用いてこの発明の実施の形態4について説明する。なお、実施の形態4では、実施の形態1と同様の図形選択装置101を用いるので、その構成の説明は省略する。実施の形態4では、プリセット条件記憶部11が、目的図形に適した図形条件5,10,13を格納しておく。そして、図形選択装置101が、図形条件5,10,13に基づいて、目的図形である外回り閉図形の候補を生成する。
本実施の形態では、図形選択装置101が、プリセット条件記憶部11に、図形条件10である外回り閉図形と、図形条件13である鏡像対称性と、図形条件5であるコンポーネント数とを格納しておく。本実施の形態では、図形選択装置101が、プリセット条件記憶部11に格納されている図形条件5のパラメータであるコンポーネント数の最小値および最大値の両方を「1」に設定する場合について説明する。図形選択装置101は、図形条件5,10,13を用いることによって、穴のない旋削部品の外形形状を選択する。
以下、図28および図29を用いて、穴のない旋削部品の外形形状を選択する処理について説明する。図28は、実施の形態4において図形選択装置に入力される図面データの一例を示す図である。図29は、実施の形態4に係る図形候補判定処理を説明するための図である。図28および図29では、穴のない旋削部品を示している。
図28に示す図面71の図面データは、図2のステップS20において図面データ入力部1に読み込ませる図面データである。図面71は、部品の正面図である。図29は、図面71に対応する部品70の正面図である。図29において、太線で示した図形が旋削部品の外形を表す外形図形H1であり、この外形図形H1が作業者の目的とする図形であるとする。
作業者が、図2のステップS10において、図面を再利用しないことを選択したとする。この場合、図面データ入力部1は、ステップS20において、CADデータから図面データを読み出して図面データ記憶部2に入力する。この後、ステップS30では、プリセット条件設定部12が、予めプリセット条件記憶部11に格納されている図形条件5,10,13を図形条件記憶部3に設定する。
そして、作業者が、ステップS40において、条件編集部13に対して、図形条件とセグメント条件の両方について、何も変更を行わなかったとする。この後、目的図形候補生成部7が、ステップS50において、実施の形態1と同様に、セグメント条件判定部6からの第1の判定結果である判定結果に基づいて、セグメント条件を満たすセグメントの抽出を行う。ここでの目的図形候補生成部7は、目的図形の候補を生成する際に、効率化のため、実施の形態1の方式であるセグメントの組み合わせの総当たりは行わない。代わりに、目的図形候補生成部7は、特許第2942681号公報に開示されている方法で図形条件10を満たす図形を全て生成する。そして、目的図形候補生成部7は、生成された各図形を図形条件判定部5で判定し、図形条件記憶部3に記憶されている図形条件13を満たした図形だけを目的図形候補記憶部8に格納する。このように、本実施の形態では、図形が図形条件を満たしているか否かの判定結果である第2の判定結果は、図形条件10に対応するものについては目的図形候補生成部7から取得され、図形条件13に対応するものについては図形条件判定部5から取得される。
図28に示した図面71の図形要素のうち、図形条件10を満たすのは、旋削部品の外形に対応する外形図形H1だけである。また、この外形図形H1は図形条件13および図形条件5も満たす。従って、目的図形候補生成部7は、目的図形の候補である外形図形H1のみを目的図形候補記憶部8に記憶させる。目的図形選択部9は、ステップS60において、目的図形候補記憶部8に記憶されている外形図形H1を表示装置21に表示させる。
表示装置21が目的図形の候補を表示しているので、作業者は、目的図形の候補生成をやり直すかとの問いに対して「いいえ」と回答する。これにより、入力装置22は、ステップS70において、作業者からの「いいえ」と回答を受付ける。そして、作業者は、目的図形の唯一の候補である外形図形H1を選択する。これにより、入力装置22は、ステップS80において、目的図形である外形図形H1の選択指示を受付ける。そして、図形選択装置101は、選択処理を終了する。
このように、実施の形態4によれば、プリセット条件記憶部11が、目的図形に適した図形条件5,10,13を格納しておくので、作業者は、少ない操作回数で、穴のない旋削部品の外形のような鏡像対称性を有した外回り閉図形を選択することができる。
実施の形態5.
つぎに、図1、図2、図30および図31を用いてこの発明の実施の形態5について説明する。なお、実施の形態5では、実施の形態1と同様の図形選択装置101を用いるので、その構成の説明は省略する。実施の形態5では、プリセット条件記憶部11が、目的図形に適した図形条件1,5,7,13を格納しておく。そして、図形選択装置101が、図形条件1,5,7,13に基づいて、目的図形である穴のある旋削部品の外形の候補を生成する。
本実施の形態では、図形選択装置101が、プリセット条件記憶部11に、図形条件7である閉ループと、図形条件13である鏡像対称性と、図形条件1である属性と、図形条件5であるコンポーネント数とを格納しておく。また、図形選択装置101は、プリセット条件記憶部11に格納されている図形条件1のパラメータに、ハッチングを設定する。本実施の形態では、図形選択装置101が、プリセット条件記憶部11に格納されている図形条件5のパラメータであるコンポーネント数の最小値および最大値の両方に「2」を設定する場合について説明する。図形選択装置101は、これらの図形条件1,5,7,13を用いることによって、穴のある旋削部品の外形を選択する。
以下、図30および図31を用いて、穴のある旋削部品の外形を表す図形を選択する処理について説明する。図30は、実施の形態5において図形選択装置に入力される図面の一例を示す図である。図31は、実施の形態5に係る図形候補判定処理を説明するための図である。図30および図31では、穴のある旋削部品の断面図を示している。
図30に示す図面81の図面データは、図2のステップS20において図面データ入力部1に読み込ませる図面データである。図面81の図形うち、ハッチングされている部分の図形は、穴のある旋削部品の外形を表している。図31は、図面81に対応する部品80の断面図であり、部品80の図形のうち、太線部分が、作業者の目的とする図形であるとする。
作業者が、図2のステップS10において、図面を再利用しないことを選択したとする。この場合、図面データ入力部1は、ステップS20において、CADデータから図面データを読み出して図面データ記憶部2に入力する。この後、ステップS30では、プリセット条件設定部12が、予めプリセット条件記憶部11に格納されている図形条件1,5,7,13を図形条件記憶部3に設定する。
そして、作業者が、ステップS40において、条件編集部13に対して、図形条件およびセグメント条件の両方について、何も変更を行わなかったとする。この後、目的図形候補生成部7が、ステップS50において、目的図形の候補を生成する。図31では、図形条件1を満たす図形が、旋削部品の外形に対応する外形図形I1だけである。また、この外形図形I1は、図形条件13、図形条件7および図形条件5を満たす。従って、目的図形候補生成部7は、目的図形の候補である外形図形I1のみを目的図形候補記憶部8に記憶させる。目的図形選択部9は、ステップS60において、目的図形候補記憶部8に記憶されている外形図形I1を表示装置21に表示させる。
表示装置21が目的図形の候補を表示しているので、作業者は、目的図形の候補生成をやり直すかとの問いに対して「いいえ」と回答する。これにより、入力装置22は、ステップS70において、作業者からの「いいえ」と回答を受付ける。そして、作業者は、目的図形の唯一の候補である外形図形I1を選択する。これにより、入力装置22は、ステップS80において、目的図形である外形図形I1の選択指示を受付ける。そして、図形選択装置101は、選択処理を終了する。
このように、実施の形態5によれば、プリセット条件記憶部11が、目的図形に適した図形条件1,5,7,13を格納しておくので、作業者は、少ない操作回数で、穴のある旋削部品の外形を表す図形を選択することができる。
実施の形態6.
つぎに、図1、図2、図32〜図35を用いてこの発明の実施の形態6について説明する。なお、実施の形態6では、実施の形態1と同様の図形選択装置101を用いるので、その構成の説明は省略する。実施の形態6では、プリセット条件記憶部11が、目的図形に適した図形条件8,15を格納しておく。そして、図形選択装置101が、図形条件8,15に基づいて、目的図形の候補を生成する。本実施の形態における目的図形は、溝加工パターンのような並進対称性を有した飛び飛びのパターンである。
本実施の形態では、図形選択装置101が、プリセット条件記憶部11に、図形条件8である分岐なし且つ閉ループなしと、図形条件15である並進対称性とを格納しておく。図形選択装置101は、これらの図形条件8,15を用いることによって、溝加工パターンを選択する。
以下、図32〜図35を用いて、溝加工パターンのような並進対称性を有した飛び飛びのパターンを表す図形を選択する処理について説明する。図32は、実施の形態6において図形選択装置に入力される図面の一例を示す図である。図32では、溝加工される部品の図面91を示している。図32に示す図面91の図面データは、図2のステップS20において図面データ入力部1に読み込ませる図面データである。図32に示した図面91は、部品の正面図である。図面91に示される部品は、3本の溝95を有している。
図33は、図32の図面に対して作業者が目的とする目的図形を示す図である。図33では、作業者の目的とする目的図形92を示している。図34は、図32の図面に対して作業者が指定した図面領域を示す図である。図35は、図32の図面に対して目的図形の候補から除外されるセグメントを示す図である。
作業者が、図2のステップS10において、図面を再利用しないことを選択したとする。この場合、図面データ入力部1は、ステップS20において、CADデータから図面データを読み出して図面データ記憶部2に入力する。この後、ステップS30では、プリセット条件設定部12が、予めプリセット条件記憶部11に格納されている図形条件8,15を図形条件記憶部3に設定する。
そして、作業者が、ステップS40において、条件編集部13に対して、図面条件4であるセグメント数とセグメント条件7とを追加したとする。ここでの条件編集部13は、作業者の指示に基づいて、図形条件4のパラメータであるセグメント数の最小値および最大値の両方に「21」を設定する。作業者は、この「21」という数字を、溝の構成および溝数に基づいて設定する。
図33に示すように、作業者の目的とする目的図形92は、3つの図形J1であり、各図形J1は溝である。図形J1である1つの溝は、円弧2本と線分5本の合計7本から構成されている。円弧は、溝の底部分で円弧形状に削り取られた箇所である。また、線分は、溝の上側の面取り領域と、溝の側面と、溝の底面とである。1つの溝が円弧2本と線分5本の合計7本から構成されている場合、且つ、溝の数が3本である場合、作業者は、7本と3本を掛け算することによって、7×3=21のように「21」を求める。
作業者は、セグメント条件7のパラメータ設定の際には、まず、入力装置22を操作することによって、図34に示すような、図面の一部である一部図形93を表示装置21に表示させたとする。さらに、作業者は、セグメント指定部18において、表示範囲内にない全てのセグメントを指定する。これにより、条件編集部13は、作業者が指定したセグメントを、セグメント条件7のパラメータに設定する。この設定により、一部図形93の中に全体が入っているセグメント以外は、目的図形の候補の生成に利用されなくなる。具体的には、図35に示した一部図形94において、太線で示したセグメントJ3は、画面に入りきっていないので、目的図形の候補を生成する際には用いられない。これにより、図35に示した一部図形94のうち、太線になっていないセグメントだけが、目的図形候補の生成に利用されることとなる。
作業者が、ステップS40において、プリセット条件の編集を終えると、目的図形候補生成部7が、ステップS50において、目的図形の候補を生成する。図35において、溝95と溝95とを結ぶ線分J2の図形は、繰り返し回数が2回である。この場合、2本の線分と、2つの溝95のセグメントである14本のセグメントと、を足した16本のセグメントが、2つの溝95に対応するセグメント数の最大値になる。この16本は、図面条件4を満たさないので、目的図形選択部9は、ステップS60において、溝95と溝95とを結ぶ線分を含む線分J2を含む図形判定候補は目的図形の候補ではないと判定し、目的図形候補生成部7は、目的図形候補記憶部8に記憶させない。
従って、目的図形候補生成部7が、目的図形候補記憶部8に記憶させる唯一の目的図形の候補は、溝部分が3回繰り返された図33に示した図形J1に対応する目的図形92となる。これにより、目的図形選択部9は、ステップS60において、目的図形候補記憶部8に記憶されている図形J1を表示装置21に表示させる。
表示装置21が目的図形の候補を表示しているので、作業者は、目的図形の候補生成をやり直すかとの問いに対して「いいえ」と回答する。これにより、入力装置22は、ステップS70において、作業者からの「いいえ」と回答を受付ける。そして、作業者は、目的図形の唯一の候補である図形J1を選択する。これにより、入力装置22は、ステップS80において、目的図形である図形J1の選択指示を受付ける。そして、図形選択装置101は、選択処理を終了する。
このように、実施の形態6によれば、プリセット条件記憶部11が、目的図形に適した図形条件8,15を格納しておくので、作業者は、少ない操作回数で、溝加工パターンのような並進対称性を持つ飛び飛びのパターン図形を選択することができる。
実施の形態7.
つぎに、図1、図2、図36および図37を用いてこの発明の実施の形態7について説明する。なお、実施の形態7では、実施の形態1と同様の図形選択装置101を用いるので、その構成の説明は省略する。実施の形態7では、プリセット条件記憶部11が、目的図形に適した図形条件3,7,14を格納しておく。そして、図形選択装置101が、図形条件3,7,14に基づいて、目的図形の候補を生成する。本実施の形態における目的図形は、穴加工の円パターンのような回転対称性を持つ飛び飛びのパターンである。
本実施の形態では、図形選択装置101が、プリセット条件記憶部11に、図形条件3である同一半径と、図形条件7である閉ループと、図形条件14である回転対称性とを格納しておく。図形選択装置101は、図形条件3,7,14を用いることによって、穴加工用の円パターンを選択する。
以下、図36および図37を用いて、穴加工用の円パターンを選択する処理について説明する。図36は、実施の形態7において図形選択装置に入力される図面の一例を示す図である。図37は、実施の形態7に係る図形候補判定処理を説明するための図である。図36および図37では、穴加工される部品を示している。
図36に示す図面110の図面データは、図2のステップS20において図面データ入力部1に読み込ませる図面データである。図36の図面110は、部品の正面図である。図面110の部品は、穴加工される円形領域の穴115を有している。図37は、図面110に対応する部品120の正面図である。図37において、太線で示した図形K1が作業者の目的とする図形であるとする。図形K1は、穴加工される穴115に対応している。
作業者が、図2のステップS10において、図面を再利用しないことを選択したとする。この場合、図面データ入力部1は、ステップS20において、CADデータから図面データを読み出して図面データ記憶部2に入力する。この後、ステップS30では、プリセット条件設定部12が、予めプリセット条件記憶部11に格納されている図形条件3,7,14を図形条件記憶部3に設定する。
そして、作業者が、ステップS40において、条件編集部13に対して、図形条件5であるコンポーネント数を追加したとする。図形条件5は、判定する図形を構成するコンポーネントの数が指定された範囲に入っているという条件である。ここでは、作業者が、図形条件5のパラメータを設定する際に、コンポーネント数の最小値および最大値の両方に「5」を設定したとする。この後、目的図形候補生成部7が、ステップS50において、目的図形の候補を生成する。
この場合において、目的図形候補生成部7は、図形条件7が設定されているので、目的図形の候補は閉ループによって構成されていると判断する。このため、目的図形候補生成部7は、途中で途切れて行き止まりになっている線を含む図形は目的図形候補記憶部8に記憶させない。よって、こういった図形を、目的図形選択部9が、ステップS60において、表示装置21に表示させることはない。
図36に示した図面110において、閉ループは、穴115に対応する円が5つと、部品外形に対応する円が1つである。まず、目的図形候補生成部7が、部品外形に対応する円を含む図形判定候補を、目的図形候補記憶部8に記憶させることがないことを示す。部品外形に対応する円を含み、かつ、穴115に対応する円を含む図形判定候補は、異なる半径の円を含むため、図形条件3を満たさない。また、部品外形に対応する円を含み、かつ、穴115に対応する円を含まない図形判定候補は、コンポーネント数が「1」となるので、パラメータでコンポーネント数が「5」と指定されている図形条件5を満たさない。よって、部品外形に対応する円を含む図形判定候補は、他に穴115に対応する円を含んでいてもいなくても、満たせない図形条件が存在するため、目的図形候補生成部7が、部品外形に対応する円を含む図形判定候補を、目的図形候補記憶部8に記憶させることはない。
一方、目的図形候補生成部7は、穴115に対応する5つの円から成る目的図形の候補は、図形条件5を満たし、さらに図形条件14も満たすと判断できる。以上より、目的図形候補生成部7が、目的図形候補記憶部8に記憶させる唯一の目的図形の候補は図形K1のみである。これにより、目的図形選択部9は、ステップS60において、目的図形候補記憶部8に記憶されている図形K1のみを表示装置21に表示させる。
表示装置21が目的図形の候補を表示しているので、作業者は、目的図形の候補生成をやり直すかとの問いに対して「いいえ」と回答する。これにより、入力装置22は、ステップS70において、作業者からの「いいえ」と回答を受付ける。そして、作業者は、目的図形の唯一の候補を選択する。これにより、入力装置22は、ステップS80において、目的図形の選択指示を受付ける。そして、図形選択装置101は、選択処理を終了する。
このように、実施の形態7によれば、プリセット条件記憶部11が、目的図形に適した図形条件3,7,14を格納しておくので、作業者は、個別のセグメントを選択する操作を行うことなく少ない操作回数で、穴加工の円パターンのような回転対称性を持つ飛び飛びのパターンを選択することができる。
実施の形態8.
つぎに、図1、図2、図38〜図42を用いてこの発明の実施の形態8について説明する。なお、実施の形態8では、実施の形態1と同様の図形選択装置101を用いるので、その構成の説明は省略する。実施の形態8では、プリセット条件記憶部11が、目的図形に適した図形条件5,8を格納しておく。そして、図形選択装置101が、図形条件5,8に基づいて、目的図形の候補を生成する。本実施の形態における目的図形は、1本の連続したパスである。
本実施の形態では、図形選択装置101が、プリセット条件記憶部11に、図形条件8である分岐なし且つ閉ループなしと、図形条件5であるコンポーネント数とを格納しておく。本実施の形態では、図形選択装置101が、プリセット条件記憶部11に格納されている図形条件5のパラメータであるコンポーネント数の最小値および最大値の両方に「1」を設定する場合について説明する。図形選択装置101は、図形条件5,8を用いることによって、1本の連続したパスを選択する。
以下、図38〜図42を用いて、1本の連続したパス加工を選択する処理について説明する。図38〜図42では、1本の連続したパス加工が行われる部品を示している。図38は、実施の形態8において図形選択装置に入力される図面の一例を示す図である。図38に示す図面210〜230の図面データは、図2のステップS20において図面データ入力部1に読み込ませる図面データである。
図面210は、図面データ入力部1に読み込ませる部品の平面図を示している。図面220は、図面データ入力部1に読み込ませる部品の正面図を示し、図面230は、図面データ入力部1に読み込ませる部品の側面図を示している。
図39は、図38に示した図面に対応する部品を斜めから見た図である。図39では、図面210〜230に対応する部品310の斜視図を示している。図40〜図42は、図面210〜230に対応する部品310の平面図を示している。図40は、図38の図面に対して作業者が目的とするパスを示す図である。図40では、パスL1が、作業者の目的とするパスに対応した図形である。ここでは、作業者が、図面210〜230の図面データに対してパスL1を選択する場合について説明する。図41は、図38の図面に対して作業者が指定した線分を示す図である。図42は、図38の図面に対して作業者が指定した円弧および線分を示す図である。
作業者が、図2のステップS10において、図面を再利用しないことを選択したとする。この場合、図面データ入力部1は、ステップS20において、CADデータから図面データを読み出して図面データ記憶部2に入力する。この後、ステップS30では、プリセット条件設定部12が、予めプリセット条件記憶部11に格納されている図形条件5,8を図形条件記憶部3に設定する。
そして、作業者が、ステップS40において、条件編集部13に対して、セグメント条件7と図形条件16とを追加したとする。セグメント条件7は、判定するセグメントは図面データ記憶部2に記憶されている特定のセグメントではないという条件である。図形条件16は、判定する図形を構成するセグメントの中に、図面データ記憶部2に記憶されている特定のセグメントが存在しているという条件である。
ここでは、作業者が、セグメント条件7のパラメータを設定する際に、セグメント指定部18を用いて、図41に示す線分L2,L3,L4,L5を全て指定したとする。この場合、目的図形候補生成部7は、指定された線分L2〜L5を、目的図形の候補の生成に用いない。
また、作業者が、図形条件16のパラメータを設定する際に、図42に示す円弧L6および線分L7を指定したとする。作業者が、ステップS40においてセグメント条件の編集を終えると、目的図形候補生成部7が、ステップS50において、目的図形の候補を生成する。プリセット条件記憶部11に記憶された図形条件5と図形条件8、さらに、作業者が設定した図形条件16とセグメント条件7を満たす図形は、図40において太線で示したパスL1のみである。従って、目的図形候補生成部7は、目的図形の候補であるパスL1のみを目的図形候補記憶部8に記憶させる。目的図形選択部9は、ステップS60において、目的図形候補記憶部8に記憶されているパスL1を表示装置21に表示させる。
表示装置21が目的図形の候補を表示しているので、作業者は、目的図形の候補生成をやり直すかとの問いに対して「いいえ」と回答する。これにより、入力装置22は、ステップS70において、作業者からの「いいえ」と回答を受付ける。そして、作業者は、目的図形の唯一の候補であるパスL1を選択する。これにより、入力装置22は、ステップS80において、目的図形であるパスL1の選択指示を受付ける。そして、図形選択装置101は、選択処理を終了する。
このように、実施の形態8によれば、プリセット条件記憶部11が、目的図形に適した図形条件5,8を格納しておくので、作業者が、いくつかの設定を追加し、この追加に伴ういくつかのセグメントを指定するだけで、図形選択装置101は、1本の連続したパスを選択することができる。従って、図形選択装置101は、目的の図形を構成するセグメントの数が多い場合では特に、全てのセグメントを指定する方法と比べて、作業者の操作回数を少なくすることができる。
実施の形態9.
つぎに、図1、図2、図43〜図45を用いてこの発明の実施の形態9について説明する。なお、実施の形態9では、実施の形態1と同様の図形選択装置101を用いるので、その構成の説明は省略する。実施の形態9では、目的図形に適した図形条件4,5,7,12およびセグメント条件4,5を格納しておく。また、図形選択装置101が、ステップS40において、作業者からの指示に従って、図形条件のパラメータ変更、図形条件の設定またはセグメント条件の設定を行う。そして、図形選択装置101が、図形条件4,5,7,12およびセグメント条件4,5に基づいて、目的図形の候補を生成する。本実施の形態における目的図形は、図面の座標系と向きが揃っていて且つ角に丸みが付いた四角形のような、幾何学的な条件で定義できる形状である。幾何学的な条件は、図形の面積、長さ、曲率または角度の条件を含んでいる。
本実施の形態では、図形選択装置101が、以下の6つのプリセット条件をプリセット条件記憶部11に格納しておく。
(プリセット条件1)図形条件4であるセグメント数
(プリセット条件2)図形条件5であるコンポーネント数
(プリセット条件3)図形条件7である閉ループ
(プリセット条件4)図形条件12であるセグメントの滑らかな接続
(プリセット条件5)セグメント条件4である円弧中心角
(プリセット条件6)セグメント条件5である座標系とセグメントとの成す角度
図形選択装置101は、上述のプリセット条件1〜6のプリセット条件を用いることによって、図面の座標系と向きが揃っていて、かつ、角に丸みが付いた四角形を選択する。
また、本実施の形態では、図形選択装置101が、前記プリセット条件のパラメータとして、以下の5つのパラメータを設定する場合について説明する。
(パラメータ1)図形選択装置101が、図形条件4のパラメータであるセグメント数の最小値および最大値の両方に「8」を設定する。この「8」という数字は、本実施の形態における目的図形である角に丸みが付いた四角形の構成に基づいて決定されている。本実施の形態における目的図形は、辺の線分4本と、これらの辺を接続している4本の円弧とで構成されているため、線分4本と円弧4本とを足し算することによって、4+4=8のように「8」が求められている。
(パラメータ2)図形選択装置101が、図形条件5のパラメータであるコンポーネント数の最小値および最大値の両方に「1」を設定する。
(パラメータ3)図形選択装置101が、図形条件12のパラメータである微分可能回数に「1」を設定する。
(パラメータ4)図形選択装置101が、セグメント条件4のパラメータである中心角の最小値と最大値との組に、90度以上90度以下を設定する。
(パラメータ5)図形選択装置101が、セグメント条件5のパラメータである角度の範囲の最小値と最大値との組に、0度以上0度以下と、90度以上90度以下と、180度以上180度以下と、270度以上270度以下との合計4組を設定する。
また、図2のステップS40において、条件編集部13は、図形条件およびセグメント条件を編集するための編集画面を表示装置21に表示させる。この表示画面において、条件編集部13は、使用頻度が高いと考えられる条件の編集項目を、編集が容易となる位置に配置する。本実施の形態における目的図形が、角に丸みが付いた四角形であるとする。この場合、条件編集部13は、角に丸みが付いた四角形の選択での使用頻度が高いと考えられる図形条件2,3,16,17,18とセグメント条件1,2,3,6,7の編集項目とを、表示画面内のすぐに編集できる位置に優先的に配置する。また、条件編集部13は、その他の条件の編集項目は、スクロール操作または別の画面を開く操作で辿りつける位置に配置する。
以下、図43〜図45を用いて、図面の座標系と向きが揃っていて且つ角に丸みが付いた四角形を選択する処理について説明する。図43は、実施の形態9において図形選択装置に入力される図面の一例を示す図である。図44は、図43で示した図面データの構成を説明するための図である。図45は、実施の形態9に係る図形候補判定処理を説明するための図である。図44では、1つの特殊形状と、図43に示した7つの四角形とを太線で示している。また、図44では、特殊形状について、セグメント同士の接続点を強調して表示している。
図43に示した図面の図面データは、レイヤを有している。ここでは、四角形410〜470のうち、四角形440を構成するセグメントのみがレイヤBにあり、その他のセグメントはレイヤAにある場合について説明する。図43に示した図面データでは、四角形430を構成する全てのセグメントは、線種が破線となっているだけで、データは連続した線であるとする。また、四角形410〜440,460,470および特殊形状480を構成する全てのセグメントは、座標系に対して傾いていないのに対し、四角形450を構成する全てのセグメントは、座標系に対して傾いている。
また、本実施の形態では、作業者が、四角形410,420,430,440,460の何れか1つ、もしくは、四角形410,420の2つをまとめて選択することを意図しているとする。
作業者が、図2のステップS10において、図面を再利用しないことを選択したとする。この場合、図面データ入力部1は、ステップS20において、CADデータから図面データを読み出して図面データ記憶部2に入力する。この後、ステップS30では、プリセット条件設定部12が、予めプリセット条件記憶部11に格納されている図形条件4,5,7,12およびセグメント条件4,5を図形条件記憶部3およびセグメント条件記憶部4に設定する。
図形選択装置101は、ステップS40での作業者による条件の編集が異なると、編集内容に対応する種々の処理を実行する。以下の説明では、ステップS40での作業者による条件の編集内容毎に各処理を説明する。
(第1のケース)
第1のケースは、ステップS40において、作業者が、図形条件およびセグメント条件の両方を編集せずに、プリセット条件のままにした場合である。この場合、四角形450を構成する全てのセグメントが、座標系に対して傾いており、セグメント条件5を満たさないので、目的図形候補生成部7は、ステップS50でのセグメントの抽出において、何れのセグメントも抽出することができない。
また、特殊形状480を構成する中心角が270度の円弧が、セグメント条件4を満たさないので、目的図形候補生成部7は、ステップS50でのセグメントの抽出において、中心角が270度の円弧を抽出することができない。そして、図形条件判定部5は、図形条件の判定の際に、中心角が270度の円弧は存在し得ないので、特殊形状480のセグメントを用いた目的図形の候補は閉ループになることがなく、図形条件7を満たさないと判定する。また、四角形470は、四本の直線で構成されているので、図形条件判定部5は、四角形470が図形条件4を満たさないと判定する。また、四角形470は、頂点で接線ベクトルが合致しないので、図形条件判定部5は、四角形470が図形条件12を満たさないと判定する。
従って、目的図形候補生成部7は、四角形450,470および特殊形状480は目的図形候補記憶部8に記憶させない。よって、目的図形選択部9が、ステップS60において、目的図形候補記憶部8に記憶されていない四角形450,470および特殊形状480を表示装置21に表示させることはない。また、図形条件5でコンポーネント数が1と指定されているので、目的図形候補生成部7は、複数の四角形を含んでいる図形を目的図形候補記憶部8に記憶させることはない。よって、目的図形選択部9が、複数の四角形を含んでいる図形を表示装置21に表示させることはない。
以上からステップS50では、目的図形候補生成部7は、四角形410,420,430,440,460の何れか1つのみを含んだ5つの異なる図形を、目的図形の候補として、目的図形候補記憶部8に記憶させる。ステップS60では、目的図形選択部9は、目的図形候補記憶部8に記憶されたこれら5つの図形を、5つの候補として表示する。作業者は、目的図形の候補生成をやり直すかとの問いに対して「いいえ」と回答したとする。これにより、入力装置22は、ステップS70において、作業者からの「いいえ」と回答を受付ける。そして、入力装置22は、ステップS80において、作業者によるこれら5つの候補から1つの選択指示を受付ける。そして、図形選択装置101は、選択処理を終了する。
(第2のケース)
第2のケースは、ステップS40において、作業者が、四角形410を選択するために図形条件18を設定した場合である。作業者が、図形条件18のパラメータとなる閉図形を指定するために、閉図形指定部17を用いて、四角形410内の右上に示した円と同じ図形を定義したとする。また、作業者が、判定する図形が指定閉図形を「包含する」を、幾何的関係に設定したとする。
この場合、ステップS50において、図形条件判定部5が図形条件18を満たすと判定する四角形の図形判定候補は、四角形410のみを含む図形判定候補だけである。従って、目的図形候補記憶部8に記憶され、ステップS60において、目的図形選択部9が表示装置21に表示させるのは目的図形の候補である四角形410のみである。
(第3のケース)
第3のケースは、ステップS40において、作業者が、四角形420を選択するためにセグメント条件2を設定した場合である。作業者が、セグメント条件2のパラメータである曲率の最小値と最大値との組に、0以上0以下と、0.5以上0.5以下とを設定したとする。ここでの曲率が0は、線分に対応し、半径2の円弧の曲率が1/2=0.5であるので、曲率の0.5は、半径2の円弧に対応する。
この場合、目的図形候補生成部7は、ステップS50でのセグメントの抽出において、四角形420の半径2の円弧以外の円弧は抽出しない。このため、目的図形候補生成部7は、ステップS50の図形条件の判定において、図形条件4,5,7,12を全て満たすのは、四角形420だけであると判定する。従って、目的図形候補記憶部8に記憶され、ステップS60において、目的図形選択部9が表示装置21に表示させるのは目的図形の候補である四角形420のみである。
(第4のケース)
第4のケースは、ステップS40において、作業者が、四角形430を選択するためにセグメント条件1を設定する場合である。作業者が、セグメント条件1のパラメータである線種に破線という属性を設定したとする。
この場合、目的図形候補生成部7は、ステップS50でのセグメントの抽出において、四角形430を構成するセグメント以外は抽出しない。このため、目的図形候補生成部7は、ステップS50の図形条件の判定において、図形条件4,5,7,12を全て満たすのは、四角形430だけであると判定する。従って、目的図形候補記憶部8に記憶され、ステップS60において、目的図形選択部9が表示装置21に表示させるのは目的図形の候補である四角形430のみである。
(第5のケース)
第5のケースは、ステップS40において、作業者が、四角形440を選択するためにセグメント条件6を設定する場合である。作業者が、セグメント条件6のパラメータである、セグメントが属さないレイヤAを設定したとする。
この場合、目的図形候補生成部7は、ステップS50でのセグメントの抽出において、四角形440を構成するセグメント以外は抽出しない。このため、目的図形候補生成部7は、ステップS50の図形条件の判定において、図形条件4,5,7,12を全て満たすのは、四角形440だけであると判定する。従って、目的図形候補記憶部8に記憶され、ステップS60において、目的図形選択部9が表示装置21に表示させるのは目的図形の候補である四角形440のみである。
(第6のケース)
第6のケースは、ステップS40において、作業者が、四角形460を選択するために図形条件2を設定する場合である。作業者が、図形条件2のパラメータである面積の最小値に100を設定し最大値に400を設定したとする。
この場合、ステップS50において、図形条件判定部5が図形条件2を満たすと判定する四角形の図形判定候補は、四角形460のみを含む図形判定候補だけである。従って、目的図形候補記憶部8に記憶され、ステップS60において、目的図形選択部9が表示装置21に表示させるのは目的図形の候補である四角形460のみである。
(第7のケース)
第7のケースは、ステップS40において、作業者が、四角形410,420の2つをまとめて選択するためにプリセット条件設定部12が設定した図形条件4,5のパラメータを変更し、図形条件18を新たに設定する場合である。作業者が、図形条件4のパラメータであるセグメント数の最小値および最大値の両方を「16」に変更したとする。また、作業者が、図形条件5のパラメータであるコンポーネント数の最小値および最大値の両方を「2」に変更したとする。また、作業者が、閉図形指定部17を用いて、図形条件18のパラメータである指定閉図形を、図45内に太線で示した四角形N1で定義したとする。また、作業者が、幾何的関係について、判定する図形が指定閉図形に「包含される」を設定したとする。
この場合、目的図形候補生成部7は、ステップS50の図形条件の判定において、図形条件4,5,7,12を全て満たすのは、四角形410,420,430,440,460の中から2つを組み合わせた図形であると判定する。また、目的図形候補生成部7は、組み合わせの中で図形条件18を満たすのは、四角形410,420の組み合わせだけであると判定する。従って、目的図形候補記憶部8に記憶され、ステップS60において、目的図形選択部9が表示装置21に表示させるのは目的図形の候補である四角形410,420から成る図形のみである。
第2〜第7のケースの何れかの場合に、表示装置21が、目的図形の候補を表示させると、作業者は、目的図形の候補生成をやり直すかとの問いに対して「いいえ」と回答する。これにより、入力装置22は、ステップS70において、作業者からの「いいえ」と回答を受付ける。そして、作業者は、目的図形の唯一の候補を選択する。これにより、入力装置22は、ステップS80において、目的図形の選択指示を受付ける。そして、図形選択装置101は、選択処理を終了する。
このように、実施の形態9によれば、プリセット条件記憶部11が、目的図形に適した図形条件4,5,7,12およびセグメント条件4,5を格納しておくので、作業者は、個別のセグメントを選択する操作を行うことなく少ない操作回数で、図面の座標系と向きが揃っていて且つ角に丸みが付いた四角形のような、幾何学的な条件で定義できる形状を選択することができる。
実施の形態10.
つぎに、図46〜図52を用いてこの発明の実施の形態10について説明する。実施の形態10では、作業者が、選択の目的となる1本の連続したパスの始点および先頭のセグメントを指定し、さらに、パスの終点および末尾のセグメントを指定する。そして、図形選択装置は、目的図形の候補が1つになるまで、目的のパスに含まれるセグメントを繰り返し指定して追加していくことで、目的のパスを選択する。
図46は、実施の形態10に係る図形選択装置の構成を示すブロック図である。図46の各構成要素のうち図1に示す実施の形態1の図形選択装置101と同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
図形選択装置102は、図形選択装置101と同様に、図面データ入力部1、図面データ記憶部2、図形条件記憶部3およびセグメント条件記憶部4を備えている。また、図形選択装置102は、図形選択装置101と同様に、図形条件判定部5、セグメント条件判定部6、目的図形候補生成部7および目的図形候補記憶部8を備えている。また、図形選択装置102は、図形選択装置101と同様に、プリセット条件記憶部11、プリセット条件設定部12、図面情報指定部14および、条件自動更新部31を備えている。
また、本実施の形態の図形選択装置102は、パス選択用条件編集部41および目的図形候補確認部42を備えている。換言すると、図形選択装置101が目的図形選択部9および条件編集部13を備えていたのに対して、図形選択装置102は、パス選択用条件編集部41および目的図形候補確認部42を備えている。
パス選択用条件編集部41は、表示装置21、図面データ記憶部2、図形条件記憶部3、セグメント条件記憶部4および図面情報指定部14に接続されている。目的図形候補確認部42は、目的図形候補記憶部8に接続されている。
パス選択用条件編集部41は、図面情報指定部14を介した入力装置22から入力される作業者の指示に従い、図形条件記憶部3およびセグメント条件記憶部4の内容を書き換える。パス選択用条件編集部41は、始点、終点、先頭セグメント、末尾セグメントおよび途中のセグメントのうちの何れの指定を求めているかを表示装置21に表示させる。この後パス選択用条件編集部41は、図面情報指定部14を呼び出して、作業者に点またはセグメントを指定させる。そして、パス選択用条件編集部41は、指定された点またはセグメントの情報と、図面データ記憶部2に格納されている情報とに基づいて、図形条件記憶部3とセグメント条件記憶部4との何れか一方または両方に条件を追加する。
目的図形候補確認部42は、目的図形候補記憶部8に格納されている目的図形の候補の数を確認する。本実施の形態の目的図形候補確認部42は、目的図形の候補の数が1つであるか、複数であるかを確認する。そして、候補の数が1であった場合には、目的図形候補確認部42は、唯一の候補が作業者の意図している目的図形であると判断して選択する。
本実施の形態では、図形選択装置102が、プリセット条件記憶部11に、図形条件8である分岐なし且つ閉ループなしと、図形条件5であるコンポーネント数とを格納しておく。本実施の形態では、図形選択装置102が、プリセット条件記憶部11に格納されている図形条件5のパラメータであるコンポーネント数の最小値および最大値の両方に「1」を設定する場合について説明する。
つぎに、図形選択装置102の動作処理手順について説明する。図47は、実施の形態10に係る図形選択装置の動作処理手順を示すフローチャートである。なお、図47の処理のうち図2で説明した図形選択装置101の処理と同様の処理については、重複する説明は省略する。
図形選択装置102のステップS600〜S620の処理は、図形選択装置101のステップS10〜S30の処理と、同様の処理である。ステップS620において、プリセット条件設定部12が、プリセット条件を設定した後、ステップS630において、図形選択装置102は、両端指定に基づいて条件設定を行う。具体的には、まず作業者が、パス選択用条件編集部41の指示に従って、始点、先頭のセグメント、終点、および、末尾のセグメントの全てを指定する。次に、パス選択用条件編集部41が、この指定に基づいて、セグメント条件7および図形条件16を追加する。
パス選択用条件編集部41は、図形条件16のパラメータに、作業者が指定した先頭セグメントおよび末尾セグメントを指定する。また、パス選択用条件編集部41は、セグメント条件7のパラメータに、指定された始点に接する先頭セグメント以外のセグメントと、指定された終点に接する末尾セグメント以外のセグメントとを全て指定する。
この後、目的図形候補生成部7は、ステップS640において、実施の形態1と同様に、目的図形の候補を生成する。そして、目的図形候補確認部42は、ステップS650において、目的図形候補記憶部8に格納されている目的図形の候補数を確認する。目的図形の候補数が1でなかった場合、すなわち、ステップS650において、Noの場合、条件自動更新部31が、ステップS651において、実施の形態1のステップS71と同様の処理を行う。すなわち、条件自動更新部31が、ステップS651において、目的図形候補記憶部8に格納されている目的図形の候補の情報に基づいて、図形条件記憶部3およびセグメント条件記憶部4の内容である条件の自動更新を行う。
条件自動更新部31が、条件の自動更新を行った後、ステップS652において、図形選択装置102は、指定セグメントから条件設定を行う。具体的には、作業者が、パス選択用条件編集部41の指示に従って、目的のパスに含まれるセグメントを指定する。そして、パス選択用条件編集部41は、指定されたセグメントをパラメータに設定した図形条件16を追加する。この後、図形選択装置102は、ステップS640,S650の処理を行う。
ステップS652において、作業者がセグメントを指定する際には、パス選択用条件編集部41は、セグメント条件7のパラメータに使用されているセグメントと、図形条件16のパラメータに使用されているセグメントと、これらの何れでもないセグメントとを、各々異なる色で表示させる。
これにより、セグメント条件7でも図形条件16でも指定されていないセグメント、つまり、目的図形に含まれているかいないかが条件付けされていないセグメントを、作業者が見つけやすくなる。
ステップS652において作業者が指定するセグメントは、通常、上述のような条件付けされていないセグメントの中の1本である。なぜならば、既にセグメント条件7で指定されているセグメントを図形条件16のパラメータにも指定すると、指定されたセグメントが含まれていない、且つ、含まれるという矛盾となり、この矛盾した両条件を共に満たす図形は存在しえないからである。
作業者が、既に図形条件16で指定されているセグメントを指定した場合、既に含まれると指定しているセグメントを、再度含まれると指定していることになるので、論理的には意味のない操作となってしまう。以上より、ステップS652において、作業者が、セグメント条件7、もしくは、図形条件16の両方または何れか一方のパラメータに使用されているセグメントを指定した場合に、パス選択用条件編集部41は、別の異なるセグメントの指定を作業者に要求してもよい。
ステップS650において、目的図形候補確認部42が、目的図形候補記憶部8に格納されている目的図形の候補数が1であると判定するまで、図形選択装置102は、ステップS651,S652,S640,S650の処理を繰り返す。
目的図形の候補数が1であった場合、すなわち、ステップS650において、Yesの場合、目的図形候補確認部42が、ステップS660において、目的図形を確定する。これにより、目的図形候補確認部42は、目的図形候補記憶部8に格納されている唯一の目的図形候補を、作業者が意図している目的図形であると判断し選択する。そして、図形選択装置102は、動作を停止する。
以下、図48から図52までを用いて、1本の連続したパスを選択する操作について、具体的に説明する。図48は、実施の形態10において図形選択装置に入力される図面の一例を示す図である。図49は、実施の形態10に係る図形選択装置で選択される図形の一例を示す図である。図50は、実施の形態10に係る図形選択装置に対して作業者が指定する点およびセグメントの一例を示す図である。図51は、実施の形態10に係る図形選択装置が自動的に追加する第1の条件を説明するための図である。図52は、実施の形態10に係る図形選択装置が自動的に追加する第2の条件を説明するための図である。
図48に示す図面510の図面データは、図47のステップS610において図面データ入力部1に読み込ませる図面データである。図49の図面520は表示装置21に表示されるものであり、図48の図面510の図面データに対応している。図49では、太線で示したパスO1が、作業者の目的とするパスに対応した図形である。ここでは、作業者が、図面510の図面データに対してパスO1を選択する場合について説明する。
作業者が、ステップS600において、図面を再利用しないことを選択したとする。この場合、図面データ入力部1は、ステップS610において、CADデータから図面データを読み出して図面データ記憶部2に入力する。この後、ステップS620では、プリセット条件設定部12が、予めプリセット条件記憶部11に格納されているプリセット条件を設定する。
作業者が、ステップS630において、図50に示した始点P1を指定し、先頭セグメントに線分P11を指定し、終点P2を指定し、末尾セグメントに線分P12を指定したとする。
さらに、パス選択用条件編集部41は、作業者による指定に基づいて、セグメント条件7および図形条件16を追加する。セグメント条件7は、判定するセグメントが、図面データ記憶部2に記憶されている特定のセグメントではないという条件である。図形条件16は、判定する図形を構成するセグメントの中に、図面データ記憶部2に記憶されている特定のセグメントが存在しているという条件である。ここでのパス選択用条件編集部41は、先頭セグメントに線分P11が指定され、末尾セグメントに線分P12が指定されているので、図形条件16のパラメータに線分P11,P12を指定する。
また、始点P1に接していて、かつ、先頭セグメントの線分P11ではないセグメントは、線分P21,P22である。また、終点P2に接していて、かつ、末尾セグメントの線分P12ではないセグメントは、線分P23から線分P25である。従って、パス選択用条件編集部41は、セグメント条件7のパラメータに、線分P21から線分P25までを指定する。
条件設定が完了すると、目的図形候補生成部7が、ステップS640において、実施の形態1と同様に、目的図形の候補を生成する。これまでに設定した全ての図形条件およびセグメント条件を満たす図形は、図50に示した線分P13,P26,P27の3本のうちの何れかを含むかで3通りと、線分P14,P28の2本のうちの何れかを含む2通りとがあり、掛け合わせると全体で6通りである。
このため、目的図形候補生成部7は、ステップS640において、合計6つの目的図形の候補を生成し、目的図形候補記憶部8に格納する。そして、目的図形候補確認部42は、ステップS650において、目的図形候補記憶部8に格納されている目的図形の候補数を確認する。
ここでは、目的図形候補記憶部8に格納されている目的図形の候補数が6であるので、目的図形候補確認部42は、目的図形の候補数は、1でないと判断する。この場合、すなわち、ステップS650において、Noの場合、条件自動更新部31は、ステップS651において、条件の自動更新を行う。このとき、条件自動更新部31が、目的図形候補記憶部8内の全ての目的図形の候補に含まれているセグメントに対し、図形条件16を追加する。具体的には、条件自動更新部31は、図51において太線で示したセグメントである全ての線分群Q1〜Q3をパラメータに設定した図形条件16を追加する。
ここでは、線分P13,P26,P27および線分P14,P28以外の箇所は、他に線分の候補が無いので、条件自動更新部31は、線分の集まりである線分群Q1〜Q3をパラメータに設定した図形条件16を追加している。線分群Q1〜Q3は、線分P13,P26,P27および線分P14,P28を含まない線分である。条件自動更新部31は、線分群Q1〜Q3をパラメータに設定した図形条件16を、図形条件記憶部3に追加する。
さらに、条件自動更新部31は、目的図形候補記憶部8内の全ての目的図形の候補に含まれていないセグメント全てをパラメータに設定したセグメント条件7をセグメント条件記憶部4に追加する。このとき、条件自動更新部31が、新たにセグメント条件7のパラメータに設定する線分は、図51において破線で示す線分である。
条件自動更新部31が、条件の自動更新を行った後、ステップS652において、図形選択装置102が、指定セグメントから条件設定を行う。このとき、作業者が、パス選択用条件編集部41に対して、パスに含まれるセグメントである、図50に示した線分P13を指定したとする。これにより、パス選択用条件編集部41は、作業者からの指定に従って、線分P13をパラメータに設定した図形条件16を追加する。
この後、目的図形候補生成部7は、ステップS640において、目的図形の候補を生成する。これまでに設定した全ての図形条件およびセグメント条件を満たす図形は、線分P14,P28の2本のうちの何れかを含むので2通りである。このため、目的図形候補生成部7は、2通りの各々に対応する合計2つの目的図形候補を、目的図形候補記憶部8に格納する。
そして、目的図形候補確認部42は、ステップS650において、目的図形候補記憶部8に格納されている目的図形の候補数を確認する。ここでは、目的図形候補記憶部8に格納されている目的図形の候補数が2であるので、目的図形候補確認部42は、目的図形の候補数は、1でないと判断する。この場合、すなわち、ステップS650においてNoの場合、条件自動更新部31は、ステップS651において、条件の自動更新を行う。このとき、条件自動更新部31が、目的図形候補記憶部8内の全ての目的図形の候補に含まれているセグメントに対し、図形条件16を追加する。具体的には、条件自動更新部31は、図52において太線で示したセグメントである全ての線分群Q11,Q12をパラメータに設定した図形条件16を追加する。
ここでは、線分P14,P28以外の箇所は、他に線分の候補が無いので、条件自動更新部31は、線分群Q11,Q12をパラメータに設定した図形条件16を追加している。線分群Q11,Q12は、線分P14,P28を含まない線分である。条件自動更新部31は、線分群Q11,Q12をパラメータに設定した図形条件16を、図形条件記憶部3に追加する。
さらに、条件自動更新部31は、目的図形候補記憶部8内の全ての目的図形の候補に含まれていないセグメント全てをパラメータに設定したセグメント条件7をセグメント条件記憶部4に追加する。このとき、条件自動更新部31が、新たにセグメント条件7のパラメータに設定する線分は、図52において破線で示す線分である。
条件自動更新部31が、条件の自動更新を行った後、ステップS652において、図形選択装置102が、指定セグメントから条件設定を行う。このとき、作業者が、パス選択用条件編集部41に対して、パスに含まれるセグメントである、図50に示した線分P14を指定したとする。これにより、パス選択用条件編集部41は、作業者からの指定に従って、線分P14をパラメータに設定した図形条件16を追加する。
この後、目的図形候補生成部7は、ステップS640において、目的図形の候補を生成する。これまでに設定した全ての図形条件およびセグメント条件を満たす図形は、図49に示したパスO1だけである。このため、目的図形候補生成部7は、目的図形の候補であるパスO1を目的図形候補記憶部8に格納する。
そして、目的図形候補確認部42は、ステップS650において、目的図形候補記憶部8に格納されている目的図形の候補数を確認する。ここでは、目的図形候補記憶部8に格納されている目的図形の候補数が1であるので、目的図形候補確認部42は、目的図形の候補数は、1であると判断する。この場合、すなわち、ステップS650においてYesの場合、目的図形候補確認部42は、ステップS660において、目的図形の唯一の候補であるパスO1を選択し、これにより、選択処理が終了する。
本実施の形態における処理の流れの中で、作業者は、始点と、終点と、先頭セグメントと、末尾セグメントと、途中の2本のセグメントとの合計6回の選択操作を行っている。図49において太線で示した目的の図形であるパスO1は、16本のセグメントで構成されている。このため、既存の方式である図形を構成するセグメントを全て指定する方式を用いた場合、選択操作の回数は16回となる。また、別の既存の方式である、セグメントを1つ選択すると分岐に到達するまでの全てのセグメントを自動的に選択する方式では、始点と、全ての分岐点で行き先となるセグメントとを指定する必要がある。このような方式の場合、図49において太線で示したパスO1を指定するには、始点の選択と、分岐の度に行き先に対応するセグメントの選択とが必要となる。よって、この場合の選択操作の回数の合計は9回となる。
なお、実施の形態1,2の図形選択装置101,102が備える構成要素の機能の一部または全部は、後述する処理回路58によって実現されてもよい。図53は、実施の形態1,10の図形選択装置が備える構成要素が処理回路であることを示す図である。
処理回路58は、専用のハードウェアである。処理回路58は、単一回路、複合回路、プログラム化されたプロセッサ、並列プログラム化されたプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)、またはこれらを組み合わせたものである。図形選択装置101,102を構成する構成要素の一部は、残部とは別個の専用のハードウェアであってもよい。
図形選択装置101,102が備える構成要素の一部または全部は、プログラムを実行する後述のプロセッサ191によって実現されてもよい。この場合、図形選択装置101,102が備える構成要素の一部または全部は、プロセッサ191が、メインメモリを用いることによって、機能が実現される。
図54は、実施の形態1,10の図形選択装置が備える制御回路の構成例を示す図である。図54では、図形選択装置101,102が備える構成要素の一部または全部である制御回路を示している。プロセッサ191は、CPU、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、またはDSP(Digital Signal Processor)である。プロセッサ191は、メモリ192に格納されているプログラム90を実行する。
図形選択装置101,102が備える構成要素の一部または全部がプロセッサ191である場合、制御回路によって図形選択装置101,102の機能が実現される。すなわち、図形選択装置101,102を構成する少なくとも一部の構成要素の機能は、プロセッサ191と、プログラム90とによって実現される。プログラム90は、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアとの組み合わせの何れかである。ソフトウェアまたはファームウェアは、プログラム90で記述され、メモリ192に格納される。プロセッサ191は、メモリ192に記憶されたプログラム90を読み出して実行することによって、図形選択装置101,102を構成する構成要素の機能を実現する。
プロセッサ191が実行するプログラム90は、コンピュータで実行可能な、目的図形の候補を生成するための複数の命令を含むコンピュータ読取り可能かつ非遷移的な(non−transitory)記録媒体に格納されている。プロセッサ191が実行するプログラム90は、目的図形の候補を生成することをコンピュータに実行させる。
プロセッサ191が実行するプログラム90は、メモリ192に格納しておく。メモリ192に格納されるプログラム90は、図形選択装置101,102を構成する構成要素の手順または方法をコンピュータに実行させるものであるともいえる。メモリ192は、不揮発性半導体メモリであってもよいし、揮発性の半導体メモリであってもよい。メモリ192は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read−Only Memory)であってもよい。なお、メモリ192は、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスクまたはDVDであってもよい。
図形選択装置101,102を構成する複数の構成要素の機能について、一部を専用のハードウェアで実現し、残部をソフトウェアまたはファームウェアで実現してもよい。このように、図形選択装置101,102を構成する複数の構成要素の機能は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせによって実現することができる。
このように、本実施の形態の図形選択装置102と、この図形選択装置102による選択方法では、目的のパスに適切なプリセット条件を持ち、手動および自動で適切な条件が追加されていくことで、既存の方式と比べ、少ない操作回数で、一本の連続したパスを選択することができる。
このように、実施の形態10によれば、プリセット条件記憶部11が、図面に適したプリセット条件を格納しておき、図形選択装置102が、手動と自動とで適切な図形条件およびセグメント条件を追加していくので、既存の方式よりも少ない操作回数で、1本の連続したパスを選択することができる。
また、図形選択装置102が、状況に合わせた表示を行うので、作業者の認知に起因するミスを防ぐことができ、また、認知にかかる時間を減少させ、作業時間を減らすことができる。また、図形選択装置102は、状況に合わせた操作へ作業者を誘導するので、作業者の誤操作を防ぐことができ、また、図形選択装置102は、省略できる操作を省くことができるので、作業者の作業時間を減らすことができる。
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。