(57)【特許請求の範囲】
【請求項１】
ポリゴンの集合として表現されたポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきか否かを判定する装置であって、
出力を規制すべきポリゴンモデルである規制モデルの特徴を表現した距離分布および角度分布が登録されたデータベースと、
出力対象のポリゴンモデルである対象モデルに対して、当該対象モデルの基準点から当該対象モデルを構成する各ポリゴンまでの距離と各ポリゴン固有の角度を算出し、算出結果に基づいて各ポリゴンまでの距離の度数分布である距離分布と、各ポリゴン固有の角度の度数分布である角度分布とを算出する度数分布算出手段と、
前記算出された距離分布、角度分布をそれぞれ、前記データベースに登録されている規制モデルの距離分布、角度分布と照合し、出力を規制すべきか否かを判定する度数分布照合手段と、
を備えることを特徴とする立体物造形用データ出力規制装置。
【請求項２】
前記対象モデルの基準点は、各ポリゴンの頂点座標の平均であるポリゴン平均座標に当該ポリゴンの面積を重みとして乗じた値を、全ポリゴンについて加算した値を、全ポリゴンの面積の総和で除した値で特定される点として与えられるものであることを特徴とする請求項１に記載の立体物造形用データ出力規制装置。
【請求項３】
前記度数分布算出手段は、前記基準点から各ポリゴンの平均座標へのベクトルを個別ベクトルとして求め、当該個別ベクトルの大きさを前記各ポリゴンまでの距離、前記個別ベクトルと対応するポリゴンの法線ベクトルとのなす角度を前記各ポリゴン固有の角度とすることにより、前記各ポリゴンまでの距離と前記ポリゴン固有の角度を算出することを特徴とする請求項１または請求項２に記載の立体物造形用データ出力規制装置。
【請求項４】
前記度数分布算出手段は、前記距離分布を算出するにあたり、所定数の要素で構成される１次元配列を準備し、前記算出された距離の最大値の範囲を前記所定数に均等分割した上で、前記各距離を当該距離に基づいて前記所定数のいずれかの要素に割り当て、当該要素に該当する数を計数することにより、前記距離分布を算出するようにしていることを特徴とする請求項３に記載の立体物造形用データ出力規制装置。
【請求項５】
前記度数分布算出手段は、前記角度分布を算出するにあたり、所定数の要素で構成される１次元配列を準備し、角度０度から１８０度の範囲を前記所定数に均等分割した上で、前記各ポリゴン固有の角度に基づいて前記所定数のいずれかの要素に割り当て、当該要素の値を計数することにより、前記角度分布を算出するようにしていることを特徴とする請求項３に記載の立体物造形用データ出力規制装置。
【請求項６】
前記度数分布算出手段は、前記割り当てられた要素の値を計数する際、前記個別ベクトルに対応するポリゴンの面積で重み付けするようにしていることを特徴とする請求項４または請求項５に記載の立体物造形用データ出力規制装置。
【請求項７】
前記度数分布照合手段は、前記度数分布算出手段により前記対象モデルから算出された距離分布および角度分布を前記データベースに登録されている前記距離分布および角度分布と照合するにあたり、
前記距離分布同士のユークリッド距離、前記角度分布同士のユークリッド距離を算出し、算出された双方のユークリッド距離が所定の判定しきい値より小さい場合に、出力を規制すべきであると判定するようにしていることを特徴とする請求項１から請求項６のいずれか一項に記載の立体物造形用データ出力規制装置。
【請求項８】
前記度数分布照合手段は、前記距離分布同士のユークリッド距離を算出するにあたり、
近傍の複数の要素を平均化して再構成された所定数の要素を用いて前記距離分布同士のユークリッド距離を算出するようにしていることを特徴とする請求項７に記載の立体物造形用データ出力規制装置。
【請求項９】
前記対象モデルに含まれるポリゴンの数が所定の値以下になるようにポリゴンを削減するポリゴン削減手段を更に備え、
前記ポリゴンが削減された対象モデルに対して、前記度数分布算出手段が処理を行うことを特徴とする請求項１から請求項８のいずれか一項に記載の立体物造形用データ出力規制装置。
【請求項１０】
出力対象のポリゴンモデルである対象モデルを複数の部分対象モデルに分割する対象モデル分割手段を更に備え、
前記部分対象モデルに対して、前記度数分布算出手段が処理を行うことを特徴とする請求項１から請求項９のいずれか一項に記載の立体物造形用データ出力規制装置。
【請求項１１】
前記ポリゴンは三角形であり、前記対象モデル分割手段は、あるポリゴンと、当該ポリゴンと辺を共有する３つの隣接ポリゴンが、同一の部分対象モデルに属するように、分割することを特徴とする請求項１０に記載の立体物造形用データ出力規制装置。
【請求項１２】
前記規制モデルに対して、前記規制モデルの基準点から当該規制モデルを構成する各ポリゴンまでの距離と各ポリゴン固有の角度を算出し、算出された各ポリゴンまでの距離の度数分布である距離分布を算出し、算出された各ポリゴン固有の角度の度数分布である角度分布を算出する規制モデル度数分布算出装置により算出された度数分布を受信し、受信した度数分布を前記データベースに登録する登録手段を更に有することを特徴とする請求項１から請求項１１のいずれか一項に記載の立体物造形用データ出力規制装置。
【請求項１３】
前記対象モデルを、接続された立体物造形装置に出力する手段と、
前記立体物造形装置による立体物の造形処理と並行して実行される前記度数分布照合手段により、出力を規制すべきであると判定された場合に、前記立体物造形装置に、前記ポリゴン削減前の対象モデルの出力中止命令を出力する手段と、
を更に備えることを特徴とする請求項１から請求項１２のいずれか一項に記載の立体物造形用データ出力規制装置。
【請求項１４】
出力制御用端末と、処理サーバがネットワークを介して接続された構成であって、
前記出力制御用端末は、前記度数分布算出手段を有し、
前記処理サーバは、
前記データベースと、
ネットワークを介して前記出力制御用端末から前記対象モデルの距離分布と角度分布を受信する受信手段と、
前記度数分布照合手段と、
前記度数分布照合手段により判定された、出力を規制すべきか否かに基づくデータを前記出力制御用端末に送信する出力適否データ送信手段と、
を有することを特徴とする請求項１から請求項１３のいずれか一項に記載の立体物造形用データ出力規制装置。
【請求項１５】
請求項１から請求項１４のいずれか一項に記載の立体物造形用データ出力規制装置と、
前記立体物造形用データ出力規制装置で出力許可されたポリゴンモデルを用いて立体物を造形する立体物造形装置と、
を有することを特徴とする立体物造形システム。
【請求項１６】
コンピュータを、請求項１から請求項１４のいずれか一項に記載の立体物造形用データ出力規制装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、立体物を表すデータを基に、樹脂等を加工して立体物を造形する３Ｄプリンタ等の立体物造形装置の利用に際して、立体物造形装置からの出力に不適切なものを判別するための技術に関する。
【背景技術】
【０００２】
近年、立体物を表すデータをもとに、樹脂や石膏等を加工して造形する３Ｄプリンタが立体物造形装置として普及してきている。３Ｄプリンタは、立体物の三次元形状をポリゴンの集合で表現したポリゴンモデルを用いて立体物の出力を行う。３Ｄプリンタの医療応用として、医療診断で撮影されるCT/MRI画像（DICOM形式３次元ボクセルデータ）を基に、３Ｄプリンタ出力用モデリングデータ（ポリゴンモデル）を作成し、手術シミュレーション・医学教育・インフォームドコンセント向けの臓器模型を出力したり、体内埋め込み用の人工臓器（血管、骨、関節など）を作成したりする試みが始まっている。
【０００３】
３Ｄプリンタには、インターネットを介して情報だけでなく、モノを遠隔地に間接的に伝搬できる革新性を備えている。そのため、これまで税関で規制されていた銃砲・刀剣などの危険物がデータ形態で国境を越えて流布され、３Ｄプリンタによりモノとして容易に入手可能になるという問題が発生している。
【０００４】
具体的には、あるＷＥＢサイトにて３Ｄプリンタを用いて所定のモデルの拳銃を製造できるＳＴＬ（Standard Triangulated Language）が無償で公開されている。金属製に比べて射程距離などは多少劣るが、３Ｄプリンタで作成された弾丸でも殺傷能力はそれなりにある。更に、現状の３Ｄプリンタで造形可能な材料は樹脂・石膏に限定され、金属が使用できないという欠点が裏目に出て、空港の金属探知機で見逃されるという問題も指摘されている。今後、民生用の３Ｄプリンタが普及するにあたり、３Ｄプリンタ側に投入される出力データの形状認証と危険物の出力規制などのセキュリティ機能をもたせることが求められる。
【０００５】
これに対して、ウィルス対策ツールと類似した手法で出力可否判定を行うシステムを構築する手法が考えられ、その実現にあたり、ポリゴン照合技術が必要になる。しかし、ポリゴン照合には、従来、次の問題が知られている。３Ｄプリンタ出力用のポリゴンデータ（ＳＴＬ形式など）では、３次元座標値が絶対寸法でないためスケールがまちまちで、座標原点やアングルも使用されるＣＡＤや出力予定のプリンタの特性に合せて種々に設定される。そのため、たとえソースが同一の３Ｄモデルであっても、ポリゴンデータの作成方法が異なると、表現される総ポリゴン数も変化し、ポリゴンデータの座標値比較で同一性を判定することは一般に難しい。
【０００６】
そこで、特許文献１のように、重心からの慣性モーメントなど特徴パラメータによるアングル・スケールに依存しない比較手法が提案されている。また、特許文献２では、ポリゴンモデルの重心からの距離分布や隣接面とのクリーズ角などの特徴量を抽出してアングル・スケールに依存しない比較を行う手法が提案されている。特許文献３では、３次元モデルを複数アングルに２次元投影した画像に対してフーリエ変換を行い特徴抽出して比較する手法が提案されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第３６１０２７０号公報
【特許文献２】特開２０００−２２２４２８号公報
【特許文献３】特許第５０２４７６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記従来の技術を出力物規制に応用する場合、規制すべきポリゴンモデルをデータベースに登録しておき、出力要求のあったポリゴンモデルと比較する手法をとることになる。出力規制の対象は、銃砲・刀剣などの危険物だけでなく、キャラクターなどの著作物となることもある。いずれの場合においても、制作されたポリゴンモデルは、著作権者が存在する著作物になる。
【０００９】
しかしながら、著作物であるポリゴンモデルをデータベースに登録するためには、その行為自体に著作者の許諾が必要となる。しかし、銃砲・刀剣などの危険物を制作した著作権者から許諾を得ることは難しい。このため、著作物の出力規制をするためのデータベースの構築が困難になるという問題がある。これに対して、ポリゴンモデルから特徴となる情報である特徴ベクトルを作成し、この特徴ベクトルによりデータベースを構築する手法が考えられる。しかし、特徴ベクトルはポリゴンモデルに比べて情報量が少ないため、出力を規制すべきか否かを的確に判定することが困難であった。
【００１０】
そこで、本発明は、ポリゴンモデルを基に立体物の出力を行う際に、出力を規制すべきか否かの判定を的確に行うことが可能な立体物造形用データ出力規制装置を提供することを課題とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、本発明第１の態様では、
ポリゴンの集合として表現されたポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきか否かを判定する装置であって、
出力を規制すべきポリゴンモデルである規制モデルの特徴を表現した距離分布および角度分布が登録されたデータベースと、
出力対象のポリゴンモデルである対象モデルに対して、当該対象モデルの基準点から当該対象モデルを構成する各ポリゴンまでの距離と各ポリゴン固有の角度を算出し、算出結果に基づいて各ポリゴンまでの距離の度数分布である距離分布と、各ポリゴン固有の角度の度数分布である角度分布とを算出する度数分布算出手段と、
前記算出された距離分布、角度分布をそれぞれ、前記データベースに登録されている規制モデルの距離分布、角度分布と照合し、出力を規制すべきか否かを判定する度数分布照合手段と、
を備えることを特徴とする立体物造形用データ出力規制装置を提供する。
【００１２】
本発明第１の態様によれば、規制モデルの特徴を表現した距離分布および角度分布が登録されたデータベースを備え、対象モデルに対して、対象モデルの基準点から対象モデルを構成する各ポリゴンまでの距離と各ポリゴン固有の角度を算出し、算出された距離の度数分布である距離分布を算出し、算出された角度の度数分布である角度分布を算出し、算出された距離分布、角度分布をそれぞれ、データベースに登録されている規制モデルの距離分布、角度分布と照合し、出力を規制すべきか否かを判定するようにしたので、ポリゴンモデルを基に立体物の出力を行う際に、出力を規制すべきか否かの判定を効率的に行うことが可能となる。
【００１３】
また、本発明第２の態様では、前記対象モデルの基準点は、各ポリゴンの頂点座標の平均であるポリゴン平均座標に当該ポリゴンの面積を重みとして乗じた値を、全ポリゴンについて加算した値を、全ポリゴンの面積の総和で除した値で特定される点として与えられるものであることを特徴とする。
【００１４】
本発明第２の態様によれば、対象モデルの基準点は、各ポリゴンの頂点座標の平均であるポリゴン平均座標にそのポリゴンの面積を重みとして乗じた値を、全ポリゴンについて加算した値を、全ポリゴンの面積の総和で除した値で特定される点として与えられるようにしたので、対象モデルの重心に近い位置を基準点として迅速に算出することができ、立体物造形装置に出力予定のポリゴンモデルの各頂点がデータベースに登録されている規制モデルのものと若干異なっていても、出力を規制すべきか否かの判定を行うことが可能となる。
【００１５】
また、本発明第３の態様では、前記度数分布算出手段は、前記基準点から各ポリゴンの平均座標へのベクトルを個別ベクトルとして求め、当該個別ベクトルの大きさを前記各ポリゴンまでの距離、前記個別ベクトルと対応するポリゴンの法線ベクトルとのなす角度を前記各ポリゴン固有の角度とすることにより、前記各ポリゴンまでの距離と前記ポリゴン固有の角度を算出することを特徴とする。
【００１６】
本発明第３の態様によれば、度数分布算出手段は、基準点から各ポリゴンの平均座標へのベクトルを個別ベクトルとして求め、個別ベクトルの大きさを各ポリゴンまでの距離、個別ベクトルと対応するポリゴンの法線ベクトルとのなす角度を各ポリゴン固有の角度とすることにより、各ポリゴンまでの距離とポリゴン固有の角度を算出するようにしたので、各ポリゴンの３次元空間的な位置関係を反映し、ポリゴンモデルの形状特徴を正確に反映した度数分布を容易に算出することが可能となる。
【００１７】
また、本発明第４の態様では、前記度数分布算出手段は、前記距離分布を算出するにあたり、所定数（ＭＤ）の要素で構成される１次元配列を準備し、前記算出された距離の最大値の範囲を前記所定数に均等分割した上で、前記各距離を当該距離に基づいて前記所定数のいずれかの要素に割り当て、当該要素に該当する数を計数することにより、前記距離分布を算出するようにしていることを特徴とする。
【００１８】
本発明第４の態様によれば、距離分布を算出するにあたり、所定数（ＭＤ）の要素で構成される１次元配列を準備し、算出された距離の最大値の範囲を所定数に均等分割した上で、各距離をその距離に基づいて所定数のいずれかの要素に割り当て、その要素に該当する数を計数することにより、距離分布を算出するようにしたので、基準点から各ポリゴンへのベクトルを用いて容易に距離分布を算出することが可能となる。
【００１９】
また、本発明第５の態様では、前記度数分布算出手段は、前記角度分布を算出するにあたり、所定数（ＭＡ）の要素で構成される１次元配列を準備し、角度０度から１８０度の範囲を前記所定数に均等分割した上で、前記各ポリゴン固有の角度に基づいて前記所定数のいずれかの要素に割り当て、当該要素の値を計数することにより、前記角度分布を算出するようにしていることを特徴とする。
【００２０】
本発明第５の態様によれば、角度分布を算出するにあたり、所定数（ＭＡ）の要素で構成される１次元配列を準備し、角度０度から１８０度の範囲を所定数に均等分割した上で、各ポリゴン固有の角度に基づいて所定数のいずれかの要素に割り当て、その要素の値を計数することにより、角度分布を算出するようにしたので、基準点から各ポリゴンへのベクトルを用いて容易に角度分布を算出することが可能となる。
【００２１】
また、本発明第６の態様では、前記度数分布算出手段は、前記割り当てられた要素の値を計数する際、前記個別ベクトルに対応するポリゴンの面積で重み付けするようにしていることを特徴とする。
【００２２】
本発明第６の態様によれば、距離分布または角度分布を算出するにあたり、割り当てられた要素の値を計数する際、個別ベクトルに対応するポリゴンの面積で重み付けするようにしたので、ポリゴン分割の精細度の差異が、距離分布または角度分布にあまり反映せず、ポリゴン分割の精細度が異なる複数のポリゴンモデルに対して同一（出力を規制すべき）であると判定させることが可能となる。
【００２３】
また、本発明第７の態様では、
前記度数分布照合手段は、前記度数分布算出手段により前記対象モデルから算出された距離分布および角度分布を前記データベースに登録されている前記距離分布および角度分布と照合するにあたり、
前記距離分布同士のユークリッド距離、前記角度分布同士のユークリッド距離を算出し、算出された双方のユークリッド距離が所定の判定しきい値より小さい場合に、出力を規制すべきであると判定するようにしていることを特徴とする。
【００２４】
本発明第７の態様によれば、対象モデルから算出された距離分布および角度分布を前記データベースに登録されている前記距離分布および角度分布と照合するにあたり、距離分布同士のユークリッド距離、前記角度分布同士のユークリッド距離を算出し、算出された双方のユークリッド距離が所定の判定しきい値より小さい場合に、出力を規制すべきであると判定するようにしたので、対象モデルと規制モデルの特徴の照合を、迅速かつ的確に行うことが可能となる。
【００２５】
また、本発明第８の態様では、
前記度数分布照合手段は、前記距離分布同士のユークリッド距離を算出するにあたり、
近傍の複数（Ｋ個（Ｋ＜ＭＤ））の要素を平均化して再構成された所定数（ＭＤ／Ｋ個）の要素を用いて前記距離分布同士のユークリッド距離を算出するようにしていることを特徴とする。
【００２６】
本発明第８の態様によれば、距離分布同士のユークリッド距離を算出するにあたり、近傍の複数（Ｋ個（Ｋ＜ＭＤ））の要素を平均化して再構成された所定数（ＭＤ／Ｋ個）の要素を用いて距離分布同士のユークリッド距離を算出するようにしたので、許容範囲として設定された所定数（Ｋ）の要素の範囲で、対象モデルの形状が変化することにより基準点が変動した場合の影響を排除することができる。このため、対象モデルの距離分布に変動があった場合でも、的確に規制モデルとの照合を行うことが可能となる。
【００２７】
また、本発明第９の態様では、前記対象モデルに含まれるポリゴンの数が所定の値以下になるようにポリゴンを削減するポリゴン削減手段を更に備え、前記ポリゴンが削減された対象モデルに対して、前記度数分布算出手段が処理を行うことを特徴とする。
【００２８】
本発明第９の態様によれば、まず、対象モデルに含まれるポリゴンの数が所定の値以下になるようにポリゴンを削減し、ポリゴンが削減された対象モデルに対して、距離分布、角度分布を算出するようにしたので、ポリゴンモデルの微細形状の相違を許容して高速に出力が適正か否かの判断を行うことが可能となる。
【００２９】
また、本発明第１０の態様では、出力対象のポリゴンモデルである対象モデルを複数の部分対象モデルに分割する対象モデル分割手段を更に備え、前記部分対象モデルに対して、前記度数分布算出手段が処理を行うことを特徴とする。
【００３０】
本発明第１０の態様によれば、まず、対象モデルを複数の部分対象モデルに分割し、部分対象モデルに対して、距離分布、角度分布を算出するようにしたので、複数の部品で構成される物品を表現した対象モデルの照合の際、規制モデルと対象モデルとで互いに部品構成が異なる場合でも、適切に出力が適正か否かの判断を行うことが可能となる。
【００３１】
また、本発明第１１の態様では、前記ポリゴンは三角形であり、前記対象モデル分割手段は、あるポリゴンと、当該ポリゴンと辺を共有する３つの隣接ポリゴンが、同一の部分対象モデルに属するように、分割することを特徴とする。
【００３２】
本発明第１１の態様によれば、ポリゴンは三角形であり、対象モデル分割手段は、あるポリゴンと、そのポリゴンと辺を共有する３つの隣接ポリゴンが、同一の部分対象モデルに属するように分割するようにしたので、複数の部品で構成される物品を表現した対象モデルを、迅速かつ的確に複数の部分対象モデルに分割することが可能となる。
【００３３】
また、本発明第１２の態様では、前記規制モデルに対して、前記規制モデルの基準点から当該規制モデルを構成する各ポリゴンまでの距離と各ポリゴン固有の角度を算出し、算出された各ポリゴンまでの距離の度数分布である距離分布を算出し、算出された各ポリゴン固有の角度の度数分布である角度分布を算出する規制モデル度数分布算出装置により算出された度数分布を受信し、受信した度数分布を前記データベースに登録する登録手段を更に有することを特徴とする。
【００３４】
本発明第１２の態様によれば、規制モデルに対して、規制モデルの基準点から規制モデルを構成する各ポリゴンまでの距離と各ポリゴン固有の角度を算出し、算出された各ポリゴンまでの距離の度数分布である距離分布を算出し、算出された各ポリゴン固有の角度の度数分布である角度分布を算出する規制モデル度数分布算出装置を別途用意し、この規制モデル度数分布算出装置から規制モデルの度数分布を受信し、データベースに登録するようにしたので、データベースの更新を遠隔地から迅速に行うことが可能となる。
【００３５】
また、本発明第１３の態様では、
前記対象モデルを、接続された立体物造形装置に出力する手段と、
前記立体物造形装置による立体物の造形処理と並行して実行される前記度数分布照合手段により、出力を規制すべきである（出力不適）と判定された場合に、前記立体物造形装置に、前記ポリゴン削減前の対象モデルの出力中止命令を出力する手段と、
を更に備えることを特徴とする。
【００３６】
本発明第１３の態様によれば、対象モデルを、接続された立体物造形装置に出力し、並行して実行される度数分布照合手段による照合の結果、出力を規制すべきであると判定された場合に、立体物造形装置に、対象モデルの出力中止命令を出力するようにしたので、時間のかかる立体物の造形を遅延させることなく、出力不適の場合にのみ、出力を中止することが可能となる。
【００３７】
また、本発明第１４の態様では、
出力制御用端末と、処理サーバがネットワークを介して接続された構成であって、
前記出力制御用端末は、前記度数分布算出手段を有し、
前記処理サーバは、
前記データベースと、
ネットワークを介して前記出力制御用端末から前記対象モデルの距離分布と角度分布を受信する受信手段と、
前記度数分布照合手段と、
前記度数分布照合手段により判定された、出力を規制すべきか否かに基づくデータを前記出力制御用端末に送信する出力適否データ送信手段と、
を更に有することを特徴とする。
【００３８】
本発明第１４の態様によれば、ネットワークを介して対象モデルの距離分布と角度分布を受信し、出力を規制すべきか否かの判定により得られた出力を規制すべきか否かに基づくデータを対象モデルの距離分布と角度分布の送信元に送信するようにしたので、出力を規制すべきか否かの判定をクラウド型で提供することができ、出力側における処理を軽減することができる。更に、データベースをクラウド側で一元管理でき、３Ｄプリンタ等の立体物造形装置ごとに接続されている出力制御用端末内でデータベースを管理する必要がないため、常に最新のデータベースに基づいて出力を規制すべきか否かの判定を行うことが可能になる。
【００３９】
また、本発明第１５の態様では、
前記立体物造形用データ出力規制装置と、
前記立体物造形用データ出力規制装置で出力許可されたポリゴンモデルを用いて立体物を造形する立体物造形装置と、
を有することを特徴とする立体物造形システムを提供する。
【００４０】
本発明第１５の態様によれば、立体物造形用データ出力規制装置と、立体物造形用データ出力規制装置で出力許可されたポリゴンモデルを用いて立体物を造形する立体物造形装置により立体物造形システムを実現するようにしたので、ボードコンピュータを組み込んだ３Ｄプリンタ等の形態で、立体物造形システムを提供することが可能となる。
【発明の効果】
【００４１】
本発明によれば、ポリゴンモデルを基に立体物の出力を行う際に、出力を規制すべきか否かの判定を効率的に行うことが可能となる。
【図面の簡単な説明】
【００４２】
【図１】本発明の一実施形態に係る立体物造形用データ出力規制装置１００を含む立体物造形システムのハードウェア構成図である。
【図２】本発明の一実施形態に係る立体物造形用データ出力規制装置の構成を示す機能ブロック図である。
【図３】本発明の一実施形態に係る立体物造形用データ出力規制装置の処理概要を示すフローチャートである。
【図４】ステップＳ１００の度数分布の算出処理の詳細を示すフローチャートである。
【図５】ステップＳ２００の度数分布の照合処理の詳細を示すフローチャートである。
【図６】２つの球体モデルＡ、Ｂそれぞれに対して得られる距離分布と角度分布を示す図である。
【図７】２つの球体モデルＢ、Ｃそれぞれに対して得られる距離分布と角度分布を示す図である。
【図８】ポリゴン削除の基本原理を示す図である。
【図９】ポリゴン削減処理の詳細を示すフローチャートである。
【図１０】対象モデル分割処理の詳細を示すフローチャートである。
【図１１】変形例における立体物造形用データ出力規制装置を含む立体物造形システムのハードウェア構成図である。
【図１２】クラウド型の立体物造形システムのハードウェア構成図である。
【図１３】クラウド型の立体物造形システムの機能ブロック図である。
【図１４】球体ａに対する度数分布算出事例を示す図である。
【図１５】球体ｂに対する度数分布算出事例を示す図である。
【図１６】模擬拳銃ｃに対する度数分布算出事例を示す図である。
【図１７】模擬拳銃ｄに対する度数分布算出事例を示す図である。
【図１８】模擬拳銃ｅに対する度数分布算出事例を示す図である。
【図１９】図１４〜図１８に示したポリゴンモデル同士のユークリッド距離Ｄｄ、Ｄａを示す図である。
【図２０】医療臓器模型に対する度数分布算出事例を示す図である。
【図２１】医療臓器模型に対する度数分布算出事例を示す図である。
【発明を実施するための形態】
【００４３】
以下、本発明の好適な実施形態について図面を参照して詳細に説明する。
＜１．装置構成＞
図１は、本発明の一実施形態に係る立体物造形用データ出力規制装置１００を含む立体物造形システムのハードウェア構成図である。本実施形態に係る立体物造形用データ出力規制装置１００は、汎用のコンピュータで実現することができ、図１に示すように、ＣＰＵ（Central Processing Unit）１と、コンピュータのメインメモリであるＲＡＭ（Random Access Memory）２と、ＣＰＵ１が実行するプログラムやデータを記憶するためのハードディスク、フラッシュメモリ等の大容量の記憶装置３と、キーボード、マウス等のキー入力Ｉ／Ｆ（インターフェース）４と、３Ｄプリンタやデータ記憶媒体等の外部装置とデータ通信するためのデータ入出力Ｉ／Ｆ（インターフェース）５と、液晶ディスプレイ等の表示デバイスである表示部６と、を備え、互いにバスを介して接続されている。
【００４４】
３Ｄプリンタ７は、汎用の３Ｄプリンタであり、立体物の三次元形状をポリゴンの集合で表現したポリゴンモデルである立体物造形用データを基に樹脂、石膏等の素材を加工して立体物を造形する立体物造形装置である。３Ｄプリンタ７は、データ処理部７ａと出力部７ｂを有している。３Ｄプリンタ７のデータ処理部７ａは、データ入出力Ｉ／Ｆ５に接続されており、データ入出力Ｉ／Ｆ５から受け取った立体物造形用データを基に、出力部７ｂが立体物を造形するようになっている。
【００４５】
図１では、立体物造形用データ出力規制装置１００と３Ｄプリンタ７は分離した形態で示されているが、現在市販されている殆どの３Ｄプリンタ製品には立体物造形用データ出力規制装置１００の構成要素である、ＣＰＵ１、ＲＡＭ２、記憶装置３、キー入力Ｉ／Ｆ４（汎用コンピュータ向けキーボード・マウスではなく、テンキーレベルの数種のボタン）、データ入出力Ｉ／Ｆ５、表示部６（数行の文字を表示可能な小型液晶パネル、タッチパネルを重畳させキー入力Ｉ／Ｆ４を兼ねることも多い）も小規模ながら重複して備えている。従って、３Ｄプリンタ７自体が外部記憶媒体経由で立体物造形用データを直接受け取り、単独で立体物を造形する運用も可能になっている（特に民生用の３Ｄプリンタではこちらの形態の方が多い）。すなわち、図１に示した立体物造形システムを１つの筐体に収めて、“３Ｄプリンタ”という製品として流通することも多い。
【００４６】
図２は、本実施形態に係る立体物造形用データ出力規制装置の構成を示す機能ブロック図である。図２において、１０は度数分布算出手段、３０はポリゴンモデル照合手段、４０は対象モデル記憶手段、５０は規制モデルデータベースである。
【００４７】
度数分布算出手段１０は、出力対象のポリゴンモデルである対象モデルに対して、対象モデルの基準点から対象モデルを構成する各ポリゴンまでの方向と距離を算出し、算出された距離の度数分布である距離分布を算出し、算出された方向と各ポリゴン固有の方向（法線ベクトル）とのなす角度の度数分布である角度分布を算出する処理を行う。度数分布照合手段３０は、対象モデルについて算出された距離分布、角度分布をそれぞれ、規制モデルデータベース５０に登録されている規制モデルの距離分布、角度分布と照合し、出力を規制すべきか否か、すなわち出力不適であるか出力適正であるかを判定する。
【００４８】
度数分布算出手段１０、度数分布照合手段３０は、ＣＰＵ１が、記憶装置３に記憶されているプログラムを実行することにより実現される。対象モデル記憶手段４０は、出力を規制すべきか否かの判定対象となるポリゴンモデルである対象モデルを記憶した記憶手段であり、記憶装置３により実現される。ポリゴンモデルとは、ポリゴンの集合により三次元空間における所定の立体形状を表現したデータであり、３Ｄプリンタ等の立体物造形装置に立体物造形用データとして出力されるものである。本実施形態では、ポリゴンモデルのデータ形式としてＳＴＬ（Standard Triangulated Language）を採用している。
【００４９】
規制モデルデータベース５０は、出力を規制すべきポリゴンモデルである規制モデルに対して２種の度数分布として算出された距離分布および角度分布を記憶して、データベース化したものであり、記憶装置３により実現される。２種の度数分布である距離分布および角度分布は、規制モデルの特徴を表現した特徴ベクトルとしての役割を果たすものとなる。即ち、２種の度数分布により、元の規制モデルの相違を識別可能であるが、元の規制モデルを復元できるわけではない。これは、指紋（フィンガープリント）により個人の相違を識別可能であるが、人物の姿そのものを復元できるわけではないのと同様である。したがって、２種の度数分布は、著作物としての役割は果たさないが、２つの著作物の同一性を証明する、いわゆるフィンガープリントとしての役割を果たすことになる。規制モデルデータベース５０には、距離分布および角度分布だけでなく、距離分布および角度分布の算出の基になった規制モデル自体を登録しておくことも可能であるが、通常は、著作権の問題から規制モデル自体は登録されていない。
【００５０】
図２に示した各構成手段は、現実には図１に示したように、コンピュータおよびその周辺機器等のハードウェアに専用のプログラムを搭載することにより実現される。すなわち、コンピュータが、専用のプログラムに従って各手段の内容を実行することになる。なお、本明細書において、コンピュータとは、ＣＰＵ等の演算処理部を有し、データ処理が可能な装置を意味し、パーソナルコンピュータなどの汎用コンピュータだけでなく、製品としての“３Ｄプリンタ”に組み込まれたボードコンピュータも含む。
【００５１】
図１に示した記憶装置３には、ＣＰＵ１を動作させ、コンピュータを、立体物造形用データ出力規制装置として機能させるための専用のプログラムが実装されている。この専用のプログラムを実行することにより、ＣＰＵ１は、度数分布算出手段１０、度数分布照合手段３０としての機能を実現することになる。また、記憶装置３は、対象モデル記憶手段４０、規制モデルデータベース５０として機能するだけでなく、立体物造形用データ出力規制装置としての処理に必要な様々なデータを記憶する。
【００５２】
＜２．処理動作＞
＜２．１．前処理＞
次に、図１、図２に示した立体物造形用データ出力規制装置の処理動作について説明する。まず、規制対象とするポリゴンモデルである規制モデルについて、２種の度数分布である距離分布および角度分布を作成する。ポリゴンモデルからの距離分布および角度分布の作成については、後述する立体物造形用データ出力規制装置における処理と同様にして行うことができる。規制モデルからの距離分布および角度分布の作成は、立体物造形用データ出力規制装置で行ってもよいし、別のコンピュータで同様のプログラムを実行することにより行ってもよい。作成された距離分布および角度分布は、規制モデルデータベース５０に登録される。
【００５３】
出力規制の対象は、銃砲・刀剣などの危険物だけでなく、キャラクターなどの著作物となることもある。いずれの場合においても、制作されたポリゴンモデルには著作権者が存在する著作物になる。したがって、著作物であるポリゴンモデルをデータベースに登録するためには、その行為自体に著作者の許諾が必要となる。距離分布および角度分布の形式により、元のポリゴンモデルの相違を識別可能であるが、元のポリゴンモデルを復元できるわけではない。これは、指紋（フィンガープリント）により個人の相違を識別可能であるが、人物の姿そのものを復元できるわけではないのと同様で、距離分布および角度分布の形式はフィンガープリントに相当し、著作物には該当しない。そこで、本発明のように、距離分布および角度分布の形式で登録することにより、著作者の許諾を必要とせずに、規制モデルの特徴を記録したデータベースを構築することができる。
【００５４】
＜２．２．処理概要＞
次に、図１、図２に示した立体物造形用データ出力規制装置の処理動作について説明する。図３は、本発明の一実施形態に係る立体物造形用データ出力規制装置の処理概要を示すフローチャートである。まず、度数分布算出手段１０が、ポリゴンモデルである対象モデルについて、２種の度数分布である距離分布および角度分布を算出する（ステップＳ１００）。そして、算出された対象モデルの度数分布と、規制モデルデータベース５０に登録された規制モデルの度数分布との照合を行う（ステップＳ２００）。
【００５５】
＜２．３．度数分布の算出処理＞
まず、ステップＳ１００の度数分布の算出処理について説明する。図４は、度数分布の算出処理の詳細を示すフローチャートである。ここでは、対象モデルのポリゴン数Ｎ、ポリゴンを特定する変数ｉ（ｉ＝０，・・・，Ｎ−１）とし、各ポリゴンｉの頂点を（Ｘｕ（ｉ），Ｙｕ（ｉ），Ｚｕ（ｉ））と定義されたものとする。ｕは頂点番号を示しており、本実施形態では、ポリゴンが三角形であるため、ｕ＝０，１，２の３つの値をとる。したがって、例えばＸｕ（ｉ）は、Ｘ０（ｉ）、Ｘ１（ｉ）、Ｘ２（ｉ）とも表記される。また、各ポリゴンｉの法線ベクトルを（Ｘｎ（ｉ），Ｙｎ（ｉ），Ｚｎ（ｉ））と定義する。頂点を特定したポリゴンおよび法線ベクトルは、立体物造形装置である３Ｄプリンタによる出力に必要なものであり、法線ベクトルの方向が造形面の外側（材料から空中方向）を示す。
【００５６】
度数分布算出手段１０は、まず、対象モデルを構成する各ポリゴンｉの面積Ｓ（ｉ）、Ｎ個のポリゴンの面積Ｓ（ｉ）の総和である総面積Ｓｓｕｍを以下の〔数式１〕に従った処理を実行することにより算出する（ステップＳ１１０）。
【００５７】
〔数式１〕
Ｖｘ＝[Ｙ１（ｉ）−Ｙ０（ｉ）][Ｚ２（ｉ）−Ｚ０（ｉ）]−[Ｚ１（ｉ）−Ｚ０（ｉ）][ Ｙ２（ｉ）−Ｙ０（ｉ）]
Ｖｙ＝[Ｚ１（ｉ）−Ｚ０（ｉ）][Ｘ２（ｉ）−Ｘ０（ｉ）]−[Ｘ１（ｉ）−Ｘ０（ｉ）][ Ｚ２（ｉ）−Ｚ０（ｉ）]
Ｖｚ＝[Ｘ１（ｉ）−Ｘ０（ｉ）][Ｙ２（ｉ）−Ｙ０（ｉ）]−[Ｙ１（ｉ）−Ｙ０（ｉ）][Ｘ２（ｉ）−Ｘ０（ｉ）] 
Ｓ（ｉ）＝[Ｖｘ（ｉ）2+Ｖｙ（ｉ）2+Ｖｚ（ｉ）2]1/2
Ｓｓｕｍ＝Σi=0,N-1Ｓ（ｉ）
【００５８】
上記〔数式１〕において、Σの添え字の“ｉ＝０，Ｎ−１”は、ｉが０からＮ−１の全ての整数をとる場合について、総和を求めることを示している。以下の〔数式３〕においても同様である。次に、対象モデルにおける基準点を算出する（ステップＳ１２０）。具体的には、ポリゴンモデルを構成する各ポリゴンについて、頂点の平均となる平均点を算出し、各ポリゴンの平均点にそのポリゴンの面積を重みとして乗じた値の、ポリゴンモデルを構成するＮ個のポリゴンについての平均値を、ポリゴンモデルの基準点として算出する。具体的には、まず、以下の〔数式２〕に従った処理を実行することにより、各ポリゴンの平均点（Ｘｃ（ｉ），Ｙｃ（ｉ），Ｚｃ（ｉ））を算出する。
【００５９】
〔数式２〕
Ｘｃ（ｉ）＝｛Ｘ０（ｉ）＋Ｘ１（ｉ）＋Ｘ２（ｉ）｝／３
Ｙｃ（ｉ）＝｛Ｙ０（ｉ）＋Ｙ１（ｉ）＋Ｙ２（ｉ）｝／３
Ｚｃ（ｉ）＝｛Ｚ０（ｉ）＋Ｚ１（ｉ）＋Ｚ２（ｉ）｝／３
【００６０】
次に、度数分布算出手段１０は、上記〔数式１〕に従った処理により算出されたポリゴンの面積Ｓ（ｉ）およびＳ（ｉ）の総和である総面積Ｓｓｕｍを用いて、以下の〔数式３〕に従った処理を実行することにより、対象モデルの基準点（Ｘｇ，Ｙｇ，Ｚｇ）を算出する。
【００６１】
〔数式３〕
Ｘｇ＝｛Σi=0,N-1（Ｘｃ（ｉ）×Ｓ（ｉ））｝／Ｓｓｕｍ
Ｙｇ＝｛Σi=0,N-1（Ｙｃ（ｉ）×Ｓ（ｉ））｝／Ｓｓｕｍ
Ｚｇ＝｛Σi=0,N-1（Ｚｃ（ｉ）×Ｓ（ｉ））｝／Ｓｓｕｍ
【００６２】
対象モデルの基準点は、上記〔数式３〕に示すように、各ポリゴンの面積を乗じているため、対象モデルの重心に近い点を示しており、ポリゴンの重さを加味した基準点となっている。
【００６３】
次に、度数分布算出手段１０は、基準点からポリゴン平均点へのベクトル算出を行う（ステップＳ１３０）。具体的には、以下の〔数式４〕に従った処理を実行することにより、対象モデルの基準点（Ｘｇ，Ｙｇ，Ｚｇ）から各ポリゴンｉの平均点（Ｘｃ（ｉ），Ｙｃ（ｉ），Ｚｃ（ｉ））へのベクトルである個別ベクトル（Ｄｘ（ｉ），Ｄｙ（ｉ），Ｄｚ（ｉ））を算出する。
【００６４】
〔数式４〕
Ｄｘ（ｉ）＝Ｘｃ（ｉ）−Ｘｇ
Ｄｙ（ｉ）＝Ｙｃ（ｉ）−Ｙｇ
Ｄｚ（ｉ）＝Ｚｃ（ｉ）−Ｚｇ
【００６５】
次に、度数分布算出手段１０は、基準点とポリゴン平均点の最大距離の算出を行う（ステップＳ１４０）。具体的には、以下の〔数式５〕に従った処理を実行することにより、対象モデルの基準点（Ｘｇ，Ｙｇ，Ｚｇ）から各ポリゴンｉの平均点（Ｘｃ（ｉ），Ｙｃ（ｉ），Ｚｃ（ｉ））までの距離Ｄ（ｉ）を求め、Ｎ個の距離Ｄ（ｉ）のうち最大のものを最大距離Ｄｍａｘとする。
【００６６】
〔数式５〕
Ｄ（ｉ）＝[Ｄｘ（ｉ）2＋Ｄｙ（ｉ）2＋Ｄｚ（ｉ）2]1/2
Ｄｍａｘ＝ＭＡＸi=0,N-1Ｄ（ｉ）
【００６７】
上記〔数式５〕において、Ｍａｘは、添え字の“ｉ＝０，Ｎ−１”のＤ（ｉ）の中から最大値を選択することを示している。
【００６８】
次に、度数分布算出手段１０は、基準点からポリゴン平均点へのベクトルと法線ベクトルのなす角度の算出を行う（ステップＳ１５０）。具体的には、以下の〔数式６〕に従った処理を実行することにより、ポリゴンｉの個別ベクトル（Ｄｘ（ｉ），Ｄｙ（ｉ），Ｄｚ（ｉ））と、ポリゴンｉの法線ベクトル（Ｘｎ（ｉ），Ｙｎ（ｉ），Ｚｎ（ｉ））のなす角度Ａ（ｉ）を算出する。
【００６９】
〔数式６〕
Ａ（ｉ）＝[ｃｏｓ-1[Ｄｘ（ｉ）Ｘｎ（ｉ）＋Ｄｙ（ｉ）Ｙｎ（ｉ）＋Ｄｚ（ｉ）Ｚｎ（ｉ）]／Ｄ（ｉ）］・１８０／π
【００７０】
上記〔数式６〕においては、単位をラジアンから度に変更するため［］で括られた部分に１８０／πを乗じている。したがって、Ａ（ｉ）は、０〜１８０の値をとることになる。基準点からポリゴン平均点へのベクトルと法線ベクトルのなす角度は、各ポリゴン固有の角度となる。
【００７１】
次に、度数分布算出手段１０は、基準点とポリゴン平均点の距離分布を算出する（ステップＳ１６０）。本実施形態で算出される距離分布は、面積加重した距離の分布であり、要素数をＭＤとし、各要素ｍｄ（ｍｄ＝０，・・・，ＭＤ−１）の度数をＨｄ（ｍｄ）と表す。
【００７２】
度数分布算出手段１０は、初期値をＨｄ（ｍｄ）＝０と設定し、以下の〔数式７〕に従った処理を実行することにより、要素ｍｄの度数Ｈｄ（ｍｄ）を算出する。
【００７３】
〔数式７〕
Ｄｍａｘ×ｍｄ／ＭＤ≦Ｄ（ｉ）＜Ｄｍａｘ×（ｍｄ＋１）／ＭＤならば、
Ｈｄ（ｍｄ）←Ｈｄ（ｍｄ）＋Ｓ（ｉ）
【００７４】
上記〔数式７〕は、対象モデルの基準点からポリゴンｉの平均点までの距離Ｄ（ｉ）が、最大距離Ｄｍａｘにｍｄ／ＭＤを乗じた値以上で、（ｍｄ＋１）／ＭＤを乗じた値より小さい場合に、Ｈｄ（ｍｄ）にポリゴンｉの面積Ｓ（ｉ）を加算することを意味している。
【００７５】
上記〔数式７〕に従った処理を、Ｎ個のポリゴンについて実行することにより、距離分布Ｈｄ（ｍｄ）（ｍｄ＝０，・・・，ＭＤ−１）が算出される。各要素には、単なる頻度ではなく、面積Ｓ（ｉ）が加算されているため、距離分布Ｈｄ（ｍｄ）は、面積加重の距離分布を示すことになる。面積Ｓ（ｉ）でなく単に１を加算するようにすることも可能であるが、その場合、ポリゴンの面積が加味されない距離分布となり、同一のポリゴンモデルに対してポリゴン構成が粗い場合と細かい場合とで、距離分布に顕著な差が生じてしまう。そこで、本実施形態では、距離分布算出時にポリゴンの面積を加算するようにしている。また、上記〔数式７〕で算出されたＨｄ（ｍｄ）に、更に１００／Ｓｓｕｍを乗じてＨｄ（ｍｄ）と置き換えることにより、単位を面積率［％］に正規化している。
【００７６】
次に、度数分布算出手段１０は、ポリゴン平均点へのベクトルと法線ベクトルの角度分布を算出する（ステップＳ１７０）。本実施形態で算出される角度分布は、面積加重した角度の分布であり、要素数をＭＡとし、各要素ｍａ（ｍａ＝０，・・・，ＭＡ−１）の度数をＨａ（ｍａ）と表す。要素数ＭＡは、上記要素数ＭＤと同一であってもよい。
【００７７】
度数分布算出手段１０は、初期値をＨａ（ｍａ）＝０と設定し、以下の〔数式８〕に従った処理を実行することにより、要素ｍａの度数Ｈａ（ｍａ）を算出する。
【００７８】
〔数式８〕
１８０×ｍａ／ＭＡ≦Ａ（ｉ）＜１８０×（ｍａ＋１）／ＭＡならば、
Ｈａ（ｍａ）←Ｈａ（ｍａ）＋Ｓ（ｉ）
【００７９】
上記〔数式８〕は、ポリゴンｉの個別ベクトルと、ポリゴンｉの法線ベクトルのなす角の角度Ａ（ｉ）が、１８０にｍａ／ＭＡを乗じた値以上で、（ｍａ＋１）／ＭＡを乗じた値より小さい場合に、Ｈａ（ｍａ）にポリゴンｉの面積Ｓ（ｉ）を加算することを意味している。
【００８０】
上記〔数式８〕に従った処理を、Ｎ個のポリゴンについて実行することにより、角度分布Ｈａ（ｍａ）（ｍａ＝０，・・・，ＭＡ−１）が算出される。各要素には、単なる頻度ではなく、面積Ｓ（ｉ）が加算されているため、角度分布Ｈａ（ｍａ）は、面積加重の角度分布を示すことになる。面積Ｓ（ｉ）でなく単に１を加算するようにすることも可能であるが、その場合、ポリゴンの面積が加味されない角度分布となり、同一のポリゴンモデルに対してポリゴン構成が粗い場合と細かい場合とで、距離分布に顕著な差が生じてしまう。そこで、本実施形態では、角度分布算出時にポリゴンの面積を加算するようにし、さらにＨａ（ｍａ）に１００／Ｓｓｕｍを乗じてＨａ（ｍａ）と置き換えることにより、単位を面積率［％］に正規化している。
【００８１】
＜２．４．度数分布の照合処理＞
次に、ステップＳ２００の度数分布の照合処理について説明する。図５は、度数分布の照合処理を示すフローチャートである。まず、度数分布照合手段３０は、規制モデルデータベース５０に記憶されているＲＥ個のレコードの中からレコードｒｅ（ｒｅ＝０，・・・，ＲＥ−１）に登録されている度数分布を抽出する（ステップＳ２１０）。度数分布として、距離分布Ｈｄｏ（ｒｅ，ｍｄ）（ｍｄ＝０，・・・，ＭＤ−１）、角度分布Ｈａｏ（ｒｅ，ｍｄ）（ｍｄ＝０，・・・，ＭＤ−１）を抽出する。
【００８２】
次に、度数分布照合手段３０は、対象モデルから算出された距離分布と、規制モデルデータベース５０から抽出された規制モデルの距離分布同士で各要素間のユークリッド距離を算出する（ステップＳ２２０）。具体的には、以下の〔数式９〕に従った処理を実行することにより、対象モデルの距離分布とレコードｒｅに対応する規制モデルの距離分布のユークリッド距離Ｄｄ（ｒｅ）を算出する。ユークリッド距離とは、各要素の度数同士の差分の絶対値を２乗した値で与えられるユークリッド空間上の距離である。ユークリッド距離Ｄｄ（ｒｅ）は、ＭＤ／Ｋ次元ユークリッド空間内の２点の距離として求められる。
【００８３】
〔数式９〕
Ｄｄ（ｒ）＝Σi=0,MD/K-1［｛Σk=0,K-1Ｈｄｏ（ｒｅ，ｉ×Ｋ＋ｋ）／Ｋ−Σk=0,K-1Ｈｄ（ｉ×Ｋ＋ｋ）／Ｋ｝2×Ｋ／ＭＤ］1/2
【００８４】
上記〔数式９〕において、Σの添え字の“ｉ＝０，ＭＤ／Ｋ−１”は、ｉが０からＭＤ／Ｋ−１の全ての整数をとる場合について総和を求めることを示し、Σの添え字の“ｋ＝０，Ｋ−１”は、ｍｄが０からＭＤ−１の全ての整数をとる場合について総和を求めることを示している。上記〔数式９〕において、Ｋは距離の位置ずれ許容範囲である。Ｋとしては、任意に設定することが可能であるが、例えばＭＤ＝３６０のときＫ＝１０としている。ｋはｋ＝０，・・・，Ｋ−１の値をとる整数である。許容範囲Ｋは、対象モデルの形状が若干変化することにより基準点が変動した場合の影響を排除するために用いられる（ポリゴン構成の精細度が変化したり、形状の装飾に軽微な変化がある場合に限定）。許容範囲Ｋを設けることにより、対象モデルの距離分布に若干の変動があった場合でも、的確に規制モデルとの照合を行うことが可能となる。
【００８５】
次に、度数分布照合手段３０は、ステップＳ２２０において算出された距離分布のユークリッド距離Ｄｄ（ｒｅ）と、判定しきい値との比較を行う（ステップＳ２３０）。ユークリッド距離Ｄｄ（ｒｅ）が判定しきい値より小さい場合は、適合と判定し、ユークリッド距離Ｄｄ（ｒｅ）が判定しきい値以上である場合は、不適合と判定する。判定しきい値としては、任意に設定可能であるが、ここでは、０．５としてある。
【００８６】
ステップＳ２３０において適合と判定された場合には、度数分布照合手段３０は、対象モデルから算出された角度分布と、規制モデルデータベース５０から抽出された規制モデルの角度分布の間で、互いのユークリッド距離を算出する（ステップＳ２４０）。具体的には、以下の〔数式１０〕に従った処理を実行することにより、対象モデルの角度分布とレコードｒｅに対応する規制モデルの角度分布のユークリッド距離Ｄａ（ｒｅ）を算出する。ユークリッド距離Ｄａ（ｒｅ）は、ＭＡ次元ユークリッド空間内の２点の距離として求められる。
【００８７】
〔数式１０〕
Ｄａ（ｒｅ）＝Σma=0,MA-1［｛Ｈａｏ（ｒｅ，ｍａ）−Ｈａ（ｍａ）｝2／ＭＡ］1/2
【００８８】
上記〔数式１０〕において、Σの添え字の“ｍａ＝０，ＭＡ−１”は、ｍａが０からＭＡ−１の全ての整数をとる場合について、後続の［・・・］1/2の総和を求めることを示している。
【００８９】
次に、度数分布照合手段３０は、ステップＳ２４０において算出された角度分布のユークリッド距離Ｄａ（ｒｅ）と、判定しきい値との比較を行う（ステップＳ２５０）。ユークリッド距離Ｄａ（ｒｅ）が判定しきい値より小さい場合は、適合と判定し、ユークリッド距離Ｄａ（ｒｅ）が判定しきい値以上である場合は、不適合と判定する。判定しきい値としては、任意に設定可能であるが、ここでは、０．５としてある。
【００９０】
ステップＳ２５０において適合と判定された場合には、度数分布照合手段３０は、対象モデルとレコードｒｅの規制モデルが適合することになるため、出力を規制すべきである（出力不適）との判定を行う。
【００９１】
ステップＳ２３０、Ｓ２５０のいずれかにおいて不適合と判定された場合には、度数分布照合手段３０は、対象モデルとレコードｒｅの規制モデルの照合を終え、次のレコードｒｅ＋１の規制モデルとの照合に移行する。図５のフローチャートに従った処理を、規制モデルデータベース５０内の全レコードに対して実行し、適合となる規制モデルが１つでも存在したら、対象モデルを“出力を規制すべきである（出力不適）”としてステップＳ２００の照合処理を終了することになる。
【００９２】
ここで、本実施形態において、距離分布と角度分布の２種の度数分布を用いて照合を行うことの有用性について２つの例を用いて説明する。図６は、２つの球体モデルＡ、Ｂそれぞれに対して得られる距離分布と角度分布を示す図である。図６（ａ）は、球体モデルＡを示し、図６（ｂ）（ｃ）は、それぞれ球体モデルＡの距離分布、角度分布を示している。図６（ｄ）は、球体モデルＢを示し、図６（ｅ）（ｆ）は、それぞれ球体モデルＢの距離分布、角度分布を示している。
【００９３】
図６（ａ）に示す球体モデルＡは、内部に空洞がなく、中身が詰まった状態の球体モデルである。内部に空洞がない場合、図６（ａ）に右上向きの矢印で示すように全てのポリゴンの法線ベクトルは全て外側を向いている。図６（ｄ）に示す球体モデルＢは、内部に空洞がある球体モデルである。内部に空洞がある場合、図６（ｄ）に示すようにポリゴンの法線ベクトルは外側（図中右上向き）を向くものと内側（図中左下向き）を向くものの双方が存在する。球体モデルＡ、球体モデルＢのいずれも球体であるため、重心に相当する基準点は、球体の中心に位置する。図６（ａ）（ｄ）において左右方向に延びる矢印は、基準点からポリゴンまでの距離を示している。
【００９４】
球体モデルＡでは、基準点から等距離にポリゴンが分布しているため、図６（ｂ）に示すように球体モデルＡの距離分布は、一定の距離の分布だけが突出して高くなる。球体モデルＢでは、外周部に厚みが存在するため、外側のポリゴンと内側のポリゴンでは、基準点からの距離がわずかに異なる。そのため、図６（ｅ）に示すように球体モデルＢの距離分布は、内側のポリゴンまでの距離と、外側のポリゴンまでの距離の２箇所だけが突出して高くなる。しかし、内側のポリゴンまでの距離と、外側のポリゴンまでの距離に大きな相違がないと、図６（ｅ）の２個所のピークは同一位置に統合加算され、球体モデルＡの距離分布と一致する分布となる。
【００９５】
また、球体モデルＡでは、空洞がなく中身が詰まった状態とするため、法線ベクトルは、基準点（この場合、球の中心）から外側を向く方向になっている。そのため、基準点からポリゴンまでのベクトルと、ポリゴンの法線ベクトルのなす角の角度分布は、図６（ｃ）に示すように０°付近だけが突出して高くなる。球体モデルＢでは、外側のポリゴンの法線ベクトルは、基準点（球の中心）から外側を向いているが、空洞を形成するために内側のポリゴンの法線ベクトルは基準点の方を向いている。そのため、角度分布は、図６（ｆ）に示すように０°付近と１８０°付近の２箇所だけが突出して高くなる。
【００９６】
図６（ｂ）（ｅ）に示すように、距離分布は双方とも所定の距離だけ突出して高くなった分布であり、大きな相違がない。そのため、球体モデルＡと球体モデルＢの照合を、距離分布のみを用いて行った場合、適合する（類似する）と判定されてしまう可能性が高まる。しかし、図６（ｃ）（ｆ）に示すように、角度分布では、１８０°付近の分布が大きく異なる。このため、球体モデルＡと球体モデルＢの照合を、角度分布を用いて行うことにより、両者が相違すると判定することができる。
【００９７】
距離分布と角度分布の２種の度数分布を用いて照合を行うことの有用性についてもう２つ目の例を用いて説明する。図７は、２つの球体モデルＢ、Ｃそれぞれに対して得られる距離分布と角度分布を示す図である。図７（ａ）は、球体モデルＢを示し、図７（ｂ）（ｃ）は、それぞれ球体モデルＡの距離分布、角度分布を示している。図７（ａ）〜（ｃ）は、図６（ｄ）〜（ｆ）と同一である。図７（ｄ）は、球体モデルＣを示し、図７（ｅ）（ｆ）は、それぞれ球体モデルＣの距離分布、角度分布を示している。
【００９８】
図７（ａ）に示す球体モデルＣは、球体モデルＢよりも外周部分が厚く、空洞の体積が小さい球体モデルである。内部に空洞があるため、球体モデルＢと同様、図７（ｄ）に示すようにポリゴンの法線ベクトルは外側と内側の双方を向いている。球体モデルＢ、球体モデルＣのいずれも球体であるため、重心に相当する基準点は、球体の中心に位置する。図７（ｄ）において左右方向に延びる大小の矢印は、それぞれ基準点から外側のポリゴン、内側のポリゴンまでの距離を示している。
【００９９】
球体モデルＢでは、外側のポリゴンの法線ベクトルは、基準点（球の中心）から外側を向いているが、空洞を形成するために内側のポリゴンの法線ベクトルは基準点の方を向いている。そのため、角度分布は、図７（ｃ）に示すように０°付近と１８０°付近の２箇所だけが突出して高くなる。球体モデルＣでも、外側のポリゴンの法線ベクトルは、基準点（球の中心）から外側を向いているが、空洞を形成するために内側のポリゴンの法線ベクトルは基準点の方を向いている。そのため、角度分布は、図７（ｆ）に示すように０°付近と１８０°付近の２箇所だけが突出して高くなる。外側の方が、表面積が大きく、ポリゴンの総面積も大きくなるため、０°付近の分布の方が１８０°付近の分布よりも大きくなる。
【０１００】
球体モデルＢでは、外周部に薄い層が存在するため、外側のポリゴンと内側のポリゴンでは、基準点からの距離がわずかに異なる。そのため、図７（ｂ）に示すように球体モデルＢの距離分布は、内側のポリゴンまでの距離と、外側のポリゴンまでの距離の２箇所だけが突出して高くなる。しかし、内側のポリゴンまでの距離と、外側のポリゴンまでの距離に大きな相違がないため、突出した２箇所は接近している。球体モデルＣでは、外周部に厚い層が存在するため、外側のポリゴンと内側のポリゴンでは、基準点からの距離が大きく異なる。そのため、図７（ｅ）に示すように球体モデルＣの距離分布は、内側のポリゴンまでの距離と、外側のポリゴンまでの距離の２箇所だけが突出して高くなる。しかし、内側のポリゴンまでの距離と、外側のポリゴンまでの距離に大きな相違があるため、突出した２箇所が離れている。
【０１０１】
図７（ｃ）（ｆ）に示すように、角度分布は双方とも０°付近と１８０°付近の２箇所だけが突出して高くなった分布であり、大きな相違がない。そのため、球体モデルＢと球体モデルＣの照合を、角度分布のみを用いて行った場合、適合する（類似する）と判定されてしまう可能性が高まる。しかし、図７（ｂ）（ｅ）に示すように、距離分布では、内側のポリゴンまでの距離の分布が大きく異なる。このため、球体モデルＢと球体モデルＣの照合を、距離分布を用いて行うことにより、両者が相違すると判定することができる。
【０１０２】
図６、図７に示した２つの例のように、角度分布と距離分布の２種の度数分布を用いることにより、２つのポリゴンモデルが大きく相違するか否かの判定をより確実に行うことが可能となる。
【０１０３】
＜３．３Ｄプリンタへのデータ出力＞
上記ステップＳ２００において、度数分布照合手段３０により“出力を規制すべきでない（出力適正）”と判定された場合には、立体物造形装置である３Ｄプリンタ７へ対象モデルを出力する。一方、度数分布照合手段３０により“出力を規制すべきである（出力不適）”と判定された場合には、立体物造形装置である３Ｄプリンタ７へ対象モデルを出力しない。また、出力適正か出力不適かの判定に時間がかかる場合には、３Ｄプリンタ７に対象モデルを出力し、３Ｄプリンタ７の出力処理(立体物造形処理)と並行して出力適正か出力不適かの判定を行い、出力不適である場合に出力中止命令を３Ｄプリンタ７に出力するようにしてもよい。この際、利用者から見れば、対象モデルの出力という一つの命令を行うことにより、３Ｄプリンタにおける立体物造形処理が開始されることが確認できるだけで、並行して出力適正か出力不適かの判定のための処理の実行が開始されることは気付かない。
【０１０４】
＜４．ポリゴン削減処理＞
図３に示したステップＳ１００の度数分布の算出処理に先立って、対象モデルのポリゴン数の削減を行うポリゴン削減処理を行うようにしてもよい。事前に重要度の低いポリゴンの削減を行っておくことにより、ポリゴンモデルの微細形状の相違を許容して高速に出力が適正か否かの判定を行うことが可能となる。以下に、度数分布の算出処理に先立つポリゴン削減処理について説明する。ポリゴン削減処理は、図１に示したＣＰＵ１が記憶装置３に記憶されたプログラムを実行ことにより実現されるポリゴン削減手段により行われる。
【０１０５】
図８は、ポリゴン削減手段によるポリゴン削除の基本原理を示す図である。ポリゴン集合は、現実には、空間における三次元の値をもつポリゴン群であるが、図８の例では、説明の便宜上、二次元の値をもつポリゴン群を示している。図８（ａ）の例では、削除前、１８個のポリゴンからなるポリゴン群を示している。
【０１０６】
図９は、ポリゴン削減手段によるポリゴン削減処理の詳細を示すフローチャートである。まず、ポリゴン削減手段は、対象モデルを構成する全ポリゴンを対象として、各ポリゴンの面積および周長を算出する（ステップＳ１１）。次に、ポリゴン削減手段は、算出された面積と周長を乗じた値が最小となるポリゴンを削除対象ポリゴンとして選定する（ステップＳ１２）。図８の例では、図８（ｂ）に示すように、３個の頂点Ｅ、Ｊ、Ｋで構成されるポリゴンＥＪＫが削除対象ポリゴンとして選定される。
【０１０７】
続いて、ポリゴン削減手段は、削除対象ポリゴンの３辺のうち最短の１辺を削除対象辺として選定し、選定した削除対象辺の中点を算出する（ステップＳ１３）。図８の例では、図８（ｃ）に示すように、削除対象ポリゴンＥＪＫの辺ＪＫが削除対象辺として選定される。さらに、辺ＪＫの中点Ｏが算出される。
【０１０８】
次に、ポリゴン削減手段は、削除対象ポリゴンを削除する（ステップＳ１４）。これによりポリゴン数が１つ削減されることになる。次に、ポリゴン削減手段は、削除対象ポリゴンの削除対象辺と頂点を共有していた削除頂点共有ポリゴンを順次選定する（ステップＳ１５）。削除対象ポリゴンの削除対象辺と２頂点を共有（すなわち辺を共有）している削除頂点共有ポリゴンが選定された場合には、ポリゴン削減手段は、その削除頂点共有ポリゴンを削除する（ステップＳ１６）。図８の例では、３個の頂点Ｊ、Ｋ、Ｎで構成されるポリゴンＪＫＮが削除される。これによりさらにポリゴン数が１つ削減されることになる。
【０１０９】
削除対象ポリゴンの削除対象辺と１頂点を共有している削除頂点共有ポリゴンが選定された場合には、ポリゴン削減手段は、共有頂点をステップＳ１３で算出された中点に補正し、面積および周長を再算出する（ステップＳ１７）。図８の例では、図８（ｃ）と図８（ｄ）を比較するとわかるように、ポリゴンＥＨＪ→ポリゴンＥＨＯ、ポリゴンＥＦＫ→ポリゴンＥＦＯ、ポリゴンＨＪＭ→ポリゴンＨＯＭ、ポリゴンＪＭＮ→ポリゴンＯＭＮ、ポリゴンＦＫＮ→ポリゴンＦＯＮに変更される。この結果、図８の例においては、図８（ａ）の時点で１８個あったポリゴンが、図８（ｄ）の時点では１６個に削減される。
【０１１０】
ステップＳ１５〜ステップＳ１７の処理を終えたら、ポリゴン削減手段は、削減後の全ポリゴン数が、設定された目標値以下となっているか否かを判定する（ステップＳ１８）。目標値としては、事前に任意の値を設定することができる。判定の結果、全ポリゴン数が目標値以下となっていない場合は、ステップＳ１２に戻って、ポリゴン削減手段は、残っているポリゴンの中から、面積と周長を乗じた値が最小となるポリゴンを削除対象ポリゴンとして選定する。ステップＳ１８における判定の結果、全ポリゴン数が目標値以下である場合は、ポリゴン削減処理を終了する。図９のフローチャートに従った処理を実行することにより、設定された目標値以下になるように、ポリゴン数が削減されることになる。
【０１１１】
＜５．対象モデル分割処理＞
図３に示した度数分布の算出処理に先立ち、対象モデルの分割を行う対象モデル分割処理を行うようにしてもよい。事前に対象モデルの分割を行っておくことにより、規制モデルと対象モデルとで互いに部品構成が異なる場合でも適切に出力が適正か否かの判断を行うことが可能となる。以下に、度数分布の算出処理に先立つ対象モデル分割処理について説明する。対象モデル分割処理は、図１に示したＣＰＵ１が記憶装置３に記憶されたプログラムを実行ことにより実現される対象モデル分割手段により行われる。
【０１１２】
図１０は、対象モデル分割手段による対象モデル分割処理の詳細を示すフローチャートである。対象モデル分割手段は、まず、初期設定を行う（ステップＳ２１）。具体的には、読み込んだ対象モデルのポリゴン集合を構成するポリゴン数Ｐ、ポリゴンを特定する変数ｐ（ｐ＝０，・・・，Ｐ−１）、探索ステータスＳ（ｐ）、グループ属性Ｇ（ｐ）、グループを特定する変数ｇ、探索ステータス示す変数ｓを設定する。探索ステータスＳ（ｐ）は、０以上の整数値をとる。Ｓ（ｐ）＝０はポリゴンｐがグループに未分類の状態、Ｓ（ｐ）＞０はＳ（ｐ）回目に実行されるステップＳ２２においてポリゴンｐがグループ属性Ｇ（ｐ）に分類された状態を示す。さらに、ステップＳ２１においては、ｐ＝０，・・・，Ｐ−１の全てのｐについてＳ（ｐ）＝Ｇ（ｐ）＝０、ｇ＝１、ｓ＝１と初期設定する。
【０１１３】
次に、全ポリゴンより、Ｓ（ｐ）＝Ｇ（ｐ）＝０となるポリゴンｐを１つ抽出する（ステップＳ２２）。初期状態では、全てＳ（ｐ）＝Ｇ（ｐ）＝０であるので、初回は必ずｐ＝０のポリゴンの抽出が行われる。ステップＳ２２において、Ｓ（ｐ）＝Ｇ（ｐ）＝０となるポリゴンｐが存在しない場合、すなわち、全てのｐ＝０，・・・，Ｐ−１について、Ｓ（ｐ）＞０である場合、ｇ−１個のグループに分離でき、対象モデルをｇ−１個の部分対象モデルに分割できたものとして対象モデル分割処理を終了する。なお、ステップＳ２２において、Ｓ（ｐ）＜０である状態は存在しないため、Ｓ（ｐ）は“０”か正の値のいずれかの状態である。Ｓ（ｐ）＝Ｇ（ｐ）＝０となるポリゴンｐが抽出できた場合は、抽出したポリゴンｐに対応する探索ステータスＳ（ｐ）＝ｓ、グループ属性Ｇ（ｐ）＝ｇに設定する。さらに、更新をカウントする変数である更新カウンタｃ＝０に設定する。
【０１１４】
ステップＳ２２において、Ｓ（ｐ）＝Ｇ（ｐ）＝０となるポリゴンｐを１つ抽出し、抽出したポリゴンｐに対応する探索ステータスＳ（ｐ）＝ｓ、グループ属性Ｇ（ｐ）＝ｇに設定した場合は、全ポリゴンより、Ｓ（ｑ）＝ｓとなるポリゴンｑを１つ抽出する（ステップＳ２３）。ｑはポリゴンを特定する変数であり、ポリゴンｐと同様、ｑ＝０，・・・，Ｐ−１内のいずれかの整数値をとる。Ｓ（ｑ）＝ｓとなるポリゴンｑが複数存在する場合は、例えばｑの値が最も小さいものを抽出する。
【０１１５】
ステップＳ２３において、Ｓ（ｑ）＝ｓとなるポリゴンｑを１つ抽出した場合、全ポリゴンより、抽出されたポリゴンｑと辺を共有する隣接ポリゴンｒ１、ｒ２、ｒ３の３つを探索の上、探索された３つの隣接ポリゴンｒ１、ｒ２、ｒ３の中でＳ（ｒ）＝Ｇ（ｒ）＝０を満たすポリゴンｒに対して、それぞれ探索ステータスＳ（ｒ）＝ｓ＋１、グループ属性Ｇ（ｒ）＝ｇに設定し、併せてｃの値をｃ←ｃ＋１と更新する（ステップＳ２４）。ｒはｒ１、ｒ２、ｒ３のいずれかのポリゴンを特定する変数であり、ポリゴンｐ、ｑと同様、ｒ＝０，・・・，Ｐ−１内のいずれかの整数値をとる。“ポリゴンｑと隣接ポリゴンｒの辺を共有する”とは、ポリゴンｑの２頂点とポリゴンｒの２頂点が同一であることを意味する。すなわち、隣接ポリゴンｒのいずれか１つの辺はポリゴンｑのいずれか１つの辺と同一になる。本実施形態では、ポリゴンが三角形であるので、ポリゴンを構成する３つの辺に対して、各々１辺を共有する隣接ポリゴンは必ず３つ存在する。コンピュータグラフィックで画面表示する場合にはこの条件が満足されなくても支障ないが、３Ｄプリンタで出力する場合は、物理的に造形物を形成できなるため、この条件は必須要件になる（もし満足されない場合はエラー警告が出され、プリンタ出力が実行されないのが一般的である。）。抽出された３つの隣接ポリゴンの中で、Ｓ（ｒ）＝Ｇ（ｒ）＝０を満たすポリゴンｒについては、それぞれ探索ステータスＳ（ｒ）＝ｓ＋１、グループ属性Ｇ（ｒ）＝ｇ、ｃ←ｃ＋１に設定する。
【０１１６】
そして、ステップＳ２３に戻って、全ポリゴンよりＳ（ｑ）＝ｓとなるポリゴンｑが他にも存在する場合、更に１つ抽出し、同様にステップＳ２４を実行する。即ち、ステップＳ２３とステップＳ２４の処理を繰り返すことにより、対象モデル中、Ｓ（ｑ）＝ｓとなるポリゴン全てについて、ステップＳ２４の処理を実行する。ステップＳ２３において、Ｓ（ｑ）＝ｓとなるポリゴンｑが存在しない場合、すなわち、全てのＳ（ｑ）＝ｓとなるポリゴンｑについて、３つの隣接ポリゴンを探索したら、探索ステータス示す変数ｓを１インクリメント（ｓ←ｓ＋１）する（ステップＳ２５）。
【０１１７】
次に、更新カウンタｃ＝０であるか否かを判定する（ステップＳ２６）。判定の結果、ｃ＝０でない場合は、ステップＳ２４においてポリゴンｑと隣接する３つのポリゴンの中でＳ（ｒ）＝Ｇ（ｒ）＝０を満たすポリゴンｒが少なくとも１つは存在していたことを意味するので、他にも同一のグループｇに含めるべきグループ属性が未定義であるポリゴンｐが存在しないか、ステップＳ２２に戻って、全ポリゴンより、Ｓ（ｐ）＝Ｇ（ｐ）＝０となるポリゴンｐを更に探索し、もし存在すれば１つ抽出し、抽出したポリゴンｐに対応する探索ステータスＳ（ｐ）＝ｓ、グループ属性Ｇ（ｐ）＝ｇ、更新カウンタｃ＝０に設定する。そして、上述のように、ステップＳ２３およびステップＳ２４の処理ループに進み全てのＳ（ｑ）＝ｓとなるポリゴンｑについて３つの隣接ポリゴンを探索する処理を繰り返す。
【０１１８】
このようにして、ステップＳ２２〜ステップＳ２５の処理を繰り返して実行し、ステップＳ２６における判定の結果、更新カウンタｃ＝０である場合、即ちステップＳ２４においてポリゴンｑと隣接する３つのポリゴンのいずれもが既に同一のグループｇに設定され、グループｇに含めるべきＳ（ｒ）＝Ｇ（ｒ）＝０を満たすグループ属性が未定義ポリゴンｒが全く存在しない場合はグループｇへの分類は終了したとみなし、次のグループｇ＋１への分類に移行するため、グループを特定する変数ｇを１インクリメント（ｇ←ｇ＋１）する（ステップＳ２７）。そしてステップＳ２２に戻り、新たなグループｇへの分類を同様に行う。もし、ステップＳ２２において、Ｓ（ｐ）＝Ｇ（ｐ）＝０となるグループ属性が未定義のポリゴンｐが見つからなかった場合、全Ｐ個のポリゴンのグループ属性はいずれかの値に設定されていることから、分類処理が終了したとみなすことができる。その際、ステップＳ２７で更新されたグループｇはいずれのポリゴンのグループ属性として設定されていないことから、全Ｐ個のポリゴンはｇ−１個のグループに分類されたことになる。
【０１１９】
図１０のフローチャートに従った処理を実行することにより、全Ｐ個のポリゴンが、２頂点を共有して連結するポリゴン集合ごとにグループに分類される。この分類されたグループが、部分対象モデルとなる。図１０の例では、対象モデルの各ポリゴンは、ｇ−１個の部分対象モデルのいずれかに属することになる。この結果、対象モデルはｇ−１個の部分対象モデルに分割される。
【０１２０】
度数分布の算出処理に先立って行われる、ポリゴン削減手段によるポリゴン削減処理、対象モデル分割手段による対象モデル分割処理は、どちらの順序で行ってもよい。できれば、ポリゴン削減処理を行った後に、対象モデル分割処理を行う方が効率的である。また、ポリゴン削減処理、対象モデル分割処理の双方でなく、どちらか一方のみを行うようにしてもよい。
【０１２１】
＜６．規制モデルの度数分布算出および登録について＞
変形例として、度数分布照合手段３０を備えた立体物造形用データ出力規制装置とは別の場所で、規制モデルに対して算出された距離分布および角度分布を、立体物造形用データ出力規制装置にネットワークを介して送信して登録するようにしてもよい。
【０１２２】
図１１は、変形例における立体物造形用データ出力規制装置を含む立体物造形システムのハードウェア構成図である。図１１に示した立体物造形システムにおいて、立体物造形用データ出力規制装置１０１は、図１に示した立体物造形用データ出力規制装置１００の構成に、インターネット等の公衆ネットワークと通信するためのネットワーク通信部８を備えた構成となっている。規制モデル度数分布算出装置１０２は、汎用のコンピュータで実現することができ、図１１に示すように、ＣＰＵ（Central Processing Unit）１ａと、コンピュータのメインメモリであるＲＡＭ（Random Access Memory）２ａと、ＣＰＵ１ａが実行するプログラムやデータを記憶するためのハードディスク、フラッシュメモリ等の大容量の記憶装置３ａと、キーボード、マウス等のキー入力Ｉ／Ｆ（インターフェース）４ａと、データ記憶媒体等の外部装置とデータ通信するためのデータ入出力Ｉ／Ｆ（インターフェース）５ａと、液晶ディスプレイ等の表示デバイスである表示部６ａと、インターネット等の公衆ネットワークと通信するためのネットワーク通信部８ａを備え、互いにバスを介して接続されている。立体物造形用データ出力規制装置１０１のネットワーク通信部８と規制モデル度数分布算出装置１０２のネットワーク通信部８ａは互いに通信を行い、規制モデル度数分布算出装置１０２から立体物造形用データ出力規制装置１０１へ規制モデルに対して算出された２種の度数分布の送信を行うことが可能になっている。
【０１２３】
図１１では、立体物造形用データ出力規制装置１０１と３Ｄプリンタ７は分離した形態で示されているが、現在市販されている殆どの３Ｄプリンタ製品には立体物造形用データ出力規制装置１０１の構成要素である、ＣＰＵ１、ＲＡＭ２、記憶装置３、キー入力Ｉ／Ｆ４（汎用コンピュータ向けキーボード・マウスではなく、テンキーレベルの数種のボタン）、データ入出力Ｉ／Ｆ５、表示部６（数行の文字を表示可能な小型液晶パネル、タッチパネルを重畳させキー入力Ｉ／Ｆ４を兼ねることも多い）、ネットワーク通信部８（無線ＬＡＮ機能）も小規模ながら重複して備えている。従って、３Ｄプリンタ７自体が外部記憶媒体やインターネット経由で立体物造形用データを直接受け取り、単独で立体物を造形する運用も可能になっている（特に民生用の３Ｄプリンタではこちらの形態の方が多い）。すなわち、図１１に示した立体物造形用データ出力規制装置１０１および３Ｄプリンタ７を１つの筐体に収めて、“３Ｄプリンタ”という製品として流通することも多い。
【０１２４】
規制モデル度数分布算出装置１０２においては、ＣＰＵ１ａが、記憶装置３ａに記憶されているプログラムを実行することにより、第２の度数分布算出手段、度数分布送信手段が実現される。規制モデル度数分布算出装置１０２で実現される第２の度数分布算出手段は、立体物造形用データ出力規制装置１００で実現される度数分布算出手段１０と同様の機能を有し、規制モデルに対して２種の度数分布として距離分布、角度分布を算出する。度数分布送信手段は、規制モデルについて算出された２種の度数分布である距離分布、角度分布を立体物造形用データ出力規制装置１０１に送信する。立体物造形用データ出力規制装置１０１では、ネットワーク通信部８が、規制モデル度数分布算出装置１０２から度数分布を受信すると、ＣＰＵ１が所定のプログラムを実行して度数分布登録手段として機能し、受信した度数分布を記憶装置３で実現される規制モデルデータベース５０に登録する。
【０１２５】
＜７．クラウド型の立体物造形システム＞
本発明は、クラウド型の立体物造形システムに適用することも可能である。図１２は、クラウド型の立体物造形システムのハードウェア構成図である。図１２に示した立体物造形システムでは、出力制御用端末２０１と処理サーバ２０２により立体物造形用データ出力規制装置が実現される。図１２に示した立体物造形システムにおいて、出力制御用端末２０１は、図１１において立体物造形用データ出力規制装置１０１として示したコンピュータと同等のハードウェア構成を有する。すなわち、出力制御用端末２０１は、ＣＰＵ１１、ＲＡＭ１２、記憶装置１３、キー入力Ｉ／Ｆ１４、データ入出力Ｉ／Ｆ１５、表示部１６、ネットワーク通信部１８を備え、互いにバスを介して接続されている。
【０１２６】
処理サーバ２０２は、汎用のコンピュータに専用のプログラムを組み込むことにより実現することができる。図１２に示すように、ＣＰＵ１１ａ、ＲＡＭ１２ａ、記憶装置１３ａ、キー入力Ｉ／Ｆ１４ａと、データ入出力Ｉ／Ｆ１５ａと、表示部１６ａと、ネットワーク通信部１８ａを備え、互いにバスを介して接続されている。出力制御用端末２０１のネットワーク通信部１８と処理サーバ２０２のネットワーク通信部１８ａは互いに通信を行い、処理サーバ２０２から出力制御用端末２０１へ出力適否の判定に基づく出力適否データの送信を行うことが可能になっている。図１２では、出力制御用端末２０１と３Ｄプリンタ７は分離した形態で示されているが、図１１の例と同様、３Ｄプリンタ製品に出力制御用端末２０１の構成要素である、ＣＰＵ１１、ＲＡＭ１２、記憶装置１３、キー入力Ｉ／Ｆ１４、データ入出力Ｉ／Ｆ１５、表示部１６、ネットワーク通信部１８を重複して備えていてもよい。
【０１２７】
図１３は、クラウド型の立体物造形システムの機能ブロック図である。クラウド型の立体物造形システムを構成する処理サーバ２０２は、図２に示した立体物造形用データ出力規制装置の各手段に加えて、対象モデル受信手段６０、出力適否データ送信手段７０を備えた構成となっている。対象モデル記憶手段４１は、対象モデル自体ではなく、対象モデルについて算出された２種の度数分布を記憶する。また、度数分布算出手段１０は、処理サーバ２０２ではなく、出力制御用端末２０１が備えた構成となっている。
【０１２８】
図２に示した立体物造形用データ出力規制装置と同等の機能を有するものについては、同一符号を付して説明を省略する。対象モデル受信手段６０は、出力制御用端末２０１から送信された対象モデルの度数分布を受信して対象モデル記憶手段４１に登録する手段であり、ＣＰＵ１１ａが所定のプログラムを実行するとともに、ネットワーク通信部１８ａを制御することにより実現される。出力適否データ送信手段７０は、度数分布照合手段３０により判定された“出力を規制すべきであるか否か”に基づき、出力適否データを出力制御用端末２０１に送信する手段であり、ＣＰＵ１１ａが所定のプログラムを実行するとともに、ネットワーク通信部１８ａを制御することにより実現される。
【０１２９】
処理サーバ２０２は、インターネット等のネットワークに接続され、多数の出力制御用端末からアクセス可能になっている。クラウド型の立体物造形システムの「クラウド型」とは、３Ｄプリンタにより立体物を出力する出力側でなく、出力側からネットワークを介した遠隔地のコンピュータにおいて、規制すべきか否かを判定することを意味する。従来のサーバ型コンピュータでは多数の利用者のアクセスが集中すると応答性が遅くなり利用者に迷惑をかけることが多かったが、クラウド型では仮想化技術によりコンピュータの物理的構成を動的に変更することが可能になるため、常に安定した応答性を維持できるという特徴がある。処理サーバ２０２は物理的には複数台のコンピュータにより実現されるのが一般的である。
【０１３０】
図１２、図１３に示したクラウド型の立体物造形システムの処理動作について説明する。出力制御用端末２０１において、利用者がキー入力Ｉ／Ｆ１４を介して出力したい対象モデルを指定すると、ＣＰＵ１１は、記憶装置１３に記憶されている指定された対象モデルを抽出し、対象モデルを特定する識別情報であるモデルＩＤを付与する。そして、ＣＰＵ１１は、モデルＩＤが付与された対象モデルに対して、図３に示したフローチャートに従って、度数分布算出手段１０が処理を行い、距離分布および角度分布で構成される度数分布を生成する。さらにＣＰＵ１１は、生成された度数分布を、記憶装置１３に事前に設定されているＵＲＬ等のアドレス宛に、ネットワーク通信部１８を介して送信する。ポリゴンデータに比べ情報量が顕著に少ない度数分布を送信する方法をとることにより、伝送時間が大幅に短縮されるだけでなく、サーバ側には著作物であるポリゴンデータが送信されず、サーバ側に複製物が残らないため、著作権侵害を回避することができる。並行してＣＰＵ１１は、モデルＩＤが付与された対象モデルを、データ入出力Ｉ／Ｆ１５を介して３Ｄプリンタ７のデータ処理部７ａに送信する。データ処理部７ａ内のプリンタキューには、出力制御用端末２０１から受信した対象モデルが保持され、出力ジョブとして待機状態となる。この時、３Ｄプリンタ出力における前処理であるポリゴン形式のデータを積層形式のデータに変換する処理のみ実行させるようにし、積層形式のデータに変換された段階で待機状態にする手法もとることができる。このデータ処理負荷もそれなりに高いため、この間に出力適否判定が完了すれば、利用者側に余分な待ち時間を感じさせないようにすることができる。
【０１３１】
処理サーバ２０２では、対象モデル受信手段６０が、出力制御用端末２０１から送信された対象モデルの度数分布を受信すると、その度数分布を対象モデル記憶手段４１に記憶する。ここで、図３に示したフローチャートに従って、度数分布照合手段３０が処理を行い、受信した度数分布に対応する対象モデルの出力適否を判定する。出力適否の結果である出力適否データは、度数分布照合手段３０から出力適否データ送信手段７０に渡される。そして、出力適否データ送信手段７０は、度数分布の送信元（アクセス元）である出力制御用端末２０１に、モデルＩＤを付加した出力適否データを送信する。
【０１３２】
出力制御用端末２０１では、ネットワーク通信部１８が、処理サーバ２０２から出力適否データを受信すると、ＣＰＵ１１が、受信した出力適否データを、データ入出力Ｉ／Ｆ１５を介して３Ｄプリンタ７のデータ処理部７ａに送信する。データ処理部７ａは、受信した出力適否データに付与されたモデルＩＤでプリンタキュー内の出力ジョブを参照する。そして、出力適否データが“適（出力適正）”である場合、データ処理部７ａは、その出力ジョブを待機状態から出力状態に変更し、出力部７ｂに対象モデルを出力する。出力適否データが“否（出力不適）”である場合、データ処理部７ａは、その出力ジョブを破棄する。すなわち、プリンタキューから削除する。
【０１３３】
＜８．度数分布算出事例＞
図１４〜図１８に、本実施形態に係る立体物造形用データ出力規制装置による度数分布の算出処理（ステップＳ１００）による度数分布算出事例を示す。図１４〜図１８のいずれにおいても、左側にポリゴンモデル、右側に度数分布を示している。度数分布は上段が距離分布（Ｄｉｓｔａｎｃｅ）を示し、下段が角度分布（Ａｎｇｌｅ）を示している。図１４（ａ）は、球体ａ（実際には多面体）のポリゴンモデル（１２２４ポリゴン）を示す図である。図１４（ａ）のような球体のポリゴンモデルに対しては、図１４（ｂ）に示すように、特定の距離だけが突出して高い距離分布と、０°付近だけが突出して高い角度分布が得られる。得られた距離分布と角度分布を見ると、図１４（ａ）のポリゴンモデルは中身が詰まった球体を出力するためのものであることがわかる。
【０１３４】
図１５（ａ）は、図１４（ａ）よりポリゴン数が少ない球体ｂ（実際には多面体）のポリゴンモデル（１２０ポリゴン）を示す図である。図１５（ａ）のような多面体のポリゴンモデルに対しては、図１５（ｂ）に示すように、特定の距離だけが突出して高い距離分布と、０°付近だけが突出して高い角度分布が得られる。得られた距離分布と角度分布を見ると、図１５（ａ）のポリゴンモデルは中身が詰まった球体を出力するためのものであることがわかる。ただし、図１４のポリゴンモデルと比較するとポリゴン数が少ないため、距離のバラツキが若干大きくなる。
【０１３５】
図１６（ａ）は、模擬拳銃ｃのポリゴンモデルを示す図である。図１６（ａ）のような模擬拳銃のポリゴンモデルに対しては、図１６（ｂ）に示すように、距離、角度ともに分散された状態の距離分布、角度分布が得られる。図１７（ａ）は、実質的には図１６（ａ）に示したものと同じであるが、スケールとアングルが異なる模擬拳銃ｄのポリゴンモデルを示す図である。図１７（ａ）に示した模擬拳銃のポリゴンモデルに対しては、図１７（ｂ）に示すように、距離、角度ともに分散された状態の距離分布、角度分布が得られる。図１６（ｂ）に示した距離分布および角度分布と、図１７（ｂ）に示した距離分布および角度分布は全く同じである。これは、度数分布算出手段１０により算出された度数分布は、スケールとアングルの影響を排除して得られることを意味している。
【０１３６】
図１８（ａ）は、図１６（ａ）に示した模擬拳銃ｃのポリゴンモデルの一部を欠損させた模擬拳銃ｅのポリゴンモデルを示す図である。図１８（ａ）のような模擬拳銃のポリゴンモデルに対しては、図１８（ｂ）に示すように、距離、角度ともに分散された状態の距離分布、角度分布が得られる。しかし、図１６（ｂ）に示した距離分布および角度分布と比較すると、その分散の程度が異なり、特に距離分布については横軸方向に顕著なずれが生じていることがわかる。これは、一部の欠損により重心がずれたために生じたものである。
【０１３７】
図１９は、図１４〜図１８に示したポリゴンモデル同士の度数分布照合手段３０による照合結果を示す図である。照合結果として、算出された距離分布のユークリッド距離Ｄｄ、角度分布のユークリッド距離Ｄａを示している。図１９に示すように、球体ａと球体ｂのユークリッド距離Ｄｄ、Ｄａはともに“０．００００００”である。ポリゴンの数が変わっても両者は一致するものと判定される。図１４（ｂ）の上段の距離分布と図１５（ｂ）の上段の距離分布を比較すると、一見異なっているように見えるが、上記〔数式９〕に示したように、位置ずれ許容範囲Ｋを用いて、近傍の平均値として距離を求めているため、球体ａと球体ｂのユークリッド距離Ｄｄは“０．００００００”となる。また、球体ａと模擬拳銃ｃのユークリッド距離Ｄｄは“１．７２７２９９”であり、ユークリッド距離Ｄａは“５．３００３１８”である。判定しきい値が０．５の場合、大きく超えることになる。これは、球体と模擬拳銃で形態が全く異なるためである。
【０１３８】
また、模擬拳銃ｃと模擬拳銃ｄのユークリッド距離Ｄｄ、Ｄａはともに“０．００００００”である。これは、スケールとアングルが異なるだけで、実質的には同一のものであるためである。また、模擬拳銃ｃと模擬拳銃ｅのユークリッド距離Ｄｄは“０．３７２８２４”であり、ユークリッド距離Ｄａは“０．８１６４１１”である。判定しきい値が０．５の場合、距離については適合と判定されるが、角度については、不適合と判定されることになる。このように一方が不適合である場合、出力を規制すべきでない（出力適正）と判定されることになる。
【０１３９】
図２０、図２１に、本実施形態に係る立体物造形用データ出力規制装置による度数分布の算出処理（ステップＳ１００）により、医療臓器模型に対して算出された度数分布の例を示す。図２０、図２１のいずれにおいても、左側にポリゴンモデル、右側に度数分布を示している。度数分布は上段が距離分布（Ｄｉｓｔａｎｃｅ）を示し、下段が角度分布（Ａｎｇｌｅ）を示している。
【０１４０】
＜９．変形例等＞
以上、本発明の好適な実施形態について説明したが、本発明は上記実施形態に限定されず、種々の変形が可能である。例えば、上記実施形態では、処理対象のポリゴンを三角形としたが、四角形以上の多角形であってもよい。
【符号の説明】
【０１４１】
１、１ａ、１１、１１ａ・・・ＣＰＵ（Central Processing Unit）
２、２ａ、１２、１２ａ・・・ＲＡＭ（Random Access Memory）
３、３ａ、１３、１３ａ・・・記憶装置
４、４ａ、１４、１４ａ・・・キー入力Ｉ／Ｆ
５、５ａ、１５、１５ａ・・・データ入出力Ｉ／Ｆ
６、６ａ、１６、１６ａ・・・表示部
７・・・３Ｄプリンタ（立体物造形装置）
７ａ・・・データ処理部
７ｂ・・・出力部
８、８ａ、１８、１８ａ・・・ネットワーク通信部
１０・・・度数分布算出手段
３０・・・度数分布照合手段
４０、４１・・・対象モデル記憶手段
５０・・・規制モデルデータベース
６０・・・対象モデル受信手段
７０・・・出力適否データ送信手段
１００、１０１・・・立体物造形用データ出力規制装置
１０２・・・規制モデル度数分布算出装置
２０１・・・出力制御用端末
２０２・・・処理サーバ
【図１】
0006409513.tif 000002
【図２】
0006409513.tif 000003
【図３】
0006409513.tif 000004
【図４】
0006409513.tif 000005
【図５】
0006409513.tif 000006
【図６】
0006409513.tif 000007
【図７】
0006409513.tif 000008
【図８】
0006409513.tif 000009
【図９】
0006409513.tif 000010
【図１０】
0006409513.tif 000011
【図１１】
0006409513.tif 000012
【図１２】
0006409513.tif 000013
【図１３】
0006409513.tif 000014
【図１４】
0006409513.tif 000015
【図１５】
0006409513.tif 000016
【図１６】
0006409513.tif 000017
【図１７】
0006409513.tif 000018
【図１８】
0006409513.tif 000019
【図１９】
0006409513.tif 000020
【図２０】
0006409513.tif 000021
【図２１】
0006409513.tif 000022