(57)【要約】【課題】本発明の目的は高価な変換ソフトウェアを必要とすることなく簡単に３次元筐体の内部空間の高さ情報を生成することができる空間領域データ生成装置を提供することにある。【解決手段】形状データ読込み部４は３角形フェースデータを基準面となる２次元のＸＹ平面上に配置するように座標変換する。格子データ生成部７ａで生成した格子を基準面に形成し、基準面の各格子の中心を通りＺ軸に平行な直線と３角形フェースの交点が３角形フェース内部に存在するかどうかを３角形フェース内外判定部７ｃで判定する。【選択図】  図１
2004318368.tif 000002
【特許請求の範囲】
【請求項１】
内部に空間を有する３次元筐体の形状を表現する３角形フェースデータの集合からなる３次元形状データによって前記３次元筐体の高さデータを求める空間領域データ生成装置において、前記３角形フェースデータが格納されている記憶装置から前記３角形フェースデータを読取り、基準面となる２次元のＸＹ平面上に配置するように座標変換する形状データ読取り手段と、格子状の格子データを生成し前記基準面に格子を形成する格子データ生成手段と、前記基準面の各格子の中心を通りＺ軸に平行な直線と前記３角形フェースの交点を算出する交点算出手段と、前記交点算出部で算出した交点が前記３角形フェース内部に存在するかどうかを判定し、内部に存在するときに前記格子中心と前記交点との距離を前記格子の高さとして設定して前記３次元筐体の高さデータとしての空間領域データを生成する３角形フェース内外判定手段とを具備することを特徴とする空間領域データ生成装置。
【請求項２】
内部に空間を有する３次元筐体の形状を表現する３角形フェースデータの集合からなる３次元形状データを記憶装置から読出し演算処理装置により前記３次元筐体の高さデータを求める空間領域データ生成装置において、前記演算処理装置は３角形フェースの形状データ読込み手段と、作業用データメモリと、空間領域データ生成手段および空間領域データ出力手段とを備え、
前記形状データ読込み手段は、前記記憶装置から読込んだ３角形フェースの集合からなる３次元形状データを基準面となるＸＹ平面上に配置するように座標変換して前記作業用データメモリに登録し、
前記空間領域データ生成手段は、前記基準面に格子状の形状となる格子データを生成し前記作業用データメモリに登録する格子データ生成手段と、各格子の中心を通りＺ軸に平行な直線と３角形フェースの交点を算出する交点算出手段と、前記交点算出手段で算出した交点が３角形フェース内部に存在するかどうかを判定し内部に存在すれば前記格子中心と前記交点との距離を前記格子の高さとして設定し、格子の頂点と高さで定義する空間を空間領域データとして生成する３角形フェース内外判定手段とで構成され、
前記空間領域データ出力手段は、前記空間領域データ生成手段で生成した空間領域データを前記記憶装置に出力することを特徴とする空間領域データ生成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、空間領域データ生成技術に係わり、特に、３次元ＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）ソフトウェア等で作成した３次元形状を、３角形フェースの集合で３次元形状を定義するＳＴＬ（Ｓｔｅｒｅｏ  Ｌｉｔｈｏｇｒａｐｈｙ：ステレオリソグラフィ）データ等を入力として、３次元形状と基準となる面との空間を空間領域データとして生成する空間領域データ生成装置に関する。
【０００２】
【従来の技術】
【特許文献１】特開２００２―９２６４６号公報
現在、製品設計において３次元ＣＡＤソフトウェアを用いた３次元設計が一般的になってきている。例えば、携帯電話の筐体内部に部品が納まるかどうかのチェックのためには、筐体形状（３次元形状筐体）と各部品形状を組み合わせ、３次元ＣＡＤソフトウェアの持つ干渉チェック機能等を利用して検証を行っている。しかしながら３次元ＣＡＤソフトウェアのデータ形式は、それぞれの３次元ＣＡＤソフトウェアに依存し、異なる３次元ＣＡＤソフトウェアで作成したデータを組み合わせて干渉チェックするためには、取り込み可能なデータ形式に変換後に読込むなどの必要がある。
【０００３】
また、筐体内部に部品が納まるかどうかのチェックのために３次元形状内部の高さ等を計測する方法があるが、３次元ＣＡＤソフトウェアの持つ寸法計測機能などを用いる必要がある。そこで３次元ＣＡＤソフトウェアに依存せずに３次元形状の内部の高さ情報を取得できることが望まれる。
【０００４】
一方、現在普及している３次元ＣＡＤソフトウェアの多くが、３角形フェースの集合として３次元形状を表現するＳＴＬデータを出力する機能を有している。３次元ＣＡＤソフトウェアに依存しない３角形フェースデータを利用するための技術としては、例えば、上記特許文献１に記載尾されているようなに、３角形フェースデータを利用して３次元形状データから面を抽出するものである。
【０００５】
【発明が解決しようとする課題】
従来技術は３次元ＣＡＤソフトウェアのデータ形式がそれぞれの３次元ＣＡＤソフトウェアに依存し、異なる３次元ＣＡＤソフトウェアで作成したデータを組み合わせて干渉チェックするためには取り込み可能なデータ形式に変換する必要がある。しかし、変換ソフトウェアは高価であるという問題点を有し、それに変換時間を必要とし、変換誤差があるという実用上の問題点もある。
【０００６】
本発明の目的は高価な変換ソフトウェアを必要とすることなく簡単に３次元筐体の内部空間の高さ情報を生成することができる空間領域データ生成装置を提供することにある。
【０００７】
【課題を解決するための手段】
本発明の特徴とするところは３角形フェースデータを基準面となる２次元のＸＹ平面上に配置するように座標変換すると共に基準面に格子を形成し、基準面の各格子の中心を通りＺ軸に平行な直線と３角形フェースの交点が３角形フェース内部に存在するかどうかを判定し、内部に存在するときに格子中心と交点との距離を格子の高さとして設定して３次元筐体の高さデータとしての空間領域データを生成することにある。
【０００８】
本発明は３次元ＣＡＤソフトウェアに依存しない３角形フェースデータを用い、基準面に複数の格子を形成し各格子の高さ情報として３次元筐体内部の空間領域データを得ており、高価な変換ソフトウェアを必要とすることなく簡単に３次元筐体の内部空間の高さ情報を生成することができる。
【０００９】
【発明の実施の形態】
図１に本発明による空間領域データ生成装置の一実施例を示す。
【００１０】
本発明の空間領域データ生成装置は、入力装置１、記憶装置２及び演算処理装置３を有し、演算処理装置３は３角形フェースデータを読取る形状データ読込み部４と、作業用データメモリ５と、空間領域データ出力部６と、空間領域データ生成部７を備えている。
【００１１】
空間領域データ生成部７は、格子データ生成部７ａと、３角形フェースと直線の交点を算出する交点算出部７ｂと、３角形フェース内外判定部７ｃを有する。形状データ読込み部４は、入力装置１から指示されて記憶装置２から読込んだ３角形フェースの集合からなる３次元形状データを、３次元形状データの空間領域を算出するための基準面となるＸＹ平面上に配置するように座標変換し作業用データメモリ５に登録する。
【００１２】
空間領域データ生成部７の格子データ生成部７ａは基準面に格子状の形状となる格子データを生成し作業用データメモリ５に登録する。交点算出部７ｂは各格子の中心を通りＺ軸に平行な直線と３角形フェースの交点を算出する。３角形フェース内外判定部７ｃは交点算出部７ｂで算出した交点が３角形フェース内部に存在するかどうかを判定し、内部に存在すると格子中心と交点との距離を格子の高さとして設定し、格子の頂点と高さで定義する空間を空間領域データとして生成する。空間領域データ出力部６は空間領域データ生成部７で生成した空間領域データを記憶装置２に出力する。
【００１３】
図２は本発明の空間領域データ生成装置における処理フローの一例を示したものであり、図３は図２におけるステップＳ４の詳細フローを示したものである。処理手順については後述する。
【００１４】
まず、本発明の理解を容易にするために図４〜図１３を用いて本発明を説明する。
【００１５】
図４は本発明の入力形状データとなる図４に示すようなモデル座標系に配置された３角形フェースの集合からなる３次元形状データの一例を示したものである。図４は携帯電話の筐体を示し、３角形フェースの１個を太線で示している。３角形フェースの集合として３次元形状を表現するデータとしては、図５に示すような多くの３次元ＣＡＤソフトウェアが出力可能なＳＴＬデータ等を用いることができる。
【００１６】
ここで、ＳＴＬデータはｓｏｌｉｄからｅｎｄｓｏｌｉｄまでで３次元形状全体を定義する。ｓｏｌｉｄに続くＰａｒｔ１は３次元形状の任意の名称を定義する。また、ｆａｃｅｔからｅｎｄｆａｃｅｔまでで一つの３角形フェースを定義する。ｎｏｒｍａｌに続いてフェースの法線ベクトル成分Ｘ、Ｙ、Ｚを定義する。また、ｏｕｔｅｒｌｏｏｐからｅｎｄｌｏｏｐまでで３角形フェースの３つの頂点座標を定義する。さらに、ｖｅｒｔｅｘ（交点）に続いて一つの頂点座標成分Ｘ、Ｙ、Ｚを定義している。
【００１７】
図６は図４に示す３角形フェースの集合からなる３次元形状データを配置するための基準面となる格子データの一例を示したものである。例えば、格子Ｘ寸法を１５０ｍｍ、格子Ｙ寸法を７０ｍｍ、及び分割寸法を５ｍｍとし、図６に示すような格子座標系に、Ｘ方向に格子（１，１）、格子（２，１）…  格子（Ｉ，１）、Ｙ方向に．  格子（１，１）、格子（１，２）…  格子（１，Ｊ）のように定義すると、格子データは格子（１，１）から格子（３０，１４）までの４２０個の格子で構成される。また、各格子は図１４に示すように頂点１、頂点２、頂点３、頂点４の４つの頂点で構成される。
【００１８】
図７は図４に示した３角形フェースの集合からなる３次元形状データを、モデル座標系における格子座標系原点までの距離Ｚを６０ｍｍ、モデル座標系における格子座標系原点までの距離Ｘを−１４０ｍｍとし、モデル座標系ＭＸ軸回りに９０度回転して、図６で示した格子上に配置した一例を示したものである。
【００１９】
図８は図５に示したＳＴＬデータを形状データ読込み部４において読込み、モデル座標系ＭＸ軸回りに９０度回転して作業用データメモリ５に登録した３角形フェースデータの一例を示したものである。
【００２０】
図９は格子データ生成部７ａにおいて、格子Ｘ寸法を１５０ｍｍ、格子Ｙ寸法を７０ｍｍ、及び分割寸法を５ｍｍとして生成し作業用メモリ５に登録した格子データの一例を示したものである。
【００２１】
図１０は３角形フェースと直線の交点算出部７ｂにおいて、図８に示した３角形フェースと図６に示した格子（６，１１）の格子中心を通りＺ軸に平行な直線との交点を算出する場合の一実施例を示したものである。図１１は格子の頂点と高さで定義する空間を空間領域データとして生成した一例を示したものである。
【００２２】
図１２は空間領域データ生成部７において、各格子の高さを設定し作業用データメモリ５に登録した格子データの一例を示したものである。図１３は空間領域データ出力部６において格子データを出力した一例を示したものである。
【００２３】
次に、本発明の空間領域データ生成装置の処理手順を図２、図３を用いて説明する。
【００２４】
形状データ読込み部４はステップＳ１で入力装置１から指示した３角形フェースの集合からなる３次元形状データの法線ベクトルと頂点座標を記憶装置２から読み込む。ステップＳ２に移り、３角形フェースの法線ベクトルと頂点座標をモデル座標系ＭＸ軸回りに９０度回転して作業用データメモリ５に登録する。
【００２５】
ステップＳ２からステップＳ３に移行すると、空間領域データ生成部７の格子データ生成部７ａは格子データの格子Ｘ寸法、格子Ｙ寸法及び分割寸法から各格子の４つの頂点座標を算出し、高さを初期値０として作業用データメモリ５に登録する。
【００２６】
前述したようにモデル座標系における格子座標系原点までの距離Ｚを６０ｍｍ、モデル座標系における格子座標系原点までの距離Ｘを−１４０ｍｍとし、モデル座標系ＭＸ軸回りに９０度回転すると、回転後の格子座標原点は、Ｘ＝−１４０、Ｙ＝−６０、Ｚ＝０となる。格子の分割寸法は５ｍｍであり、格子（Ｉ，Ｊ）の４つの頂点座標は、Ｚは全て０であるためＸ、Ｙのみ記述すると
頂点１  Ｘ＝（Ｉ−１）＊５  −  １４０  、Ｙ＝（Ｊ−１）＊５  −  ６０
頂点２  Ｘ＝Ｉ＊５  −  １４０  、Ｙ＝（Ｊ−１）＊５  −  ６０
頂点３  Ｘ＝Ｉ＊５  −  １４０  、Ｙ＝Ｊ＊５  −  ６０
頂点４  Ｘ＝（Ｉ−１）＊５  −  １４０  、Ｙ＝Ｊ＊５  −  ６０
で求められる。
【００２７】
例えば、格子（１，１）の４つの頂点座標は、図９に示すように
頂点１  Ｘ＝（１−１）＊５  −  １４０＝−１４０  、Ｙ＝（１−１）＊５  −  ６０＝  −６０
頂点２  Ｘ＝１＊５  −  １４０＝−１３５  、Ｙ＝（１−１）＊５  −  ６０＝−６０
頂点３  Ｘ＝１＊５  −  １４０＝−１３５  、Ｙ＝１＊５  −  ６０＝−５５
頂点４  Ｘ＝（１−１）＊５  −  １４０＝−１４０  、Ｙ＝１＊５  −  ６０＝−５５
となる。
【００２８】
空間領域データ生成部７はステップＳ４において空間領域データを生成する。格子（６，１１）の空間領域データを生成する例を挙げて説明する。
【００２９】
まず、ステップＳ４１において格子の中心座標を求める。格子（６，１１）であり、４つの頂点座標は
頂点１  Ｘ＝（６−１）＊５  −  １４０＝−１１５  、Ｙ＝（１１−１）＊５  −  ６０＝  −１０
頂点２  Ｘ＝６＊５  −  １４０＝−１１０  、Ｙ＝（１１−１）＊５  −  ６０＝−１０
頂点３  Ｘ＝６＊５  −  １４０＝−１１０  、Ｙ＝１１＊５  −  ６０＝−５
頂点４  Ｘ＝（６−１）＊５  −  １４０＝−１１５  、Ｙ＝１１＊５  −  ６０＝−５
となる。
【００３０】
中心座標ＣＸは４つの頂点のＸ、Ｙそれぞれ平均値とすればよいから、
ＣＸ＝（−１１５−１１０−１１０−１１５）／４＝−１１２．５  ＣＹ＝（−１０−１０−５−５）／４＝−７．５
となる。
【００３１】
ステップＳ４１で中心座標ＣＸを求めてからステップＳ４２に移行して一つの３角形フェースを取得する。図８に示す３角形フェースあるとすると、
法線ベクトルはＸ＝０、Ｙ＝０、Ｚ＝−１で、
３つの頂点座標は
頂点１  Ｘ＝−７５、Ｙ＝−４５、Ｚ＝１５
頂点２  Ｘ＝−１２５、Ｙ＝−５、Ｚ＝１５
頂点３  Ｘ＝−７５、Ｙ＝−５、Ｚ＝１５
である。
【００３２】
ステップＳ４３では取得した３角形フェースの法線ベクトルとＺ軸ベクトルとの内積を求める。Ｚ軸ベクトルはＸ＝０、Ｙ＝０、Ｚ＝１であるから、内積をＤＯＴとすると、ＤＯＴ＝０＊０＋０＊０＋（−１）＊１＝−１となる。
【００３３】
内積が１のとき二つのベクトルは同じ方向、−１のとき反対方向、０のとき直角方向であることを意味し、求めた内積が０以上であれば計算対象外とする。ステップＳ４４ではステップＳ４３で求めた内積を判定し０未満であればステップＳ４５に進み、０以上であればステップＳ４２に戻り別の３角形フェースを取得する。
【００３４】
前述した格子（６，１１）の例では内積が−１でありステップＳ４５に移行する。交点算出部７ｂはステップＳ４５においてステップＳ４２で取得した３角形フェースとステップＳ４１で求めた格子中心を通りＺ軸に平行な直線との交点を求める。
【００３５】
ここで平面の方程式は良く知られているように次式で表される。
【００３６】
Ａ＊Ｘ  ＋  Ｂ＊Ｙ  ＋  Ｃ＊Ｚ  ＋  Ｄ  ＝  ０          （式１）
Ａ：法線ベクトルのＸ成分
Ｂ：法線ベクトルのＹ成分
Ｃ：法線ベクトルのＺ成分
Ｄ：原点から平面までの距離
直線の方向ベクトルを（Ｌ，Ｍ，Ｎ）、直線上の点座標を（Ｘ１，Ｙ１，Ｚ１）とすると、面と直線との交点ＸＣ，ＹＣ，ＺＣは次式で求められる。なお、方向ベクトル（Ｌ，Ｍ，Ｎ）のＬはＸ成分、ＭはＹ成分、ＮはＺ成分である。
【００３７】
内積ＤＯＴは式２で表される。
【００３８】
ＤＯＴ  ＝  Ａ＊Ｌ＋Ｂ＊Ｍ＋Ｃ＊Ｎ      （式２）
交点ＸＣ，ＹＣ，ＺＣは式３〜式５で求められる。
【００３９】
ＸＣ＝（Ｌ＊（−Ｄ−Ｂ＊Ｙ１−Ｃ＊Ｚ１）  ＋  Ｘ１＊（Ｂ＊Ｍ＋Ｃ＊Ｎ））／ＤＯＴ      （式３）
ＹＣ＝（Ｍ＊（−Ｄ−Ａ＊Ｘ１−Ｃ＊Ｚ１）  ＋  Ｙ１＊（Ａ＊Ｌ＋Ｃ＊Ｎ）／ＤＯＴ      （式４）
ＺＣ＝（Ｎ＊（−Ｄ−Ａ＊Ｘ１−Ｂ＊Ｙ１）  ＋  Ｚ１＊（Ａ＊Ｌ＋Ｂ＊Ｍ）／ＤＯＴ      （式５）
前述の例では面の方程式は
０＊Ｘ  ＋  ０＊Ｙ  １＊Ｚ  １５＝０
となり、
直線の方向ベクトルは（０，０，１）、直線上の点座標は（−１１２．５，−７．５，０）であり面と直線との交点ＸＣ，ＹＣ，ＺＣは
ＤＯＴ＝０＊０＋０＊０＋（−１）＊１＝−１
ＸＣ＝（０＊（−１５−０＊（−７．５）−（−１）＊０）＋（−１１２．５）＊（０＊０＋（−１）＊１））／（−１）＝−１１２．５
ＹＣ＝（０＊（−１５−０＊（−１１２．５）−（−１）＊０）＋（−７．５）＊（０＊０＋（−１）＊１））／（−１）＝−７．５
ＺＣ＝（（−１）＊（−１５−０＊（−１１２．５）−０＊（−７．５））＋０＊（０＊０＋０＊０））／（−１）＝１５
となる。
【００４０】
次に３角形フェース内外判定部７ｃはステップＳ４６において、ステップＳ４５で求めた交点がステップＳ４２で取得した３角形フェースの内部に存在するかどうか判定する。点の３角形フェース内外判定は、図１５に示すように、頂点１をＰ１、頂点２をＰ２、頂点３をＰ３、判定対象点をＰ０とし、ベクトルとベクトルの成す角度を半時計回りに正、時計回りに負にとると、ベクトルＰ０Ｐ１とＰ０Ｐ２との成す角度Θ１と、ベクトルＰ０Ｐ２とＰ０Ｐ３の成す角度Θ２と、ベクトルＰ０Ｐ３とＰ０Ｐ１の成す角度Θ３との合計が３６０度のとき内部と判定できる。
【００４１】
また、図１６に示すように、判定対象点Ｐ０が３角形フェースの外部にある場合、ベクトルＰ０Ｐ３とＰ０Ｐ１の成す角度Θ３が負となりベクトルＰ０Ｐ１とＰ０Ｐ２との成す角度Θ１と、ベクトルＰ０Ｐ２とＰ０Ｐ３の成す角度Θ２と、ベクトルＰ０Ｐ３とＰ０Ｐ１の成す角度Θ３との合計が０となり外部と判定できる。
【００４２】
前述の例では、ベクトルＰ０Ｐ１、Ｐ０Ｐ２、及びＰ０Ｐ３を長さ１の単位ベクトルにすると、
Ｐ０Ｐ１＝（３７．５，−３７．５，０）≒（０．７０７１１，−０．７０７１１，０）
Ｐ０Ｐ２＝（−１２．５，２．５，０）  ≒（−０．９８０５８，０．１９６１２，０）
Ｐ０Ｐ３＝（３７．５，２．５，０）  ≒（０．９９７７９，０．０６６５２，０）
Θ１＝ＣＯＳ−１（−０．８３２１）  ≒１４６．３１１度
Θ２＝ＣＯＳ−１（−０．９６５４）  ≒１６４．８７７度
Θ３＝ＣＯＳ−１（０．６５８５）  ≒４８．８１４度
Θ１＋Θ２＋Θ３＝３６０．００２≒３６０度
となり、内部であると判定できる。
【００４３】
ステップＳ４７ではステップＳ４６の結果が内部であればステップＳ４８に進み、外部であればステップＳ４２に戻り別の３角形フェースを取得する。ステップＳ４８では、ステップＳ４５で求めた交点と格子中心との距離を高さ情報として作業用データメモリ５に登録する。
【００４４】
以上のようなステップＳ４１からＳ４８までの処理を全ての格子に対して実施する。全ての格子に対してステップＳ４１からＳ４８の処理を実行したら，空間領域データ出力部６は図２のステップＳ５において空間領域データを記憶装置２に出力する。出力時には格子原点を（０，０，０）として出力するために、回転後の格子座標原点座標、Ｘ＝−１４０、Ｙ＝−６０を各頂点座標から引いた値を出力するものとする。図１３に空間領域データ出力部６において格子データを出力した一例を示す。
【００４５】
このようにして３次元筐体の内部空間の高さデータを生成するのであるが、３次元ＣＡＤソフトウェアに依存しない３角形フェースデータを用い、基準面に複数の格子を形成し各格子の高さ情報として３次元筐体内部の空間領域データを得ており、高価な変換ソフトウェアを必要とすることなく簡単に３次元筐体の内部空間の高さ情報を生成することができる。
【００４６】
【発明の効果】
本発明は３次元ＣＡＤソフトウェアに依存しない３角形フェースデータを用い、基準面に複数の格子を形成し各格子の高さ情報として３次元筐体内部の空間領域データを得ており、高価な変換ソフトウェアを必要とすることなく簡単に３次元筐体の内部空間の高さ情報を生成することができる。
【図面の簡単な説明】
【図１】本発明の一実施例を示す構成図である。
【図２】本発明の動作を説明するための処理フロー図である。
【図３】本発明の動作を説明するための処理フロー図である。
【図４】３角形フェースの集合としての３次元形状の一例を示す図である。
【図５】３次元形状データの一例を示す図である。
【図６】格子データの一例を示す図である。
【図７】格子上に３次元形状を配置した一例を示す図である。
【図８】３角形フェースデータの一例を示す図である。
【図９】格子データの一例を示す図である。
【図１０】３角形フェースと直線との交点を算出する場合の説明図である。
【図１１】本発明で生成した空間領域データの説明図である。
【図１２】格子の高さを設定し格子データの一例を示す図である。
【図１３】格子データの説明図である。
【図１４】格子の４つの頂点の説明図である。
【図１５】本発明の説明図である。
【図１６】本発明の説明図である。
【符号の説明】
１…入力装置、２…記憶装置、３…演算処理装置、４…形状データ読込み部、５…作業用データメモリ、６…空間領域データ出力部、７…空間領域データ生成部、７ａ…格子データ生成部、７ｂ…交点算出部、７ｃ…３角形フェース内外判定部。
【図１】
2004318368.tif 000003
【図２】
2004318368.tif 000004
【図３】
2004318368.tif 000005
【図４】
2004318368.tif 000006
【図５】
2004318368.tif 000007
【図６】
2004318368.tif 000008
【図７】
2004318368.tif 000009
【図８】
2004318368.tif 000010
【図９】
2004318368.tif 000011
【図１０】
2004318368.tif 000012
【図１１】
2004318368.tif 000013
【図１２】
2004318368.tif 000014
【図１３】
2004318368.tif 000015
【図１４】
2004318368.tif 000016
【図１５】
2004318368.tif 000017
【図１６】
2004318368.tif 000018