(57)【特許請求の範囲】
【請求項１】
ＣＡＭシステムのコンピュータにより構成され、金型の加工用ＮＣデータの作成のために互いに関連する二つの輪郭点列の和の輪郭点列を求める処理装置において、
前記二つの輪郭点列を互いに同一の所定方向回りにそれぞれ進んで前記和の輪郭点列を求めることとし、先ず、前記二つの輪郭点列の何れか一方にあって他方の輪郭点列の外側に位置する点を探してその点を処理の始点とし、前記処理の始点を、最初のベース点列の一点目の点とするとともに前記求める和の輪郭点列の始点とし、前記処理の始点を含む輪郭点列を最初のベース点列の所定輪郭点列とする和輪郭点列始点設定手段と、
一点目の点から所定輪郭点列上の前記所定方向回りの次の点である二点目の点までの線分をベース点列として求め、その求めたベース点列上で前記二つの輪郭点列が交差する交点の数を、前記一点目の点が交点となった場合はそれを交点から除いて調べるベース点列交点調査処理を行うベース点列交点調査手段と、
前記ベース点列交点調査処理で交点が無かった場合には、現在のベース点列の前記二点目の点を前記求める和の輪郭点列の次の点とするとともに次のベース点列の一点目の点とし、現在のベース点列を含む輪郭点列を次のベース点列の所定輪郭点列として、前記ベース点列交点調査処理へ戻り、
前記ベース点列交点調査処理で交点があった場合には、交点が一つのときはその交点を前記求める和の輪郭点列の次の点とするとともに次のベース点列の一点目の点とし、交点が二つ以上のときはそれらの交点のうち現在のベース点列の前記一点目の点に最も近い交点を前記求める和の輪郭点列の次の点とするとともに次のベース点列の一点目の点とし、現在のベース点列を含む輪郭点列でない他方の輪郭点列が前記次のベース点列の一点目の点から現在のベース点列を含む輪郭点列の外側へ進む場合はその他方の輪郭点列を次のベース点列の所定輪郭点列とし、そうでない場合は現在のベース点列を含む輪郭点列を次のベース点列の所定輪郭点列として、前記ベース点列交点調査処理へ戻る、
という処理を、前記和の輪郭点列の点として求めた点が前記処理の始点に一致するまで繰り返す和輪郭点列構成点設定手段と、
を具えることを特徴とする、互いに関連する輪郭点列の処理装置。
【請求項２】
ＣＡＭシステムのコンピュータにより構成され、金型の加工用ＮＣデータの作成のために互いに関連する二つの輪郭点列の差の輪郭点列を求める処理装置において、
前記二つの輪郭点列を互いに逆方向の所定方向回りにそれぞれ進んで前記差の輪郭点列を求めることとし、先ず、前記二つの輪郭点列のうち引かれる方の輪郭点列にあって引く方の輪郭点列の外側に位置する点を探してその点を処理の始点とし、引かれる方の輪郭点列に引く方の輪郭点列の外側に位置する点が無かった場合には引く方の輪郭点列にあって引かれる方の輪郭点列の内側に位置する点を探してその点を処理の始点とし、前記処理の始点を最初のベース点列の一点目の点とするとともに前記求める差の輪郭点列の始点とし、前記処理の始点を含む輪郭点列を最初のベース点列の所定輪郭点列とする差輪郭点列始点設定手段と、
一点目の点から所定輪郭点列上の前記所定方向回りの次の点である二点目の点までの線分をベース点列として求め、その求めたベース点列上で前記二つの輪郭点列が交差する交点の数を、前記一点目の点が交点となった場合はそれを交点から除いて調べるベース点列交点調査処理を行うベース点列交点調査手段と、
前記ベース点列交点調査処理で交点が無かった場合には、現在のベース点列の前記二点目の点を前記求める差の輪郭点列の次の点とするとともに次のベース点列の一点目の点とし、現在のベース点列を含む輪郭点列を次のベース点列の所定輪郭点列として、前記ベース点列交点調査処理へ戻り、
前記ベース点列交点調査処理で交点があった場合には、交点が一つのときはその交点を前記求める差の輪郭点列の次の点とするとともに次のベース点列の一点目の点とし、交点が二つ以上のときはそれらの交点のうち現在のベース点列の前記一点目の点に最も近い交点を前記求める差の輪郭点列の次の点とするとともに次のベース点列の一点目の点とし、現在のベース点列を含む輪郭点列でない他方の輪郭点列が前記引く方の輪郭点列であって前記次のベース点列の一点目の点から現在のベース点列を含む輪郭点列の内側へ進む場合および現在のベース点列を含む輪郭点列でない他方の輪郭点列が前記引かれる方の輪郭点列であって前記次のベース点列の一点目の点から現在のベース点列を含む輪郭点列の外側へ進む場合はその他方の輪郭点列を次のベース点列の所定輪郭点列とし、そうでない場合は現在のベース点列を含む輪郭点列を次のベース点列の所定輪郭点列として、前記ベース点列交点調査処理へ戻る、
という処理を、前記差の輪郭点列の点として求めた点が前記処理の始点に一致するまで繰り返す差輪郭点列構成点設定手段と、
を具えることを特徴とする、互いに関連する輪郭点列の処理装置。
【請求項３】
ＣＡＭシステムのコンピュータにより構成され、金型の加工用ＮＣデータの作成のために互いに関連する二つの輪郭点列の積の輪郭点列を求める処理装置において、
前記二つの輪郭点列を互いに同一の所定方向回りにそれぞれ進んで前記積の輪郭点列を求めることとし、先ず、前記二つの輪郭点列の何れか一方にあって他方の輪郭点列の内側に位置する点を探してその点を処理の始点とし、何れの輪郭点列にも他方の輪郭点列の内側に位置する点が無かった場合には前記二つの輪郭点列の交点を処理の始点とし、前記処理の始点を最初のベース点列の一点目の点とするとともに前記求める積の輪郭点列の始点とし、前記処理の始点を含む輪郭点列を最初のベース点列の所定輪郭点列とし、その処理の始点が交点である場合にはその交点から他方の輪郭点列の内側に進む輪郭点列を最初のベース点列の所定輪郭点列とする積輪郭点列始点設定手段と、
一点目の点から所定輪郭点列上の前記所定方向回りの次の点である二点目の点までの線分をベース点列として求め、その求めたベース点列上で前記二つの輪郭点列が交差する交点の数を、前記一点目の点が交点となった場合はそれを交点から除いて調べるベース点列交点調査処理を行うベース点列交点調査手段と、
前記ベース点列交点調査処理で交点が無かった場合には、現在のベース点列の前記二点目の点を前記求める積の輪郭点列の次の点とするとともに次のベース点列の一点目の点とし、現在のベース点列を含む輪郭点列を次のベース点列の所定輪郭点列として、前記ベース点列交点調査処理へ戻り、
前記ベース点列交点調査処理で交点があった場合には、交点が一つのときはその交点を前記求める積の輪郭点列の次の点とするとともに次のベース点列の一点目の点とし、交点が二つ以上のときはそれらの交点のうち現在のベース点列の前記一点目の点に最も近い交点を前記求める積の輪郭点列の次の点とするとともに次のベース点列の一点目の点とし、現在のベース点列を含む輪郭点列でない他方の輪郭点列が前記次のベース点列の一点目の点から現在のベース点列を含む輪郭点列の内側へ進む場合はその他方の輪郭点列を次のベース点列の所定輪郭点列とし、そうでない場合は現在のベース点列を含む輪郭点列を次のベース点列の所定輪郭点列として、前記ベース点列交点調査処理へ戻る、
という処理を、前記積の輪郭点列の点として求めた点が前記処理の始点に一致するまで繰り返す積輪郭点列構成点設定手段と、
を具えることを特徴とする、互いに関連する輪郭点列の処理装置。
【請求項４】
互いに関連する二つの輪郭点列の点のうち、前記和、差もしくは積の輪郭点列を求める処理の始点となり得る点で、前回までの輪郭点列を求める処理で求めた輪郭点列で使用していない点がある場合には、前記処理の始点となり得る点を処理の始点として、前回までの輪郭点列を求める処理と同種の輪郭点列を求める処理を行う複数輪郭点列処理手段を具えることを特徴とする、請求項１から３までの何れか記載の互いに関連する輪郭点列の処理装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は、金型構造を表す３次元ソリッドモデルのデータをもとに金型の加工用ＮＣデータを作成する場合に、各々前記３次元ソリッドモデルのソリッドの形状を示すとともに互いに関連すなわち接触、交差、重複、包含等している二つの輪郭点列の和、差あるいは積の輪郭点列を求める処理を行う、輪郭点列の処理装置に関するものである。
【０００２】
【従来の技術】
近年は、ＣＡＤ（コンピュータ支援設計）・ＣＡＭ（コンピュータ支援加工）システムの普及に伴い、先ずＣＡＤシステムを用いて、金型構造を表す３次元ソリッドモデルを作成し、次いでその３次元ソリッドモデルのデータから、ＣＡＭシステムを用いて、その金型自体の加工用のＮＣデータや、その金型の鋳造用の発泡スチロール型（砂型のキャビティ形成用のいわゆるポリ型）の加工用のＮＣデータを作成することが一般化しており、かかるＮＣデータの作成の際には、金型構造の、ある高さでの断面形状を求めるために、図25（ａ）に示す如き３次元ソリッドモデルM1の各ソリッドの、ある高さでの断面を示す、図25（ｂ）に示す如き輪郭点列を求めて、図25（ｃ）に示すようにそれらの輪郭点列同士の境界を除去した和の輪郭点列Ａを求めたり、金型構造の上面から見える領域のみを求めるために、図26（ａ）に示す如き３次元ソリッドモデルM1の各ソリッドの上面輪郭形状を示す、図26（ｂ）に示す如き輪郭点列を求めて、図26（ｃ）に示すようにそれらの輪郭点列の同士の差の輪郭点列Ｄを求めたり、金型構造で二つのソリッドが同一空間を重複して占有してしまう矛盾を発見するために、図27（ａ）に示す如き３次元ソリッドモデルM2の各ソリッドS1, S2の、ある高さでの断面形状を示す、図27（ｂ）に示す如き輪郭点列を求めて、同図に示すようにそれらの輪郭点列同士の積の輪郭点列Ｐを求めたりする場合がある。
【０００３】
ここに、輪郭点列とは、３次元ソリッドモデルから求まる、図28にそのデータを示す如き、各々座標が定まっている複数の点から構成されて一定の形状を示す点列のうち、点列の始点と終点とが同じ点である閉じた点列をいい、また、二つの輪郭点列の和、差、積の輪郭点列とは、例えば図29（ａ）に示す如き、互いに交差する二つの輪郭点列（この明細書では、かかる互いに関連する二つの輪郭点列を便宜的に輪郭点列C1, 輪郭点列C2と呼び分ける）については、図29（ｂ）、図29（ｃ）、図29（ｄ）にそれぞれ示す如き輪郭点列をいい、このような二つの輪郭点列の和、差あるいは積の輪郭点列を求める際、従来は、例えば図30に輪郭点列C1と輪郭点列C2との二つの輪郭点列について示すように、二つの輪郭点列同士の交点を全て求める処理を行っている。
【０００４】
【発明が解決しようとする課題】
しかしながら、上述の如き従来の輪郭点列同士の交点を求める処理では、二つの輪郭点列の和や差や積の輪郭点列を求めるためには必要でないような交点までが求まってしまうため、計算に時間がかかるとともに大きなメモリー容量を必要とするという問題があり、また求めた交点から次にどちらの点列に進んで行けばよいかを自動的には判別し得ない場合が多いため、システムの使用者が次に進む点列を判断する必要が生ずる場合が多いという問題もあった。
【０００５】
【課題を解決するための手段】
この発明は、上記課題を有利に解決した処理装置を提供することを目的とするものであり、請求項１記載のこの発明の互いに関連する輪郭点列の処理装置は、ＣＡＭシステムのコンピュータにより構成され、金型の加工用ＮＣデータの作成のために互いに関連する二つの輪郭点列の和の輪郭点列を求める処理装置において、前記二つの輪郭点列を互いに同一の所定方向回りにそれぞれ進んで前記和の輪郭点列を求めることとし、先ず、前記二つの輪郭点列の何れか一方にあって他方の輪郭点列の外側に位置する点を探してその点を処理の始点とし、前記処理の始点を、最初のベース点列の一点目の点とするとともに前記求める和の輪郭点列の始点とし、前記処理の始点を含む輪郭点列を最初のベース点列の所定輪郭点列とする和輪郭点列始点設定手段と、一点目の点から所定輪郭点列上の前記所定方向回りの次の点である二点目の点までの線分をベース点列として求め、その求めたベース点列上で前記二つの輪郭点列が交差する交点の数を、前記一点目の点が交点となった場合はそれを交点から除いて調べるベース点列交点調査処理を行うベース点列交点調査手段と、前記ベース点列交点調査処理で交点が無かった場合には、現在のベース点列の前記二点目の点を前記求める和の輪郭点列の次の点とするとともに次のベース点列の一点目の点とし、現在のベース点列を含む輪郭点列を次のベース点列の所定輪郭点列として、前記ベース点列交点調査処理へ戻り、前記ベース点列交点調査処理で交点があった場合には、交点が一つのときはその交点を前記求める和の輪郭点列の次の点とするとともに次のベース点列の一点目の点とし、交点が二つ以上のときはそれらの交点のうち現在のベース点列の前記一点目の点に最も近い交点を前記求める和の輪郭点列の次の点とするとともに次のベース点列の一点目の点とし、現在のベース点列を含む輪郭点列でない他方の輪郭点列が前記次のベース点列の一点目の点から現在のベース点列を含む輪郭点列の外側へ進む場合はその他方の輪郭点列を次のベース点列の所定輪郭点列とし、そうでない場合は現在のベース点列を含む輪郭点列を次のベース点列の所定輪郭点列として、前記ベース点列交点調査処理へ戻る、という処理を、前記和の輪郭点列の点として求めた点が前記処理の始点に一致するまで繰り返す和輪郭点列構成点設定手段と、を具えることを特徴としている。
【０００６】
また、請求項２記載のこの発明の互いに関連する輪郭点列の処理装置は、ＣＡＭシステムのコンピュータにより構成され、金型の加工用ＮＣデータの作成のために互いに関連する二つの輪郭点列の差の輪郭点列を求める処理装置において、前記二つの輪郭点列を互いに逆方向の所定方向回りにそれぞれ進んで前記差の輪郭点列を求めることとし、先ず、前記二つの輪郭点列のうち引かれる方の輪郭点列にあって引く方の輪郭点列の外側に位置する点を探してその点を処理の始点とし、引かれる方の輪郭点列に引く方の輪郭点列の外側に位置する点が無かった場合には引く方の輪郭点列にあって引かれる方の輪郭点列の内側に位置する点を探してその点を処理の始点とし、前記処理の始点を最初のベース点列の一点目の点とするとともに前記求める差の輪郭点列の始点とし、前記処理の始点を含む輪郭点列を最初のベース点列の所定輪郭点列とする差輪郭点列始点設定手段と、一点目の点から所定輪郭点列上の前記所定方向回りの次の点である二点目の点までの線分をベース点列として求め、その求めたベース点列上で前記二つの輪郭点列が交差する交点の数を、前記一点目の点が交点となった場合はそれを交点から除いて調べるベース点列交点調査処理を行うベース点列交点調査手段と、前記ベース点列交点調査処理で交点が無かった場合には、現在のベース点列の前記二点目の点を前記求める差の輪郭点列の次の点とするとともに次のベース点列の一点目の点とし、現在のベース点列を含む輪郭点列を次のベース点列の所定輪郭点列として、前記ベース点列交点調査処理へ戻り、前記ベース点列交点調査処理で交点があった場合には、交点が一つのときはその交点を前記求める差の輪郭点列の次の点とするとともに次のベース点列の一点目の点とし、交点が二つ以上のときはそれらの交点のうち現在のベース点列の前記一点目の点に最も近い交点を前記求める差の輪郭点列の次の点とするとともに次のベース点列の一点目の点とし、現在のベース点列を含む輪郭点列でない他方の輪郭点列が前記引く方の輪郭点列であって前記次のベース点列の一点目の点から現在のベース点列を含む輪郭点列の内側へ進む場合および現在のベース点列を含む輪郭点列でない他方の輪郭点列が前記引かれる方の輪郭点列であって前記次のベース点列の一点目の点から現在のベース点列を含む輪郭点列の外側へ進む場合はその他方の輪郭点列を次のベース点列の所定輪郭点列とし、そうでない場合は現在のベース点列を含む輪郭点列を次のベース点列の所定輪郭点列として、前記ベース点列交点調査処理へ戻る、という処理を、前記差の輪郭点列の点として求めた点が前記処理の始点に一致するまで繰り返す差輪郭点列構成点設定手段と、を具えることを特徴としている。
【０００７】
さらに、請求項３記載のこの発明の互いに関連する輪郭点列の処理装置は、ＣＡＭシステムのコンピュータにより構成され、金型の加工用ＮＣデータの作成のために互いに関連する二つの輪郭点列の積の輪郭点列を求める処理装置において、前記二つの輪郭点列を互いに同一の所定方向回りにそれぞれ進んで前記積の輪郭点列を求めることとし、先ず、前記二つの輪郭点列の何れか一方にあって他方の輪郭点列の内側に位置する点を探してその点を処理の始点とし、何れの輪郭点列にも他方の輪郭点列の内側に位置する点が無かった場合には前記二つの輪郭点列の交点を処理の始点とし、前記処理の始点を最初のベース点列の一点目の点とするとともに前記求める積の輪郭点列の始点とし、前記処理の始点を含む輪郭点列を最初のベース点列の所定輪郭点列とし、その処理の始点が交点である場合にはその交点から他方の輪郭点列の内側に進む輪郭点列を最初のベース点列の所定輪郭点列とする積輪郭点列始点設定手段と、一点目の点から所定輪郭点列上の前記所定方向回りの次の点である二点目の点までの線分をベース点列として求め、その求めたベース点列上で前記二つの輪郭点列が交差する交点の数を、前記一点目の点が交点となった場合はそれを交点から除いて調べるベース点列交点調査処理を行うベース点列交点調査手段と、前記ベース点列交点調査処理で交点が無かった場合には、現在のベース点列の前記二点目の点を前記求める積の輪郭点列の次の点とするとともに次のベース点列の一点目の点とし、現在のベース点列を含む輪郭点列を次のベース点列の所定輪郭点列として、前記ベース点列交点調査処理へ戻り、前記ベース点列交点調査処理で交点があった場合には、交点が一つのときはその交点を前記求める積の輪郭点列の次の点とするとともに次のベース点列の一点目の点とし、交点が二つ以上のときはそれらの交点のうち現在のベース点列の前記一点目の点に最も近い交点を前記求める積の輪郭点列の次の点とするとともに次のベース点列の一点目の点とし、現在のベース点列を含む輪郭点列でない他方の輪郭点列が前記次のベース点列の一点目の点から現在のベース点列を含む輪郭点列の内側へ進む場合はその他方の輪郭点列を次のベース点列の所定輪郭点列とし、そうでない場合は現在のベース点列を含む輪郭点列を次のベース点列の所定輪郭点列として、前記ベース点列交点調査処理へ戻る、という処理を、前記積の輪郭点列の点として求めた点が前記処理の始点に一致するまで繰り返す積輪郭点列構成点設定手段と、を具えることを特徴としている。
【０００８】
そして、請求項４記載のこの発明の互いに関連する輪郭点列の処理装置は、請求項１〜３の何れか記載の装置において、互いに関連する二つの輪郭点列の点のうち、前記和、差もしくは積の輪郭点列を求める処理の始点となり得る点で、前回までの輪郭点列を求める処理で求めた輪郭点列で使用していない点がある場合には、前記処理の始点となり得る点を処理の始点として、前回までの輪郭点列を求める処理と同種の輪郭点列を求める処理を行う複数輪郭点列処理手段を具えることを特徴としている。
【０００９】
【作用】
かかるこの発明の処理装置によれば、互いに関連する二つの輪郭点列の和の輪郭点列を求める処理を行う際に、和輪郭点列始点設定手段が、二つの輪郭点列の何れか一方にあって他方の輪郭点列の外側に位置する点を処理の始点とし、和輪郭点列構成点設定手段が、ベース点列交点調査手段のベース点列交点調査処理に基づき、その処理の始点から常に外側に位置する点列部分を次々に探して逐次ベース点列とするとともに、それらのベース点列の一点目の点を、求める和の輪郭点列の点とするので、短時間の演算で、大きなメモリー容量を必要とせずに、しかも自動的に和の輪郭点列を求めることができる。
【００１０】
またこの発明の処理装置によれば、互いに関連する二つの輪郭点列の差の輪郭点列を求める処理を行う際に、差輪郭点列始点設定手段が、二つの輪郭点列のうち引かれる方の輪郭点列にあって引く方の輪郭点列の外側に位置する点を探してその点を処理の始点とし、引かれる方の輪郭点列に引く方の輪郭点列の外側に位置する点が無かった場合には引く方の輪郭点列にあって引かれる方の輪郭点列の内側に位置する点を探してその点を処理の始点とし、差輪郭点列構成点設定手段が、ベース点列交点調査手段のベース点列交点調査処理に基づき、その処理の始点から引かれる方の輪郭点列の内側へ進む引く方の輪郭点列の点列部分を次々に探して逐次ベース点列とするとともに、それらのベース点列の一点目の点を、求める差の輪郭点列の点とするので、短時間の演算で、大きなメモリー容量を必要とせずに、しかも自動的に差の輪郭点列を求めることができる。
【００１１】
さらにこの発明の処理装置によれば、互いに関連する二つの輪郭点列の積の輪郭点列を求める処理を行う際に、積輪郭点列始点設定手段が、二つの輪郭点列の何れか一方にあって他方の輪郭点列の内側に位置する点を探してその点を処理の始点とし、何れの輪郭点列にも他方の輪郭点列の内側に位置する点が無かった場合には前記二つの輪郭点列の交点を処理の始点とし、積輪郭点列構成点設定手段が、ベース点列交点調査手段のベース点列交点調査処理に基づき、その処理の始点から常に内側に位置する点列部分を次々に探して逐次ベース点列とするとともに、それらのベース点列の一点目の点を、求める積の輪郭点列の点とするので、短時間の演算で、大きなメモリー容量を必要とせずに、しかも自動的に積の輪郭点列を求めることができる。
【００１２】
なお、互いに関連する二つの輪郭点列の点のうち、この発明の処理装置での前記和、差もしくは積の輪郭点列を求める処理の始点となり得る点で、前回までの輪郭点列を求める処理で求めた輪郭点列で使用していない点がある場合に、前記処理の始点となり得る点を処理の始点として、前回までの輪郭点列を求める処理と同種の輪郭点列を求める処理を行う複数輪郭点列処理手段を具えることとすれば、求める輪郭点列が複数存在する場合でも、それらの輪郭点列を全て求めることができる。
【００１３】
【実施例】
以下に、この発明の実施例を図面に基づき詳細に説明する。図１は、この発明の互いに関連する二つの輪郭点列の処理装置として和、差および積の輪郭点列をそれぞれ求める、ＣＡＭシステムのコンピュータにより構成される後述する各実施例の処理装置に共通する基本的な処理の流れを示す説明図であり、ここでは先ず二つの点列がそれぞれ閉じて輪郭点列を構成しているか否かを、前述のように点列データの始点と終点とが一致しているか否かによってチェックし、次いで輪郭点列上を進む方向を所定方向回り、例えばこの実施例では左回りに統一し、次いで後述の如くして処理の始点を定める。但し、後述するように、和および積の輪郭点列を求める際には、二つの輪郭点列の何れの点列上でも左回りに進むが、差の輪郭点列を求める際には、引かれる方の点列上では左回りに進む一方、引く方の点列上では逆方向の右回りに進む。
【００１４】
次にここでは、ある一点目の点から、所定輪郭点列すなわち後述する現在進む点列上の、後述する所定方向回りの次の点である二点目の点までの線分である、ベース点列を逐次求めてゆき、その際、上記処理の始点を、求める輪郭点列の始点とするとともに最初のベース点列の一点目の点とし、以後、ベース点列を求める所定輪郭点列を定め、その所定輪郭点列上の次の点である二点目の点を求めて上記一点目の点から上記所定輪郭点列上でその二点目の点に至るベース点列を求め、その求めたベース点列と上記所定輪郭点列でない他方の輪郭点列との交点を求めることにより次のベース点列の一点目の点および求める輪郭点列の次の点を求める、といった処理を繰り返すことで、ベース点列B1，B2，B3・・および求める輪郭点列の各構成点を逐次求め、このようにして求めたベース点列の二点目の点が上記処理の始点になったら、処理を終了する。なお、図２に示すように、複数の解すなわち複数の輪郭点列を求める場合には、処理の始点を定める段階から上記手順を繰り返し行い、その場合には、前回までの処理で使用した点は処理の始点として使用できないこととして、図２に示す処理の始点SP1, SP2の如く、求める複数の輪郭点列の各々についての処理の始点を定める。
【００１５】
図３〜図６は、この発明の互いに関連する二つの輪郭点列の処理装置のうちの和の輪郭点列を求める処理装置の一実施例が行う処理を示すフローチャートであり、ここでは先ず、図３に示すように、ステップ１で、上述の如くして各々輪郭点列であることを確認した二つの点列C1，C2のうちの一方の点列C1の任意の一つの点（例えば前記点列データの最初の点）のデータを読み込み、次のステップ２で、ステップ１の処理で読み込む点（読み込み済みでない点）があったか否かを判断し、読み込む点があった場合には、ステップ３で、ステップ１で読み込んだ点が他方の点列C2の外側にあるか否かを判断し、その読み込んだ点が他方の点列C2の外側にないと判断した場合には、そこからステップ１へ戻って点列C1の次の点を読み込む。また上記ステップ２で読み込む点がもう無かったと判断した場合には、そこからステップ４へ進む。
【００１６】
そしてステップ４では、他方の点列C2の任意の一つの点のデータを読み込み、以後はステップ２，３におけると同様に、次のステップ５で、ステップ４の処理で読み込む点があったか否かを判断し、読み込む点があった場合には、ステップ６で、ステップ４で読み込んだ点がその読み込みを行った点列C2から見れば他方の点列である点列C1の外側にあるか否かを判断し、その読み込んだ点が他方の点列C1の外側にないと判断した場合には、そこからステップ４へ戻って点列C2の次の点を読み込む。また上記ステップ５で読み込む点がもう無かったと判断した場合には、そこからステップ７へ進んで、二つの点列C1，C2は実質的に一致していると判断し、その場合にはどちらの点列も和の輪郭点列とし得るので、そこで処理を終了する。
【００１７】
しかして、ステップ３で、ステップ１で読み込んだ点が図７（ａ）に示す点列C1の左端の点の如く他方の点列C2の外側にあると判断した場合には、ステップ８で、ベース点列を求める所定輪郭点列すなわち現在進む点列を点列C1とし、次のステップ９で、図７（ａ）に示すように、上記読み込んだ点を処理の始点SPとするとともに求める和の輪郭点列の始点とし、次のステップ10で、求まった和の輪郭点列の点の数を１とし、次のステップ11で、上記処理の始点を最初のベース点列の一点目の点とし、点列C1上をここでの所定方向回りとしての左回りに進む時のその処理の始点の次の点を、最初のベース点列の二点目の点とする。
【００１８】
また、ステップ６で、ステップ４で読み込んだ点が図７（ｂ）に示す点列C2の右下端の点の如く他方の点列C1の外側にあると判断した場合には、ステップ８〜11におけると同様に、ステップ12で、現在進む点列を点列C2とし、次のステップ13で、図７（ｂ）に示すように、上記読み込んだ点を処理の始点SPとするとともに求める和の輪郭点列の始点とし、次のステップ14で、求まった和の輪郭点列の点の数を１とし、次のステップ15で、上記処理の始点を最初のベース点列の一点目の点とし、点列C2上をここでの所定方向としての左回りに進む時のその処理の始点の次の点を、最初のベース点列の二点目の点とする。従って、上記ステップ１〜１５に示す処理を行う上記コンピュータは、和輪郭点列始点設定手段に相当する。
【００１９】
かくして最初のベース点列の一点目の点と二点目の点とが定まって、図１に示すベース点列B1の如き、最初のベース点列が求まり、その後ここでは、図４に示すように、ステップ16で、現在進む点列が点列C1か否かを判断し、現在進む点列が点列C1の場合には、ステップ17で、ベース点列とここでの他方の点列である点列C2との間の交点を求め、次のステップ18で、ステップ17の処理で交点があったか否かを判断し、交点がなかったと判断した場合には、ステップ19で、その現在のベース点列における二点目の点を、求める和の輪郭点列の次の点とし、さらに次のステップ20で、その現在のベース点列における二点目の点を次のベース点列の一点目の点とするとともに、現在進む点列C1上をここでの所定方向としての左回りに進む時の、上記次のベース点列の一点目の点の次の点を次のベース点列の二点目の点とする。すなわち例えば、図８に一部を示す二つの輪郭点列C1, C2において現在のベース点列が現在進む点列C1上の点P1から点P2までの線分の場合には、そのベース点列は点列C2との間に交点を持っていないので、点P2を次のベース点列の一点目の点とし、点P3を次のベース点列の二点目の点とする。
【００２０】
またステップ18で、現在のベース点列と点列C2との間に交点があったと判断した場合には、ステップ21で、その交点の数を調べて、点列C2との間に交点が一つあった場合には、ステップ22で、その交点を、求める和の輪郭点列の次の点とする。すなわち例えば、図８において現在のベース点列が現在進む点列C1上の点P2から点P3までの線分の場合には、点列C2との間に一つの交点R1があるので、その交点R1を、求める和の輪郭点列の次の点とする。なお、図９に示すように、現在のベース点列が現在進む点列C1上の点P2から点P3までの線分であって点列C2上の二点Q2, Q3の位置で交差している場合の如く、現在のベース点列が他方の点列と重なっている特殊な場合には、現在のベース点列の一点目の点P2は交点から除いて考えることとし、それゆえこの場合には交点は点P3の一点のみであるとして、その点P3を、求める和の輪郭点列の次の点とする。但し、点P2は前のベース点列の二点目の点であるので、既に和の輪郭点列の点としてある。
【００２１】
またステップ21で、現在のベース点列と点列C2との間に交点が二つ以上あったと判断した場合には、ステップ23で、それら複数の交点のうち、現在のベース点列上を上記のように左回りに進む時の、現在のベース点列の一点目の点に最も近い交点を、求める和の輪郭点列の次の点とする。すなわち例えば、図10に示すように、現在のベース点列が現在進む点列C1上の点P2から点P3までの線分であって点列C2と三つの交点R1, R2, R3で交差している場合には、それらの交点のうち、現在のベース点列の一番目の点である点P2に最も近い交点R1を、求める和の輪郭点列の次の点とする。
【００２２】
かかるステップ22あるいはステップ23の処理後は、ステップ24で、上記求める和の輪郭点列の次の点とした交点から点列C2上を上記のように左回りに進むと点列C1の外側へ向かうか否かを判断し、図８および図10に示す交点R1や図９に示す交点としての点P3から進む場合のように点列C2上を左回りに進むと点列C1の外側へ向かう場合には、ステップ25で、次のベース点列を求める所定輪郭点列すなわち次のベース点列のための現在進む点列をその点列C2とし、次のステップ26で、上記求める和の輪郭点列の次の点とした交点を次のベース点列の一点目の点とするとともに、その点列C2上を左回りに進む時の上記交点の次の点を次のベース点列の二点目の点とする。これにより、次のベース点列の一点目の点となる図８および図10に示す交点R1からは、点列C2上の点Q3が次のベース点列の二点目の点となり、従って次のベース点列は交点R1から点Q3までの線分となる。
【００２３】
またステップ24で、点列C2上を左回りに進むと点列C1の外側へは向かわないと判断した場合には、次のベース点列を求める所定輪郭点列すなわち次のベース点列のための現在進む点列を点列C1のままとして、ステップ27で、上記求める和の輪郭点列の次の点とした交点を次のベース点列の一点目の点とするとともに、その点列C1上を左回りに進む時の上記交点の次の点を次のベース点列の二点目の点とする。
【００２４】
この一方、ステップ16での判断の結果、現在進む点列が点列C2の場合には、図５に示すように、ステップ17〜27におけると同様、ステップ28で、ベース点列とここでの他方の点列である点列C1との間の交点を求め、次のステップ29で、ステップ28の処理で交点があったか否かを判断し、交点がなかったと判断した場合には、ステップ30で、その現在のベース点列における二点目の点を、求める和の輪郭点列の次の点とし、さらに次のステップ31で、その現在のベース点列における二点目の点を次のベース点列の一点目の点とするとともに、現在進む点列C2上をここでの所定方向としての左回りに進む時の、上記次のベース点列の一点目の点の次の点を次のベース点列の二点目の点とする。
【００２５】
またステップ29で、現在のベース点列と点列C1との間に交点があったと判断した場合には、ステップ32で、その交点の数を調べて、点列C1との間に交点が一つあった場合には、ステップ33で、その交点を、求める和の輪郭点列の次の点とする。すなわち例えば、図10に一部を示す二つの輪郭点列C1, C2において現在のベース点列が現在進む点列C2上の点Q3から点Q4までの線分の場合には、点列C1との間に一つの交点R2があるので、その交点R2を、求める和の輪郭点列の次の点とする。なお、このステップ32の場合も、ステップ21におけると同様、現在のベース点列が他方の点列と重なっている特殊な場合には、現在のベース点列の一点目の点は交点から除いて考えることとする。一方、ステップ32で、現在のベース点列と点列C2との間に交点が二つ以上あったと判断した場合には、ステップ34で、それら複数の交点のうち、現在のベース点列上を上記のように左回りに進む時の、現在のベース点列の一点目の点に最も近い交点を、求める和の輪郭点列の次の点とする。従って、上記ステップ１６〜１８，２１，２８，２９，３２に示す処理を行う上記コンピュータは、ベース点列交点調査手段に相当する。
【００２６】
かかるステップ33あるいはステップ34の処理後は、ステップ35で、上記求める和の輪郭点列の次の点とした交点から点列C1上を上記のように左回りに進むと点列C2の外側へ向かうか否かを判断し、図10に示す交点R2から進む場合のように点列C1上を左回りに進むと点列C2の外側へ向かう場合には、ステップ36で、次のベース点列を求める所定輪郭点列すなわち次のベース点列のための現在進む点列をその点列C1とし、次のステップ37で、上記求める和の輪郭点列の次の点とした交点を次のベース点列の一点目の点とするとともに、その点列C1上を左回りに進む時の上記交点の次の点を次のベース点列の二点目の点とする。これにより、次のベース点列の一点目の点となる図10に示す交点R2からは、点列C1上の点P3が次のベース点列の二点目の点となり、従って次のベース点列は交点R2から点P3までの線分となる。
【００２７】
またステップ35で、点列C1上を左回りに進むと点列C2の外側へは向かわないと判断した場合には、次のベース点列を求める所定輪郭点列すなわち次のベース点列のために現在進む点列を点列C2のままとして、ステップ38で、上記求める和の輪郭点列の次の点とした交点を次のベース点列の一点目の点とするとともに、その点列C2上を左回りに進む時の上記交点の次の点を次のベース点列の二点目の点とする。
【００２８】
上記ステップ20，26，27あるいはステップ31, 37, 38の処理後は、図６に示すように、ステップ39で、求まった和の輪郭点列の点の数を一つ増やして、次のステップ40で、今求まった点が先に求めた処理の始点すなわち和の輪郭点列の始点と一致するか否かを判断し、一致しなければ、次のベース点列ひいては、和の輪郭点列の次の点を求めるためにステップ16へ戻り、また今求まった点が先に求めた処理の始点と一致する場合には、求まった点列が閉じて和の輪郭点列となったので、処理を終了する。従って、上記ステップ１９，２０，２２〜２７，３０，３１，３３〜４０に示す処理を行う上記コンピュータは、和輪郭点列構成点設定手段に相当する。
【００２９】
上記実施例の装置によれば、二つの輪郭点列の何れか一方にあって他方の輪郭点列の外側に位置する点を処理の始点とし、その処理の始点から常に外側に位置する点列部分を次々に探して逐次ベース点列とするとともに、それらのベース点列の一点目の点を、求める和の輪郭点列の点とするので、短時間の演算で、大きなメモリー容量を必要とせずに、しかも自動的に和の輪郭点列を求めることができる。
【００３０】
図11〜図14は、この発明の互いに関連する二つの輪郭点列の処理装置のうちの差の輪郭点列を求める処理装置の一実施例が行う処理を示すフローチャートであり、ここでは図15に示すように、二つの輪郭点列C1，C2のうちの点列C1から点列C2を引いて差の輪郭点列を求めるものとし、先ず、図11に示すように、ステップ41で、前述の如くして各々輪郭点列であることを確認した二つの点列C1，C2のうちの引かれる方の点列C1の任意の一つの点（例えば前記点列データの最初の点）のデータを読み込み、次のステップ42で、ステップ41の処理で読み込む点（読み込み済みでない点）があったか否かを判断し、読み込む点があった場合には、ステップ43で、ステップ41で読み込んだ点が引く方の点列C2の外側にあるか否かを判断し、その読み込んだ点が引く方の点列C2の外側にないと判断した場合には、そこからステップ41へ戻って点列C1の次の点を読み込む。また上記ステップ42で読み込む点がもう無かったと判断した場合には、そこからステップ44へ進む。
【００３１】
そしてステップ44では、他方である引く方の点列C2の任意の一つの点のデータを読み込み、以後はステップ42，43におけると同様に、次のステップ45で、ステップ44の処理で読み込む点があったか否かを判断し、読み込む点があった場合には、ステップ46で、ステップ44で読み込んだ点が引かれる方の点列C1の内側にあるか否かを判断し、その読み込んだ点が引かれる方の点列C1の内側にないと判断した場合には、そこからステップ44へ戻って点列C2の次の点を読み込む。また上記ステップ45で読み込む点がもう無かったと判断した場合には、差の輪郭点列は存在し得ないので、そこからステップ47へ進んで、解なしと判断し、そこで処理を終了する。
【００３２】
しかして、ステップ43で、ステップ41で読み込んだ点が図15（ａ）に示す引かれる方の点列C1の左端の点の如く引く方の点列C2の外側にあると判断した場合には、ステップ48で、ベース点列を求める所定輪郭点列すなわち現在進む点列を点列C1とし、次のステップ49で、図15（ａ）に示すように、上記読み込んだ点を処理の始点SPとするとともに求める差の輪郭点列の始点とし、次のステップ50で、求まった差の輪郭点列の点の数を１とし、次のステップ51で、上記処理の始点を最初のベース点列の一点目の点とし、点列C1上をここでの所定方向回りとしての左回りに進む時のその処理の始点の次の点を、最初のベース点列の二点目の点とする。
【００３３】
また、ステップ46で、ステップ44で読み込んだ点が図15（ｂ）に示す点列C2の中央部下側の点の如く引かれる方の点列C1の内側にあると判断した場合には、ステップ48〜51におけると同様に、ステップ52で、現在進む点列を点列C2とし、次のステップ53で、図15（ｂ）に示すように、上記読み込んだ点を処理の始点SPとするとともに求める差の輪郭点列の始点とし、次のステップ54で、求まった差の輪郭点列の点の数を１とし、次のステップ55で、上記処理の始点を最初のベース点列の一点目の点とし、点列C2上をここでの所定方向としての右回りに進む時のその処理の始点の次の点を、最初のベース点列の二点目の点とする。従って、上記ステップ４１〜５５に示す処理を行う上記コンピュータは、差輪郭点列始点設定手段に相当する。
【００３４】
かくして最初のベース点列の一点目の点と二点目の点とが定まって、図１に示すベース点列B1の如き、最初のベース点列が求まり、その後ここでは、図12に示すように、ステップ56で、現在進む点列が引かれる方の点列C1か否かを判断し、現在進む点列が点列C1の場合には、ステップ57で、ベース点列とここでの他方の点列である引く方の点列C2との間の交点を求め、次のステップ58で、ステップ57の処理で交点があったか否かを判断し、交点がなかったと判断した場合には、ステップ59で、その現在のベース点列における二点目の点を、求める差の輪郭点列の次の点とし、さらに次のステップ60で、その現在のベース点列における二点目の点を次のベース点列の一点目の点とするとともに、現在進む点列である点列C1上をここでの所定方向としての左回りに進む時の、上記次のベース点列の一点目の点の次の点を次のベース点列の二点目の点とする。すなわち例えば、図16に一部を示す二つの輪郭点列C1, C2（点列C1が引かれる方の点列）において現在のベース点列が現在進む点列C1上の点P1から点P2までの線分の場合には、そのベース点列は点列C2との間に交点を持っていないので、点P2を次のベース点列の一点目の点とし、点P3を次のベース点列の二点目の点とする。
【００３５】
またステップ58で、現在のベース点列と引く方の点列C2との間に交点があったと判断した場合には、ステップ61で、その交点の数を調べて、点列C2との間に交点が一つあった場合には、ステップ62で、その交点を、求める差の輪郭点列の次の点とする。すなわち例えば、図16において現在のベース点列が現在進む点列C1上の点P2から点P3までの線分の場合には、点列C2との間に一つの交点R1があるので、その交点R1を、求める差の輪郭点列の次の点とする。なお、現在のベース点列が他方の点列と重なっている特殊な場合には、和の輪郭点列を求める場合と同様、現在のベース点列の一点目の点は交点から除いて考えることとする。
【００３６】
またステップ61で、現在のベース点列と引く方の点列C2との間に交点が二つ以上あったと判断した場合には、ステップ63で、それら複数の交点のうち、現在のベース点列上を上記のように左回りに進む時の、現在のベース点列の一点目の点に最も近い交点を、求める和の輪郭点列の次の点とする。
【００３７】
かかるステップ62あるいはステップ63の処理後は、ステップ64で、上記求める差の輪郭点列の次の点とした交点から点列C2上を上記のように右回りに進むと現在のベース点列を含む輪郭点列である点列C1の内側へ向かうか否かを判断して、図16に示す点P2から交点R1へ来てそこから進む場合や図17に示す点P2から交点としての点P3へ来てそこから進む場合のように点列C2上を右回りに進むと点列C1の内側へ向かう場合には、そのステップ64で、次のベース点列を求める所定輪郭点列すなわち次のベース点列のための現在進む点列をその点列C2とし、次のステップ65で、上記求める和の輪郭点列の次の点とした交点を次のベース点列の一点目の点とするとともに、その点列C2上を右回りに進む時の上記交点の次の点を次のベース点列の二点目の点とする。これにより、次のベース点列の一点目の点となる図16に示す交点R1からは、点列C2上の点Q2が次のベース点列の二点目の点となり、従って、次のベース点列は交点R1から点Q2までの線分となる。また次のベース点列の一点目の点となる図17に示す点P3からは、点列C2上の点Q2が次のベース点列の二点目の点となり、従って、次のベース点列は点P3から点Q2までの線分となる。
【００３８】
なお、図示しないが、引く方の点列C2がその一部分で引かれる方の点列C1と交差するとともに他の一部分で引かれる方の点列C1の外側からその点列C1に接するような特殊な場合には、上記ステップ64で、点列C1上の現在のベース点列の二点目の点である交点（上記接点）から点列C2上を右回りに進むと現在のベース点列を含む輪郭点列である点列C1の内側へ向かわず外側へ向かうことになり、また図９に示すように現在のベース点列が他方すなわち引く方の点列と重なる場合も同様であり、かかる場合はステップ64で、次のベース点列を求める所定輪郭点列すなわち次のベース点列のための現在進む点列をそのまま点列C1として点列の乗換えを行わず、次いで図示しないステップで、上記ステップ65とは異なり、図４のステップ27におけると同様に、上記求める差の輪郭点列の次の点とした交点を次のベース点列の一点目の点とするとともに、その点列C1上を左回りに進む時の上記交点の次の点を次のベース点列の二点目の点とする。
【００３９】
この一方、ステップ56での判断の結果、現在進む点列が点列C2の場合には、図13に示すように、ステップ57〜65におけると同様、ステップ66で、ベース点列とここでの他方の点列である引かれる方の点列C1との間の交点を求め、次のステップ67で、ステップ66の処理で交点があったか否かを判断し、交点がなかったと判断した場合には、ステップ68で、その現在のベース点列における二点目の点を、求める差の輪郭点列の次の点とし、さらに次のステップ69で、その現在のベース点列における二点目の点を次のベース点列の一点目の点とするとともに、現在進む点列である点列C2上をここでの所定方向としての右回りに進む時の、上記次のベース点列の一点目の点の次の点を次のベース点列の二点目の点とする。
【００４０】
またステップ67で、現在のベース点列と引かれる方の点列C1との間に交点があったと判断した場合には、ステップ70で、その交点の数を調べ、点列C1との間に交点が一つあった場合には、ステップ71で、その交点を、求める差の輪郭点列の次の点とする。すなわち例えば、図17において現在のベース点列が現在進む点列C2上の点Q4から点Q3までの線分の場合には、点列C1との間に一つの交点Q3があるので、その交点Q3を、求める差の輪郭点列の次の点とする。なお、このステップ70の場合も、ステップ61におけると同様、現在のベース点列が他方の点列と重なっている特殊な場合には、現在のベース点列の一点目の点は交点から除いて考えることとする。一方、ステップ70で、現在のベース点列と引かれる方の点列C1との間に交点が二つ以上あったと判断した場合には、ステップ72で、それら複数の交点のうち、現在のベース点列上を上記のように右回りに進む時の、現在のベース点列の一点目の点に最も近い交点を、求める差の輪郭点列の次の点とする。従って、上記ステップ５６〜５８，６１，６６，６７，７０に示す処理を行う上記コンピュータは、ベース点列交点調査手段に相当する。
【００４１】
かかるステップ71あるいはステップ72の処理後は、ステップ73で、上記求める差の輪郭点列の次の点とした交点から他方の点列C1上を上記のように左回りに進むと現在のベース点列を含む輪郭点列である点列C2の外側へ向かうか否かを判断して、図17に示す点Q4から交点としての点Q3へ来てそこから進む場合のように点列C1上を左回りに進むと点列C2の外側へ向かう場合には、そのステップ73で、次のベース点列を求める所定輪郭点列すなわち次のベース点列のための現在進む点列をその点列C1とし、次のステップ74で、上記求める差の輪郭点列の次の点とした交点を次のベース点列の一点目の点とするとともに、その点列C1上を左回りに進む時の上記交点の次の点を次のベース点列の二点目の点とする。これにより、次のベース点列の一点目の点となる点Q3からは、点列C1上の点P4が次のベース点列の二点目の点となり、従って、次のベース点列は点Q3から点P4までの線分となる。
【００４２】
なお、上記ステップ73で、点列C2上の現在のベース点列の二点目の点である交点から点列C1上を左回りに進むと現在のベース点列を含む輪郭点列である点列C2の外側へ向かわなくなるような場合には、上記ステップ64におけると同様、そのステップ73で、次のベース点列を求める所定輪郭点列すなわち次のベース点列のための現在進む点列をそのまま点列C2として点列の乗換えを行わず、次いで図示しないステップで、上記ステップ74とは異なり、図５のステップ38におけると同様に、上記求める差の輪郭点列の次の点とした交点を次のベース点列の一点目の点とするとともに、その点列C2上を右回りに進む時の上記交点の次の点を次のベース点列の二点目の点とする。
【００４３】
上記ステップ60, 65あるいはステップ69, 74あるいは、ステップ64, 73に続く上記図示しないステップでの処理後は、図14に示すように、ステップ75で、求まった差の輪郭点列の点の数を一つ増やして、次のステップ76で、今求まった点が先に求めた処理の始点すなわち差の輪郭点列の始点と一致するか否かを判断し、一致しなければ、次のベース点列ひいては、差の輪郭点列の次の点を求めるためにステップ56へ戻り、また今求まった点が先に求めた処理の始点と一致する場合には、求まった点列が閉じて差の輪郭点列となったので、処理を終了する。従って、上記ステップ５９，６０，６２〜６５，６８，６９，７１〜７６に示す処理を行う上記コンピュータは、和輪郭点列構成点設定手段に相当する。
【００４４】
上記実施例の装置によれば、二つの輪郭点列のうち引かれる方の輪郭点列にあって引く方の輪郭点列の外側に位置する点を探してその点を処理の始点とし、引かれる方の輪郭点列に引く方の輪郭点列の外側に位置する点が無かった場合には引く方の輪郭点列にあって引かれる方の輪郭点列の内側に位置する点を探してその点を処理の始点とし、その処理の始点から引かれる方の輪郭点列の内側へ進む引く方の輪郭点列の点列部分を次々に探して逐次ベース点列とするとともに、それらのベース点列の一点目の点を、求める差の輪郭点列の点とするので、短時間の演算で、大きなメモリー容量を必要とせずに、しかも自動的に差の輪郭点列を求めることができる。
【００４５】
図18〜図21は、この発明の互いに関連する二つの輪郭点列の処理装置のうちの積の輪郭点列を求める処理装置の一実施例が行う処理を示すフローチャートであり、ここでは先ず、図18に示すように、ステップ81で、前述の如くして各々輪郭点列であることを確認した二つの点列C1, C2のうちの一方の点列C1の任意の一つの点（例えば前記点列データの最初の点）のデータを読み込み、次のステップ82で、ステップ81の処理で読み込む点（読み込み済みでない点）があったか否かを判断し、読み込む点があった場合には、ステップ83で、ステップ81で読み込んだ点が他方の点列C2の内側にあるか否かを判断し、その読み込んだ点が他方の点列C2の内側にないと判断した場合には、そこからステップ81へ戻って点列C1の次の点を読み込む。また上記ステップ82で読み込む点がもう無かったと判断した場合には、そこからステップ84へ進む。
【００４６】
そしてステップ84では、他方の点列C2の任意の一つの点のデータを読み込み、以後はステップ82，83におけると同様に、次のステップ85で、ステップ84の処理で読み込む点があったか否かを判断し、読み込む点があった場合には、ステップ86で、ステップ84で読み込んだ点がその読み込みを行った点列C2から見れば他方の点列である点列C1の内側にあるか否かを判断し、その読み込んだ点が他方の点列C1の内側にないと判断した場合には、そこからステップ84へ戻って点列C2の次の点を読み込む。また上記ステップ85で読み込む点がもう無かったと判断した場合には、そこからステップ87へ進む。
【００４７】
ステップ87では、上記二つの輪郭点列C1, C2の交点の一つを求め、次のステップ88では、ステップ87の処理で交点があったか否かを判断し、交点があった場合には、ステップ89で、その交点から点列C1, C2のうちの何れかの輪郭点列上をここでの所定方向である左回りに進む時に他方の輪郭点列の内側に進むか否かを判断し、何れの輪郭点列上を進んでも他方の輪郭点列の内側に進まない場合には、そこからステップ87へ戻って次の交点を求める。またステップ88で交点がもうなかったと判断した場合には、二つの点列C1，C2の積の輪郭点列は存在し得ないので、そこからステップ90へ進んで、解なしと判断し、そこで処理を終了する。
【００４８】
しかして、ステップ83で、ステップ81で読み込んだ点が図22（ａ）に示す点列C1の右端の点の如く他方の点列C2の内側にあると判断した場合には、ステップ91で、ベース点列を求める所定輪郭点列すなわち現在進む点列を点列C1とし、次のステップ92で、図22（ａ）に示すように、上記読み込んだ点を処理の始点SPとするとともに求める積の輪郭点列の始点とし、次のステップ93で、求まった積の輪郭点列の点の数を１とし、次のステップ94で、上記処理の始点を最初のベース点列の一点目の点とし、点列C1上をここでの所定方向回りとしての左回りに進む時のその処理の始点の次の点を、最初のベース点列の二点目の点とする。
【００４９】
また、ステップ86で、ステップ84で読み込んだ点が図22（ｂ）に示す点列C2の中央部上側の点の如く他方の点列C1の内側にあると判断した場合には、ステップ91〜94におけると同様に、ステップ95で、現在進む点列を点列C2とし、次のステップ96で、図22（ｂ）に示すように、上記読み込んだ点を処理の始点SPとするとともに求める積の輪郭点列の始点とし、次のステップ97で、求まった積の輪郭点列の点の数を１とし、次のステップ98で、上記処理の始点を最初のベース点列の一点目の点とし、点列C2上をここでの所定方向としての左回りに進む時のその処理の始点の次の点を、最初のベース点列の二点目の点とする。
【００５０】
さらに、ステップ89で、ステップ87で求めた交点が図22（ｃ）に示す左上の交点の如くそこから点列C1, C2のうちの何れかの輪郭点列上を左回りに進む時に他方の輪郭点列の内側に進むと判断した場合には、ステップ99で、その交点を処理の始点SPとするとともに求める積の輪郭点列の始点とし、次のステップ100 で、求まった積の輪郭点列の点の数を１とし、次のステップ101 で、その処理の始点SPから点列C1上を左回りに進む時に他方の輪郭点列である点列C2の内側に進むか否かを判断して、点列C1上を進むと点列C2の内側に進む場合には、ステップ91およびステップ94におけると同様、ステップ102 で、現在進む点列を点列C1とし、次のステップ103 で、上記処理の始点を最初のベース点列の一点目の点とし、点列C1上をここでの所定方向回りとしての左回りに進む時のその処理の始点の次の点を、最初のベース点列の二点目の点とする。またステップ101 で、点列C1上を進むと点列C2の内側に進まない場合には、ステップ89での判断から点列C2上を進むと点列C1の内側に進むということになるので、ステップ95およびステップ98におけると同様、ステップ104 で、現在進む点列を点列C2とし、次のステップ105で、上記処理の始点を最初のベース点列の一点目の点とし、点列C2上をここでの所定方向回りとしての左回りに進む時のその処理の始点の次の点を、最初のベース点列の二点目の点とする。従って、上記ステップ８１〜１０５に示す処理を行う上記コンピュータは、積輪郭点列始点設定手段に相当する。
【００５１】
かくして最初のベース点列の一点目の点と二点目の点とが定まって、最初のベース点列が求まり、その後ここでは、図19に示すように、ステップ106 で、現在進む点列が点列C1か否かを判断し、現在進む点列が点列C1の場合には、ステップ107 で、ベース点列とここでの他方の点列である点列C2との間の交点を求め、次のステップ108 で、ステップ107 の処理で交点があったか否かを判断し、交点がなかったと判断した場合には、ステップ109 で、その現在のベース点列における二点目の点を、求める積の輪郭点列の次の点とし、さらに次のステップ110 で、その現在のベース点列における二点目の点を次のベース点列の一点目の点とするとともに、現在進む点列C1上をここでの所定方向としての左回りに進む時の、上記次のベース点列の一点目の点の次の点を次のベース点列の二点目の点とする。すなわち例えば、図23に一部を示す二つの輪郭点列C1, C2において現在のベース点列が現在進む点列C1上の点P1から点P2までの線分の場合には、そのベース点列は点列C2との間に交点を持っていないので、点P2を次のベース点列の一点目の点とし、点P3を次のベース点列の二点目の点とする。
【００５２】
またステップ108 で、現在のベース点列と点列C2との間に交点があったと判断した場合には、ステップ111 で、その交点の数を調べて、点列C2との間に交点が一つあった場合には、ステップ112 で、その交点を、求める積の輪郭点列の次の点とする。すなわち例えば、図23において現在のベース点列が現在進む点列C1上の点P2から点P3までの線分の場合には、他方の点列C2との間に一つの交点R1があるので、その交点R1を、求める積の輪郭点列の次の点とする。なお、現在のベース点列が他方の点列と重なっている特殊な場合には、和の輪郭点列を求める場合と同様、現在のベース点列の一点目の点は交点から除いて考えることとする。一方、ステップ111 で、現在のベース点列と点列C2との間に交点が二つ以上あったと判断した場合には、ステップ113 で、それら複数の交点のうち、現在のベース点列上を上記のように左回りに進む時の、現在のベース点列の一点目の点に最も近い交点を、求める積の輪郭点列の次の点とする。
【００５３】
かかるステップ112 あるいはステップ113 の処理後は、ステップ114 で、上記求める積の輪郭点列の次の点とした交点から点列C2上を上記のように左回りに進むと点列C1の内側へ向かうか否かを判断し、図23に示す交点R1から進む場合のように点列C2上を左回りに進むと点列C1の内側へ向かう場合にはステップ115 で、次のベース点列を求める所定輪郭点列すなわち次のベース点列のための現在進む点列をその点列C2とし、次のステップ116 で、上記求める積の輪郭点列の次の点とした交点を次のベース点列の一点目の点とするとともに、その点列C2上を左回りに進む時の上記交点の次の点を次のベース点列の二点目の点とする。これにより、次のベース点列の一点目の点となる図23に示す交点R1からは、点列C2上の点Q3が次のベース点列の二点目の点となり、従って次のベース点列は交点R1から点Q3までの線分となる。
【００５４】
またステップ114 で、点列C2上を左回りに進むと点列C1の内側へは向かわないと判断した場合には、次のベース点列を求める所定輪郭点列すなわち次のベース点列のための現在進む点列を点列C1のままとし、ステップ117 で、上記求める和の輪郭点列の次の点とした交点を次のベース点列の一点目の点とするとともに、その点列C1上を左回りに進む時の上記交点の次の点を次のベース点列の二点目の点とする。
【００５５】
この一方ステップ106 での判断の結果、現在進む点列が点列C2の場合には、図20に示すように、ステップ107 〜117 におけると同様、ステップ118 で、ベース点列とここでの他方の点列である点列C1との間の交点を求め、次のステップ119 で、ステップ118 の処理で交点があったか否かを判断し、交点がなかったと判断した場合には、ステップ120 で、その現在のベース点列における二点目の点を、求める積の輪郭点列の次の点とし、さらに次のステップ121 で、その現在のベース点列における二点目の点を次のベース点列の一点目の点とするとともに、現在進む点列C2上をここでの所定方向としての左回りに進む時の、上記次のベース点列の一点目の点の次の点を次のベース点列の二点目の点とする。
【００５６】
またステップ119 で、現在のベース点列と点列C1との間に交点があったと判断した場合には、ステップ122 で、その交点の数を調べて、点列C1との間に交点が一つあった場合には、ステップ123 で、その交点を、求める積の輪郭点列の次の点とする。なお、このステップ122 の場合も、ステップ111 におけると同様、現在のベース点列が他方の点列と重なっている特殊な場合には、現在のベース点列の一点目の点は交点から除いて考えることとする。一方、ステップ122 で、現在のベース点列と点列C2との間に交点が二つ以上あったと判断した場合には、ステップ124 で、それら複数の交点のうち、現在のベース点列上を上記のように左回りに進む時の、現在のベース点列の一点目の点に最も近い交点を、求める和の輪郭点列の次の点とする。従って、上記ステップ１０６〜１０８，１１１，１１８，１１９，１２２に示す処理を行う上記コンピュータは、ベース点列交点調査手段に相当する。
【００５７】
かかるステップ123 あるいはステップ124 の処理後は、ステップ125 で、上記求める積の輪郭点列の次の点とした交点から点列C1上を上記のように左回りに進むと点列C2の内側へ向かうか否かを判断し、点列C1上を左回りに進むと点列C2の内側へ向かう場合には、ステップ126 で、次のベース点列を求める所定輪郭点列すなわち次のベース点列のための現在進む点列をその点列C1とし、次のステップ127 で、上記求める積の輪郭点列の次の点とした交点を次のベース点列の一点目の点とするとともに、その点列C1上を左回りに進む時の上記交点の次の点を次のベース点列の二点目の点とする。
【００５８】
またステップ125 で、点列C1上を左回りに進むと点列C2の内側へは向かわないと判断した場合には、次のベース点列を求める所定輪郭点列すなわち次のベース点列のために現在進む点列を点列C2のままとし、ステップ128 で、上記求める積の輪郭点列の次の点とした交点を次のベース点列の一点目の点とするとともに、その点列C2上を左回りに進む時の上記交点の次の点を次のベース点列の二点目の点とする。
【００５９】
上記ステップ110, 116，117 あるいはステップ121, 127, 128 の処理後は、図21に示すように、ステップ129 で、求まった積の輪郭点列の点の数を一つ増やして、次のステップ130 で、今求まった点が先に求めた処理の始点すなわち積の輪郭点列の始点と一致するか否かを判断し、一致しなければ、次のベース点列ひいては、積の輪郭点列の次の点を求めるためにステップ106 へ戻り、また今求まった点が先に求めた処理の始点と一致する場合には、求まった点列が閉じて積の輪郭点列となったので、処理を終了する。従って、上記ステップ１０９，１１０，１１２〜１１７，１２０，１２１，１２３〜１３０に示す処理を行う上記コンピュータは、積輪郭点列構成点設定手段に相当する。
【００６０】
上記実施例の装置によれば、二つの輪郭点列の何れか一方にあって他方の輪郭点列の内側に位置する点を探してその点を処理の始点とし、何れの輪郭点列にも他方の輪郭点列の内側に位置する点が無かった場合には前記二つの輪郭点列の交点を処理の始点とし、その処理の始点から常に内側に位置する点列部分を次々に探して逐次ベース点列とするとともに、それらのベース点列の一点目の点を、求める積の輪郭点列の点とするので、短時間の演算で、大きなメモリー容量を必要とせずに、しかも自動的に積の輪郭点列を求めることができる。
【００６１】
最後に、図24は、互いに関連する二つの輪郭点列C1, C2の点のうち、上記実施例の差の輪郭点列を求める処理の始点となり得る点で、前回までの輪郭点列を求める処理で求めた差の輪郭点列、例えば点P1を処理の始点SP1 として求めた差の領域D1を示す点列では使用していない点P3, P4がある場合を示しており、このように、二つの輪郭点列の点のうち、上記実施例の和、差もしくは積の輪郭点列を求める処理の始点となり得る点で、前回までの輪郭点列を求める処理で求めた輪郭点列で使用していない点がある場合には、その処理の始点となり得る点、例えば図24に示す点P3を処理の始点SP2 として、前回までの輪郭点列を求める処理と同種の輪郭点列を求める処理を行っても良く、かかる処理を行う上記コンピュータは、複数輪郭点列処理手段に相当する。このようにすれば、図24に示すもう一つの差の領域D2を示す輪郭点列のように、求める輪郭点列が複数存在する場合でも、それらの輪郭点列を全て求めることができる。
【００６２】
以上、図示例に基づき説明したが、この発明は上述の例に限定されるものでなく、例えば最初に輪郭点列を進む方向を統一する際には、右回りに統一することにして、差の輪郭点列を求める処理の場合に引く方の輪郭点列を進む際だけ左回りに進むことにしても良い。
【００６３】
【発明の効果】
かくしてこの発明の処理装置によれば、互いに関連する二つの輪郭点列の和の輪郭点列を求める処理を行う際に、二つの輪郭点列の何れか一方にあって他方の輪郭点列の外側に位置する点を処理の始点とし、その処理の始点から常に外側に位置する点列部分を次々に探して逐次ベース点列とするとともに、それらのベース点列の一点目の点を、求める和の輪郭点列の点とするので、短時間の演算で、大きなメモリー容量を必要とせずに、しかも自動的に和の輪郭点列を求めることができる。
【００６４】
またこの発明の処理装置によれば、互いに関連する二つの輪郭点列の差の輪郭点列を求める処理を行う際に、二つの輪郭点列のうち引かれる方の輪郭点列にあって引く方の輪郭点列の外側に位置する点を探してその点を処理の始点とし、引かれる方の輪郭点列に引く方の輪郭点列の外側に位置する点が無かった場合には引く方の輪郭点列にあって引かれる方の輪郭点列の内側に位置する点を探してその点を処理の始点とし、その処理の始点から引かれる方の輪郭点列の内側へ進む引く方の輪郭点列の点列部分を次々に探して逐次ベース点列とするとともに、それらのベース点列の一点目の点を、求める差の輪郭点列の点とするので、短時間の演算で、大きなメモリー容量を必要とせずに、しかも自動的に差の輪郭点列を求めることができる。
【００６５】
さらにこの発明の処理装置によれば、互いに関連する二つの輪郭点列の積の輪郭点列を求める処理を行う際に、二つの輪郭点列の何れか一方にあって他方の輪郭点列の内側に位置する点を探してその点を処理の始点とし、何れの輪郭点列にも他方の輪郭点列の内側に位置する点が無かった場合には前記二つの輪郭点列の交点を処理の始点とし、その処理の始点から常に内側に位置する点列部分を次々に探して逐次ベース点列とするとともに、それらのベース点列の一点目の点を、求める積の輪郭点列の点とするので、短時間の演算で、大きなメモリー容量を必要とせずに、しかも自動的に積の輪郭点列を求めることができる。
【００６６】
なお、互いに関連する二つの輪郭点列の点のうち、この発明の処理装置での前記和、差もしくは積の輪郭点列を求める処理の始点となり得る点で、前回までの輪郭点列を求める処理で求めた輪郭点列で使用していない点がある場合に、前記処理の始点となり得る点を処理の始点として、前回までの輪郭点列を求める処理と同種の輪郭点列を求める処理を行う複数輪郭点列処理手段を具えることとすれば、求める輪郭点列が複数存在する場合でも、それらの輪郭点列を全て求めることができる。
【図面の簡単な説明】
【図１】  この発明の互いに関連する二つの輪郭点列の処理装置として和、差および積の輪郭点列をそれぞれ求める、ＣＡＭシステムのコンピュータにより構成される後述する各実施例の処理装置に共通する基本的な処理の流れを示す説明図である。
【図２】  複数の輪郭点列を求める場合の、上記各実施例に共通する処理方法を示す説明図である。
【図３】  この発明の互いに関連する二つの輪郭点列の処理装置のうちの和の輪郭点列を求める処理装置の一実施例が行う、処理の始点および求める輪郭点列の始点と最初のベース点列とを求める処理部分を示すフローチャートである。
【図４】  上記和の輪郭点列を求める処理装置の一実施例が行う、現在進む点列がC1の場合の求める輪郭点列の次の点と次のベース点列とを求める処理部分を示すフローチャートである。
【図５】  上記和の輪郭点列を求める処理装置の一実施例が行う、現在進む点列がC2の場合の求める輪郭点列の次の点と次のベース点列とを求める処理部分を示すフローチャートである。
【図６】  上記和の輪郭点列を求める処理装置の一実施例が行う最終処理部分を示すフローチャートである。
【図７】  上記和の輪郭点列を求める処理装置の一実施例が行う、処理の始点および求める輪郭点列の始点を求める方法を示す説明図である。
【図８】  上記和の輪郭点列を求める処理装置の一実施例が行う、最初のベース点列および通常の場合の次のベース点列を求める方法を示す説明図である。
【図９】  上記和の輪郭点列を求める処理装置の一実施例が行う、特殊な場合の次のベース点列を求める方法を示す説明図である。
【図１０】  上記和の輪郭点列を求める処理装置の一実施例が行う、交点が二つ以上あった場合の次のベース点列を求める方法を示す説明図である。
【図１１】  この発明の互いに関連する二つの輪郭点列の処理装置のうちの差の輪郭点列を求める処理装置の一実施例が行う、処理の始点および求める輪郭点列の始点と最初のベース点列とを求める処理部分を示すフローチャートである。
【図１２】  上記差の輪郭点列を求める処理装置の一実施例が行う、現在進む点列がC1の場合の求める輪郭点列の次の点と次のベース点列とを求める処理部分を示すフローチャートである。
【図１３】  上記差の輪郭点列を求める処理装置の一実施例が行う、現在進む点列がC2の場合の求める輪郭点列の次の点と次のベース点列とを求める処理部分を示すフローチャートである。
【図１４】  上記差の輪郭点列を求める処理装置の一実施例が行う最終処理部分を示すフローチャートである。
【図１５】  上記差の輪郭点列を求める処理装置の一実施例が行う、処理の始点および求める輪郭点列の始点を求める方法を示す説明図である。
【図１６】  上記差の輪郭点列を求める処理装置の一実施例が行う、最初のベース点列および通常の場合の次のベース点列を求める方法を示す説明図である。
【図１７】  上記差の輪郭点列を求める処理装置の一実施例が行う、特殊な場合の次のベース点列を求める方法を示す説明図である。
【図１８】  この発明の互いに関連する二つの輪郭点列の処理装置のうちの積の輪郭点列を求める処理装置の一実施例が行う、処理の始点および求める輪郭点列の始点と最初のベース点列とを求める処理部分を示すフローチャートである。
【図１９】  上記積の輪郭点列を求める処理装置の一実施例が行う、現在進む点列がC1の場合の求める輪郭点列の次の点と次のベース点列とを求める処理部分を示すフローチャートである。
【図２０】  上記積の輪郭点列を求める処理装置の一実施例が行う、現在進む点列がC2の場合の求める輪郭点列の次の点と次のベース点列とを求める処理部分を示すフローチャートである。
【図２１】  上記積の輪郭点列を求める処理装置の一実施例が行う最終処理部分を示すフローチャートである。
【図２２】  上記積の輪郭点列を求める処理装置の一実施例が行う、処理の始点および求める輪郭点列の始点を求める方法を示す説明図である。
【図２３】  上記積の輪郭点列を求める処理装置の一実施例が行う、最初のベース点列および通常の場合の次のベース点列を求める方法を示す説明図である。
【図２４】  複数の輪郭点列を求める場合の、上記各実施例に共通する処理方法をより具体的に示す説明図である。
【図２５】  和の輪郭点列を求める場合の一例としての、金型構造のある高さでの断面を取る場合を示す説明図である。
【図２６】  差の輪郭点列を求める場合の一例としての、金型構造の上面から見える領域のみを求める場合を示す説明図である。
【図２７】  積の輪郭点列を求める場合の一例としての、金型構造で二つのソリッドが同一空間を重複して占有してしまう矛盾を発見する場合を示す説明図である。
【図２８】  ３次元ソリッドモデルから求まる点列データの一例を示す説明図である。
【図２９】  互いに関連する二つの輪郭点列およびそれら二つの輪郭点列の和、差、積の輪郭点列の例をそれぞれ示す説明図である。
【図３０】  従来の互いに関連する二つの輪郭点列の処理方法を示す説明図である。
【符号の説明】
Ａ  和の輪郭点列
Ｄ  差の輪郭点列
Ｐ  積の輪郭点列
B1〜B8  ベース点列
C1, C2  輪郭点列
D1, D2  差の領域
M1，M2  ３次元ソリッドモデル
P1, P2  輪郭点列C1の点
Q1, Q2  輪郭点列C2の点
R1, R2  交点
S1, S2  ソリッド
SP, SP1, SP2  処理の始点
【図１】
0003779343.tif 000002
【図２】
0003779343.tif 000003
【図３】
0003779343.tif 000004
【図４】
0003779343.tif 000005
【図５】
0003779343.tif 000006
【図６】
0003779343.tif 000007
【図７】
0003779343.tif 000008
【図８】
0003779343.tif 000009
【図９】
0003779343.tif 000010
【図１０】
0003779343.tif 000011
【図１１】
0003779343.tif 000012
【図１２】
0003779343.tif 000013
【図１３】
0003779343.tif 000014
【図１４】
0003779343.tif 000015
【図１５】
0003779343.tif 000016
【図１６】
0003779343.tif 000017
【図１７】
0003779343.tif 000018
【図１８】
0003779343.tif 000019
【図１９】
0003779343.tif 000020
【図２０】
0003779343.tif 000021
【図２１】
0003779343.tif 000022
【図２２】
0003779343.tif 000023
【図２３】
0003779343.tif 000024
【図２４】
0003779343.tif 000025
【図２５】
0003779343.tif 000026
【図２６】
0003779343.tif 000027
【図２７】
0003779343.tif 000028
【図２８】
0003779343.tif 000029
【図２９】
0003779343.tif 000030
【図３０】
0003779343.tif 000031