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

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

Info

Publication number
JP6369116B2
JP6369116B2 JP2014093945A JP2014093945A JP6369116B2 JP 6369116 B2 JP6369116 B2 JP 6369116B2 JP 2014093945 A JP2014093945 A JP 2014093945A JP 2014093945 A JP2014093945 A JP 2014093945A JP 6369116 B2 JP6369116 B2 JP 6369116B2
Authority
JP
Japan
Prior art keywords
polygon
model
target model
restriction
output
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.)
Active
Application number
JP2014093945A
Other languages
English (en)
Other versions
JP2015210783A (ja
Inventor
茂出木 敏雄
敏雄 茂出木
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 JP2014093945A priority Critical patent/JP6369116B2/ja
Publication of JP2015210783A publication Critical patent/JP2015210783A/ja
Application granted granted Critical
Publication of JP6369116B2 publication Critical patent/JP6369116B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

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の態様では、ポリゴンの集合として表現されたポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきか否かを判定する装置であって、出力を規制すべきポリゴンモデルである規制モデルが登録された規制モデルデータベースと、出力対象のポリゴンモデルである対象モデルの各ポリゴンに対して、ポリゴンの形状を特徴付ける特徴パラメータを算出し、前記規制モデルデータベースを参照して、前記規制モデルに含まれる各ポリゴンの特徴パラメータと比較することにより、前記対象モデルのポリゴンと前記規制モデルのポリゴンを対応付け、対応付けられたポリゴン同士の前記特徴パラメータの相違に基づいて、前記対象モデルと前記規制モデルが適合するか否かを判定するポリゴン対応付け手段と、前記ポリゴン対応付け手段による判定結果に基づいて、出力を規制すべきか否かを判定する出力適否判定手段と、を備えることを特徴とする立体物造形用データ出力規制装置を提供する。
本発明第1の態様によれば、規制モデルが登録された規制モデルデータベースを備え、対象モデルの各ポリゴンに対して、ポリゴンの形状を特徴付ける特徴パラメータを算出し、規制モデルデータベースを参照して、規制モデルに含まれる各ポリゴンの特徴パラメータと比較することにより、対象モデルのポリゴンと規制モデルのポリゴンを対応付け、対応付けられたポリゴン同士の特徴パラメータの相違に基づいて、対象モデルと規制モデルが適合するか否かを判定し、適合するか否かの判定結果に基づいて、出力を規制すべきか否かを判定するようにしたので、複数の部品で構成された物品を表現したポリゴンモデルに対しても、構成部品が出力規制すべきものである場合には、見逃すことなく特定することができ、的確にその出力規制を行うことが可能となる。
また、本発明第2の態様では、前記ポリゴンは三角形状であり、前記特徴パラメータは、最長辺以外の2辺の長さ(L1、L2)を、それぞれ最長辺の長さ(L0)で除して得られる2つの値とすることを特徴とする。
本発明第2の態様によれば、三角形状のポリゴンを特徴付ける2つのパラメータとして、最長辺以外の2辺の長さ(L1、L2)を、それぞれ最長辺の長さ(L0)で除して得られる2つの値を算出するようにしたので、ポリゴンを特徴付けるパラメータを辺の長さの比率に基づいて的確に作成することが可能となる。
また、本発明第3の態様では、前記ポリゴンは三角形状であり、前記特徴パラメータは、最長辺の両端のそれぞれの角度に対応する2つの値とすることを特徴とする。
本発明第3の態様によれば、三角形状のポリゴンを特徴付ける2つのパラメータとして、最長辺の両端のそれぞれの角度に対応する2つの値を算出するようにしたので、ポリゴンを特徴付けるパラメータを角度に基づいて的確に作成することが可能となる。
また、本発明第4の態様では、出力対象のポリゴンモデルである対象モデルに含まれるポリゴンの数が所定の値以下になるようにポリゴンを削減するポリゴン削減手段を更に有し、ポリゴンが削減された対象モデルに対して、前記ポリゴン対応付け手段が処理を行うことを特徴とする。
本発明第4の態様によれば、対象モデルに含まれるポリゴンの数が所定の値以下になるようにポリゴンを削減し、ポリゴンが削減された対象モデルに対して、ポリゴン対応付け処理を行うようにしたので、規制モデルとの比較のために重要でないポリゴンを削除しておくことにより、効率的にポリゴンの対応付けを行うことが可能となる。
また、本発明第5の態様では、前記ポリゴン対応付け手段により対応付けされた前記対象モデルに対して、当該対象モデルの基準点が3次元座標の原点になるように前記対象モデルを移動させ、前記基準点から最も遠いポリゴンまでの最長距離が所定の長さになるように前記対象モデルをスケーリング調整し、前記最長距離の方向が第1の軸に一致するように前記対象モデルを回転させることにより、所定の位置、スケール、傾きに正規化された対象モデルを作成するポリゴン正規化手段と、前記正規化された対象モデルを前記規制モデルデータベースに登録されている規制モデルと照合するポリゴンモデル照合手段と、をさらに有し、前記出力適否判定手段は、前記ポリゴンモデル照合手段による照合結果に基づいて、出力を規制すべきか否かを判定することを特徴とする。
本発明第5の態様によれば、対応付けされた対象モデルに対して、対象モデルの基準点が3次元座標の原点になるように対象モデルを移動させ、基準点から最も遠いポリゴンまでの最長距離が所定の長さになるように対象モデルをスケーリング調整し、最長距離の方向が第1の軸(例えばZ軸)に一致するように対象モデルを回転させることにより、所定の位置、スケール、傾きに正規化された対象モデルを作成し、正規化された対象モデルを規制モデルデータベースに登録されている規制モデルと照合し、出力を規制すべきか否かを判定するようにしたので、ポリゴン対応付け手段により誤った対応付けがなされた場合であっても、的確にポリゴンモデルの出力規制を行うことが可能となる。
また、本発明第6の態様では、前記ポリゴン対応付け手段により対応付けされた対象モデルの基準点は、各ポリゴンの頂点座標の平均であるポリゴン平均座標を、前記対象モデルに含まれるポリゴンについて算出した平均値として与えられるものであることを特徴とする。
本発明第6の態様によれば、対応付けされた対象モデルの基準点は、各ポリゴンの頂点座標の平均であるポリゴン平均座標を、対象モデルに含まれるポリゴンについて算出した平均値として与えられるようにしたので、立体物造形装置に出力予定のポリゴンモデルの中で対応付けされたポリゴンの各頂点が規制モデルデータベースに登録されている規制モデルのものと若干異なっていても、適切か否かの判断を行うことができ、対象モデルの重心に近い位置を基準点として迅速に算出することが可能となる。
また、本発明第7の態様では、前記ポリゴン正規化手段は、前記ポリゴン対応付け手段により対応付けされた対象モデルの基準点から最も遠いポリゴンまでの最長距離方向が前記第1の軸(例えばZ軸)の正または負の一方の特定方向に一致させるため、前記第1の軸(例えばZ軸)と第2の軸(例えばX軸)で形成される(XZ)2次元座標系に投影された前記基準点から最も遠いポリゴンまでの最長距離方向が前記第1の軸(例えばZ軸)の前記特定方向に一致するように前記対象モデルを回転させた後に、前記第1の軸(例えばZ軸)と第3の軸(例えばY軸)で形成される(YZ)2次元座標系に投影された前記基準点から最も遠いポリゴンまでの最長距離方向が前記第1の軸(例えばZ軸)の前記特定方向に一致するように前記対象モデルを回転させるようにしていることを特徴とする。
本発明第7の態様によれば、対応付けされた対象モデルの基準点から最も遠いポリゴンまでの最長距離方向が第1の軸(例えばZ軸)の特定方向に一致させるため、第1の軸(例えばZ軸)と第2の軸(例えばX軸)で形成される(XZ)2次元座標系に投影された基準点から最も遠いポリゴンまでの最長距離方向が第1の軸(例えばZ軸)の特定方向に一致するように対象モデルを回転させた後に、第1の軸(例えばZ軸)と第3の軸(例えばY軸)で形成される(YZ)2次元座標系に投影された基準点から最も遠いポリゴンまでの最長距離方向が第1の軸(例えばZ軸)の特定方向に一致するように対象モデルを回転させるようにしたので、立体物造形装置に出力予定のポリゴンモデルおよび規制モデルデータベースに登録されている規制モデルに対して、各々少なくとも立体物の長手方向のアングルを揃えた上で照合を行うことが可能となる。
また、本発明第8の態様では、前記ポリゴン正規化手段は、前記ポリゴン対応付け手段により対応付けされた対象モデルの基準点から最も遠いポリゴンまでの最長距離方向が前記第1の軸(例えばZ軸)の前記特定方向に一致するように前記対象モデルを回転させた後に、前記第2の軸(例えばX軸)と前記第3の軸(例えばY軸)で形成される(XY)2次元座標系に投影された基準点から最も遠いポリゴンまでの最長距離方向が前記第3の軸(例えばY軸)の前記特定方向に一致するように前記対象モデルを更に回転させるようにしていることを特徴とする。
本発明第8の態様によれば、対応付けされた対象モデルの基準点から最も遠いポリゴンまでの最長距離方向が第1の軸(例えばZ軸)の特定方向に一致するように対象モデルを回転させた後に、第2の軸(例えばX軸)と第3の軸(例えばY軸)で形成される(XY)2次元座標系に投影された基準点から最も遠いポリゴンまでの最長距離方向が第3の軸(例えばY軸)の特定方向に一致するように対象モデルを更に回転させるようにしたので、立体物造形装置に出力予定のポリゴンモデルおよび規制モデルデータベースに登録されている規制モデルに対して、各々アングルを完全に一致させて上で照合を行うことが可能となる。
また、本発明第9の態様では、前記ポリゴン照合手段は、角度(アングル)に依存しない角度非依存照合処理と、角度に依存する角度依存照合処理を行う2種の処理から構成され、前記角度非依存照合処理で適合した場合のみ、前記角度依存照合処理を実行するようにしていることを特徴とする。
本発明第9の態様によれば、ポリゴン照合として、はじめに角度(アングル)に依存しない角度非依存照合処理を行い、角度非依存照合処理で適合(類似)した場合のみ、角度依存照合処理を実行するようにしたので、大きく異なるモデルについては、少ない処理負荷で迅速に非類似と判定することができ、全体として効率的な判定が可能となる。
また、本発明第10の態様では、前記ポリゴン照合手段は、前記角度非依存照合処理として、前記対象モデルを構成するポリゴンの面積の総和値(SN)と、前記規制モデルを構成するポリゴンの面積の総和値(SM)を算出し、2つの総和値の差分の絶対値(dS)が所定のしきい値より小さい場合に適合判定するようにしていることを特徴とする。
本発明第10の態様によれば、角度非依存照合処理として、対象モデルを構成するポリゴンの面積の総和値と、規制モデルを構成するポリゴンの面積の総和値を算出し、2つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合(類似)判定するようにしたので、比較的簡易な演算によりしきい値と比較する値を算出することができ、迅速な適否判定が可能となる。
また、本発明第11の態様では、前記ポリゴン照合手段は、前記角度非依存照合処理として、前記対象モデルを構成するポリゴンを底面として前記基準点を頂点とする角錐の体積の総和値(VN)と、前記規制モデルを構成するポリゴンを底面として前記基準点を頂点とする角錐の体積の総和値(VM)を算出し、2つの総和値の差分の絶対値(dV)が所定のしきい値より小さい場合に適合(類似)判定するようにしていることを特徴とする。
本発明第11の態様によれば、角度非依存照合処理として、対象モデルを構成するポリゴンを底面として基準点を頂点とする角錐の体積の総和値と、規制モデルを構成するポリゴンを底面として基準点を頂点とする角錐の体積の総和値を算出し、2つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合(類似)判定するようにしたので、比較的簡易な演算によりしきい値と比較する値を算出することができ、迅速な適否判定が可能となる。
また、本発明第12の態様では、前記ポリゴン照合手段は、前記角度非依存照合処理として、前記対象モデルを構成するポリゴンの面積の総和値(SN)と、前記規制モデルを構成するポリゴンの面積の総和値(SM)を算出し、2つの総和値の差分の絶対値(dS)が所定のしきい値より小さい場合に適合(類似)判定し、適合判定された場合のみ、前記対象モデルを構成するポリゴンを底面として前記基準点を頂点とする角錐の体積の総和値(VN)と、前記規制モデルを構成するポリゴンを底面として前記基準点を頂点とする角錐の体積の総和値(VM)を算出し、2つの総和値の差分の絶対値(dV)が所定のしきい値より小さい場合に適合(類似)判定するようにしていることを特徴とする。
本発明第12の態様によれば、角度非依存照合処理として、対象モデルを構成するポリゴンの面積の総和値と、規制モデルを構成するポリゴンの面積の総和値を算出し、2つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合(類似)判定し、適合判定された場合のみ、対象モデルを構成するポリゴンを底面として基準点を頂点とする角錐の体積の総和値と、規制モデルを構成するポリゴンを底面として基準点を頂点とする角錐の体積の総和値を算出し、2つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合(類似)判定するようにしたので、迅速かつ確実にしきい値と比較する値を算出することができ、迅速な適否判定が可能となる。
また、本発明第13の態様では、前記ポリゴン照合手段は、前記角度依存照合処理として、前記対象モデル、前記規制モデルそれぞれについて、構成するポリゴンの頂点座標の平均であるポリゴン平均座標が最も近いポリゴン同士でポリゴン平均座標間の距離(d)を算出し、ポリゴン平均座標間の距離の総和値(D1)を算出し、前記2つのモデルの総和値の平均値(D1/N)が所定のしきい値より小さい場合に適合(類似)判定するようにしていることを特徴とする。
本発明第13の態様によれば、角度依存照合処理として、対象モデル、規制モデルそれぞれについて、構成するポリゴンの頂点座標の平均であるポリゴン平均座標が最も近いポリゴン同士でポリゴン平均座標間の距離を算出し、ポリゴン平均座標間の距離の総和値を算出し、2つのモデルの総和値の平均値が所定のしきい値より小さい場合に適合(類似)判定するようにしたので、簡易な角度非依存照合で類似と判定されたモデルに対して再判定を行い、規制する必要のないポリゴンモデルを誤って規制することがないように判定精度を上げることが可能となる。規制すべきポリゴンモデルに対して見逃して出力を許可してしまう場合は、少なくともユーザからのクレームは起こらないが、その逆の場合は、ユーザからのクレーム発生につながり本技術を搭載した3Dプリンタ装置に対する信頼性も失われる。本発明第13の態様によれば、そのような信頼の失墜を防ぐことに貢献できる。
また、本発明第14の態様では、前記ポリゴン照合手段は、前記角度依存照合処理として、前記対象モデル、前記規制モデルそれぞれについて、構成するポリゴンの頂点座標の平均であるポリゴン平均座標が最も近いポリゴン同士で、対応する頂点間の距離を算出し、当該距離の全ポリゴンについての総和値を算出し、前記2つのモデルの総和値の平均値が所定のしきい値より小さい場合に適合(類似)判定するようにしていることを特徴とする。
本発明第14の態様によれば、角度依存照合処理として、対象モデル、規制モデルそれぞれについて、構成するポリゴンの頂点座標の平均であるポリゴン平均座標が最も近いポリゴン同士で、対応する頂点間の距離を算出し、距離の全ポリゴンについての総和値を算出し、2つのモデルの総和値の平均値が所定のしきい値より小さい場合に適合(類似)判定するようにしたので、簡易な角度非依存照合で類似と判定されたモデルに対して再判定を行い、規制する必要のないポリゴンモデルを誤って規制することがないように本発明第13の態様より更に判定精度を上げることが可能となる。
また、本発明第15の態様では、前記規制モデルの各ポリゴンに対して、前記特徴パラメータを算出する特徴パラメータ算出装置により特徴パラメータが算出された規制モデルを受信し、受信した規制モデルを前記規制モデルデータベースに登録する規制モデル登録手段を更に有することを特徴とする。
本発明第15の態様によれば、規制モデルの各ポリゴンに対して、特徴パラメータを算出する特徴パラメータ算出装置を別途用意し、この特徴パラメータ算出装置から規制モデルを受信し、受信した規制モデルを規制モデルデータベースに登録するようにしたので、規制モデルデータベースの更新を遠隔地から迅速に行うことが可能となる。
また、本発明第16の態様では、前記ポリゴン対応付け手段による対応付け前の対象モデルを、接続された立体物造形装置に出力する手段と、前記立体物造形装置による立体物の造形処理と並行して実行される前記出力適否判定手段により、出力を規制すべきであると判定された場合に、前記立体物造形装置に、前記ポリゴン対応付け前の対象モデルの出力中止命令を出力する手段と、を更に備えることを特徴とする。
本発明第16の態様によれば、ポリゴン対応付け前の対象モデルを、接続された立体物造形装置に出力し、並行して実行されるポリゴン対応付けの結果、出力を規制すべきであると判定された場合に、立体物造形装置に、ポリゴン対応付け前の対象モデルの出力中止命令を出力するようにしたので、時間のかかる立体物の造形を遅延させることなく、出力不適の場合にのみ、出力を中止することが可能となる。
本発明によれば、複数の部品で構成されている物品を表現したポリゴンモデルに対しても、人間による判断を行わず、的確にその出力規制を行うことが可能となる。
本発明の一実施形態に係る立体物造形用データ出力規制装置100を含む立体物造形システムのハードウェア構成図である。 本発明の一実施形態に係る立体物造形用データ出力規制装置の構成を示す機能ブロック図である。 本発明の一実施形態に係る立体物造形用データ出力規制装置の処理概要を示すフローチャートである。 ステップS100のポリゴン削減処理の詳細を示すフローチャートである。 ポリゴン削減手段10によるグループ分類処理の詳細を示すフローチャートである。 ポリゴン削除の基本原理を示す図である。 ポリゴン削除処理の詳細を示すフローチャートである。 ポリゴン削除処理により生じる問題を説明するための図である。 隔離された小体積グループの削除処理の詳細を示すフローチャートである。 図9のステップS44における最小間隔の算出処理の詳細を示すフローチャートである。 ポリゴンモデルの全体形状の比較による問題点を示す図である。 ポリゴン対応付け処理の基本原理を示す図である。 ポリゴン対応付け処理の詳細を示すフローチャートである。 特徴パラメータの比較処理の詳細を示すフローチャートである。 対応ポリゴンの抽出処理の詳細を示すフローチャートである。 正しいポリゴン対応付けの例を示す図である。 誤ったポリゴン対応付けの例を示す図である。 ステップS300のポリゴン正規化処理の詳細を示すフローチャートである。 ポリゴン正規化処理の概要を示す図である。 ポリゴン照合処理の概要を示すフローチャートである。 総面積に基づくポリゴン照合処理の詳細を示すフローチャートである。 体積に基づくポリゴン照合処理の詳細を示すフローチャートである。 座標値に基づくポリゴン照合処理の詳細を示すフローチャートである。 変形例における立体物造形用データ出力規制装置のハードウェア構成図である。 第1の事例について、規制モデル、対象モデルを、XYZのいずれの軸とも平行でない位置から見た斜視図である。 第1の事例について、規制モデル、対象モデルを、視点をXZ平面として見た図である。 第2の事例について、規制モデル、対象モデルを、XYZのいずれの軸とも平行でない位置から見た斜視図である。 第2の事例について、規制モデル、対象モデルを、視点をXZ平面として見た図である。
以下、本発明の好適な実施形態について図面を参照して詳細に説明する。
<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はポリゴン削減手段、15はポリゴン対応付け手段、20はポリゴン正規化手段、30はポリゴンモデル照合手段、35は出力適否判定手段、40は対象モデル記憶手段、50は規制モデルデータベースである。
ポリゴン削減手段10は、対象モデル記憶手段40に記憶されたポリゴンモデルである対象モデルを構成するポリゴンを削減する。ポリゴン対応付け手段15は、ポリゴンが削減された対象モデルの各ポリゴンに対して、相似形を含めて特徴付ける2つの特徴パラメータを算出し、規制モデルデータベース50内のポリゴンモデルである規制モデルに含まれる各ポリゴンの特徴パラメータと比較することにより、類似すると判断されるポリゴン同士の対応付けを行う。ポリゴン正規化手段20は、対応付けが行われた対象モデルに対して、所定の位置、スケール、アングルに正規化する処理を行う。ポリゴンモデル照合手段30は、正規化後の対象モデルを、規制モデルデータベース50内のポリゴンモデルである各規制モデルと照合する。出力適否判定手段35は、ポリゴンモデル照合手段30の照合結果に基づいて、出力を規制すべきか否かを判定する。
ポリゴン削減手段10、ポリゴン対応付け手段15、ポリゴン正規化手段20、ポリゴンモデル照合手段30、出力適否判定手段35は、CPU1が、記憶装置3に記憶されているプログラムを実行することにより実現される。対象モデル記憶手段40は、出力適否の判定対象となるポリゴンモデルである対象モデルを記憶した記憶手段であり、記憶装置3により実現される。ポリゴンモデルとは、ポリゴンの集合により三次元空間における所定の立体形状を表現したデータであり、3Dプリンタ等の立体物造形装置に立体物造形用データとして出力されるものである。本実施形態では、ポリゴンモデルのデータ形式としてSTL(Standard Triangulated Language)を採用している。規制モデルデータベース50は、規制対象となるポリゴンモデルである規制モデルを記憶してデータベース化したものであり、記憶装置3により実現される。
図2に示した各構成手段は、現実には図1に示したように、コンピュータおよびその周辺機器等のハードウェアに専用のプログラムを搭載することにより実現される。すなわち、コンピュータが、専用のプログラムに従って各手段の内容を実行することになる。なお、本明細書において、コンピュータとは、CPU等の演算処理部を有し、データ処理が可能な装置を意味し、パーソナルコンピュータなどの汎用コンピュータだけでなく、製品としての“3Dプリンタ”に組み込まれたボードコンピュータも含む。
図1に示した記憶装置3には、CPU1を動作させ、コンピュータを、立体物造形用データ出力規制装置として機能させるための専用のプログラムが実装されている。この専用のプログラムを実行することにより、CPU1は、ポリゴン削減手段10、ポリゴン対応付け手段15、ポリゴン正規化手段20、ポリゴンモデル照合手段30、出力適否判定手段35としての機能を実現することになる。また、記憶装置3は、対象モデル記憶手段40、規制モデルデータベース50として機能するだけでなく、立体物造形用データ出力規制装置としての処理に必要な様々なデータを記憶する。
<2.処理動作>
<2.1.前処理>
次に、図1、図2に示した立体物造形用データ出力規制装置の処理動作について説明する。まず、規制モデルデータベース50に登録する対象となるポリゴンモデルである規制モデルを作製する。これは、規制対象となるポリゴンモデルである規制モデルについて、ポリゴンの削減、ポリゴンの正規化をすることにより行われる。この結果、規制モデルを構成するポリゴンの数が、所定数以下となり、正規化されて規制モデルデータベース50に登録される。規制モデルデータベース50に登録される規制モデルは、複数の部品で構成される完成品とすることもできるが、出力対象モデルとのポリゴンの対応付けおよび照合がしやすいように、部品単位で登録しておく。規制モデルのポリゴンの削減、ポリゴンの正規化については、後述する立体物造形用データ出力規制装置における処理と同様に行うことができる。規制モデルのポリゴンの削減、ポリゴンの正規化は、立体物造形用データ出力規制装置で行ってもよいし、別のコンピュータで同様のプログラムを実行することにより行ってもよい。
<2.2.処理概要>
次に、図1、図2に示した立体物造形用データ出力規制装置の処理動作について説明する。図3は、本発明の一実施形態に係る立体物造形用データ出力規制装置の処理概要を示すフローチャートである。まず、ポリゴン削減手段10が、対象モデル記憶手段40から、適否判定対象のポリゴンモデルである対象モデルを読み込み、対象モデルを構成するポリゴンを削減する(ステップS100)。次に、ポリゴンが削減された対象モデルと、規制モデルデータベース50に登録されたポリゴンモデルである規制モデルのポリゴン対応付けを行う(ステップS200)。続いて、対応付けが行われた対象モデルの正規化を行う(ステップS300)。そして、正規化された対象モデルと、規制モデルデータベース50に登録された規制モデルとの照合を行う(ステップS400)。
<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のポリゴン対応付け処理について説明する。まず、ポリゴン対応付け処理を行う理由について説明する。2つのポリゴンモデルの比較を行う手法としては、後述するポリゴンモデル照合手段30による処理も同様であるように、全体形状を比較する手法がある。図11は全体形状の比較による問題点を示す図である。図11に示すように、全体形状で比較する場合、事前に正規化処理を行う必要があり、正規化処理では始めにモデル全体の重心を算出する必要がある。この時、図11に示した対象モデルのような複合モデルでは重心位置が大幅にずれてしまい、双方で整合性をもたせながら正規化を実行することが難しい。
図12は、本実施形態におけるポリゴン対応付け処理の基本原理を示す図である。図12において、規制モデル、対象モデルは、それぞれ図11に示したものと同一であり、対象モデルは複合モデルとなっている。規制モデルの形状と対応する対象モデルの形状とでポリゴン構成が同一であるという条件を付加すれば、図12に示すように、ポリゴンの順序、スケール、アングルが変化しても各ポリゴンは相似形を維持する。具体的には、三角形の3辺の比率(ac:ab:bc)および3頂点ABCの角度は変化しない。このため、本実施形態におけるポリゴン対応付け処理を実行することにより、出力対象が複数の部品で構成されており、規制すべき部品を含んでいる場合に、出力規制を行うことが可能となる。
ポリゴン対応付け処理について具体的に説明していく。図13は、ポリゴン対応付け処理の詳細を示すフローチャートである。ここでは、ステップS100においてポリゴン数が削減された対象モデルのポリゴン数N、ポリゴンを特定する変数i(i=0,・・・,N−1)とし、各ポリゴンiの頂点を(Xp(i),Yp(i),Zp(i))と定義されたものとする。pは頂点番号を示しており、本実施形態では、ポリゴンが三角形であるため、p=0,1,2の3つの値をとる。
ポリゴン対応付け処理においては、まず、ポリゴン対応付け手段15は、ポリゴン削減後の対象モデルの各ポリゴンのパラメータを算出する(ステップS210)。具体的には、対象モデルを構成する各ポリゴンについて、ポリゴンの形状を特徴付けるパラメータを算出する。まず、以下の〔数式3〕に従った処理を実行することにより、ポリゴンの各辺の長さLp(i)を算出する。上述のように、本実施形態では、ポリゴンが三角形であるため、p=0,1,2の3通りである。
〔数式3〕
L0(i)=[{X1(i)−X0(i)}2+{Y1(i)−Y0(i)}2+{Z1(i)−Z0(i)}21/2
L1(i)=[{X2(i)−X1(i)}2+{Y2(i)−Y1(i)}2+{Z2(i)−Z1(i)}21/2
L2(i)=[{X0(i)−X2(i)}2+{Y0(i)−Y2(i)}2+{Z0(i)−Z2(i)}21/2
次に、ポリゴン対応付け手段15は、算出された三辺の長さLp(i)(p=0,1,2)の順番をL0(i)≧L1(i)≧L2(i)となるように入れ替える。具体的には、以下の〔数式4〕に従った処理を実行する。
〔数式4〕
L0(i)<L1(i)の場合、L0(i)とL1(i)の値を入れ替える。
L0(i)<L2(i)の場合、L0(i)とL2(i)の値を入れ替える。
L1(i)<L2(i)の場合、L1(i)とL2(i)の値を入れ替える。
続いて、ポリゴン対応付け手段15は、特徴パラメータRp(i)(p=1,2)を算出する。特徴パラメータとしては、辺の長さに基づくものと、頂点の角度に基づくものの2種類のどちらかを用いることができる。辺の長さに基づく特徴パラメータの場合、ポリゴン対応付け手段15は、以下の〔数式5〕に従った処理を実行して特徴パラメータRp(i)を算出する。
〔数式5〕
R1(i)=L1(i)/L0(i)
R2(i)=L2(i)/L0(i)
上記〔数式5〕に示すように、辺の長さに基づく場合、特徴パラメータRp(i)は、最長辺と他の2辺の長さの比率として算出される。長さの順は、L0(i)≧L1(i)≧L2(i)となっているので、R1(i)≧R2(i)となる。
一方、頂点の角度に基づく特徴パラメータの場合、ポリゴン対応付け手段15は、以下の〔数式6〕に従った処理を実行して特徴パラメータRp(i)を算出する。
〔数式6〕
R1(i)=cos-1{L0(i)×0.5/L1(i)}
R2(i)=cos-1{L0(i)×0.5/L2(i)}
上記〔数式6〕に示すように、頂点の角度に基づく場合、特徴パラメータRp(i)は、最長辺の両端の角度として算出される。長さの順は、L0(i)≧L1(i)≧L2(i)となっているので、R1(i)≦R2(i)となる。
ステップS210において、対象モデルのN個の各ポリゴンについて特徴パラメータRp(i)が算出されたら、次に、ポリゴン対応付け手段15は、規制モデルデータベース50に登録された規制モデルを1つ抽出する(ステップS220)。さらに、ポリゴン対応付け手段15は、抽出した規制モデルのポリゴン数Mと、対象モデルのポリゴン数Nを比較する。そして、規制モデルのポリゴン数Mが対象モデルのポリゴン数Nよりも多い場合は、その規制モデルを処理対象から除外し、ステップS220に戻って次の規制モデルの抽出を行う。上述のように、規制モデルは、部品単位で登録されており、対象モデルは複数の部品が組み合わさった複合部品または完成品であることが多い。そのため、通常は、対象モデルのポリゴン数が多いことになる。そのため、ここでは、規制モデルのポリゴン数が対象モデルのポリゴン数より多い場合は、処理対象から除外するのである。
次に、ポリゴン対応付け手段15は、除外されなかった規制モデルの特徴パラメータを、規制モデルデータベース50から抽出する(ステップS230)。この特徴パラメータは、対象モデルの場合と同様の処理を事前に行って算出され、規制モデルの各ポリゴンに対応付けて登録されたものである。
続いて、ポリゴン対応付け手段15は、対象モデルと規制モデルの特徴パラメータの比較を行う(ステップS240)。図14は、ステップS240の特徴パラメータの比較処理の詳細を示すフローチャートである。ここでは、対象モデルを、ポリゴン数N、ポリゴンを特定する変数i(i=0,・・・,N−1)とし、各ポリゴンiの頂点を(Xp(i),Yp(i),Zp(i))と定義されたものとする。pは、p=0,1,2の3つの値をとる頂点番号とする。
ポリゴン対応付け手段15は、まず、初期設定を行い、D=0,j=0,S(i)=0とする(ステップS241)。Dは判定しきい値Dsと比較するために、形状相違度の一部として出力される変数である。j=0は、規制モデルで最初に処理されるポリゴンのポリゴン番号である。S(i)は、対象モデルの各ポリゴンiに対応する対応付け配列であり、規制モデルのポリゴンjとの対応付けがなされた場合に“1”が記録され、対応付けがなされなかった場合は“0”が記録される。S(i)=0は、対象モデルの全てのポリゴンについて、対応付け配列の値を0に設定しておくことを示す。次に、i=0,imm=−1,Min=BIGに設定する(ステップS242)。
i=0は、対象モデルで最初に処理されるポリゴンのポリゴン番号である。immは、比較結果が最小となるときのiの値を格納する変数である。Minは初期値BIGに設定される。BIGとしては、Minとして取り得ない程度の大きな値を設定しておく。
次に、S(i)=0であるか否かを判定する(ステップS243)。S(i)=0である場合は、そのポリゴンiについては、まだ対応付けがなされていないことになるので、形状相違度Vの算出を行う(ステップS244)。具体的には、ポリゴン対応付け手段15は、以下の〔数式7〕に従った処理を実行して形状相違度Vを算出する。
〔数式7〕
R1(i)>Rd1(j)ならば、V1=R1(i)/Rd1(j)
R1(i)≦Rd1(j)ならば、V1=Rd1(i)/R1(j)
R2(i)>Rd2(j)ならば、V2=R2(i)/Rd2(j)
R2(i)≦Rd2(j)ならば、V2=Rd2(i)/R2(j)
V=V1×V2
上記〔数式7〕において、Rd1(j)、Rd2(j)は、規制モデルの各ポリゴンjの特徴パラメータであり、対象モデルの特徴パラメータR1(i)、R2(i)と同様、辺の長さに基づく場合、Rd1(j)≧Rd2(j)となる。また、頂点の角度に基づく場合、Rd1(j)≦Rd2(j)となる。したがって、上記〔数式7〕の第1式、第2式においては、辺の長さに基づく特徴パラメータの場合、最長辺と2番目に長い辺の長さの比率同士の比率V1を算出し、頂点の角度に基づく特徴パラメータの場合、最長辺の両端のうち小さい方の角の角度同士の比率V1を算出する。また、上記〔数式7〕の第3式、第4式においては、辺の長さに基づく特徴パラメータの場合、最長辺と一番短い辺の長さの比率同士の比率V2を算出し、頂点の角度に基づく特徴パラメータの場合、最長辺の両端のうち大きい方の角の角度同士の比率V2を算出する。V1、V2のいずれも1以上の値となるように算出される。上記〔数式7〕の第5式においては、1以上の値である比率V1とV2を乗じて形状相違度Vを算出している。対象モデルのポリゴンiと規制モデルのポリゴンjの形状が相似形も含めて類似している程、形状相違度Vの値は小さくなる。
ステップS244においては、さらに、形状相違度VとMinを比較し、VがMinより小さい場合に、Min=Vとし、imm=iとする。すなわち、ステップS244の処理後には、それまでの対象モデルのポリゴンiについて算出された形状相違度Vのうち、最小のものがMinとして保持される。また、形状相違度Vが最小となったときのポリゴン番号iがimmとして保持される。
そして、iを1だけインクリメント(i←i+1)して対象モデルの処理対象ポリゴンを変更し(ステップS245)、対象モデルのポリゴン番号iとポリゴン数Nを比較する(ステップS246)。
比較の結果、iがNより小さい場合は、規制モデルの1つのポリゴンに対して対象モデルの全てのポリゴンの処理が終わっていないため、ステップS443に戻って、S(i)=0であるか否かの判定を行う。規制モデルの1つのポリゴンに対して対象モデルの全てのポリゴンについて、ステップS243〜ステップS245の処理を実行した後には、i=Nとなるので、ステップS247に進む。
ステップS243〜ステップS245の処理を繰り返すことにより、Minには、規制モデルの1つのポリゴンと対象モデルの各ポリゴンの形状相違度Vのうち、最小の値である最小形状相違度が記録される。これは、規制モデルの1つのポリゴンと最も形状が類似する対象モデルのポリゴンとの形状相違度となる。次に、形状相違度Vが最小となったときのポリゴン番号immに対応する対応付け配列S(imm)=1に設定する(ステップS247)。これにより、対象モデルのポリゴン番号immのポリゴンimmについては、規制モデルのポリゴンとの対応付けがなされたことが記録される。また、ステップS247においては、最小形状相違度であるMinをDに加算する。ここでは、調整のため1だけ減じているが、不要な場合は1を減じる必要はない。そして、jを1だけインクリメント(j←j+1)して規制モデルの処理対象ポリゴンを変更し、規制モデルのポリゴン番号jとポリゴン数Mを比較する(ステップS248)。
比較の結果、jがMより小さい場合は、規制モデルの全てのポリゴンに対して処理が終わっていないため、ステップS242に戻って、規制モデルの次のポリゴンに対して処理を行う。規制モデルの全てのポリゴンについて、ステップS242〜ステップS247の処理を実行した後には、j=Mとなるので、ステップS249に進む。
ステップS242〜ステップS247の処理を繰り返すことにより、Dには、規制モデルの各ポリゴンに対する最小形状相違度Minの総和が記録される。
最小形状相違度総和Dが得られたら、ポリゴン対応付け手段15は、は、最小形状相違度総和Dを規制モデルのポリゴン数Mで除した値である形状相違度平均D/Mと判定しきい値Dsとの比較を行う(ステップS249)。D/Mが判定しきい値Dsより小さい場合は、適合と判定し、D/Mが判定しきい値Ds以上である場合は、不適合と判定する。判定しきい値Dsとしては、適宜設定可能であるが、ここでは、0.01としてある。
ステップS249において不適合と判定された場合には、図13に示すように、ステップS220に戻って、規制モデルデータベース50から次の規制モデルを抽出する。ステップS249において適合と判定された場合には、対象モデルの中から対応付けが行われたポリゴンのみを抽出する。
図15は、対応付けが行われたポリゴンの抽出処理を示すフローチャートである。まず、対象モデルのポリゴン番号i、規制モデルのポリゴン番号jとして用いた変数i,jを初期化してi=j=0とする(ステップS250)。次に、S(i)=0であるか否かを判定する(ステップS251)。S(i)=0でない場合、すなわちS(i)=1である場合は、そのポリゴンiについては、規制モデルのポリゴンと対応付けがなされたことを示すので、対応ポリゴンとして特定する(ステップS252)。具体的には、ポリゴン対応付け手段15は、以下の〔数式8〕に従った処理を実行して対応ポリゴンを特定する。
〔数式8〕
p=0,1,2について、
Xp(j)=Xp(i)
Yp(j)=Yp(i)
Zp(j)=Zp(i)
j←j+1
上記〔数式8〕に示すように、対象モデルの全ポリゴン数Nに対応するポリゴン番号iを、規制モデルの全ポリゴン数Mに対応するポリゴン番号jに置き換える。これにより、対象モデルの全ポリゴンのうち対応ポリゴンのみが、連続する変数に対応付けて特定される。
そして、iを1だけインクリメント(i←i+1)して対象モデルのポリゴンを変更し(ステップS253)、対象モデルのポリゴン番号iとポリゴン数Nを比較する(ステップS254)。
比較の結果、iがNより小さい場合は、対象モデルの全てのポリゴンについて特定が終わっていないため、ステップS251に戻って、対応ポリゴンの特定を行う。対象モデルの全てのポリゴンに対して、ステップS251〜ステップS253の処理を実行した後には、i=Nとなるので、対応ポリゴンの抽出処理を終了する。抽出された対応ポリゴンの集合は、対応付けがなされた対象モデルとなる。対応付けがなされた対象モデルは、元の対象モデルから対応付けがなされたポリゴンのみを抽出して構成されたものであり、上記の例では、ポリゴン数はN個からM個に減少している。このM個のポリゴンには、規制モデル内に形状の相違度が小さいポリゴン(対応するポリゴン)が存在したことになる。ステップS200のポリゴン対応付け処理により対象モデルのポリゴンの対応付けが行われたことになるが、この対応付けは、いずれかの規制モデルに形状の相違度が小さいポリゴンが存在するという意味での対応付けであり、規制モデルのどのポリゴンと対応するかという対応付けまでは行っていない。
ポリゴン対応付け手段15によるポリゴン対応付け処理(ステップS200)の結果、適合と判定された場合には、対象モデルの各ポリゴンに類似するポリゴン(対応するポリゴン)が規制ポリゴンに存在することになるので、規制すべき対象である可能性が高い。図16は、正しいポリゴン対応付けの例を示す図である。図16の例では、規制モデルが、4個のポリゴンで構成される矩形状のポリゴンモデルであり、対象モデルが、4個のポリゴンで構成される矩形状の物体が2つ存在するポリゴンモデルである。また、矢印は、規制モデルのポリゴンからの対象モデルのポリゴンへの対応関係を示している。図16の例では、規制モデルが部品であり、対象モデルが規制モデルと同一の部品を含む完成品であることが明確であり、出力規制すべきものであることは明らかである。図16に示すような場合は、ポリゴン正規化手段20、ポリゴンモデル照合手段30による処理を行わず、そのまま出力適否判定手段35により出力不適と判定するようにしてもよい。
しかし、ポリゴン対応付け手段15によるポリゴン対応付け処理(ステップS200)の結果、適合と判定された場合であっても、規制すべき対象でない可能性もある。図17は、誤ったポリゴン対応付けの例を示す図である。図17の例では、対象モデルは、図16と同様、4個のポリゴンで構成される矩形状の物体が2つ存在するポリゴンモデルであるが、規制モデルは、矩形状でなく、4個のポリゴンが集まったポリゴンモデルである。矢印は、規制モデルのポリゴンからの対象モデルのポリゴンへの対応関係を示している。図17の例では、両者は明らかに相違し、対象モデルは出力を規制すべきものではないが、類似するポリゴンが存在するため、ポリゴン対応付け処理(ステップS200)の結果、適合と判定されてしまう。図17に示したような場合に、出力を規制すべきと判定するのを防ぐために、本実施形態では、さらに、ポリゴン正規化手段20、ポリゴンモデル照合手段30による処理を行うようにしているのである。
<2.5.ポリゴン正規化処理>
次に、図3のステップS300のポリゴン正規化処理について説明する。図18は、ポリゴン正規化処理の詳細を示すフローチャートである。ステップS200におけるポリゴン対応付け処理により、対象モデルのポリゴン数は減少したが、ここでは、改めてステップS200においてポリゴンの対応付けがなされた対象モデルのポリゴン数N、ポリゴンを特定する変数i(i=0,・・・,N−1)とし、各ポリゴンiの頂点を(Xp(i),Yp(i),Zp(i))と定義されたものとする。pは頂点番号を示しており、本実施形態では、ポリゴンが三角形であるため、p=0,1,2の3つの値をとる。
まず、ステップS100においてポリゴン数が削減された対象モデルにおける基準点を算出する(ステップS310)。具体的には、ポリゴンモデルを構成する各ポリゴンについて、頂点の平均となる平均点を算出し、ポリゴンモデルを構成するN個のポリゴンの平均点の平均値をポリゴンモデルの基準点として算出する。具体的には、まず、以下の〔数式9〕に従った処理を実行することにより、各ポリゴンの平均点(Xc(i),Yc(i),Zc(i))を算出する。
〔数式9〕
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
次に、以下の〔数式10〕に従った処理を実行することにより、ポリゴンモデルの基準点(Xg,Yg,Zg)を算出する。
〔数式10〕
Xg={Σi=0,N-1Xc(i)}/N
Yg={Σi=0,N-1Yc(i)}/N
Zg={Σi=0,N-1Zc(i)}/N
上記〔数式10〕において、Σの添え字の“i=0,N−1”は、iが0からN−1の全ての整数をとる場合について、総和を求めることを示している。以下の数式においても同様である。次に、対象モデルの主軸を求める(ステップS320)。具体的には、基準点(Xg,Yg,Zg)から各ポリゴンの平均点までの距離を算出し、そのうち最長である最長距離を主軸とする。具体的には、以下の〔数式11〕に従った処理を実行することにより、主軸の長さLmax(最長距離)を算出する。
〔数式11〕
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
上記〔数式11〕において、Maxの添え字の“i=0,N−1”は、iが0からN−1の全ての整数をとる場合における、最大値を選択することを示している。以下の数式においても同様である。また、“im”は、基準点との距離が最大となるポリゴンである最遠ポリゴンのポリゴン番号を示している。次に、対象モデルの移動およびスケーリングを行う(ステップS330)。具体的には、基準点(Xg,Yg,Zg)が原点(0,0,0)となるように移動した後、スケーリングとして、主軸の長さが基準長になるように、サイズ変更を行う。図19は、ポリゴン正規化処理の概要を示す図である。図19において示した直方体は、対象モデルの一例である。図19(a)は、XYZの三次元空間において対象モデルの主軸が求められた状態を示している。ステップS330においては、以下の〔数式12〕に従った処理を実行することにより、各ポリゴンの頂点座標および平均点座標を補正する。
〔数式12〕
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
上記〔数式12〕は、上記基準長を“100”とした場合を示している。ステップS330の処理により、各ポリゴンiの頂点は、(Xp'(i),Yp'(i),Zp'(i))、各ポリゴンiの平均点は(Xc'(i),Yc'(i),Zc'(i))となる。また、対象モデルは、図19(b)に示すように、基準点が原点(0,0,0)と一致し、主軸の長さが基準長となる。
次に、XZ座標上で主軸をZ軸正方向に揃えるようにY軸中心回転を行う(ステップS340)。具体的には、まず、以下の〔数式13〕に従った処理を実行することにより、主軸とZ軸正方向との角度Ang、最遠ポリゴンの平均点Z座標Zc''(im)を求める。
〔数式13〕
Ang=−tan-1(Xc'(im)/Zc'(im))
Zc''(im)=cos(Ang)×Zc'(im)−sin(Ang)×Xc'(im)
さらに、Zc''(im)の値に応じて場合分けし、以下の〔数式14〕に従った処理を実行することにより、回転後の対象モデルを求める。
〔数式14〕
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
ステップS340の処理により、対象モデルは、図19(c)に示すように、主軸がXZ平面においてZ軸と重なるようになる。
次に、YZ座標上で主軸をZ軸正方向に揃えるようにX軸中心回転を行う(ステップS350)。具体的には、まず、以下の〔数式15〕に従った処理を実行することにより、主軸とZ軸正方向との角度Ang、最遠ポリゴンの平均点Z座標Zc'''(im)を求める。
〔数式15〕
Ang=−tan-1(Yc'(im)/Zc''(im))
Zc'''(im)=cos(Ang)×Zc''(im)−sin(Ang)×Yc'(im)
さらに、Zc'''(im)の値に応じて場合分けし、以下の〔数式16〕に従った処理を実行することにより、回転後の対象モデルを求める。
〔数式16〕
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
ステップS350の処理により、対象モデルは、図19(d)に示すように、主軸がYZ平面においてZ軸と重なるようになる。これにより、三次元空間において、対象モデルの主軸は、Z軸と重なることになる。本実施形態では、主軸をZ軸の正方向に重ねたが、負方向に重ねるようにしてもよい。
次に、対象モデルの副軸を求める(ステップS360)。具体的には、XZ平面上で原点(0,0,0)から各ポリゴンの平均点までの距離を算出し、そのうち最長である最長距離を副軸とする。具体的には、以下の〔数式17〕に従った処理を実行することにより、副軸の長さLmax2(最長距離)を算出する。
〔数式17〕
Lmax2=Maxi=0,N-1{(Xc''(i))2+(Yc(i)'')21/2
={(Xc''(im2))2+(Yc(im2)'')21/2
上記〔数式17〕において、“im2”は、XZ平面において基準点との距離が最大となるポリゴン、すなわち基準点から最も遠いポリゴンである最遠ポリゴンのポリゴン番号を示している。次に、XY座標上で副軸をY軸正方向に揃えるようにZ軸中心回転を行う(ステップS370)。具体的には、まず、以下の〔数式18〕に従った処理を実行することにより、副軸とZ軸正方向との角度Ang、最遠ポリゴンの平均点Y座標Yc'''(im2)を求める。
〔数式18〕
Ang=−tan-1(Xc''(im2)/Yc''(im2))
Yc'''(im2)=cos(Ang)×Yc''(im2)−sin(Ang)×Xc''(im2)
さらに、Yc'''(im2)の値に応じて場合分けし、以下の〔数式19〕に従った処理を実行することにより、回転後の対象モデルを求める。
〔数式19〕
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
ステップS370の処理により、対象モデルは、図19(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))と定義される。ポリゴン正規化処理の結果、図19(f)に示すように、対象モデルは、所定の位置、スケール、傾きに正規化される。
<2.6.ポリゴン照合処理>
次に、ステップS400のポリゴン照合処理について説明する。図20は、ポリゴン照合処理の概要を示すフローチャートである。ポリゴン照合処理においては、ポリゴンモデル照合手段30は、規制モデルデータベース50に登録された規制モデルを1つずつ抽出し(ステップS401)、ステップS300において正規化された対象モデルと照合を行う。本実施形態では、ポリゴンモデル照合手段30は、図20に示すように、総面積に基づく照合処理(ステップS410)、体積に基づく照合処理(ステップS420)、座標値に基づく照合処理(ステップS430)の3つの照合処理を順に行う。先に行った照合処理の結果、適合(すなわち類似)と判定された場合にのみ、次の照合処理に進む。不適合(すなわち非類似)と判定された場合には、ステップS401に戻って次の規制モデルとの照合を行う。3つの照合処理のうち、総面積に基づく照合処理および体積に基づく照合処理は、角度に依存しない角度非依存照合処理であり、座標値に基づく照合処理は、角度に依存する角度依存照合処理である。3つの照合処理全てにおいて適合(すなわち類似)と判定された場合は、その対象モデルは、規制モデルと類似していることになるので、出力適否判定手段35は、出力不適との判定を行う。規制モデルデータベース50に登録された全ての規制モデルとの照合が不適合であった場合には、その対象モデルは、どの規制モデルとも非類似になるので、出力適否判定手段35は、出力適正との判定を行う。
<2.6.1.総面積に基づくポリゴン照合処理>
まず、図20に示した3つの照合処理のうち、ステップS410の総面積に基づくポリゴン照合処理について説明する。図21は、総面積に基づくポリゴン照合処理の詳細を示すフローチャートである。ステップS300において、正規化された対象モデルは、(Xp'''(i),Yp'''(i),Zp'''(i))で示したが、数式が繁雑になることを避けるため、ステップS400においては、改めて、正規化された対象モデルを、ポリゴン数N、ポリゴンを特定する変数i(i=0,・・・,N−1)とし、各ポリゴンiの頂点を(Xp(i),Yp(i),Zp(i))と定義されたものとする。pは、p=0,1,2の3つの値をとる頂点番号とする。
ポリゴンモデル照合手段30は、まず、正規化された対象モデルを構成する各ポリゴンiの面積S(i)、N個のポリゴンの面積S(i)の総和である総面積SNを以下の〔数式20〕に従った処理を実行することにより算出する(ステップS411)。
〔数式20〕
Vx(i)=[Y1(i)−Y0(i)][Z2(i)−Z0(i)]-[Z1(i)−Z0(i)][ Y2(i)−Y0(i)]
Vy(i)=[Z1(i)−Z0(i)][X2(i)−X0(i)]-[X1(i)−X0(i)][ Z2(i)−Z0(i)]
Vz(i)=[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)
次に、ポリゴンモデル照合手段30は、ステップS411における処理と同様に、上記〔数式20〕に従った処理を、変数を変えて、M個のポリゴンで構成される規制モデルに対して実行し、規制モデルの総面積SMを算出する。(ステップS412)。
続いて、ポリゴンモデル照合手段30は、正規化された対象モデルの総面積SNと規制モデルの総面積SMの面積差分dSを、を以下の〔数式21〕に従った処理を実行することにより算出する(ステップS413)。
〔数式21〕
dS=|SM−SN|/(SM+SN)
上記〔数式21〕においては、後に判定しきい値と比較するために、総面積の和(SM+SN)で除算することにより正規化している。上記〔数式21〕に示すように面積差分dSは、総面積の差分の絶対値となっている。
面積差分dSが得られたら、ポリゴンモデル照合手段30は、面積差分dSと判定しきい値との比較を行う(ステップS414)。面積差分dSが判定しきい値より小さい場合は、適合と判定し、面積差分dSが判定しきい値以上である場合は、不適合と判定する。判定しきい値としては、適宜設定可能であるが、ここでは、0.01としてある。
<2.6.2.体積に基づく照合処理>
次に、ステップS420の体積に基づくポリゴン照合処理について説明する。図22は、体積に基づくポリゴン照合処理の詳細を示すフローチャートである。上述のように、ステップS400においては、正規化された対象モデルを、ポリゴン数N、ポリゴンを特定する変数i(i=0,・・・,N−1)とし、各ポリゴンiの頂点を(Xp(i),Yp(i),Zp(i))と定義しており、さらに、各ポリゴンiの平均点を、(Xc(i),Yc(i),Zc(i))と定義する。
ポリゴンモデル照合手段30は、各ポリゴンについて、各ポリゴンを底面とし、基準点(重心)を頂点とする角錐の体積V(i)を算出し、N個のポリゴンについての体積V(i)の総和VNを算出する(ステップS421)。具体的には、まず、上記〔数式20〕に従った処理を実行して各ポリゴンiの面積S(i)を算出する。そして、以下の〔数式22〕に従った処理を実行することにより、各ポリゴンの法線ベクトル(Nx(i),Ny(i),Nz(i))を算出する。
〔数式22〕
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)
角錐の高さは、平均点から原点方向のベクトルとポリゴンの法線ベクトルとの内積の絶対値で算出できるので、以下の〔数式23〕に従った処理を実行することにより、ポリゴンiを底面とする角錐の体積V(i)、およびN個のポリゴンについての角錐の体積の総和である体積総和VNを算出する。
〔数式23〕
V(i)=S(i)|Xc(i)×Nx(i)+Yc(i)×Ny(i)+Zc(i)×Nz(i)|/3
VN=Σi=0,N-1V(i)
次に、ポリゴンモデル照合手段30は、ステップS421における処理と同様に、上記〔数式22〕、〔数式23〕に従った処理を、変数を変えて、M個のポリゴンで構成される規制モデルに対して実行し、規制モデルの体積総和VMを算出する。(ステップS422)。
続いて、ポリゴンモデル照合手段30は、正規化されたポリゴンモデルの体積総和VNと規制モデルの体積総和VMの体積差分dVを、以下の〔数式24〕に従った処理を実行することにより算出する(ステップS423)。
〔数式24〕
dV=|VM−VN|/(VM+VN)
上記〔数式24〕においては、後に判定しきい値と比較するために、体積総和の和(VM+VN)で除算することにより正規化している。上記〔数式24〕に示すように体積差分dVは、体積総和の差分の絶対値となっている。
体積差分dVが得られたら、ポリゴンモデル照合手段30は、体積差分dVと判定しきい値との比較を行う(ステップS424)。体積差分dVが判定しきい値より小さい場合は、適合と判定し、体積差分dVが判定しきい値以上である場合は、不適合と判定する。判定しきい値としては、適宜設定可能であるが、ここでは、0.001としてある。
<2.6.3.座標値に基づく照合処理>
次に、ステップS430の座標値に基づくポリゴン照合処理について説明する。図23は、座標値に基づくポリゴン照合処理の詳細を示すフローチャートである。ここでは、正規化された対象モデルの各ポリゴンiの平均点を、(Xcn(i),Ycn(i),Zcn(i))(i:ポリゴン番号=0,・・・、N−1)と定義し、規制モデルの各ポリゴンjの平均点を、(Xcm(j),Ycm(j),Zcm(j))(j:ポリゴン番号=0,・・・、M−1)と定義する。
ポリゴンモデル照合手段30は、まず、初期設定を行い、D1=0,i=0とする(ステップS431)。D1は判定しきい値と比較する際、距離総和として出力される変数である。i=0は、対象モデルで最初に処理されるポリゴンのポリゴン番号である。次に、j=0,dmin=BIGに設定する(ステップS432)。j=0は、規制モデルで最初に処理されるポリゴンのポリゴン番号である。dminは初期値BIGに設定される。BIGとしては、dminとして取り得ない程度の大きな値を設定しておく。
次に両モデルにおいて特定されたポリゴン同士の平均点座標距離dを算出する(ステップS433)。具体的には、以下の〔数式25〕に従った処理を実行することにより算出する。
〔数式25〕
d=[(Xcm(j)−Xcn(i))2+((Ycm(j)−Ycn(i)) 2 +((Zcm(j)−Zcn(i))2]1/2
上記〔数式25〕に示すように平均点座標距離dは、平均点座標の差分の二乗平方根であり、平均点座標間の距離を示している。次に、算出した平均点座標距離dとdminを比較する(ステップS434)。dがdminより小さい場合は、dmin=dとする(ステップS435)。そして、jを1だけインクリメントして規制モデルの処理対象ポリゴンを変更し(ステップS436)、規制モデルのポリゴン番号jとポリゴン数Mを比較する(ステップS437)。
比較の結果、jがMより小さい場合は、対象モデルの1つのポリゴンに対して規制モデルの全てのポリゴンの処理が終わっていないため、ステップS433に戻って、平均点座標距離の算出を行う。対象モデルの1つのポリゴンに対して規制モデルの全てのポリゴンについて、ステップS433〜ステップS436の処理を実行した後には、j=Mとなるので、ステップS438に進む。
ステップS433〜ステップS436の処理を繰り返すことにより、dminには、対象モデルの1つのポリゴンと規制モデルの各ポリゴンの距離のうち、最小の値である距離最小値が記録される。これは、対象モデルの1つのポリゴンと最も近い規制モデルのポリゴンとの距離となる。次に、この距離最小値dminをD1に加算する(ステップS438)。そして、iを1だけインクリメントして対象モデルの処理対象ポリゴンを変更し、対象モデルのポリゴン番号iとポリゴン数Nを比較する(ステップS439)。
比較の結果、iがNより小さい場合は、対象モデルの全てのポリゴンに対して処理が終わっていないため、ステップS432に戻って、対象モデルの次のポリゴンに対して処理を行う。対象モデルの全てのポリゴンについて、ステップS432〜ステップS438の処理を実行した後には、i=Nとなるので、ステップS440に進む。
ステップS432〜ステップS438の処理を繰り返すことにより、Dには、対象モデルの各ポリゴンに対する距離最小値dminの総和が記録される。
距離総和D1が得られたら、ポリゴンモデル照合手段30は、距離総和D1を対象モデルのポリゴン数Nで除した値D1/Nと判定しきい値との比較を行う(ステップS440)。D1/Nが判定しきい値より小さい場合は、適合と判定し、D1/Nが判定しきい値以上である場合は、不適合と判定する。判定しきい値としては、適宜設定可能であるが、ここでは、10.0としてある。
本実施形態では、ポリゴン同士の平均点座標間の距離、およびその総和を算出するようにしたが、平均点に代えてポリゴン同士の対応する頂点間の距離、およびその総和を算出するようにしてもよい。
<3.3Dプリンタへのデータ出力>
出力適否判定手段35により出力適正と判定された場合には、立体物造形装置である3Dプリンタ7へ対象ポリゴンモデルを出力する。一方、出力適否判定手段35により出力不適と判定された場合には、立体物造形装置である3Dプリンタへ対象モデルを出力しない。また、出力適正か否かの判定に時間がかかる場合には、3Dプリンタ7に対象モデルを出力し、3Dプリンタ7の出力処理(立体物造形処理)と並行して出力適正か否かの判定を行い、出力不適である場合に出力中止命令を3Dプリンタ7に出力するようにしてもよい。この際、オペレータから見れば、対象モデルの出力という一つの命令を行うことにより、3Dプリンタにおける立体物造形処理が開始されることが確認できるだけで、並行して出力適正か否かの判定のための処理の実行が開始されることは気付かれない。
<4.規制モデルの正規化および登録について>
上記実施形態では、規制モデルデータベース50に既に正規化がなされた規制モデルが登録された場合について説明したが、規制モデルデータベース50に正規化されていない規制モデルを登録しておき、この規制モデルに対して、上記実施形態において対象モデルに対して行ったようにポリゴンの削減、正規化を行い、正規化後の規制モデルと、上記正規化後の対象モデルを用いて、ポリゴンの対応付けおよび照合を行うようにしてもよい。この場合、規制モデルデータベース50に登録されている正規化されていない各規制モデルは、ポリゴン削減手段10によりポリゴンが削減され、ポリゴン正規化手段20により正規化された後、ポリゴン対応付け手段15によりポリゴン同士の対応付けが行われ、ポリゴンモデル照合手段30により、正規化後の対象モデルとの照合が行われる。
また、変形例として、ポリゴンモデル照合手段30を備えた立体物造形用データ出力規制装置とは、別の場所で特徴パラメータの算出、正規化を行った規制モデルを、立体物造形用データ出力規制装置にネットワークを介して送信して登録するようにしてもよい。
図24は、変形例における立体物造形用データ出力規制装置を含む立体物造形システムのハードウェア構成図である。図24に示した立体物造形システムにおいて、立体物造形用データ出力規制装置101は、図1に示した立体物造形用データ出力規制装置100の構成に、インターネット等の公衆ネットワークと通信するためのネットワーク通信部8を備えた構成となっている。特徴パラメータ算出装置102は、汎用のコンピュータで実現することができ、図24に示すように、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へ特徴パラメータが算出された規制モデルの送信を行うことが可能になっている。図24では、立体物造形用データ出力規制装置101と3Dプリンタ7は分離した形態で示されているが、現在市販されている殆どの3Dプリンタ製品には立体物造形用データ出力規制装置101の構成要素である、CPU1、RAM2、記憶装置3、キー入力I/F4(汎用コンピュータ向けキーボード・マウスではなく、テンキーレベルの数種のボタン)、データ入出力I/F5、表示部6(数行の文字を表示可能な小型液晶パネル、タッチパネルを重畳させキー入力I/F4を兼ねることも多い)、ネットワーク通信部8(無線LAN機能)も小規模ながら重複して備えている。従って、3Dプリンタ7自体が外部記憶媒体やインターネット経由で立体物造形用データを直接受け取り、単独で立体物を造形する運用も可能になっている(特に民生用の3Dプリンタではこちらの実施形態の方が多い)。すなわち、図24に示した立体物造形用データ出力規制装置101および3Dプリンタ7を1つの筐体に収めて、“3Dプリンタ”という製品として流通することも多い。
特徴パラメータ算出装置102においては、CPU1が、記憶装置3に記憶されているプログラムを実行することにより、第2のポリゴン削減手段、特徴パラメータ算出手段、第2のポリゴン正規化手段、規制モデル送信手段が実現される。特徴パラメータ算出装置102で実現される第2のポリゴン削減手段、第2のポリゴン正規化手段は、立体物造形用データ出力規制装置100で実現されるポリゴン削減手段10、ポリゴン正規化手段20と同様の機能を有し、規制モデルのポリゴンを削減し、規制モデルの正規化を行う。特徴パラメータ算出手段は、立体物造形用データ出力規制装置100で実現されるポリゴン対応付け手段15における特徴パラメータ算出機能と同様の機能を有し、規制モデルの各ポリゴンについて特徴パラメータを算出する。規制モデル送信手段は、正規化された規制モデルを立体物造形用データ出力規制装置101に送信する。立体物造形用データ出力規制装置101では、ネットワーク通信部8が、特徴パラメータ算出装置102から規制モデルを受信すると、CPU1が所定のプログラムを実行して規制モデル登録手段として機能し、受信した規制モデルを記憶装置3で実現される規制モデルデータベース50に登録する。
<5.ポリゴン対応付け事例>
図25〜図28に、本実施形態に係る立体物造形用データ出力規制装置によりポリゴン対応付け処理(ステップS200)を施した事例を示す。図25〜図28のいずれにおいても、左側に規制モデル、右側に対象モデルを示している。規制モデルは、単一の物品を表現したものであり、対象モデルは複数の物品により構成されたものとなっている。図25と図26は、第1の事例について、規制モデル、対象モデルともに同じものを、視点を変えて表現している。図25は、XYZのいずれの軸とも平行でない位置から見た斜視図であり、図26は、視点をXZ平面とした図である。図25、図26で表現したポリゴンモデル同士を上記実施形態と同様に実施すると、形状相違度平均D/Mは0.000000となり、判定しきい値Ds(0.01)より小さいため、適合判定がなされる。
図27と図28は、第2の事例について、規制モデル、対象モデルともに同じものを、視点を変えて表現している。図27は、XYZのいずれの軸とも平行でない位置から見た斜視図であり、図28は、視点をXZ平面とした図である。図27、図28で表現したポリゴンモデル同士を上記実施形態と同様に実施すると、形状相違度平均D/Mは0.094218となり、判定しきい値Ds(0.01)以上であるため、不適合判定がなされる。
<6.変形例等>
以上、本発明の好適な実施形態について説明したが、本発明は上記実施形態に限定されず、種々の変形が可能である。例えば、上記実施形態では、処理対象のポリゴンを三角形としたが、四角形以上の多角形であってもよい。
また、上記実施形態では、ポリゴンモデル照合手段30は、総面積に基づく照合処理、体積に基づく照合処理、座標値に基づく照合処理の3つの照合処理を行うようにしたが、上記3つの照合処理のうち、1つまたは2つの照合処理を実行するようにしてもよい。
また、上記実施形態では、ポリゴン正規化手段20は、主軸をZ軸に合わせ、副軸をY軸に合わせて回転するようにしたが、主軸、副軸をそれぞれ異なる軸に合わせるのであれば、主軸をX軸またはY軸に合わせもよいし、副軸をX軸またはZ軸に合わせもよい。
また、上記実施形態では、ポリゴン削減手段10、ポリゴン正規化手段20、ポリゴンモデル照合手段30を用いたが、ポリゴン対応付け手段15による精度が高い場合には、これらの手段を必ずしも用いる必要はない。
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・・・ポリゴン削減手段
15・・・ポリゴン対応付け手段
20・・・ポリゴン正規化手段
30・・・ポリゴンモデル照合手段
35・・・出力適否判定手段
40・・・対象モデル記憶手段
50・・・規制モデルデータベース
100、101・・・立体物造形用データ出力規制装置
102・・・特徴パラメータ算出装置

Claims (15)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014093945A JP6369116B2 (ja) 2014-04-30 2014-04-30 立体物造形用データ出力規制装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014093945A JP6369116B2 (ja) 2014-04-30 2014-04-30 立体物造形用データ出力規制装置

Publications (2)

Publication Number Publication Date
JP2015210783A JP2015210783A (ja) 2015-11-24
JP6369116B2 true JP6369116B2 (ja) 2018-08-08

Family

ID=54612883

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014093945A Active JP6369116B2 (ja) 2014-04-30 2014-04-30 立体物造形用データ出力規制装置

Country Status (1)

Country Link
JP (1) JP6369116B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101746331B1 (ko) * 2016-02-25 2017-06-12 한국해양대학교 산학협력단 해양플랜트 3차원 파이프 모델의 중복 면 제거 방법 및 시스템

Family Cites Families (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次元モデルデータベース登録システム
JP2002288687A (ja) * 2001-03-22 2002-10-04 Olympus Optical Co Ltd 特徴量算出装置および方法
EP2701090A1 (en) * 2012-08-22 2014-02-26 Aahlstö OÜ Method and system for enforcing 3D restricted rights in a rapid manufacturing and prototyping environment

Also Published As

Publication number Publication date
JP2015210783A (ja) 2015-11-24

Similar Documents

Publication Publication Date Title
Rineau et al. A generic software design for Delaunay refinement meshing
Livesu et al. Polycut: Monotone graph-cuts for polycube base-complex construction
Floater et al. Surface parameterization: a tutorial and survey
US9619587B2 (en) Decomposition of 3D geometry into developable surface patches and 2D cut patterns
Sheffer et al. Robust spherical parameterization of triangular meshes
KR20050084991A (ko) 등각 구조에 의한 기하학적 표면의 분석 방법
Coelho et al. Intersecting and trimming parametric meshes on finite element shells
JP6318701B2 (ja) 立体物造形用データ出力規制装置
Wu et al. Piecewise Linear Approximation of Signed Distance Fields.
CN113570634B (zh) 对象三维重建方法、装置、电子设备及存储介质
JP6375768B2 (ja) 立体物造形用データ出力規制装置
US20120320054A1 (en) Apparatus, System, and Method for 3D Patch Compression
JP6369116B2 (ja) 立体物造形用データ出力規制装置
JP2019526111A5 (ja)
JP6369117B2 (ja) 立体物造形用データ出力規制装置
JP6557988B2 (ja) 立体物造形用データ出力規制装置
JP6540238B2 (ja) 立体物造形用データ出力規制装置
JP6409513B2 (ja) 立体物造形用データ出力規制装置
JP2019018446A (ja) 立体物造形用データ出力規制装置
JP2015208982A (ja) 立体物造形用データ出力規制装置
JP6451932B2 (ja) 立体物造形用データ出力規制装置
JP6638341B2 (ja) 立体物造形用データ出力規制装置
Krahnstoever et al. Computing curvature-adaptive surface triangulations of three-dimensional image data
Liu et al. Orientation field guided texture synthesis
JP2016215598A (ja) 立体物造形用データ出力規制装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180403

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180525

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: 20180612

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180625

R150 Certificate of patent or registration of utility model

Ref document number: 6369116

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150