(57)【要約】【課題】  人間による判断を行わなくても、的確にポリゴンモデルの出力規制を行うことが可能な立体物造形用データ出力規制装置を提供する。【解決手段】  規制モデルが登録された規制モデルデータベース５０と、対象モデルのポリゴン数が所定以下になるようにポリゴンを削減するポリゴン削減手段１０と、ポリゴンが削減された対象モデルに対して、その基準点が３次元座標の原点になるように全体を移動させ、基準点からポリゴンまでの最長距離が所定長になるように全体をスケーリング調整し、最長距離の方向が第１の軸に一致するように全体を回転させることにより、所定の位置、スケール、傾きに正規化された対象モデルを作成するポリゴン正規化手段２０と、正規化された対象モデルを規制モデルデータベース５０に登録されている規制モデルと照合し、出力するのに適正であるか否かを判定するポリゴンモデル照合手段３０を備える。【選択図】  図２
2015162167.tif 000002
【特許請求の範囲】
【請求項１】
ポリゴンの集合として表現されたポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきか否かを判定する装置であって、
出力を規制すべきポリゴンモデルである規制モデルが登録された規制モデルデータベースと、
出力対象のポリゴンモデルである対象モデルに含まれるポリゴンの数が所定の値以下になるようにポリゴンを削減するポリゴン削減手段と、
前記ポリゴンが削減された対象モデルに対して、当該対象モデルの基準点が３次元座標の原点になるように前記対象モデルを移動させ、前記基準点から最も遠いポリゴンまでの最長距離が所定の長さになるように前記対象モデルをスケーリング調整し、前記最長距離の方向が第１の軸に一致するように前記対象モデルを回転させることにより、所定の位置、スケール、傾きに正規化された対象モデルを作成するポリゴン正規化手段と、
前記正規化された対象モデルを前記規制モデルデータベースに登録されている規制モデルと照合し、出力を規制すべきか否かを判定するポリゴンモデル照合手段と、
を備えることを特徴とする立体物造形用データ出力規制装置。
【請求項２】
前記対象モデルの基準点は、各ポリゴンの頂点座標の平均であるポリゴン平均座標を、前記対象モデルに含まれるポリゴンについて算出した平均値として与えられるものであることを特徴とする請求項１に記載の立体物造形用データ出力規制装置。
【請求項３】
前記ポリゴン正規化手段は、前記ポリゴンが削減された対象モデルの基準点から最も遠いポリゴンまでの最長距離方向を、前記第１の軸の正または負の一方の特定方向に一致させるため、前記第１の軸と第２の軸で形成される２次元座標系に投影された前記基準点から最も遠いポリゴンまでの最長距離方向が前記第１の軸の前記特定方向に一致するように前記対象モデルを回転させた後に、前記第１の軸と第３の軸で形成される２次元座標系に投影された前記基準点から最も遠いポリゴンまでの最長距離方向が前記第１の軸の前記特定方向に一致するように前記対象モデルを回転させるようにしていることを特徴とする請求項１または請求項２に記載の立体物造形用データ出力規制装置。
【請求項４】
前記ポリゴン正規化手段は、前記ポリゴンが削減された対象モデルの基準点から最も遠いポリゴンまでの最長距離方向が前記第１の軸の前記特定方向に一致するように前記対象モデルを回転させた後に、前記第２の軸と前記第３の軸で形成される２次元座標系に投影された基準点から最も遠いポリゴンまでの最長距離方向が前記第３の軸の前記特定方向に一致するように前記対象モデルを更に回転させるようにしていることを特徴とする請求項３に記載の立体物造形用データ出力規制装置。
【請求項５】
前記ポリゴン照合手段は、角度に依存しない角度非依存照合処理と、角度に依存する角度依存照合処理を行う２種の処理から構成され、前記角度非依存照合処理で適合した場合のみ、前記角度依存照合処理を実行するようにしていることを特徴とする請求項１から請求項４のいずれか一項に記載の立体物造形用データ出力規制装置。
【請求項６】
前記ポリゴン照合手段は、前記角度非依存照合処理として、前記対象モデルを構成するポリゴンの面積の総和値と、前記規制モデルを構成するポリゴンの面積の総和値を算出し、２つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合判定するようにしていることを特徴とする請求項５に記載の立体物造形用データ出力規制装置。
【請求項７】
前記ポリゴン照合手段は、前記角度非依存照合処理として、前記対象モデルを構成するポリゴンを底面として前記基準点を頂点とする角錐の体積の総和値と、前記規制モデルを構成するポリゴンを底面として前記基準点を頂点とする角錐の体積の総和値を算出し、２つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合判定するようにしていることを特徴とする請求項５に記載の立体物造形用データ出力規制装置。
【請求項８】
前記ポリゴン照合手段は、前記角度非依存照合処理として、前記対象モデルを構成するポリゴンの面積の総和値と、前記規制モデルを構成するポリゴンの面積の総和値を算出し、２つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合判定し、
適合判定された場合のみ、
前記対象モデルを構成するポリゴンを底面として前記基準点を頂点とする角錐の体積の総和値と、前記規制モデルを構成するポリゴンを底面として前記基準点を頂点とする角錐の体積の総和値を算出し、２つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合判定するようにしていることを特徴とする請求項５に記載の立体物造形用データ出力規制装置。
【請求項９】
前記ポリゴン照合手段は、前記角度依存照合処理として、前記対象モデル、前記規制モデルそれぞれについて、構成するポリゴンの頂点座標の平均であるポリゴン平均座標が最も近いポリゴン同士でポリゴン平均座標間の距離を算出し、ポリゴン平均座標間の距離の総和値を算出し、前記２つのモデルの総和値の平均値が所定のしきい値より小さい場合に適合判定するようにしていることを特徴とする請求項５から請求項８のいずれか一項に記載の立体物造形用データ出力規制装置。
【請求項１０】
前記ポリゴン照合手段は、前記角度依存照合処理として、前記対象モデル、前記規制モデルそれぞれについて、構成するポリゴンの頂点座標の平均であるポリゴン平均座標が最も近いポリゴン同士で、対応する頂点間の距離を算出し、当該距離の全ポリゴンについての総和値を算出し、前記２つのモデルの総和値の平均値が所定のしきい値より小さい場合に適合判定するようにしていることを特徴とする請求項５から請求項８のいずれか一項に記載の立体物造形用データ出力規制装置。
【請求項１１】
前記規制モデルに含まれるポリゴンの数が所定の値以下になるようにポリゴンを削減する第２のポリゴン削減手段と、
前記ポリゴンが削減された規制モデルに対して、当該規制モデルの基準点が３次元座標の原点になるように前記規制モデルを移動させ、前記基準点から最も遠いポリゴンまでの最長距離が所定の長さになるように前記規制モデルをスケーリング調整し、前記最長距離の方向が第１の軸に一致するように前記規制モデルを回転させることにより、所定の位置、スケール、傾きに正規化された規制モデルを作成する第２のポリゴン正規化手段と、を備えた規制モデル正規化装置により正規化された規制モデルを受信し、受信した規制モデルを前記規制モデルデータベースに登録する規制モデル登録手段を更に有することを特徴とする請求項１から請求項１０のいずれか一項に記載の立体物造形用データ出力規制装置。
【請求項１２】
前記ポリゴン削減手段によるポリゴン削減前の対象モデルを、接続された立体物造形装置に出力する手段と、
前記立体物造形装置による立体物の造形処理と並行して実行される前記ポリゴンモデル照合手段により、出力を規制すべきであると判定された場合に、前記立体物造形装置に、前記ポリゴン削減前の対象モデルの出力中止命令を出力する手段と、
を更に備えることを特徴とする請求項１から請求項１１のいずれか一項に記載の立体物造形用データ出力規制装置。
【請求項１３】
コンピュータを、請求項１から請求項１２のいずれか一項に記載の立体物造形用データ出力規制装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、立体物を表すデータを基に、樹脂等を加工して立体物を造形する３Ｄプリンタ等の立体物造形装置の利用に際して、立体物造形装置からの出力に不適切なものを判別するための技術に関する。
【背景技術】
【０００２】
近年、立体物を表すデータをもとに、樹脂や石膏等を加工して造形する３Ｄプリンタが立体物造形装置として普及してきている。３Ｄプリンタの医療応用として、医療診断で撮影されるCT/MRI画像（DICOM形式３次元ボクセルデータ）を基に３Ｄプリンタ出力用モデリングデータを作成し、手術シミュレーション・医学教育・インフォームドコンセント向けの臓器模型を出力したり、体内埋め込み用の人工臓器（血管、骨、関節など）を作成したりする試みが始まっている。
【０００３】
３Ｄプリンタには、インターネットを介して情報だけでなく、モノを遠隔地に間接的に伝搬できる革新性を備えている。そのため、これまで税関で規制されていた銃砲・刀剣などの危険物がデータ形態で国境を越えて流布され、３Ｄプリンタによりモノとして容易に入手可能になるという問題が発生している。
【０００４】
具体的には、あるＷＥＢサイトにて３Ｄプリンタを用いて所定のモデルの拳銃を製造できるＳＴＬ（Standard Triangulated Language）が無償で公開されている。金属製に比べて射程距離などは多少劣るが、３Ｄプリンタで作成された弾丸でも殺傷能力はそれなりにある。更に、現状の３Ｄプリンタで造形可能な材料は樹脂・石膏に限定され、金属が使用できないという欠点が裏目に出て、空港の金属探知機で見逃されるという問題も指摘されている。今後、民生用の３Ｄプリンタが普及するにあたり、３Ｄプリンタ側に投入される出力データの形状認証と危険物の出力規制などのセキュリティ機能をもたせることが求められる。
【０００５】
これに対して、ウィルス対策ツールと類似した手法で出力可否判定を行うシステムを構築する方法が考えられ、その実現にあたり、ポリゴン照合技術が必要になるが、ポリゴン照合には、従来より次の問題が知られている。３Ｄプリンタ出力用のポリゴンデータ（ＳＴＬ形式など）では、３次元座標値が絶対寸法でないためスケールがまちまちで、座標原点やアングルも使用されるＣＡＤや出力予定のプリンタの特性に合せて種々に設定される。そのため、たとえソースが同一の３Ｄモデルであっても、ポリゴンデータの作成方法が異なると、表現される総ポリゴン数も変化し、ポリゴンデータの座標値比較で同一性を判定することは一般に難しい。
【０００６】
そこで、特許文献１のように、重心からの慣性モーメントなど特徴パラメータによるアングル・スケールに依存しない比較手法が提案されている。また、特許文献２では、ポリゴンモデルの重心からの距離分布や隣接面とのクリーズ角などの特徴量を抽出してアングル・スケールに依存しない比較を行う手法が提案されている。特許文献３では、３次元モデルを複数アングルに２次元投影した画像に対してフーリエ変換を行い特徴抽出して比較する手法が提案されている。
【０００７】
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許第３６１０２７０号公報
【特許文献２】特開２０００−２２２４２８号公報
【特許文献３】特許第５０２４７６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上記従来の技術は、いずれも類似形状検索の用途であり、検索されたデータを採択するか否かは人間の判断に委ねられている。人間による判断を加えない場合、これらの既存手法を適用してしまうと精度が粗すぎて、過剰に出力拒否判定をされてしまうという問題が発生する。
【００１０】
そこで、本発明は、人間による判断を行わなくても、的確にポリゴンモデルの出力規制を行うことが可能な立体物造形用データ出力規制装置を提供することを課題とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、本発明第１の態様では、ポリゴンの集合として表現されたポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきであるか否かを判定する装置であって、出力を規制すべきポリゴンモデルである規制モデルが登録された規制モデルデータベースと、出力対象のポリゴンモデルである対象モデルに含まれるポリゴンの数が所定の値以下になるようにポリゴンを削減するポリゴン削減手段と、前記ポリゴンが削減された対象モデルに対して、当該対象モデルの基準点が３次元座標の原点になるように前記対象モデルを移動させ、前記基準点から最も遠いポリゴンまでの最長距離が所定の長さになるように前記対象モデルをスケーリング調整し、前記最長距離の方向が第１の軸（例えばＺ軸）に一致するように前記対象モデルを回転させることにより、所定の位置、スケール、傾きに正規化された対象モデルを作成するポリゴン正規化手段と、前記正規化された対象モデルを前記規制モデルデータベースに登録されている規制モデルと照合し、出力を規制すべきか否かを判定するポリゴンモデル照合手段と、を備えることを特徴とする立体物造形用データ出力規制装置を提供する。
【００１２】
本発明第１の態様によれば、規制モデルが登録された規制モデルデータベースを備え、対象モデルに含まれるポリゴンの数が所定の値以下になるようにポリゴンを削減し、ポリゴンが削減された対象モデルに対して、対象モデルの基準点が３次元座標の原点になるように対象モデルを移動させ、基準点から最も遠いポリゴンまでの最長距離が所定の長さになるように対象モデルをスケーリング調整し、最長距離の方向が第１の軸（例えばＺ軸）に一致するように対象モデルを回転させることにより、所定の位置、スケール、傾きに正規化された対象モデルを作成し、正規化された対象モデルを規制モデルデータベースに登録されている規制モデルと照合し、出力を規制すべきか否かを判定するようにしたので、ウィルス対策ツールと類似した手法でパターンファイル（規制モデルデータベース）を構築し、３Ｄプリンタ等の立体物造形装置に出力予定のポリゴンモデルに対してブラックリスト（規制モデルデータベース）に登録されている各ポリゴンモデルと照合し、出力可否判定を行うことが可能となる。このため、立体物造形装置に出力予定のポリゴンモデルのスケールまたはアングルが規制モデルデータベースに登録されている規制モデルのものと異なっていても、適切か否かの判断を行うことができ、人間による判断を行わなくても、的確にポリゴンモデルの出力規制を行うことが可能となる。
【００１３】
また、本発明第２の態様では、前記対象モデルの基準点は、各ポリゴンの頂点座標の平均であるポリゴン平均座標を、前記対象モデルに含まれるポリゴンについて算出した平均値として与えられるものであることを特徴とする。
【００１４】
本発明第２の態様によれば、対象モデルの基準点は、各ポリゴンの頂点座標の平均であるポリゴン平均座標を、対象モデルに含まれるポリゴンについて算出した平均値として与えられるようにしたので、立体物造形装置に出力予定のポリゴンモデルの各頂点が規制モデルデータベースに登録されている規制モデルのものと若干異なっていても、適切か否かの判断を行うことができ、対象モデルの重心に近い位置を基準点として迅速に算出することが可能となる。
【００１５】
また、本発明第３の態様では、前記ポリゴン正規化手段は、前記ポリゴンが削減された対象モデルの基準点から最も遠いポリゴンまでの最長距離方向が前記第１の軸（例えばＺ軸）の正または負の一方の特定方向に一致させるため、前記第１の軸（例えばＺ軸）と第２の軸（例えばＸ軸）で形成される（ＸＺ）２次元座標系に投影された前記基準点から最も遠いポリゴンまでの最長距離方向が前記第１の軸（例えばＺ軸）の前記特定方向に一致するように前記対象モデルを回転させた後に、前記第１の軸（例えばＺ軸）と第３の軸（例えばＹ軸）で形成される（ＹＺ）２次元座標系に投影された前記基準点から最も遠いポリゴンまでの最長距離方向が前記第１の軸（例えばＺ軸）の前記特定方向に一致するように前記対象モデルを回転させるようにしていることを特徴とする。
【００１６】
本発明第３の態様によれば、ポリゴンが削減された対象モデルの基準点から最も遠いポリゴンまでの最長距離方向が第１の軸（例えばＺ軸）の特定方向に一致させるため、第１の軸（例えばＺ軸）と第２の軸（例えばＸ軸）で形成される（ＸＺ）２次元座標系に投影された基準点から最も遠いポリゴンまでの最長距離方向が第１の軸（例えばＺ軸）の特定方向に一致するように対象モデルを回転させた後に、第１の軸（例えばＺ軸）と第３の軸（例えばＹ軸）で形成される（ＹＺ）２次元座標系に投影された基準点から最も遠いポリゴンまでの最長距離方向が第１の軸（例えばＺ軸）の特定方向に一致するように対象モデルを回転させるようにしたので、立体物造形装置に出力予定のポリゴンモデルおよび規制モデルデータベースに登録されている規制モデルに対して、各々少なくとも立体物の長手方向のアングルを揃えた上で照合を行うことが可能となる。
【００１７】
また、本発明第４の態様では、前記ポリゴン正規化手段は、前記ポリゴンが削減された対象モデルの基準点から最も遠いポリゴンまでの最長距離方向が前記第１の軸（例えばＺ軸）の前記特定方向に一致するように前記対象モデルを回転させた後に、前記第２の軸（例えばＸ軸）と前記第３の軸（例えばＹ軸）で形成される（ＸＹ）２次元座標系に投影された基準点から最も遠いポリゴンまでの最長距離方向が前記第３の軸（例えばＹ軸）の前記特定方向に一致するように前記対象モデルを更に回転させるようにしていることを特徴とする。
【００１８】
本発明第４の態様によれば、ポリゴンが削減された対象モデルの基準点から最も遠いポリゴンまでの最長距離方向が第１の軸（例えばＺ軸）の特定方向に一致するように対象モデルを回転させた後に、第２の軸（例えばＸ軸）と第３の軸（例えばＹ軸）で形成される（ＸＹ）２次元座標系に投影された基準点から最も遠いポリゴンまでの最長距離方向が第３の軸（例えばＹ軸）の特定方向に一致するように対象モデルを更に回転させるようにしたので、立体物造形装置に出力予定のポリゴンモデルおよび規制モデルデータベースに登録されている規制モデルに対して、各々アングルを完全に一致させて上で照合を行うことが可能となる。
【００１９】
また、本発明第５の態様では、前記ポリゴン照合手段は、角度（アングル）に依存しない角度非依存照合処理と、角度に依存する角度依存照合処理を行う２種の処理から構成され、前記角度非依存照合処理で適合した場合のみ、前記角度依存照合処理を実行するようにしていることを特徴とする。
【００２０】
本発明第５の態様によれば、ポリゴン照合として、はじめに角度（アングル）に依存しない角度非依存照合処理を行い、角度非依存照合処理で適合（類似）した場合のみ、角度依存照合処理を実行するようにしたので、大きく異なるモデルについては、少ない処理負荷で迅速に非類似と判定することができ、全体として効率的な判定が可能となる。
【００２１】
また、本発明第６の態様では、前記ポリゴン照合手段は、前記角度非依存照合処理として、前記対象モデルを構成するポリゴンの面積の総和値と、前記規制モデルを構成するポリゴンの面積の総和値を算出し、２つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合判定するようにしていることを特徴とする。
【００２２】
本発明第６の態様によれば、角度非依存照合処理として、対象モデルを構成するポリゴンの面積の総和値と、規制モデルを構成するポリゴンの面積の総和値を算出し、２つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合（類似）判定するようにしたので、比較的簡易な演算によりしきい値と比較する値を算出することができ、迅速な適否判定が可能となる。
【００２３】
また、本発明第７の態様では、前記ポリゴン照合手段は、前記角度非依存照合処理として、前記対象モデルを構成するポリゴンを底面として前記基準点を頂点とする角錐の体積の総和値と、前記規制モデルを構成するポリゴンを底面として前記基準点を頂点とする角錐の体積の総和値を算出し、２つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合（類似）判定するようにしていることを特徴とする。
【００２４】
本発明第７の態様によれば、角度非依存照合処理として、対象モデルを構成するポリゴンを底面として基準点を頂点とする角錐の体積の総和値と、規制モデルを構成するポリゴンを底面として基準点を頂点とする角錐の体積の総和値を算出し、２つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合（類似）判定するようにしたので、比較的簡易な演算によりしきい値と比較する値を算出することができ、迅速な適否判定が可能となる。
【００２５】
また、本発明第８の態様では、前記ポリゴン照合手段は、前記角度非依存照合処理として、前記対象モデルを構成するポリゴンの面積の総和値と、前記規制モデルを構成するポリゴンの面積の総和値を算出し、２つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合（類似）判定し、適合判定された場合のみ、前記対象モデルを構成するポリゴンを底面として前記基準点を頂点とする角錐の体積の総和値と、前記規制モデルを構成するポリゴンを底面として前記基準点を頂点とする角錐の体積の総和値を算出し、２つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合（類似）判定するようにしていることを特徴とする。
【００２６】
本発明第８の態様によれば、角度非依存照合処理として、対象モデルを構成するポリゴンの面積の総和値と、規制モデルを構成するポリゴンの面積の総和値を算出し、２つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合（類似）判定し、適合判定された場合のみ、対象モデルを構成するポリゴンを底面として基準点を頂点とする角錐の体積の総和値と、規制モデルを構成するポリゴンを底面として基準点を頂点とする角錐の体積の総和値を算出し、２つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合（類似）判定するようにしたので、迅速かつ確実にしきい値と比較する値を算出することができ、迅速な適否判定が可能となる。
【００２７】
また、本発明第９の態様では、前記ポリゴン照合手段は、前記角度依存照合処理として、前記対象モデル、前記規制モデルそれぞれについて、構成するポリゴンの頂点座標の平均であるポリゴン平均座標が最も近いポリゴン同士でポリゴン平均座標間の距離を算出し、ポリゴン平均座標間の距離の総和値を算出し、前記２つのモデルの総和値の平均値が所定のしきい値より小さい場合に適合（類似）判定するようにしていることを特徴とする。
【００２８】
本発明第９の態様によれば、角度依存照合処理として、対象モデル、規制モデルそれぞれについて、構成するポリゴンの頂点座標の平均であるポリゴン平均座標が最も近いポリゴン同士でポリゴン平均座標間の距離を算出し、ポリゴン平均座標間の距離の総和値を算出し、２つのモデルの総和値の平均値が所定のしきい値より小さい場合に適合（類似）判定するようにしたので、簡易な角度非依存照合で類似と判定されたモデルに対して再判定を行い、規制する必要のないポリゴンモデルを誤って規制することがないように判定精度を上げることが可能となる。規制すべきポリゴンモデルに対して見逃して出力を許可してしまう場合は、少なくともユーザからのクレームは起こらないが、その逆の場合は、ユーザからのクレーム発生につながり本技術を搭載した３Ｄプリンタ装置に対する信頼性も失われる。本発明第９の態様によれば、そのような信頼の失墜を防ぐことに貢献できる。
【００２９】
また、本発明第１０の態様では、前記ポリゴン照合手段は、前記角度依存照合処理として、前記対象モデル、前記規制モデルそれぞれについて、構成するポリゴンの頂点座標の平均であるポリゴン平均座標が最も近いポリゴン同士で、対応する頂点間の距離を算出し、当該距離の全ポリゴンについての総和値を算出し、前記２つのモデルの総和値の平均値が所定のしきい値より小さい場合に適合（類似）判定するようにしていることを特徴とする。
【００３０】
本発明第１０の態様によれば、角度依存照合処理として、対象モデル、規制モデルそれぞれについて、構成するポリゴンの頂点座標の平均であるポリゴン平均座標が最も近いポリゴン同士で、対応する頂点間の距離を算出し、距離の全ポリゴンについての総和値を算出し、２つのモデルの総和値の平均値が所定のしきい値より小さい場合に適合（類似）判定するようにしたので、簡易な角度非依存照合で類似と判定されたモデルに対して再判定を行い、規制する必要のないポリゴンモデルを誤って規制することがないように本発明第９の態様より更に判定精度を上げることが可能となる。
【００３１】
また、本発明第１１の態様では、前記規制モデルに含まれるポリゴンの数が所定の値以下になるようにポリゴンを削減する第２のポリゴン削減手段と、前記ポリゴンが削減された規制モデルに対して、当該規制モデルの基準点が３次元座標の原点になるように前記規制モデルを移動させ、前記基準点から最も遠いポリゴンまでの最長距離が所定の長さになるように前記規制モデルをスケーリング調整し、前記最長距離の方向が第１の軸（Ｚ軸）に一致するように前記規制モデルを回転させることにより、所定の位置、スケール、傾きに揃えた規制モデルを作成する第２のポリゴン正規化手段と、を備えた規制モデル正規化装置により正規化された規制モデルを受信し、受信した規制モデルを前記規制モデルデータベースに登録する規制モデル登録手段を更に有することを特徴とする。
【００３２】
本発明第１１の態様によれば、規制モデルに含まれるポリゴンの数が所定の値以下になるようにポリゴンを削減する第２のポリゴン削減手段、ポリゴンが削減された規制モデルに対して、規制モデルの基準点が３次元座標の原点になるように規制モデルを移動させ、基準点から最も遠いポリゴンまでの最長距離が所定の長さになるように規制モデルをスケーリング調整し、最長距離の方向が第１の軸（例えばＺ軸）に一致するように規制モデルを回転させることにより、所定の位置、スケール、傾きに正規化された規制モデルを作成する第２のポリゴン正規化手段を備えた規制モデル正規化装置を別途用意し、この規制モデル正規化装置から正規化された規制モデルを受信し、受信した規制モデルを規制モデルデータベースに登録するようにしたので、規制モデルデータベースの更新を遠隔地から迅速に行うことが可能となる。
【００３３】
また、本発明第１２の態様では、前記ポリゴン削減手段によるポリゴン削減前の対象モデルを、接続された立体物造形装置に出力する手段と、前記立体物造形装置による立体物の造形処理と並行して実行される前記ポリゴンモデル照合手段により、出力を規制すべきであると判定された場合に、前記立体物造形装置に、前記ポリゴン削減前の対象モデルの出力中止命令を出力する手段と、を更に備えることを特徴とする。
【００３４】
本発明第１２の態様によれば、ポリゴン削減前の対象モデルを、接続された立体物造形装置に出力し、並行して実行されるポリゴンモデル照合手段による照合の結果、出力を規制すべきであると判定された場合に、立体物造形装置に、ポリゴン削減前の対象モデルの出力中止命令を出力するようにしたので、時間のかかる立体物の造形を遅延させることなく、出力不適の場合にのみ、出力を中止することが可能となる。
【発明の効果】
【００３５】
本発明によれば、人間による判断を行わなくても、的確にポリゴンモデルの出力規制を行うことが可能となる。
【図面の簡単な説明】
【００３６】
【図１】本発明の一実施形態に係る立体物造形用データ出力規制装置１００を含む立体物造形システムのハードウェア構成図である。
【図２】本発明の一実施形態に係る立体物造形用データ出力規制装置の構成を示す機能ブロック図である。
【図３】本発明の一実施形態に係る立体物造形用データ出力規制装置の処理概要を示すフローチャートである。
【図４】ステップＳ１００のポリゴン削減処理の詳細を示すフローチャートである。
【図５】ポリゴン削減手段１０によるグループ分類処理の詳細を示すフローチャートである。
【図６】ポリゴン削除の基本原理を示す図である。
【図７】ポリゴン削除処理の詳細を示すフローチャートである。
【図８】ポリゴン削除処理により生じる問題を説明するための図である。
【図９】隔離された小体積グループの削除処理の詳細を示すフローチャートである。
【図１０】図９のステップＳ４４における最小間隔の算出処理の詳細を示すフローチャートである。
【図１１】ステップＳ２００のポリゴン正規化処理の詳細を示すフローチャートである。
【図１２】ポリゴン正規化処理の概要を示す図である。
【図１３】ポリゴン照合処理の概要を示すフローチャートである。
【図１４】総面積に基づくポリゴン照合処理の詳細を示すフローチャートである。
【図１５】体積に基づくポリゴン照合処理の詳細を示すフローチャートである。
【図１６】座標値に基づくポリゴン照合処理の詳細を示すフローチャートである。
【図１７】変形例における立体物造形用データ出力規制装置のハードウェア構成図である。
【図１８】正規化前のオリジナルのポリゴンモデルを示す図である。
【図１９】ステップＳ２３０におけるスケーリングと原点移動後のポリゴンモデルを示す図である。
【図２０】図１９の状態のまま、視点のみをＸＺ平面に変換した図である。
【図２１】図２０の状態からステップＳ２４０におけるＹ軸中心回転を行った後のポリゴンモデルを示す図である。
【図２２】図２１の状態のまま、視点のみを変換した斜視図である。
【図２３】図２１、図２２の状態のまま、視点のみをＹＺ平面に変換した図である。
【図２４】図２３の状態からステップＳ２５０におけるＸ軸中心回転を行った後のポリゴンモデルを示す図である。
【図２５】図２４の状態のまま、視点のみを変換した斜視図である。
【図２６】図２４、図２５の状態のまま、視点のみをＸＹ平面に変換した図である。
【図２７】図２６の状態からステップＳ２６０におけるＺ軸中心回転を行った後のポリゴンモデルを示す図である。
【図２８】図２７の状態のまま、視点のみを変換した斜視図である。
【発明を実施するための形態】
【００３７】
以下、本発明の好適な実施形態について図面を参照して詳細に説明する。
＜１．装置構成＞
図１は、本発明の一実施形態に係る立体物造形用データ出力規制装置１００を含む立体物造形システムのハードウェア構成図である。本実施形態に係る立体物造形用データ出力規制装置１００は、汎用のコンピュータで実現することができ、図１に示すように、ＣＰＵ（Central Processing Unit）１と、コンピュータのメインメモリであるＲＡＭ（Random Access Memory）２と、ＣＰＵ１が実行するプログラムやデータを記憶するためのハードディスク、フラッシュメモリ等の大容量の記憶装置３と、キーボード、マウス等のキー入力Ｉ／Ｆ（インターフェース）４と、３Ｄプリンタやデータ記憶媒体等の外部装置とデータ通信するためのデータ入出力Ｉ／Ｆ（インターフェース）５と、液晶ディスプレイ等の表示デバイスである表示部６と、を備え、互いにバスを介して接続されている。３Ｄプリンタ７は、汎用の３Ｄプリンタであり、立体物を表現したポリゴンモデルである立体物造形用データを基に樹脂、石膏等の素材を加工して立体物を造形する立体物造形装置である。３Ｄプリンタ７は、データ処理部７ａと出力部７ｂを有している。３Ｄプリンタ７のデータ処理部７ａは、データ入出力Ｉ／Ｆ５に接続されており、データ入出力Ｉ／Ｆ５から受け取った立体物造形用データを基に、出力部７ｂが立体物を造形するようになっている。図１では、立体物造形用データ出力規制装置１００と３Ｄプリンタ７は分離した形態で示されているが、現在市販されている殆どの３Ｄプリンタ製品には立体物造形用データ出力規制装置１００の構成要素である、ＣＰＵ１、ＲＡＭ２、記憶装置３、キー入力Ｉ／Ｆ４（汎用コンピュータ向けキーボード・マウスではなく、テンキーレベルの数種のボタン）、データ入出力Ｉ／Ｆ５、表示部６（数行の文字を表示可能な小型液晶パネル、タッチパネルを重畳させキー入力Ｉ／Ｆ４を兼ねることも多い）も小規模ながら重複して備えている。従って、３Ｄプリンタ７自体が外部記憶媒体経由で立体物造形用データを直接受け取り、単独で立体物を造形する運用も可能になっている（特に民生用の３Ｄプリンタではこちらの実施形態の方が多い）。すなわち、図１に示した立体物造形システムを１つの筐体に収めて、“３Ｄプリンタ”という製品として流通することも多い。
【００３８】
図２は、本実施形態に係る立体物造形用データ出力規制装置の構成を示す機能ブロック図である。図２において、１０はポリゴン削減手段、２０はポリゴン正規化手段、３０はポリゴンモデル照合手段、４０は対象モデル記憶手段、５０は規制モデルデータベースである。
【００３９】
ポリゴン削減手段１０は、対象モデル記憶手段４０に記憶されたポリゴンモデルである対象モデルを構成するポリゴンを削減する。ポリゴン正規化手段２０は、ポリゴンが削減されたポリゴンモデルに対して、所定の位置、スケール、アングルに正規化する処理を行う。ポリゴンモデル照合手段３０は、正規化後のポリゴンモデルを、規制モデルデータベース５０内のポリゴンモデルである各規制モデルと照合し、出力適否の判定を行う。
【００４０】
ポリゴン削減手段１０、ポリゴン正規化手段２０、ポリゴンモデル照合手段３０は、ＣＰＵ１が、記憶装置３に記憶されているプログラムを実行することにより実現される。対象モデル記憶手段４０は、出力適否の判定対象となるポリゴンモデルである対象モデルを記憶した記憶手段であり、記憶装置３により実現される。ポリゴンモデルとは、ポリゴンの集合により三次元空間における所定の立体形状を表現したデータであり、３Ｄプリンタ等の立体物造形装置に立体物造形用データとして出力されるものである。本実施形態では、ポリゴンモデルのデータ形式としてＳＴＬ（Standard Triangulated Language）を採用している。規制モデルデータベース５０は、規制対象となるポリゴンモデルである規制モデルを記憶してデータベース化したものであり、記憶装置３により実現される。
【００４１】
図２に示した各構成手段は、現実には図１に示したように、コンピュータおよびその周辺機器等のハードウェアに専用のプログラムを搭載することにより実現される。すなわち、コンピュータが、専用のプログラムに従って各手段の内容を実行することになる。なお、本明細書において、コンピュータとは、ＣＰＵ等の演算処理部を有し、データ処理が可能な装置を意味し、パーソナルコンピュータなどの汎用コンピュータだけでなく、製品としての“３Ｄプリンタ”に組み込まれたボードコンピュータも含む。
【００４２】
図１に示した記憶装置３には、ＣＰＵ１を動作させ、コンピュータを、立体物造形用データ出力規制装置として機能させるための専用のプログラムが実装されている。この専用のプログラムを実行することにより、ＣＰＵ１は、ポリゴン削減手段１０、ポリゴン正規化手段２０、ポリゴンモデル照合手段３０としての機能を実現することになる。また、記憶装置３は、対象モデル記憶手段４０、規制モデルデータベース５０として機能するだけでなく、立体物造形用データ出力規制装置としての処理に必要な様々なデータを記憶する。
【００４３】
＜２．処理動作＞
＜２．１．前処理＞
次に、図１、図２に示した立体物造形用データ出力規制装置の処理動作について説明する。まず、規制モデルデータベース５０に登録する対象となるポリゴンモデルである規制モデルを作製する。これは、規制対象となるポリゴンモデルである規制モデルについて、ポリゴンの削減、ポリゴンの正規化をすることにより行われる。この結果、規制モデルを構成するポリゴンの数が、所定数以下となり、正規化されて規制モデルデータベース５０に登録される。規制モデルのポリゴンの削減、ポリゴンの正規化については、後述する立体物造形用データ出力規制装置における処理と同様に行うことができる。規制モデルのポリゴンの削減、ポリゴンの正規化は、立体物造形用データ出力規制装置で行ってもよいし、別のコンピュータで同様のプログラムを実行することにより行ってもよい。
【００４４】
＜２．２．処理概要＞
次に、図１、図２に示した立体物造形用データ出力規制装置の処理動作について説明する。図３は、本発明の一実施形態に係る立体物造形用データ出力規制装置の処理概要を示すフローチャートである。まず、ポリゴン削減手段１０が、対象モデル記憶手段４０から、適否判定対象のポリゴンモデルである対象モデルを読み込み、対象モデルを構成するポリゴンを削減する（ステップＳ１００）。次に、ポリゴンが削減された対象モデルの正規化を行う（ステップＳ２００）。続いて、正規化された対象モデルと、規制モデルデータベース５０に登録されたポリゴンモデルである規制モデルとの照合を行う（ステップＳ３００）。
【００４５】
＜２．３．ポリゴン削減処理＞
まず、ステップＳ１００のポリゴン削減処理について説明する。図４は、ポリゴン削減処理の詳細を示すフローチャートである。図４の例では、対象モデルが複数の領域に分類され、領域ごとのポリゴン集合として記録されている場合を示している。領域とは、１つの立体物を複数に分けた領域であり、部品により組み立てられた物品であれば、各部品に相当するものである。まず、ポリゴン削減手段１０が、対象モデル記憶手段４０から、１つの領域について対象モデルのポリゴン集合を読み込み、複数のグループに分類する（ステップＳ１１０）。次に、各グループのサーフェースデータに対して、ポリゴン削減手段１０は、ポリゴン削除処理を実行する（ステップＳ１２０）。ポリゴン削減手段１０は、全グループについてポリゴン削除処理が終了したか否かを判定し（ステップＳ１３０）、全グループについて終了していない場合は、未処理のグループに対してステップＳ１２０のポリゴン削除処理を実行する。全グループに対するポリゴン削除処理が終了した場合は、ポリゴン削減手段１０は、隔離された小体積グループの削除を行う（ステップＳ１４０）。続いて、ポリゴン削減手段１０は、全グループのポリゴン集合の合成を行う（ステップＳ１５０）。ポリゴン削減手段１０が、全領域について処理が終了したか否かを判定し（ステップＳ１６０）、全領域について終了していない場合は、未処理の領域に対してステップＳ１１０〜Ｓ１５０の処理を実行する。全領域に対する処理が終了した場合は、ポリゴン削減手段１０が、全領域の領域別ポリゴン集合の合成を行う（ステップＳ１７０）。
【００４６】
＜２．３．１．グループ分類処理＞
まず、ステップＳ１１０におけるグループ分類処理について説明する。図５は、ポリゴン削減手段１０によるグループ分類処理の詳細を示すフローチャートである。ポリゴン削減手段１０は、まず、初期設定を行う（ステップＳ１１）。具体的には、読み込んだ領域別ポリゴン集合を構成するポリゴン数Ｐ、ポリゴンを特定する変数ｐ（ｐ＝０，・・・，Ｐ−１）、探索ステータスＳ（ｐ）、グループ属性Ｇ（ｐ）、グループを特定する変数ｇを設定する。探索ステータスＳ（ｐ）は、０、１、２のいずれかの値をとる。Ｓ（ｐ）＝０はグループに未分類の状態、Ｓ（ｐ）＝１はグループに分類された状態、Ｓ（ｐ）＝２は、そのポリゴンに隣接するポリゴンである隣接ポリゴンがグループに分類された状態を示す。さらに、ステップＳ１１においては、ｐ＝０，・・・，Ｐ−１の全てのｐについてＳ（ｐ）＝Ｇ（ｐ）＝０、ｇ＝１と初期設定する。
【００４７】
次に、全ポリゴンより、Ｓ（ｐ）＝Ｇ（ｐ）＝０となるポリゴンｐを１つ抽出する（ステップＳ１２）。初期状態では、全てＳ（ｐ）＝Ｇ（ｐ）＝０であるので、初回は必ず抽出が行われる。Ｓ（ｐ）＝Ｇ（ｐ）＝０となるポリゴンｐが複数存在する場合は、例えばｐの値が最も小さいものを抽出する。ステップＳ１２において、Ｓ（ｐ）＝Ｇ（ｐ）＝０となるポリゴンｐが存在しない場合、すなわち、全てのｐ＝０，・・・，Ｐ−１について、Ｓ（ｐ）＝２である場合、ｇ−１個のグループに分離できたものとしてグループ分類処理を終了する。なお、ステップＳ１２において、Ｓ（ｐ）＝１である状態は存在しないため、Ｓ（ｐ）は“０”か“２”のいずれかの状態である。Ｓ（ｐ）＝Ｇ（ｐ）＝０となるポリゴンｐが抽出できた場合は、抽出したポリゴンｐに対応する探索ステータスＳ（ｐ）＝１、グループ属性Ｇ（ｐ）＝ｇに設定する。
【００４８】
ステップＳ１２において、Ｓ（ｐ）＝Ｇ（ｐ）＝０となるポリゴンｐを１つ抽出し、抽出したポリゴンｐに対応する探索ステータスＳ（ｐ）＝１、グループ属性Ｇ（ｐ）＝ｇに設定した場合は、全ポリゴンより、Ｓ（ｑ）＝１となるポリゴンｑを１つ抽出する（ステップＳ１３）。ｑはポリゴンを特定する変数であり、ポリゴンｐと同様、ｑ＝０，・・・，Ｐ−１内のいずれかの整数値をとる。Ｓ（ｑ）＝１となるポリゴンｑが複数存在する場合は、例えばｑの値が最も小さいものを抽出する。ステップＳ１３において、Ｓ（ｑ）＝１となるポリゴンｑが存在しない場合、すなわち、全てのＳ（ｑ）＝０または２である場合、グループを特定する変数ｇを１インクリメント（ｇ←ｇ＋１）する（ステップＳ１４）。そしてステップＳ１２に戻り、次のグループへの分類を行う。
【００４９】
ステップＳ１３において、Ｓ（ｑ）＝１となるポリゴンｑを１つ抽出した場合、全ポリゴンより、Ｓ（ｒ）＝Ｇ（ｒ）＝０であって、抽出されたポリゴンｑと２頂点を共有する隣接ポリゴンｒを全て抽出する（ステップＳ１５）。ｒはポリゴンを特定する変数であり、ポリゴンｐ、ｑと同様、ｒ＝０，・・・，Ｐ−１内のいずれかの整数値をとる。“ポリゴンｑと２頂点を共有する”とは、ポリゴンｑと一つの辺を共有することを意味する。すなわち、隣接ポリゴンｒは一つの辺を共有することによりポリゴンｑと隣接するポリゴンである。抽出された隣接ポリゴンについては、それぞれ探索ステータスＳ（ｒ）＝１、グループ属性Ｇ（ｒ）＝ｇに設定する。
【００５０】
次に、ポリゴンｑの探索ステータスＳ（ｑ）＝２に設定する（ステップＳ１６）。すなわち、ポリゴンｑについては、隣接ポリゴンを設定した後の状態とする。そして、ステップＳ１３に戻って、全ポリゴンの中から、Ｓ（ｑ）＝１となるポリゴンｑを１つ抽出する。
【００５１】
図５に示したフローチャートでは、ステップＳ１２、Ｓ１３、Ｓ１４で構成されるループと、ステップＳ１３、Ｓ１５、Ｓ１６で構成されるループの２つのループ処理が存在する。ステップＳ１２、Ｓ１３、Ｓ１４で構成されるループでは、グループに未分類のポリゴンを抽出してグループに分類し（ステップＳ１２）、グループに分類済みのポリゴンの中から１つを隣接ポリゴン探索用のポリゴンとして抽出できない場合（ステップＳ１３）は、そのグループに分類すべきポリゴンは、存在しないものとして、次のグループに移行（ｇ←ｇ＋１）する（ステップＳ１４）。ステップＳ１２、Ｓ１３、Ｓ１４で構成されるループでは、連続する一塊のポリゴン群を一つのグループとして分類する。したがって、ステップＳ１３において、Ｓ（ｑ）＝１となるポリゴンが存在しない場合には、グループに分類済みのいずれかのポリゴンに隣接するポリゴンが存在しないことになるので、グループｇへの分類を終え、グループｇ＋１への分類に移行するのである。
【００５２】
ステップＳ１３、Ｓ１５、Ｓ１６で構成されるループでは、グループに分類済みのポリゴンの中から１つを隣接ポリゴン探索用のポリゴンｑとして抽出し（ステップＳ１３）、全ポリゴンの中からポリゴンｑと２頂点を共有するポリゴンを隣接ポリゴンｒとして抽出し（ステップＳ１５）、抽出できた場合も抽出できない場合も、探索用のポリゴンｑの探索ステータスＳ（ｑ）を、ポリゴンｑに隣接するポリゴンの探索を終えた状態であるＳ（ｑ）＝２に設定する。
【００５３】
ステップＳ１２、Ｓ１３、Ｓ１４で構成されるループと、ステップＳ１３、Ｓ１５、Ｓ１６で構成されるループの２つのループ処理を用いることにより、全Ｐ個のポリゴンが、２頂点を共有して連続するポリゴン群ごとにグループに分類される。１頂点しか共有しないポリゴンのみで隣接している場合は、別のグループとして分類されることになる。図５に従った処理を実行することにより領域別ポリゴン集合を構成するポリゴンは複数のグループに分類されることになる。
【００５４】
＜２．３．２．ポリゴン削除処理＞
次に、ステップＳ１２０におけるポリゴン削減手段１０によるポリゴン削除処理について説明する。図６は、ポリゴン削除の基本原理を示す図である。サーフェースデータは、現実には、空間における三次元の値をもつポリゴン群であるが、図６の例では、説明の便宜上、二次元の値をもつポリゴン群を示している。図６（ａ）の例では、削除前、１８個のポリゴンからなるポリゴン群を示している。
【００５５】
図７は、ポリゴン削減手段１０によるポリゴン削除処理の詳細を示すフローチャートである。まず、ポリゴン削減手段１０は、サーフェースデータを構成する全ポリゴンを対象として、各ポリゴンの面積および周長を算出する（ステップＳ２１）。次に、ポリゴン削減手段１０は、算出された面積と周長を乗じた値が最小となるポリゴンを削除対象ポリゴンとして選定する（ステップＳ２２）。図６の例では、図６（ｂ）に示すように、３個の頂点Ｅ、Ｊ、Ｋで構成されるポリゴンＥＪＫが削除対象ポリゴンとして選定される。
【００５６】
続いて、ポリゴン削減手段１０は、削除対象ポリゴンの３辺のうち最短の１辺を削除対象辺として選定し、選定した削除対象辺の中点を算出する（ステップＳ２３）。図６の例では、図６（ｃ）に示すように、削除対象ポリゴンＥＪＫの辺ＪＫが削除対象辺として選定される。さらに、辺ＪＫの中点Ｏが算出される。
【００５７】
次に、ポリゴン削減手段１０は、削除対象ポリゴンを削除する（ステップＳ２４）。これによりポリゴン数が１つ削減されることになる。次に、ポリゴン削減手段１０は、削除対象ポリゴンの削除対象辺と頂点を共有していた削除頂点共有ポリゴンを順次選定する（ステップＳ２５）。削除対象ポリゴンの削除対象辺と２頂点を共有（すなわち辺を共有）している削除頂点共有ポリゴンが選定された場合には、ポリゴン削減手段１０は、その削除頂点共有ポリゴンを削除する（ステップＳ２６）。図６の例では、３個の頂点Ｊ、Ｋ、Ｎで構成されるポリゴンＪＫＮが削除される。これによりさらにポリゴン数が１つ削減されることになる。削除対象ポリゴンの削除対象辺と１頂点を共有している削除頂点共有ポリゴンが選定された場合には、ポリゴン削減手段１０は、共有頂点をステップＳ２３で算出された中点に補正し、面積および周長を再算出する（ステップＳ２７）。図６の例では、図６（ｃ）と図６（ｄ）を比較するとわかるように、ポリゴンＥＨＪ→ポリゴンＥＨＯ、ポリゴンＥＦＫ→ポリゴンＥＦＯ、ポリゴンＨＪＭ→ポリゴンＨＯＭ、ポリゴンＪＭＮ→ポリゴンＯＭＮ、ポリゴンＦＫＮ→ポリゴンＦＯＮに変更される。この結果、図６の例では、図６（ａ）の時点では、１８個あったポリゴンが、図６（ｄ）の時点では、１６個に削減される。
【００５８】
ステップＳ２５〜ステップＳ２７の処理を終えたら、ポリゴン削減手段１０は、削減後の全ポリゴン数が、設定された目標値以下となっているか否かを判定する（ステップＳ２８）。目標値としては、事前に任意の値を設定することができる。判定の結果、全ポリゴン数が目標値以下となっていない場合は、ステップＳ２２に戻って、ポリゴン削減手段１０は、残っているポリゴンの中から、面積と周長を乗じた値が最小となるポリゴンを削除対象ポリゴンとして選定する。ステップＳ２８における判定の結果、全ポリゴン数が目標値以下である場合は、ポリゴン削減処理を終了する。図７のフローチャートに従った処理を実行することにより、各グループについて設定された目標値以下になるように、ポリゴン数が削減されることになる。
【００５９】
＜２．３．３．小体積グループ削除処理＞
次に、ステップＳ１４０におけるポリゴン削減手段１０による隔離された小体積グループの削除処理について説明する。ここで、隔離された小体積グループの削除処理の説明に先立ち、隔離された小体積グループの削除処理を行う理由について説明しておく。図８は、ポリゴン削除処理により生じる問題を説明するための図である。図８（ａ）は、ステップＳ１１０のグループ分類処理を終えた直後の２グループのポリゴン群を示している。図８（ａ）の例では、頂点Ｄ、Ｅ、Ｋを含む左側のグループと、頂点Ｄ’、Ｅ’、Ｋ’を含む右側のグループが存在する。頂点ＤとＤ’、頂点ＥとＥ’、頂点ＫとＫ’がそれぞれ３Ｄプリンタの解像度以下である場合、この２グループのポリゴン群を３Ｄプリンタで出力すると、頂点ＤとＤ’、頂点ＥとＥ’、頂点ＫとＫ’は樹脂等により連結され、２グループは連結した物体として出力される。すなわち、２グループは物理的には接着されている。
【００６０】
図８（ａ）に示した右側のグループのポリゴン群に対して、ステップＳ１２０におけるポリゴン削除処理を実行すると、図８（ｂ）に示すように、ポリゴンＥ’ＦＫ’が削除対象ポリゴンとして選定される。さらに、図８（ｃ）に示すように、削除対象ポリゴンＥ’ＦＫ’の最短辺Ｅ’Ｆが削除対象辺として選定され、辺Ｅ’Ｆの中点Ｏが算出される。そして、図８（ｄ）に示すように、削除対象ポリゴンＥ’ＦＫ’と、削除頂点共有ポリゴンＤ’Ｅ’Ｆが削除される。
【００６１】
図８（ａ）と図８（ｄ）を比較するとわかるように、左右の２つのグループは、ポリゴン削除処理前に比べて、ポリゴン削除処理後には、より離れてしまっている。図８（ｄ）に示した２グループの距離が、３Ｄプリンタの解像度を超えると、２グループのポリゴン群を３Ｄプリンタで出力した場合、２グループは別の物体として出力される。２つのグループがともに大きな物体となれば、問題はない。しかし、一つが非常に小さな物体となる場合、例えば、一方のグループが本体であって、他方のグループが本体に付属するヒゲのようなものである場合、本体と別に出力されたヒゲは、３Ｄプリンタ内に紛れ込み、機械詰まり等の問題を引き起こす恐れがある。このような問題を除去するため、上述のヒゲのような隔離された小体積グループの削除処理を行うのである。
【００６２】
図９は、ポリゴン削減手段１０による隔離された小体積グループの削除処理の詳細を示すフローチャートである。ポリゴン削減手段１０は、まず、グループごとに全ポリゴンの全頂点を対象として、Ｘ、Ｙ、Ｚぞれぞれの方向の最大値および最小値を算出する（ステップＳ４１）。この結果、グループｇに対して、最小値Ｘｍｉｎ（ｇ）、最大値Ｘｍａｘ（ｇ）、最小値Ｙｍｉｎ（ｇ）、最大値Ｙｍａｘ（ｇ）、最小値Ｚｍｉｎ（ｇ）、最大値Ｚｍａｘ（ｇ）が得られる。次に、ポリゴン削減手段１０は、グループごとに外接直方体の体積を算出する（ステップＳ４２）。具体的には、以下の〔数式１〕に従った処理を実行することにより、グループｇの外接直方体の体積Ｖ（ｇ）を算出する。
【００６３】
〔数式１〕
Ｖ（ｇ）＝（Ｘｍａｘ（ｇ）−Ｘｍｉｎ（ｇ））×（Ｙｍａｘ（ｇ）−Ｙｍｉｎ（ｇ））×（Ｚｍａｘ（ｇ）−Ｚｍｉｎ（ｇ））
【００６４】
ポリゴン削減手段１０は、全グループに対してステップＳ４１、Ｓ４２の処理を実行する。これにより、全グループについて、外接直方体の体積が得られる。次に、ポリゴン削減手段１０は、全グループの中で外接直方体の体積が最小となるグループを特定する（ステップＳ４３）。そして、ポリゴン削減手段１０は、特定したグループと他の全てのグループとの最小間隔を算出する（ステップＳ４４）。ステップＳ４４における最小間隔の算出処理の詳細については後述する。
【００６５】
続いて、ポリゴン削減手段１０は、ステップＳ４４において算出された最小間隔が所定のしきい値以上か否かを判定する（ステップＳ４５）。最小間隔と比較するための所定のしきい値としては、３Ｄプリンタ出力時に０．２ｍｍに相当する数値とすることが好ましい。判定の結果、最小間隔が所定のしきい値以上である場合は、体積最小のグループが、最も近いグループとも所定の距離以上離れていることになるので、ポリゴン削減手段１０は、体積最小のグループを削除する処理を行う（ステップＳ４６）。ステップＳ４５における判定の結果、最小間隔が所定のしきい値未満である場合は、体積最小のグループが、最も近いグループと３Ｄプリンタの解像度以下に近接していることになるので、ポリゴン削減手段１０は、体積最小のグループを削除する処理を行わない。
【００６６】
ステップＳ４６におけるグループの削除を行った場合、削除を行わなかった場合のいずれにおいても、そのグループについては処理済みとする。そして、ステップＳ４３に戻って、未処理のグループの中で外接直方体の体積が最小となるグループを特定する。ステップＳ４３〜ステップＳ４６の処理を繰り返し、全てのグループに対する処理を終えたら、隔離された小体積グループの削除処理を終了する。
【００６７】
ステップＳ４４における最小間隔の算出処理の詳細について説明する。図１０は、図９のステップＳ４４における最小間隔の算出処理の詳細を示すフローチャートである。ポリゴン削減手段１０は、初期値として、最小間隔を示す変数ｄｍｉｎに所定以上の値を設定する。ｄｍｉｎに与える初期値としては、グループ間の最小間隔としてあり得ない大きな値を設定しておけばよい。そして、ポリゴン削減手段１０は、全グループの中から、グループｇより体積が大きい１つのグループｈを抽出する（ステップＳ４７）。この結果、グループｈについて、最小値Ｘｍｉｎ（ｈ）、最大値Ｘｍａｘ（ｈ）、最小値Ｙｍｉｎ（ｈ）、最大値Ｙｍａｘ（ｈ）、最小値Ｚｍｉｎ（ｈ）、最大値Ｚｍａｘ（ｈ）が得られる。次に、ポリゴン削減手段１０は、Ｘ、Ｙ、Ｚの各方向別に２グループ間の差分の最小値を算出する（ステップＳ４８）。具体的には、以下の〔数式２〕に従った処理を実行することにより、Ｘ方向の差分の最小値ｄｘ、Ｙ方向の差分の最小値ｄｙ、Ｚ方向の差分の最小値ｄｚを算出する。
【００６８】
〔数式２〕
ｄｘ＝Ｍｉｎ｛｜Ｘｍａｘ（ｇ）−Ｘｍｉｎ（ｈ）｜，｜Ｘｍｉｎ（ｇ）−Ｘｍａｘ（ｈ）｜｝
ｄｙ＝Ｍｉｎ｛｜Ｙｍａｘ（ｇ）−Ｙｍｉｎ（ｈ）｜，｜Ｙｍｉｎ（ｇ）−Ｙｍａｘ（ｈ）｜｝
ｄｚ＝Ｍｉｎ｛｜Ｚｍａｘ（ｇ）−Ｚｍｉｎ（ｈ）｜，｜Ｚｍｉｎ（ｇ）−Ｚｍａｘ（ｈ）｜｝
【００６９】
続いて、ポリゴン削減手段１０は、算出された方向別最小値のうち最大のものをグループ間最小値とし、グループ間最小値を、既に処理済みの他のグループ間における全グループ間最小値と比較し、小さい方を全グループ間最小値とする処理を行う（ステップＳ４９）。具体的には、ステップＳ４８において算出された３つの方向別最小値ｄｘ、ｄｙ、ｄｚのうち、最大の値をとるグループ間最小値Ｍａｘ（ｄｘ、ｄｙ、ｄｚ）とｄｍｉｎを比較し、Ｍａｘ（ｄｘ、ｄｙ、ｄｚ）＜ｄｍｉｎの場合、ｄｍｉｎ＝Ｍａｘ（ｄｘ、ｄｙ、ｄｚ）とする。これにより、ｄｍｉｎには、グループ間最小値の中で最小の値となる全グループ間最小値が記録されることになる。
【００７０】
ステップＳ４７、Ｓ４８、Ｓ４９の処理を繰り返して実行し、グループｇより体積が大きい全てのグループに対する処理を終えたら、図１０に示した最小間隔の算出処理を終了し、図９のステップＳ４５に進んで、最小間隔ｄｍｉｎとしきい値との比較を行うことになる。
【００７１】
＜２．３．４．ポリゴン集合の合成＞
図４のフローチャートに示したように、ステップＳ１５０においては、ポリゴン削減手段１０が、全グループのポリゴン集合の合成を行って更新された領域別ポリゴン集合を得る。また、ステップＳ１７０においては、ポリゴン削減手段１０が、全領域の領域別ポリゴン集合の合成を行って合成ポリゴン集合を得る。いずれの合成処理も、ヘッダ部を除く領域別ポリゴン集合を単純に結合し、ヘッダ部に合算されたポリゴン数を記録することにより行われる。合成ポリゴン集合は、ポリゴンが削減された対象モデルとなる。
【００７２】
＜２．４．ポリゴン正規化処理＞
次に、ステップＳ２００のポリゴン正規化処理について説明する。図１１は、ポリゴン正規化処理の詳細を示すフローチャートである。ここでは、ステップＳ１００においてポリゴン数が削減された対象モデルのポリゴン数Ｎ、ポリゴンを特定する変数ｉ（ｉ＝０，・・・，Ｎ−１）とし、各ポリゴンｉの頂点を（Ｘｐ（ｉ），Ｙｐ（ｉ），Ｚｐ（ｉ））と定義されたものとする。ｐは頂点番号を示しており、本実施形態では、ポリゴンが三角形であるため、ｐ＝０，１，２の３つの値をとる。
【００７３】
まず、ステップＳ１００においてポリゴン数が削減された対象モデルにおける基準点を算出する（ステップＳ２１０）。具体的には、ポリゴンモデルを構成する各ポリゴンについて、頂点の平均となる平均点を算出し、ポリゴンモデルを構成するＮ個のポリゴンの平均点の平均値をポリゴンモデルの基準点として算出する。具体的には、まず、以下の〔数式３〕に従った処理を実行することにより、各ポリゴンの平均点（Ｘｃ（ｉ），Ｙｃ（ｉ），Ｚｃ（ｉ））を算出する。
【００７４】
〔数式３〕
Ｘｃ（ｉ）＝｛Ｘ０（ｉ）＋Ｘ１（ｉ）＋Ｘ２（ｉ）｝／３
Ｙｃ（ｉ）＝｛Ｙ０（ｉ）＋Ｙ１（ｉ）＋Ｙ２（ｉ）｝／３
Ｚｃ（ｉ）＝｛Ｚ０（ｉ）＋Ｚ１（ｉ）＋Ｚ２（ｉ）｝／３
【００７５】
次に、以下の〔数式４〕に従った処理を実行することにより、ポリゴンモデルの基準点（Ｘｇ，Ｙｇ，Ｚｇ）を算出する。
【００７６】
〔数式４〕
Ｘｇ＝｛Σi=0,N-1Ｘｃ（ｉ）｝／Ｎ
Ｙｇ＝｛Σi=0,N-1Ｙｃ（ｉ）｝／Ｎ
Ｚｇ＝｛Σi=0,N-1Ｚｃ（ｉ）｝／Ｎ
【００７７】
上記〔数式４〕において、Σの添え字の“ｉ＝０，Ｎ−１”は、ｉが０からＮ−１の全ての整数をとる場合について、総和を求めることを示している。以下の数式においても同様である。次に、対象モデルの主軸を求める（ステップＳ２２０）。具体的には、基準点（Ｘｇ，Ｙｇ，Ｚｇ）から各ポリゴンの平均点までの距離を算出し、そのうち最長である最長距離を主軸とする。具体的には、以下の〔数式５〕に従った処理を実行することにより、主軸の長さＬｍａｘ（最長距離）を算出する。
【００７８】
〔数式５〕
Ｌｍａｘ
＝Ｍａｘi=0,N-1｛（Ｘｃ（ｉ）−Ｘｇ）2＋（Ｙｃ（ｉ）−Ｙｇ）2＋（Ｚｃ（ｉ）−Ｚｇ）2｝1/2
＝｛（Ｘｃ（ｉｍ）−Ｘｇ）2＋（Ｙｃ（ｉｍ）−Ｙｇ）2＋（Ｚｃ（ｉｍ）−Ｚｇ）2｝1/2
【００７９】
上記〔数式５〕において、Ｍａｘの添え字の“ｉ＝０，Ｎ−１”は、ｉが０からＮ−１の全ての整数をとる場合における、最大値を選択することを示している。以下の数式においても同様である。また、“ｉｍ”は、基準点との距離が最大となるポリゴンである最遠ポリゴンのポリゴン番号を示している。次に、対象モデルの移動およびスケーリングを行う（ステップＳ２３０）。具体的には、基準点（Ｘｇ，Ｙｇ，Ｚｇ）が原点（０，０，０）となるように移動した後、スケーリングとして、主軸の長さが基準長になるように、サイズ変更を行う。図１２は、ポリゴン正規化処理の概要を示す図である。図１２において示した直方体は、対象モデルの一例である。図１２（ａ）は、ＸＹＺの三次元空間において対象モデルの主軸が求められた状態を示している。ステップＳ２３０においては、以下の〔数式６〕に従った処理を実行することにより、各ポリゴンの頂点座標および平均点座標を補正する。
【００８０】
〔数式６〕
Ｘｐ'（ｉ）＝｛Ｘｐ（ｉ）−Ｘｇ｝×１００／Ｌｍａｘ
Ｙｐ'（ｉ）＝｛Ｙｐ（ｉ）−Ｙｇ｝×１００／Ｌｍａｘ
Ｚｐ'（ｉ）＝｛Ｚｐ（ｉ）−Ｚｇ｝×１００／Ｌｍａｘ
Ｘｃ'（ｉ）＝｛Ｘ０'（ｉ）＋Ｘ１'（ｉ）＋Ｘ２'（ｉ）｝／３
Ｙｃ'（ｉ）＝｛Ｙ０'（ｉ）＋Ｙ１'（ｉ）＋Ｙ２'（ｉ）｝／３
Ｚｃ'（ｉ）＝｛Ｚ０'（ｉ）＋Ｚ１'（ｉ）＋Ｚ２'（ｉ）｝／３
【００８１】
上記〔数式６〕は、上記基準長を“１００”とした場合を示している。ステップＳ２３０の処理により、各ポリゴンｉの頂点は、（Ｘｐ'（ｉ），Ｙｐ'（ｉ），Ｚｐ'（ｉ））、各ポリゴンｉの平均点は（Ｘｃ'（ｉ），Ｙｃ'（ｉ），Ｚｃ'（ｉ））となる。また、対象モデルは、図１２（ｂ）に示すように、基準点が原点（０，０，０）と一致し、主軸の長さが基準長となる。
【００８２】
次に、ＸＺ座標上で主軸をＺ軸正方向に揃えるようにＹ軸中心回転を行う（ステップＳ２４０）。具体的には、まず、以下の〔数式７〕に従った処理を実行することにより、主軸とＺ軸正方向との角度Ａｎｇ、最遠ポリゴンの平均点Ｚ座標Ｚｃ''（ｉｍ）を求める。
【００８３】
〔数式７〕
Ａｎｇ＝−ｔａｎ-1（Ｘｃ'（ｉｍ）／Ｚｃ'（ｉｍ））
Ｚｃ''（ｉｍ）＝ｃｏｓ（Ａｎｇ）×Ｚｃ'（ｉｍ）−ｓｉｎ（Ａｎｇ）×Ｘｃ'（ｉｍ）
【００８４】
さらに、Ｚｃ''（ｉｍ）の値に応じて場合分けし、以下の〔数式８〕に従った処理を実行することにより、回転後の対象モデルを求める。
【００８５】
〔数式８〕
ｉ＝０，・・・，Ｎ−１、ｐ＝０，１，２において、
１）Ｚｃ''（ｉｍ）≧０の場合
Ｚｐ''（ｉ）＝ｃｏｓ（Ａｎｇ）×Ｚｐ'（ｉ）−ｓｉｎ（Ａｎｇ）×Ｘｐ'（ｉ）
Ｘｐ''（ｉ）＝ｓｉｎ（Ａｎｇ）×Ｚｐ'（ｉ）＋ｃｏｓ（Ａｎｇ）×Ｘｐ'（ｉ）
Ｚｃ''（ｉｍ）＝ｃｏｓ（Ａｎｇ）×Ｚｃ'（ｉｍ）−ｓｉｎ（Ａｎｇ）×Ｘｃ'（ｉｍ）
Ｘｃ''（ｉｍ）＝ｓｉｎ（Ａｎｇ）×Ｚｃ'（ｉｍ）＋ｃｏｓ（Ａｎｇ）×Ｘｃ'（ｉｍ）
２）Ｚｃ''（ｉｍ）＜０の場合
Ｚｐ''（ｉ）＝−ｃｏｓ（Ａｎｇ）×Ｚｐ'（ｉ）＋ｓｉｎ（Ａｎｇ）×Ｘｐ'（ｉ）
Ｘｐ''（ｉ）＝−ｓｉｎ（Ａｎｇ）×Ｚｐ'（ｉ）−ｃｏｓ（Ａｎｇ）×Ｘｐ'（ｉ）
Ｚｃ''（ｉｍ）＝−ｃｏｓ（Ａｎｇ）×Ｚｃ'（ｉｍ）＋ｓｉｎ（Ａｎｇ）×Ｘｃ'（ｉｍ）
Ｘｃ''（ｉｍ）＝−ｓｉｎ（Ａｎｇ）×Ｚｃ'（ｉｍ）−ｃｏｓ（Ａｎｇ）×Ｘｃ'（ｉｍ）
Ｚｃ''（ｉｍ）の値に関わらず、平均点を更新する。
Ｘｃ''（ｉ）＝｛Ｘ０''（ｉ）＋Ｘ１''（ｉ）＋Ｘ２''（ｉ）｝／３
Ｚｃ''（ｉ）＝｛Ｚ０''（ｉ）＋Ｚ１''（ｉ）＋Ｚ２''（ｉ）｝／３
【００８６】
ステップＳ２４０の処理により、対象モデルは、図１２（ｃ）に示すように、主軸がＸＺ平面においてＺ軸と重なるようになる。
【００８７】
次に、ＹＺ座標上で主軸をＺ軸正方向に揃えるようにＸ軸中心回転を行う（ステップＳ２５０）。具体的には、まず、以下の〔数式９〕に従った処理を実行することにより、主軸とＺ軸正方向との角度Ａｎｇ、最遠ポリゴンの平均点Ｚ座標Ｚｃ'''（ｉｍ）を求める。
【００８８】
〔数式９〕
Ａｎｇ＝−ｔａｎ-1（Ｙｃ'（ｉｍ）／Ｚｃ''（ｉｍ））
Ｚｃ'''（ｉｍ）＝ｃｏｓ（Ａｎｇ）×Ｚｃ''（ｉｍ）−ｓｉｎ（Ａｎｇ）×Ｙｃ'（ｉｍ）
【００８９】
さらに、Ｚｃ'''（ｉｍ）の値に応じて場合分けし、以下の〔数式１０〕に従った処理を実行することにより、回転後の対象モデルを求める。
【００９０】
〔数式１０〕
ｉ＝０，・・・，Ｎ−１、ｐ＝０，１，２において、
１）Ｚｃ'''（ｉｍ）≧０の場合
Ｚｐ'''（ｉ）＝ｃｏｓ（Ａｎｇ）×Ｚｐ''（ｉ）−ｓｉｎ（Ａｎｇ）×Ｙｐ'（ｉ）
Ｙｐ''（ｉ）＝ｓｉｎ（Ａｎｇ）×Ｚｐ''（ｉ）＋ｃｏｓ（Ａｎｇ）×Ｙｐ'（ｉ）
２）Ｚｃ'''（ｉｍ）＜０の場合
Ｚｐ'''（ｉ）＝−ｃｏｓ（Ａｎｇ）×Ｚｐ''（ｉ）＋ｓｉｎ（Ａｎｇ）×Ｙｐ'（ｉ）
Ｙｐ''（ｉ）＝−ｓｉｎ（Ａｎｇ）×Ｚｐ''（ｉ）−ｃｏｓ（Ａｎｇ）×Ｙｐ'（ｉ）
Ｚｃ''（ｉｍ）の値に関わらず、平均点を更新する。
Ｙｃ''（ｉ）＝｛Ｙ０''（ｉ）＋Ｙ１''（ｉ）＋Ｙ２''（ｉ）｝／３
Ｚｃ'''（ｉ）＝｛Ｚ０'''（ｉ）＋Ｚ１'''（ｉ）＋Ｚ２'''（ｉ）｝／３
【００９１】
ステップＳ２５０の処理により、対象モデルは、図１２（ｄ）に示すように、主軸がＹＺ平面においてＺ軸と重なるようになる。これにより、三次元空間において、対象モデルの主軸は、Ｚ軸と重なることになる。本実施形態では、主軸をＺ軸の正方向に重ねたが、負方向に重ねるようにしてもよい。
【００９２】
次に、対象モデルの副軸を求める（ステップＳ２６０）。具体的には、ＸＺ平面上で原点（０，０，０）から各ポリゴンの平均点までの距離を算出し、そのうち最長である最長距離を副軸とする。具体的には、以下の〔数式１１〕に従った処理を実行することにより、主軸の長さＬｍａｘ２（最長距離）を算出する。
【００９３】
〔数式１１〕
Ｌｍａｘ２＝Ｍａｘi=0,N-1｛（Ｘｃ''（ｉ））2＋（Ｙｃ（ｉ）''）2｝1/2
＝｛（Ｘｃ''（ｉｍ２））2＋（Ｙｃ（ｉｍ２）''）2｝1/2
【００９４】
次に、ＸＹ座標上で副軸をＹ軸正方向に揃えるようにＺ軸中心回転を行う（ステップＳ２７０）。具体的には、まず、以下の〔数式１２〕に従った処理を実行することにより、副軸とＺ軸正方向との角度Ａｎｇ、最遠ポリゴンの平均点Ｚ座標Ｚｃ'''（ｉｍ）を求める。
【００９５】
〔数式１２〕
Ａｎｇ＝−ｔａｎ-1（Ｘｃ''（ｉｍ２）／Ｙｃ''（ｉｍ２））
Ｙｃ'''（ｉｍ２）＝ｃｏｓ（Ａｎｇ）×Ｙｃ''（ｉｍ２）−ｓｉｎ（Ａｎｇ）×Ｘｃ''（ｉｍ２）
【００９６】
さらに、Ｙｃ'''（ｉｍ２）の値に応じて場合分けし、以下の〔数式１３〕に従った処理を実行することにより、回転後の対象モデルを求める。
【００９７】
〔数式１３〕
ｉ＝０，・・・，Ｎ−１、ｐ＝０，１，２において、
１）Ｙｃ'''（ｉｍ２）≧０の場合
Ｙｐ'''（ｉ）＝ｃｏｓ（Ａｎｇ）×Ｙｐ''（ｉ）−ｓｉｎ（Ａｎｇ）×Ｘｐ''（ｉ）
Ｘｐ'''（ｉ）＝ｓｉｎ（Ａｎｇ）×Ｙｐ''（ｉ）＋ｃｏｓ（Ａｎｇ）×Ｘｐ''（ｉ）
２）Ｙｃ'''（ｉｍ２）＜０の場合
Ｙｐ'''（ｉ）＝−ｃｏｓ（Ａｎｇ）×Ｙｐ''（ｉ）＋ｓｉｎ（Ａｎｇ）×Ｘｐ''（ｉ）
Ｘｐ'''（ｉ）＝−ｓｉｎ（Ａｎｇ）×Ｙｐ''（ｉ）−ｃｏｓ（Ａｎｇ）×Ｘｐ''（ｉ）
Ｙｃ'''（ｉｍ２）の値に関わらず、平均点を更新する。
Ｘｃ'''（ｉ）＝｛Ｘ０'''（ｉ）＋Ｘ１'''（ｉ）＋Ｘ２'''（ｉ）｝／３
Ｙｃ'''（ｉ）＝｛Ｙ０'''（ｉ）＋Ｙ１'''（ｉ）＋Ｙ２'''（ｉ）｝／３
【００９８】
ステップＳ２７０の処理により、対象モデルは、図１２（ｅ）に示すように、副軸がＸＹ平面においてＹ軸と重なるようになる。本実施形態では、副軸をＹ軸の正方向に重ねたが、負方向に重ねるようにしてもよい。
【００９９】
上記処理の結果、正規化された対象モデルが得られる。正規化された対象モデルは、ポリゴン数Ｎ、ポリゴンを特定する変数ｉ（ｉ＝０，・・・，Ｎ−１）とし、各ポリゴンｉの頂点は（Ｘｐ'''（ｉ），Ｙｐ'''（ｉ），Ｚｐ'''（ｉ））と定義される。ｐは頂点番号を示しており、本実施形態では、ポリゴンが三角形であるため、ｐ＝０，１，２の３つの値をとる。また、各ポリゴンｉの平均点は（Ｘｃ'''（ｉ），Ｙｃ'''（ｉ），Ｚｃ'''（ｉ））と定義される。ポリゴン正規化処理の結果、図１２（ｆ）に示すように、対象モデルは、所定の位置、スケール、傾きに正規化される。
【０１００】
＜２．５．ポリゴン照合処理＞
次に、ステップＳ３００のポリゴン照合処理について説明する。図１３は、ポリゴン照合処理の概要を示すフローチャートである。ポリゴン照合処理においては、ポリゴンモデル照合手段３０は、規制モデルデータベース５０に登録された規制モデルを１つずつ抽出し（ステップＳ３０１）、ステップＳ２００において正規化された対象モデルと照合を行う。本実施形態では、ポリゴンモデル照合手段３０は、図１３に示すように、総面積に基づく照合処理（ステップＳ３１０）、体積に基づく照合処理（ステップＳ３２０）、座標値に基づく照合処理（ステップＳ３３０）の３つの照合処理を順に行う。先に行った照合処理の結果、適合（すなわち類似）と判定された場合にのみ、次の照合処理に進む。不適合（すなわち非類似）と判定された場合には、ステップＳ３０１に戻って次の規制モデルとの照合を行う。３つの照合処理のうち、総面積に基づく照合処理および体積に基づく照合処理は、角度に依存しない角度非依存照合処理であり、座標値に基づく照合処理は、角度に依存する角度依存照合処理である。３つの照合処理全てにおいて適合（すなわち類似）と判定された場合は、その対象モデルは、規制モデルと類似していることになるので、出力不適との判定がなされる。規制モデルデータベース５０に登録された全ての規制モデルとの照合が不適合であった場合には、その対象モデルは、どの規制モデルとも非類似になるので、出力適正との判定がなされる。
【０１０１】
＜２．５．１．総面積に基づくポリゴン照合処理＞
まず、図１３に示した３つの照合処理のうち、ステップＳ３１０の総面積に基づくポリゴン照合処理について説明する。図１４は、総面積に基づくポリゴン照合処理の詳細を示すフローチャートである。ステップＳ２００において、正規化された対象モデルは、（Ｘｐ'''（ｉ），Ｙｐ'''（ｉ），Ｚｐ'''（ｉ））で示したが、数式が繁雑になることを避けるため、ステップＳ３００においては、改めて、正規化された対象モデルを、ポリゴン数Ｎ、ポリゴンを特定する変数ｉ（ｉ＝０，・・・，Ｎ−１）とし、各ポリゴンｉの頂点を（Ｘｐ（ｉ），Ｙｐ（ｉ），Ｚｐ（ｉ））と定義されたものとする。ｐは、ｐ＝０，１，２の３つの値をとる頂点番号とする。
【０１０２】
ポリゴンモデル照合手段は、まず、正規化された対象モデルを構成する各ポリゴンｉの面積Ｓ（ｉ）、Ｎ個のポリゴンの面積Ｓ（ｉ）の総和である総面積ＳＮを以下の〔数式１４〕に従った処理を実行することにより算出する（ステップＳ３１１）。
【０１０３】
〔数式１４〕
Ｖｘ＝[Ｙ１（ｉ）−Ｙ０（ｉ）][Ｚ２（ｉ）−Ｚ０（ｉ）]-[Ｚ１（ｉ）−Ｚ０（ｉ）][ Ｙ２（ｉ）−Ｙ０（ｉ）]
Ｖｙ＝[Ｚ１（ｉ）−Ｚ０（ｉ）][Ｘ２（ｉ）−Ｘ０（ｉ）]-[Ｘ１（ｉ）−Ｘ０（ｉ）][ Ｚ２（ｉ）−Ｚ０（ｉ）]
Ｖｚ＝[Ｘ１（ｉ）−Ｘ０（ｉ）][Ｙ２（ｉ）−Ｙ０（ｉ）]-[Ｙ１（ｉ）−Ｙ０（ｉ）][Ｘ２（ｉ）−Ｘ０（ｉ）] 
Ｓ（ｉ）＝０．５×[Ｖｘ（ｉ）2+Ｖｙ（ｉ）2+Ｖｚ（ｉ）2]1/2
ＳＮ＝Σi=0,N-1Ｓ（ｉ）
【０１０４】
次に、ポリゴンモデル照合手段は、ステップＳ３１１における処理と同様に、上記〔数式１４〕に従った処理を、変数を変えて、Ｍ個のポリゴンで構成される規制モデルに対して実行し、規制モデルの総面積ＳＭを算出する。（ステップＳ３１２）。
【０１０５】
続いて、ポリゴンモデル照合手段は、正規化された対象モデルの総面積ＳＮと規制モデルの総面積ＳＭの面積差分ｄＳを、を以下の〔数式１５〕に従った処理を実行することにより算出する（ステップＳ３１３）。
【０１０６】
〔数式１５〕
ｄＳ＝｜ＳＭ−ＳＮ｜／（ＳＭ＋ＳＮ）
【０１０７】
上記〔数式１５〕においては、後に判定しきい値と比較するために、総面積の和（ＳＭ＋ＳＮ）で除算することにより正規化している。上記〔数式１５〕に示すように面積差分ｄＳは、総面積の差分の絶対値となっている。
【０１０８】
面積差分ｄＳが得られたら、ポリゴンモデル照合手段は、面積差分ｄＳと判定しきい値との比較を行う（ステップＳ３１４）。面積差分ｄＳが判定しきい値より小さい場合は、適合と判定し、面積差分ｄＳが判定しきい値以上である場合は、不適合と判定する。判定しきい値としては、適宜設定可能であるが、ここでは、０．０１としてある。
【０１０９】
＜２．５．２．体積に基づく照合処理＞
次に、ステップＳ３２０の体積に基づくポリゴン照合処理について説明する。図１５は、体積に基づくポリゴン照合処理の詳細を示すフローチャートである。ステップＳ３００においては、正規化された対象モデルを、ポリゴン数Ｎ、ポリゴンを特定する変数ｉ（ｉ＝０，・・・，Ｎ−１）とし、各ポリゴンｉの頂点を（Ｘｐ（ｉ），Ｙｐ（ｉ），Ｚｐ（ｉ））と定義しており、さらに、各ポリゴンｉの平均点を、（Ｘｃ（ｉ），Ｙｃ（ｉ），Ｚｃ（ｉ））と定義する。
【０１１０】
ポリゴンモデル照合手段は、各ポリゴンについて、各ポリゴンを底面とし、基準点（重心）を頂点とする角錐の体積Ｖ（ｉ）を算出し、Ｎ個のポリゴンについての体積Ｖ（ｉ）の総和ＶＮを算出する（ステップＳ３２１）。具体的には、まず、上記〔数式１４〕に従った処理を実行して各ポリゴンｉの面積Ｓ（ｉ）を算出する。そして、以下の〔数式１６〕に従った処理を実行することにより、各ポリゴンの法線ベクトル（Ｎｘ（ｉ），Ｎｙ（ｉ），Ｎｚ（ｉ））を算出する。
【０１１１】
〔数式１６〕
Ｖｓ（ｉ）＝[Ｖｘ（ｉ）2+Ｖｙ（ｉ）2+Ｖｚ（ｉ）2]1/2
Ｎｘ（ｉ）＝Ｖｘ（ｉ）／Ｖｓ（ｉ）
Ｎｙ（ｉ）＝Ｖｙ（ｉ）／Ｖｓ（ｉ）
Ｎｚ（ｉ）＝Ｖｚ（ｉ）／Ｖｓ（ｉ）
【０１１２】
角錐の高さは、平均点から原点方向のベクトルとポリゴンの法線ベクトルとの内積の絶対値で算出できるので、以下の〔数式１７〕に従った処理を実行することにより、ポリゴンｉを底面とする角錐の体積Ｖ（ｉ）、およびＮ個のポリゴンについての角錐の体積総和ＶＮを算出する。
【０１１３】
〔数式１７〕
Ｖ（ｉ）＝Ｓ（ｉ）｜Ｘｃ（ｉ）×Ｎｘ（ｉ）＋Ｙｃ（ｉ）×Ｎｙ（ｉ）＋Ｚｃ（ｉ）×Ｎｚ（ｉ）｜／３
ＶＮ＝Σi=0,N-1Ｖ（ｉ）
【０１１４】
次に、ポリゴンモデル照合手段は、ステップＳ３２１における処理と同様に、上記〔数式１６〕、〔数式１７〕に従った処理を、変数を変えて、Ｍ個のポリゴンで構成される規制モデルに対して実行し、規制モデルの体積総和ＶＭを算出する。（ステップＳ３２２）。
【０１１５】
続いて、ポリゴンモデル照合手段は、正規化されたポリゴンモデルの体積総和ＶＮと規制モデルの体積総和ＶＭの体積差分ｄＶを、を以下の〔数式１８〕に従った処理を実行することにより算出する（ステップＳ３２３）。
【０１１６】
〔数式１８〕
ｄＶ＝｜ＶＭ−ＶＮ｜／（ＶＭ＋ＶＮ）
【０１１７】
上記〔数式１８〕においては、後に判定しきい値と比較するために、体積総和の和（ＶＭ＋ＶＮ）で除算することにより正規化している。上記〔数式１８〕に示すように体積差分ｄＶは、体積総和の差分の絶対値となっている。
【０１１８】
体積差分ｄＶが得られたら、ポリゴンモデル照合手段は、体積差分ｄＶと判定しきい値との比較を行う（ステップＳ３２４）。体積差分ｄＶが判定しきい値より小さい場合は、適合と判定し、体積差分ｄＶが判定しきい値以上である場合は、不適合と判定する。判定しきい値としては、適宜設定可能であるが、ここでは、０．００１としてある。
【０１１９】
＜２．５．３．座標値に基づく照合処理＞
次に、ステップＳ３３０の座標値に基づくポリゴン照合処理について説明する。図１６は、座標値に基づくポリゴン照合処理の詳細を示すフローチャートである。ここでは、対象モデルの各ポリゴンｉの平均点を、（Ｘｃｎ（ｉ），Ｙｃｎ（ｉ），Ｚｃｎ（ｉ））（ｉ：ポリゴン番号＝０，・・・、Ｎ−１）と定義し、規制モデルの各ポリゴンｊの平均点を、（Ｘｃｍ（ｊ），Ｙｃｍ（ｊ），Ｚｃｍ（ｊ））（ｊ：ポリゴン番号＝０，・・・、Ｍ−１）と定義する。
【０１２０】
ポリゴンモデル照合手段は、まず、初期設定を行い、Ｄ＝０，ｉ＝０とする（ステップＳ３３１）。Ｄは判定しきい値と比較する際、距離総和として出力される変数である。ｉ＝０は、対象モデルで最初に処理されるポリゴンのポリゴン番号である。次に、ｊ＝０，ｄｍｉｎ＝ＢＩＧに設定する（ステップＳ３３２）。ｊ＝０は、規制モデルで最初に処理されるポリゴンのポリゴン番号である。ｄｍｉｎは初期値ＢＩＧに設定される。ＢＩＧとしては、ｄｍｉｎとして取り得ない程度の大きな値を設定しておく。
【０１２１】
次に両モデルにおいて特定されたポリゴン同士の平均点座標距離ｄを算出する（ステップＳ３３３）。具体的には、以下の〔数式１９〕に従った処理を実行することにより算出する。
【０１２２】
〔数式１９〕
ｄ=[(Ｘｃｍ（ｊ）−Ｘｃｎ（ｉ）)2+((Ｙｃｍ（ｊ）−Ｙｃｎ（ｉ）) 2 +((Ｚｃｍ（ｊ）−Ｚｃｎ（ｉ）)2]1/2
【０１２３】
上記〔数式１９〕に示すように平均点座標距離ｄは、平均点座標の差分の二乗平方根であり、平均点座標間の距離を示している。次に、算出した平均点座標距離ｄとｄｍｉｎを比較する（ステップＳ３３４）。ｄがｄｍｉｎより小さい場合は、ｄｍｉｎ＝ｄとする（ステップＳ３３５）。そして、ｊを１だけインクリメントして規制モデルの処理対象ポリゴンを変更し（ステップＳ３３６）、規制モデルのポリゴン番号ｊとポリゴン数Ｍを比較する（ステップＳ３３７）。
【０１２４】
比較の結果、ｊがＭより小さい場合は、対象モデルの１つのポリゴンに対して規制モデルの全てのポリゴンの処理が終わっていないため、ステップＳ３３３に戻って、平均点座標距離の算出を行う。対象モデルの１つのポリゴンに対して規制モデルの全てのポリゴンについて、ステップＳ３３３〜ステップＳ３３６の処理を実行した後には、ｊ＝Ｍとなるので、ステップＳ３３８に進む。
【０１２５】
ステップＳ３３３〜ステップＳ３３６の処理を繰り返すことにより、ｄｍｉｎには、対象モデルの１つのポリゴンと規制モデルの各ポリゴンの距離のうち、最小の値である距離最小値が記録される。これは、対象モデルの１つのポリゴンと最も近い規制モデルのポリゴンとの距離となる。次に、この距離最小値ｄｍｉｎをＤに加算する（ステップＳ３３８）。そして、ｉを１だけインクリメントして対象モデルの処理対象ポリゴンを変更し、対象モデルのポリゴン番号ｉとポリゴン数Ｎを比較する（ステップＳ３３９）。
【０１２６】
比較の結果、ｉがＮより小さい場合は、対象モデルの全てのポリゴンに対して処理が終わっていないため、ステップＳ３３２に戻って、対象モデルの次のポリゴンに対して処理を行う。対象モデルの全てのポリゴンについて、ステップＳ３３２〜ステップＳ３３８の処理を実行した後には、ｉ＝Ｎとなるので、ステップＳ３４０に進む。
【０１２７】
ステップＳ３３２〜ステップＳ３３８の処理を繰り返すことにより、Ｄには、対象モデルの各ポリゴンに対する距離最小値ｄｍｉｎの総和が記録される。
【０１２８】
距離総和Ｄが得られたら、ポリゴンモデル照合手段は、距離総和Ｄを対象モデルのポリゴン数Ｎで除した値Ｄ／Ｎと判定しきい値との比較を行う（ステップＳ３４０）。Ｄ／Ｎが判定しきい値より小さい場合は、適合と判定し、Ｄ／Ｎが判定しきい値以上である場合は、不適合と判定する。判定しきい値としては、適宜設定可能であるが、ここでは、１０．０としてある。
【０１２９】
本実施形態では、ポリゴン同士の平均点座標間の距離、およびその総和を算出するようにしたが、平均点に代えてポリゴン同士の対応する頂点間の距離、およびその総和を算出するようにしてもよい。
【０１３０】
＜３．３Ｄプリンタへのデータ出力＞
ポリゴンモデル照合手段により出力適正と判定された場合には、立体物造形装置である３Ｄプリンタ７へ対象ポリゴンモデルを出力する。一方、ポリゴンモデル照合手段により出力不適と判定された場合には、立体物造形装置である３Ｄプリンタへ対象モデルを出力しない。また、出力適正か否かの判定に時間がかかる場合には、３Ｄプリンタ７に対象モデルを出力し、３Ｄプリンタ７の出力処理(立体物造形処理)と並行して出力適正か否かの判定を行い、出力不適である場合に出力中止命令を３Ｄプリンタ７に出力するようにしてもよい。この際、オペレータから見れば、対象モデルの出力という一つの命令を行うことにより、３Ｄプリンタにおける立体物造形処理が開始されることが確認できるだけで、並行して出力適正か否かの判定のための処理の実行が開始されることは気付かれない。
【０１３１】
＜４．規制モデルの正規化および登録について＞
上記実施形態では、規制モデルデータベース５０に既に正規化がなされた規制モデルが登録された場合について説明したが、規制モデルデータベース５０に正規化されていない規制モデルを登録しておき、この規制モデルに対して、上記実施形態において対象モデルに対して行ったようにポリゴンの削減、正規化を行い、正規化後の規制モデルと、上記正規化後の対象モデルを用いて照合を行うようにしてもよい。この場合、規制モデルデータベース５０に登録されている正規化されていない各規制モデルは、ポリゴン削減手段１０によりポリゴンが削減され、ポリゴン正規化手段２０により正規化された後、ポリゴンモデル照合手段３０により、正規化後の対象モデルとの照合が行われる。
【０１３２】
また、変形例として、ポリゴンモデル照合手段３０を備えた立体物造形用データ出力規制装置とは、別の場所で規制モデルの正規化を行って正規化された規制モデルを、立体物造形用データ出力規制装置にネットワークを介して送信して登録するようにしてもよい。
【０１３３】
図１７は、変形例における立体物造形用データ出力規制装置のハードウェア構成図である。図１７に示した本実施形態に係る立体物造形用データ出力規制装置において、立体物造形用データ出力規制装置１０１は、図１に示した立体物造形用データ出力規制装置１００の構成に、インターネット等の公衆ネットワークと通信するためのネットワーク通信部８を備えた構成となっている。規制モデル正規化装置１０２は、汎用のコンピュータで実現することができ、図１７に示すように、ＣＰＵ（Central Processing Unit）１ａと、コンピュータのメインメモリであるＲＡＭ（Random Access Memory）２ａと、ＣＰＵ１ａが実行するプログラムやデータを記憶するためのハードディスク、フラッシュメモリ等の大容量の記憶装置３ａと、キーボード、マウス等のキー入力Ｉ／Ｆ（インターフェース）４ａと、データ記憶媒体等の外部装置とデータ通信するためのデータ入出力Ｉ／Ｆ（インターフェース）５ａと、液晶ディスプレイ等の表示デバイスである表示部６ａと、インターネット等の公衆ネットワークと通信するためのネットワーク通信部８ａを備え、互いにバスを介して接続されている。立体物造形用データ出力規制装置１０１のネットワーク通信部８と規制モデル正規化装置１０２のネットワーク通信部８ａは互いに通信を行い、規制モデル正規化装置１０２から立体物造形用データ出力規制装置１０１へ正規化された規制モデルの送信を行うことが可能になっている。図１７では、立体物造形用データ出力規制装置１０１と３Ｄプリンタ７は分離した形態で示されているが、現在市販されている殆どの３Ｄプリンタ製品には立体物造形用データ出力規制装置１０１の構成要素である、ＣＰＵ１、ＲＡＭ２、記憶装置３、キー入力Ｉ／Ｆ４（汎用コンピュータ向けキーボード・マウスではなく、テンキーレベルの数種のボタン）、データ入出力Ｉ／Ｆ５、表示部６（数行の文字を表示可能な小型液晶パネル、タッチパネルを重畳させキー入力Ｉ／Ｆ４を兼ねることも多い）、ネットワーク通信部８（無線ＬＡＮ機能）も小規模ながら重複して備えている。従って、３Ｄプリンタ７自体が外部記憶媒体やインターネット経由で立体物造形用データを直接受け取り、単独で立体物を造形する運用も可能になっている（特に民生用の３Ｄプリンタではこちらの実施形態の方が多い）。すなわち、図１７に示した立体物造形用データ出力規制装置１０１および３Ｄプリンタ７を１つの筐体に収めて、“３Ｄプリンタ”という製品として流通することも多い。
【０１３４】
規制モデル正規化装置１０２においては、ＣＰＵ１が、記憶装置３に記憶されているプログラムを実行することにより、第２のポリゴン削減手段、第２のポリゴン正規化手段、規制モデル送信手段が実現される。規制モデル正規化装置１０２で実現される第２のポリゴン削減手段、第２のポリゴン正規化手段は、立体物造形用データ出力規制装置１００で実現されるポリゴン削減手段１０、ポリゴン正規化手段２０と同様の機能を有し、規制モデルのポリゴンを削減し、規制モデルの正規化を行う。規制モデル送信手段は、正規化された規制モデルを立体物造形用データ出力規制装置１０１に送信する。立体物造形用データ出力規制装置１０１では、ネットワーク通信部８が、規制モデル正規化装置１０２から規制モデルを受信すると、ＣＰＵ１が所定のプログラムを実行して規制モデル登録手段として機能し、受信した規制モデルを記憶装置３で実現される規制モデルデータベース５０に登録する。
【０１３５】
＜５．ポリゴンモデル正規化事例＞
図１８〜図２８に、本実施形態に係る立体物造形用データ出力規制装置によりポリゴン正規化処理（ステップＳ２００）を施す過程の事例を示す。図１８〜図２８のいずれにおいても、左側に規制モデル、右側に対象モデルを示している。図１８は、正規化前のオリジナル（実際にはポリゴン削減後）のポリゴンモデルを示す図である。図１８では、紙面に対して座標系を揃えてあるが、正規化前であるため、両者は位置、スケール、傾きが異なっている。
【０１３６】
図１９は、ステップＳ２３０におけるスケーリングと原点移動後のポリゴンモデルを示す図である。図２０は、図１９の状態のまま、視点のみをＸＺ平面に変換した図である。図２１は、図２０の状態からステップＳ２４０におけるＹ軸中心回転を行った後のポリゴンモデルを示す図である。図２２は、図２１の状態のまま、視点のみを変換した斜視図である。図２３は、図２１、図２２の状態のまま、視点のみをＹＺ平面に変換した図である。
【０１３７】
図２４は、図２３の状態からステップＳ２５０におけるＸ軸中心回転を行った後のポリゴンモデルを示す図である。図２５は、図２４の状態のまま、視点のみを変換した斜視図である。図２６は、図２４、図２５の状態のまま、視点のみをＸＹ平面に変換した図である。図２７は、図２６の状態からステップＳ２６０におけるＺ軸中心回転を行った後のポリゴンモデルを示す図である。図２８は、図２７の状態のまま、視点のみを変換した斜視図である。正規化処理を行うことにより、図１８に示したように、位置、スケール、傾きが異なり、照合が困難であった２つのポリゴンモデルが、図２８に示したように、位置、スケール、傾きが等しくなり、照合を行い易くなる。
【０１３８】
＜６．変形例等＞
以上、本発明の好適な実施形態について説明したが、本発明は上記実施形態に限定されず、種々の変形が可能である。例えば、上記実施形態では、処理対象のポリゴンを三角形としたが、四角形以上の多角形であってもよい。
【０１３９】
また、上記実施形態では、ポリゴンモデル照合手段３０は、総面積に基づく照合処理、体積に基づく照合処理、座標値に基づく照合処理の３つの照合処理を行うようにしたが、上記３つの照合処理のうち、１つまたは２つの照合処理を実行するようにしてもよい。
【０１４０】
また、上記実施形態では、ポリゴン正規化手段２０は、主軸をＺ軸に合わせ、副軸をＹ軸に合わせて回転するようにしたが、主軸、副軸をそれぞれ異なる軸に合わせるのであれば、主軸をＸ軸またはＹ軸に合わせもよいし、副軸をＸ軸またはＺ軸に合わせもよい。
【符号の説明】
【０１４１】
１、１ａ・・・ＣＰＵ（Central Processing Unit）
２、２ａ・・・ＲＡＭ（Random Access Memory）
３、３ａ・・・記憶装置
４、４ａ・・・キー入力Ｉ／Ｆ
５、５ａ・・・データ入出力Ｉ／Ｆ
６、６ａ・・・表示部
７・・・３Ｄプリンタ（立体物造形装置）
７ａ・・・データ処理部
７ｂ・・・出力部
８、８ａ・・・ネットワーク通信部
１０・・・ポリゴン削減手段
２０・・・ポリゴン正規化手段
３０・・・ポリゴンモデル照合手段
４０・・・対象モデル記憶手段
５０・・・規制モデルデータベース
１００、１０１・・・立体物造形用データ出力規制装置
１０２・・・規制モデル正規化装置
【図１】
2015162167.tif 000003
【図２】
2015162167.tif 000004
【図３】
2015162167.tif 000005
【図４】
2015162167.tif 000006
【図５】
2015162167.tif 000007
【図６】
2015162167.tif 000008
【図７】
2015162167.tif 000009
【図８】
2015162167.tif 000010
【図９】
2015162167.tif 000011
【図１０】
2015162167.tif 000012
【図１１】
2015162167.tif 000013
【図１２】
2015162167.tif 000014
【図１３】
2015162167.tif 000015
【図１４】
2015162167.tif 000016
【図１５】
2015162167.tif 000017
【図１６】
2015162167.tif 000018
【図１７】
2015162167.tif 000019
【図１８】
2015162167.tif 000020
【図１９】
2015162167.tif 000021
【図２０】
2015162167.tif 000022
【図２１】
2015162167.tif 000023
【図２２】
2015162167.tif 000024
【図２３】
2015162167.tif 000025
【図２４】
2015162167.tif 000026
【図２５】
2015162167.tif 000027
【図２６】
2015162167.tif 000028
【図２７】
2015162167.tif 000029
【図２８】
2015162167.tif 000030