(57)【特許請求の範囲】
【請求項１】
３次元座標系で定義された３次元形状を２次元座標系に投影することにより前記３次元形状を２次元形状として表示装置に表示させるとともに、入力装置を介して前記２次元形状上の点の指定を受け付けた場合、前記３次元形状の形状データに基づき、前記指定を受け付けた点の座標値を、前記３次元形状の面上の点の３次元座標系における座標値に変換する情報処理装置であって、
前記３次元座標系の軸と平行な線分であって、かつ前記変換後の座標値で特定される点を含む線分が、前記３次元形状の面上に存在するかを前記形状データに基づき判定する判定手段と、
前記判定手段により前記線分が存在すると判定された場合に、前記変換後の座標値を前記線分上に存在する他の座標値に補正する補正手段を備え、
前記他の座標値は、前記軸成分の値が、当該軸上に所定の間隔で並ぶように予め規定された値の一つとなる座標値であって、かつ、当該軸成分の値と、前記変換後の座標値のうちの前記軸成分の値との差が所定値以下となる座標値である、情報処理装置。
【請求項２】
前記線分は、少なくとも前記所定の間隔で示される長さの線分である、請求項１に記載の情報処理装置。
【請求項３】
前記判定手段は、
前記形状データに基づき、前記変換後の座標値で特定される点を含む、前記３次元形状の面が平面であるか否かを判定する平面判定手段と、
前記平面であると判定された場合、前記平面の法線が前記３次元座標系の軸と垂直か否かを前記形状データに基づき判定する垂直判定手段とを備える、請求項１または２に記載の情報処理装置。
【請求項４】
前記判定手段は、
前記形状データに基づき、前記変換後の座標値で特定される点を含む、前記３次元形状の面が、円柱面であるか否かを判定する曲面判定手段と、
円柱面であると判定された場合、前記円柱面の中心軸が前記３次元座標系の軸と平行であるか否かを前記形状データに基づき判定する平行判定手段とを備える、請求項１または２に記載の情報処理装置。
【請求項５】
前記表示装置と前記入力装置とを備える請求項１から４の何れか１項に記載の情報処理装置。
【請求項６】
３次元座標系で定義された３次元形状を２次元座標系に投影することにより前記３次元形状を２次元形状として表示装置に表示させる表示ステップと、
入力装置を介して前記２次元形状上の点の指定を受け付けた場合、前記３次元形状の形状データに基づき、前記指定を受け付けた点の座標値を、前記３次元形状の面上の点の３次元座標系における座標値に変換する変換ステップと、
前記３次元座標系の軸と平行な線分であって、かつ前記変換後の座標値で特定される点を含む線分が、前記３次元形状の面上に存在するかを前記形状データに基づき判定する判定ステップと、
前記判定ステップにより前記線分が存在すると判定された場合に、前記変換後の座標値を前記線分上に存在する他の座標値に補正する補正ステップとを含み、
前記他の座標値は、前記軸成分の値が、当該軸上に所定の間隔で並ぶように予め規定された値の一つとなる座標値であって、かつ、当該軸成分の値と、前記変換後の座標値のうちの前記軸成分の値との差が所定値以下となる座標値である、情報処理方法。
【請求項７】
請求項６に記載の情報処理方法をコンピュータに実行させるためのプログラム。
【請求項８】
請求項７記載のプログラムを記録したコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元座標系で示される図形処理に対するマンマシンインターフェースを提供可能な情報処理装置、情報処理方法、プログラム、およびプログラムを記録したコンピュータ読取り可能な記録媒体に関する。
【背景技術】
【０００２】
従来より、ＣＡＤ（Computer Aided Design）システム等の作図機能を有するシステムが知られている。
【０００３】
特許文献１には、このようなシステムにおいて、グリッドと呼ばれる等間隔に直行する基準線（以下、グリッド線という）からなる格子を、２次元座標系において表示装置に表示させることが開示されている。また、同文献には、マウス等のポインティングデバイスによってユーザから指定された画面上の点の２次元座標系の座標値を、当該点に最も近い、グリッド線同士の交点（以下、グリッド交点という）の座標値に補正する技術が開示されている。
【０００４】
このような補正により、ユーザは、所望とする大きさや形状を有する２次元座標系の図形の入力を容易に行うことができる。さらに、上記グリッド交点における座標値の各成分の値が、小数点以下の桁数が少ない値となるようにグリッドを設定することにより、システムにおける演算処理の負荷を減らすことが可能となる。
【０００５】
また、特許文献２に示すとおり、３次元座標系で定義された３次元形状を２次元座標系に投影することにより、３次元形状を２次元形状として表示させることも行われている。同文献には、２次元形状上の点の指定を受け付けた場合、３次元形状の形状データに基づき、上記指定を受け付けた点の座標値を、３次元形状の面上の点の３次元座標系における座標値に変換することも開示されている。
【０００６】
また、非特許文献１には、２次元座標系であるスクリーン座標系におけるデータを、３次元座標系であるモデル座標系におけるデータに変換する手法が開示されている。
【特許文献１】特開平９−１６８０３号公報
【特許文献２】特開平７−７３３４４号公報
【非特許文献１】山口富士夫著  「コンピュータディスプレイによる図形処理工学」  （日刊工業新聞社）、４章４．４  ３次元図形表示
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ここで、上記グリッドが存在する面においてユーザから２次元形状上の点の指定を受け付けた後に、特許文献２の技術を用いて、当該指定を受け付けた点の座標値を３次元形状の面上の点の３次元座標系における座標値に変換した場合を考える。
【０００８】
この場合、上記３次元形状の面は３次元座標系で定義された面であるため、当該３次元形状の面は、２次元座標系で定義されたグリッドが存在する面と必ずしも平行とは限らない。
【０００９】
それゆえ、このように面同士が平行でない場合、上述した座標値の変換後に特許文献１に示した補正を行うと、補正後の座標値で表される点が上記３次元形状の面上に存在しなくなる。したがって、特許文献１に示す補正を行うことができず、特許文献２に示した変換後の座標値そのものを利用するしかなかった。
【００１０】
このため、３次元座標系における座標値の成分の値を、小数点以下の桁数が少ない値となるように設定することができなかった。その結果、３次元座標を用いるシステムでは、３次元座標系の座標値の補正によって演算処理の負荷の低減を図ることが困難であった。
【００１１】
本願発明は、上記問題点に鑑みなされたものであって、その目的は、３次元座標系における座標値の成分の値を予め規定した値のうちの一つに補正することにより、演算処理の負荷を低減することが可能な情報処理装置、情報処理方法、プログラム、およびプログラムを記録したコンピュータ読取り可能な記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明のある局面に従うと、情報処理装置は、３次元座標系で定義された３次元形状を２次元座標系に投影することにより３次元形状を２次元形状として表示装置に表示させるとともに、入力装置を介して２次元形状上の点の指定を受け付けた場合、３次元形状の形状データに基づき、指定を受け付けた点の座標値を、３次元形状の面上の点の３次元座標系における座標値に変換する情報処理装置であって、３次元座標系の軸と平行な線分であって、かつ変換後の座標値で特定される点を含む線分が、３次元形状の面上に存在するかを形状データに基づき判定する判定手段と、判定手段により線分が存在すると判定された場合に、変換後の座標値を線分上に存在する他の座標値に補正する補正手段を備え、他の座標値は、軸成分の値が、当該軸上に所定の間隔で並ぶように予め規定された値の一つとなる座標値であって、かつ、当該軸成分の値と、変換後の座標値のうちの軸成分の値との差が所定値以下となる座標値である。
【００１３】
また、線分は、少なくとも上記の所定の間隔で示される長さの線分であることが好ましい。
【００１４】
また、判定手段は、形状データに基づき、変換後の座標値で特定される点を含む、３次元形状の面が平面であるか否かを判定する平面判定手段と、平面であると判定された場合、平面の法線が３次元座標系の軸と垂直か否かを形状データに基づき判定する垂直判定手段とを備える構成であることが好ましい。
【００１５】
また、判定手段は、形状データに基づき、変換後の座標値で特定される点を含む、３次元形状の面が、円柱面であるか否かを判定する曲面判定手段と、円柱面であると判定された場合、前記円柱面の中心軸が３次元座標系の軸と平行であるか否かを形状データに基づき判定する平行判定手段とを備える構成であることが好ましい。
【００１６】
また、情報処理装置は、表示装置と入力装置とを備える構成とすることが好ましい。
本発明の他の局面に従うと、情報処理方法は、３次元座標系で定義された３次元形状を２次元座標系に投影することにより３次元形状を２次元形状として表示装置に表示させる表示ステップと、入力装置を介して２次元形状上の点の指定を受け付けた場合、３次元形状の形状データに基づき、指定を受け付けた点の座標値を、３次元形状の面上の点の３次元座標系における座標値に変換する変換ステップと、３次元座標系の軸と平行な線分であって、かつ変換後の座標値で特定される点を含む線分が、３次元形状の面上に存在するかを形状データに基づき判定する判定ステップと、判定ステップにより線分が存在すると判定された場合に、変換後の座標値を線分上に存在する他の座標値に補正する補正ステップとを含み、当該他の座標値は、軸成分の値が、当該軸上に所定の間隔で並ぶように予め規定された値の一つとなる座標値であって、かつ、当該軸成分の値と、変換後の座標値のうちの軸成分の値との差が所定値以下となる座標値である。
【００１７】
本発明のさらに他の局面に従うと、プログラムは、上記情報処理方法をコンピュータに実行させるためのプログラムである。
【００１８】
本発明のさらに他の局面に従うと、記録媒体は、上記情報処理方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読取り可能な記録媒体である。
【発明の効果】
【００１９】
本発明により、３次元座標系における座標値の成分の値を予め規定した値の一つに補正できるため、演算処理の負荷を低減することが可能となるといった効果を奏する。
【発明を実施するための最良の形態】
【００２０】
本発明に係るＣＡＤシステムの一実施の形態について、図１から図１５に基づいて説明すると、以下のとおりである。
【００２１】
図１に示すとおり、ＣＡＤシステム（情報処理装置）１は、３次元座標入力装置１１と、２次元座標入力装置（入力装置）１２と、表示装置１３と、記憶装置１４と、制御装置１５とを備えている。
【００２２】
３次元座標入力装置１１は、ユーザが３次元座標系における座標値を制御装置１５に入力するために用いられる入力デバイスである。具体的には、３次元座標入力装置１１は、座標値の各成分（ｘ，ｙ，ｚ）の値に関する情報の入力を受け付け、当該受け付けた情報を制御装置１５に送る。また、３次元座標入力装置１１は、制御装置１５に対して、上記の座標値以外の各種のデータを入力するための装置としても機能する。
【００２３】
２次元座標入力装置１２は、ユーザが表示装置１３における表示画面上の２次元座標系の点を指定するために用いられる入力デバイスである。また、２次元座標入力装置１２は、表示装置１３に表示されたアイコンをクリックするためのポインティングデバイスとしても機能する。
【００２４】
なお、３次元座標系の例としては、モデル座標系、ワールド（グローバル）座標系、ローカル座標系が挙げられる。また、２次元座標系の例としては、スクリーン座標系、デバイス座標系、クライアント座標系が挙げられる。
【００２５】
表示装置１３は、制御装置１５からの指令に基づき、２次元形状の図形や３次元形状の図形等の各種の情報を画面上に表示する。
【００２６】
記憶装置１４は、３次元座標系で定義された３次元形状の図形に関する形状データ（以下、３Ｄデータという）を１つ以上予め記憶している。また、記憶装置１４は、上記３Ｄデータとして、上記図形を構成する各面（例えば、上面、底面、側面）が、平面あるいは曲面であるかといった面の種別に関する情報も記憶している。さらに、記憶装置１４は、上記３Ｄデータとして、上記図形を構成する平面の法線ベクトルに関するデータも当該平面のデータと関連付けて記憶している。
【００２７】
また、制御装置１５による上記３Ｄデータの読み込み処理により、記憶装置１４に記憶された３Ｄデータが読み出され、制御装置１５に送られる。また、記憶装置１４には、制御装置１５において行われた演算結果が記憶される。なお、記憶装置１４は、例えば、ハードディスク装置や、フラッシュメモリで構成される。
【００２８】
次に、制御装置１５について、図２に基づいて説明する。
制御装置１５は、図２に示すとおり、インターフェイス部２１と、メモリ２２と、制御部２３とを備えている。また、制御部２３は、３次元座標値算出部３１と、判定部（判定手段）３２と、補正処理部（補正手段）３３と、座標値指定部３４とを備えている。さらに、判定部３２は、平面判定部（平面判定手段）４１と、垂直判定部（垂直判定手段）４２と、曲面判定部（曲面判定手段）４３と、平行判定部（平行判定手段）４４とを備えている。なお、制御部２３および制御部２３内の各部は機能ブロックであり、これらのブロックにおける処理は、後述するＣＰＵにより実行されるソフトウェアによって実現される。
【００２９】
インターフェイス部２１は、制御部２３から所定の指示を受けた場合、記憶装置１４に記憶されている３Ｄデータを読み出すとともに、当該読み出した３Ｄデータをメモリ２２に一時的に記憶させる。
【００３０】
メモリ２２は、ＲＡＭ（Random Access Memory）等の揮発性の半導体メモリであり、制御装置１５のＣＰＵ（図示せず）が直接データをやり取りする主記憶装置としての役割を果たす。メモリ２２には、記憶装置１４に記憶された上記３Ｄデータ等が一時的に記憶される。
【００３１】
制御部２３は、メモリ２２に記憶されている３Ｄデータを読み出し、当該３Ｄデータで特定される図形の３次元形状を２次元座標系に投影し、当該３次元形状を２次元形状として表示装置１３に表示させる。
【００３２】
以下、制御部２３の各部の処理について説明する。
３次元座標値算出部３１は、２次元座標入力装置１２を介して表示装置１３に表示された２次元形状上の点の指定を制御部２３が受け付けた場合、２次元座標系における座標値を３次元座標系における座標値へと変換する。より詳しくは、３次元座標値算出部３１は、メモリ２２に記憶された上記３Ｄデータに基づき、上記指定を受け付けた点の座標値を、上記３次元形状の面上の点の３次元座標系における座標値に変換する。
【００３３】
例えば、３次元座標値算出部３１は、図３に示す（ｘ１，ｙ１）といった指定を受け付けた点の２次元座標系の座標値を、図４に示す（Ｘ１，Ｙ１，Ｚ１）といった３次元座標系の座標値に変換する。なお、図３と図４とにおいては、２次元座標入力装置１２によって指定されるカーソルの位置は同じとしている。
【００３４】
そして、３次元座標値算出部３１は、変換後の座標値についての情報を判定部３２に送る。
【００３５】
判定部３２は、３次元座標値算出部３１より上記変換後の座標値の情報を受け取ると、上記３次元座標系の軸（Ｘ軸、Ｙ軸、またはＺ軸）と平行な線分であって、かつ上記変換後の座標値で特定される点を含む線分が、上記３次元形状の面上に存在するかを上記３Ｄデータに基づき判定する。
【００３６】
補正処理部３３は、判定部３２によって上記線分が存在すると判定された場合に、上記変換後の座標値を上記線分上に存在する他の座標値に補正する。より詳しくは、補正処理部３３は、補正後の座標値（上記他の座標値）に関し、上記軸成分の値（例えば、座標値（Ｘ１，Ｙ１，Ｚ１）のうちＸ１）が、当該軸上（Ｘ軸上）に所定の間隔で並ぶように予め規定された値の一つとなり、かつ、当該軸成分の値と、上記変換後の座標値のうちの上記軸成分の値との差が所定値以下となるように補正する。
【００３７】
具体的に説明すると以下のとおりである。
判定部３２による判定の結果、Ｘ軸と平行な線分が存在したとする。また、Ｘ軸上において、各値が例えば１の間隔で並ぶように予め規定されているものとする。つまり、１，２，３，…，ｎ−１，ｎ，ｎ＋１，…といったように値が並んでいるとする（ｎは自然数）。また、このとき上記所定値を、０．５とする。
【００３８】
この場合において、補正前の座標値が（Ｘ，Ｙ，Ｚ）＝（７．２，Ｙ１，Ｚ１）であるとすると、Ｘ軸の成分の値である「７．２」を補正対象とするとともに、当該値「７．２」を上記並んだ値の一つに補正する。その際、値「７．２」は、上記並んだ値のうち「７」と「８」との間にある。また、値「７．２」と値「７」の差が０．２であり、値「７．２」と値「８」との差が０．８である。したがって、この場合には、差が所定値（０．５）以下となるのは値「７」であるので、値「７．２」を値「７」に補正する。その結果、補正後の値として、（Ｘ，Ｙ，Ｚ）＝（７，Ｙ１，Ｚ１）が得られる。
【００３９】
ここで、上記所定値は、上記所定の間隔を２で割った値とすることが好ましい。このように設定することにより、上記並んだ値のうち、必ず上記差が所定値以下となる値が存在することになる。また、上記並んだ値のうち、上記差が所定値以下となる値が２つ存在した場合には、予め規則を設けておき、例えば、値が小さい方に補正する処理を行えばよい。
【００４０】
また、判定部３２による判定の結果、２軸（例えば、Ｘ軸とＹ軸）と平行な線分が存在した場合においても、上記と同様に、Ｘ座標に関する補正と、Ｙ座標に関する補正とを行えばよい。
【００４１】
次に、判定部３２が備える、平面判定部４１、垂直判定部４２、曲面判定部４３、およびに平行判定部４４ついて説明する。
【００４２】
平面判定部４１、垂直判定部４２、曲面判定部４３、およびに平行判定部４４は、上記３次元座標系の軸と平行な線分であって、かつ上記変換後の座標値で特定される点を含む線分が、上記３次元形状の面上に存在するかを上記３Ｄデータに基づき判定するための機能ブロックである。
【００４３】
平面判定部４１は、上記３Ｄデータに基づき、上記変換後の座標値で特定される点を含む上記３次元形状の面が平面であるか否かを判定する。ここで、平面であると判定された場合には、上記変換後の座標値で特定される点を含む線分が、上記３次元形状の面上に存在することになる。
【００４４】
垂直判定部４２は、平面判定部４１により平面であると判定された場合、当該平面の法線が上記３次元座標系の軸と垂直か否かを３Ｄデータに基づき判定する。ここで、垂直であると判定された場合には、上記３次元形状の面（平面）上に存在する線分が、上記３次元座標系の軸と平行であることがわかる。
【００４５】
曲面判定部４３は、上記３Ｄデータに基づき、上記変換後の座標値で特定される点を含む上記３次元形状の面が、円柱面であるか否かを判定する。ここで、円柱面であると判定された場合には、平行判定部４４は、上記円柱面の中心軸が上記３次元座標系の軸と平行であるか否かを３Ｄデータに基づき判定する。ここで、平行であると判定された場合には、前記円柱面上に存在する線分が、上記３次元座標系の軸と平行であることがわかる。
【００４６】
ところで、補正処理部３３によって補正された後の座標値を、ユーザが変更したい場合には、当該変更を受け付ける動作モードにおいて、３次元座標入力装置１１を介してユーザが値の入力を行えばよい。当該値の入力を制御装置１５が受け付けると、座標値指定部３４は、メモリ２２に記憶されている上記補正後の座標値を、当該受け付けた値の座標値に変更する。
【００４７】
以下、ＣＡＤシステム１における処理内容を、具体例を挙げることにより、さらに具体的に説明する。
【００４８】
なお、以下では、３次元座標入力装置１１や２次元座標入力装置１２を介したユーザからの指示により、制御装置１５が記憶装置１４から任意の３次元形状の図形に関する３Ｄデータを読み出した場合について説明する。また、上記３Ｄデータで特定される図形の３次元形状を２次元座標系に投影し、当該３次元形状を２次元形状として表示装置１３に表示させた後の処理について説明する。さらに、読み出した３Ｄデータはメモリ２２に一時的に記憶されているものとする。
【００４９】
また、以下では、説明の便宜上、２次元座標系において指定する２次元形状上の点は、当該２次元形状に対応する３次元座標系における３次元形状の稜線に含まれる点や頂点に対応する点ではないとする。
【００５０】
図５に示すとおり、２次元座標入力装置１２により、２次元座標系において２次元形状上の任意の点Ｐ１を指定する（Ｓ１）。ステップＳ１の後は、３次元座標値算出部３１により、ステップＳ１で指示された点Ｐ１の座標値（ｘ，ｙ）を、３次元座標系の座標値（Ｘ，Ｙ，Ｚ）に変換するとともに、当該変換後の座標値（Ｘ，Ｙ，Ｚ）を一時的にメモリ２２に記憶させる（Ｓ２）。なお、以下では、座標値（Ｘ，Ｙ，Ｚ）で特定される３次元形状上の点をＰ２とする。
【００５１】
ステップＳ２の後は、平面判定部４１により、点Ｐ２が存在する３次元形状における面の種別が記憶装置１４から取得される（Ｓ３）。ステップＳ３の後は、取得した面の種別に基づいて、点Ｐ２が存在する３次元形状における面が平面か否かが、平面判定部４１により判断される（Ｓ４）。
【００５２】
ステップＳ４において平面であると判定された場合には、図６に示すステップＳ５に進む。一方、ステップＳ４において平面ではないと判定された場合には、取得した面の種別に基づいて、点Ｐ２が存在する３次元形状における面が円柱面か否かが、曲面判定部４３により判断される（Ｓ２０）。
【００５３】
ステップＳ２０において円柱面であると判定された場合には、図７に示すステップＳ２１に進む。一方、ステップＳ２０において円柱面ではないと判定された場合には、ステップＳ１９に進む。
【００５４】
ここで、ステップＳ５に進んだ後の処理の流れを、図６に基づいて説明する。
まず、垂直判定部４２は、上記平面の法線ベクトルをメモリ２２から読み出す（Ｓ５）。ステップＳ５の後は、垂直判定部４２は、読み出した法線ベクトルの長さを１に正規化した単位ベクトルＶｕ＝（Ｘｕ，Ｙｕ，Ｚｕ）を生成する（Ｓ６）。
【００５５】
ステップＳ６の後は、垂直判定部４２は、Ｓ６において生成した単位ベクトルＶｕと、３次元座標系においてＸ軸に平行な単位ベクトルＶｘ＝（１，０，０）との内積の絶対値｜Ｖｕ・Ｖｘ｜を計算する（Ｓ７）。ステップＳ７の後は、垂直判定部４２により、上記絶対値が、０に等しいか、または整数部が０であってかつ少数第１位から少数第ｍ位（ｍは予め定めた自然数）までの値が全て０であるような０に十分近い値（例えば、０．００００１）であるか否かが判定される（Ｓ８）。
【００５６】
ステップＳ８において上記絶対値が０かあるいは０に十分近い値であると判定された場合には、補正処理部３３は、上記点Ｐ２の座標値（Ｘ，Ｙ，Ｚ）におけるＸ軸成分の値について四捨五入（少数第一位が４以下なら切り捨て、少数第一位が５以上なら切り上げる処理）を行うことにより、当該Ｘ軸成分の値を整数とする（Ｓ９）。そして、ステップＳ９の後は、ステップＳ１０に進む。一方、ステップＳ８において上記絶対値が０かあるいは０に十分近い値ではないと判定された場合には、ステップＳ１０に進む。
【００５７】
ステップＳ１０においては、垂直判定部４２は、上記単位ベクトルＶｕと、３次元座標系においてＹ軸に平行な単位ベクトルＶｙ＝（０，１，０）との内積の絶対値｜Ｖｕ・Ｖｙ｜を計算する。そして、ステップＳ１０の後は、垂直判定部４２により、ステップＳ８と同様に、上記絶対値が０に等しいかあるいは０に十分近い値であるか否かが判定される（Ｓ１１）。
【００５８】
ステップＳ１１において上記絶対値が０かあるいは０に十分近い値であると判定された場合には、補正処理部３３は、上記点Ｐ２の座標値（Ｘ，Ｙ，Ｚ）におけるＹ軸成分の値について四捨五入を行うことにより、当該Ｙ軸成分の値を整数とする（Ｓ１２）。そして、ステップＳ１２の後は、ステップＳ１３に進む。一方、ステップＳ１１において上記絶対値が０かあるいは０に十分近い値ではないと判定された場合には、ステップＳ１３に進む。
【００５９】
ステップＳ１３においては、垂直判定部４２は、上記単位ベクトルＶｕと、３次元座標系においてＺ軸に平行な単位ベクトルＶｚ＝（０，０，１）との内積の絶対値｜Ｖｕ・Ｖｚ｜を計算する。そして、ステップＳ１３の後は、垂直判定部４２により、ステップＳ８と同様に、上記絶対値が０に等しいかあるいは０に十分近い値であるか否かが判定される（Ｓ１４）。
【００６０】
ステップＳ１４において上記絶対値が０かあるいは０に十分近い値であると判定された場合には、補正処理部３３は、上記点Ｐ２の座標値（Ｘ，Ｙ，Ｚ）におけるＺ軸成分の値について四捨五入を行い、当該Ｚ軸成分の値を整数とする（Ｓ１５）。そして、ステップＳ１５の後は、ステップＳ１６に進む。一方、ステップＳ１３において上記絶対値が０かあるいは０に十分近い値ではないと判定された場合には、ステップＳ１６に進む。
【００６１】
ここで、図５に戻り、ステップＳ１６においては、各軸成分に関し補正処理を行うことにより得られた座標値で特定される点が上記平面内にあるか否かが、上記３Ｄデータに基づき判定部３２により判定される。
【００６２】
ステップＳ１６において上記平面内にあると判断された場合には、制御装置１５が、例えば図８に示すとおりの補正後の座標値を表示装置１３に表示させる（Ｓ１７）。そして、ステップＳ１７の後、一連の処理を終了する。ここで、同図においては、Ｙ軸成分の値が一例として整数となっていることから、上記点Ｐ２の座標値（Ｘ，Ｙ，Ｚ）におけるＹ軸成分の値について、四捨五入する補正が行われたことをユーザが容易に判別できる。
【００６３】
なお、上記補正後の座標値で問題ないとユーザが判断した場合、同図に示す決定ボタンを２次元座標入力装置１２を用いて選択することにより、補正後の座標値が確定する。そして、当該確定した座標値のデータは、制御装置１５により、上記３Ｄデータの一部として、記憶装置１４に記憶される。
【００６４】
一方、ステップＳ１６において上記平面内にないと判断された場合には、制御装置１５は、ステップＳ２において一時的にメモリ２２に記憶させていた、補正前の座標値（Ｘ，Ｙ，Ｚ）をメモリ２２から読み出す（Ｓ１８）。そして、ステップＳ１８の後、制御装置１５が補正前の座標値（Ｘ，Ｙ，Ｚ）を表示装置１３に表示させる（Ｓ１９）。そして、ステップＳ１９の後、一連の処理を終了する。
【００６５】
次に、ステップＳ２０において円柱面であると判定された場合について、図７に基づき説明する。
【００６６】
まず、平行判定部４４は、円柱面の中心軸の方向ベクトルをメモリ２２から読み出す（Ｓ２１）。ステップＳ２１の後は、平行判定部４４は、読み出した方向ベクトルの長さを１に正規化した単位ベクトルＶｕ′＝（Ｘｕ′，Ｙｕ′，Ｚｕ′）を生成する（Ｓ２２）。
【００６７】
ステップＳ２２の後は、平行判定部４４は、ステップＳ２２において生成した単位ベクトルＶｕ′と、３次元座標系においてＸ軸に平行な単位ベクトルＶｘ＝（１，０，０）との内積の絶対値｜Ｖｕ′・Ｖｘ｜を計算する（Ｓ２３）。ステップＳ２３の後は、平行判定部４４により、上記絶対値が、１に等しいか、または０．９９９９９９等のように１に十分近い値であるか否かが判定される（Ｓ２４）。
【００６８】
ステップＳ２４において上記絶対値が１かあるいは１に十分近い値であると判定された場合には、補正処理部３３は、上記点Ｐ２の座標値（Ｘ，Ｙ，Ｚ）におけるＸ軸成分の値について四捨五入を行い、当該Ｘ軸成分の値を整数とする（Ｓ２５）。そして、ステップＳ２５の後は、図５に示すステップＳ１６に進む。
【００６９】
一方、ステップＳ２４において上記絶対値が１かあるいは１に十分近い値ではないと判定された場合には、平行判定部４４は、ステップＳ２２において生成した単位ベクトルＶｕ′と、３次元座標系においてＹ軸に平行な単位ベクトルＶｙ＝（０，１，０）との内積の絶対値｜Ｖｕ′・Ｖｙ｜を計算する（Ｓ２６）。ステップＳ２６の後は、平行判定部４４により、上記絶対値が、１に等しいか、または０．９９９９９９等のように１に十分近い値であるか否かが判定される（Ｓ２７）。
【００７０】
ステップＳ２７において上記絶対値が１かあるいは１に十分近い値であると判定された場合には、補正処理部３３は、上記点Ｐ２の座標値（Ｘ，Ｙ，Ｚ）におけるＹ軸成分の値について四捨五入を行い、当該Ｙ軸成分の値を整数とする（Ｓ２８）。そして、ステップＳ２８の後は、図５に示すステップＳ１６に進む。
【００７１】
一方、ステップＳ２７において上記絶対値が１かあるいは１に十分近い値ではないと判定された場合には、平行判定部４４は、ステップＳ２２において生成した単位ベクトルＶｕ′と、３次元座標系においてＺ軸に平行な単位ベクトルＶｚ＝（０，０，１）との内積の絶対値｜Ｖｕ′・Ｖｚ｜を計算する（Ｓ２９）。ステップＳ２９の後は、平行判定部４４により、上記絶対値が、１に等しいか、または０．９９９９９９等のように１に十分近い値であるか否かが判定される（Ｓ３０）。
【００７２】
ステップＳ３０において上記絶対値が１かあるいは１に十分近い値であると判定された場合には、補正処理部３３は、上記点Ｐ２の座標値（Ｘ，Ｙ，Ｚ）におけるＺ軸成分の値について四捨五入を行い、当該Ｚ軸成分の値を整数とする（Ｓ３１）。そして、ステップＳ３１の後は、図５に示すステップＳ１６に進む。一方、ステップＳ３０において上記絶対値が１かあるいは１に十分近い値ではないと判定された場合には、補正を行うことなく、図５に示すステップＳ１６に進む。
【００７３】
以下では、上述した一連の処理により、座標値（Ｘ，Ｙ，Ｚ）が具体的にどのように補正されるのかを、図９から図１４に基づいて説明する。
【００７４】
まず、図５のステップＳ４において平面であると判定された場合に、図６に示すステップＳ５以下の処理により、座標値（Ｘ，Ｙ，Ｚ）が具体的にどのように補正されるのかを、図９から図１２に基づき説明する。
【００７５】
図９に示すとおり、３次元座標系におけるＸ軸とＹ軸とから構成されるＸＹ平面に平行な平面Ｍ１上に、上述した点Ｐ２が存在している場合を考える。この場合、点Ｐ２が存在する平面Ｍ１の法線ベクトルの長さを１に正規化した単位ベクトルＶｕは、（０，０，１）となる。したがって、単位ベクトルＶｕと、Ｘ軸に平行な単位ベクトルＶｘとの内積の絶対値、Ｙ軸に平行な単位ベクトルＶｙとの内積の絶対値、およびＺ軸に平行な単位ベクトルＶｚとの内積の絶対値は、それぞれ以下のとおりになる。
【００７６】
｜Ｖｕ・Ｖｘ｜＝｜（０，０，１）・（１，０，０）｜＝０
｜Ｖｕ・Ｖｙ｜＝｜（０，０，１）・（０，１，０）｜＝０
｜Ｖｕ・Ｖｚ｜＝｜（０，０，１）・（０，０，１）｜＝１
上記計算の結果、ＶｕとＶｘとの内積の絶対値と、ＶｕとＶｙとの内積の絶対値とが０となっていることがわかる。このため、補正処理部３３により、点Ｐ２の座標値（Ｘ，Ｙ，Ｚ）のＸ成分とＹ成分との値について四捨五入を行い、当該Ｘ軸成分の値とＹ軸成分の値とを整数値化する。
【００７７】
このような補正により、図１０に示すとおり、上記点Ｐ２が、ＸＹ平面に平行な面上Ｍ１において間隔を１として形成されたグリッドにおけるグリッド交点のうち、当該点Ｐ２に最も近い交点（○で示された点）に移動したのと同様な効果を得ることができる。なお、同図においては、Ｚ軸上に上記グリッド交点が位置するものとする。
【００７８】
次に、図１１に示すとおり、３次元座標系における各軸のうちＹ軸のみに平行な平面Ｍ２上に、上述した点Ｐ２が存在している場合を考える。また、当該点Ｐ２が存在する平面Ｍ２の法線ベクトルの長さを１に正規化した単位ベクトルＶｕが、（０．８，０，０．６）であるとする。
【００７９】
この場合、単位ベクトルＶｕと、Ｘ軸に平行な単位ベクトルＶｘとの内積の絶対値、Ｙ軸に平行な単位ベクトルＶｙとの内積の絶対値、およびＺ軸に平行な単位ベクトルＶｚとの内積の絶対値は、それぞれ以下のとおりになる。
【００８０】
｜Ｖｕ・Ｖｘ｜＝｜（０．８，０，０．６）・（１，０，０）｜＝０．８
｜Ｖｕ・Ｖｙ｜＝｜（０．８，０，０．６）・（０，１，０）｜＝０
｜Ｖｕ・Ｖｚ｜＝｜（０．８，０，０．６）・（０，０，１）｜＝０．６
上記計算の結果、ＶｕとＶｙとの内積の絶対値のみが０となっていることがわかる。このため、補正処理部３３により、点Ｐ２の座標値（Ｘ，Ｙ，Ｚ）のＹ成分との値について四捨五入を行い、当該Ｙ軸成分の値を整数値化する。
【００８１】
このような補正により、図１２に示すとおり、上記点Ｐ２が、上述したグリッドを構成する線のうちＹ軸と垂直な線の上の点であって、かつ当該点Ｐ２に最も近い点（○で示された点）に移動したのと同様な効果を得ることができる。なお、同図においても、Ｚ軸上に上記グリッド交点が位置するものとする。
【００８２】
次に、ステップＳ２０において円柱面であると判定された場合に、図７に示すステップＳ２１以下の処理により、座標値（Ｘ，Ｙ，Ｚ）が具体的にどのように補正されるのかを、図１３および図１４に基づき説明する。
【００８３】
図１３に示すとおり、３次元座標系において中心軸がＺ軸と平行となる円柱面Ｍ４上に、上述した点Ｐ２が存在している場合を考える。この場合、上記円柱面Ｍ４の中心軸の方向ベクトルの長さを１に正規化した単位ベクトルＶｕ′は、（０，０，１）となる。したがって、単位ベクトルＶｕ′と、Ｘ軸に平行な単位ベクトルＶｘとの内積の絶対値、Ｙ軸に平行な単位ベクトルＶｙとの内積の絶対値、およびＺ軸に平行な単位ベクトルＶｚとの内積の絶対値は、それぞれ以下のとおりになる。
【００８４】
｜Ｖｕ′・Ｖｘ｜＝｜（０，０，１）・（１，０，０）｜＝０
｜Ｖｕ′・Ｖｙ｜＝｜（０，０，１）・（０，１，０）｜＝０
｜Ｖｕ′・Ｖｚ｜＝｜（０，０，１）・（０，０，１）｜＝１
上記計算の結果、ＶｕとＶｚとの内積の絶対値が１となっていることがわかる。このため、補正処理部３３により、点Ｐ２の座標値（Ｘ，Ｙ，Ｚ）のＺ成分の値について四捨五入を行い、当該Ｚ軸成分の値を整数値化する。
【００８５】
ここで、図１４に示すとおり、円柱面Ｍ４上に設けられるとともに、１の間隔で円柱面Ｍ４の中心軸と平行な座標軸（すなわちＺ軸）に垂直な平面（すなわちＸＹ平面）と平行に配されたグリッド線を有するグリッドを考える。この場合、上記補正により、同図に示すとおり、上記点Ｐ２が、上述したグリッド線上の点であって、かつ当該点Ｐ２に最も近い点（○で示す点）に移動したのと同様な効果を得ることができる。なお、同図においては、ＸＹ平面上にもグリッド線が位置するものとする。
【００８６】
以上のように、実施例を示しつつ本実施の形態に係るＣＡＤシステム１を説明したが、上述した構成に限定されるものではない。
【００８７】
上記においては、各軸上（例えばＸ軸上）に所定の間隔で並ぶように予め規定された値（軸成分の値）として、１，２，３，…，ｎ−１，ｎ，ｎ＋１，…といったような１の間隔で並んだ例を挙げた（ｎは自然数）。しかしながら、これに限定されず、例えば１０や１００といった２桁以上の間隔でもよいし、あるいは０．５といった小数点以下の値で規定される間隔でもよい。要は、ＣＡＤシステム１において利用可能な間隔であって、ユーザ自身が選択した間隔であればよい。
【００８８】
また、上記では、四捨五入を行う例を挙げたが、これに限定されるものではない。あくまでも、補正処理部３３による補正の対象となる軸成分の値に関し、補正後の座標値に関する軸成分の値が、上記規定された値であって、かつ変換後の座標値（つまり、補正前の座標値）のうちの当該軸成分の値との差が所定値以下の値となる補正を行う構成であればよい。
【００８９】
なお、上記間隔として１０を選択した場合には、上述した四捨五入の処理の代わりに、例えば以下の処理を行えばよい。すなわち、一の位について４以下なら、十の位を補正せずに一の位および小数点以下の位を０とする補正を行い、一の位について５以上なら、十の位を１つ大きな値に補正するとともに一の位および小数点以下の位を０とする補正を行えばよい。なお、この場合、上記所定値としては例えば５となる。
【００９０】
また、上記間隔として０．５を選択した場合には、上述した四捨五入の処理の代わりに、以下の処理を行えばよい。すなわち、補正の対象となる軸成分の値に関し、補正後の座標値に関する軸成分の値が、上記規定された値（つまり、０．５，１．０，１．５，２．０，２．５，３．０，…，）の何れかの値であって、かつ変換後の座標値のうちの当該軸成分の値との差が所定値（例えば０．２５）以下の値になる補正を行えばよい。
【００９１】
また、上記においては、３Ｄデータとして、面の種別に関する情報と、平面の法線ベクトルに関するデータとを予め記憶している構成を例に挙げて説明したが、これに限定されるものではない。例えば、上記種別を記憶させずに、制御装置１５が上記３Ｄデータから種別を判別する構成としてもよい。また、上記法線ベクトルを記憶させずに、演算装置１５が上記３Ｄデータから法線ベクトルを算出する構成としてもよい。
【００９２】
以上のような構成をＣＡＤシステム１が有するため、補正後の座標値で表される点を３次元形状の面上に存在させつつも、３次元座標系における座標値の成分の値を予め規定された値の一つ（例えば小数点以下の桁数が予め決められた値のような、所定の桁数で表現される値）に補正することができる。その結果、ＣＡＤシステム１では、上記の補正を行わない構成の装置に比べ、演算処理の負荷の低減を図ることが可能となる。
【００９３】
また、小数点以下の桁数が少ない値に補正できるため、この値を表示装置１３に表示させることにより、補正を行わない場合比べ、ユーザは補正が行われた軸成分の値を即座に読み取ることができる。
【００９４】
さらに、上記のようにユーザが即座に読み取ることができる軸成分の値については、上述した座標値指定部３４により値を多少変更しても、変更後の座標値で特定される点が３次元座標系における３次元形状の同一面から離れる可能性が低い。一方で、小数部が例えば２０桁もあるような軸成分の値は、少しでも変更すれば上記同一面から離れてしまうことがわかる。
【００９５】
したがって、上記補正処理後の座標値の各軸成分値をユーザが確認することにより、軸成分の値を変更すると変更後の座標値で特定される点が上記同一面から離れるか否かを、ユーザは容易に判断することができる。
【００９６】
また、工業製品の部品設計においては、部品が設計図（３Ｄデータ）通りに製作されているか否かを検査工程で検査する。この際に、３Ｄデータに含まれる各数値の桁数が多い場合、このままの数値を用いることは検査工程の効率化の観点から好ましくない。しかしながら、本実施の形態で示した補正を行うことにより、検査工程の効率化を図ることもできる。
【００９７】
また、上記の実施の形態においては、３次元座標系の軸と平行な線分であって、かつ上記変換後の座標値で特定される点を含む線分が、上記３次元形状の面上に存在するかを、判定部３２が上記３Ｄデータに基づき判定する構成である。
【００９８】
この構成において、上記線分は、少なくとも、上記所定の間隔（上述した予め規定された値に関する間隔（例えば、１、１０、または０．５等））で示される長さの線分であることが好ましい。以下、理由を示す。
【００９９】
補正の対象となる軸成分に関し、軸成分の値が、当該軸上に所定の間隔で並ぶように予め規定された値の一つとなる座標値であって、かつ、当該軸成分の値と、前記変換後の座標値のうちの前記軸成分の値との差が所定値以下となる座標値で特定される点を特定点とする。このように特定点を定義すると、上記のように線分を少なくとも上記所定の間隔で示される長さとする構成により、上記特定点が上記線分上に必ず存在することになる。その結果、線分が存在する場合には、必ず、変換後の座標値を上記特定点の座標値に補正可能となる。それゆえ、上記線分の長さを、少なくとも、上記所定の間隔で示される長さとすることが好ましい。
【０１００】
ここで、図１５を参照して、本実施の形態に係るＣＡＤシステム１の具体的構成の一態様について説明する。同図は、ＣＡＤシステム１として機能するコンピュータシステム１００のハードウェア構成を表わすブロック図である。
【０１０１】
コンピュータシステム１００は、主たる構成要素として、プログラムを実行するＣＰＵ１１０と、コンピュータシステム１００の使用者による指示の入力を受けるマウス１２０およびキーボード１３０と、ＣＰＵ１１０によるプログラムの実行により生成されたデータ、又はマウス１２０若しくはキーボード１３０を介して入力されたデータを揮発的に格納するＲＡＭ１４０と、データを不揮発的に格納するハードディスク１５０と、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）駆動装置１６０と、モニタ１７０と、通信ＩＦ（Interface）１８０とを含む。各構成要素は、相互にデータバスによって接続されている。ＣＤ−ＲＯＭ駆動装置１６０には、ＣＤ−ＲＯＭ１６１が装着される。
【０１０２】
なお、ＣＡＤシステム１における３次元座標入力装置１１がキーボード１３０に該当し、２次元座標入力装置１２がマウス１２０に該当し、表示装置１３がモニタ１７０に該当し、記憶装置１４がハードディスク１５０に該当し、メモリ２２がＲＡＭ１４０に該当する。
【０１０３】
コンピュータシステム１００における処理は、各ハードウェアおよびＣＰＵ１１０により実行されるソフトウェアによって実現される。このようなソフトウェアは、ハードディスク１５０に予め記憶されている場合がある。また、ソフトウェアは、ＣＤ−ＲＯＭ１６１その他の記憶媒体に格納されて、プログラムプロダクトとして流通している場合もある。あるいは、ソフトウェアは、いわゆるインターネットに接続されている情報提供事業者によってダウンロード可能なプログラムプロダクトとして提供される場合もある。このようなソフトウェアは、ＣＤ−ＲＯＭ駆動装置１６０その他の読取装置によりその記憶媒体から読み取られて、あるいは、通信ＩＦ１８０を介してダウンロードされた後、ハードディスク１５０に一旦格納される。そのソフトウェアは、ＣＰＵ１１０によってハードディスク１５０から読み出され、ＲＡＭ１４０に実行可能なプログラムの形式で格納される。ＣＰＵ１１０は、そのプログラムを実行する。
【０１０４】
同図に示されるコンピュータシステム１００を構成する各構成要素は、一般的なものである。したがって、本発明の本質的な部分は、ＲＡＭ１４０、ハードディスク１５０、ＣＤ−ＲＯＭ１６１その他の記憶媒体に格納されたソフトウェア、あるいはネットワークを介してダウンロード可能なソフトウェアであるともいえる。なお、コンピュータシステム１００の各ハードウェアの動作は周知であるので、詳細な説明は繰り返さない。
【０１０５】
なお、記録媒体としては、ＣＤ−ＲＯＭ、ＦＤ（Flexible  Disk）、ハードディスクに限られず、磁気テープ、カセットテープ、光ディスク（ＭＯ（Magnetic Optical Disc）／ＭＤ（Mini Disc）／ＤＶＤ（Digital Versatile Disc））、ＩＣ（Integrated Circuit）カード（メモリカードを含む）、光カード、マスクＲＯＭ、ＥＰＲＯＭ（Electronically Programmable Read-Only Memory）、ＥＥＰＲＯＭ（Electronically Erasable Programmable Read-Only Memory）、フラッシュＲＯＭなどの半導体メモリ等の固定的にプログラムを担持する媒体でもよい。
【０１０６】
ここでいうプログラムとは、ＣＰＵにより直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【０１０７】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０１０８】
【図１】本実施の形態に係るＣＡＤシステムの概略構成を示した図である。
【図２】上記ＣＡＤシステムにおける制御装置の概略構成を示した図である。
【図３】上記ＣＡＤシステムにおける２次元座標入力装置を用いて、２次元座標系の点を指定している状態を示した図である。
【図４】図３において指定した点を３次元座標系で特定した状態を示した図である。
【図５】上記ＣＡＤシステムで実行される処理の流れの一部を示したフローチャートである。
【図６】上記ＣＡＤシステムで実行される処理の流れの他の一部を示したフローチャートである。
【図７】上記ＣＡＤシステムで実行される処理の流れのさらに他の一部を示したフローチャートである。
【図８】上記制御装置で補正処理を行った後の３次元座標系における座標値を、表示装置で示した図である。
【図９】上記制御装置によって変換された後の座標値により特定される点が存在する、Ｘ軸とＹ軸とに平行な平面を示した図である。
【図１０】図９における点と、当該点の座標値を補正して得られる座標値により特定される補正後の点とを、図９と同じ平面に示した図である。
【図１１】上記制御装置によって変換された後の座標値により特定される点が存在する、Ｙ軸にのみに平面を示した図である。
【図１２】図１１における点と、当該点の座標値を補正して得られる座標値により特定される補正後の点とを、図１１と同じ平面に示した図である。
【図１３】上記制御装置によって変換された後の座標値により特定される点が存在する、中心軸がＺ軸に平行となる円柱面を示した図である。
【図１４】図１３における点と、当該点の座標値を補正して得られる座標値により特定される補正後の点とを、図１３と同じ側面に示した図である。
【図１５】上記ＣＡＤシステムの具体的構成の一態様を示した図である。
【符号の説明】
【０１０９】
１  ＣＡＤシステム、１１  ３次元座標入力装置、１２  ２次元座標入力装置、１３  表示装置、１４  記憶装置、１５  制御装置、２２  記憶部、２３  制御部、３１  ３次元座標値算出部、３２  判定部、３３  補正処理部、４１  平面判定部、４２  垂直判定部、４３  曲面判定部、４４  平行判定部。
【図１】
0004845054.tif 000002
【図２】
0004845054.tif 000003
【図３】
0004845054.tif 000004
【図４】
0004845054.tif 000005
【図５】
0004845054.tif 000006
【図６】
0004845054.tif 000007
【図７】
0004845054.tif 000008
【図８】
0004845054.tif 000009
【図９】
0004845054.tif 000010
【図１０】
0004845054.tif 000011
【図１１】
0004845054.tif 000012
【図１２】
0004845054.tif 000013
【図１３】
0004845054.tif 000014
【図１４】
0004845054.tif 000015
【図１５】
0004845054.tif 000016