(57)【特許請求の範囲】
【請求項１】
図形要素からなる形状を規定するための浮動小数点データを入出力する情報入出力手段と、該情報入出力手段で入力された前記浮動小数点データを蓄積する情報蓄積手段と、該情報蓄積手段に蓄積された前記浮動小数点データを用いて他の形状を規定する浮動小数点データを作成する形状作成・修正処理手段とを有する形状データ処理装置において、
前記情報蓄積手段が蓄積した浮動小数点データに基いて図形要素又は図形要素の集合の原点を取り出す原点抽出部と、
前記原点抽出部によって取り出された図形要素又は図形要素の集合の原点に基いて図形要素又は図形要素の集合の原点を座標系の原点に移動させる原点移動部と、
前記原点移動部によって移動させた図形要素又は図形要素の集合を移動前の位置に戻す原点復帰部と、
を備えていることを特徴とする形状データ処理装置。
【請求項２】
図形要素からなる形状を規定するための浮動小数点データを入出力する情報入出力装置と、該情報入出力装置で入力された前記浮動小数点データを蓄積する情報蓄積装置と、該情報蓄積装置に蓄積された前記浮動小数点データを用いて他の形状を規定する浮動小数点データを作成する形状作成・修正処理手段とを使用し、情報処理装置内で形状表現を行う形状データ処理方法において、
前記浮動小数点データの移動及び／又は復帰指示を行う第１の処理工程と、
前記情報蓄積装置に蓄積された浮動小数点データに基いて図形要素又は図形要素の集合の原点を取り出す第２の処理工程と、
前記第２の処理工程において取り出された図形要素又は図形要素の集合の原点に基いて図形要素又は図形要素の集合の原点を座標系の原点に移動させる移動処理を前記形状作成・修正手段により実行する第３の処理工程と、
前記第３の処理工程で移動させた図形要素又は図形要素の集合の原点を前記形状作成・修正手段により移動前の位置に戻す第４の処理工程と、
を含んでなることを特徴とする形状データ処理方法。
【請求項３】
図形要素からなる形状を規定する浮動小数点データを情報蓄積手段に蓄積する第１の処理手順と、
前記第１の処理手順において前記情報蓄積手段に蓄積された浮動小数点データに基いて図形要素又は図形要素の集合の原点を取り出す第２の処理工程を実行するための第２の処理手順、
前記第２の処理手順において取り出された図形要素又は図形要素の集合の原点に基いて図形要素又は図形要素の集合の原点を形状修正手段により原点に移動させる第３の処理工程を実行するための第３の処理手順、及び、
前記第３の処理手順で移動させた図形要素又は図形要素の集合の原点を前記形状修正手段により移動前の位置に戻す第４の処理工程を実行するための第４の処理手順、
に関するプログラムを少なくとも含み、情報処理装置内の記憶手段にダウンロードされて前記第１ないし第４の処理手順に基いて情報処理装置内で形状表現を行うことが可能な形状データ処理プログラムが格納されていることを特徴とする記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＡＤ／ＣＡＭ／ＣＡＥシステム等の設計支援を行うための装置に係り、特に形状データの数値データ長を変えずに、形状データを高精度に作成する場合に好適な形状データの処理装置及び形状データの処理方法並びに形状処理プログラムが格納された記憶媒体に関する。
【０００２】
【従来の技術】
この種の形状データ処理装置（設計支援装置）として、情報処理装置としての計算機に形状データを入力し、計算機内部に図形形状を生成することは例えば「越智利夫、『図形処理システムＧＩＰＳ−Ｉ』、機械設計、１６巻７号、ｐ２９−３７、１９７２−７」に記載されている。また、これらの内部処理方法として近似計算を用いることは「山口富士夫、『形状処理工学―Ｉ、ＩＩ、ＩＩＩ』、日刊工業新聞社」及び「千代倉弘明、『ソリッドモデリング』、工業調査会」にそれぞれ開示されている。さらに、形状データから微分幾何的特徴、光学的特徴、形状から測定できる地理学的特徴、幾何学的特徴、位相的特徴、幾何学的状態特徴、経験的特徴を抽出して保存し、参照しながら複数用意した図形処理の優先度合いを与えて図形処理を行う方法が、特開平６−６８２０６号公報に「形状処理装置および方法」として開示されている。そのほかに、計算機の数値演算誤差を小さくするために、数値演算を多倍長精度で行うこと、近似計算時の分割数を多くすること、収束計算の繰り返し回数を増加することは公知である。また、形状データの位置を決めるために高さ方向、幅方向、奥行き方向に一定間隔の平面を配置し、この平面を基準として数値を設定することは「坂本  浩、『曲面図学入門』、日刊工業新聞社」に開示されている。
【０００３】
【発明が解決しようとする課題】
ところで、上記従来技術では、計算機による演算装置において原点から遠い点の精度が、原点から近い点より低くなることを考慮していないために精度良い形状データの作成ができなかった。具体的に、原点から遠い点と近い点との精度の問題について説明する。
【０００４】
計算機を用いて形状データ作成を行う場合、そのための処理演算は浮動小数点データを用いて表現する。このとき、原点から遠い形状データは指数部が大きく、原点に近い形状データは指数部が小さいデータになる。計算機による浮動小数点演算では、指数部が大きいデータと指数部が小さいデータを演算したとき指数部の大きいデータの有効桁数より小さいデータは無視されてしまう。例えば、図２で示されるように原点２０１に近い点を点２１０、遠い点を点２２０とし、有効桁数４の計算機を用いるとする。このとき、点２１０は小数点以下２桁の精度で表現されるのに対し、点２２０は小数点以上４桁で表現される。点２２０を点２１０だけ移動して点２３０を作成する場合、計算機では２つの数値を加算する。このとき点２３０は２つの桁数を加算した６桁の桁数が必要になる。しかしながら、有効桁数が４桁しかないことから数値が丸められ、点２２０を移動することができなくなる。
【０００５】
より現実的な計算機としてＩＥＥＥ準拠の倍精度実数型が扱える計算機を用いた場合について説明する。ＩＥＥＥ準拠の倍精度実数型では、仮数部５２ビット即ち１０進数で１６桁までしか表せない。このことから桁数が１６を超えると値は丸められてしまう。図２の例で言えば点２１０は１／１００００００００００００００００００迄小さい距離を移動できるが、点２２０は１／１０００００００００００００迄の距離しか移動できない。即ち、原点に近い場合はより小さな距離だけ移動できるということが言える。このように現状の形状データ作成においては、上記のように原点との距離の大小が形状データの精度に影響することになる。したがって、上記原点位置を考慮しないと様々な問題が生じる。
【０００６】
例えば、２直線ＡとＢの交点を計算する問題で、一致とみなす球の半径を１／１００００００００００００とした場合では、交点が原点に近い場合には求まるが、原点から１００００の距離だけ離れたときには数値が丸められてしまい、求まらなくなってしまう。交点の計算処理は形状データ作成における基本処理であるため、関連する形状データ作成処理、例えば曲線のトリミングや曲面同士の相貫線といった図形データ作成処理が正常に動作しなくなる。また、図形間の連結関係を定めるといった位相記述を行う際にも点の一致関係を検査するため正常に動作しなくなってしまう。そのため高精度な形状修正操作が行えず、利用者が想定した形状が作成できないという問題がある。
【０００７】
この問題の一部を回避するために前述の従来技術における坂本  浩著の「曲面図学入門」には、形状データを分割し局所的な座標値で管理する方法が開示されている。
【０００８】
しかしながら、局所的な座標値で管理する方法は原点から一番遠い距離を限定するだけであり、一致とみなす精度を更に小さくした場合に前述の問題が生じることに変わりはない。また、形状データを分割して局所的な座標値に変換して管理するためデータ量が増大するという問題がある。
【０００９】
以上のように、従来技術では原点を考慮した形状データ作成処理ができないために、利用者が想定した形状が作成できなかったり、形状データ量が増大するといった問題が生じる。
【００１０】
本発明はこのような従来技術の実情に鑑みてなされたもので、その第１の目的は、原点を考慮した形状データ生成処理を行うことによって形状の作成や修正を高精度に行うことができる形状データ生成処理装置を提供することにある。
【００１１】
また、第２の目的は、同様に形状の作成や修正を高精度に行うことができる形状データ生成処理方法を提供することにある。
【００１２】
さらに、第３の目的は、このような形状データ生成処理方法を実行するためのプログラムが格納された記憶媒体を提供することにある。
【００１３】
【課題を解決するための手段】
上記第１の目的を達成するため、第１の手段は、図形要素からなる形状を規定するための浮動小数点データを入出力する情報入出力手段と、該情報入出力手段で入力された前記浮動小数点データを蓄積する情報蓄積手段と、該情報蓄積手段に蓄積された前記浮動小数点データを用いて他の形状を規定する浮動小数点データを作成する形状作成・修正処理手段とを有する形状データ処理装置において、前記情報蓄積手段が蓄積した浮動小数点データに基いて図形要素又は図形要素の集合の原点を取り出す原点抽出部と、前記原点抽出部によって取り出された図形要素又は図形要素の集合の原点に基いて図形要素又は図形要素の集合の原点を座標系の原点に移動させる原点移動部と、前記原点移動部によって移動させた図形要素又は図形要素の集合を移動前の位置に戻す原点復帰部とを備えていることを特徴とする。
【００１４】
この場合、前記情報蓄積手段には移動・復帰イベントデータを記憶するイベント管理領域と原点データを記憶する原点領域とを設定するとよい。
【００１５】
また、前記移動・復帰イベントデータとしては、少なくとも原点移動・復帰データの数、原点移動と原点復帰を識別する識別子、形状データが一致する範囲を示すしきい値、形状データを構成する図形要素又は図形要素データ、あるいは情報蓄積装置に蓄積された図形要素又は図形要素データへのポインタで構成するようにするとよい。
【００１６】
また、前記移動・復帰イベント発行部は、形状作成・修正処理を実行する手続きを細分化し、細分化した手続きの途中に挿入されるように構成するとよい。
【００１７】
また、前記移動・復帰イベント発行部は、前記細分化した手続きが同一の細分化した手続きを繰り返すとき、当該同一の細分化した手続きの前後に挿入されるように構成するとよい。
【００１８】
また、前記原点抽出部は、図形要素または図形要素の集合から図形要素を取り出して原点にしたり、同一の細分化した手続きで作成した図形要素または図形要素の集合を原点にする。
【００１９】
さらに、前記誤差検出部は、原点移動の効果がない図形要素又は図形要素の集合を判別し利用者に提示するが、その際、前記原点移動の効果がない図形要素又は図形要素の集合の判別は、しきい値との桁数比較に基づいて行われる。
【００２０】
上記第２の目的を達成するため、第２の手段は、図形要素からなる形状を規定するための浮動小数点データを入出力する情報入出力装置と、該情報入出力装置で入力された前記浮動小数点データを蓄積する情報蓄積装置と、該情報蓄積装置に蓄積された前記浮動小数点データを用いて他の形状を規定する浮動小数点データを作成する形状作成・修正処理手段とを使用し、情報処理装置内で形状表現を行う形状データ処理方法において、前記浮動小数点データの移動及び／又は復帰指示を行う第１の処理工程と、前記情報蓄積装置に蓄積された浮動小数点データに基いて図形要素又は図形要素の集合の原点を取り出す第２の処理工程と、前記第２の処理工程において取り出された図形要素又は図形要素の集合の原点に基いて図形要素又は図形要素の集合の原点を座標系の原点に移動させる移動処理を前記形状作成・修正手段により実行する第３の処理工程と、前記第３の処理工程で移動させた図形要素又は図形要素の集合の原点を前記形状作成・修正手段により移動前の位置に戻す第４の処理工程とを含んでなることを特徴とする。
【００２１】
上記第３の目的を達成するため、第３の手段は、図形要素からなる形状を規定する浮動小数点データを情報蓄積手段に蓄積する第１の処理手順と、前記第１の処理手順において前記情報蓄積手段に蓄積された浮動小数点データに基いて図形要素又は図形要素の集合の原点を取り出す第２の処理工程を実行するための第２の処理手順、前記第２の処理手順において取り出された図形要素又は図形要素の集合の原点に基いて図形要素又は図形要素の集合の原点を形状修正手段により原点に移動させる第３の処理工程を実行するための第３の処理手順、及び、前記第３の処理手順で移動させた図形要素又は図形要素の集合の原点を前記形状修正手段により移動前の位置に戻す第４の処理工程を実行するための第４の処理手順に関するプログラムを少なくとも含み、情報処理装置内の記憶手段にダウンロードされて前記第１ないし第４の処理手順に基いて情報処理装置内で形状表現を行うことが可能な形状データ処理プログラムが記憶媒体に格納されていることを特徴とする。
【００２２】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して説明する。
【００２３】
１．第１の実施形態
１．１  構成
図１は、本実施形態に係る形状データ処理装置の概略構成を示すブロック図である。装置自体はパーソナルコンピュータなどの情報処理装置から構成され、情報処理装置内のハードおよびインストールされたプログラムによって本実施形態の形状データ処理装置が構成されている。
【００２４】
具体的には、情報処理装置１００は、情報入出力装置１と処理装置本体２とから構成され、処理装置本体２は、形状作成・修正処理部３、情報蓄積部４、移動・復帰イベント発行部５、移動・復帰イベント抽出部７、原点抽出部８、誤差検出部９、原点移動部１０、及び原点復帰部１１を備えている。情報蓄積部４には、図形要素または図形要素の集合４１を格納する領域と、イベント管理領域６と、原点領域１２とが設定され、イベント管理領域６には、原点移動・復帰データ数６１、原点移動・復帰識別子６２、しきい値６３、及び図形要素及び図形要素の集合６４が格納される。
【００２５】
移動・復帰イベント発行部５は、形状作成・修正処理部３の処理過程において、原点移動・復帰データを情報蓄積部４に格納し、また、原点移動・復帰データの個数を情報蓄積部４に格納する機能を有する。原点移動・復帰データは、形状作成・修正処理の種別と原点を移動するか復帰するかを表す識別子、形状作成・修正処理を行う場合に一致する図形を判別するためのしきい値、形状作成・修正処理の対象とする図形要素及び図形要素の集合からなる。また、原点移動または原点復帰が終了するまで形状作成・修正処理の手続きを停止する機能を有する。
【００２６】
移動・復帰イベント抽出部７は、情報蓄積部４から原点移動・復帰データの個数の取り出し、原点抽出部８、誤差検出部９、原点移動部１０、原点復帰部１１の起動、及び原点移動または原点復帰を終了する機能を有する。
【００２７】
原点抽出部８は、移動・復帰イベント抽出部７を介して情報蓄積部４に格納されている移動・復帰する図形要素及び図形要素の集合から原点を取り出したり作成する機能、及び当該原点（に関するデータ）を情報蓄積部４に格納する機能を有する。
【００２８】
誤差検出部９は、図形要素及び図形要素の集合からデータの有効桁数を算出し、原点移動・復帰データ中のしきい値と比較して数値の丸めが有効か判別する機能を有する。
【００２９】
原点移動部１０は、図形要素及び図形要素の集合を原点に移動する機能、移動後の図形要素及び図形要素の集合を情報蓄積部４に格納する機能、原点移動・復帰データ中の図形要素及び図形要素の集合を移動後の図形要素及び図形要素の集合に書き換える機能を有する。
【００３０】
原点復帰部１１は、原点を移動した図形要素及び図形要素の集合を元に戻す機能、元に戻した移動後の図形要素及び図形要素の集合を情報蓄積部４に格納する機能、原点移動・復帰データ中の移動後の図形要素及び図形要素の集合を、元に戻した移動後の図形要素及び図形要素の集合に書き換える機能を有する。
【００３１】
なお、移動・復帰イベント発行部５、原点移動部１０、及び原点復帰部１１における処理で用いる原点移動・復帰データ中の図形要素及び図形要素の集合、移動後の図形要素及び図形要素の集合、元に戻した移動後の図形要素及び図形要素の集合は、記憶されている情報蓄積部４の図形領域の先頭をあらわすポインタまたは当該図形領域をあらわすファイル名でもよい。
【００３２】
１．２  概略の動作
形状作成・修正処理部３は、形状作成・修正処理に移動・復帰イベント発行手段５を組み込んで利用する。この形状作成・修正処理に移動・復帰イベント発行部５を組み込む位置は、形状作成・修正処理の中の図形要素及び図形要素の集合を編集する前後とする。移動イベント発行部５を組み込む時に、形状作成・修正処理で原点移動・復帰データを設定する。原点移動時に設定する原点移動・復帰データは、形状作成・修正処理の種別と原点移動を表す識別子、形状作成・修正処理を行う場合に一致する図形を判別するためのしきい値、形状作成・修正処理の対象とする図形要素及び図形要素の集合とする。また、原点復帰時に設定する原点移動・復帰データは、形状作成・修正処理の種別と原点復帰を表す識別子、形状作成・修正処理を行う場合に一致する図形を判別するためのしきい値、形状作成・修正処理の結果作成した図形要素及び図形要素の集合とする。なお、これらの原点移動・復帰識別子、しきい値、および図形要素及び図形要素の集合は情報蓄積部４のイベント管理領域６に設定されたメモリ領域にそれぞれ格納されている。
【００３３】
移動・復帰イベント発行部５は、原点移動・復帰データ、原点移動・復帰データの個数を情報蓄積部４に設定し、原点移動または原点復帰が終了するまで形状作成・修正処理の手続きを停止する。
【００３４】
移動・復帰イベント抽出部７は、情報蓄積部４のイベント管理領域６を参照し、原点移動・復帰データが記憶されているかどうかを検出する。原点移動・復帰データが記憶されていない場合は、情報蓄積部４のイベント管理領域６の参照から繰り返す。原点移動・復帰データが記憶されている場合は、原点移動・復帰データを情報蓄積部４のイベント管理領域６から取り出す。次に、移動・復帰イベント抽出部７は原点抽出部８を起動する。
【００３５】
原点抽出部８は、原点移動・復帰データ中の図形要素及び図形要素の集合と形状作成・修正処理の種別を取り出す。次に、形状作成・修正処理の種別に対応して、複数用意した原点抽出処理の中から少なくとも１つを選択し、実行した後、移動・復帰イベント抽出部７に戻る。実行の結果作成された原点は情報蓄積部４に保管しておく。
【００３６】
次に、移動・復帰イベント抽出部７は誤差検出部９を起動する。誤差検出部９は、原点移動・復帰データ中の図形要素及び図形要素の集合から数値データ、しきい値を取り出して有効桁数を算出する。有効桁数としきい値を比較して数値の丸めが有効な場合は、移動・復帰イベント抽出部７に戻る。数値の丸めが無効な場合は、メッセージを出力して利用者に注意を促し、移動・復帰イベント抽出部７に戻る。次に、移動・復帰イベント抽出部７が原点移動・復帰データ中の原点移動・復帰識別子を取り出し、原点移動か原点復帰かを判定する。判定の結果が原点移動の場合、原点移動部１０を起動する。判定の結果が原点復帰の場合、原点復帰部１１を起動する。
【００３７】
原点移動部１０は、情報蓄積部４から原点を取り出し、原点移動・復帰データ中の図形要素及び図形要素の集合を原点に移動する。次に、移動後の図形要素及び図形要素の集合を情報蓄積部４に格納し、原点移動・復帰データ中の図形要素又は図形要素の集合を、移動後の図形要素及び図形要素の集合に書き換えて、移動・復帰イベント抽出部７に戻る。
【００３８】
原点復帰部１１は、情報蓄積部４から原点を取り出し、原点移動・復帰データ中の形状作成・修正処理で作成した図形要素及び図形要素の集合を元の位置に復帰させる。次に復帰後の図形要素又は図形要素の集合を情報蓄積部４に格納し、原点移動・復帰データ中の形状作成・修正処理で作成した図形要素及び図形要素の集合を、復帰後の図形要素及び図形要素の集合に書き換えて、移動・復帰イベント抽出手段に戻る。次に、移動・復帰イベント抽出部７は、原点移動・復帰データ数を０にして終了する。
【００３９】
最後に、移動・復帰イベント発行部５は原点移動・復帰データ数が０になったことを確認し、形状作成・修正処理で設定した原点移動・復帰データを原点移動部１０または原点復帰部１１で書き換えた原点移動・復帰データに書き換えて終了する。形状作成・修正処理部３は、原点移動部１０または原点復帰部１１で書き換えた原点移動・復帰データで処理を続ける。
【００４０】
以上のようにして、原点から遠い位置に作成した図形要素及び図形要素の集合を原点に近い位置に修正し、形状作成・修正処理を実行する。これにより、形状の作成や修正を高精度に行うことができる。
【００４１】
１．３  交点の計算
上記のような動作を直線と直線の交点を計算する例を用いて説明する。直線と直線の交点を計算する例の説明を容易にするために、直線の図形要素が形状データ処理装置を用いて作成済みで、情報蓄積部４中の図形要素又は図形要素の集合４１として記憶されているものとする。また、直線と直線の交点を作成した結果も情報蓄積部４中の図形要素又は図形要素の集合４１として記憶するものとする。
【００４２】
ここで、情報蓄積部４中の図形要素又は図形要素の集合４１を記憶するためのデータ形式の一例を図１０を用いて説明する。同図において、図形要素又は図形要素の集合データ１０００は、形状データ処理装置が図形を識別するための図形番号１００１、直線や交点などの図形の種類を識別するための図形種１００２、図形要素又は図形要素の集合データの数を示すデータ数１００３、倍精度実数や整数などのデータの種類を示すデータ種１００４、及び図形要素データを示すデータ１００５で構成するものとする。直線１データ１０１０及び直線２データ１０２０は、図形番号１００１として「１」及び「２」、図形種１００２に「直線」、データ数１００３に「６」、データ種１００４に「倍精度実数」を設定し、データ１００５に始点を表す座標値（１．０，１．０，１．０）及び（１００．０，１００．０，１００．０）、終点を表す座標値（１００．０，１００．０，１００．０）及び（０．０，０．０，０．０）を設定する。直線１データ１０１０により、始点座標値が（１．０，１．０，１．０）、終点座標値が（１００．０，１００．０，１００．０）の直線を記憶する。また、直線２データ１０２０により、始点座標値が（１００．０，１００．０，１００．０）、終点座標値が（０．０，０．０，０．０）の直線を記憶する。
【００４３】
図形要素又は図形要素の集合データ１０００を用いて記憶された交点のデータ（交点データ）１０３０として、図形番号１００１に「３」、図形種１００２に「交点」、データ数１００３に「３」、データ種１００４に「倍精度実数」、データ１００５に座標値（５０．０，５０．０，５０．０）を設定し、交点データ１０３０により点座標値が（５０．０，５０．０，５０．０）の交点が記憶される。
【００４４】
一方、直線の原点移動・復帰処理で利用するデータは、情報蓄積部４中のイベント管理領域６に図１に示すようにして記憶される。イベント管理領域６に記憶するデータは、原点移動・復帰データの数を示す原点移動・復帰データ数６１、原点移動か原点復帰かを識別する原点移動・復帰識別子６２、図形要素又は図形要素の集合４１が同一になることを判定するためのしきい値６３、図形要素又は図形要素の集合６４で記述する。図１１は、イベント管理領域６に記憶する原点移動・復帰データ１１００を表す一例である。
【００４５】
原点移動・復帰データ１１００は、原点移動・復帰データ数６１を設定するデータ数１１０１、原点移動・復帰識別子６２を設定する識別子１１０２、しきい値６３を設定するしきい値データ１１０３、図形要素又は図形要素の数を表す図形数１１０４、及び図形要素又は図形要素の集合４１を表す図形番号１１０５を記憶する。例えば、直線と直線の原点移動データ１１１０は、図１１に示すようにデータ数１１０１に原点移動データ１１１０が１個であることを示す「１」を設定し、識別子１１０２に原点移動、しきい値１１０３に同一とみなす値である「０．０１」を設定し、直線データが２個あることから図形数１１０４に「２」、図形番号１１０５に直線１データ１０１０の図形番号１１０１である「１」、直線２データ１０２０の図形番号１１０１である「２」を設定する。このような原点移動データ１１１０により、直線１データ１０１０及び直線２データ１０２０の原点を移動することが移動・復帰イベント抽出部７に伝えられる。
【００４６】
交点の原点復帰データ１１２０は、データ数１１０１に原点復帰データ１１２０が１個であることを示す「１」を設定し、識別子１１０２に「原点復帰」、しきい値１１０３に同一とみなす値である「０．０１」を設定し、交点データが１個であることから図形数１１０４に「１」、図形番号１１０５に交点データ１０３０の図形番号である「３」を設定する。この原点復帰データ１１２０により、交点データ１０３０の原点を移動することが移動・復帰イベント抽出部７に伝えられる。
【００４７】
１．３．１  直線と直線の交点の作成
このようにして情報蓄積部４に蓄積されたデータを使用して直線と直線の交点を作成する処理手順を図８のフローチャートを用いて説明する。図８は図１の形状作成・修正処理部３における細分化した形状作成・修正処理３１、移動・復帰イベント発行部５の処理の流れの一例として、直線と直線の交点作成処理の流れを示している。以下、直線と直線の交点を作成する処理について説明する。なお、説明を分かりやすくするために、対応する個所には後述の図３における参照符号を（    ）を付けて示す。詳しくは後述の１．４で述べる。
【００４８】
この処理では、最初に、ステップ８０１で図形番号１００１に一致する直線１を取り出し、次いで、ステップ８０２で図形番号１００１に一致する直線２を取り出す。これにより交点（３０５）を作成するための直線１（直線３０３）データ１０１０と直線２（直線３０４）データ１０２０が情報蓄積部４から取り出される。ステップ８０２で直線２のデータの取り出しが完了すると、ステップ８０３で原点移動イベント発行処理を実行し、直線１データ１０１０、直線２データ１０２０の原点を移動し（３００→３００’→３００”）、移動した原点（３００”）に関する直線１と直線２のデータを直線１データ１０１０、直線２データ１０２０に格納する。そして、交点作成を実行する（ステップ８０４）。このステップ８０４における交点作成処理では、直線１データ１０１０、直線２データ１０２０に対して直線同士の交点（３１５）を作成する。この交点作成処理は原点移動後の直線１データ１０１０、直線２データ１０２０に対して実行され、原点移動後の交点データ１０３０を情報蓄積部４中の図形要素又は図形要素の集合４１として記憶する。
【００４９】
ステップ８０４の処理が終了すると、原点復帰イベント発行処理を実行し（ステップ８０５）、原点移動後の交点データ１０３０の原点を復帰させ（３００”→３００’→３００）、復帰後の交点（３０５）を交点データ１０３０に格納する。このステップ８０５の処理が終了すると、図形番号を更新し（ステップ８０６）交点の図形番号１００１を設定した後、情報蓄積部４に交点データ１０３０を格納して（ステップ８０７）この処理を終了する。
【００５０】
１．３．２  移動・復帰イベント発行部の処理
図８のステップ８０３、８０５における原点移動・復帰イベント発行処理は移動・復帰イベント発行部５によって図１３（ａ），（ｂ）に示すような手順で実行される。すなわち、ステップ８０３で原点移動イベント発行処理を実行したとき、最初に原点移動データの設定が行われる（ステップ１３０１）。原点移動データの設定（ステップ１３０１）は、次のようにして行われる。すなわち、図１１に示す原点移動・復帰データ１１００のデータ数１１０１に「１」を設定し、識別子１１０２に「原点移動」を設定後、図形要素又は形要素の集合４１が一致するとみなすしきい値を取り出し、しきい値データ１１０３に「０．０１」を設定する。次に、原点移動する図形の個数を図形数１１０４に設定する。本実施形態では、直線１データ１０１０と直線２データ１０２０を原点移動する図形としていることから図形数１１０４には「２」を設定する。この設定が終了すると、直線１データ１０１０の図形番号１００１である「１」と、直線２データ１０２０の図形番号である「２」を図形番号１１０５に設定する。以上で、原点移動データ１１１０が作成できる。最後に原点移動データ１１１０を情報蓄積部４のイベント管理領域６に格納して終了する。
【００５１】
次いで移動・復帰イベント抽出部の起動処理を実行して（ステップ１３０２）、移動・復帰イベント抽出部７を起動する。移動・復帰イベント抽出部７の起動とは、図９に示す移動・復帰イベント抽出処理を実行することである。これでステップ８０３の原点移動イベント発行処理が終了する。
【００５２】
一方、ステップ８０５で原点復帰イベント発行処理を実行した場合には、最初に原点復帰データを設定する（ステップ１３０３）。原点復帰データの設定は、次のようにして行われる。すなわち、図１１に示す原点移動・復帰データ１１００のデータ数１１０１に「１」を設定し、識別子１１０２に「原点復帰」を設定後、図形要素又は図形要素の集合４１が一致するとみなすしきい値「０．０１」を取り出してしきい値データ１１０３に設定する。本実施形態では、交点データ１０３０を原点復帰する図形としていることから図形数１１０４には「１」を設定する。次に交点データ１０３０の図形番号である「３」を図形番号１１０５に設定する。以上で原点復帰データ１１２０が作成できる。最後に原点復帰データ１１２０を情報蓄積部４のイベント管理領域６に格納して終了する。
【００５３】
次いで、ステップ１３０４の移動・復帰イベント抽出部の起動処理で、移動・復帰イベント抽出部７を起動する。このステップ１３０４の移動・復帰イベント抽出部７の起動とは、図９に示す移動・復帰イベント抽出処理を実行することであり、この図９の一連の処理を終了することによってステップ８０５の原点復帰イベント発行処理が終了する。
【００５４】
図９の移動・復帰イベント抽出処理は以下のようにして実行される。
【００５５】
すなわち、ステップ８０３の原点移動イベント発行処理又はステップ８０５の原点復帰イベント発行処理を実行し、前述のステップ１３０２またはステップ１３０４の起動処理が行われると、図９に示す移動・復帰イベント抽出処理が実行される。
【００５６】
この移動・復帰イベント抽出処理では、まず最初に、ステップ９０１で原点移動・復帰データ取り出し処理を実行する。このステップ９０１の原点移動・復帰データ取り出し処理は、ステップ８０３の原点移動イベント発行処理又はステップ８０５の原点復帰イベント発行処理を実行したときに作成した原点移動・復帰データ１１００を情報蓄積部４のイベント管理領域６から取り出す処理である。このステップ９０１の処理を終えると、ステップ９０２で識別子を取り出し処理を実行し、「原点移動」または「原点復帰」を表す識別子１１０２を取り出した後、ステップ９０３で識別子判別を行い、取り出された識別子によって取り出された原点移動・復帰データ１１００が原点移動データ１１１０であるか原点復帰データ１１２０であるかどうかを判別する。
【００５７】
この判別で、原点移動・復帰データ１１００が原点移動データ１１１０であれば、識別子１１０２は「原点移動」となっているのでステップ９１１で原点抽出処理を実行する。
【００５８】
原点抽出処理は、原点移動データ１１１０から図形数１１０４において「２」を取り出し、２個の図形番号１１０５である「１」と「２」を取り出し、さらに、「１」と「２」に一致する直線１データ１０１０と直線２データ１０２０を情報蓄積部４から取り出し、さらに直線１データ１０１０からデータ１００５を取り出すことで、直線１の始点座標値（１．０，１．０，１．０）、直線１の終点座標値（１００．０，１００．０，１００．０）、直線２の始点座標値（１００．０，１００．０，１００．０）、直線２の終点座標値（０．０，０．０，０．０）を取り出すことにより行われる。原点抽出処理は、直線１と直線２の始点座標値、終点座標値を用いて、例えば、以下の３処理の内、１つを実行する。
【００５９】
▲１▼  原点抽出処理１
原点移動する前の直線１と直線２で交点を算出し、原点とする処理。
▲２▼  原点抽出処理２
直線１の始点座標値を原点とする処理。
▲３▼  原点抽出処理３
直線２の始点座標値を原点とする処理。
【００６０】
本実施形態は、直線と直線の交点を求める例なので（原点抽出処理１）が最も良好な原点となるが、交点を計算する処理が必要になるため処理速度が遅くなってしまう。そのため、（原点抽出処理２）を用いている。他の原点抽出処理として、直線１又は直線２の終点座標値を原点とする方法、直線１と直線２の始点座標値及び終点座標値の平均を用いる方法が考えられる。原点抽出処理で求めた原点は、情報蓄積部４の原点領域１２に図１２に示す原点データ１２００中に原点のＸ座標値１２０１、原点のＹ座標値１２０２、原点のＺ座標値１２０３の形式で格納する。
【００６１】
ステップ９１１で上記の原点抽出処理を実行した後、ステップ９１２で誤差検出処理を実行する。誤差検出処理は、原点移動データ１１１０から図形数１１０４である「２」を取り出し、２個の図形番号１１０５である「１」と「２」を取り出し、さらに「１」と「２」に一致する直線１データ１０１０と直線２データ１０２０を情報蓄積部４から取り出す。次に、直線１データ１０１０からデータ１００５を取り出すことで、直線１の始点座標値（１．０，１．０，１．０）、直線１の終点座標値（１００．０，１００．０，１００．０）、直線２の始点座標値（１００．０，１００．０，１００．０）、直線２の終点座標値（０．０，０．０，０．０）を取り出すとともに、しきい値データ１１０３である「０．０１」も取り出して、誤差検出処理を実行する。
【００６２】
誤差検出処理は、直線１と直線２の始点座標値、終点座標値、しきい値を用いて数値の丸めが有効か無効かを判別する。数値の丸めが有効か無効かを判別する処理は例えば、次のように行う。今、直線１及び直線２の始点座標値、終点座標値がＩＥＥＥの倍精度実数データに準拠していると仮定すると、仮数部の有効桁数は１６桁になる。次に直線１及び直線２の始点座標値、終点座標値の数値を取り出して最大値を求め、小数点以上の桁数を求める。次に、仮数部の有効桁数１６桁と小数点以上の桁数の差をとることで小数点以下の桁数の最小値を得、小数点以下の桁数の最小値に相当する値を限界の数値とする。例えば、最大値が１００．０１とすると小数点以上の桁数は３桁であるから、仮数部の有功桁数１６桁から小数点以上の桁数３桁を引いた桁数である１３桁まで表現できる。１３桁の最小値を数値で言うと１／１０００００００００００００であることから、最大値が１００．０１の数値では１／１０００００００００００００まで表現できることになる。当該限界の数値としきい値データ１１０３を比較して、しきい値データ１１０３が小さいときは、本形状データ処理装置による高精度化が望めないため、高精度化が望めない旨のメッセージを例えば情報入出力装置１の表示装置に出力して利用者に注意を促す。次に、しきい値データ１１０３と当該限界の数値の内、大きい方の数値を、情報蓄積部４の原点領域１２に図１２に示す原点データ１２００中の誤差１２０４の形式で格納する。図１２の原点データ例１２１０は、直線１データ１０１０、直線２データ１０２０を図形要素とする原点移動データ１１１０に対して、ステップ９１１で原点抽出処理とステップ９１２で誤差検出処理を行った後の原点データの例である。
【００６３】
ステップ９１２で誤差検出処理が終了すると、ステップ９１３で原点移動処理を行う。原点移動処理は、直線１データ１０１０、直線２データ１０２０からデータ１００５を取り出して始点座標値及び終点座標値を取り出した後、当該始点座標値及び終点座標値から原点Ｘ１２０１、原点Ｙ１２０２、原点Ｚ１２０３の値を引いた値を、直線１データ１０１０及び直線２データ１０２０のデータ１００５として設定するものである。ステップ９１３で原点移動処理が終了すると、ステップ９１４で原点データ格納処理を実行する。原点データ格納処理は、原点データ１２１０を情報蓄積部４の原点領域１２に格納する処理である。ステップ９１４で原点データ格納処理を終えると、最後に、ステップ９１５で原点移動・復帰データ数を「０」に設定する。このステップ９１５における設定処理は、情報蓄積部４のイベント管理領域６中に蓄積している原点移動データ１１１０を削除する処理である。このような各ステップを経て原点移動処理を終了する。
【００６４】
一方、ステップ９０３における識別子判別処理で原点復帰データ１１２０であると判別された場合、原点復帰処理が実行される。すなわち、原点復帰処理は、原点移動・復帰データ１１００が原点復帰データ１１２０のとき、識別子１１０２が「原点復帰」なのでステップ９２１に進んで、原点データを取り出す。ステップ９２１における原点データ取り出し処理は、情報蓄積部４の原点領域１２から原点データ１２１０を取り出す処理で、この処理を終えると、ステップ９２２で原点取り出し処理を実行し、原点データ１２１０から原点Ｘ１２０１、原点Ｙ１２０２、原点Ｚ１２０３を取り出す。次に、ステップ９２３で誤差取り出し処理を行い、原点データ１２１０から誤差１２０４を取り出し、次いで、ステップ９２４で原点復帰処理を実行する。
【００６５】
このステップ９２４における原点復帰処理では、最初に情報蓄積部４のイベント管理領域６から原点復帰データ１１２０を取り出す。次に、原点復帰データ１１２０から図形数１１０４を取り出して１個の図形番号１１０５である「３」を取り出し、「３」に一致する交点データ１０３０を情報蓄積部４から取り出し、さらに、交点データ１０３０からデータ１００５を取り出すことで、交点の座標値（５０．０，５０．０，５０．０）を取り出すことにより原点復帰処理が実行される。原点復帰処理は、交点の座標値に原点Ｘ１２０１、原点Ｙ１２０２、原点Ｚ１２０３の値を足した値を交点データ１０３０のデータ１００５として設定する処理である。そして、最後にステップ９１５で前述と同様に原点移動・復帰データ数を「０」に設定する。このステップ９１５における原点移動・復帰データ数を０に設定する処理では、情報蓄積部４のイベント管理領域６中に蓄積している原点復帰データ１１２０を削除し、原点移動処理を終了する。
【００６６】
１．４  原点移動
図３は直線１データ１０１０と直線２データ１０２０の原点移動９１３を行った例を２次元で示したイメージ図である。ステップ９１３における原点移動処理を実行する前の直線１データ１０１０と直線２データ１０２０を、直線１データ表示例３０３、直線２データ表示例３０４とする。ここで、座標系の原点を３００、Ｘ軸を軸Ｘ３０１、座標系のＹ軸を軸Ｙ３０２とする。原点データ１１１０は軸Ｘ３０１及び軸Ｙ３０２の原点３００から直線１データ表示例３０３の始点座標（３００’）値までのベクトル３０６である。直線１データ表示例３０３と直線２データ表示例３０４の交点を点３０５とする。始点３００’を原点座標３００”（実質的には原点３００に同じ）まで移動させる原点移動を行った後、直線１データ表示例３０３、直線２データ表示例３０４は、直線１データ表示例３１３、直線２データ表示例３１４に示すように点３００”を原点する座標に移動する。ここで、原点移動後の座標系のＸ軸を軸３１１、座標系のＹ軸を軸３１２とする。直線１データ表示例３１３と直線２データ表示例３１４の交点を点３１５とすると、点３１５は点３０５より原点３００に近いことからより高精度な値を表現できる。このようにして図形要素又は図形要素の集合を原点移動して交点計算を行うことにより高精度な交点を作成することができる。
【００６７】
２．第２の実施形態
本発明の第２の実施の形態として、曲線同士の交点を計算する例を用いてその形状処理方法と結果について示す。
【００６８】
本実施の形態の処理の流れを図１、図４を参照して以下に説明する。一般に形状データ処理装置では、曲線同士の交点を求めるためのコマンドは、高次方程式を解くものや収束演算により求めるもの、更に収束演算により求めるものの中にも数値解法の違いを持つものなど幾つか用意されているが、ここではその内の一例について述べる。
【００６９】
曲線同士の交点を計算する例の説明を容易にするために、ここでは曲線の形状データが図１に示す情報処理装置本体２を用いて作成され、情報蓄積部４に図形要素又は図形要素の集合４１として記憶されているものとする。また、曲線と曲線の交点を作成した結果も情報蓄積部４中の図形要素又は図形要素の集合４１として記憶するものとする。
【００７０】
次に曲線同士の交点を作成する処理の流れを図４を用いて説明する。
【００７１】
図４は図１の形状作成修正処理部３における細分化した形状作成・修正処理３１、復帰・移動イベント発行部５の処理の流れの一例として、曲線同士の交点作成処理の流れを示している。以下、曲線同士の交点を作成する処理について説明する。
【００７２】
最初に、ステップ４００で図形要素又は図形要素の集合を取り出し、交点を作成するための曲線データを情報蓄積部４から取り出す。次に、ステップ４０１で初期解の設定処理を行い交点の初期値を設定する。交点の初期値決定方法としては、以下の２種の方法が代表的なものである。
【００７３】
▲１▼  折れ線化
曲線上の点を多数作成して折れ線を作成し、折れ線同士の交点を用いる方法。
▲２▼  制御点矩形化
曲線をベジエ曲線などの制御点で記述し、制御点で囲む多角形同士の交差位置を用いる方法。
【００７４】
折れ線化は、交点計算が簡単であるが交差個所が見つからないことが多いため、一般的には制御点矩形化が良く利用されている。
【００７５】
ステップ４０１における初期解の設定処理が終了すると、ステップ４０２で初期解の位置へ原点を移動させる。この初期解の位置への原点移動処理は、原点を初期解の位置として、ステップ４００で取り出した図形要素の原点を移動させるものである。このステップ４０２の初期解の位置への原点移動処理が終了すると、ステップ４０３で次の解作成処理を実行し、原点が移動した図形要素に対して交点の計算を行う。次に、ステップ４０４で収束判別処理を行い、交点が収束したかどうかを判別する。この収束とは交点の計算が終了したということと等価であって、収束しない場合、すなわち、交点の計算が終了していない場合には、ステップ４０５で初期解を次の解に置き換えて、ステップ４０２に戻り、以降の処理を繰り返す。
【００７６】
収束した場合はステップ４１０で原点復帰処理を実行して、交点を元の図形位置に戻した後、ステップ４１１の交点データ格納処理を実行して情報蓄積部４中の図形要素又は図形要素の集合４１として記憶する。
【００７７】
上述のように、初期解または次の解を原点とすると、収束計算が実行されるたびに原点が移動し、交点計算精度が良くなる。
【００７８】
具体的な装置としては、第１の実施形態においても、第２の実施形態においても、専用の装置として構成することも可能であるが、図５に示すように、キーボード５０１と、前述したようなデータや処理プログラムを入力する入力部、入力されたデータやプログラムを蓄積する記憶部、及び演算部などを備えたコンピュータ本体５０２と、ディスプレイ５０３で構成される汎用のコンピュータシステムとその上で稼働する処理プログラムによって実現することが可能である。
【００７９】
このような汎用のコンピユータシステムに処理プログラムを付加して実現するときには、処理プログラムは図６に示すような磁気ディスク６０１や図７に示すようなＣＤ−ＲＯＭ７０１などの記憶媒体に記録して配送、保管、実装され、コンピュータ本体５０２に設けた磁気ディスク読み取り装置やＣＤ−ＲＯＭ読み取り装置によって読み取って該コンピュータ本体５０２内に取り込まれる。通信ネットワークを通じて配送される処理プログラムを入力部によって取り込んで実現する場合には、取り込んだ処理プログラムを磁気ディスク等の記憶媒体に記憶させて保存することにより、繰り返し使用できるようにする。
【００８０】
【発明の効果】
以上に述べたように、本発明によれば、原点抽出部によって取り出された原点を原点移動部によって移動させ、移動させた状態で情報蓄積手段に蓄積された形状データを用いて他の形状を規定する形状データを作成し、再度、原点復帰部によって移動した原点に関する形状データを移動前の原点に関する形状データに戻すので、情報処理装置によって形状データの有効桁数を上げることができ、これによって、利用者は従来の設計支援装置を用いて高精度な形状データを作成することが可能になる。
【００８１】
また、本発明によれば、第３の処理工程で取り出した原点を第５の処理工程で移動させ、移動させた状態で蓄積された形状データを用いて形状作成・修正手段によって他の形状を規定するデータを作成し、第６の処理工程で移動前の原点に関するデータに戻すので、情報処理装置によって形状データの有効桁数を上げることができ、これによって、利用者は従来の設計支援装置を用いて高精度な形状データを作成することが可能になる。
【００８２】
さらに、本発明によれば、形状データの移動及び／又は復帰指示を行う第１の処理工程を実行するための第１の処理手順、形状データの移動及び／又は復帰指示を抽出する第２の処理工程を実行するための第２の処理手順、形状データの原点を取り出す第３の処理工程を実行するための第３の処理手順、形状データが同一とみなされるしきい値を検証する第４の処理工程を実行するための第４の処理手順、形状データの移動、回転及び拡大の少なくとも１つの処理を実行し、前記第３の処理工程で取り出された原点を移動させる第５の処理工程を実行するための第５の処理手順、及び前記第５の処理工程で移動した原点に関する前記データを移動前の原点に関するデータに戻す第６の処理工程を実行するための第６の処理手順が少なくとも含まれたプログラムを記録媒体に記録したので、情報処理装置内の記憶手段にダウンロードすることにより、第１ないし第６の処理手順に基づいて情報処理装置内で形状データの有効桁数を上げて形状表現を行うことができ、これにより利用者は従来の設計支援装置を用いて高精度な形状データを作成することが可能になる。
【図面の簡単な説明】
【図１】本発明の実施形態に係る設計支援装置としての情報処理装置の構成を示す図である。
【図２】点の厳密性を示す説明図である。
【図３】本発明の実施形態に係る直線同士の交点を求める説明図である。
【図４】本発明の実施形態における曲線の交点データを作成する処理手順を示すフローチャートである。
【図５】設計支援装置のハードウェア構成図である。
【図６】本発明の実施形態に係る処理プログラムを記憶した記憶媒体としてのＦＤを示す図である。
【図７】本発明の実施形態に係る処理プログラムを記憶した記憶媒体としてのＣＤ−ＲＯＭを示す図である。
【図８】本発明の実施形態における直線同士の交点データを作成する処理手順を示すフローチャートである。
【図９】図８における移動・復帰イベント抽出処理の処理手順を示すフローチャートである。
【図１０】本発明の実施形態における図形要素又は図形要素の集合データ（直線データ及び交点データ）を示す図である。
【図１１】本発明の実施形態における原点移動データ及び原点復帰データを示す図である。
【図１２】本発明の実施形態における原点データを示す図である。
【図１３】原点移動・復帰イベント発行処理の処理手順を示すフローチャートである。
【符号の説明】
１  情報入出力装置
２  情報処理装置本体
３  形状作成・修正処理部
４  情報蓄積部
５  移動・復帰イベント発行部
６  イベント管理領域
７  移動・復帰イベント抽出部、
８  原点抽出部
９  誤差検出部
１０  原点移動部
１１  原点復帰部
１２  原点領域
１３  データの流れ経路、
４１  図形要素又は図形要素の集合
６１  原点移動・復帰データ数
６２  原点移動・復帰識別子
６３  しきい値
６４  図形要素又は図形要素の集合、
１００  情報処理装置（設計支援装置）
５０１  キーボード
５０２  コンピュータ本体
５０３  ディスプレイ
６０１  磁気ディスク
７０１  ＣＤ−ＲＯＭ
【図１】
0003561416.tif 000002
【図２】
0003561416.tif 000003
【図３】
0003561416.tif 000004
【図４】
0003561416.tif 000005
【図５】
0003561416.tif 000006
【図６】
0003561416.tif 000007
【図７】
0003561416.tif 000008
【図８】
0003561416.tif 000009
【図９】
0003561416.tif 000010
【図１０】
0003561416.tif 000011
【図１１】
0003561416.tif 000012
【図１２】
0003561416.tif 000013
【図１３】
0003561416.tif 000014