JP2004318368A - 空間領域データ生成装置 - Google Patents
空間領域データ生成装置 Download PDFInfo
- Publication number
- JP2004318368A JP2004318368A JP2003109975A JP2003109975A JP2004318368A JP 2004318368 A JP2004318368 A JP 2004318368A JP 2003109975 A JP2003109975 A JP 2003109975A JP 2003109975 A JP2003109975 A JP 2003109975A JP 2004318368 A JP2004318368 A JP 2004318368A
- Authority
- JP
- Japan
- Prior art keywords
- data
- grid
- intersection
- dimensional
- spatial domain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】本発明の目的は高価な変換ソフトウェアを必要とすることなく簡単に3次元筐体の内部空間の高さ情報を生成することができる空間領域データ生成装置を提供することにある。
【解決手段】形状データ読込み部4は3角形フェースデータを基準面となる2次元のXY平面上に配置するように座標変換する。格子データ生成部7aで生成した格子を基準面に形成し、基準面の各格子の中心を通りZ軸に平行な直線と3角形フェースの交点が3角形フェース内部に存在するかどうかを3角形フェース内外判定部7cで判定する。
【選択図】 図1
【解決手段】形状データ読込み部4は3角形フェースデータを基準面となる2次元のXY平面上に配置するように座標変換する。格子データ生成部7aで生成した格子を基準面に形成し、基準面の各格子の中心を通りZ軸に平行な直線と3角形フェースの交点が3角形フェース内部に存在するかどうかを3角形フェース内外判定部7cで判定する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、空間領域データ生成技術に係わり、特に、3次元CAD(Computer Aided Design)ソフトウェア等で作成した3次元形状を、3角形フェースの集合で3次元形状を定義するSTL(Stereo Lithography:ステレオリソグラフィ)データ等を入力として、3次元形状と基準となる面との空間を空間領域データとして生成する空間領域データ生成装置に関する。
【0002】
【従来の技術】
【特許文献1】特開2002―92646号公報
現在、製品設計において3次元CADソフトウェアを用いた3次元設計が一般的になってきている。例えば、携帯電話の筐体内部に部品が納まるかどうかのチェックのためには、筐体形状(3次元形状筐体)と各部品形状を組み合わせ、3次元CADソフトウェアの持つ干渉チェック機能等を利用して検証を行っている。しかしながら3次元CADソフトウェアのデータ形式は、それぞれの3次元CADソフトウェアに依存し、異なる3次元CADソフトウェアで作成したデータを組み合わせて干渉チェックするためには、取り込み可能なデータ形式に変換後に読込むなどの必要がある。
【0003】
また、筐体内部に部品が納まるかどうかのチェックのために3次元形状内部の高さ等を計測する方法があるが、3次元CADソフトウェアの持つ寸法計測機能などを用いる必要がある。そこで3次元CADソフトウェアに依存せずに3次元形状の内部の高さ情報を取得できることが望まれる。
【0004】
一方、現在普及している3次元CADソフトウェアの多くが、3角形フェースの集合として3次元形状を表現するSTLデータを出力する機能を有している。3次元CADソフトウェアに依存しない3角形フェースデータを利用するための技術としては、例えば、上記特許文献1に記載尾されているようなに、3角形フェースデータを利用して3次元形状データから面を抽出するものである。
【0005】
【発明が解決しようとする課題】
従来技術は3次元CADソフトウェアのデータ形式がそれぞれの3次元CADソフトウェアに依存し、異なる3次元CADソフトウェアで作成したデータを組み合わせて干渉チェックするためには取り込み可能なデータ形式に変換する必要がある。しかし、変換ソフトウェアは高価であるという問題点を有し、それに変換時間を必要とし、変換誤差があるという実用上の問題点もある。
【0006】
本発明の目的は高価な変換ソフトウェアを必要とすることなく簡単に3次元筐体の内部空間の高さ情報を生成することができる空間領域データ生成装置を提供することにある。
【0007】
【課題を解決するための手段】
本発明の特徴とするところは3角形フェースデータを基準面となる2次元のXY平面上に配置するように座標変換すると共に基準面に格子を形成し、基準面の各格子の中心を通りZ軸に平行な直線と3角形フェースの交点が3角形フェース内部に存在するかどうかを判定し、内部に存在するときに格子中心と交点との距離を格子の高さとして設定して3次元筐体の高さデータとしての空間領域データを生成することにある。
【0008】
本発明は3次元CADソフトウェアに依存しない3角形フェースデータを用い、基準面に複数の格子を形成し各格子の高さ情報として3次元筐体内部の空間領域データを得ており、高価な変換ソフトウェアを必要とすることなく簡単に3次元筐体の内部空間の高さ情報を生成することができる。
【0009】
【発明の実施の形態】
図1に本発明による空間領域データ生成装置の一実施例を示す。
【0010】
本発明の空間領域データ生成装置は、入力装置1、記憶装置2及び演算処理装置3を有し、演算処理装置3は3角形フェースデータを読取る形状データ読込み部4と、作業用データメモリ5と、空間領域データ出力部6と、空間領域データ生成部7を備えている。
【0011】
空間領域データ生成部7は、格子データ生成部7aと、3角形フェースと直線の交点を算出する交点算出部7bと、3角形フェース内外判定部7cを有する。形状データ読込み部4は、入力装置1から指示されて記憶装置2から読込んだ3角形フェースの集合からなる3次元形状データを、3次元形状データの空間領域を算出するための基準面となるXY平面上に配置するように座標変換し作業用データメモリ5に登録する。
【0012】
空間領域データ生成部7の格子データ生成部7aは基準面に格子状の形状となる格子データを生成し作業用データメモリ5に登録する。交点算出部7bは各格子の中心を通りZ軸に平行な直線と3角形フェースの交点を算出する。3角形フェース内外判定部7cは交点算出部7bで算出した交点が3角形フェース内部に存在するかどうかを判定し、内部に存在すると格子中心と交点との距離を格子の高さとして設定し、格子の頂点と高さで定義する空間を空間領域データとして生成する。空間領域データ出力部6は空間領域データ生成部7で生成した空間領域データを記憶装置2に出力する。
【0013】
図2は本発明の空間領域データ生成装置における処理フローの一例を示したものであり、図3は図2におけるステップS4の詳細フローを示したものである。処理手順については後述する。
【0014】
まず、本発明の理解を容易にするために図4〜図13を用いて本発明を説明する。
【0015】
図4は本発明の入力形状データとなる図4に示すようなモデル座標系に配置された3角形フェースの集合からなる3次元形状データの一例を示したものである。図4は携帯電話の筐体を示し、3角形フェースの1個を太線で示している。3角形フェースの集合として3次元形状を表現するデータとしては、図5に示すような多くの3次元CADソフトウェアが出力可能なSTLデータ等を用いることができる。
【0016】
ここで、STLデータはsolidからendsolidまでで3次元形状全体を定義する。solidに続くPart1は3次元形状の任意の名称を定義する。また、facetからendfacetまでで一つの3角形フェースを定義する。normalに続いてフェースの法線ベクトル成分X、Y、Zを定義する。また、outerloopからendloopまでで3角形フェースの3つの頂点座標を定義する。さらに、vertex(交点)に続いて一つの頂点座標成分X、Y、Zを定義している。
【0017】
図6は図4に示す3角形フェースの集合からなる3次元形状データを配置するための基準面となる格子データの一例を示したものである。例えば、格子X寸法を150mm、格子Y寸法を70mm、及び分割寸法を5mmとし、図6に示すような格子座標系に、X方向に格子(1,1)、格子(2,1)… 格子(I,1)、Y方向に. 格子(1,1)、格子(1,2)… 格子(1,J)のように定義すると、格子データは格子(1,1)から格子(30,14)までの420個の格子で構成される。また、各格子は図14に示すように頂点1、頂点2、頂点3、頂点4の4つの頂点で構成される。
【0018】
図7は図4に示した3角形フェースの集合からなる3次元形状データを、モデル座標系における格子座標系原点までの距離Zを60mm、モデル座標系における格子座標系原点までの距離Xを−140mmとし、モデル座標系MX軸回りに90度回転して、図6で示した格子上に配置した一例を示したものである。
【0019】
図8は図5に示したSTLデータを形状データ読込み部4において読込み、モデル座標系MX軸回りに90度回転して作業用データメモリ5に登録した3角形フェースデータの一例を示したものである。
【0020】
図9は格子データ生成部7aにおいて、格子X寸法を150mm、格子Y寸法を70mm、及び分割寸法を5mmとして生成し作業用メモリ5に登録した格子データの一例を示したものである。
【0021】
図10は3角形フェースと直線の交点算出部7bにおいて、図8に示した3角形フェースと図6に示した格子(6,11)の格子中心を通りZ軸に平行な直線との交点を算出する場合の一実施例を示したものである。図11は格子の頂点と高さで定義する空間を空間領域データとして生成した一例を示したものである。
【0022】
図12は空間領域データ生成部7において、各格子の高さを設定し作業用データメモリ5に登録した格子データの一例を示したものである。図13は空間領域データ出力部6において格子データを出力した一例を示したものである。
【0023】
次に、本発明の空間領域データ生成装置の処理手順を図2、図3を用いて説明する。
【0024】
形状データ読込み部4はステップS1で入力装置1から指示した3角形フェースの集合からなる3次元形状データの法線ベクトルと頂点座標を記憶装置2から読み込む。ステップS2に移り、3角形フェースの法線ベクトルと頂点座標をモデル座標系MX軸回りに90度回転して作業用データメモリ5に登録する。
【0025】
ステップS2からステップS3に移行すると、空間領域データ生成部7の格子データ生成部7aは格子データの格子X寸法、格子Y寸法及び分割寸法から各格子の4つの頂点座標を算出し、高さを初期値0として作業用データメモリ5に登録する。
【0026】
前述したようにモデル座標系における格子座標系原点までの距離Zを60mm、モデル座標系における格子座標系原点までの距離Xを−140mmとし、モデル座標系MX軸回りに90度回転すると、回転後の格子座標原点は、X=−140、Y=−60、Z=0となる。格子の分割寸法は5mmであり、格子(I,J)の4つの頂点座標は、Zは全て0であるためX、Yのみ記述すると
頂点1 X=(I−1)*5 − 140 、Y=(J−1)*5 − 60
頂点2 X=I*5 − 140 、Y=(J−1)*5 − 60
頂点3 X=I*5 − 140 、Y=J*5 − 60
頂点4 X=(I−1)*5 − 140 、Y=J*5 − 60
で求められる。
【0027】
例えば、格子(1,1)の4つの頂点座標は、図9に示すように
頂点1 X=(1−1)*5 − 140=−140 、Y=(1−1)*5 − 60= −60
頂点2 X=1*5 − 140=−135 、Y=(1−1)*5 − 60=−60
頂点3 X=1*5 − 140=−135 、Y=1*5 − 60=−55
頂点4 X=(1−1)*5 − 140=−140 、Y=1*5 − 60=−55
となる。
【0028】
空間領域データ生成部7はステップS4において空間領域データを生成する。格子(6,11)の空間領域データを生成する例を挙げて説明する。
【0029】
まず、ステップS41において格子の中心座標を求める。格子(6,11)であり、4つの頂点座標は
頂点1 X=(6−1)*5 − 140=−115 、Y=(11−1)*5 − 60= −10
頂点2 X=6*5 − 140=−110 、Y=(11−1)*5 − 60=−10
頂点3 X=6*5 − 140=−110 、Y=11*5 − 60=−5
頂点4 X=(6−1)*5 − 140=−115 、Y=11*5 − 60=−5
となる。
【0030】
中心座標CXは4つの頂点のX、Yそれぞれ平均値とすればよいから、
CX=(−115−110−110−115)/4=−112.5 CY=(−10−10−5−5)/4=−7.5
となる。
【0031】
ステップS41で中心座標CXを求めてからステップS42に移行して一つの3角形フェースを取得する。図8に示す3角形フェースあるとすると、
法線ベクトルはX=0、Y=0、Z=−1で、
3つの頂点座標は
頂点1 X=−75、Y=−45、Z=15
頂点2 X=−125、Y=−5、Z=15
頂点3 X=−75、Y=−5、Z=15
である。
【0032】
ステップS43では取得した3角形フェースの法線ベクトルとZ軸ベクトルとの内積を求める。Z軸ベクトルはX=0、Y=0、Z=1であるから、内積をDOTとすると、DOT=0*0+0*0+(−1)*1=−1となる。
【0033】
内積が1のとき二つのベクトルは同じ方向、−1のとき反対方向、0のとき直角方向であることを意味し、求めた内積が0以上であれば計算対象外とする。ステップS44ではステップS43で求めた内積を判定し0未満であればステップS45に進み、0以上であればステップS42に戻り別の3角形フェースを取得する。
【0034】
前述した格子(6,11)の例では内積が−1でありステップS45に移行する。交点算出部7bはステップS45においてステップS42で取得した3角形フェースとステップS41で求めた格子中心を通りZ軸に平行な直線との交点を求める。
【0035】
ここで平面の方程式は良く知られているように次式で表される。
【0036】
A*X + B*Y + C*Z + D = 0 (式1)
A:法線ベクトルのX成分
B:法線ベクトルのY成分
C:法線ベクトルのZ成分
D:原点から平面までの距離
直線の方向ベクトルを(L,M,N)、直線上の点座標を(X1,Y1,Z1)とすると、面と直線との交点XC,YC,ZCは次式で求められる。なお、方向ベクトル(L,M,N)のLはX成分、MはY成分、NはZ成分である。
【0037】
内積DOTは式2で表される。
【0038】
DOT = A*L+B*M+C*N (式2)
交点XC,YC,ZCは式3〜式5で求められる。
【0039】
XC=(L*(−D−B*Y1−C*Z1) + X1*(B*M+C*N))/DOT (式3)
YC=(M*(−D−A*X1−C*Z1) + Y1*(A*L+C*N)/DOT (式4)
ZC=(N*(−D−A*X1−B*Y1) + Z1*(A*L+B*M)/DOT (式5)
前述の例では面の方程式は
0*X + 0*Y 1*Z 15=0
となり、
直線の方向ベクトルは(0,0,1)、直線上の点座標は(−112.5,−7.5,0)であり面と直線との交点XC,YC,ZCは
DOT=0*0+0*0+(−1)*1=−1
XC=(0*(−15−0*(−7.5)−(−1)*0)+(−112.5)*(0*0+(−1)*1))/(−1)=−112.5
YC=(0*(−15−0*(−112.5)−(−1)*0)+(−7.5)*(0*0+(−1)*1))/(−1)=−7.5
ZC=((−1)*(−15−0*(−112.5)−0*(−7.5))+0*(0*0+0*0))/(−1)=15
となる。
【0040】
次に3角形フェース内外判定部7cはステップS46において、ステップS45で求めた交点がステップS42で取得した3角形フェースの内部に存在するかどうか判定する。点の3角形フェース内外判定は、図15に示すように、頂点1をP1、頂点2をP2、頂点3をP3、判定対象点をP0とし、ベクトルとベクトルの成す角度を半時計回りに正、時計回りに負にとると、ベクトルP0P1とP0P2との成す角度Θ1と、ベクトルP0P2とP0P3の成す角度Θ2と、ベクトルP0P3とP0P1の成す角度Θ3との合計が360度のとき内部と判定できる。
【0041】
また、図16に示すように、判定対象点P0が3角形フェースの外部にある場合、ベクトルP0P3とP0P1の成す角度Θ3が負となりベクトルP0P1とP0P2との成す角度Θ1と、ベクトルP0P2とP0P3の成す角度Θ2と、ベクトルP0P3とP0P1の成す角度Θ3との合計が0となり外部と判定できる。
【0042】
前述の例では、ベクトルP0P1、P0P2、及びP0P3を長さ1の単位ベクトルにすると、
P0P1=(37.5,−37.5,0)≒(0.70711,−0.70711,0)
P0P2=(−12.5,2.5,0) ≒(−0.98058,0.19612,0)
P0P3=(37.5,2.5,0) ≒(0.99779,0.06652,0)
Θ1=COS−1(−0.8321) ≒146.311度
Θ2=COS−1(−0.9654) ≒164.877度
Θ3=COS−1(0.6585) ≒48.814度
Θ1+Θ2+Θ3=360.002≒360度
となり、内部であると判定できる。
【0043】
ステップS47ではステップS46の結果が内部であればステップS48に進み、外部であればステップS42に戻り別の3角形フェースを取得する。ステップS48では、ステップS45で求めた交点と格子中心との距離を高さ情報として作業用データメモリ5に登録する。
【0044】
以上のようなステップS41からS48までの処理を全ての格子に対して実施する。全ての格子に対してステップS41からS48の処理を実行したら,空間領域データ出力部6は図2のステップS5において空間領域データを記憶装置2に出力する。出力時には格子原点を(0,0,0)として出力するために、回転後の格子座標原点座標、X=−140、Y=−60を各頂点座標から引いた値を出力するものとする。図13に空間領域データ出力部6において格子データを出力した一例を示す。
【0045】
このようにして3次元筐体の内部空間の高さデータを生成するのであるが、3次元CADソフトウェアに依存しない3角形フェースデータを用い、基準面に複数の格子を形成し各格子の高さ情報として3次元筐体内部の空間領域データを得ており、高価な変換ソフトウェアを必要とすることなく簡単に3次元筐体の内部空間の高さ情報を生成することができる。
【0046】
【発明の効果】
本発明は3次元CADソフトウェアに依存しない3角形フェースデータを用い、基準面に複数の格子を形成し各格子の高さ情報として3次元筐体内部の空間領域データを得ており、高価な変換ソフトウェアを必要とすることなく簡単に3次元筐体の内部空間の高さ情報を生成することができる。
【図面の簡単な説明】
【図1】本発明の一実施例を示す構成図である。
【図2】本発明の動作を説明するための処理フロー図である。
【図3】本発明の動作を説明するための処理フロー図である。
【図4】3角形フェースの集合としての3次元形状の一例を示す図である。
【図5】3次元形状データの一例を示す図である。
【図6】格子データの一例を示す図である。
【図7】格子上に3次元形状を配置した一例を示す図である。
【図8】3角形フェースデータの一例を示す図である。
【図9】格子データの一例を示す図である。
【図10】3角形フェースと直線との交点を算出する場合の説明図である。
【図11】本発明で生成した空間領域データの説明図である。
【図12】格子の高さを設定し格子データの一例を示す図である。
【図13】格子データの説明図である。
【図14】格子の4つの頂点の説明図である。
【図15】本発明の説明図である。
【図16】本発明の説明図である。
【符号の説明】
1…入力装置、2…記憶装置、3…演算処理装置、4…形状データ読込み部、5…作業用データメモリ、6…空間領域データ出力部、7…空間領域データ生成部、7a…格子データ生成部、7b…交点算出部、7c…3角形フェース内外判定部。
【発明の属する技術分野】
本発明は、空間領域データ生成技術に係わり、特に、3次元CAD(Computer Aided Design)ソフトウェア等で作成した3次元形状を、3角形フェースの集合で3次元形状を定義するSTL(Stereo Lithography:ステレオリソグラフィ)データ等を入力として、3次元形状と基準となる面との空間を空間領域データとして生成する空間領域データ生成装置に関する。
【0002】
【従来の技術】
【特許文献1】特開2002―92646号公報
現在、製品設計において3次元CADソフトウェアを用いた3次元設計が一般的になってきている。例えば、携帯電話の筐体内部に部品が納まるかどうかのチェックのためには、筐体形状(3次元形状筐体)と各部品形状を組み合わせ、3次元CADソフトウェアの持つ干渉チェック機能等を利用して検証を行っている。しかしながら3次元CADソフトウェアのデータ形式は、それぞれの3次元CADソフトウェアに依存し、異なる3次元CADソフトウェアで作成したデータを組み合わせて干渉チェックするためには、取り込み可能なデータ形式に変換後に読込むなどの必要がある。
【0003】
また、筐体内部に部品が納まるかどうかのチェックのために3次元形状内部の高さ等を計測する方法があるが、3次元CADソフトウェアの持つ寸法計測機能などを用いる必要がある。そこで3次元CADソフトウェアに依存せずに3次元形状の内部の高さ情報を取得できることが望まれる。
【0004】
一方、現在普及している3次元CADソフトウェアの多くが、3角形フェースの集合として3次元形状を表現するSTLデータを出力する機能を有している。3次元CADソフトウェアに依存しない3角形フェースデータを利用するための技術としては、例えば、上記特許文献1に記載尾されているようなに、3角形フェースデータを利用して3次元形状データから面を抽出するものである。
【0005】
【発明が解決しようとする課題】
従来技術は3次元CADソフトウェアのデータ形式がそれぞれの3次元CADソフトウェアに依存し、異なる3次元CADソフトウェアで作成したデータを組み合わせて干渉チェックするためには取り込み可能なデータ形式に変換する必要がある。しかし、変換ソフトウェアは高価であるという問題点を有し、それに変換時間を必要とし、変換誤差があるという実用上の問題点もある。
【0006】
本発明の目的は高価な変換ソフトウェアを必要とすることなく簡単に3次元筐体の内部空間の高さ情報を生成することができる空間領域データ生成装置を提供することにある。
【0007】
【課題を解決するための手段】
本発明の特徴とするところは3角形フェースデータを基準面となる2次元のXY平面上に配置するように座標変換すると共に基準面に格子を形成し、基準面の各格子の中心を通りZ軸に平行な直線と3角形フェースの交点が3角形フェース内部に存在するかどうかを判定し、内部に存在するときに格子中心と交点との距離を格子の高さとして設定して3次元筐体の高さデータとしての空間領域データを生成することにある。
【0008】
本発明は3次元CADソフトウェアに依存しない3角形フェースデータを用い、基準面に複数の格子を形成し各格子の高さ情報として3次元筐体内部の空間領域データを得ており、高価な変換ソフトウェアを必要とすることなく簡単に3次元筐体の内部空間の高さ情報を生成することができる。
【0009】
【発明の実施の形態】
図1に本発明による空間領域データ生成装置の一実施例を示す。
【0010】
本発明の空間領域データ生成装置は、入力装置1、記憶装置2及び演算処理装置3を有し、演算処理装置3は3角形フェースデータを読取る形状データ読込み部4と、作業用データメモリ5と、空間領域データ出力部6と、空間領域データ生成部7を備えている。
【0011】
空間領域データ生成部7は、格子データ生成部7aと、3角形フェースと直線の交点を算出する交点算出部7bと、3角形フェース内外判定部7cを有する。形状データ読込み部4は、入力装置1から指示されて記憶装置2から読込んだ3角形フェースの集合からなる3次元形状データを、3次元形状データの空間領域を算出するための基準面となるXY平面上に配置するように座標変換し作業用データメモリ5に登録する。
【0012】
空間領域データ生成部7の格子データ生成部7aは基準面に格子状の形状となる格子データを生成し作業用データメモリ5に登録する。交点算出部7bは各格子の中心を通りZ軸に平行な直線と3角形フェースの交点を算出する。3角形フェース内外判定部7cは交点算出部7bで算出した交点が3角形フェース内部に存在するかどうかを判定し、内部に存在すると格子中心と交点との距離を格子の高さとして設定し、格子の頂点と高さで定義する空間を空間領域データとして生成する。空間領域データ出力部6は空間領域データ生成部7で生成した空間領域データを記憶装置2に出力する。
【0013】
図2は本発明の空間領域データ生成装置における処理フローの一例を示したものであり、図3は図2におけるステップS4の詳細フローを示したものである。処理手順については後述する。
【0014】
まず、本発明の理解を容易にするために図4〜図13を用いて本発明を説明する。
【0015】
図4は本発明の入力形状データとなる図4に示すようなモデル座標系に配置された3角形フェースの集合からなる3次元形状データの一例を示したものである。図4は携帯電話の筐体を示し、3角形フェースの1個を太線で示している。3角形フェースの集合として3次元形状を表現するデータとしては、図5に示すような多くの3次元CADソフトウェアが出力可能なSTLデータ等を用いることができる。
【0016】
ここで、STLデータはsolidからendsolidまでで3次元形状全体を定義する。solidに続くPart1は3次元形状の任意の名称を定義する。また、facetからendfacetまでで一つの3角形フェースを定義する。normalに続いてフェースの法線ベクトル成分X、Y、Zを定義する。また、outerloopからendloopまでで3角形フェースの3つの頂点座標を定義する。さらに、vertex(交点)に続いて一つの頂点座標成分X、Y、Zを定義している。
【0017】
図6は図4に示す3角形フェースの集合からなる3次元形状データを配置するための基準面となる格子データの一例を示したものである。例えば、格子X寸法を150mm、格子Y寸法を70mm、及び分割寸法を5mmとし、図6に示すような格子座標系に、X方向に格子(1,1)、格子(2,1)… 格子(I,1)、Y方向に. 格子(1,1)、格子(1,2)… 格子(1,J)のように定義すると、格子データは格子(1,1)から格子(30,14)までの420個の格子で構成される。また、各格子は図14に示すように頂点1、頂点2、頂点3、頂点4の4つの頂点で構成される。
【0018】
図7は図4に示した3角形フェースの集合からなる3次元形状データを、モデル座標系における格子座標系原点までの距離Zを60mm、モデル座標系における格子座標系原点までの距離Xを−140mmとし、モデル座標系MX軸回りに90度回転して、図6で示した格子上に配置した一例を示したものである。
【0019】
図8は図5に示したSTLデータを形状データ読込み部4において読込み、モデル座標系MX軸回りに90度回転して作業用データメモリ5に登録した3角形フェースデータの一例を示したものである。
【0020】
図9は格子データ生成部7aにおいて、格子X寸法を150mm、格子Y寸法を70mm、及び分割寸法を5mmとして生成し作業用メモリ5に登録した格子データの一例を示したものである。
【0021】
図10は3角形フェースと直線の交点算出部7bにおいて、図8に示した3角形フェースと図6に示した格子(6,11)の格子中心を通りZ軸に平行な直線との交点を算出する場合の一実施例を示したものである。図11は格子の頂点と高さで定義する空間を空間領域データとして生成した一例を示したものである。
【0022】
図12は空間領域データ生成部7において、各格子の高さを設定し作業用データメモリ5に登録した格子データの一例を示したものである。図13は空間領域データ出力部6において格子データを出力した一例を示したものである。
【0023】
次に、本発明の空間領域データ生成装置の処理手順を図2、図3を用いて説明する。
【0024】
形状データ読込み部4はステップS1で入力装置1から指示した3角形フェースの集合からなる3次元形状データの法線ベクトルと頂点座標を記憶装置2から読み込む。ステップS2に移り、3角形フェースの法線ベクトルと頂点座標をモデル座標系MX軸回りに90度回転して作業用データメモリ5に登録する。
【0025】
ステップS2からステップS3に移行すると、空間領域データ生成部7の格子データ生成部7aは格子データの格子X寸法、格子Y寸法及び分割寸法から各格子の4つの頂点座標を算出し、高さを初期値0として作業用データメモリ5に登録する。
【0026】
前述したようにモデル座標系における格子座標系原点までの距離Zを60mm、モデル座標系における格子座標系原点までの距離Xを−140mmとし、モデル座標系MX軸回りに90度回転すると、回転後の格子座標原点は、X=−140、Y=−60、Z=0となる。格子の分割寸法は5mmであり、格子(I,J)の4つの頂点座標は、Zは全て0であるためX、Yのみ記述すると
頂点1 X=(I−1)*5 − 140 、Y=(J−1)*5 − 60
頂点2 X=I*5 − 140 、Y=(J−1)*5 − 60
頂点3 X=I*5 − 140 、Y=J*5 − 60
頂点4 X=(I−1)*5 − 140 、Y=J*5 − 60
で求められる。
【0027】
例えば、格子(1,1)の4つの頂点座標は、図9に示すように
頂点1 X=(1−1)*5 − 140=−140 、Y=(1−1)*5 − 60= −60
頂点2 X=1*5 − 140=−135 、Y=(1−1)*5 − 60=−60
頂点3 X=1*5 − 140=−135 、Y=1*5 − 60=−55
頂点4 X=(1−1)*5 − 140=−140 、Y=1*5 − 60=−55
となる。
【0028】
空間領域データ生成部7はステップS4において空間領域データを生成する。格子(6,11)の空間領域データを生成する例を挙げて説明する。
【0029】
まず、ステップS41において格子の中心座標を求める。格子(6,11)であり、4つの頂点座標は
頂点1 X=(6−1)*5 − 140=−115 、Y=(11−1)*5 − 60= −10
頂点2 X=6*5 − 140=−110 、Y=(11−1)*5 − 60=−10
頂点3 X=6*5 − 140=−110 、Y=11*5 − 60=−5
頂点4 X=(6−1)*5 − 140=−115 、Y=11*5 − 60=−5
となる。
【0030】
中心座標CXは4つの頂点のX、Yそれぞれ平均値とすればよいから、
CX=(−115−110−110−115)/4=−112.5 CY=(−10−10−5−5)/4=−7.5
となる。
【0031】
ステップS41で中心座標CXを求めてからステップS42に移行して一つの3角形フェースを取得する。図8に示す3角形フェースあるとすると、
法線ベクトルはX=0、Y=0、Z=−1で、
3つの頂点座標は
頂点1 X=−75、Y=−45、Z=15
頂点2 X=−125、Y=−5、Z=15
頂点3 X=−75、Y=−5、Z=15
である。
【0032】
ステップS43では取得した3角形フェースの法線ベクトルとZ軸ベクトルとの内積を求める。Z軸ベクトルはX=0、Y=0、Z=1であるから、内積をDOTとすると、DOT=0*0+0*0+(−1)*1=−1となる。
【0033】
内積が1のとき二つのベクトルは同じ方向、−1のとき反対方向、0のとき直角方向であることを意味し、求めた内積が0以上であれば計算対象外とする。ステップS44ではステップS43で求めた内積を判定し0未満であればステップS45に進み、0以上であればステップS42に戻り別の3角形フェースを取得する。
【0034】
前述した格子(6,11)の例では内積が−1でありステップS45に移行する。交点算出部7bはステップS45においてステップS42で取得した3角形フェースとステップS41で求めた格子中心を通りZ軸に平行な直線との交点を求める。
【0035】
ここで平面の方程式は良く知られているように次式で表される。
【0036】
A*X + B*Y + C*Z + D = 0 (式1)
A:法線ベクトルのX成分
B:法線ベクトルのY成分
C:法線ベクトルのZ成分
D:原点から平面までの距離
直線の方向ベクトルを(L,M,N)、直線上の点座標を(X1,Y1,Z1)とすると、面と直線との交点XC,YC,ZCは次式で求められる。なお、方向ベクトル(L,M,N)のLはX成分、MはY成分、NはZ成分である。
【0037】
内積DOTは式2で表される。
【0038】
DOT = A*L+B*M+C*N (式2)
交点XC,YC,ZCは式3〜式5で求められる。
【0039】
XC=(L*(−D−B*Y1−C*Z1) + X1*(B*M+C*N))/DOT (式3)
YC=(M*(−D−A*X1−C*Z1) + Y1*(A*L+C*N)/DOT (式4)
ZC=(N*(−D−A*X1−B*Y1) + Z1*(A*L+B*M)/DOT (式5)
前述の例では面の方程式は
0*X + 0*Y 1*Z 15=0
となり、
直線の方向ベクトルは(0,0,1)、直線上の点座標は(−112.5,−7.5,0)であり面と直線との交点XC,YC,ZCは
DOT=0*0+0*0+(−1)*1=−1
XC=(0*(−15−0*(−7.5)−(−1)*0)+(−112.5)*(0*0+(−1)*1))/(−1)=−112.5
YC=(0*(−15−0*(−112.5)−(−1)*0)+(−7.5)*(0*0+(−1)*1))/(−1)=−7.5
ZC=((−1)*(−15−0*(−112.5)−0*(−7.5))+0*(0*0+0*0))/(−1)=15
となる。
【0040】
次に3角形フェース内外判定部7cはステップS46において、ステップS45で求めた交点がステップS42で取得した3角形フェースの内部に存在するかどうか判定する。点の3角形フェース内外判定は、図15に示すように、頂点1をP1、頂点2をP2、頂点3をP3、判定対象点をP0とし、ベクトルとベクトルの成す角度を半時計回りに正、時計回りに負にとると、ベクトルP0P1とP0P2との成す角度Θ1と、ベクトルP0P2とP0P3の成す角度Θ2と、ベクトルP0P3とP0P1の成す角度Θ3との合計が360度のとき内部と判定できる。
【0041】
また、図16に示すように、判定対象点P0が3角形フェースの外部にある場合、ベクトルP0P3とP0P1の成す角度Θ3が負となりベクトルP0P1とP0P2との成す角度Θ1と、ベクトルP0P2とP0P3の成す角度Θ2と、ベクトルP0P3とP0P1の成す角度Θ3との合計が0となり外部と判定できる。
【0042】
前述の例では、ベクトルP0P1、P0P2、及びP0P3を長さ1の単位ベクトルにすると、
P0P1=(37.5,−37.5,0)≒(0.70711,−0.70711,0)
P0P2=(−12.5,2.5,0) ≒(−0.98058,0.19612,0)
P0P3=(37.5,2.5,0) ≒(0.99779,0.06652,0)
Θ1=COS−1(−0.8321) ≒146.311度
Θ2=COS−1(−0.9654) ≒164.877度
Θ3=COS−1(0.6585) ≒48.814度
Θ1+Θ2+Θ3=360.002≒360度
となり、内部であると判定できる。
【0043】
ステップS47ではステップS46の結果が内部であればステップS48に進み、外部であればステップS42に戻り別の3角形フェースを取得する。ステップS48では、ステップS45で求めた交点と格子中心との距離を高さ情報として作業用データメモリ5に登録する。
【0044】
以上のようなステップS41からS48までの処理を全ての格子に対して実施する。全ての格子に対してステップS41からS48の処理を実行したら,空間領域データ出力部6は図2のステップS5において空間領域データを記憶装置2に出力する。出力時には格子原点を(0,0,0)として出力するために、回転後の格子座標原点座標、X=−140、Y=−60を各頂点座標から引いた値を出力するものとする。図13に空間領域データ出力部6において格子データを出力した一例を示す。
【0045】
このようにして3次元筐体の内部空間の高さデータを生成するのであるが、3次元CADソフトウェアに依存しない3角形フェースデータを用い、基準面に複数の格子を形成し各格子の高さ情報として3次元筐体内部の空間領域データを得ており、高価な変換ソフトウェアを必要とすることなく簡単に3次元筐体の内部空間の高さ情報を生成することができる。
【0046】
【発明の効果】
本発明は3次元CADソフトウェアに依存しない3角形フェースデータを用い、基準面に複数の格子を形成し各格子の高さ情報として3次元筐体内部の空間領域データを得ており、高価な変換ソフトウェアを必要とすることなく簡単に3次元筐体の内部空間の高さ情報を生成することができる。
【図面の簡単な説明】
【図1】本発明の一実施例を示す構成図である。
【図2】本発明の動作を説明するための処理フロー図である。
【図3】本発明の動作を説明するための処理フロー図である。
【図4】3角形フェースの集合としての3次元形状の一例を示す図である。
【図5】3次元形状データの一例を示す図である。
【図6】格子データの一例を示す図である。
【図7】格子上に3次元形状を配置した一例を示す図である。
【図8】3角形フェースデータの一例を示す図である。
【図9】格子データの一例を示す図である。
【図10】3角形フェースと直線との交点を算出する場合の説明図である。
【図11】本発明で生成した空間領域データの説明図である。
【図12】格子の高さを設定し格子データの一例を示す図である。
【図13】格子データの説明図である。
【図14】格子の4つの頂点の説明図である。
【図15】本発明の説明図である。
【図16】本発明の説明図である。
【符号の説明】
1…入力装置、2…記憶装置、3…演算処理装置、4…形状データ読込み部、5…作業用データメモリ、6…空間領域データ出力部、7…空間領域データ生成部、7a…格子データ生成部、7b…交点算出部、7c…3角形フェース内外判定部。
Claims (2)
- 内部に空間を有する3次元筐体の形状を表現する3角形フェースデータの集合からなる3次元形状データによって前記3次元筐体の高さデータを求める空間領域データ生成装置において、前記3角形フェースデータが格納されている記憶装置から前記3角形フェースデータを読取り、基準面となる2次元のXY平面上に配置するように座標変換する形状データ読取り手段と、格子状の格子データを生成し前記基準面に格子を形成する格子データ生成手段と、前記基準面の各格子の中心を通りZ軸に平行な直線と前記3角形フェースの交点を算出する交点算出手段と、前記交点算出部で算出した交点が前記3角形フェース内部に存在するかどうかを判定し、内部に存在するときに前記格子中心と前記交点との距離を前記格子の高さとして設定して前記3次元筐体の高さデータとしての空間領域データを生成する3角形フェース内外判定手段とを具備することを特徴とする空間領域データ生成装置。
- 内部に空間を有する3次元筐体の形状を表現する3角形フェースデータの集合からなる3次元形状データを記憶装置から読出し演算処理装置により前記3次元筐体の高さデータを求める空間領域データ生成装置において、前記演算処理装置は3角形フェースの形状データ読込み手段と、作業用データメモリと、空間領域データ生成手段および空間領域データ出力手段とを備え、
前記形状データ読込み手段は、前記記憶装置から読込んだ3角形フェースの集合からなる3次元形状データを基準面となるXY平面上に配置するように座標変換して前記作業用データメモリに登録し、
前記空間領域データ生成手段は、前記基準面に格子状の形状となる格子データを生成し前記作業用データメモリに登録する格子データ生成手段と、各格子の中心を通りZ軸に平行な直線と3角形フェースの交点を算出する交点算出手段と、前記交点算出手段で算出した交点が3角形フェース内部に存在するかどうかを判定し内部に存在すれば前記格子中心と前記交点との距離を前記格子の高さとして設定し、格子の頂点と高さで定義する空間を空間領域データとして生成する3角形フェース内外判定手段とで構成され、
前記空間領域データ出力手段は、前記空間領域データ生成手段で生成した空間領域データを前記記憶装置に出力することを特徴とする空間領域データ生成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003109975A JP2004318368A (ja) | 2003-04-15 | 2003-04-15 | 空間領域データ生成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003109975A JP2004318368A (ja) | 2003-04-15 | 2003-04-15 | 空間領域データ生成装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004318368A true JP2004318368A (ja) | 2004-11-11 |
Family
ID=33470953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003109975A Pending JP2004318368A (ja) | 2003-04-15 | 2003-04-15 | 空間領域データ生成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004318368A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017520812A (ja) * | 2014-03-25 | 2017-07-27 | ディーダブリューエス エス.アール.エル. | ステレオリソグラフィプロセスによって作られる物体の支持要素の展開点を定義するための改良されたコンピュータ実施方法 |
CN111159800A (zh) * | 2019-12-13 | 2020-05-15 | 佛山欧神诺云商科技有限公司 | 一种基于cad文件自动生成3d模型的方法及装置 |
-
2003
- 2003-04-15 JP JP2003109975A patent/JP2004318368A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017520812A (ja) * | 2014-03-25 | 2017-07-27 | ディーダブリューエス エス.アール.エル. | ステレオリソグラフィプロセスによって作られる物体の支持要素の展開点を定義するための改良されたコンピュータ実施方法 |
CN111159800A (zh) * | 2019-12-13 | 2020-05-15 | 佛山欧神诺云商科技有限公司 | 一种基于cad文件自动生成3d模型的方法及装置 |
CN111159800B (zh) * | 2019-12-13 | 2023-02-17 | 佛山欧神诺云商科技有限公司 | 一种基于cad文件自动生成3d模型的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chen | 3D texture mapping for rapid manufacturing | |
US8089480B2 (en) | Method for meshing a curved surface | |
US8269766B2 (en) | Method for generating three-dimensional shape data, apparatus for generating three-dimensional shape data, and three-dimensional shape data generating program | |
JP2006285858A (ja) | 3次元モデル変形システム及びプログラム | |
CN105335748A (zh) | 图像特征提取方法和系统 | |
JP2008033926A (ja) | 映像補間方法及び装置 | |
TW201319849A (zh) | 曲面處理系統及方法 | |
Ye et al. | Image-based slicing and tool path planning for hybrid stereolithography additive manufacturing | |
Zhang et al. | Adaptive NC path generation from massive point data with bounded error | |
JP2004318368A (ja) | 空間領域データ生成装置 | |
EP1569143A1 (en) | Method of calculating intersecions between triangle and line segment and progam therefor | |
Shepherd et al. | Hexahedral mesh generation for biomedical models in SCIRun | |
EP1591955A2 (en) | Resolution converting method | |
JP2006215766A (ja) | 画像表示装置、画像表示方法及び画像表示プログラム | |
JP2002207777A (ja) | 中立面モデルの生成方法 | |
Muraki et al. | Curve Mesh Modeling Method of Trimmed Surfaces for Direct Modeling | |
Engell-Nørregård et al. | Local jointlimits using distance field cones in euler angle space | |
Li et al. | Rational Be´ zier Line-Symmetric Motions | |
JP2004160858A (ja) | 構造解析結果から光造形用データを生成する方法および装置 | |
JP5516949B2 (ja) | 数値流体計算方法、数値流体計算装置、プログラム、及び、記録媒体 | |
Gorski et al. | Software Tool for Interactive Design of Customized Hand Splints | |
WO2017204196A1 (ja) | 3d形状データ作成装置及び3d形状データ作成支援方法 | |
Lööf et al. | Visualization of variation in early design phases: a convex hull approach | |
JP2671652B2 (ja) | 3次元形状モデリング装置 | |
Peters et al. | Elimination in generically rigid 3d geometric constraint systems |