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