JP2015162167A - 立体物造形用データ出力規制装置 - Google Patents

立体物造形用データ出力規制装置 Download PDF

Info

Publication number
JP2015162167A
JP2015162167A JP2014038076A JP2014038076A JP2015162167A JP 2015162167 A JP2015162167 A JP 2015162167A JP 2014038076 A JP2014038076 A JP 2014038076A JP 2014038076 A JP2014038076 A JP 2014038076A JP 2015162167 A JP2015162167 A JP 2015162167A
Authority
JP
Japan
Prior art keywords
polygon
model
polygons
dimensional object
target model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014038076A
Other languages
English (en)
Other versions
JP6318701B2 (ja
Inventor
茂出木 敏雄
Toshio Modegi
敏雄 茂出木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2014038076A priority Critical patent/JP6318701B2/ja
Publication of JP2015162167A publication Critical patent/JP2015162167A/ja
Application granted granted Critical
Publication of JP6318701B2 publication Critical patent/JP6318701B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

【課題】 人間による判断を行わなくても、的確にポリゴンモデルの出力規制を行うことが可能な立体物造形用データ出力規制装置を提供する。
【解決手段】 規制モデルが登録された規制モデルデータベース50と、対象モデルのポリゴン数が所定以下になるようにポリゴンを削減するポリゴン削減手段10と、ポリゴンが削減された対象モデルに対して、その基準点が3次元座標の原点になるように全体を移動させ、基準点からポリゴンまでの最長距離が所定長になるように全体をスケーリング調整し、最長距離の方向が第1の軸に一致するように全体を回転させることにより、所定の位置、スケール、傾きに正規化された対象モデルを作成するポリゴン正規化手段20と、正規化された対象モデルを規制モデルデータベース50に登録されている規制モデルと照合し、出力するのに適正であるか否かを判定するポリゴンモデル照合手段30を備える。
【選択図】 図2

Description

本発明は、立体物を表すデータを基に、樹脂等を加工して立体物を造形する3Dプリンタ等の立体物造形装置の利用に際して、立体物造形装置からの出力に不適切なものを判別するための技術に関する。
近年、立体物を表すデータをもとに、樹脂や石膏等を加工して造形する3Dプリンタが立体物造形装置として普及してきている。3Dプリンタの医療応用として、医療診断で撮影されるCT/MRI画像(DICOM形式3次元ボクセルデータ)を基に3Dプリンタ出力用モデリングデータを作成し、手術シミュレーション・医学教育・インフォームドコンセント向けの臓器模型を出力したり、体内埋め込み用の人工臓器(血管、骨、関節など)を作成したりする試みが始まっている。
3Dプリンタには、インターネットを介して情報だけでなく、モノを遠隔地に間接的に伝搬できる革新性を備えている。そのため、これまで税関で規制されていた銃砲・刀剣などの危険物がデータ形態で国境を越えて流布され、3Dプリンタによりモノとして容易に入手可能になるという問題が発生している。
具体的には、あるWEBサイトにて3Dプリンタを用いて所定のモデルの拳銃を製造できるSTL(Standard Triangulated Language)が無償で公開されている。金属製に比べて射程距離などは多少劣るが、3Dプリンタで作成された弾丸でも殺傷能力はそれなりにある。更に、現状の3Dプリンタで造形可能な材料は樹脂・石膏に限定され、金属が使用できないという欠点が裏目に出て、空港の金属探知機で見逃されるという問題も指摘されている。今後、民生用の3Dプリンタが普及するにあたり、3Dプリンタ側に投入される出力データの形状認証と危険物の出力規制などのセキュリティ機能をもたせることが求められる。
これに対して、ウィルス対策ツールと類似した手法で出力可否判定を行うシステムを構築する方法が考えられ、その実現にあたり、ポリゴン照合技術が必要になるが、ポリゴン照合には、従来より次の問題が知られている。3Dプリンタ出力用のポリゴンデータ(STL形式など)では、3次元座標値が絶対寸法でないためスケールがまちまちで、座標原点やアングルも使用されるCADや出力予定のプリンタの特性に合せて種々に設定される。そのため、たとえソースが同一の3Dモデルであっても、ポリゴンデータの作成方法が異なると、表現される総ポリゴン数も変化し、ポリゴンデータの座標値比較で同一性を判定することは一般に難しい。
そこで、特許文献1のように、重心からの慣性モーメントなど特徴パラメータによるアングル・スケールに依存しない比較手法が提案されている。また、特許文献2では、ポリゴンモデルの重心からの距離分布や隣接面とのクリーズ角などの特徴量を抽出してアングル・スケールに依存しない比較を行う手法が提案されている。特許文献3では、3次元モデルを複数アングルに2次元投影した画像に対してフーリエ変換を行い特徴抽出して比較する手法が提案されている。
特許第3610270号公報 特開2000−222428号公報 特許第5024767号公報
上記従来の技術は、いずれも類似形状検索の用途であり、検索されたデータを採択するか否かは人間の判断に委ねられている。人間による判断を加えない場合、これらの既存手法を適用してしまうと精度が粗すぎて、過剰に出力拒否判定をされてしまうという問題が発生する。
そこで、本発明は、人間による判断を行わなくても、的確にポリゴンモデルの出力規制を行うことが可能な立体物造形用データ出力規制装置を提供することを課題とする。
上記課題を解決するため、本発明第1の態様では、ポリゴンの集合として表現されたポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきであるか否かを判定する装置であって、出力を規制すべきポリゴンモデルである規制モデルが登録された規制モデルデータベースと、出力対象のポリゴンモデルである対象モデルに含まれるポリゴンの数が所定の値以下になるようにポリゴンを削減するポリゴン削減手段と、前記ポリゴンが削減された対象モデルに対して、当該対象モデルの基準点が3次元座標の原点になるように前記対象モデルを移動させ、前記基準点から最も遠いポリゴンまでの最長距離が所定の長さになるように前記対象モデルをスケーリング調整し、前記最長距離の方向が第1の軸(例えばZ軸)に一致するように前記対象モデルを回転させることにより、所定の位置、スケール、傾きに正規化された対象モデルを作成するポリゴン正規化手段と、前記正規化された対象モデルを前記規制モデルデータベースに登録されている規制モデルと照合し、出力を規制すべきか否かを判定するポリゴンモデル照合手段と、を備えることを特徴とする立体物造形用データ出力規制装置を提供する。
本発明第1の態様によれば、規制モデルが登録された規制モデルデータベースを備え、対象モデルに含まれるポリゴンの数が所定の値以下になるようにポリゴンを削減し、ポリゴンが削減された対象モデルに対して、対象モデルの基準点が3次元座標の原点になるように対象モデルを移動させ、基準点から最も遠いポリゴンまでの最長距離が所定の長さになるように対象モデルをスケーリング調整し、最長距離の方向が第1の軸(例えばZ軸)に一致するように対象モデルを回転させることにより、所定の位置、スケール、傾きに正規化された対象モデルを作成し、正規化された対象モデルを規制モデルデータベースに登録されている規制モデルと照合し、出力を規制すべきか否かを判定するようにしたので、ウィルス対策ツールと類似した手法でパターンファイル(規制モデルデータベース)を構築し、3Dプリンタ等の立体物造形装置に出力予定のポリゴンモデルに対してブラックリスト(規制モデルデータベース)に登録されている各ポリゴンモデルと照合し、出力可否判定を行うことが可能となる。このため、立体物造形装置に出力予定のポリゴンモデルのスケールまたはアングルが規制モデルデータベースに登録されている規制モデルのものと異なっていても、適切か否かの判断を行うことができ、人間による判断を行わなくても、的確にポリゴンモデルの出力規制を行うことが可能となる。
また、本発明第2の態様では、前記対象モデルの基準点は、各ポリゴンの頂点座標の平均であるポリゴン平均座標を、前記対象モデルに含まれるポリゴンについて算出した平均値として与えられるものであることを特徴とする。
本発明第2の態様によれば、対象モデルの基準点は、各ポリゴンの頂点座標の平均であるポリゴン平均座標を、対象モデルに含まれるポリゴンについて算出した平均値として与えられるようにしたので、立体物造形装置に出力予定のポリゴンモデルの各頂点が規制モデルデータベースに登録されている規制モデルのものと若干異なっていても、適切か否かの判断を行うことができ、対象モデルの重心に近い位置を基準点として迅速に算出することが可能となる。
また、本発明第3の態様では、前記ポリゴン正規化手段は、前記ポリゴンが削減された対象モデルの基準点から最も遠いポリゴンまでの最長距離方向が前記第1の軸(例えばZ軸)の正または負の一方の特定方向に一致させるため、前記第1の軸(例えばZ軸)と第2の軸(例えばX軸)で形成される(XZ)2次元座標系に投影された前記基準点から最も遠いポリゴンまでの最長距離方向が前記第1の軸(例えばZ軸)の前記特定方向に一致するように前記対象モデルを回転させた後に、前記第1の軸(例えばZ軸)と第3の軸(例えばY軸)で形成される(YZ)2次元座標系に投影された前記基準点から最も遠いポリゴンまでの最長距離方向が前記第1の軸(例えばZ軸)の前記特定方向に一致するように前記対象モデルを回転させるようにしていることを特徴とする。
本発明第3の態様によれば、ポリゴンが削減された対象モデルの基準点から最も遠いポリゴンまでの最長距離方向が第1の軸(例えばZ軸)の特定方向に一致させるため、第1の軸(例えばZ軸)と第2の軸(例えばX軸)で形成される(XZ)2次元座標系に投影された基準点から最も遠いポリゴンまでの最長距離方向が第1の軸(例えばZ軸)の特定方向に一致するように対象モデルを回転させた後に、第1の軸(例えばZ軸)と第3の軸(例えばY軸)で形成される(YZ)2次元座標系に投影された基準点から最も遠いポリゴンまでの最長距離方向が第1の軸(例えばZ軸)の特定方向に一致するように対象モデルを回転させるようにしたので、立体物造形装置に出力予定のポリゴンモデルおよび規制モデルデータベースに登録されている規制モデルに対して、各々少なくとも立体物の長手方向のアングルを揃えた上で照合を行うことが可能となる。
また、本発明第4の態様では、前記ポリゴン正規化手段は、前記ポリゴンが削減された対象モデルの基準点から最も遠いポリゴンまでの最長距離方向が前記第1の軸(例えばZ軸)の前記特定方向に一致するように前記対象モデルを回転させた後に、前記第2の軸(例えばX軸)と前記第3の軸(例えばY軸)で形成される(XY)2次元座標系に投影された基準点から最も遠いポリゴンまでの最長距離方向が前記第3の軸(例えばY軸)の前記特定方向に一致するように前記対象モデルを更に回転させるようにしていることを特徴とする。
本発明第4の態様によれば、ポリゴンが削減された対象モデルの基準点から最も遠いポリゴンまでの最長距離方向が第1の軸(例えばZ軸)の特定方向に一致するように対象モデルを回転させた後に、第2の軸(例えばX軸)と第3の軸(例えばY軸)で形成される(XY)2次元座標系に投影された基準点から最も遠いポリゴンまでの最長距離方向が第3の軸(例えばY軸)の特定方向に一致するように対象モデルを更に回転させるようにしたので、立体物造形装置に出力予定のポリゴンモデルおよび規制モデルデータベースに登録されている規制モデルに対して、各々アングルを完全に一致させて上で照合を行うことが可能となる。
また、本発明第5の態様では、前記ポリゴン照合手段は、角度(アングル)に依存しない角度非依存照合処理と、角度に依存する角度依存照合処理を行う2種の処理から構成され、前記角度非依存照合処理で適合した場合のみ、前記角度依存照合処理を実行するようにしていることを特徴とする。
本発明第5の態様によれば、ポリゴン照合として、はじめに角度(アングル)に依存しない角度非依存照合処理を行い、角度非依存照合処理で適合(類似)した場合のみ、角度依存照合処理を実行するようにしたので、大きく異なるモデルについては、少ない処理負荷で迅速に非類似と判定することができ、全体として効率的な判定が可能となる。
また、本発明第6の態様では、前記ポリゴン照合手段は、前記角度非依存照合処理として、前記対象モデルを構成するポリゴンの面積の総和値と、前記規制モデルを構成するポリゴンの面積の総和値を算出し、2つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合判定するようにしていることを特徴とする。
本発明第6の態様によれば、角度非依存照合処理として、対象モデルを構成するポリゴンの面積の総和値と、規制モデルを構成するポリゴンの面積の総和値を算出し、2つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合(類似)判定するようにしたので、比較的簡易な演算によりしきい値と比較する値を算出することができ、迅速な適否判定が可能となる。
また、本発明第7の態様では、前記ポリゴン照合手段は、前記角度非依存照合処理として、前記対象モデルを構成するポリゴンを底面として前記基準点を頂点とする角錐の体積の総和値と、前記規制モデルを構成するポリゴンを底面として前記基準点を頂点とする角錐の体積の総和値を算出し、2つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合(類似)判定するようにしていることを特徴とする。
本発明第7の態様によれば、角度非依存照合処理として、対象モデルを構成するポリゴンを底面として基準点を頂点とする角錐の体積の総和値と、規制モデルを構成するポリゴンを底面として基準点を頂点とする角錐の体積の総和値を算出し、2つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合(類似)判定するようにしたので、比較的簡易な演算によりしきい値と比較する値を算出することができ、迅速な適否判定が可能となる。
また、本発明第8の態様では、前記ポリゴン照合手段は、前記角度非依存照合処理として、前記対象モデルを構成するポリゴンの面積の総和値と、前記規制モデルを構成するポリゴンの面積の総和値を算出し、2つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合(類似)判定し、適合判定された場合のみ、前記対象モデルを構成するポリゴンを底面として前記基準点を頂点とする角錐の体積の総和値と、前記規制モデルを構成するポリゴンを底面として前記基準点を頂点とする角錐の体積の総和値を算出し、2つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合(類似)判定するようにしていることを特徴とする。
本発明第8の態様によれば、角度非依存照合処理として、対象モデルを構成するポリゴンの面積の総和値と、規制モデルを構成するポリゴンの面積の総和値を算出し、2つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合(類似)判定し、適合判定された場合のみ、対象モデルを構成するポリゴンを底面として基準点を頂点とする角錐の体積の総和値と、規制モデルを構成するポリゴンを底面として基準点を頂点とする角錐の体積の総和値を算出し、2つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合(類似)判定するようにしたので、迅速かつ確実にしきい値と比較する値を算出することができ、迅速な適否判定が可能となる。
また、本発明第9の態様では、前記ポリゴン照合手段は、前記角度依存照合処理として、前記対象モデル、前記規制モデルそれぞれについて、構成するポリゴンの頂点座標の平均であるポリゴン平均座標が最も近いポリゴン同士でポリゴン平均座標間の距離を算出し、ポリゴン平均座標間の距離の総和値を算出し、前記2つのモデルの総和値の平均値が所定のしきい値より小さい場合に適合(類似)判定するようにしていることを特徴とする。
本発明第9の態様によれば、角度依存照合処理として、対象モデル、規制モデルそれぞれについて、構成するポリゴンの頂点座標の平均であるポリゴン平均座標が最も近いポリゴン同士でポリゴン平均座標間の距離を算出し、ポリゴン平均座標間の距離の総和値を算出し、2つのモデルの総和値の平均値が所定のしきい値より小さい場合に適合(類似)判定するようにしたので、簡易な角度非依存照合で類似と判定されたモデルに対して再判定を行い、規制する必要のないポリゴンモデルを誤って規制することがないように判定精度を上げることが可能となる。規制すべきポリゴンモデルに対して見逃して出力を許可してしまう場合は、少なくともユーザからのクレームは起こらないが、その逆の場合は、ユーザからのクレーム発生につながり本技術を搭載した3Dプリンタ装置に対する信頼性も失われる。本発明第9の態様によれば、そのような信頼の失墜を防ぐことに貢献できる。
また、本発明第10の態様では、前記ポリゴン照合手段は、前記角度依存照合処理として、前記対象モデル、前記規制モデルそれぞれについて、構成するポリゴンの頂点座標の平均であるポリゴン平均座標が最も近いポリゴン同士で、対応する頂点間の距離を算出し、当該距離の全ポリゴンについての総和値を算出し、前記2つのモデルの総和値の平均値が所定のしきい値より小さい場合に適合(類似)判定するようにしていることを特徴とする。
本発明第10の態様によれば、角度依存照合処理として、対象モデル、規制モデルそれぞれについて、構成するポリゴンの頂点座標の平均であるポリゴン平均座標が最も近いポリゴン同士で、対応する頂点間の距離を算出し、距離の全ポリゴンについての総和値を算出し、2つのモデルの総和値の平均値が所定のしきい値より小さい場合に適合(類似)判定するようにしたので、簡易な角度非依存照合で類似と判定されたモデルに対して再判定を行い、規制する必要のないポリゴンモデルを誤って規制することがないように本発明第9の態様より更に判定精度を上げることが可能となる。
また、本発明第11の態様では、前記規制モデルに含まれるポリゴンの数が所定の値以下になるようにポリゴンを削減する第2のポリゴン削減手段と、前記ポリゴンが削減された規制モデルに対して、当該規制モデルの基準点が3次元座標の原点になるように前記規制モデルを移動させ、前記基準点から最も遠いポリゴンまでの最長距離が所定の長さになるように前記規制モデルをスケーリング調整し、前記最長距離の方向が第1の軸(Z軸)に一致するように前記規制モデルを回転させることにより、所定の位置、スケール、傾きに揃えた規制モデルを作成する第2のポリゴン正規化手段と、を備えた規制モデル正規化装置により正規化された規制モデルを受信し、受信した規制モデルを前記規制モデルデータベースに登録する規制モデル登録手段を更に有することを特徴とする。
本発明第11の態様によれば、規制モデルに含まれるポリゴンの数が所定の値以下になるようにポリゴンを削減する第2のポリゴン削減手段、ポリゴンが削減された規制モデルに対して、規制モデルの基準点が3次元座標の原点になるように規制モデルを移動させ、基準点から最も遠いポリゴンまでの最長距離が所定の長さになるように規制モデルをスケーリング調整し、最長距離の方向が第1の軸(例えばZ軸)に一致するように規制モデルを回転させることにより、所定の位置、スケール、傾きに正規化された規制モデルを作成する第2のポリゴン正規化手段を備えた規制モデル正規化装置を別途用意し、この規制モデル正規化装置から正規化された規制モデルを受信し、受信した規制モデルを規制モデルデータベースに登録するようにしたので、規制モデルデータベースの更新を遠隔地から迅速に行うことが可能となる。
また、本発明第12の態様では、前記ポリゴン削減手段によるポリゴン削減前の対象モデルを、接続された立体物造形装置に出力する手段と、前記立体物造形装置による立体物の造形処理と並行して実行される前記ポリゴンモデル照合手段により、出力を規制すべきであると判定された場合に、前記立体物造形装置に、前記ポリゴン削減前の対象モデルの出力中止命令を出力する手段と、を更に備えることを特徴とする。
本発明第12の態様によれば、ポリゴン削減前の対象モデルを、接続された立体物造形装置に出力し、並行して実行されるポリゴンモデル照合手段による照合の結果、出力を規制すべきであると判定された場合に、立体物造形装置に、ポリゴン削減前の対象モデルの出力中止命令を出力するようにしたので、時間のかかる立体物の造形を遅延させることなく、出力不適の場合にのみ、出力を中止することが可能となる。
本発明によれば、人間による判断を行わなくても、的確にポリゴンモデルの出力規制を行うことが可能となる。
本発明の一実施形態に係る立体物造形用データ出力規制装置100を含む立体物造形システムのハードウェア構成図である。 本発明の一実施形態に係る立体物造形用データ出力規制装置の構成を示す機能ブロック図である。 本発明の一実施形態に係る立体物造形用データ出力規制装置の処理概要を示すフローチャートである。 ステップS100のポリゴン削減処理の詳細を示すフローチャートである。 ポリゴン削減手段10によるグループ分類処理の詳細を示すフローチャートである。 ポリゴン削除の基本原理を示す図である。 ポリゴン削除処理の詳細を示すフローチャートである。 ポリゴン削除処理により生じる問題を説明するための図である。 隔離された小体積グループの削除処理の詳細を示すフローチャートである。 図9のステップS44における最小間隔の算出処理の詳細を示すフローチャートである。 ステップS200のポリゴン正規化処理の詳細を示すフローチャートである。 ポリゴン正規化処理の概要を示す図である。 ポリゴン照合処理の概要を示すフローチャートである。 総面積に基づくポリゴン照合処理の詳細を示すフローチャートである。 体積に基づくポリゴン照合処理の詳細を示すフローチャートである。 座標値に基づくポリゴン照合処理の詳細を示すフローチャートである。 変形例における立体物造形用データ出力規制装置のハードウェア構成図である。 正規化前のオリジナルのポリゴンモデルを示す図である。 ステップS230におけるスケーリングと原点移動後のポリゴンモデルを示す図である。 図19の状態のまま、視点のみをXZ平面に変換した図である。 図20の状態からステップS240におけるY軸中心回転を行った後のポリゴンモデルを示す図である。 図21の状態のまま、視点のみを変換した斜視図である。 図21、図22の状態のまま、視点のみをYZ平面に変換した図である。 図23の状態からステップS250におけるX軸中心回転を行った後のポリゴンモデルを示す図である。 図24の状態のまま、視点のみを変換した斜視図である。 図24、図25の状態のまま、視点のみをXY平面に変換した図である。 図26の状態からステップS260におけるZ軸中心回転を行った後のポリゴンモデルを示す図である。 図27の状態のまま、視点のみを変換した斜視図である。
以下、本発明の好適な実施形態について図面を参照して詳細に説明する。
<1.装置構成>
図1は、本発明の一実施形態に係る立体物造形用データ出力規制装置100を含む立体物造形システムのハードウェア構成図である。本実施形態に係る立体物造形用データ出力規制装置100は、汎用のコンピュータで実現することができ、図1に示すように、CPU(Central Processing Unit)1と、コンピュータのメインメモリであるRAM(Random Access Memory)2と、CPU1が実行するプログラムやデータを記憶するためのハードディスク、フラッシュメモリ等の大容量の記憶装置3と、キーボード、マウス等のキー入力I/F(インターフェース)4と、3Dプリンタやデータ記憶媒体等の外部装置とデータ通信するためのデータ入出力I/F(インターフェース)5と、液晶ディスプレイ等の表示デバイスである表示部6と、を備え、互いにバスを介して接続されている。3Dプリンタ7は、汎用の3Dプリンタであり、立体物を表現したポリゴンモデルである立体物造形用データを基に樹脂、石膏等の素材を加工して立体物を造形する立体物造形装置である。3Dプリンタ7は、データ処理部7aと出力部7bを有している。3Dプリンタ7のデータ処理部7aは、データ入出力I/F5に接続されており、データ入出力I/F5から受け取った立体物造形用データを基に、出力部7bが立体物を造形するようになっている。図1では、立体物造形用データ出力規制装置100と3Dプリンタ7は分離した形態で示されているが、現在市販されている殆どの3Dプリンタ製品には立体物造形用データ出力規制装置100の構成要素である、CPU1、RAM2、記憶装置3、キー入力I/F4(汎用コンピュータ向けキーボード・マウスではなく、テンキーレベルの数種のボタン)、データ入出力I/F5、表示部6(数行の文字を表示可能な小型液晶パネル、タッチパネルを重畳させキー入力I/F4を兼ねることも多い)も小規模ながら重複して備えている。従って、3Dプリンタ7自体が外部記憶媒体経由で立体物造形用データを直接受け取り、単独で立体物を造形する運用も可能になっている(特に民生用の3Dプリンタではこちらの実施形態の方が多い)。すなわち、図1に示した立体物造形システムを1つの筐体に収めて、“3Dプリンタ”という製品として流通することも多い。
図2は、本実施形態に係る立体物造形用データ出力規制装置の構成を示す機能ブロック図である。図2において、10はポリゴン削減手段、20はポリゴン正規化手段、30はポリゴンモデル照合手段、40は対象モデル記憶手段、50は規制モデルデータベースである。
ポリゴン削減手段10は、対象モデル記憶手段40に記憶されたポリゴンモデルである対象モデルを構成するポリゴンを削減する。ポリゴン正規化手段20は、ポリゴンが削減されたポリゴンモデルに対して、所定の位置、スケール、アングルに正規化する処理を行う。ポリゴンモデル照合手段30は、正規化後のポリゴンモデルを、規制モデルデータベース50内のポリゴンモデルである各規制モデルと照合し、出力適否の判定を行う。
ポリゴン削減手段10、ポリゴン正規化手段20、ポリゴンモデル照合手段30は、CPU1が、記憶装置3に記憶されているプログラムを実行することにより実現される。対象モデル記憶手段40は、出力適否の判定対象となるポリゴンモデルである対象モデルを記憶した記憶手段であり、記憶装置3により実現される。ポリゴンモデルとは、ポリゴンの集合により三次元空間における所定の立体形状を表現したデータであり、3Dプリンタ等の立体物造形装置に立体物造形用データとして出力されるものである。本実施形態では、ポリゴンモデルのデータ形式としてSTL(Standard Triangulated Language)を採用している。規制モデルデータベース50は、規制対象となるポリゴンモデルである規制モデルを記憶してデータベース化したものであり、記憶装置3により実現される。
図2に示した各構成手段は、現実には図1に示したように、コンピュータおよびその周辺機器等のハードウェアに専用のプログラムを搭載することにより実現される。すなわち、コンピュータが、専用のプログラムに従って各手段の内容を実行することになる。なお、本明細書において、コンピュータとは、CPU等の演算処理部を有し、データ処理が可能な装置を意味し、パーソナルコンピュータなどの汎用コンピュータだけでなく、製品としての“3Dプリンタ”に組み込まれたボードコンピュータも含む。
図1に示した記憶装置3には、CPU1を動作させ、コンピュータを、立体物造形用データ出力規制装置として機能させるための専用のプログラムが実装されている。この専用のプログラムを実行することにより、CPU1は、ポリゴン削減手段10、ポリゴン正規化手段20、ポリゴンモデル照合手段30としての機能を実現することになる。また、記憶装置3は、対象モデル記憶手段40、規制モデルデータベース50として機能するだけでなく、立体物造形用データ出力規制装置としての処理に必要な様々なデータを記憶する。
<2.処理動作>
<2.1.前処理>
次に、図1、図2に示した立体物造形用データ出力規制装置の処理動作について説明する。まず、規制モデルデータベース50に登録する対象となるポリゴンモデルである規制モデルを作製する。これは、規制対象となるポリゴンモデルである規制モデルについて、ポリゴンの削減、ポリゴンの正規化をすることにより行われる。この結果、規制モデルを構成するポリゴンの数が、所定数以下となり、正規化されて規制モデルデータベース50に登録される。規制モデルのポリゴンの削減、ポリゴンの正規化については、後述する立体物造形用データ出力規制装置における処理と同様に行うことができる。規制モデルのポリゴンの削減、ポリゴンの正規化は、立体物造形用データ出力規制装置で行ってもよいし、別のコンピュータで同様のプログラムを実行することにより行ってもよい。
<2.2.処理概要>
次に、図1、図2に示した立体物造形用データ出力規制装置の処理動作について説明する。図3は、本発明の一実施形態に係る立体物造形用データ出力規制装置の処理概要を示すフローチャートである。まず、ポリゴン削減手段10が、対象モデル記憶手段40から、適否判定対象のポリゴンモデルである対象モデルを読み込み、対象モデルを構成するポリゴンを削減する(ステップS100)。次に、ポリゴンが削減された対象モデルの正規化を行う(ステップS200)。続いて、正規化された対象モデルと、規制モデルデータベース50に登録されたポリゴンモデルである規制モデルとの照合を行う(ステップS300)。
<2.3.ポリゴン削減処理>
まず、ステップS100のポリゴン削減処理について説明する。図4は、ポリゴン削減処理の詳細を示すフローチャートである。図4の例では、対象モデルが複数の領域に分類され、領域ごとのポリゴン集合として記録されている場合を示している。領域とは、1つの立体物を複数に分けた領域であり、部品により組み立てられた物品であれば、各部品に相当するものである。まず、ポリゴン削減手段10が、対象モデル記憶手段40から、1つの領域について対象モデルのポリゴン集合を読み込み、複数のグループに分類する(ステップS110)。次に、各グループのサーフェースデータに対して、ポリゴン削減手段10は、ポリゴン削除処理を実行する(ステップS120)。ポリゴン削減手段10は、全グループについてポリゴン削除処理が終了したか否かを判定し(ステップS130)、全グループについて終了していない場合は、未処理のグループに対してステップS120のポリゴン削除処理を実行する。全グループに対するポリゴン削除処理が終了した場合は、ポリゴン削減手段10は、隔離された小体積グループの削除を行う(ステップS140)。続いて、ポリゴン削減手段10は、全グループのポリゴン集合の合成を行う(ステップS150)。ポリゴン削減手段10が、全領域について処理が終了したか否かを判定し(ステップS160)、全領域について終了していない場合は、未処理の領域に対してステップS110〜S150の処理を実行する。全領域に対する処理が終了した場合は、ポリゴン削減手段10が、全領域の領域別ポリゴン集合の合成を行う(ステップS170)。
<2.3.1.グループ分類処理>
まず、ステップS110におけるグループ分類処理について説明する。図5は、ポリゴン削減手段10によるグループ分類処理の詳細を示すフローチャートである。ポリゴン削減手段10は、まず、初期設定を行う(ステップS11)。具体的には、読み込んだ領域別ポリゴン集合を構成するポリゴン数P、ポリゴンを特定する変数p(p=0,・・・,P−1)、探索ステータスS(p)、グループ属性G(p)、グループを特定する変数gを設定する。探索ステータスS(p)は、0、1、2のいずれかの値をとる。S(p)=0はグループに未分類の状態、S(p)=1はグループに分類された状態、S(p)=2は、そのポリゴンに隣接するポリゴンである隣接ポリゴンがグループに分類された状態を示す。さらに、ステップS11においては、p=0,・・・,P−1の全てのpについてS(p)=G(p)=0、g=1と初期設定する。
次に、全ポリゴンより、S(p)=G(p)=0となるポリゴンpを1つ抽出する(ステップS12)。初期状態では、全てS(p)=G(p)=0であるので、初回は必ず抽出が行われる。S(p)=G(p)=0となるポリゴンpが複数存在する場合は、例えばpの値が最も小さいものを抽出する。ステップS12において、S(p)=G(p)=0となるポリゴンpが存在しない場合、すなわち、全てのp=0,・・・,P−1について、S(p)=2である場合、g−1個のグループに分離できたものとしてグループ分類処理を終了する。なお、ステップS12において、S(p)=1である状態は存在しないため、S(p)は“0”か“2”のいずれかの状態である。S(p)=G(p)=0となるポリゴンpが抽出できた場合は、抽出したポリゴンpに対応する探索ステータスS(p)=1、グループ属性G(p)=gに設定する。
ステップS12において、S(p)=G(p)=0となるポリゴンpを1つ抽出し、抽出したポリゴンpに対応する探索ステータスS(p)=1、グループ属性G(p)=gに設定した場合は、全ポリゴンより、S(q)=1となるポリゴンqを1つ抽出する(ステップS13)。qはポリゴンを特定する変数であり、ポリゴンpと同様、q=0,・・・,P−1内のいずれかの整数値をとる。S(q)=1となるポリゴンqが複数存在する場合は、例えばqの値が最も小さいものを抽出する。ステップS13において、S(q)=1となるポリゴンqが存在しない場合、すなわち、全てのS(q)=0または2である場合、グループを特定する変数gを1インクリメント(g←g+1)する(ステップS14)。そしてステップS12に戻り、次のグループへの分類を行う。
ステップS13において、S(q)=1となるポリゴンqを1つ抽出した場合、全ポリゴンより、S(r)=G(r)=0であって、抽出されたポリゴンqと2頂点を共有する隣接ポリゴンrを全て抽出する(ステップS15)。rはポリゴンを特定する変数であり、ポリゴンp、qと同様、r=0,・・・,P−1内のいずれかの整数値をとる。“ポリゴンqと2頂点を共有する”とは、ポリゴンqと一つの辺を共有することを意味する。すなわち、隣接ポリゴンrは一つの辺を共有することによりポリゴンqと隣接するポリゴンである。抽出された隣接ポリゴンについては、それぞれ探索ステータスS(r)=1、グループ属性G(r)=gに設定する。
次に、ポリゴンqの探索ステータスS(q)=2に設定する(ステップS16)。すなわち、ポリゴンqについては、隣接ポリゴンを設定した後の状態とする。そして、ステップS13に戻って、全ポリゴンの中から、S(q)=1となるポリゴンqを1つ抽出する。
図5に示したフローチャートでは、ステップS12、S13、S14で構成されるループと、ステップS13、S15、S16で構成されるループの2つのループ処理が存在する。ステップS12、S13、S14で構成されるループでは、グループに未分類のポリゴンを抽出してグループに分類し(ステップS12)、グループに分類済みのポリゴンの中から1つを隣接ポリゴン探索用のポリゴンとして抽出できない場合(ステップS13)は、そのグループに分類すべきポリゴンは、存在しないものとして、次のグループに移行(g←g+1)する(ステップS14)。ステップS12、S13、S14で構成されるループでは、連続する一塊のポリゴン群を一つのグループとして分類する。したがって、ステップS13において、S(q)=1となるポリゴンが存在しない場合には、グループに分類済みのいずれかのポリゴンに隣接するポリゴンが存在しないことになるので、グループgへの分類を終え、グループg+1への分類に移行するのである。
ステップS13、S15、S16で構成されるループでは、グループに分類済みのポリゴンの中から1つを隣接ポリゴン探索用のポリゴンqとして抽出し(ステップS13)、全ポリゴンの中からポリゴンqと2頂点を共有するポリゴンを隣接ポリゴンrとして抽出し(ステップS15)、抽出できた場合も抽出できない場合も、探索用のポリゴンqの探索ステータスS(q)を、ポリゴンqに隣接するポリゴンの探索を終えた状態であるS(q)=2に設定する。
ステップS12、S13、S14で構成されるループと、ステップS13、S15、S16で構成されるループの2つのループ処理を用いることにより、全P個のポリゴンが、2頂点を共有して連続するポリゴン群ごとにグループに分類される。1頂点しか共有しないポリゴンのみで隣接している場合は、別のグループとして分類されることになる。図5に従った処理を実行することにより領域別ポリゴン集合を構成するポリゴンは複数のグループに分類されることになる。
<2.3.2.ポリゴン削除処理>
次に、ステップS120におけるポリゴン削減手段10によるポリゴン削除処理について説明する。図6は、ポリゴン削除の基本原理を示す図である。サーフェースデータは、現実には、空間における三次元の値をもつポリゴン群であるが、図6の例では、説明の便宜上、二次元の値をもつポリゴン群を示している。図6(a)の例では、削除前、18個のポリゴンからなるポリゴン群を示している。
図7は、ポリゴン削減手段10によるポリゴン削除処理の詳細を示すフローチャートである。まず、ポリゴン削減手段10は、サーフェースデータを構成する全ポリゴンを対象として、各ポリゴンの面積および周長を算出する(ステップS21)。次に、ポリゴン削減手段10は、算出された面積と周長を乗じた値が最小となるポリゴンを削除対象ポリゴンとして選定する(ステップS22)。図6の例では、図6(b)に示すように、3個の頂点E、J、Kで構成されるポリゴンEJKが削除対象ポリゴンとして選定される。
続いて、ポリゴン削減手段10は、削除対象ポリゴンの3辺のうち最短の1辺を削除対象辺として選定し、選定した削除対象辺の中点を算出する(ステップS23)。図6の例では、図6(c)に示すように、削除対象ポリゴンEJKの辺JKが削除対象辺として選定される。さらに、辺JKの中点Oが算出される。
次に、ポリゴン削減手段10は、削除対象ポリゴンを削除する(ステップS24)。これによりポリゴン数が1つ削減されることになる。次に、ポリゴン削減手段10は、削除対象ポリゴンの削除対象辺と頂点を共有していた削除頂点共有ポリゴンを順次選定する(ステップS25)。削除対象ポリゴンの削除対象辺と2頂点を共有(すなわち辺を共有)している削除頂点共有ポリゴンが選定された場合には、ポリゴン削減手段10は、その削除頂点共有ポリゴンを削除する(ステップS26)。図6の例では、3個の頂点J、K、Nで構成されるポリゴンJKNが削除される。これによりさらにポリゴン数が1つ削減されることになる。削除対象ポリゴンの削除対象辺と1頂点を共有している削除頂点共有ポリゴンが選定された場合には、ポリゴン削減手段10は、共有頂点をステップS23で算出された中点に補正し、面積および周長を再算出する(ステップS27)。図6の例では、図6(c)と図6(d)を比較するとわかるように、ポリゴンEHJ→ポリゴンEHO、ポリゴンEFK→ポリゴンEFO、ポリゴンHJM→ポリゴンHOM、ポリゴンJMN→ポリゴンOMN、ポリゴンFKN→ポリゴンFONに変更される。この結果、図6の例では、図6(a)の時点では、18個あったポリゴンが、図6(d)の時点では、16個に削減される。
ステップS25〜ステップS27の処理を終えたら、ポリゴン削減手段10は、削減後の全ポリゴン数が、設定された目標値以下となっているか否かを判定する(ステップS28)。目標値としては、事前に任意の値を設定することができる。判定の結果、全ポリゴン数が目標値以下となっていない場合は、ステップS22に戻って、ポリゴン削減手段10は、残っているポリゴンの中から、面積と周長を乗じた値が最小となるポリゴンを削除対象ポリゴンとして選定する。ステップS28における判定の結果、全ポリゴン数が目標値以下である場合は、ポリゴン削減処理を終了する。図7のフローチャートに従った処理を実行することにより、各グループについて設定された目標値以下になるように、ポリゴン数が削減されることになる。
<2.3.3.小体積グループ削除処理>
次に、ステップS140におけるポリゴン削減手段10による隔離された小体積グループの削除処理について説明する。ここで、隔離された小体積グループの削除処理の説明に先立ち、隔離された小体積グループの削除処理を行う理由について説明しておく。図8は、ポリゴン削除処理により生じる問題を説明するための図である。図8(a)は、ステップS110のグループ分類処理を終えた直後の2グループのポリゴン群を示している。図8(a)の例では、頂点D、E、Kを含む左側のグループと、頂点D’、E’、K’を含む右側のグループが存在する。頂点DとD’、頂点EとE’、頂点KとK’がそれぞれ3Dプリンタの解像度以下である場合、この2グループのポリゴン群を3Dプリンタで出力すると、頂点DとD’、頂点EとE’、頂点KとK’は樹脂等により連結され、2グループは連結した物体として出力される。すなわち、2グループは物理的には接着されている。
図8(a)に示した右側のグループのポリゴン群に対して、ステップS120におけるポリゴン削除処理を実行すると、図8(b)に示すように、ポリゴンE’FK’が削除対象ポリゴンとして選定される。さらに、図8(c)に示すように、削除対象ポリゴンE’FK’の最短辺E’Fが削除対象辺として選定され、辺E’Fの中点Oが算出される。そして、図8(d)に示すように、削除対象ポリゴンE’FK’と、削除頂点共有ポリゴンD’E’Fが削除される。
図8(a)と図8(d)を比較するとわかるように、左右の2つのグループは、ポリゴン削除処理前に比べて、ポリゴン削除処理後には、より離れてしまっている。図8(d)に示した2グループの距離が、3Dプリンタの解像度を超えると、2グループのポリゴン群を3Dプリンタで出力した場合、2グループは別の物体として出力される。2つのグループがともに大きな物体となれば、問題はない。しかし、一つが非常に小さな物体となる場合、例えば、一方のグループが本体であって、他方のグループが本体に付属するヒゲのようなものである場合、本体と別に出力されたヒゲは、3Dプリンタ内に紛れ込み、機械詰まり等の問題を引き起こす恐れがある。このような問題を除去するため、上述のヒゲのような隔離された小体積グループの削除処理を行うのである。
図9は、ポリゴン削減手段10による隔離された小体積グループの削除処理の詳細を示すフローチャートである。ポリゴン削減手段10は、まず、グループごとに全ポリゴンの全頂点を対象として、X、Y、Zぞれぞれの方向の最大値および最小値を算出する(ステップS41)。この結果、グループgに対して、最小値Xmin(g)、最大値Xmax(g)、最小値Ymin(g)、最大値Ymax(g)、最小値Zmin(g)、最大値Zmax(g)が得られる。次に、ポリゴン削減手段10は、グループごとに外接直方体の体積を算出する(ステップS42)。具体的には、以下の〔数式1〕に従った処理を実行することにより、グループgの外接直方体の体積V(g)を算出する。
〔数式1〕
V(g)=(Xmax(g)−Xmin(g))×(Ymax(g)−Ymin(g))×(Zmax(g)−Zmin(g))
ポリゴン削減手段10は、全グループに対してステップS41、S42の処理を実行する。これにより、全グループについて、外接直方体の体積が得られる。次に、ポリゴン削減手段10は、全グループの中で外接直方体の体積が最小となるグループを特定する(ステップS43)。そして、ポリゴン削減手段10は、特定したグループと他の全てのグループとの最小間隔を算出する(ステップS44)。ステップS44における最小間隔の算出処理の詳細については後述する。
続いて、ポリゴン削減手段10は、ステップS44において算出された最小間隔が所定のしきい値以上か否かを判定する(ステップS45)。最小間隔と比較するための所定のしきい値としては、3Dプリンタ出力時に0.2mmに相当する数値とすることが好ましい。判定の結果、最小間隔が所定のしきい値以上である場合は、体積最小のグループが、最も近いグループとも所定の距離以上離れていることになるので、ポリゴン削減手段10は、体積最小のグループを削除する処理を行う(ステップS46)。ステップS45における判定の結果、最小間隔が所定のしきい値未満である場合は、体積最小のグループが、最も近いグループと3Dプリンタの解像度以下に近接していることになるので、ポリゴン削減手段10は、体積最小のグループを削除する処理を行わない。
ステップS46におけるグループの削除を行った場合、削除を行わなかった場合のいずれにおいても、そのグループについては処理済みとする。そして、ステップS43に戻って、未処理のグループの中で外接直方体の体積が最小となるグループを特定する。ステップS43〜ステップS46の処理を繰り返し、全てのグループに対する処理を終えたら、隔離された小体積グループの削除処理を終了する。
ステップS44における最小間隔の算出処理の詳細について説明する。図10は、図9のステップS44における最小間隔の算出処理の詳細を示すフローチャートである。ポリゴン削減手段10は、初期値として、最小間隔を示す変数dminに所定以上の値を設定する。dminに与える初期値としては、グループ間の最小間隔としてあり得ない大きな値を設定しておけばよい。そして、ポリゴン削減手段10は、全グループの中から、グループgより体積が大きい1つのグループhを抽出する(ステップS47)。この結果、グループhについて、最小値Xmin(h)、最大値Xmax(h)、最小値Ymin(h)、最大値Ymax(h)、最小値Zmin(h)、最大値Zmax(h)が得られる。次に、ポリゴン削減手段10は、X、Y、Zの各方向別に2グループ間の差分の最小値を算出する(ステップS48)。具体的には、以下の〔数式2〕に従った処理を実行することにより、X方向の差分の最小値dx、Y方向の差分の最小値dy、Z方向の差分の最小値dzを算出する。
〔数式2〕
dx=Min{|Xmax(g)−Xmin(h)|,|Xmin(g)−Xmax(h)|}
dy=Min{|Ymax(g)−Ymin(h)|,|Ymin(g)−Ymax(h)|}
dz=Min{|Zmax(g)−Zmin(h)|,|Zmin(g)−Zmax(h)|}
続いて、ポリゴン削減手段10は、算出された方向別最小値のうち最大のものをグループ間最小値とし、グループ間最小値を、既に処理済みの他のグループ間における全グループ間最小値と比較し、小さい方を全グループ間最小値とする処理を行う(ステップS49)。具体的には、ステップS48において算出された3つの方向別最小値dx、dy、dzのうち、最大の値をとるグループ間最小値Max(dx、dy、dz)とdminを比較し、Max(dx、dy、dz)<dminの場合、dmin=Max(dx、dy、dz)とする。これにより、dminには、グループ間最小値の中で最小の値となる全グループ間最小値が記録されることになる。
ステップS47、S48、S49の処理を繰り返して実行し、グループgより体積が大きい全てのグループに対する処理を終えたら、図10に示した最小間隔の算出処理を終了し、図9のステップS45に進んで、最小間隔dminとしきい値との比較を行うことになる。
<2.3.4.ポリゴン集合の合成>
図4のフローチャートに示したように、ステップS150においては、ポリゴン削減手段10が、全グループのポリゴン集合の合成を行って更新された領域別ポリゴン集合を得る。また、ステップS170においては、ポリゴン削減手段10が、全領域の領域別ポリゴン集合の合成を行って合成ポリゴン集合を得る。いずれの合成処理も、ヘッダ部を除く領域別ポリゴン集合を単純に結合し、ヘッダ部に合算されたポリゴン数を記録することにより行われる。合成ポリゴン集合は、ポリゴンが削減された対象モデルとなる。
<2.4.ポリゴン正規化処理>
次に、ステップS200のポリゴン正規化処理について説明する。図11は、ポリゴン正規化処理の詳細を示すフローチャートである。ここでは、ステップS100においてポリゴン数が削減された対象モデルのポリゴン数N、ポリゴンを特定する変数i(i=0,・・・,N−1)とし、各ポリゴンiの頂点を(Xp(i),Yp(i),Zp(i))と定義されたものとする。pは頂点番号を示しており、本実施形態では、ポリゴンが三角形であるため、p=0,1,2の3つの値をとる。
まず、ステップS100においてポリゴン数が削減された対象モデルにおける基準点を算出する(ステップS210)。具体的には、ポリゴンモデルを構成する各ポリゴンについて、頂点の平均となる平均点を算出し、ポリゴンモデルを構成するN個のポリゴンの平均点の平均値をポリゴンモデルの基準点として算出する。具体的には、まず、以下の〔数式3〕に従った処理を実行することにより、各ポリゴンの平均点(Xc(i),Yc(i),Zc(i))を算出する。
〔数式3〕
Xc(i)={X0(i)+X1(i)+X2(i)}/3
Yc(i)={Y0(i)+Y1(i)+Y2(i)}/3
Zc(i)={Z0(i)+Z1(i)+Z2(i)}/3
次に、以下の〔数式4〕に従った処理を実行することにより、ポリゴンモデルの基準点(Xg,Yg,Zg)を算出する。
〔数式4〕
Xg={Σi=0,N-1Xc(i)}/N
Yg={Σi=0,N-1Yc(i)}/N
Zg={Σi=0,N-1Zc(i)}/N
上記〔数式4〕において、Σの添え字の“i=0,N−1”は、iが0からN−1の全ての整数をとる場合について、総和を求めることを示している。以下の数式においても同様である。次に、対象モデルの主軸を求める(ステップS220)。具体的には、基準点(Xg,Yg,Zg)から各ポリゴンの平均点までの距離を算出し、そのうち最長である最長距離を主軸とする。具体的には、以下の〔数式5〕に従った処理を実行することにより、主軸の長さLmax(最長距離)を算出する。
〔数式5〕
Lmax
=Maxi=0,N-1{(Xc(i)−Xg)2+(Yc(i)−Yg)2+(Zc(i)−Zg)21/2
={(Xc(im)−Xg)2+(Yc(im)−Yg)2+(Zc(im)−Zg)21/2
上記〔数式5〕において、Maxの添え字の“i=0,N−1”は、iが0からN−1の全ての整数をとる場合における、最大値を選択することを示している。以下の数式においても同様である。また、“im”は、基準点との距離が最大となるポリゴンである最遠ポリゴンのポリゴン番号を示している。次に、対象モデルの移動およびスケーリングを行う(ステップS230)。具体的には、基準点(Xg,Yg,Zg)が原点(0,0,0)となるように移動した後、スケーリングとして、主軸の長さが基準長になるように、サイズ変更を行う。図12は、ポリゴン正規化処理の概要を示す図である。図12において示した直方体は、対象モデルの一例である。図12(a)は、XYZの三次元空間において対象モデルの主軸が求められた状態を示している。ステップS230においては、以下の〔数式6〕に従った処理を実行することにより、各ポリゴンの頂点座標および平均点座標を補正する。
〔数式6〕
Xp'(i)={Xp(i)−Xg}×100/Lmax
Yp'(i)={Yp(i)−Yg}×100/Lmax
Zp'(i)={Zp(i)−Zg}×100/Lmax
Xc'(i)={X0'(i)+X1'(i)+X2'(i)}/3
Yc'(i)={Y0'(i)+Y1'(i)+Y2'(i)}/3
Zc'(i)={Z0'(i)+Z1'(i)+Z2'(i)}/3
上記〔数式6〕は、上記基準長を“100”とした場合を示している。ステップS230の処理により、各ポリゴンiの頂点は、(Xp'(i),Yp'(i),Zp'(i))、各ポリゴンiの平均点は(Xc'(i),Yc'(i),Zc'(i))となる。また、対象モデルは、図12(b)に示すように、基準点が原点(0,0,0)と一致し、主軸の長さが基準長となる。
次に、XZ座標上で主軸をZ軸正方向に揃えるようにY軸中心回転を行う(ステップS240)。具体的には、まず、以下の〔数式7〕に従った処理を実行することにより、主軸とZ軸正方向との角度Ang、最遠ポリゴンの平均点Z座標Zc''(im)を求める。
〔数式7〕
Ang=−tan-1(Xc'(im)/Zc'(im))
Zc''(im)=cos(Ang)×Zc'(im)−sin(Ang)×Xc'(im)
さらに、Zc''(im)の値に応じて場合分けし、以下の〔数式8〕に従った処理を実行することにより、回転後の対象モデルを求める。
〔数式8〕
i=0,・・・,N−1、p=0,1,2において、
1)Zc''(im)≧0の場合
Zp''(i)=cos(Ang)×Zp'(i)−sin(Ang)×Xp'(i)
Xp''(i)=sin(Ang)×Zp'(i)+cos(Ang)×Xp'(i)
Zc''(im)=cos(Ang)×Zc'(im)−sin(Ang)×Xc'(im)
Xc''(im)=sin(Ang)×Zc'(im)+cos(Ang)×Xc'(im)
2)Zc''(im)<0の場合
Zp''(i)=−cos(Ang)×Zp'(i)+sin(Ang)×Xp'(i)
Xp''(i)=−sin(Ang)×Zp'(i)−cos(Ang)×Xp'(i)
Zc''(im)=−cos(Ang)×Zc'(im)+sin(Ang)×Xc'(im)
Xc''(im)=−sin(Ang)×Zc'(im)−cos(Ang)×Xc'(im)
Zc''(im)の値に関わらず、平均点を更新する。
Xc''(i)={X0''(i)+X1''(i)+X2''(i)}/3
Zc''(i)={Z0''(i)+Z1''(i)+Z2''(i)}/3
ステップS240の処理により、対象モデルは、図12(c)に示すように、主軸がXZ平面においてZ軸と重なるようになる。
次に、YZ座標上で主軸をZ軸正方向に揃えるようにX軸中心回転を行う(ステップS250)。具体的には、まず、以下の〔数式9〕に従った処理を実行することにより、主軸とZ軸正方向との角度Ang、最遠ポリゴンの平均点Z座標Zc'''(im)を求める。
〔数式9〕
Ang=−tan-1(Yc'(im)/Zc''(im))
Zc'''(im)=cos(Ang)×Zc''(im)−sin(Ang)×Yc'(im)
さらに、Zc'''(im)の値に応じて場合分けし、以下の〔数式10〕に従った処理を実行することにより、回転後の対象モデルを求める。
〔数式10〕
i=0,・・・,N−1、p=0,1,2において、
1)Zc'''(im)≧0の場合
Zp'''(i)=cos(Ang)×Zp''(i)−sin(Ang)×Yp'(i)
Yp''(i)=sin(Ang)×Zp''(i)+cos(Ang)×Yp'(i)
2)Zc'''(im)<0の場合
Zp'''(i)=−cos(Ang)×Zp''(i)+sin(Ang)×Yp'(i)
Yp''(i)=−sin(Ang)×Zp''(i)−cos(Ang)×Yp'(i)
Zc''(im)の値に関わらず、平均点を更新する。
Yc''(i)={Y0''(i)+Y1''(i)+Y2''(i)}/3
Zc'''(i)={Z0'''(i)+Z1'''(i)+Z2'''(i)}/3
ステップS250の処理により、対象モデルは、図12(d)に示すように、主軸がYZ平面においてZ軸と重なるようになる。これにより、三次元空間において、対象モデルの主軸は、Z軸と重なることになる。本実施形態では、主軸をZ軸の正方向に重ねたが、負方向に重ねるようにしてもよい。
次に、対象モデルの副軸を求める(ステップS260)。具体的には、XZ平面上で原点(0,0,0)から各ポリゴンの平均点までの距離を算出し、そのうち最長である最長距離を副軸とする。具体的には、以下の〔数式11〕に従った処理を実行することにより、主軸の長さLmax2(最長距離)を算出する。
〔数式11〕
Lmax2=Maxi=0,N-1{(Xc''(i))2+(Yc(i)'')21/2
={(Xc''(im2))2+(Yc(im2)'')21/2
次に、XY座標上で副軸をY軸正方向に揃えるようにZ軸中心回転を行う(ステップS270)。具体的には、まず、以下の〔数式12〕に従った処理を実行することにより、副軸とZ軸正方向との角度Ang、最遠ポリゴンの平均点Z座標Zc'''(im)を求める。
〔数式12〕
Ang=−tan-1(Xc''(im2)/Yc''(im2))
Yc'''(im2)=cos(Ang)×Yc''(im2)−sin(Ang)×Xc''(im2)
さらに、Yc'''(im2)の値に応じて場合分けし、以下の〔数式13〕に従った処理を実行することにより、回転後の対象モデルを求める。
〔数式13〕
i=0,・・・,N−1、p=0,1,2において、
1)Yc'''(im2)≧0の場合
Yp'''(i)=cos(Ang)×Yp''(i)−sin(Ang)×Xp''(i)
Xp'''(i)=sin(Ang)×Yp''(i)+cos(Ang)×Xp''(i)
2)Yc'''(im2)<0の場合
Yp'''(i)=−cos(Ang)×Yp''(i)+sin(Ang)×Xp''(i)
Xp'''(i)=−sin(Ang)×Yp''(i)−cos(Ang)×Xp''(i)
Yc'''(im2)の値に関わらず、平均点を更新する。
Xc'''(i)={X0'''(i)+X1'''(i)+X2'''(i)}/3
Yc'''(i)={Y0'''(i)+Y1'''(i)+Y2'''(i)}/3
ステップS270の処理により、対象モデルは、図12(e)に示すように、副軸がXY平面においてY軸と重なるようになる。本実施形態では、副軸をY軸の正方向に重ねたが、負方向に重ねるようにしてもよい。
上記処理の結果、正規化された対象モデルが得られる。正規化された対象モデルは、ポリゴン数N、ポリゴンを特定する変数i(i=0,・・・,N−1)とし、各ポリゴンiの頂点は(Xp'''(i),Yp'''(i),Zp'''(i))と定義される。pは頂点番号を示しており、本実施形態では、ポリゴンが三角形であるため、p=0,1,2の3つの値をとる。また、各ポリゴンiの平均点は(Xc'''(i),Yc'''(i),Zc'''(i))と定義される。ポリゴン正規化処理の結果、図12(f)に示すように、対象モデルは、所定の位置、スケール、傾きに正規化される。
<2.5.ポリゴン照合処理>
次に、ステップS300のポリゴン照合処理について説明する。図13は、ポリゴン照合処理の概要を示すフローチャートである。ポリゴン照合処理においては、ポリゴンモデル照合手段30は、規制モデルデータベース50に登録された規制モデルを1つずつ抽出し(ステップS301)、ステップS200において正規化された対象モデルと照合を行う。本実施形態では、ポリゴンモデル照合手段30は、図13に示すように、総面積に基づく照合処理(ステップS310)、体積に基づく照合処理(ステップS320)、座標値に基づく照合処理(ステップS330)の3つの照合処理を順に行う。先に行った照合処理の結果、適合(すなわち類似)と判定された場合にのみ、次の照合処理に進む。不適合(すなわち非類似)と判定された場合には、ステップS301に戻って次の規制モデルとの照合を行う。3つの照合処理のうち、総面積に基づく照合処理および体積に基づく照合処理は、角度に依存しない角度非依存照合処理であり、座標値に基づく照合処理は、角度に依存する角度依存照合処理である。3つの照合処理全てにおいて適合(すなわち類似)と判定された場合は、その対象モデルは、規制モデルと類似していることになるので、出力不適との判定がなされる。規制モデルデータベース50に登録された全ての規制モデルとの照合が不適合であった場合には、その対象モデルは、どの規制モデルとも非類似になるので、出力適正との判定がなされる。
<2.5.1.総面積に基づくポリゴン照合処理>
まず、図13に示した3つの照合処理のうち、ステップS310の総面積に基づくポリゴン照合処理について説明する。図14は、総面積に基づくポリゴン照合処理の詳細を示すフローチャートである。ステップS200において、正規化された対象モデルは、(Xp'''(i),Yp'''(i),Zp'''(i))で示したが、数式が繁雑になることを避けるため、ステップS300においては、改めて、正規化された対象モデルを、ポリゴン数N、ポリゴンを特定する変数i(i=0,・・・,N−1)とし、各ポリゴンiの頂点を(Xp(i),Yp(i),Zp(i))と定義されたものとする。pは、p=0,1,2の3つの値をとる頂点番号とする。
ポリゴンモデル照合手段は、まず、正規化された対象モデルを構成する各ポリゴンiの面積S(i)、N個のポリゴンの面積S(i)の総和である総面積SNを以下の〔数式14〕に従った処理を実行することにより算出する(ステップS311)。
〔数式14〕
Vx=[Y1(i)−Y0(i)][Z2(i)−Z0(i)]-[Z1(i)−Z0(i)][ Y2(i)−Y0(i)]
Vy=[Z1(i)−Z0(i)][X2(i)−X0(i)]-[X1(i)−X0(i)][ Z2(i)−Z0(i)]
Vz=[X1(i)−X0(i)][Y2(i)−Y0(i)]-[Y1(i)−Y0(i)][X2(i)−X0(i)]
S(i)=0.5×[Vx(i)2+Vy(i)2+Vz(i)2]1/2
SN=Σi=0,N-1S(i)
次に、ポリゴンモデル照合手段は、ステップS311における処理と同様に、上記〔数式14〕に従った処理を、変数を変えて、M個のポリゴンで構成される規制モデルに対して実行し、規制モデルの総面積SMを算出する。(ステップS312)。
続いて、ポリゴンモデル照合手段は、正規化された対象モデルの総面積SNと規制モデルの総面積SMの面積差分dSを、を以下の〔数式15〕に従った処理を実行することにより算出する(ステップS313)。
〔数式15〕
dS=|SM−SN|/(SM+SN)
上記〔数式15〕においては、後に判定しきい値と比較するために、総面積の和(SM+SN)で除算することにより正規化している。上記〔数式15〕に示すように面積差分dSは、総面積の差分の絶対値となっている。
面積差分dSが得られたら、ポリゴンモデル照合手段は、面積差分dSと判定しきい値との比較を行う(ステップS314)。面積差分dSが判定しきい値より小さい場合は、適合と判定し、面積差分dSが判定しきい値以上である場合は、不適合と判定する。判定しきい値としては、適宜設定可能であるが、ここでは、0.01としてある。
<2.5.2.体積に基づく照合処理>
次に、ステップS320の体積に基づくポリゴン照合処理について説明する。図15は、体積に基づくポリゴン照合処理の詳細を示すフローチャートである。ステップS300においては、正規化された対象モデルを、ポリゴン数N、ポリゴンを特定する変数i(i=0,・・・,N−1)とし、各ポリゴンiの頂点を(Xp(i),Yp(i),Zp(i))と定義しており、さらに、各ポリゴンiの平均点を、(Xc(i),Yc(i),Zc(i))と定義する。
ポリゴンモデル照合手段は、各ポリゴンについて、各ポリゴンを底面とし、基準点(重心)を頂点とする角錐の体積V(i)を算出し、N個のポリゴンについての体積V(i)の総和VNを算出する(ステップS321)。具体的には、まず、上記〔数式14〕に従った処理を実行して各ポリゴンiの面積S(i)を算出する。そして、以下の〔数式16〕に従った処理を実行することにより、各ポリゴンの法線ベクトル(Nx(i),Ny(i),Nz(i))を算出する。
〔数式16〕
Vs(i)=[Vx(i)2+Vy(i)2+Vz(i)2]1/2
Nx(i)=Vx(i)/Vs(i)
Ny(i)=Vy(i)/Vs(i)
Nz(i)=Vz(i)/Vs(i)
角錐の高さは、平均点から原点方向のベクトルとポリゴンの法線ベクトルとの内積の絶対値で算出できるので、以下の〔数式17〕に従った処理を実行することにより、ポリゴンiを底面とする角錐の体積V(i)、およびN個のポリゴンについての角錐の体積総和VNを算出する。
〔数式17〕
V(i)=S(i)|Xc(i)×Nx(i)+Yc(i)×Ny(i)+Zc(i)×Nz(i)|/3
VN=Σi=0,N-1V(i)
次に、ポリゴンモデル照合手段は、ステップS321における処理と同様に、上記〔数式16〕、〔数式17〕に従った処理を、変数を変えて、M個のポリゴンで構成される規制モデルに対して実行し、規制モデルの体積総和VMを算出する。(ステップS322)。
続いて、ポリゴンモデル照合手段は、正規化されたポリゴンモデルの体積総和VNと規制モデルの体積総和VMの体積差分dVを、を以下の〔数式18〕に従った処理を実行することにより算出する(ステップS323)。
〔数式18〕
dV=|VM−VN|/(VM+VN)
上記〔数式18〕においては、後に判定しきい値と比較するために、体積総和の和(VM+VN)で除算することにより正規化している。上記〔数式18〕に示すように体積差分dVは、体積総和の差分の絶対値となっている。
体積差分dVが得られたら、ポリゴンモデル照合手段は、体積差分dVと判定しきい値との比較を行う(ステップS324)。体積差分dVが判定しきい値より小さい場合は、適合と判定し、体積差分dVが判定しきい値以上である場合は、不適合と判定する。判定しきい値としては、適宜設定可能であるが、ここでは、0.001としてある。
<2.5.3.座標値に基づく照合処理>
次に、ステップS330の座標値に基づくポリゴン照合処理について説明する。図16は、座標値に基づくポリゴン照合処理の詳細を示すフローチャートである。ここでは、対象モデルの各ポリゴンiの平均点を、(Xcn(i),Ycn(i),Zcn(i))(i:ポリゴン番号=0,・・・、N−1)と定義し、規制モデルの各ポリゴンjの平均点を、(Xcm(j),Ycm(j),Zcm(j))(j:ポリゴン番号=0,・・・、M−1)と定義する。
ポリゴンモデル照合手段は、まず、初期設定を行い、D=0,i=0とする(ステップS331)。Dは判定しきい値と比較する際、距離総和として出力される変数である。i=0は、対象モデルで最初に処理されるポリゴンのポリゴン番号である。次に、j=0,dmin=BIGに設定する(ステップS332)。j=0は、規制モデルで最初に処理されるポリゴンのポリゴン番号である。dminは初期値BIGに設定される。BIGとしては、dminとして取り得ない程度の大きな値を設定しておく。
次に両モデルにおいて特定されたポリゴン同士の平均点座標距離dを算出する(ステップS333)。具体的には、以下の〔数式19〕に従った処理を実行することにより算出する。
〔数式19〕
d=[(Xcm(j)−Xcn(i))2+((Ycm(j)−Ycn(i)) 2 +((Zcm(j)−Zcn(i))2]1/2
上記〔数式19〕に示すように平均点座標距離dは、平均点座標の差分の二乗平方根であり、平均点座標間の距離を示している。次に、算出した平均点座標距離dとdminを比較する(ステップS334)。dがdminより小さい場合は、dmin=dとする(ステップS335)。そして、jを1だけインクリメントして規制モデルの処理対象ポリゴンを変更し(ステップS336)、規制モデルのポリゴン番号jとポリゴン数Mを比較する(ステップS337)。
比較の結果、jがMより小さい場合は、対象モデルの1つのポリゴンに対して規制モデルの全てのポリゴンの処理が終わっていないため、ステップS333に戻って、平均点座標距離の算出を行う。対象モデルの1つのポリゴンに対して規制モデルの全てのポリゴンについて、ステップS333〜ステップS336の処理を実行した後には、j=Mとなるので、ステップS338に進む。
ステップS333〜ステップS336の処理を繰り返すことにより、dminには、対象モデルの1つのポリゴンと規制モデルの各ポリゴンの距離のうち、最小の値である距離最小値が記録される。これは、対象モデルの1つのポリゴンと最も近い規制モデルのポリゴンとの距離となる。次に、この距離最小値dminをDに加算する(ステップS338)。そして、iを1だけインクリメントして対象モデルの処理対象ポリゴンを変更し、対象モデルのポリゴン番号iとポリゴン数Nを比較する(ステップS339)。
比較の結果、iがNより小さい場合は、対象モデルの全てのポリゴンに対して処理が終わっていないため、ステップS332に戻って、対象モデルの次のポリゴンに対して処理を行う。対象モデルの全てのポリゴンについて、ステップS332〜ステップS338の処理を実行した後には、i=Nとなるので、ステップS340に進む。
ステップS332〜ステップS338の処理を繰り返すことにより、Dには、対象モデルの各ポリゴンに対する距離最小値dminの総和が記録される。
距離総和Dが得られたら、ポリゴンモデル照合手段は、距離総和Dを対象モデルのポリゴン数Nで除した値D/Nと判定しきい値との比較を行う(ステップS340)。D/Nが判定しきい値より小さい場合は、適合と判定し、D/Nが判定しきい値以上である場合は、不適合と判定する。判定しきい値としては、適宜設定可能であるが、ここでは、10.0としてある。
本実施形態では、ポリゴン同士の平均点座標間の距離、およびその総和を算出するようにしたが、平均点に代えてポリゴン同士の対応する頂点間の距離、およびその総和を算出するようにしてもよい。
<3.3Dプリンタへのデータ出力>
ポリゴンモデル照合手段により出力適正と判定された場合には、立体物造形装置である3Dプリンタ7へ対象ポリゴンモデルを出力する。一方、ポリゴンモデル照合手段により出力不適と判定された場合には、立体物造形装置である3Dプリンタへ対象モデルを出力しない。また、出力適正か否かの判定に時間がかかる場合には、3Dプリンタ7に対象モデルを出力し、3Dプリンタ7の出力処理(立体物造形処理)と並行して出力適正か否かの判定を行い、出力不適である場合に出力中止命令を3Dプリンタ7に出力するようにしてもよい。この際、オペレータから見れば、対象モデルの出力という一つの命令を行うことにより、3Dプリンタにおける立体物造形処理が開始されることが確認できるだけで、並行して出力適正か否かの判定のための処理の実行が開始されることは気付かれない。
<4.規制モデルの正規化および登録について>
上記実施形態では、規制モデルデータベース50に既に正規化がなされた規制モデルが登録された場合について説明したが、規制モデルデータベース50に正規化されていない規制モデルを登録しておき、この規制モデルに対して、上記実施形態において対象モデルに対して行ったようにポリゴンの削減、正規化を行い、正規化後の規制モデルと、上記正規化後の対象モデルを用いて照合を行うようにしてもよい。この場合、規制モデルデータベース50に登録されている正規化されていない各規制モデルは、ポリゴン削減手段10によりポリゴンが削減され、ポリゴン正規化手段20により正規化された後、ポリゴンモデル照合手段30により、正規化後の対象モデルとの照合が行われる。
また、変形例として、ポリゴンモデル照合手段30を備えた立体物造形用データ出力規制装置とは、別の場所で規制モデルの正規化を行って正規化された規制モデルを、立体物造形用データ出力規制装置にネットワークを介して送信して登録するようにしてもよい。
図17は、変形例における立体物造形用データ出力規制装置のハードウェア構成図である。図17に示した本実施形態に係る立体物造形用データ出力規制装置において、立体物造形用データ出力規制装置101は、図1に示した立体物造形用データ出力規制装置100の構成に、インターネット等の公衆ネットワークと通信するためのネットワーク通信部8を備えた構成となっている。規制モデル正規化装置102は、汎用のコンピュータで実現することができ、図17に示すように、CPU(Central Processing Unit)1aと、コンピュータのメインメモリであるRAM(Random Access Memory)2aと、CPU1aが実行するプログラムやデータを記憶するためのハードディスク、フラッシュメモリ等の大容量の記憶装置3aと、キーボード、マウス等のキー入力I/F(インターフェース)4aと、データ記憶媒体等の外部装置とデータ通信するためのデータ入出力I/F(インターフェース)5aと、液晶ディスプレイ等の表示デバイスである表示部6aと、インターネット等の公衆ネットワークと通信するためのネットワーク通信部8aを備え、互いにバスを介して接続されている。立体物造形用データ出力規制装置101のネットワーク通信部8と規制モデル正規化装置102のネットワーク通信部8aは互いに通信を行い、規制モデル正規化装置102から立体物造形用データ出力規制装置101へ正規化された規制モデルの送信を行うことが可能になっている。図17では、立体物造形用データ出力規制装置101と3Dプリンタ7は分離した形態で示されているが、現在市販されている殆どの3Dプリンタ製品には立体物造形用データ出力規制装置101の構成要素である、CPU1、RAM2、記憶装置3、キー入力I/F4(汎用コンピュータ向けキーボード・マウスではなく、テンキーレベルの数種のボタン)、データ入出力I/F5、表示部6(数行の文字を表示可能な小型液晶パネル、タッチパネルを重畳させキー入力I/F4を兼ねることも多い)、ネットワーク通信部8(無線LAN機能)も小規模ながら重複して備えている。従って、3Dプリンタ7自体が外部記憶媒体やインターネット経由で立体物造形用データを直接受け取り、単独で立体物を造形する運用も可能になっている(特に民生用の3Dプリンタではこちらの実施形態の方が多い)。すなわち、図17に示した立体物造形用データ出力規制装置101および3Dプリンタ7を1つの筐体に収めて、“3Dプリンタ”という製品として流通することも多い。
規制モデル正規化装置102においては、CPU1が、記憶装置3に記憶されているプログラムを実行することにより、第2のポリゴン削減手段、第2のポリゴン正規化手段、規制モデル送信手段が実現される。規制モデル正規化装置102で実現される第2のポリゴン削減手段、第2のポリゴン正規化手段は、立体物造形用データ出力規制装置100で実現されるポリゴン削減手段10、ポリゴン正規化手段20と同様の機能を有し、規制モデルのポリゴンを削減し、規制モデルの正規化を行う。規制モデル送信手段は、正規化された規制モデルを立体物造形用データ出力規制装置101に送信する。立体物造形用データ出力規制装置101では、ネットワーク通信部8が、規制モデル正規化装置102から規制モデルを受信すると、CPU1が所定のプログラムを実行して規制モデル登録手段として機能し、受信した規制モデルを記憶装置3で実現される規制モデルデータベース50に登録する。
<5.ポリゴンモデル正規化事例>
図18〜図28に、本実施形態に係る立体物造形用データ出力規制装置によりポリゴン正規化処理(ステップS200)を施す過程の事例を示す。図18〜図28のいずれにおいても、左側に規制モデル、右側に対象モデルを示している。図18は、正規化前のオリジナル(実際にはポリゴン削減後)のポリゴンモデルを示す図である。図18では、紙面に対して座標系を揃えてあるが、正規化前であるため、両者は位置、スケール、傾きが異なっている。
図19は、ステップS230におけるスケーリングと原点移動後のポリゴンモデルを示す図である。図20は、図19の状態のまま、視点のみをXZ平面に変換した図である。図21は、図20の状態からステップS240におけるY軸中心回転を行った後のポリゴンモデルを示す図である。図22は、図21の状態のまま、視点のみを変換した斜視図である。図23は、図21、図22の状態のまま、視点のみをYZ平面に変換した図である。
図24は、図23の状態からステップS250におけるX軸中心回転を行った後のポリゴンモデルを示す図である。図25は、図24の状態のまま、視点のみを変換した斜視図である。図26は、図24、図25の状態のまま、視点のみをXY平面に変換した図である。図27は、図26の状態からステップS260におけるZ軸中心回転を行った後のポリゴンモデルを示す図である。図28は、図27の状態のまま、視点のみを変換した斜視図である。正規化処理を行うことにより、図18に示したように、位置、スケール、傾きが異なり、照合が困難であった2つのポリゴンモデルが、図28に示したように、位置、スケール、傾きが等しくなり、照合を行い易くなる。
<6.変形例等>
以上、本発明の好適な実施形態について説明したが、本発明は上記実施形態に限定されず、種々の変形が可能である。例えば、上記実施形態では、処理対象のポリゴンを三角形としたが、四角形以上の多角形であってもよい。
また、上記実施形態では、ポリゴンモデル照合手段30は、総面積に基づく照合処理、体積に基づく照合処理、座標値に基づく照合処理の3つの照合処理を行うようにしたが、上記3つの照合処理のうち、1つまたは2つの照合処理を実行するようにしてもよい。
また、上記実施形態では、ポリゴン正規化手段20は、主軸をZ軸に合わせ、副軸をY軸に合わせて回転するようにしたが、主軸、副軸をそれぞれ異なる軸に合わせるのであれば、主軸をX軸またはY軸に合わせもよいし、副軸をX軸またはZ軸に合わせもよい。
1、1a・・・CPU(Central Processing Unit)
2、2a・・・RAM(Random Access Memory)
3、3a・・・記憶装置
4、4a・・・キー入力I/F
5、5a・・・データ入出力I/F
6、6a・・・表示部
7・・・3Dプリンタ(立体物造形装置)
7a・・・データ処理部
7b・・・出力部
8、8a・・・ネットワーク通信部
10・・・ポリゴン削減手段
20・・・ポリゴン正規化手段
30・・・ポリゴンモデル照合手段
40・・・対象モデル記憶手段
50・・・規制モデルデータベース
100、101・・・立体物造形用データ出力規制装置
102・・・規制モデル正規化装置

Claims (13)

  1. ポリゴンの集合として表現されたポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきか否かを判定する装置であって、
    出力を規制すべきポリゴンモデルである規制モデルが登録された規制モデルデータベースと、
    出力対象のポリゴンモデルである対象モデルに含まれるポリゴンの数が所定の値以下になるようにポリゴンを削減するポリゴン削減手段と、
    前記ポリゴンが削減された対象モデルに対して、当該対象モデルの基準点が3次元座標の原点になるように前記対象モデルを移動させ、前記基準点から最も遠いポリゴンまでの最長距離が所定の長さになるように前記対象モデルをスケーリング調整し、前記最長距離の方向が第1の軸に一致するように前記対象モデルを回転させることにより、所定の位置、スケール、傾きに正規化された対象モデルを作成するポリゴン正規化手段と、
    前記正規化された対象モデルを前記規制モデルデータベースに登録されている規制モデルと照合し、出力を規制すべきか否かを判定するポリゴンモデル照合手段と、
    を備えることを特徴とする立体物造形用データ出力規制装置。
  2. 前記対象モデルの基準点は、各ポリゴンの頂点座標の平均であるポリゴン平均座標を、前記対象モデルに含まれるポリゴンについて算出した平均値として与えられるものであることを特徴とする請求項1に記載の立体物造形用データ出力規制装置。
  3. 前記ポリゴン正規化手段は、前記ポリゴンが削減された対象モデルの基準点から最も遠いポリゴンまでの最長距離方向を、前記第1の軸の正または負の一方の特定方向に一致させるため、前記第1の軸と第2の軸で形成される2次元座標系に投影された前記基準点から最も遠いポリゴンまでの最長距離方向が前記第1の軸の前記特定方向に一致するように前記対象モデルを回転させた後に、前記第1の軸と第3の軸で形成される2次元座標系に投影された前記基準点から最も遠いポリゴンまでの最長距離方向が前記第1の軸の前記特定方向に一致するように前記対象モデルを回転させるようにしていることを特徴とする請求項1または請求項2に記載の立体物造形用データ出力規制装置。
  4. 前記ポリゴン正規化手段は、前記ポリゴンが削減された対象モデルの基準点から最も遠いポリゴンまでの最長距離方向が前記第1の軸の前記特定方向に一致するように前記対象モデルを回転させた後に、前記第2の軸と前記第3の軸で形成される2次元座標系に投影された基準点から最も遠いポリゴンまでの最長距離方向が前記第3の軸の前記特定方向に一致するように前記対象モデルを更に回転させるようにしていることを特徴とする請求項3に記載の立体物造形用データ出力規制装置。
  5. 前記ポリゴン照合手段は、角度に依存しない角度非依存照合処理と、角度に依存する角度依存照合処理を行う2種の処理から構成され、前記角度非依存照合処理で適合した場合のみ、前記角度依存照合処理を実行するようにしていることを特徴とする請求項1から請求項4のいずれか一項に記載の立体物造形用データ出力規制装置。
  6. 前記ポリゴン照合手段は、前記角度非依存照合処理として、前記対象モデルを構成するポリゴンの面積の総和値と、前記規制モデルを構成するポリゴンの面積の総和値を算出し、2つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合判定するようにしていることを特徴とする請求項5に記載の立体物造形用データ出力規制装置。
  7. 前記ポリゴン照合手段は、前記角度非依存照合処理として、前記対象モデルを構成するポリゴンを底面として前記基準点を頂点とする角錐の体積の総和値と、前記規制モデルを構成するポリゴンを底面として前記基準点を頂点とする角錐の体積の総和値を算出し、2つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合判定するようにしていることを特徴とする請求項5に記載の立体物造形用データ出力規制装置。
  8. 前記ポリゴン照合手段は、前記角度非依存照合処理として、前記対象モデルを構成するポリゴンの面積の総和値と、前記規制モデルを構成するポリゴンの面積の総和値を算出し、2つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合判定し、
    適合判定された場合のみ、
    前記対象モデルを構成するポリゴンを底面として前記基準点を頂点とする角錐の体積の総和値と、前記規制モデルを構成するポリゴンを底面として前記基準点を頂点とする角錐の体積の総和値を算出し、2つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合判定するようにしていることを特徴とする請求項5に記載の立体物造形用データ出力規制装置。
  9. 前記ポリゴン照合手段は、前記角度依存照合処理として、前記対象モデル、前記規制モデルそれぞれについて、構成するポリゴンの頂点座標の平均であるポリゴン平均座標が最も近いポリゴン同士でポリゴン平均座標間の距離を算出し、ポリゴン平均座標間の距離の総和値を算出し、前記2つのモデルの総和値の平均値が所定のしきい値より小さい場合に適合判定するようにしていることを特徴とする請求項5から請求項8のいずれか一項に記載の立体物造形用データ出力規制装置。
  10. 前記ポリゴン照合手段は、前記角度依存照合処理として、前記対象モデル、前記規制モデルそれぞれについて、構成するポリゴンの頂点座標の平均であるポリゴン平均座標が最も近いポリゴン同士で、対応する頂点間の距離を算出し、当該距離の全ポリゴンについての総和値を算出し、前記2つのモデルの総和値の平均値が所定のしきい値より小さい場合に適合判定するようにしていることを特徴とする請求項5から請求項8のいずれか一項に記載の立体物造形用データ出力規制装置。
  11. 前記規制モデルに含まれるポリゴンの数が所定の値以下になるようにポリゴンを削減する第2のポリゴン削減手段と、
    前記ポリゴンが削減された規制モデルに対して、当該規制モデルの基準点が3次元座標の原点になるように前記規制モデルを移動させ、前記基準点から最も遠いポリゴンまでの最長距離が所定の長さになるように前記規制モデルをスケーリング調整し、前記最長距離の方向が第1の軸に一致するように前記規制モデルを回転させることにより、所定の位置、スケール、傾きに正規化された規制モデルを作成する第2のポリゴン正規化手段と、を備えた規制モデル正規化装置により正規化された規制モデルを受信し、受信した規制モデルを前記規制モデルデータベースに登録する規制モデル登録手段を更に有することを特徴とする請求項1から請求項10のいずれか一項に記載の立体物造形用データ出力規制装置。
  12. 前記ポリゴン削減手段によるポリゴン削減前の対象モデルを、接続された立体物造形装置に出力する手段と、
    前記立体物造形装置による立体物の造形処理と並行して実行される前記ポリゴンモデル照合手段により、出力を規制すべきであると判定された場合に、前記立体物造形装置に、前記ポリゴン削減前の対象モデルの出力中止命令を出力する手段と、
    を更に備えることを特徴とする請求項1から請求項11のいずれか一項に記載の立体物造形用データ出力規制装置。
  13. コンピュータを、請求項1から請求項12のいずれか一項に記載の立体物造形用データ出力規制装置として機能させるためのプログラム。
JP2014038076A 2014-02-28 2014-02-28 立体物造形用データ出力規制装置 Active JP6318701B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014038076A JP6318701B2 (ja) 2014-02-28 2014-02-28 立体物造形用データ出力規制装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014038076A JP6318701B2 (ja) 2014-02-28 2014-02-28 立体物造形用データ出力規制装置

Publications (2)

Publication Number Publication Date
JP2015162167A true JP2015162167A (ja) 2015-09-07
JP6318701B2 JP6318701B2 (ja) 2018-05-09

Family

ID=54185204

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014038076A Active JP6318701B2 (ja) 2014-02-28 2014-02-28 立体物造形用データ出力規制装置

Country Status (1)

Country Link
JP (1) JP6318701B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017091236A (ja) * 2015-11-11 2017-05-25 大日本印刷株式会社 立体物造形用データ出力規制装置
JP2017091290A (ja) * 2015-11-12 2017-05-25 大日本印刷株式会社 立体物造形用データ出力規制装置
JP2017520816A (ja) * 2014-04-08 2017-07-27 華為技術有限公司Huawei Technologies Co.,Ltd. 3dプリンティングデザイン、プリンティング、およびライセンス付与方法、装置、およびシステム
KR102572995B1 (ko) * 2023-02-21 2023-08-31 주식회사 에이모 폴리곤 간소화 방법 및 이를 수행하는 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000222428A (ja) * 1999-02-03 2000-08-11 Hitachi Ltd 3次元モデルの類似検索システム及び3次元モデルデータベース登録システム
JP2001277369A (ja) * 2000-03-28 2001-10-09 Matsushita Electric Works Ltd 光造形機用データ作成方法及びその装置
JP2002288687A (ja) * 2001-03-22 2002-10-04 Olympus Optical Co Ltd 特徴量算出装置および方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000222428A (ja) * 1999-02-03 2000-08-11 Hitachi Ltd 3次元モデルの類似検索システム及び3次元モデルデータベース登録システム
JP2001277369A (ja) * 2000-03-28 2001-10-09 Matsushita Electric Works Ltd 光造形機用データ作成方法及びその装置
JP2002288687A (ja) * 2001-03-22 2002-10-04 Olympus Optical Co Ltd 特徴量算出装置および方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
鈴木一史,外2名: ""同値類に基づく回転不変特徴量を用いた3次元物体モデルの類似検索"", 電子情報通信学会論文誌, vol. 86, no. 8, JPN6017049405, 1 August 2003 (2003-08-01), pages 1234 - 1243, ISSN: 0003708498 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017520816A (ja) * 2014-04-08 2017-07-27 華為技術有限公司Huawei Technologies Co.,Ltd. 3dプリンティングデザイン、プリンティング、およびライセンス付与方法、装置、およびシステム
JP2017091236A (ja) * 2015-11-11 2017-05-25 大日本印刷株式会社 立体物造形用データ出力規制装置
JP2017091290A (ja) * 2015-11-12 2017-05-25 大日本印刷株式会社 立体物造形用データ出力規制装置
KR102572995B1 (ko) * 2023-02-21 2023-08-31 주식회사 에이모 폴리곤 간소화 방법 및 이를 수행하는 장치

Also Published As

Publication number Publication date
JP6318701B2 (ja) 2018-05-09

Similar Documents

Publication Publication Date Title
JP6318701B2 (ja) 立体物造形用データ出力規制装置
JP2011185650A (ja) モデル作成装置およびモデル作成プログラム
Pauley et al. The isogeometric segmentation pipeline
JP6375768B2 (ja) 立体物造形用データ出力規制装置
JP2015219868A (ja) 情報処理装置、情報処理方法、プログラム
US11893681B2 (en) Method for processing two-dimensional image and device for executing method
JP6369116B2 (ja) 立体物造形用データ出力規制装置
JP6557988B2 (ja) 立体物造形用データ出力規制装置
CN107818578B (zh) 一种基于注册方法的快速人脸模型重建算法及系统
JP6540238B2 (ja) 立体物造形用データ出力規制装置
JP2015062017A (ja) モデル作成装置、モデル作成プログラム、および画像認識システム
JP2015208982A (ja) 立体物造形用データ出力規制装置
JP2019018446A (ja) 立体物造形用データ出力規制装置
JP6409513B2 (ja) 立体物造形用データ出力規制装置
JP6369117B2 (ja) 立体物造形用データ出力規制装置
JP2023009344A (ja) 生成方法、情報処理装置、プログラム、及び情報処理システム
JP6451932B2 (ja) 立体物造形用データ出力規制装置
JP2018073095A (ja) 画像処理装置および画像処理方法
JP6638341B2 (ja) 立体物造形用データ出力規制装置
JP6613707B2 (ja) 立体物造形用データ出力規制装置
JP2016215598A (ja) 立体物造形用データ出力規制装置
JP2016124241A (ja) 立体物造形用データ出力規制装置
JP2017207900A (ja) 立体物造形用データ出力規制装置
JP2016038729A (ja) 立体物造形用データ出力規制装置およびシステム
JP4428955B2 (ja) 標準姿勢モデルの生成装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161222

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171204

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180201

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180306

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180319

R150 Certificate of patent or registration of utility model

Ref document number: 6318701

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150