情報処理装置、情報処理方法、プログラム、およびプログラムを記録したコンピュータ読取り可能な記録媒体
【課題】3次元座標系における座標値の成分の値を予め規定された値の一つに補正することにより、演算処理の負荷を低減する。
【解決手段】3次元座標系の軸と平行な線分であって、かつ3次元座標系への変換後の座標値で特定される点を含む線分が、3次元形状の面上に存在するかを形状データに基づき判定する判定部32と、判定部32により線分が存在すると判定された場合に、変換後の座標値を線分上に存在する他の座標値に補正する補正処理部33を備え、他の座標値は、軸成分の値が、軸上に所定の間隔で並ぶように予め規定された値の一つとなる座標値であって、かつ、軸成分の値と、変換後の座標値のうちの軸成分の値との差が所定値以下となる座標値である。
【解決手段】3次元座標系の軸と平行な線分であって、かつ3次元座標系への変換後の座標値で特定される点を含む線分が、3次元形状の面上に存在するかを形状データに基づき判定する判定部32と、判定部32により線分が存在すると判定された場合に、変換後の座標値を線分上に存在する他の座標値に補正する補正処理部33を備え、他の座標値は、軸成分の値が、軸上に所定の間隔で並ぶように予め規定された値の一つとなる座標値であって、かつ、軸成分の値と、変換後の座標値のうちの軸成分の値との差が所定値以下となる座標値である。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、3次元座標系で示される図形処理に対するマンマシンインターフェースを提供可能な情報処理装置、情報処理方法、プログラム、およびプログラムを記録したコンピュータ読取り可能な記録媒体に関する。
【背景技術】
【0002】
従来より、CAD(Computer Aided Design)システム等の作図機能を有するシステムが知られている。
【0003】
特許文献1には、このようなシステムにおいて、グリッドと呼ばれる等間隔に直行する基準線(以下、グリッド線という)からなる格子を、2次元座標系において表示装置に表示させることが開示されている。また、同文献には、マウス等のポインティングデバイスによってユーザから指定された画面上の点の2次元座標系の座標値を、当該点に最も近い、グリッド線同士の交点(以下、グリッド交点という)の座標値に補正する技術が開示されている。
【0004】
このような補正により、ユーザは、所望とする大きさや形状を有する2次元座標系の図形の入力を容易に行うことができる。さらに、上記グリッド交点における座標値の各成分の値が、小数点以下の桁数が少ない値となるようにグリッドを設定することにより、システムにおける演算処理の負荷を減らすことが可能となる。
【0005】
また、特許文献2に示すとおり、3次元座標系で定義された3次元形状を2次元座標系に投影することにより、3次元形状を2次元形状として表示させることも行われている。同文献には、2次元形状上の点の指定を受け付けた場合、3次元形状の形状データに基づき、上記指定を受け付けた点の座標値を、3次元形状の面上の点の3次元座標系における座標値に変換することも開示されている。
【0006】
また、非特許文献1には、2次元座標系であるスクリーン座標系におけるデータを、3次元座標系であるモデル座標系におけるデータに変換する手法が開示されている。
【特許文献1】特開平9−16803号公報
【特許文献2】特開平7−73344号公報
【非特許文献1】山口富士夫著 「コンピュータディスプレイによる図形処理工学」 (日刊工業新聞社)、4章4.4 3次元図形表示
【発明の開示】
【発明が解決しようとする課題】
【0007】
ここで、上記グリッドが存在する面においてユーザから2次元形状上の点の指定を受け付けた後に、特許文献2の技術を用いて、当該指定を受け付けた点の座標値を3次元形状の面上の点の3次元座標系における座標値に変換した場合を考える。
【0008】
この場合、上記3次元形状の面は3次元座標系で定義された面であるため、当該3次元形状の面は、2次元座標系で定義されたグリッドが存在する面と必ずしも平行とは限らない。
【0009】
それゆえ、このように面同士が平行でない場合、上述した座標値の変換後に特許文献1に示した補正を行うと、補正後の座標値で表される点が上記3次元形状の面上に存在しなくなる。したがって、特許文献1に示す補正を行うことができず、特許文献2に示した変換後の座標値そのものを利用するしかなかった。
【0010】
このため、3次元座標系における座標値の成分の値を、小数点以下の桁数が少ない値となるように設定することができなかった。その結果、3次元座標を用いるシステムでは、3次元座標系の座標値の補正によって演算処理の負荷の低減を図ることが困難であった。
【0011】
本願発明は、上記問題点に鑑みなされたものであって、その目的は、3次元座標系における座標値の成分の値を予め規定した値のうちの一つに補正することにより、演算処理の負荷を低減することが可能な情報処理装置、情報処理方法、プログラム、およびプログラムを記録したコンピュータ読取り可能な記録媒体を提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明のある局面に従うと、情報処理装置は、3次元座標系で定義された3次元形状を2次元座標系に投影することにより3次元形状を2次元形状として表示装置に表示させるとともに、入力装置を介して2次元形状上の点の指定を受け付けた場合、3次元形状の形状データに基づき、指定を受け付けた点の座標値を、3次元形状の面上の点の3次元座標系における座標値に変換する情報処理装置であって、3次元座標系の軸と平行な線分であって、かつ変換後の座標値で特定される点を含む線分が、3次元形状の面上に存在するかを形状データに基づき判定する判定手段と、判定手段により線分が存在すると判定された場合に、変換後の座標値を線分上に存在する他の座標値に補正する補正手段を備え、他の座標値は、軸成分の値が、当該軸上に所定の間隔で並ぶように予め規定された値の一つとなる座標値であって、かつ、当該軸成分の値と、変換後の座標値のうちの軸成分の値との差が所定値以下となる座標値である。
【0013】
また、線分は、少なくとも上記の所定の間隔で示される長さの線分であることが好ましい。
【0014】
また、判定手段は、形状データに基づき、変換後の座標値で特定される点を含む、3次元形状の面が平面であるか否かを判定する平面判定手段と、平面であると判定された場合、平面の法線が3次元座標系の軸と垂直か否かを形状データに基づき判定する垂直判定手段とを備える構成であることが好ましい。
【0015】
また、判定手段は、形状データに基づき、変換後の座標値で特定される点を含む、3次元形状の面が、円柱面であるか否かを判定する曲面判定手段と、円柱面であると判定された場合、前記円柱面の中心軸が3次元座標系の軸と平行であるか否かを形状データに基づき判定する平行判定手段とを備える構成であることが好ましい。
【0016】
また、情報処理装置は、表示装置と入力装置とを備える構成とすることが好ましい。
本発明の他の局面に従うと、情報処理方法は、3次元座標系で定義された3次元形状を2次元座標系に投影することにより3次元形状を2次元形状として表示装置に表示させる表示ステップと、入力装置を介して2次元形状上の点の指定を受け付けた場合、3次元形状の形状データに基づき、指定を受け付けた点の座標値を、3次元形状の面上の点の3次元座標系における座標値に変換する変換ステップと、3次元座標系の軸と平行な線分であって、かつ変換後の座標値で特定される点を含む線分が、3次元形状の面上に存在するかを形状データに基づき判定する判定ステップと、判定ステップにより線分が存在すると判定された場合に、変換後の座標値を線分上に存在する他の座標値に補正する補正ステップとを含み、当該他の座標値は、軸成分の値が、当該軸上に所定の間隔で並ぶように予め規定された値の一つとなる座標値であって、かつ、当該軸成分の値と、変換後の座標値のうちの軸成分の値との差が所定値以下となる座標値である。
【0017】
本発明のさらに他の局面に従うと、プログラムは、上記情報処理方法をコンピュータに実行させるためのプログラムである。
【0018】
本発明のさらに他の局面に従うと、記録媒体は、上記情報処理方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読取り可能な記録媒体である。
【発明の効果】
【0019】
本発明により、3次元座標系における座標値の成分の値を予め規定した値の一つに補正できるため、演算処理の負荷を低減することが可能となるといった効果を奏する。
【発明を実施するための最良の形態】
【0020】
本発明に係るCADシステムの一実施の形態について、図1から図15に基づいて説明すると、以下のとおりである。
【0021】
図1に示すとおり、CADシステム(情報処理装置)1は、3次元座標入力装置11と、2次元座標入力装置(入力装置)12と、表示装置13と、記憶装置14と、制御装置15とを備えている。
【0022】
3次元座標入力装置11は、ユーザが3次元座標系における座標値を制御装置15に入力するために用いられる入力デバイスである。具体的には、3次元座標入力装置11は、座標値の各成分(x,y,z)の値に関する情報の入力を受け付け、当該受け付けた情報を制御装置15に送る。また、3次元座標入力装置11は、制御装置15に対して、上記の座標値以外の各種のデータを入力するための装置としても機能する。
【0023】
2次元座標入力装置12は、ユーザが表示装置13における表示画面上の2次元座標系の点を指定するために用いられる入力デバイスである。また、2次元座標入力装置12は、表示装置13に表示されたアイコンをクリックするためのポインティングデバイスとしても機能する。
【0024】
なお、3次元座標系の例としては、モデル座標系、ワールド(グローバル)座標系、ローカル座標系が挙げられる。また、2次元座標系の例としては、スクリーン座標系、デバイス座標系、クライアント座標系が挙げられる。
【0025】
表示装置13は、制御装置15からの指令に基づき、2次元形状の図形や3次元形状の図形等の各種の情報を画面上に表示する。
【0026】
記憶装置14は、3次元座標系で定義された3次元形状の図形に関する形状データ(以下、3Dデータという)を1つ以上予め記憶している。また、記憶装置14は、上記3Dデータとして、上記図形を構成する各面(例えば、上面、底面、側面)が、平面あるいは曲面であるかといった面の種別に関する情報も記憶している。さらに、記憶装置14は、上記3Dデータとして、上記図形を構成する平面の法線ベクトルに関するデータも当該平面のデータと関連付けて記憶している。
【0027】
また、制御装置15による上記3Dデータの読み込み処理により、記憶装置14に記憶された3Dデータが読み出され、制御装置15に送られる。また、記憶装置14には、制御装置15において行われた演算結果が記憶される。なお、記憶装置14は、例えば、ハードディスク装置や、フラッシュメモリで構成される。
【0028】
次に、制御装置15について、図2に基づいて説明する。
制御装置15は、図2に示すとおり、インターフェイス部21と、メモリ22と、制御部23とを備えている。また、制御部23は、3次元座標値算出部31と、判定部(判定手段)32と、補正処理部(補正手段)33と、座標値指定部34とを備えている。さらに、判定部32は、平面判定部(平面判定手段)41と、垂直判定部(垂直判定手段)42と、曲面判定部(曲面判定手段)43と、平行判定部(平行判定手段)44とを備えている。なお、制御部23および制御部23内の各部は機能ブロックであり、これらのブロックにおける処理は、後述するCPUにより実行されるソフトウェアによって実現される。
【0029】
インターフェイス部21は、制御部23から所定の指示を受けた場合、記憶装置14に記憶されている3Dデータを読み出すとともに、当該読み出した3Dデータをメモリ22に一時的に記憶させる。
【0030】
メモリ22は、RAM(Random Access Memory)等の揮発性の半導体メモリであり、制御装置15のCPU(図示せず)が直接データをやり取りする主記憶装置としての役割を果たす。メモリ22には、記憶装置14に記憶された上記3Dデータ等が一時的に記憶される。
【0031】
制御部23は、メモリ22に記憶されている3Dデータを読み出し、当該3Dデータで特定される図形の3次元形状を2次元座標系に投影し、当該3次元形状を2次元形状として表示装置13に表示させる。
【0032】
以下、制御部23の各部の処理について説明する。
3次元座標値算出部31は、2次元座標入力装置12を介して表示装置13に表示された2次元形状上の点の指定を制御部23が受け付けた場合、2次元座標系における座標値を3次元座標系における座標値へと変換する。より詳しくは、3次元座標値算出部31は、メモリ22に記憶された上記3Dデータに基づき、上記指定を受け付けた点の座標値を、上記3次元形状の面上の点の3次元座標系における座標値に変換する。
【0033】
例えば、3次元座標値算出部31は、図3に示す(x1,y1)といった指定を受け付けた点の2次元座標系の座標値を、図4に示す(X1,Y1,Z1)といった3次元座標系の座標値に変換する。なお、図3と図4とにおいては、2次元座標入力装置12によって指定されるカーソルの位置は同じとしている。
【0034】
そして、3次元座標値算出部31は、変換後の座標値についての情報を判定部32に送る。
【0035】
判定部32は、3次元座標値算出部31より上記変換後の座標値の情報を受け取ると、上記3次元座標系の軸(X軸、Y軸、またはZ軸)と平行な線分であって、かつ上記変換後の座標値で特定される点を含む線分が、上記3次元形状の面上に存在するかを上記3Dデータに基づき判定する。
【0036】
補正処理部33は、判定部32によって上記線分が存在すると判定された場合に、上記変換後の座標値を上記線分上に存在する他の座標値に補正する。より詳しくは、補正処理部33は、補正後の座標値(上記他の座標値)に関し、上記軸成分の値(例えば、座標値(X1,Y1,Z1)のうちX1)が、当該軸上(X軸上)に所定の間隔で並ぶように予め規定された値の一つとなり、かつ、当該軸成分の値と、上記変換後の座標値のうちの上記軸成分の値との差が所定値以下となるように補正する。
【0037】
具体的に説明すると以下のとおりである。
判定部32による判定の結果、X軸と平行な線分が存在したとする。また、X軸上において、各値が例えば1の間隔で並ぶように予め規定されているものとする。つまり、1,2,3,…,n−1,n,n+1,…といったように値が並んでいるとする(nは自然数)。また、このとき上記所定値を、0.5とする。
【0038】
この場合において、補正前の座標値が(X,Y,Z)=(7.2,Y1,Z1)であるとすると、X軸の成分の値である「7.2」を補正対象とするとともに、当該値「7.2」を上記並んだ値の一つに補正する。その際、値「7.2」は、上記並んだ値のうち「7」と「8」との間にある。また、値「7.2」と値「7」の差が0.2であり、値「7.2」と値「8」との差が0.8である。したがって、この場合には、差が所定値(0.5)以下となるのは値「7」であるので、値「7.2」を値「7」に補正する。その結果、補正後の値として、(X,Y,Z)=(7,Y1,Z1)が得られる。
【0039】
ここで、上記所定値は、上記所定の間隔を2で割った値とすることが好ましい。このように設定することにより、上記並んだ値のうち、必ず上記差が所定値以下となる値が存在することになる。また、上記並んだ値のうち、上記差が所定値以下となる値が2つ存在した場合には、予め規則を設けておき、例えば、値が小さい方に補正する処理を行えばよい。
【0040】
また、判定部32による判定の結果、2軸(例えば、X軸とY軸)と平行な線分が存在した場合においても、上記と同様に、X座標に関する補正と、Y座標に関する補正とを行えばよい。
【0041】
次に、判定部32が備える、平面判定部41、垂直判定部42、曲面判定部43、およびに平行判定部44ついて説明する。
【0042】
平面判定部41、垂直判定部42、曲面判定部43、およびに平行判定部44は、上記3次元座標系の軸と平行な線分であって、かつ上記変換後の座標値で特定される点を含む線分が、上記3次元形状の面上に存在するかを上記3Dデータに基づき判定するための機能ブロックである。
【0043】
平面判定部41は、上記3Dデータに基づき、上記変換後の座標値で特定される点を含む上記3次元形状の面が平面であるか否かを判定する。ここで、平面であると判定された場合には、上記変換後の座標値で特定される点を含む線分が、上記3次元形状の面上に存在することになる。
【0044】
垂直判定部42は、平面判定部41により平面であると判定された場合、当該平面の法線が上記3次元座標系の軸と垂直か否かを3Dデータに基づき判定する。ここで、垂直であると判定された場合には、上記3次元形状の面(平面)上に存在する線分が、上記3次元座標系の軸と平行であることがわかる。
【0045】
曲面判定部43は、上記3Dデータに基づき、上記変換後の座標値で特定される点を含む上記3次元形状の面が、円柱面であるか否かを判定する。ここで、円柱面であると判定された場合には、平行判定部44は、上記円柱面の中心軸が上記3次元座標系の軸と平行であるか否かを3Dデータに基づき判定する。ここで、平行であると判定された場合には、前記円柱面上に存在する線分が、上記3次元座標系の軸と平行であることがわかる。
【0046】
ところで、補正処理部33によって補正された後の座標値を、ユーザが変更したい場合には、当該変更を受け付ける動作モードにおいて、3次元座標入力装置11を介してユーザが値の入力を行えばよい。当該値の入力を制御装置15が受け付けると、座標値指定部34は、メモリ22に記憶されている上記補正後の座標値を、当該受け付けた値の座標値に変更する。
【0047】
以下、CADシステム1における処理内容を、具体例を挙げることにより、さらに具体的に説明する。
【0048】
なお、以下では、3次元座標入力装置11や2次元座標入力装置12を介したユーザからの指示により、制御装置15が記憶装置14から任意の3次元形状の図形に関する3Dデータを読み出した場合について説明する。また、上記3Dデータで特定される図形の3次元形状を2次元座標系に投影し、当該3次元形状を2次元形状として表示装置13に表示させた後の処理について説明する。さらに、読み出した3Dデータはメモリ22に一時的に記憶されているものとする。
【0049】
また、以下では、説明の便宜上、2次元座標系において指定する2次元形状上の点は、当該2次元形状に対応する3次元座標系における3次元形状の稜線に含まれる点や頂点に対応する点ではないとする。
【0050】
図5に示すとおり、2次元座標入力装置12により、2次元座標系において2次元形状上の任意の点P1を指定する(S1)。ステップS1の後は、3次元座標値算出部31により、ステップS1で指示された点P1の座標値(x,y)を、3次元座標系の座標値(X,Y,Z)に変換するとともに、当該変換後の座標値(X,Y,Z)を一時的にメモリ22に記憶させる(S2)。なお、以下では、座標値(X,Y,Z)で特定される3次元形状上の点をP2とする。
【0051】
ステップS2の後は、平面判定部41により、点P2が存在する3次元形状における面の種別が記憶装置14から取得される(S3)。ステップS3の後は、取得した面の種別に基づいて、点P2が存在する3次元形状における面が平面か否かが、平面判定部41により判断される(S4)。
【0052】
ステップS4において平面であると判定された場合には、図6に示すステップS5に進む。一方、ステップS4において平面ではないと判定された場合には、取得した面の種別に基づいて、点P2が存在する3次元形状における面が円柱面か否かが、曲面判定部43により判断される(S20)。
【0053】
ステップS20において円柱面であると判定された場合には、図7に示すステップS21に進む。一方、ステップS20において円柱面ではないと判定された場合には、ステップS19に進む。
【0054】
ここで、ステップS5に進んだ後の処理の流れを、図6に基づいて説明する。
まず、垂直判定部42は、上記平面の法線ベクトルをメモリ22から読み出す(S5)。ステップS5の後は、垂直判定部42は、読み出した法線ベクトルの長さを1に正規化した単位ベクトルVu=(Xu,Yu,Zu)を生成する(S6)。
【0055】
ステップS6の後は、垂直判定部42は、S6において生成した単位ベクトルVuと、3次元座標系においてX軸に平行な単位ベクトルVx=(1,0,0)との内積の絶対値|Vu・Vx|を計算する(S7)。ステップS7の後は、垂直判定部42により、上記絶対値が、0に等しいか、または整数部が0であってかつ少数第1位から少数第m位(mは予め定めた自然数)までの値が全て0であるような0に十分近い値(例えば、0.00001)であるか否かが判定される(S8)。
【0056】
ステップS8において上記絶対値が0かあるいは0に十分近い値であると判定された場合には、補正処理部33は、上記点P2の座標値(X,Y,Z)におけるX軸成分の値について四捨五入(少数第一位が4以下なら切り捨て、少数第一位が5以上なら切り上げる処理)を行うことにより、当該X軸成分の値を整数とする(S9)。そして、ステップS9の後は、ステップS10に進む。一方、ステップS8において上記絶対値が0かあるいは0に十分近い値ではないと判定された場合には、ステップS10に進む。
【0057】
ステップS10においては、垂直判定部42は、上記単位ベクトルVuと、3次元座標系においてY軸に平行な単位ベクトルVy=(0,1,0)との内積の絶対値|Vu・Vy|を計算する。そして、ステップS10の後は、垂直判定部42により、ステップS8と同様に、上記絶対値が0に等しいかあるいは0に十分近い値であるか否かが判定される(S11)。
【0058】
ステップS11において上記絶対値が0かあるいは0に十分近い値であると判定された場合には、補正処理部33は、上記点P2の座標値(X,Y,Z)におけるY軸成分の値について四捨五入を行うことにより、当該Y軸成分の値を整数とする(S12)。そして、ステップS12の後は、ステップS13に進む。一方、ステップS11において上記絶対値が0かあるいは0に十分近い値ではないと判定された場合には、ステップS13に進む。
【0059】
ステップS13においては、垂直判定部42は、上記単位ベクトルVuと、3次元座標系においてZ軸に平行な単位ベクトルVz=(0,0,1)との内積の絶対値|Vu・Vz|を計算する。そして、ステップS13の後は、垂直判定部42により、ステップS8と同様に、上記絶対値が0に等しいかあるいは0に十分近い値であるか否かが判定される(S14)。
【0060】
ステップS14において上記絶対値が0かあるいは0に十分近い値であると判定された場合には、補正処理部33は、上記点P2の座標値(X,Y,Z)におけるZ軸成分の値について四捨五入を行い、当該Z軸成分の値を整数とする(S15)。そして、ステップS15の後は、ステップS16に進む。一方、ステップS13において上記絶対値が0かあるいは0に十分近い値ではないと判定された場合には、ステップS16に進む。
【0061】
ここで、図5に戻り、ステップS16においては、各軸成分に関し補正処理を行うことにより得られた座標値で特定される点が上記平面内にあるか否かが、上記3Dデータに基づき判定部32により判定される。
【0062】
ステップS16において上記平面内にあると判断された場合には、制御装置15が、例えば図8に示すとおりの補正後の座標値を表示装置13に表示させる(S17)。そして、ステップS17の後、一連の処理を終了する。ここで、同図においては、Y軸成分の値が一例として整数となっていることから、上記点P2の座標値(X,Y,Z)におけるY軸成分の値について、四捨五入する補正が行われたことをユーザが容易に判別できる。
【0063】
なお、上記補正後の座標値で問題ないとユーザが判断した場合、同図に示す決定ボタンを2次元座標入力装置12を用いて選択することにより、補正後の座標値が確定する。そして、当該確定した座標値のデータは、制御装置15により、上記3Dデータの一部として、記憶装置14に記憶される。
【0064】
一方、ステップS16において上記平面内にないと判断された場合には、制御装置15は、ステップS2において一時的にメモリ22に記憶させていた、補正前の座標値(X,Y,Z)をメモリ22から読み出す(S18)。そして、ステップS18の後、制御装置15が補正前の座標値(X,Y,Z)を表示装置13に表示させる(S19)。そして、ステップS19の後、一連の処理を終了する。
【0065】
次に、ステップS20において円柱面であると判定された場合について、図7に基づき説明する。
【0066】
まず、平行判定部44は、円柱面の中心軸の方向ベクトルをメモリ22から読み出す(S21)。ステップS21の後は、平行判定部44は、読み出した方向ベクトルの長さを1に正規化した単位ベクトルVu′=(Xu′,Yu′,Zu′)を生成する(S22)。
【0067】
ステップS22の後は、平行判定部44は、ステップS22において生成した単位ベクトルVu′と、3次元座標系においてX軸に平行な単位ベクトルVx=(1,0,0)との内積の絶対値|Vu′・Vx|を計算する(S23)。ステップS23の後は、平行判定部44により、上記絶対値が、1に等しいか、または0.999999等のように1に十分近い値であるか否かが判定される(S24)。
【0068】
ステップS24において上記絶対値が1かあるいは1に十分近い値であると判定された場合には、補正処理部33は、上記点P2の座標値(X,Y,Z)におけるX軸成分の値について四捨五入を行い、当該X軸成分の値を整数とする(S25)。そして、ステップS25の後は、図5に示すステップS16に進む。
【0069】
一方、ステップS24において上記絶対値が1かあるいは1に十分近い値ではないと判定された場合には、平行判定部44は、ステップS22において生成した単位ベクトルVu′と、3次元座標系においてY軸に平行な単位ベクトルVy=(0,1,0)との内積の絶対値|Vu′・Vy|を計算する(S26)。ステップS26の後は、平行判定部44により、上記絶対値が、1に等しいか、または0.999999等のように1に十分近い値であるか否かが判定される(S27)。
【0070】
ステップS27において上記絶対値が1かあるいは1に十分近い値であると判定された場合には、補正処理部33は、上記点P2の座標値(X,Y,Z)におけるY軸成分の値について四捨五入を行い、当該Y軸成分の値を整数とする(S28)。そして、ステップS28の後は、図5に示すステップS16に進む。
【0071】
一方、ステップS27において上記絶対値が1かあるいは1に十分近い値ではないと判定された場合には、平行判定部44は、ステップS22において生成した単位ベクトルVu′と、3次元座標系においてZ軸に平行な単位ベクトルVz=(0,0,1)との内積の絶対値|Vu′・Vz|を計算する(S29)。ステップS29の後は、平行判定部44により、上記絶対値が、1に等しいか、または0.999999等のように1に十分近い値であるか否かが判定される(S30)。
【0072】
ステップS30において上記絶対値が1かあるいは1に十分近い値であると判定された場合には、補正処理部33は、上記点P2の座標値(X,Y,Z)におけるZ軸成分の値について四捨五入を行い、当該Z軸成分の値を整数とする(S31)。そして、ステップS31の後は、図5に示すステップS16に進む。一方、ステップS30において上記絶対値が1かあるいは1に十分近い値ではないと判定された場合には、補正を行うことなく、図5に示すステップS16に進む。
【0073】
以下では、上述した一連の処理により、座標値(X,Y,Z)が具体的にどのように補正されるのかを、図9から図14に基づいて説明する。
【0074】
まず、図5のステップS4において平面であると判定された場合に、図6に示すステップS5以下の処理により、座標値(X,Y,Z)が具体的にどのように補正されるのかを、図9から図12に基づき説明する。
【0075】
図9に示すとおり、3次元座標系におけるX軸とY軸とから構成されるXY平面に平行な平面M1上に、上述した点P2が存在している場合を考える。この場合、点P2が存在する平面M1の法線ベクトルの長さを1に正規化した単位ベクトルVuは、(0,0,1)となる。したがって、単位ベクトルVuと、X軸に平行な単位ベクトルVxとの内積の絶対値、Y軸に平行な単位ベクトルVyとの内積の絶対値、およびZ軸に平行な単位ベクトルVzとの内積の絶対値は、それぞれ以下のとおりになる。
【0076】
|Vu・Vx|=|(0,0,1)・(1,0,0)|=0
|Vu・Vy|=|(0,0,1)・(0,1,0)|=0
|Vu・Vz|=|(0,0,1)・(0,0,1)|=1
上記計算の結果、VuとVxとの内積の絶対値と、VuとVyとの内積の絶対値とが0となっていることがわかる。このため、補正処理部33により、点P2の座標値(X,Y,Z)のX成分とY成分との値について四捨五入を行い、当該X軸成分の値とY軸成分の値とを整数値化する。
【0077】
このような補正により、図10に示すとおり、上記点P2が、XY平面に平行な面上M1において間隔を1として形成されたグリッドにおけるグリッド交点のうち、当該点P2に最も近い交点(○で示された点)に移動したのと同様な効果を得ることができる。なお、同図においては、Z軸上に上記グリッド交点が位置するものとする。
【0078】
次に、図11に示すとおり、3次元座標系における各軸のうちY軸のみに平行な平面M2上に、上述した点P2が存在している場合を考える。また、当該点P2が存在する平面M2の法線ベクトルの長さを1に正規化した単位ベクトルVuが、(0.8,0,0.6)であるとする。
【0079】
この場合、単位ベクトルVuと、X軸に平行な単位ベクトルVxとの内積の絶対値、Y軸に平行な単位ベクトルVyとの内積の絶対値、およびZ軸に平行な単位ベクトルVzとの内積の絶対値は、それぞれ以下のとおりになる。
【0080】
|Vu・Vx|=|(0.8,0,0.6)・(1,0,0)|=0.8
|Vu・Vy|=|(0.8,0,0.6)・(0,1,0)|=0
|Vu・Vz|=|(0.8,0,0.6)・(0,0,1)|=0.6
上記計算の結果、VuとVyとの内積の絶対値のみが0となっていることがわかる。このため、補正処理部33により、点P2の座標値(X,Y,Z)のY成分との値について四捨五入を行い、当該Y軸成分の値を整数値化する。
【0081】
このような補正により、図12に示すとおり、上記点P2が、上述したグリッドを構成する線のうちY軸と垂直な線の上の点であって、かつ当該点P2に最も近い点(○で示された点)に移動したのと同様な効果を得ることができる。なお、同図においても、Z軸上に上記グリッド交点が位置するものとする。
【0082】
次に、ステップS20において円柱面であると判定された場合に、図7に示すステップS21以下の処理により、座標値(X,Y,Z)が具体的にどのように補正されるのかを、図13および図14に基づき説明する。
【0083】
図13に示すとおり、3次元座標系において中心軸がZ軸と平行となる円柱面M4上に、上述した点P2が存在している場合を考える。この場合、上記円柱面M4の中心軸の方向ベクトルの長さを1に正規化した単位ベクトルVu′は、(0,0,1)となる。したがって、単位ベクトルVu′と、X軸に平行な単位ベクトルVxとの内積の絶対値、Y軸に平行な単位ベクトルVyとの内積の絶対値、およびZ軸に平行な単位ベクトルVzとの内積の絶対値は、それぞれ以下のとおりになる。
【0084】
|Vu′・Vx|=|(0,0,1)・(1,0,0)|=0
|Vu′・Vy|=|(0,0,1)・(0,1,0)|=0
|Vu′・Vz|=|(0,0,1)・(0,0,1)|=1
上記計算の結果、VuとVzとの内積の絶対値が1となっていることがわかる。このため、補正処理部33により、点P2の座標値(X,Y,Z)のZ成分の値について四捨五入を行い、当該Z軸成分の値を整数値化する。
【0085】
ここで、図14に示すとおり、円柱面M4上に設けられるとともに、1の間隔で円柱面M4の中心軸と平行な座標軸(すなわちZ軸)に垂直な平面(すなわちXY平面)と平行に配されたグリッド線を有するグリッドを考える。この場合、上記補正により、同図に示すとおり、上記点P2が、上述したグリッド線上の点であって、かつ当該点P2に最も近い点(○で示す点)に移動したのと同様な効果を得ることができる。なお、同図においては、XY平面上にもグリッド線が位置するものとする。
【0086】
以上のように、実施例を示しつつ本実施の形態に係るCADシステム1を説明したが、上述した構成に限定されるものではない。
【0087】
上記においては、各軸上(例えばX軸上)に所定の間隔で並ぶように予め規定された値(軸成分の値)として、1,2,3,…,n−1,n,n+1,…といったような1の間隔で並んだ例を挙げた(nは自然数)。しかしながら、これに限定されず、例えば10や100といった2桁以上の間隔でもよいし、あるいは0.5といった小数点以下の値で規定される間隔でもよい。要は、CADシステム1において利用可能な間隔であって、ユーザ自身が選択した間隔であればよい。
【0088】
また、上記では、四捨五入を行う例を挙げたが、これに限定されるものではない。あくまでも、補正処理部33による補正の対象となる軸成分の値に関し、補正後の座標値に関する軸成分の値が、上記規定された値であって、かつ変換後の座標値(つまり、補正前の座標値)のうちの当該軸成分の値との差が所定値以下の値となる補正を行う構成であればよい。
【0089】
なお、上記間隔として10を選択した場合には、上述した四捨五入の処理の代わりに、例えば以下の処理を行えばよい。すなわち、一の位について4以下なら、十の位を補正せずに一の位および小数点以下の位を0とする補正を行い、一の位について5以上なら、十の位を1つ大きな値に補正するとともに一の位および小数点以下の位を0とする補正を行えばよい。なお、この場合、上記所定値としては例えば5となる。
【0090】
また、上記間隔として0.5を選択した場合には、上述した四捨五入の処理の代わりに、以下の処理を行えばよい。すなわち、補正の対象となる軸成分の値に関し、補正後の座標値に関する軸成分の値が、上記規定された値(つまり、0.5,1.0,1.5,2.0,2.5,3.0,…,)の何れかの値であって、かつ変換後の座標値のうちの当該軸成分の値との差が所定値(例えば0.25)以下の値になる補正を行えばよい。
【0091】
また、上記においては、3Dデータとして、面の種別に関する情報と、平面の法線ベクトルに関するデータとを予め記憶している構成を例に挙げて説明したが、これに限定されるものではない。例えば、上記種別を記憶させずに、制御装置15が上記3Dデータから種別を判別する構成としてもよい。また、上記法線ベクトルを記憶させずに、演算装置15が上記3Dデータから法線ベクトルを算出する構成としてもよい。
【0092】
以上のような構成をCADシステム1が有するため、補正後の座標値で表される点を3次元形状の面上に存在させつつも、3次元座標系における座標値の成分の値を予め規定された値の一つ(例えば小数点以下の桁数が予め決められた値のような、所定の桁数で表現される値)に補正することができる。その結果、CADシステム1では、上記の補正を行わない構成の装置に比べ、演算処理の負荷の低減を図ることが可能となる。
【0093】
また、小数点以下の桁数が少ない値に補正できるため、この値を表示装置13に表示させることにより、補正を行わない場合比べ、ユーザは補正が行われた軸成分の値を即座に読み取ることができる。
【0094】
さらに、上記のようにユーザが即座に読み取ることができる軸成分の値については、上述した座標値指定部34により値を多少変更しても、変更後の座標値で特定される点が3次元座標系における3次元形状の同一面から離れる可能性が低い。一方で、小数部が例えば20桁もあるような軸成分の値は、少しでも変更すれば上記同一面から離れてしまうことがわかる。
【0095】
したがって、上記補正処理後の座標値の各軸成分値をユーザが確認することにより、軸成分の値を変更すると変更後の座標値で特定される点が上記同一面から離れるか否かを、ユーザは容易に判断することができる。
【0096】
また、工業製品の部品設計においては、部品が設計図(3Dデータ)通りに製作されているか否かを検査工程で検査する。この際に、3Dデータに含まれる各数値の桁数が多い場合、このままの数値を用いることは検査工程の効率化の観点から好ましくない。しかしながら、本実施の形態で示した補正を行うことにより、検査工程の効率化を図ることもできる。
【0097】
また、上記の実施の形態においては、3次元座標系の軸と平行な線分であって、かつ上記変換後の座標値で特定される点を含む線分が、上記3次元形状の面上に存在するかを、判定部32が上記3Dデータに基づき判定する構成である。
【0098】
この構成において、上記線分は、少なくとも、上記所定の間隔(上述した予め規定された値に関する間隔(例えば、1、10、または0.5等))で示される長さの線分であることが好ましい。以下、理由を示す。
【0099】
補正の対象となる軸成分に関し、軸成分の値が、当該軸上に所定の間隔で並ぶように予め規定された値の一つとなる座標値であって、かつ、当該軸成分の値と、前記変換後の座標値のうちの前記軸成分の値との差が所定値以下となる座標値で特定される点を特定点とする。このように特定点を定義すると、上記のように線分を少なくとも上記所定の間隔で示される長さとする構成により、上記特定点が上記線分上に必ず存在することになる。その結果、線分が存在する場合には、必ず、変換後の座標値を上記特定点の座標値に補正可能となる。それゆえ、上記線分の長さを、少なくとも、上記所定の間隔で示される長さとすることが好ましい。
【0100】
ここで、図15を参照して、本実施の形態に係るCADシステム1の具体的構成の一態様について説明する。同図は、CADシステム1として機能するコンピュータシステム100のハードウェア構成を表わすブロック図である。
【0101】
コンピュータシステム100は、主たる構成要素として、プログラムを実行するCPU110と、コンピュータシステム100の使用者による指示の入力を受けるマウス120およびキーボード130と、CPU110によるプログラムの実行により生成されたデータ、又はマウス120若しくはキーボード130を介して入力されたデータを揮発的に格納するRAM140と、データを不揮発的に格納するハードディスク150と、CD−ROM(Compact Disk-Read Only Memory)駆動装置160と、モニタ170と、通信IF(Interface)180とを含む。各構成要素は、相互にデータバスによって接続されている。CD−ROM駆動装置160には、CD−ROM161が装着される。
【0102】
なお、CADシステム1における3次元座標入力装置11がキーボード130に該当し、2次元座標入力装置12がマウス120に該当し、表示装置13がモニタ170に該当し、記憶装置14がハードディスク150に該当し、メモリ22がRAM140に該当する。
【0103】
コンピュータシステム100における処理は、各ハードウェアおよびCPU110により実行されるソフトウェアによって実現される。このようなソフトウェアは、ハードディスク150に予め記憶されている場合がある。また、ソフトウェアは、CD−ROM161その他の記憶媒体に格納されて、プログラムプロダクトとして流通している場合もある。あるいは、ソフトウェアは、いわゆるインターネットに接続されている情報提供事業者によってダウンロード可能なプログラムプロダクトとして提供される場合もある。このようなソフトウェアは、CD−ROM駆動装置160その他の読取装置によりその記憶媒体から読み取られて、あるいは、通信IF180を介してダウンロードされた後、ハードディスク150に一旦格納される。そのソフトウェアは、CPU110によってハードディスク150から読み出され、RAM140に実行可能なプログラムの形式で格納される。CPU110は、そのプログラムを実行する。
【0104】
同図に示されるコンピュータシステム100を構成する各構成要素は、一般的なものである。したがって、本発明の本質的な部分は、RAM140、ハードディスク150、CD−ROM161その他の記憶媒体に格納されたソフトウェア、あるいはネットワークを介してダウンロード可能なソフトウェアであるともいえる。なお、コンピュータシステム100の各ハードウェアの動作は周知であるので、詳細な説明は繰り返さない。
【0105】
なお、記録媒体としては、CD−ROM、FD(Flexible Disk)、ハードディスクに限られず、磁気テープ、カセットテープ、光ディスク(MO(Magnetic Optical Disc)/MD(Mini Disc)/DVD(Digital Versatile Disc))、IC(Integrated Circuit)カード(メモリカードを含む)、光カード、マスクROM、EPROM(Electronically Programmable Read-Only Memory)、EEPROM(Electronically Erasable Programmable Read-Only Memory)、フラッシュROMなどの半導体メモリ等の固定的にプログラムを担持する媒体でもよい。
【0106】
ここでいうプログラムとは、CPUにより直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【0107】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【0108】
【図1】本実施の形態に係るCADシステムの概略構成を示した図である。
【図2】上記CADシステムにおける制御装置の概略構成を示した図である。
【図3】上記CADシステムにおける2次元座標入力装置を用いて、2次元座標系の点を指定している状態を示した図である。
【図4】図3において指定した点を3次元座標系で特定した状態を示した図である。
【図5】上記CADシステムで実行される処理の流れの一部を示したフローチャートである。
【図6】上記CADシステムで実行される処理の流れの他の一部を示したフローチャートである。
【図7】上記CADシステムで実行される処理の流れのさらに他の一部を示したフローチャートである。
【図8】上記制御装置で補正処理を行った後の3次元座標系における座標値を、表示装置で示した図である。
【図9】上記制御装置によって変換された後の座標値により特定される点が存在する、X軸とY軸とに平行な平面を示した図である。
【図10】図9における点と、当該点の座標値を補正して得られる座標値により特定される補正後の点とを、図9と同じ平面に示した図である。
【図11】上記制御装置によって変換された後の座標値により特定される点が存在する、Y軸にのみに平面を示した図である。
【図12】図11における点と、当該点の座標値を補正して得られる座標値により特定される補正後の点とを、図11と同じ平面に示した図である。
【図13】上記制御装置によって変換された後の座標値により特定される点が存在する、中心軸がZ軸に平行となる円柱面を示した図である。
【図14】図13における点と、当該点の座標値を補正して得られる座標値により特定される補正後の点とを、図13と同じ側面に示した図である。
【図15】上記CADシステムの具体的構成の一態様を示した図である。
【符号の説明】
【0109】
1 CADシステム、11 3次元座標入力装置、12 2次元座標入力装置、13 表示装置、14 記憶装置、15 制御装置、22 記憶部、23 制御部、31 3次元座標値算出部、32 判定部、33 補正処理部、41 平面判定部、42 垂直判定部、43 曲面判定部、44 平行判定部。
【技術分野】
【0001】
本発明は、3次元座標系で示される図形処理に対するマンマシンインターフェースを提供可能な情報処理装置、情報処理方法、プログラム、およびプログラムを記録したコンピュータ読取り可能な記録媒体に関する。
【背景技術】
【0002】
従来より、CAD(Computer Aided Design)システム等の作図機能を有するシステムが知られている。
【0003】
特許文献1には、このようなシステムにおいて、グリッドと呼ばれる等間隔に直行する基準線(以下、グリッド線という)からなる格子を、2次元座標系において表示装置に表示させることが開示されている。また、同文献には、マウス等のポインティングデバイスによってユーザから指定された画面上の点の2次元座標系の座標値を、当該点に最も近い、グリッド線同士の交点(以下、グリッド交点という)の座標値に補正する技術が開示されている。
【0004】
このような補正により、ユーザは、所望とする大きさや形状を有する2次元座標系の図形の入力を容易に行うことができる。さらに、上記グリッド交点における座標値の各成分の値が、小数点以下の桁数が少ない値となるようにグリッドを設定することにより、システムにおける演算処理の負荷を減らすことが可能となる。
【0005】
また、特許文献2に示すとおり、3次元座標系で定義された3次元形状を2次元座標系に投影することにより、3次元形状を2次元形状として表示させることも行われている。同文献には、2次元形状上の点の指定を受け付けた場合、3次元形状の形状データに基づき、上記指定を受け付けた点の座標値を、3次元形状の面上の点の3次元座標系における座標値に変換することも開示されている。
【0006】
また、非特許文献1には、2次元座標系であるスクリーン座標系におけるデータを、3次元座標系であるモデル座標系におけるデータに変換する手法が開示されている。
【特許文献1】特開平9−16803号公報
【特許文献2】特開平7−73344号公報
【非特許文献1】山口富士夫著 「コンピュータディスプレイによる図形処理工学」 (日刊工業新聞社)、4章4.4 3次元図形表示
【発明の開示】
【発明が解決しようとする課題】
【0007】
ここで、上記グリッドが存在する面においてユーザから2次元形状上の点の指定を受け付けた後に、特許文献2の技術を用いて、当該指定を受け付けた点の座標値を3次元形状の面上の点の3次元座標系における座標値に変換した場合を考える。
【0008】
この場合、上記3次元形状の面は3次元座標系で定義された面であるため、当該3次元形状の面は、2次元座標系で定義されたグリッドが存在する面と必ずしも平行とは限らない。
【0009】
それゆえ、このように面同士が平行でない場合、上述した座標値の変換後に特許文献1に示した補正を行うと、補正後の座標値で表される点が上記3次元形状の面上に存在しなくなる。したがって、特許文献1に示す補正を行うことができず、特許文献2に示した変換後の座標値そのものを利用するしかなかった。
【0010】
このため、3次元座標系における座標値の成分の値を、小数点以下の桁数が少ない値となるように設定することができなかった。その結果、3次元座標を用いるシステムでは、3次元座標系の座標値の補正によって演算処理の負荷の低減を図ることが困難であった。
【0011】
本願発明は、上記問題点に鑑みなされたものであって、その目的は、3次元座標系における座標値の成分の値を予め規定した値のうちの一つに補正することにより、演算処理の負荷を低減することが可能な情報処理装置、情報処理方法、プログラム、およびプログラムを記録したコンピュータ読取り可能な記録媒体を提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明のある局面に従うと、情報処理装置は、3次元座標系で定義された3次元形状を2次元座標系に投影することにより3次元形状を2次元形状として表示装置に表示させるとともに、入力装置を介して2次元形状上の点の指定を受け付けた場合、3次元形状の形状データに基づき、指定を受け付けた点の座標値を、3次元形状の面上の点の3次元座標系における座標値に変換する情報処理装置であって、3次元座標系の軸と平行な線分であって、かつ変換後の座標値で特定される点を含む線分が、3次元形状の面上に存在するかを形状データに基づき判定する判定手段と、判定手段により線分が存在すると判定された場合に、変換後の座標値を線分上に存在する他の座標値に補正する補正手段を備え、他の座標値は、軸成分の値が、当該軸上に所定の間隔で並ぶように予め規定された値の一つとなる座標値であって、かつ、当該軸成分の値と、変換後の座標値のうちの軸成分の値との差が所定値以下となる座標値である。
【0013】
また、線分は、少なくとも上記の所定の間隔で示される長さの線分であることが好ましい。
【0014】
また、判定手段は、形状データに基づき、変換後の座標値で特定される点を含む、3次元形状の面が平面であるか否かを判定する平面判定手段と、平面であると判定された場合、平面の法線が3次元座標系の軸と垂直か否かを形状データに基づき判定する垂直判定手段とを備える構成であることが好ましい。
【0015】
また、判定手段は、形状データに基づき、変換後の座標値で特定される点を含む、3次元形状の面が、円柱面であるか否かを判定する曲面判定手段と、円柱面であると判定された場合、前記円柱面の中心軸が3次元座標系の軸と平行であるか否かを形状データに基づき判定する平行判定手段とを備える構成であることが好ましい。
【0016】
また、情報処理装置は、表示装置と入力装置とを備える構成とすることが好ましい。
本発明の他の局面に従うと、情報処理方法は、3次元座標系で定義された3次元形状を2次元座標系に投影することにより3次元形状を2次元形状として表示装置に表示させる表示ステップと、入力装置を介して2次元形状上の点の指定を受け付けた場合、3次元形状の形状データに基づき、指定を受け付けた点の座標値を、3次元形状の面上の点の3次元座標系における座標値に変換する変換ステップと、3次元座標系の軸と平行な線分であって、かつ変換後の座標値で特定される点を含む線分が、3次元形状の面上に存在するかを形状データに基づき判定する判定ステップと、判定ステップにより線分が存在すると判定された場合に、変換後の座標値を線分上に存在する他の座標値に補正する補正ステップとを含み、当該他の座標値は、軸成分の値が、当該軸上に所定の間隔で並ぶように予め規定された値の一つとなる座標値であって、かつ、当該軸成分の値と、変換後の座標値のうちの軸成分の値との差が所定値以下となる座標値である。
【0017】
本発明のさらに他の局面に従うと、プログラムは、上記情報処理方法をコンピュータに実行させるためのプログラムである。
【0018】
本発明のさらに他の局面に従うと、記録媒体は、上記情報処理方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読取り可能な記録媒体である。
【発明の効果】
【0019】
本発明により、3次元座標系における座標値の成分の値を予め規定した値の一つに補正できるため、演算処理の負荷を低減することが可能となるといった効果を奏する。
【発明を実施するための最良の形態】
【0020】
本発明に係るCADシステムの一実施の形態について、図1から図15に基づいて説明すると、以下のとおりである。
【0021】
図1に示すとおり、CADシステム(情報処理装置)1は、3次元座標入力装置11と、2次元座標入力装置(入力装置)12と、表示装置13と、記憶装置14と、制御装置15とを備えている。
【0022】
3次元座標入力装置11は、ユーザが3次元座標系における座標値を制御装置15に入力するために用いられる入力デバイスである。具体的には、3次元座標入力装置11は、座標値の各成分(x,y,z)の値に関する情報の入力を受け付け、当該受け付けた情報を制御装置15に送る。また、3次元座標入力装置11は、制御装置15に対して、上記の座標値以外の各種のデータを入力するための装置としても機能する。
【0023】
2次元座標入力装置12は、ユーザが表示装置13における表示画面上の2次元座標系の点を指定するために用いられる入力デバイスである。また、2次元座標入力装置12は、表示装置13に表示されたアイコンをクリックするためのポインティングデバイスとしても機能する。
【0024】
なお、3次元座標系の例としては、モデル座標系、ワールド(グローバル)座標系、ローカル座標系が挙げられる。また、2次元座標系の例としては、スクリーン座標系、デバイス座標系、クライアント座標系が挙げられる。
【0025】
表示装置13は、制御装置15からの指令に基づき、2次元形状の図形や3次元形状の図形等の各種の情報を画面上に表示する。
【0026】
記憶装置14は、3次元座標系で定義された3次元形状の図形に関する形状データ(以下、3Dデータという)を1つ以上予め記憶している。また、記憶装置14は、上記3Dデータとして、上記図形を構成する各面(例えば、上面、底面、側面)が、平面あるいは曲面であるかといった面の種別に関する情報も記憶している。さらに、記憶装置14は、上記3Dデータとして、上記図形を構成する平面の法線ベクトルに関するデータも当該平面のデータと関連付けて記憶している。
【0027】
また、制御装置15による上記3Dデータの読み込み処理により、記憶装置14に記憶された3Dデータが読み出され、制御装置15に送られる。また、記憶装置14には、制御装置15において行われた演算結果が記憶される。なお、記憶装置14は、例えば、ハードディスク装置や、フラッシュメモリで構成される。
【0028】
次に、制御装置15について、図2に基づいて説明する。
制御装置15は、図2に示すとおり、インターフェイス部21と、メモリ22と、制御部23とを備えている。また、制御部23は、3次元座標値算出部31と、判定部(判定手段)32と、補正処理部(補正手段)33と、座標値指定部34とを備えている。さらに、判定部32は、平面判定部(平面判定手段)41と、垂直判定部(垂直判定手段)42と、曲面判定部(曲面判定手段)43と、平行判定部(平行判定手段)44とを備えている。なお、制御部23および制御部23内の各部は機能ブロックであり、これらのブロックにおける処理は、後述するCPUにより実行されるソフトウェアによって実現される。
【0029】
インターフェイス部21は、制御部23から所定の指示を受けた場合、記憶装置14に記憶されている3Dデータを読み出すとともに、当該読み出した3Dデータをメモリ22に一時的に記憶させる。
【0030】
メモリ22は、RAM(Random Access Memory)等の揮発性の半導体メモリであり、制御装置15のCPU(図示せず)が直接データをやり取りする主記憶装置としての役割を果たす。メモリ22には、記憶装置14に記憶された上記3Dデータ等が一時的に記憶される。
【0031】
制御部23は、メモリ22に記憶されている3Dデータを読み出し、当該3Dデータで特定される図形の3次元形状を2次元座標系に投影し、当該3次元形状を2次元形状として表示装置13に表示させる。
【0032】
以下、制御部23の各部の処理について説明する。
3次元座標値算出部31は、2次元座標入力装置12を介して表示装置13に表示された2次元形状上の点の指定を制御部23が受け付けた場合、2次元座標系における座標値を3次元座標系における座標値へと変換する。より詳しくは、3次元座標値算出部31は、メモリ22に記憶された上記3Dデータに基づき、上記指定を受け付けた点の座標値を、上記3次元形状の面上の点の3次元座標系における座標値に変換する。
【0033】
例えば、3次元座標値算出部31は、図3に示す(x1,y1)といった指定を受け付けた点の2次元座標系の座標値を、図4に示す(X1,Y1,Z1)といった3次元座標系の座標値に変換する。なお、図3と図4とにおいては、2次元座標入力装置12によって指定されるカーソルの位置は同じとしている。
【0034】
そして、3次元座標値算出部31は、変換後の座標値についての情報を判定部32に送る。
【0035】
判定部32は、3次元座標値算出部31より上記変換後の座標値の情報を受け取ると、上記3次元座標系の軸(X軸、Y軸、またはZ軸)と平行な線分であって、かつ上記変換後の座標値で特定される点を含む線分が、上記3次元形状の面上に存在するかを上記3Dデータに基づき判定する。
【0036】
補正処理部33は、判定部32によって上記線分が存在すると判定された場合に、上記変換後の座標値を上記線分上に存在する他の座標値に補正する。より詳しくは、補正処理部33は、補正後の座標値(上記他の座標値)に関し、上記軸成分の値(例えば、座標値(X1,Y1,Z1)のうちX1)が、当該軸上(X軸上)に所定の間隔で並ぶように予め規定された値の一つとなり、かつ、当該軸成分の値と、上記変換後の座標値のうちの上記軸成分の値との差が所定値以下となるように補正する。
【0037】
具体的に説明すると以下のとおりである。
判定部32による判定の結果、X軸と平行な線分が存在したとする。また、X軸上において、各値が例えば1の間隔で並ぶように予め規定されているものとする。つまり、1,2,3,…,n−1,n,n+1,…といったように値が並んでいるとする(nは自然数)。また、このとき上記所定値を、0.5とする。
【0038】
この場合において、補正前の座標値が(X,Y,Z)=(7.2,Y1,Z1)であるとすると、X軸の成分の値である「7.2」を補正対象とするとともに、当該値「7.2」を上記並んだ値の一つに補正する。その際、値「7.2」は、上記並んだ値のうち「7」と「8」との間にある。また、値「7.2」と値「7」の差が0.2であり、値「7.2」と値「8」との差が0.8である。したがって、この場合には、差が所定値(0.5)以下となるのは値「7」であるので、値「7.2」を値「7」に補正する。その結果、補正後の値として、(X,Y,Z)=(7,Y1,Z1)が得られる。
【0039】
ここで、上記所定値は、上記所定の間隔を2で割った値とすることが好ましい。このように設定することにより、上記並んだ値のうち、必ず上記差が所定値以下となる値が存在することになる。また、上記並んだ値のうち、上記差が所定値以下となる値が2つ存在した場合には、予め規則を設けておき、例えば、値が小さい方に補正する処理を行えばよい。
【0040】
また、判定部32による判定の結果、2軸(例えば、X軸とY軸)と平行な線分が存在した場合においても、上記と同様に、X座標に関する補正と、Y座標に関する補正とを行えばよい。
【0041】
次に、判定部32が備える、平面判定部41、垂直判定部42、曲面判定部43、およびに平行判定部44ついて説明する。
【0042】
平面判定部41、垂直判定部42、曲面判定部43、およびに平行判定部44は、上記3次元座標系の軸と平行な線分であって、かつ上記変換後の座標値で特定される点を含む線分が、上記3次元形状の面上に存在するかを上記3Dデータに基づき判定するための機能ブロックである。
【0043】
平面判定部41は、上記3Dデータに基づき、上記変換後の座標値で特定される点を含む上記3次元形状の面が平面であるか否かを判定する。ここで、平面であると判定された場合には、上記変換後の座標値で特定される点を含む線分が、上記3次元形状の面上に存在することになる。
【0044】
垂直判定部42は、平面判定部41により平面であると判定された場合、当該平面の法線が上記3次元座標系の軸と垂直か否かを3Dデータに基づき判定する。ここで、垂直であると判定された場合には、上記3次元形状の面(平面)上に存在する線分が、上記3次元座標系の軸と平行であることがわかる。
【0045】
曲面判定部43は、上記3Dデータに基づき、上記変換後の座標値で特定される点を含む上記3次元形状の面が、円柱面であるか否かを判定する。ここで、円柱面であると判定された場合には、平行判定部44は、上記円柱面の中心軸が上記3次元座標系の軸と平行であるか否かを3Dデータに基づき判定する。ここで、平行であると判定された場合には、前記円柱面上に存在する線分が、上記3次元座標系の軸と平行であることがわかる。
【0046】
ところで、補正処理部33によって補正された後の座標値を、ユーザが変更したい場合には、当該変更を受け付ける動作モードにおいて、3次元座標入力装置11を介してユーザが値の入力を行えばよい。当該値の入力を制御装置15が受け付けると、座標値指定部34は、メモリ22に記憶されている上記補正後の座標値を、当該受け付けた値の座標値に変更する。
【0047】
以下、CADシステム1における処理内容を、具体例を挙げることにより、さらに具体的に説明する。
【0048】
なお、以下では、3次元座標入力装置11や2次元座標入力装置12を介したユーザからの指示により、制御装置15が記憶装置14から任意の3次元形状の図形に関する3Dデータを読み出した場合について説明する。また、上記3Dデータで特定される図形の3次元形状を2次元座標系に投影し、当該3次元形状を2次元形状として表示装置13に表示させた後の処理について説明する。さらに、読み出した3Dデータはメモリ22に一時的に記憶されているものとする。
【0049】
また、以下では、説明の便宜上、2次元座標系において指定する2次元形状上の点は、当該2次元形状に対応する3次元座標系における3次元形状の稜線に含まれる点や頂点に対応する点ではないとする。
【0050】
図5に示すとおり、2次元座標入力装置12により、2次元座標系において2次元形状上の任意の点P1を指定する(S1)。ステップS1の後は、3次元座標値算出部31により、ステップS1で指示された点P1の座標値(x,y)を、3次元座標系の座標値(X,Y,Z)に変換するとともに、当該変換後の座標値(X,Y,Z)を一時的にメモリ22に記憶させる(S2)。なお、以下では、座標値(X,Y,Z)で特定される3次元形状上の点をP2とする。
【0051】
ステップS2の後は、平面判定部41により、点P2が存在する3次元形状における面の種別が記憶装置14から取得される(S3)。ステップS3の後は、取得した面の種別に基づいて、点P2が存在する3次元形状における面が平面か否かが、平面判定部41により判断される(S4)。
【0052】
ステップS4において平面であると判定された場合には、図6に示すステップS5に進む。一方、ステップS4において平面ではないと判定された場合には、取得した面の種別に基づいて、点P2が存在する3次元形状における面が円柱面か否かが、曲面判定部43により判断される(S20)。
【0053】
ステップS20において円柱面であると判定された場合には、図7に示すステップS21に進む。一方、ステップS20において円柱面ではないと判定された場合には、ステップS19に進む。
【0054】
ここで、ステップS5に進んだ後の処理の流れを、図6に基づいて説明する。
まず、垂直判定部42は、上記平面の法線ベクトルをメモリ22から読み出す(S5)。ステップS5の後は、垂直判定部42は、読み出した法線ベクトルの長さを1に正規化した単位ベクトルVu=(Xu,Yu,Zu)を生成する(S6)。
【0055】
ステップS6の後は、垂直判定部42は、S6において生成した単位ベクトルVuと、3次元座標系においてX軸に平行な単位ベクトルVx=(1,0,0)との内積の絶対値|Vu・Vx|を計算する(S7)。ステップS7の後は、垂直判定部42により、上記絶対値が、0に等しいか、または整数部が0であってかつ少数第1位から少数第m位(mは予め定めた自然数)までの値が全て0であるような0に十分近い値(例えば、0.00001)であるか否かが判定される(S8)。
【0056】
ステップS8において上記絶対値が0かあるいは0に十分近い値であると判定された場合には、補正処理部33は、上記点P2の座標値(X,Y,Z)におけるX軸成分の値について四捨五入(少数第一位が4以下なら切り捨て、少数第一位が5以上なら切り上げる処理)を行うことにより、当該X軸成分の値を整数とする(S9)。そして、ステップS9の後は、ステップS10に進む。一方、ステップS8において上記絶対値が0かあるいは0に十分近い値ではないと判定された場合には、ステップS10に進む。
【0057】
ステップS10においては、垂直判定部42は、上記単位ベクトルVuと、3次元座標系においてY軸に平行な単位ベクトルVy=(0,1,0)との内積の絶対値|Vu・Vy|を計算する。そして、ステップS10の後は、垂直判定部42により、ステップS8と同様に、上記絶対値が0に等しいかあるいは0に十分近い値であるか否かが判定される(S11)。
【0058】
ステップS11において上記絶対値が0かあるいは0に十分近い値であると判定された場合には、補正処理部33は、上記点P2の座標値(X,Y,Z)におけるY軸成分の値について四捨五入を行うことにより、当該Y軸成分の値を整数とする(S12)。そして、ステップS12の後は、ステップS13に進む。一方、ステップS11において上記絶対値が0かあるいは0に十分近い値ではないと判定された場合には、ステップS13に進む。
【0059】
ステップS13においては、垂直判定部42は、上記単位ベクトルVuと、3次元座標系においてZ軸に平行な単位ベクトルVz=(0,0,1)との内積の絶対値|Vu・Vz|を計算する。そして、ステップS13の後は、垂直判定部42により、ステップS8と同様に、上記絶対値が0に等しいかあるいは0に十分近い値であるか否かが判定される(S14)。
【0060】
ステップS14において上記絶対値が0かあるいは0に十分近い値であると判定された場合には、補正処理部33は、上記点P2の座標値(X,Y,Z)におけるZ軸成分の値について四捨五入を行い、当該Z軸成分の値を整数とする(S15)。そして、ステップS15の後は、ステップS16に進む。一方、ステップS13において上記絶対値が0かあるいは0に十分近い値ではないと判定された場合には、ステップS16に進む。
【0061】
ここで、図5に戻り、ステップS16においては、各軸成分に関し補正処理を行うことにより得られた座標値で特定される点が上記平面内にあるか否かが、上記3Dデータに基づき判定部32により判定される。
【0062】
ステップS16において上記平面内にあると判断された場合には、制御装置15が、例えば図8に示すとおりの補正後の座標値を表示装置13に表示させる(S17)。そして、ステップS17の後、一連の処理を終了する。ここで、同図においては、Y軸成分の値が一例として整数となっていることから、上記点P2の座標値(X,Y,Z)におけるY軸成分の値について、四捨五入する補正が行われたことをユーザが容易に判別できる。
【0063】
なお、上記補正後の座標値で問題ないとユーザが判断した場合、同図に示す決定ボタンを2次元座標入力装置12を用いて選択することにより、補正後の座標値が確定する。そして、当該確定した座標値のデータは、制御装置15により、上記3Dデータの一部として、記憶装置14に記憶される。
【0064】
一方、ステップS16において上記平面内にないと判断された場合には、制御装置15は、ステップS2において一時的にメモリ22に記憶させていた、補正前の座標値(X,Y,Z)をメモリ22から読み出す(S18)。そして、ステップS18の後、制御装置15が補正前の座標値(X,Y,Z)を表示装置13に表示させる(S19)。そして、ステップS19の後、一連の処理を終了する。
【0065】
次に、ステップS20において円柱面であると判定された場合について、図7に基づき説明する。
【0066】
まず、平行判定部44は、円柱面の中心軸の方向ベクトルをメモリ22から読み出す(S21)。ステップS21の後は、平行判定部44は、読み出した方向ベクトルの長さを1に正規化した単位ベクトルVu′=(Xu′,Yu′,Zu′)を生成する(S22)。
【0067】
ステップS22の後は、平行判定部44は、ステップS22において生成した単位ベクトルVu′と、3次元座標系においてX軸に平行な単位ベクトルVx=(1,0,0)との内積の絶対値|Vu′・Vx|を計算する(S23)。ステップS23の後は、平行判定部44により、上記絶対値が、1に等しいか、または0.999999等のように1に十分近い値であるか否かが判定される(S24)。
【0068】
ステップS24において上記絶対値が1かあるいは1に十分近い値であると判定された場合には、補正処理部33は、上記点P2の座標値(X,Y,Z)におけるX軸成分の値について四捨五入を行い、当該X軸成分の値を整数とする(S25)。そして、ステップS25の後は、図5に示すステップS16に進む。
【0069】
一方、ステップS24において上記絶対値が1かあるいは1に十分近い値ではないと判定された場合には、平行判定部44は、ステップS22において生成した単位ベクトルVu′と、3次元座標系においてY軸に平行な単位ベクトルVy=(0,1,0)との内積の絶対値|Vu′・Vy|を計算する(S26)。ステップS26の後は、平行判定部44により、上記絶対値が、1に等しいか、または0.999999等のように1に十分近い値であるか否かが判定される(S27)。
【0070】
ステップS27において上記絶対値が1かあるいは1に十分近い値であると判定された場合には、補正処理部33は、上記点P2の座標値(X,Y,Z)におけるY軸成分の値について四捨五入を行い、当該Y軸成分の値を整数とする(S28)。そして、ステップS28の後は、図5に示すステップS16に進む。
【0071】
一方、ステップS27において上記絶対値が1かあるいは1に十分近い値ではないと判定された場合には、平行判定部44は、ステップS22において生成した単位ベクトルVu′と、3次元座標系においてZ軸に平行な単位ベクトルVz=(0,0,1)との内積の絶対値|Vu′・Vz|を計算する(S29)。ステップS29の後は、平行判定部44により、上記絶対値が、1に等しいか、または0.999999等のように1に十分近い値であるか否かが判定される(S30)。
【0072】
ステップS30において上記絶対値が1かあるいは1に十分近い値であると判定された場合には、補正処理部33は、上記点P2の座標値(X,Y,Z)におけるZ軸成分の値について四捨五入を行い、当該Z軸成分の値を整数とする(S31)。そして、ステップS31の後は、図5に示すステップS16に進む。一方、ステップS30において上記絶対値が1かあるいは1に十分近い値ではないと判定された場合には、補正を行うことなく、図5に示すステップS16に進む。
【0073】
以下では、上述した一連の処理により、座標値(X,Y,Z)が具体的にどのように補正されるのかを、図9から図14に基づいて説明する。
【0074】
まず、図5のステップS4において平面であると判定された場合に、図6に示すステップS5以下の処理により、座標値(X,Y,Z)が具体的にどのように補正されるのかを、図9から図12に基づき説明する。
【0075】
図9に示すとおり、3次元座標系におけるX軸とY軸とから構成されるXY平面に平行な平面M1上に、上述した点P2が存在している場合を考える。この場合、点P2が存在する平面M1の法線ベクトルの長さを1に正規化した単位ベクトルVuは、(0,0,1)となる。したがって、単位ベクトルVuと、X軸に平行な単位ベクトルVxとの内積の絶対値、Y軸に平行な単位ベクトルVyとの内積の絶対値、およびZ軸に平行な単位ベクトルVzとの内積の絶対値は、それぞれ以下のとおりになる。
【0076】
|Vu・Vx|=|(0,0,1)・(1,0,0)|=0
|Vu・Vy|=|(0,0,1)・(0,1,0)|=0
|Vu・Vz|=|(0,0,1)・(0,0,1)|=1
上記計算の結果、VuとVxとの内積の絶対値と、VuとVyとの内積の絶対値とが0となっていることがわかる。このため、補正処理部33により、点P2の座標値(X,Y,Z)のX成分とY成分との値について四捨五入を行い、当該X軸成分の値とY軸成分の値とを整数値化する。
【0077】
このような補正により、図10に示すとおり、上記点P2が、XY平面に平行な面上M1において間隔を1として形成されたグリッドにおけるグリッド交点のうち、当該点P2に最も近い交点(○で示された点)に移動したのと同様な効果を得ることができる。なお、同図においては、Z軸上に上記グリッド交点が位置するものとする。
【0078】
次に、図11に示すとおり、3次元座標系における各軸のうちY軸のみに平行な平面M2上に、上述した点P2が存在している場合を考える。また、当該点P2が存在する平面M2の法線ベクトルの長さを1に正規化した単位ベクトルVuが、(0.8,0,0.6)であるとする。
【0079】
この場合、単位ベクトルVuと、X軸に平行な単位ベクトルVxとの内積の絶対値、Y軸に平行な単位ベクトルVyとの内積の絶対値、およびZ軸に平行な単位ベクトルVzとの内積の絶対値は、それぞれ以下のとおりになる。
【0080】
|Vu・Vx|=|(0.8,0,0.6)・(1,0,0)|=0.8
|Vu・Vy|=|(0.8,0,0.6)・(0,1,0)|=0
|Vu・Vz|=|(0.8,0,0.6)・(0,0,1)|=0.6
上記計算の結果、VuとVyとの内積の絶対値のみが0となっていることがわかる。このため、補正処理部33により、点P2の座標値(X,Y,Z)のY成分との値について四捨五入を行い、当該Y軸成分の値を整数値化する。
【0081】
このような補正により、図12に示すとおり、上記点P2が、上述したグリッドを構成する線のうちY軸と垂直な線の上の点であって、かつ当該点P2に最も近い点(○で示された点)に移動したのと同様な効果を得ることができる。なお、同図においても、Z軸上に上記グリッド交点が位置するものとする。
【0082】
次に、ステップS20において円柱面であると判定された場合に、図7に示すステップS21以下の処理により、座標値(X,Y,Z)が具体的にどのように補正されるのかを、図13および図14に基づき説明する。
【0083】
図13に示すとおり、3次元座標系において中心軸がZ軸と平行となる円柱面M4上に、上述した点P2が存在している場合を考える。この場合、上記円柱面M4の中心軸の方向ベクトルの長さを1に正規化した単位ベクトルVu′は、(0,0,1)となる。したがって、単位ベクトルVu′と、X軸に平行な単位ベクトルVxとの内積の絶対値、Y軸に平行な単位ベクトルVyとの内積の絶対値、およびZ軸に平行な単位ベクトルVzとの内積の絶対値は、それぞれ以下のとおりになる。
【0084】
|Vu′・Vx|=|(0,0,1)・(1,0,0)|=0
|Vu′・Vy|=|(0,0,1)・(0,1,0)|=0
|Vu′・Vz|=|(0,0,1)・(0,0,1)|=1
上記計算の結果、VuとVzとの内積の絶対値が1となっていることがわかる。このため、補正処理部33により、点P2の座標値(X,Y,Z)のZ成分の値について四捨五入を行い、当該Z軸成分の値を整数値化する。
【0085】
ここで、図14に示すとおり、円柱面M4上に設けられるとともに、1の間隔で円柱面M4の中心軸と平行な座標軸(すなわちZ軸)に垂直な平面(すなわちXY平面)と平行に配されたグリッド線を有するグリッドを考える。この場合、上記補正により、同図に示すとおり、上記点P2が、上述したグリッド線上の点であって、かつ当該点P2に最も近い点(○で示す点)に移動したのと同様な効果を得ることができる。なお、同図においては、XY平面上にもグリッド線が位置するものとする。
【0086】
以上のように、実施例を示しつつ本実施の形態に係るCADシステム1を説明したが、上述した構成に限定されるものではない。
【0087】
上記においては、各軸上(例えばX軸上)に所定の間隔で並ぶように予め規定された値(軸成分の値)として、1,2,3,…,n−1,n,n+1,…といったような1の間隔で並んだ例を挙げた(nは自然数)。しかしながら、これに限定されず、例えば10や100といった2桁以上の間隔でもよいし、あるいは0.5といった小数点以下の値で規定される間隔でもよい。要は、CADシステム1において利用可能な間隔であって、ユーザ自身が選択した間隔であればよい。
【0088】
また、上記では、四捨五入を行う例を挙げたが、これに限定されるものではない。あくまでも、補正処理部33による補正の対象となる軸成分の値に関し、補正後の座標値に関する軸成分の値が、上記規定された値であって、かつ変換後の座標値(つまり、補正前の座標値)のうちの当該軸成分の値との差が所定値以下の値となる補正を行う構成であればよい。
【0089】
なお、上記間隔として10を選択した場合には、上述した四捨五入の処理の代わりに、例えば以下の処理を行えばよい。すなわち、一の位について4以下なら、十の位を補正せずに一の位および小数点以下の位を0とする補正を行い、一の位について5以上なら、十の位を1つ大きな値に補正するとともに一の位および小数点以下の位を0とする補正を行えばよい。なお、この場合、上記所定値としては例えば5となる。
【0090】
また、上記間隔として0.5を選択した場合には、上述した四捨五入の処理の代わりに、以下の処理を行えばよい。すなわち、補正の対象となる軸成分の値に関し、補正後の座標値に関する軸成分の値が、上記規定された値(つまり、0.5,1.0,1.5,2.0,2.5,3.0,…,)の何れかの値であって、かつ変換後の座標値のうちの当該軸成分の値との差が所定値(例えば0.25)以下の値になる補正を行えばよい。
【0091】
また、上記においては、3Dデータとして、面の種別に関する情報と、平面の法線ベクトルに関するデータとを予め記憶している構成を例に挙げて説明したが、これに限定されるものではない。例えば、上記種別を記憶させずに、制御装置15が上記3Dデータから種別を判別する構成としてもよい。また、上記法線ベクトルを記憶させずに、演算装置15が上記3Dデータから法線ベクトルを算出する構成としてもよい。
【0092】
以上のような構成をCADシステム1が有するため、補正後の座標値で表される点を3次元形状の面上に存在させつつも、3次元座標系における座標値の成分の値を予め規定された値の一つ(例えば小数点以下の桁数が予め決められた値のような、所定の桁数で表現される値)に補正することができる。その結果、CADシステム1では、上記の補正を行わない構成の装置に比べ、演算処理の負荷の低減を図ることが可能となる。
【0093】
また、小数点以下の桁数が少ない値に補正できるため、この値を表示装置13に表示させることにより、補正を行わない場合比べ、ユーザは補正が行われた軸成分の値を即座に読み取ることができる。
【0094】
さらに、上記のようにユーザが即座に読み取ることができる軸成分の値については、上述した座標値指定部34により値を多少変更しても、変更後の座標値で特定される点が3次元座標系における3次元形状の同一面から離れる可能性が低い。一方で、小数部が例えば20桁もあるような軸成分の値は、少しでも変更すれば上記同一面から離れてしまうことがわかる。
【0095】
したがって、上記補正処理後の座標値の各軸成分値をユーザが確認することにより、軸成分の値を変更すると変更後の座標値で特定される点が上記同一面から離れるか否かを、ユーザは容易に判断することができる。
【0096】
また、工業製品の部品設計においては、部品が設計図(3Dデータ)通りに製作されているか否かを検査工程で検査する。この際に、3Dデータに含まれる各数値の桁数が多い場合、このままの数値を用いることは検査工程の効率化の観点から好ましくない。しかしながら、本実施の形態で示した補正を行うことにより、検査工程の効率化を図ることもできる。
【0097】
また、上記の実施の形態においては、3次元座標系の軸と平行な線分であって、かつ上記変換後の座標値で特定される点を含む線分が、上記3次元形状の面上に存在するかを、判定部32が上記3Dデータに基づき判定する構成である。
【0098】
この構成において、上記線分は、少なくとも、上記所定の間隔(上述した予め規定された値に関する間隔(例えば、1、10、または0.5等))で示される長さの線分であることが好ましい。以下、理由を示す。
【0099】
補正の対象となる軸成分に関し、軸成分の値が、当該軸上に所定の間隔で並ぶように予め規定された値の一つとなる座標値であって、かつ、当該軸成分の値と、前記変換後の座標値のうちの前記軸成分の値との差が所定値以下となる座標値で特定される点を特定点とする。このように特定点を定義すると、上記のように線分を少なくとも上記所定の間隔で示される長さとする構成により、上記特定点が上記線分上に必ず存在することになる。その結果、線分が存在する場合には、必ず、変換後の座標値を上記特定点の座標値に補正可能となる。それゆえ、上記線分の長さを、少なくとも、上記所定の間隔で示される長さとすることが好ましい。
【0100】
ここで、図15を参照して、本実施の形態に係るCADシステム1の具体的構成の一態様について説明する。同図は、CADシステム1として機能するコンピュータシステム100のハードウェア構成を表わすブロック図である。
【0101】
コンピュータシステム100は、主たる構成要素として、プログラムを実行するCPU110と、コンピュータシステム100の使用者による指示の入力を受けるマウス120およびキーボード130と、CPU110によるプログラムの実行により生成されたデータ、又はマウス120若しくはキーボード130を介して入力されたデータを揮発的に格納するRAM140と、データを不揮発的に格納するハードディスク150と、CD−ROM(Compact Disk-Read Only Memory)駆動装置160と、モニタ170と、通信IF(Interface)180とを含む。各構成要素は、相互にデータバスによって接続されている。CD−ROM駆動装置160には、CD−ROM161が装着される。
【0102】
なお、CADシステム1における3次元座標入力装置11がキーボード130に該当し、2次元座標入力装置12がマウス120に該当し、表示装置13がモニタ170に該当し、記憶装置14がハードディスク150に該当し、メモリ22がRAM140に該当する。
【0103】
コンピュータシステム100における処理は、各ハードウェアおよびCPU110により実行されるソフトウェアによって実現される。このようなソフトウェアは、ハードディスク150に予め記憶されている場合がある。また、ソフトウェアは、CD−ROM161その他の記憶媒体に格納されて、プログラムプロダクトとして流通している場合もある。あるいは、ソフトウェアは、いわゆるインターネットに接続されている情報提供事業者によってダウンロード可能なプログラムプロダクトとして提供される場合もある。このようなソフトウェアは、CD−ROM駆動装置160その他の読取装置によりその記憶媒体から読み取られて、あるいは、通信IF180を介してダウンロードされた後、ハードディスク150に一旦格納される。そのソフトウェアは、CPU110によってハードディスク150から読み出され、RAM140に実行可能なプログラムの形式で格納される。CPU110は、そのプログラムを実行する。
【0104】
同図に示されるコンピュータシステム100を構成する各構成要素は、一般的なものである。したがって、本発明の本質的な部分は、RAM140、ハードディスク150、CD−ROM161その他の記憶媒体に格納されたソフトウェア、あるいはネットワークを介してダウンロード可能なソフトウェアであるともいえる。なお、コンピュータシステム100の各ハードウェアの動作は周知であるので、詳細な説明は繰り返さない。
【0105】
なお、記録媒体としては、CD−ROM、FD(Flexible Disk)、ハードディスクに限られず、磁気テープ、カセットテープ、光ディスク(MO(Magnetic Optical Disc)/MD(Mini Disc)/DVD(Digital Versatile Disc))、IC(Integrated Circuit)カード(メモリカードを含む)、光カード、マスクROM、EPROM(Electronically Programmable Read-Only Memory)、EEPROM(Electronically Erasable Programmable Read-Only Memory)、フラッシュROMなどの半導体メモリ等の固定的にプログラムを担持する媒体でもよい。
【0106】
ここでいうプログラムとは、CPUにより直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【0107】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【0108】
【図1】本実施の形態に係るCADシステムの概略構成を示した図である。
【図2】上記CADシステムにおける制御装置の概略構成を示した図である。
【図3】上記CADシステムにおける2次元座標入力装置を用いて、2次元座標系の点を指定している状態を示した図である。
【図4】図3において指定した点を3次元座標系で特定した状態を示した図である。
【図5】上記CADシステムで実行される処理の流れの一部を示したフローチャートである。
【図6】上記CADシステムで実行される処理の流れの他の一部を示したフローチャートである。
【図7】上記CADシステムで実行される処理の流れのさらに他の一部を示したフローチャートである。
【図8】上記制御装置で補正処理を行った後の3次元座標系における座標値を、表示装置で示した図である。
【図9】上記制御装置によって変換された後の座標値により特定される点が存在する、X軸とY軸とに平行な平面を示した図である。
【図10】図9における点と、当該点の座標値を補正して得られる座標値により特定される補正後の点とを、図9と同じ平面に示した図である。
【図11】上記制御装置によって変換された後の座標値により特定される点が存在する、Y軸にのみに平面を示した図である。
【図12】図11における点と、当該点の座標値を補正して得られる座標値により特定される補正後の点とを、図11と同じ平面に示した図である。
【図13】上記制御装置によって変換された後の座標値により特定される点が存在する、中心軸がZ軸に平行となる円柱面を示した図である。
【図14】図13における点と、当該点の座標値を補正して得られる座標値により特定される補正後の点とを、図13と同じ側面に示した図である。
【図15】上記CADシステムの具体的構成の一態様を示した図である。
【符号の説明】
【0109】
1 CADシステム、11 3次元座標入力装置、12 2次元座標入力装置、13 表示装置、14 記憶装置、15 制御装置、22 記憶部、23 制御部、31 3次元座標値算出部、32 判定部、33 補正処理部、41 平面判定部、42 垂直判定部、43 曲面判定部、44 平行判定部。
【特許請求の範囲】
【請求項1】
3次元座標系で定義された3次元形状を2次元座標系に投影することにより前記3次元形状を2次元形状として表示装置に表示させるとともに、入力装置を介して前記2次元形状上の点の指定を受け付けた場合、前記3次元形状の形状データに基づき、前記指定を受け付けた点の座標値を、前記3次元形状の面上の点の3次元座標系における座標値に変換する情報処理装置であって、
前記3次元座標系の軸と平行な線分であって、かつ前記変換後の座標値で特定される点を含む線分が、前記3次元形状の面上に存在するかを前記形状データに基づき判定する判定手段と、
前記判定手段により前記線分が存在すると判定された場合に、前記変換後の座標値を前記線分上に存在する他の座標値に補正する補正手段を備え、
前記他の座標値は、前記軸成分の値が、当該軸上に所定の間隔で並ぶように予め規定された値の一つとなる座標値であって、かつ、当該軸成分の値と、前記変換後の座標値のうちの前記軸成分の値との差が所定値以下となる座標値である、情報処理装置。
【請求項2】
前記線分は、少なくとも前記所定の間隔で示される長さの線分である、請求項1に記載の情報処理装置。
【請求項3】
前記判定手段は、
前記形状データに基づき、前記変換後の座標値で特定される点を含む、前記3次元形状の面が平面であるか否かを判定する平面判定手段と、
前記平面であると判定された場合、前記平面の法線が前記3次元座標系の軸と垂直か否かを前記形状データに基づき判定する垂直判定手段とを備える、請求項1または2に記載の情報処理装置。
【請求項4】
前記判定手段は、
前記形状データに基づき、前記変換後の座標値で特定される点を含む、前記3次元形状の面が、円柱面であるか否かを判定する曲面判定手段と、
円柱面であると判定された場合、前記円柱面の中心軸が前記3次元座標系の軸と平行であるか否かを前記形状データに基づき判定する平行判定手段とを備える、請求項1または2に記載の情報処理装置。
【請求項5】
前記表示装置と前記入力装置とを備える請求項1から4の何れか1項に記載の情報処理装置。
【請求項6】
3次元座標系で定義された3次元形状を2次元座標系に投影することにより前記3次元形状を2次元形状として表示装置に表示させる表示ステップと、
入力装置を介して前記2次元形状上の点の指定を受け付けた場合、前記3次元形状の形状データに基づき、前記指定を受け付けた点の座標値を、前記3次元形状の面上の点の3次元座標系における座標値に変換する変換ステップと、
前記3次元座標系の軸と平行な線分であって、かつ前記変換後の座標値で特定される点を含む線分が、前記3次元形状の面上に存在するかを前記形状データに基づき判定する判定ステップと、
前記判定ステップにより前記線分が存在すると判定された場合に、前記変換後の座標値を前記線分上に存在する他の座標値に補正する補正ステップとを含み、
前記他の座標値は、前記軸成分の値が、当該軸上に所定の間隔で並ぶように予め規定された値の一つとなる座標値であって、かつ、当該軸成分の値と、前記変換後の座標値のうちの前記軸成分の値との差が所定値以下となる座標値である、情報処理方法。
【請求項7】
請求項6に記載の情報処理方法をコンピュータに実行させるためのプログラム。
【請求項8】
請求項7記載のプログラムを記録したコンピュータ読取り可能な記録媒体。
【請求項1】
3次元座標系で定義された3次元形状を2次元座標系に投影することにより前記3次元形状を2次元形状として表示装置に表示させるとともに、入力装置を介して前記2次元形状上の点の指定を受け付けた場合、前記3次元形状の形状データに基づき、前記指定を受け付けた点の座標値を、前記3次元形状の面上の点の3次元座標系における座標値に変換する情報処理装置であって、
前記3次元座標系の軸と平行な線分であって、かつ前記変換後の座標値で特定される点を含む線分が、前記3次元形状の面上に存在するかを前記形状データに基づき判定する判定手段と、
前記判定手段により前記線分が存在すると判定された場合に、前記変換後の座標値を前記線分上に存在する他の座標値に補正する補正手段を備え、
前記他の座標値は、前記軸成分の値が、当該軸上に所定の間隔で並ぶように予め規定された値の一つとなる座標値であって、かつ、当該軸成分の値と、前記変換後の座標値のうちの前記軸成分の値との差が所定値以下となる座標値である、情報処理装置。
【請求項2】
前記線分は、少なくとも前記所定の間隔で示される長さの線分である、請求項1に記載の情報処理装置。
【請求項3】
前記判定手段は、
前記形状データに基づき、前記変換後の座標値で特定される点を含む、前記3次元形状の面が平面であるか否かを判定する平面判定手段と、
前記平面であると判定された場合、前記平面の法線が前記3次元座標系の軸と垂直か否かを前記形状データに基づき判定する垂直判定手段とを備える、請求項1または2に記載の情報処理装置。
【請求項4】
前記判定手段は、
前記形状データに基づき、前記変換後の座標値で特定される点を含む、前記3次元形状の面が、円柱面であるか否かを判定する曲面判定手段と、
円柱面であると判定された場合、前記円柱面の中心軸が前記3次元座標系の軸と平行であるか否かを前記形状データに基づき判定する平行判定手段とを備える、請求項1または2に記載の情報処理装置。
【請求項5】
前記表示装置と前記入力装置とを備える請求項1から4の何れか1項に記載の情報処理装置。
【請求項6】
3次元座標系で定義された3次元形状を2次元座標系に投影することにより前記3次元形状を2次元形状として表示装置に表示させる表示ステップと、
入力装置を介して前記2次元形状上の点の指定を受け付けた場合、前記3次元形状の形状データに基づき、前記指定を受け付けた点の座標値を、前記3次元形状の面上の点の3次元座標系における座標値に変換する変換ステップと、
前記3次元座標系の軸と平行な線分であって、かつ前記変換後の座標値で特定される点を含む線分が、前記3次元形状の面上に存在するかを前記形状データに基づき判定する判定ステップと、
前記判定ステップにより前記線分が存在すると判定された場合に、前記変換後の座標値を前記線分上に存在する他の座標値に補正する補正ステップとを含み、
前記他の座標値は、前記軸成分の値が、当該軸上に所定の間隔で並ぶように予め規定された値の一つとなる座標値であって、かつ、当該軸成分の値と、前記変換後の座標値のうちの前記軸成分の値との差が所定値以下となる座標値である、情報処理方法。
【請求項7】
請求項6に記載の情報処理方法をコンピュータに実行させるためのプログラム。
【請求項8】
請求項7記載のプログラムを記録したコンピュータ読取り可能な記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2009−199167(P2009−199167A)
【公開日】平成21年9月3日(2009.9.3)
【国際特許分類】
【出願番号】特願2008−37705(P2008−37705)
【出願日】平成20年2月19日(2008.2.19)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】
【公開日】平成21年9月3日(2009.9.3)
【国際特許分類】
【出願日】平成20年2月19日(2008.2.19)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】
[ Back to top ]