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

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

Info

Publication number
JP6369117B2
JP6369117B2 JP2014094084A JP2014094084A JP6369117B2 JP 6369117 B2 JP6369117 B2 JP 6369117B2 JP 2014094084 A JP2014094084 A JP 2014094084A JP 2014094084 A JP2014094084 A JP 2014094084A JP 6369117 B2 JP6369117 B2 JP 6369117B2
Authority
JP
Japan
Prior art keywords
model
polygon
target model
partial target
axis
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
JP2014094084A
Other languages
English (en)
Other versions
JP2015210789A (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 JP2014094084A priority Critical patent/JP6369117B2/ja
Publication of JP2015210789A publication Critical patent/JP2015210789A/ja
Application granted granted Critical
Publication of JP6369117B2 publication Critical patent/JP6369117B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

本発明は、立体物を表すデータを基に、樹脂等を加工して立体物を造形する3Dプリンタ等の立体物造形装置の利用に際して、立体物造形装置からの出力に不適切なものを判別するための技術に関する。
近年、立体物を表すデータを基に、樹脂や石膏等を加工して造形する3Dプリンタが立体物造形装置として普及してきている。3Dプリンタの医療応用として、医療診断で撮影されるCT/MRI画像(DICOM形式3次元ボクセルデータ)を基に3Dプリンタ出力用モデリングデータを作成し、手術シミュレーション・医学教育・インフォームドコンセント向けの臓器模型を出力したり、体内埋め込み用の人工臓器(血管、骨、関節など)を作成したりする試みが始まっている。
3Dプリンタには、インターネットを介して情報だけでなく、モノを遠隔地に間接的に伝搬できる革新性を備えている。そのため、これまで税関で規制されていた銃砲・刀剣などの危険物がデータ形態で国境を越えて流布され、3Dプリンタによりモノとして容易に入手可能になるという問題が発生している。
具体的には、あるWEBサイトにて3Dプリンタを用いて所定のモデルの拳銃を製造できるSTL(Standard Triangulated Language)が無償で公開されている。金属製に比べて射程距離などは多少劣るが、3Dプリンタで作成された弾丸でも殺傷能力はそれなりにある。更に、現状の3Dプリンタで造形可能な材料は樹脂・石膏に限定され、金属が使用できないという欠点が裏目に出て、空港の金属探知機で見逃されるという問題も指摘されている。今後、民生用の3Dプリンタが普及するにあたり、3Dプリンタ側に投入される出力データの形状認証と危険物の出力規制などのセキュリティ機能をもたせることが求められる。
これに対して、ウィルス対策ツールと類似した手法で出力可否判定を行うシステムを構築する方法が考えられ、その実現にあたり、ポリゴン照合技術が必要になるが、ポリゴン照合には、従来より次の問題が知られている。3Dプリンタ出力用のポリゴンデータ(STL形式など)では、三次元座標値が絶対寸法でないためスケールがまちまちで、座標原点やアングルも使用されるCADや出力予定のプリンタの特性に合せて種々に設定される。そのため、たとえソースが同一の3Dモデルであっても、ポリゴンデータの作成方法が異なると、表現される総ポリゴン数も変化し、ポリゴンデータの座標値比較で同一性を判定することは一般に難しい。
そこで、特許文献1のように、重心からの慣性モーメントなど特徴パラメータによるアングル・スケールに依存しない比較手法が提案されている。また、特許文献2では、ポリゴンモデルの重心からの距離分布や隣接面とのクリーズ角などの特徴量を抽出してアングル・スケールに依存しない比較を行う手法が提案されている。特許文献3では、三次元モデルを複数アングルに2次元投影した画像に対してフーリエ変換を行い特徴抽出して比較する手法が提案されている。
特許第3610270号公報 特開2000−222428号公報 特許第5024767号公報
上記従来の技術は、いずれも類似形状検索の用途であり、検索されたデータを採択するか否かは人間の判断に委ねられている。人間による判断を加えない場合、これらの既存手法を適用してしまうと精度が粗すぎて、過剰に出力拒否判定をされてしまうという問題が発生する。また、データベースに出力規制すべき部品のみが登録されている場合、出力対象がその部品を含む複数の部品で構成されていると、全体形状が異なるため、出力規制されないという問題もある。
そこで、本発明は、複数の部品で構成されている物品を表現したポリゴンモデルに対しても、人間による判断を行わず、的確にその出力規制を行うことが可能な立体物造形用データ出力規制装置を提供することを課題とする。
上記課題を解決するため、本発明第1の態様では、ポリゴンの集合として表現されたポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきか否かを判定する装置であって、出力を規制すべきポリゴンモデルである規制モデルが登録された規制モデルデータベースと、出力対象のポリゴンモデルである対象モデルを複数の部分対象モデルに分割する対象モデル分割手段と、前記分割された部分対象モデルに対して、当該部分対象モデルの基準点が三次元座標の原点になるように前記部分対象モデルを移動させ、前記基準点から所定の基準に従って算出される距離が所定の長さになるように前記部分対象モデルをスケーリング調整し、ポリゴンの配置関係により定まる方向が所定の方向に一致するように前記部分対象モデルを回転させることにより、所定の位置、スケール、傾きに正規化された部分対象モデルを作成するポリゴン正規化手段と、前記正規化された部分対象モデルを前記規制モデルデータベースに登録されている規制モデルと照合し、出力を規制すべきか否かを判定するポリゴンモデル照合手段と、を備えることを特徴とする立体物造形用データ出力規制装置を提供する。
本発明第1の態様によれば、規制モデルが登録された規制モデルデータベースを備え、対象モデルを複数の部分対象モデルに分割し、分割された部分対象モデルに対して、部分対象モデルの基準点が三次元座標の原点になるように部分対象モデルを移動させ、基準点から所定の基準に従って算出される距離が所定の長さになるように部分対象モデルをスケーリング調整し、ポリゴンの配置関係により定まる方向が所定の方向(例えばZ軸)に一致するように部分対象モデルを回転させることにより、所定の位置、スケール、傾きに正規化された部分対象モデルを作成し、正規化された部分対象モデルを規制モデルデータベースに登録されている規制モデルと照合し、出力を規制すべきか否かを判定するようにしたので、複数の部品で構成されている物品に対しても、ウィルス対策ツールと類似した手法でパターンファイル(規制モデルデータベース)を構築し、3Dプリンタ等の立体物造形装置に出力予定のポリゴンモデルに対してブラックリスト(規制モデルデータベース)に登録されている各ポリゴンモデルと照合し、出力可否判定を行うことが可能となる。このため、立体物造形装置に出力予定のポリゴンモデルのスケールまたはアングルが規制モデルデータベースに登録されている規制モデルのものと異なっていても、適切か否かの判断を行うことができ、複数の部品で構成されている物品を表現したポリゴンモデルに対しても、人間による判断を行わず、的確にポリゴンモデルの出力規制を行うことが可能となる。
また、本発明第2の態様では、前記ポリゴンは三角形であり、前記対象モデル分割手段は、あるポリゴンと、当該ポリゴンと辺を共有する3つの隣接ポリゴンが、同一の部分対象モデルに属するように、分割することを特徴とする。
本発明第2の態様によれば、ポリゴンが三角形であり、あるポリゴンと、そのポリゴンと辺を共有する3つの隣接ポリゴンが、同一の部分対象モデルに属するように分割するようにしたので、複数の部品で構成される物品を表現した対象モデルを、迅速かつ的確に複数の部分対象モデルに分割することが可能となる。
また、本発明第3の態様では、前記ポリゴン正規化手段は、前記基準点から所定の基準に従って算出される距離として、前記基準点から前記分割された部分対象モデルに含まれる最も遠いポリゴンまでの最長距離を算出し、前記ポリゴンの配置関係により定まる方向として前記最長距離の方向を用いることを特徴とする。
本発明第3の態様によれば、基準点から所定の基準に従って算出される距離として、基準点から分割された部分対象モデルに含まれる最も遠いポリゴンまでの最長距離を算出し、ポリゴンの配置関係により定まる方向として最長距離の方向を用いるようにしたので、装飾や変形が加えられていない分割された部分対象モデルの形状を表現したポリゴンモデルと規制モデルデータベースに登録されているポリゴンモデルとの照合を可能にする。
また、本発明第4の態様では、前記ポリゴン正規化手段は、前記基準点から前記分割された部分対象モデルに含まれる最も遠いポリゴンまでの最長距離方向を、前記所定の方向として事前に設定された第1の軸(例えばZ軸)の正または負の一方の特定方向に一致させるため、前記第1の軸(例えばZ軸)と第2の軸(例えばX軸)で形成される(XZ)2次元座標系に投影された前記基準点から最も遠いポリゴンまでの最長距離方向が前記第1の軸(例えばZ軸)の前記特定方向に一致するように前記部分対象モデルを回転させた後に、前記第1の軸(例えばZ軸)と第3の軸(例えばY軸)で形成される(YZ)2次元座標系に投影された前記基準点から最も遠いポリゴンまでの最長距離方向が前記第1の軸(例えばZ軸)の前記特定方向に一致するように前記部分対象モデルを回転させるようにしていることを特徴とする
本発明第4の態様によれば、基準点から分割された部分対象モデルに含まれる最も遠いポリゴンまでの最長距離方向を、第1の軸(例えばZ軸)の特定方向に一致させるため、第1の軸(例えばZ軸)と第2の軸(例えばX軸)で形成される(XZ)2次元座標系に投影された基準点から最も遠いポリゴンまでの最長距離方向が第1の軸(例えばZ軸)の特定方向に一致するように部分対象モデルを回転させた後に、第1の軸(例えばZ軸)と第3の軸(例えばY軸)で形成される(YZ)2次元座標系に投影された基準点から最も遠いポリゴンまでの最長距離方向が第1の軸(例えばZ軸)の特定方向に一致するように部分対象モデルを回転させるようにしたので、立体物造形装置に出力予定の対象モデルが分割された部分対象モデルおよび規制モデルデータベースに登録されている規制モデルに対して、各々少なくとも立体物の長手方向のアングルを揃えた上で照合を行うことが可能となる。
また、本発明第5の態様では、前記ポリゴン正規化手段は、前記基準点から前記分割された部分対象モデルに含まれる最も遠いポリゴンまでの最長距離方向が前記第1の軸(例えばZ軸)の前記特定方向に一致するように前記部分対象モデルを回転させた後に、前記第2の軸(例えばX軸)と前記第3の軸(例えばY軸)で形成される(XY)2次元座標系に投影された基準点から最も遠いポリゴンまでの最長距離方向が前記第3の軸(例えばY軸)の前記特定方向に一致するように前記部分対象モデルを更に回転させるようにしていることを特徴とする。
本発明第5の態様によれば、基準点から分割された部分対象モデルに含まれる最も遠いポリゴンまでの最長距離方向が第1の軸(例えばZ軸)の特定方向に一致するように部分対象モデルを回転させた後に、第2の軸(例えばX軸)と第3の軸(例えばY軸)で形成される(XY)2次元座標系に投影された基準点から最も遠いポリゴンまでの最長距離方向が第3の軸(例えばY軸)の特定方向に一致するように部分対象モデルを更に回転させるようにしたので、立体物造形装置に出力予定の対象モデルが分割された部分対象モデルおよび規制モデルデータベースに登録されている規制モデルに対して、各々アングルを完全に一致させて上で照合を行うことが可能となる。
また、本発明第6の態様では、前記ポリゴン正規化手段は、前記基準点から所定の基準に従って算出される距離として、前記基準点から前記分割された部分対象モデルに含まれるポリゴンまでの平均距離を算出し、前記ポリゴンの配置関係により定まる方向として、3つの直交軸のいずれかの軸のうちポリゴン分布が最も広範な方向を用いることを特徴とする。
本発明第6の態様によれば、基準点から所定の基準に従って算出される距離として、前記基準点から前記分割された部分対象モデルに含まれるポリゴンまでの平均距離を算出し、前記ポリゴンの配置関係により定まる方向として、3つの直交軸のいずれかの軸のうちポリゴン分布が最も広範な方向を用いるようにしたので、多少の装飾や変形が加えられた分割された部分対象モデルの形状を表現したポリゴンモデルと規制モデルデータベースに登録されているポリゴンモデルとの照合を可能にする。
また、本発明第7の態様では、前記ポリゴン正規化手段は、3つの直交軸(XYZ軸)のいずれかの軸の正負計6方向のうち前記分割された部分対象モデルに含まれるポリゴン分布が最も広範な方向が、前記所定の方向として事前に設定された第1の軸(例えばZ軸)の正または負の一方の特定方向に一致するように前記部分対象モデルを回転させるようにしていることを特徴とする。
本発明第7の態様によれば、3つの直交軸(XYZ軸)のいずれかの軸の正負計6方向のうち、分割された部分対象モデルに含まれるポリゴン分布が最も広範な方向が、事前に設定された第1の軸(例えばZ軸)の正または負の一方の特定方向に一致するように部分対象モデルを回転させるようにしたので、立体物造形装置に出力予定の対象モデルが分割された部分対象モデルの形状を表現したポリゴンモデルが、規制モデルデータベースに登録されている規制モデルに対して、多少の装飾や変形が加わっても、それらの影響を受けずに少なくとも立体物のポリゴン分布が最も広範なアングルを一意的に揃えた上で照合を行うことが可能となる。3つの直交軸(XYZ軸)のいずれかの軸の正負計6方向のうち選定されたポリゴン分布が最も広範な方向を3つの直交軸のいずれかの軸から第1の軸(例えばZ軸)の正または負の一方の特定方向に一致するように回転させる操作は、90度単位に回転を行うように制限を設けたことになる。これにより、多少の装飾や変形が加わっても90度単位で回転角が大幅にずれる可能性は少なく、一意の方向に回転させることが可能になる。通常、ポリゴンモデルは、3つの直交軸のいずれか基準として作成されるため、表示や出力上の都合により、たとえアングル変更が行われても、3つの直交軸とは別の斜めの方向にアングル変更が行われる可能性は極めて低い。そのため、XYZ3つの直交軸のいずれかのうちポリゴン分布が最も広範な軸を、XYZいずれかの軸に一致するように、部分対象モデルを90度単位で回転させるような限定を加えても実用上は支障ない。
また、本発明第8の態様では、前記ポリゴン正規化手段は、3つの直交軸(XYZ軸)のいずれかの軸の正負計6方向のうち前記分割された部分対象モデルに含まれるポリゴン分布が最も広範な方向が、前記第1の軸(例えばZ軸)の前記特定方向に一致するように前記部分対象モデルを回転させた後に、前記第2の軸(例えばX軸)と前記第3の軸(例えばY軸)で形成される二次元座標系に投影された基準点から、前記第2の軸および前記第3の軸の正負計4方向のうちポリゴン分布が最も広範な方向が前記第3の軸の正または負の一方の特定方向に一致するように前記部分対象モデルを更に回転させるようにしていることを特徴とする。
本発明第8の態様によれば、3つの直交軸(XYZ軸)のいずれかの軸のうちポリゴン分布が分割された部分対象モデルに含まれる最も広範な軸の正負計6方向のいずれかの方向が、第1の軸(例えばZ軸)の特定方向に一致するように部分対象モデルを回転させた後に、第2の軸(例えばX軸)と第3の軸(例えばY軸)で形成される(XY)2次元座標系に投影された基準点から、第2の軸および第3の軸の正負計4方向のいずれかの方向のうちポリゴン分布が最も広範な方向が第3の軸の正または負の一方の特定方向に一致するように部分対象モデルを更に90度単位で回転させるようにしたので、立体物造形装置に出力予定の対象モデルが分割された部分対象モデルおよび規制モデルデータベースに登録されている規制モデルに対して、各々アングルを一意な方向に一致させて上で照合を行うことが可能となる。
また、本発明第9の態様では、前記対象モデルに含まれるポリゴンの数が所定の値以下になるようにポリゴンを削減するポリゴン削減手段を更に有し、ポリゴンが削減された対象モデルに対して、前記対象モデル分割手段が分割処理を行うことを特徴とする。
本発明第9の態様によれば、対象モデルに含まれるポリゴンの数が所定の値以下になるようにポリゴンを削減し、ポリゴンが削減された対象モデルを複数の部分対象モデルに分割するようにしたので、規制モデルとの照合のために重要でないポリゴンを事前に削除しておくことにより、効率的に部分対象モデルへの分割を行うことが可能となる上、更に、ポリゴン数が削減された部分対象モデルを用いて規制モデルと高速に照合することが可能となる。
また、本発明第10の態様では、前記部分対象モデルの基準点は、前記部分対象モデルに含まれる各ポリゴンの頂点座標の平均であるポリゴン平均座標を、前記部分対象モデルに含まれるポリゴンについて算出した平均値として与えられるものであることを特徴とする。
本発明第10の態様によれば、部分対象モデルの基準点は、部分対象モデルに含まれる各ポリゴンの頂点座標の平均であるポリゴン平均座標を、部分対象モデルに含まれるポリゴンについて算出した平均値として与えられるようにしたので、対象モデルが複数の部分対象モデルで構成される複合モデルの場合、対象モデル全体の基準点が規制モデルデータベースに登録されている規制モデルの基準点と全く異なっていても、適切な照合を行うことができ、部分対象モデルの重心に近い位置を基準点として規制モデルデータベースに登録されている規制モデルの重心に近い位置に補正を施し、適正に照合することが可能となる。
また、本発明第11の態様では、前記ポリゴン照合手段は、角度(アングル)に依存しない角度非依存照合処理と、角度に依存する角度依存照合処理を行う2種の処理から構成され、前記角度非依存照合処理で適合した場合のみ、前記角度依存照合処理を実行するようにしていることを特徴とする。
本発明第11の態様によれば、ポリゴン照合として、はじめに角度(アングル)に依存しない角度非依存照合処理を行い、角度非依存照合処理で適合(類似)した場合のみ、角度依存照合処理を実行するようにしたので、大きく異なるモデルについては、少ない処理負荷で迅速に非類似と判定することができ、全体として効率的な判定が可能となる。
また、本発明第12の態様では、前記ポリゴン照合手段は、前記角度非依存照合処理として、前記部分対象モデルを構成するポリゴンの面積の総和値と、前記規制モデルを構成するポリゴンの面積の総和値を算出し、2つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合判定するようにしていることを特徴とする。
本発明第12の態様によれば、角度非依存照合処理として、部分対象モデルを構成するポリゴンの面積の総和値と、規制モデルを構成するポリゴンの面積の総和値を算出し、2つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合(類似)判定するようにしたので、比較的簡易な演算によりしきい値と比較する値を算出することができ、迅速な適否判定が可能となる。
また、本発明第13の態様では、前記ポリゴン照合手段は、前記角度非依存照合処理として、前記部分対象モデルを構成するポリゴンを底面として前記基準点を頂点とする角錐の体積の総和値と、前記規制モデルを構成するポリゴンを底面として前記基準点を頂点とする角錐の体積の総和値を算出し、2つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合(類似)判定するようにしていることを特徴とする。
本発明第13の態様によれば、角度非依存照合処理として、部分対象モデルを構成するポリゴンを底面として基準点を頂点とする角錐の体積の総和値と、規制モデルを構成するポリゴンを底面として基準点を頂点とする角錐の体積の総和値を算出し、2つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合(類似)判定するようにしたので、比較的簡易な演算によりしきい値と比較する値を算出することができ、迅速な適否判定が可能となる。
また、本発明第14の態様では、前記ポリゴン照合手段は、前記角度非依存照合処理として、前記部分対象モデルを構成するポリゴンの面積の総和値と、前記規制モデルを構成するポリゴンの面積の総和値を算出し、2つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合(類似)判定し、適合判定された場合のみ、前記部分対象モデルを構成するポリゴンを底面として前記基準点を頂点とする角錐の体積の総和値と、前記規制モデルを構成するポリゴンを底面として前記基準点を頂点とする角錐の体積の総和値を算出し、2つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合(類似)判定するようにしていることを特徴とする。
本発明第14の態様によれば、角度非依存照合処理として、部分対象モデルを構成するポリゴンの面積の総和値と、規制モデルを構成するポリゴンの面積の総和値を算出し、2つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合(類似)判定し、適合判定された場合のみ、部分対象モデルを構成するポリゴンを底面として基準点を頂点とする角錐の体積の総和値と、規制モデルを構成するポリゴンを底面として基準点を頂点とする角錐の体積の総和値を算出し、2つの総和値の差分の絶対値が所定のしきい値より小さい場合に適合(類似)判定するようにしたので、迅速かつ確実にしきい値と比較する値を算出することができ、迅速な適否判定が可能となる。
また、本発明第15の態様では、前記ポリゴン照合手段は、前記角度依存照合処理として、前記部分対象モデル、前記規制モデルそれぞれについて、構成するポリゴンの頂点座標の平均であるポリゴン平均座標が最も近いポリゴン同士でポリゴン平均座標間の距離を算出し、ポリゴン平均座標間の距離の総和値を算出し、前記2つのモデルの総和値の平均値が所定のしきい値より小さい場合に適合(類似)判定するようにしていることを特徴とする。
本発明第15の態様によれば、角度依存照合処理として、部分対象モデル、規制モデルそれぞれについて、構成するポリゴンの頂点座標の平均であるポリゴン平均座標が最も近いポリゴン同士でポリゴン平均座標間の距離を算出し、ポリゴン平均座標間の距離の総和値を算出し、2つのモデルの総和値の平均値が所定のしきい値より小さい場合に適合(類似)判定するようにしたので、簡易な角度非依存照合で類似と判定されたモデルに対して再判定を行い、規制する必要のないポリゴンモデルを誤って規制することがないように判定精度を上げることが可能となる。規制すべきポリゴンモデルに対して見逃して出力を許可してしまう場合は、少なくともユーザからのクレームは起こらないが、その逆の場合は、ユーザからのクレーム発生につながり本技術を搭載した3Dプリンタ装置に対する信頼性も失われる。本発明第15の態様によれば、そのような信頼の失墜を防ぐことに貢献できる。
また、本発明第16の態様では、前記ポリゴン照合手段は、前記角度依存照合処理として、前記部分対象モデル、前記規制モデルそれぞれについて、構成するポリゴンの頂点座標の平均であるポリゴン平均座標が最も近いポリゴン同士で、対応する頂点間の距離を算出し、当該距離の全ポリゴンについての総和値を算出し、前記2つのモデルの総和値の平均値が所定のしきい値より小さい場合に適合(類似)判定するようにしていることを特徴とする
本発明第16の態様によれば、角度依存照合処理として、部分対象モデル、規制モデルそれぞれについて、構成するポリゴンの頂点座標の平均であるポリゴン平均座標が最も近いポリゴン同士で、対応する頂点間の距離を算出し、距離の全ポリゴンについての総和値を算出し、2つのモデルの総和値の平均値が所定のしきい値より小さい場合に適合(類似)判定するようにしたので、簡易な角度非依存照合で類似と判定されたモデルに対して再判定を行い、規制する必要のないポリゴンモデルを誤って規制することがないように本発明第15の態様より更に判定精度を上げることが可能となる。
また、本発明第17の態様では、前記規制モデルに対して、当該規制モデルの基準点が三次元座標の原点になるように前記規制モデルを移動させ、前記基準点から所定の基準に従って算出される距離が所定の長さになるように前記規制モデルをスケーリング調整し、ポリゴンの配置関係により定まる方向が所定の方向(例えばZ軸)に一致するように前記規制モデルを回転させることにより、所定の位置、スケール、傾きに正規化された規制モデルを作成する規制モデル正規化装置により正規化された規制モデルを受信し、受信した規制モデルを前記規制モデルデータベースに登録する規制モデル登録手段を更に有することを特徴とする。
本発明第17の態様によれば、規制モデルに対して、規制モデルの基準点が三次元座標の原点になるように規制モデルを移動させ、基準点から所定の基準に従って算出される距離が所定の長さになるように規制モデルをスケーリング調整し、ポリゴンの配置関係により定まる方向が所定の方向に一致するように規制モデルを回転させることにより、所定の位置、スケール、傾きに正規化された規制モデルを作成する規制モデル正規化装置を別途用意し、この規制モデル正規化装置から正規化された規制モデルを受信し、受信した規制モデルを規制モデルデータベースに登録するようにしたので、規制モデルデータベースの更新を遠隔地から迅速に行うことが可能となる。
また、本発明第18の態様では、前記対象モデル分割手段による分割前の対象モデルを、接続された立体物造形装置に出力する手段と、前記立体物造形装置による立体物の造形処理と並行して実行される前記ポリゴンモデル照合手段により、出力を規制すべきであると判定された場合に、前記立体物造形装置に、前記分割前の対象モデルの出力中止命令を出力する手段と、
を更に備えることを特徴とする。
本発明第18の態様によれば、分割前の対象モデルを、接続された立体物造形装置に出力し、並行して実行されるポリゴンモデル照合手段による照合の結果、出力を規制すべきであると判定された場合に、立体物造形装置に、分割前の対象モデルの出力中止命令を出力するようにしたので、時間のかかる立体物の造形を遅延させることなく、出力不適の場合にのみ、出力を中止することが可能となる。
本発明によれば、複数の部品で構成されている物品を表現したポリゴンモデルに対しても、人間による判断を行わず、的確にその出力規制を行うことが可能となる。
本発明の一実施形態に係る立体物造形用データ出力規制装置100を含む立体物造形システムのハードウェア構成図である。 本発明の一実施形態に係る立体物造形用データ出力規制装置の構成を示す機能ブロック図である。 本発明の一実施形態に係る立体物造形用データ出力規制装置の処理概要を示すフローチャートである。 ポリゴン削除の基本原理を示す図である。 ポリゴン削減処理の詳細を示すフローチャートである。 対象モデル分割処理の詳細を示すフローチャートである。 第1の正規化手法によるポリゴン正規化処理の詳細を示すフローチャートである。 第1の正規化手法によるポリゴン正規化処理の概要を示す図である。 第2の正規化手法によるポリゴン正規化処理の詳細を示すフローチャートである。 第2の正規化手法によるポリゴン正規化処理の概要を示す図である。 ポリゴン照合処理の概要を示すフローチャートである。 総面積に基づくポリゴン照合処理の詳細を示すフローチャートである。 体積に基づくポリゴン照合処理の詳細を示すフローチャートである。 座標値に基づくポリゴン照合処理の詳細を示すフローチャートである。 変形例における立体物造形用データ出力規制装置のハードウェア構成図である。 正規化前のオリジナル(実際にはポリゴン削減後)のポリゴンモデルを示す図である。 本発明以外の他方式により複合モデルである対象モデル全体で正規化して、規制モデルと照合した例を示す図である。 本発明により部分対象モデルごとに正規化して、規制モデルと照合した例を示す図である。 正規化前のオリジナルのポリゴンモデルを示す図である。 本発明以外の他方式により複合モデルである対象モデル全体で正規化して、規制モデルと照合した例を示す図である 本発明により部分対象モデルごとに正規化して、規制モデルと照合した例を示す図である。
以下、本発明の好適な実施形態について図面を参照して詳細に説明する。
<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はポリゴンモデル照合手段、40は対象モデル記憶手段、50は規制モデルデータベースである。
ポリゴン削減手段10は、対象モデル記憶手段40に記憶されたポリゴンモデルである対象モデルを構成するポリゴンを削減する。対象モデル分割手段15は、ポリゴンが削減された対象モデルを複数の部分対象モデルに分割する。ポリゴン正規化手段20は、分割された部分対象モデルに対して、所定の位置、スケール、アングルに正規化する処理を行う。ポリゴンモデル照合手段30は、正規化後の対象モデルを、規制モデルデータベース50内のポリゴンモデルである各規制モデルと照合し、出力適否の判定を行う。
ポリゴン削減手段10、対象モデル分割手段15、ポリゴン正規化手段20、ポリゴンモデル照合手段30は、CPU1が、記憶装置3に記憶されているプログラムを実行することにより実現される。対象モデル記憶手段40は、出力適否の判定対象となるポリゴンモデルである対象モデルを記憶した記憶手段であり、記憶装置3により実現される。ポリゴンモデルとは、ポリゴンの集合により三次元空間における所定の立体形状を表現したデータであり、3Dプリンタ等の立体物造形装置に立体物造形用データとして出力されるものである。本実施形態では、ポリゴンモデルのデータ形式としてSTL(Standard Triangulated Language)を採用している。規制モデルデータベース50は、規制対象となるポリゴンモデルである規制モデルを記憶してデータベース化したものであり、記憶装置3により実現される。
図2に示した各構成手段は、現実には図1に示したように、コンピュータおよびその周辺機器等のハードウェアに専用のプログラムを搭載することにより実現される。すなわち、コンピュータが、専用のプログラムに従って各手段の内容を実行することになる。なお、本明細書において、コンピュータとは、CPU等の演算処理部を有し、データ処理が可能な装置を意味し、パーソナルコンピュータなどの汎用コンピュータだけでなく、製品としての“3Dプリンタ”に組み込まれたボードコンピュータも含む。
図1に示した記憶装置3には、CPU1を動作させ、コンピュータを、立体物造形用データ出力規制装置として機能させるための専用のプログラムが実装されている。この専用のプログラムを実行することにより、CPU1は、ポリゴン削減手段10、対象モデル分割手段15、ポリゴン正規化手段20、ポリゴンモデル照合手段30としての機能を実現することになる。また、記憶装置3は、対象モデル記憶手段40、規制モデルデータベース50として機能するだけでなく、立体物造形用データ出力規制装置としての処理に必要な様々なデータを記憶する。
<2.処理動作>
<2.1.前処理>
次に、図1、図2に示した立体物造形用データ出力規制装置の処理動作について説明する。まず、規制モデルデータベース50に登録する対象となるポリゴンモデルである規制モデルを作製する。これは、規制対象となるポリゴンモデルである規制モデルについて、ポリゴンの削減、ポリゴンの正規化をすることにより行われる。この結果、規制モデルを構成するポリゴンの数が、所定数以下となり、正規化されて規制モデルデータベース50に登録される。規制モデルのポリゴンの削減、ポリゴンの正規化については、後述する立体物造形用データ出力規制装置における処理と同様に行うことができる。規制モデルのポリゴンの削減、ポリゴンの正規化は、立体物造形用データ出力規制装置で行ってもよいし、別のコンピュータで同様のプログラムを実行することにより行ってもよい。
<2.2.処理概要>
次に、図1、図2に示した立体物造形用データ出力規制装置の処理動作について説明する。図3は、本発明の一実施形態に係る立体物造形用データ出力規制装置の処理概要を示すフローチャートである。まず、ポリゴン削減手段10が、対象モデル記憶手段40から、適否判定対象のポリゴンモデルである対象モデルを読み込み、対象モデルを構成するポリゴンを削減する(ステップS100)。次に、ポリゴンが削減された対象モデルを複数の部分対象モデルに分割する(ステップS200)。続いて、分割された各部分対象モデルの正規化を行う(ステップS300)。そして、正規化された複数の部分対象モデルそれぞれと、規制モデルデータベース50に登録されたポリゴンモデルである規制モデルとの照合を行う(ステップS400)。
<2.3.ポリゴン削減処理>
次に、ステップS100におけるポリゴン削減手段10によるポリゴン削減処理について説明する。図4は、ポリゴン削除の基本原理を示す図である。サーフェースデータは、現実には、空間における三次元の値をもつポリゴン群であるが、図4の例では、説明の便宜上、二次元の値をもつポリゴン群を示している。図4(a)の例では、削除前、18個のポリゴンからなるポリゴン群を示している。
図5は、ポリゴン削減手段10によるポリゴン削減処理の詳細を示すフローチャートである。まず、ポリゴン削減手段10は、サーフェースデータを構成する全ポリゴンを対象として、各ポリゴンの面積および周長を算出する(ステップS11)。次に、ポリゴン削減手段10は、算出された面積と周長を乗じた値が最小となるポリゴンを削除対象ポリゴンとして選定する(ステップS12)。図4の例では、図4(b)に示すように、3個の頂点E、J、Kで構成されるポリゴンEJKが削除対象ポリゴンとして選定される。
続いて、ポリゴン削減手段10は、削除対象ポリゴンの3辺のうち最短の1辺を削除対象辺として選定し、選定した削除対象辺の中点を算出する(ステップS13)。図4の例では、図4(c)に示すように、削除対象ポリゴンEJKの辺JKが削除対象辺として選定される。さらに、辺JKの中点Oが算出される。
次に、ポリゴン削減手段10は、削除対象ポリゴンを削除する(ステップS14)。これによりポリゴン数が1つ削減されることになる。次に、ポリゴン削減手段10は、削除対象ポリゴンの削除対象辺と頂点を共有していた削除頂点共有ポリゴンを順次選定する(ステップS15)。削除対象ポリゴンの削除対象辺と2頂点を共有(すなわち辺を共有)している削除頂点共有ポリゴンが選定された場合には、ポリゴン削減手段10は、その削除頂点共有ポリゴンを削除する(ステップS16)。図4の例では、3個の頂点J、K、Nで構成されるポリゴンJKNが削除される。これによりさらにポリゴン数が1つ削減されることになる。削除対象ポリゴンの削除対象辺と1頂点を共有している削除頂点共有ポリゴンが選定された場合には、ポリゴン削減手段10は、共有頂点をステップS13で算出された中点に補正し、面積および周長を再算出する(ステップS17)。図4の例では、図4(c)と図4(d)を比較するとわかるように、ポリゴンEHJ→ポリゴンEHO、ポリゴンEFK→ポリゴンEFO、ポリゴンHJM→ポリゴンHOM、ポリゴンJMN→ポリゴンOMN、ポリゴンFKN→ポリゴンFONに変更される。この結果、図4の例では、図4(a)の時点では、18個あったポリゴンが、図4(d)の時点では、16個に削減される。
ステップS15〜ステップS17の処理を終えたら、ポリゴン削減手段10は、削減後の全ポリゴン数が、設定された目標値以下となっているか否かを判定する(ステップS18)。目標値としては、事前に任意の値を設定することができる。判定の結果、全ポリゴン数が目標値以下となっていない場合は、ステップS12に戻って、ポリゴン削減手段10は、残っているポリゴンの中から、面積と周長を乗じた値が最小となるポリゴンを削除対象ポリゴンとして選定する。ステップS18における判定の結果、全ポリゴン数が目標値以下である場合は、ポリゴン削減処理を終了する。図5のフローチャートに従った処理を実行することにより、設定された目標値以下になるように、ポリゴン数が削減されることになる。
<2.4.対象モデル分割処理>
次に、ステップS200の対象モデル分割処理について説明する。図6は、対象モデル分割手段15による対象モデル分割処理の詳細を示すフローチャートである。対象モデル分割手段10は、まず、初期設定を行う(ステップS21)。具体的には、読み込んだ対象モデルのポリゴン集合を構成するポリゴン数P、ポリゴンを特定する変数p(p=0,・・・,P−1)、探索ステータスS(p)、グループ属性G(p)、グループを特定する変数g、探索ステータス示す変数sを設定する。探索ステータスS(p)は、0以上の整数値をとる。S(p)=0はポリゴンpがグループに未分類の状態、S(p)>0はS(p)回目に実行されるステップS22においてポリゴンpがグループ属性G(p)に分類された状態を示す。さらに、ステップS21においては、p=0,・・・,P−1の全てのpについてS(p)=G(p)=0、g=1、s=1と初期設定する。
次に、全ポリゴンより、S(p)=G(p)=0となるポリゴンpを1つ抽出する(ステップS22)。初期状態では、全てS(p)=G(p)=0であるので、初回は必ずp=0のポリゴンの抽出が行われる。ステップS22において、S(p)=G(p)=0となるポリゴンpが存在しない場合、すなわち、全てのp=0,・・・,P−1について、S(p)>0である場合、g−1個のグループに分離でき、対象モデルをg−1個の部分対象モデルに分割できたものとして対象モデル分割処理を終了する。なお、ステップS22において、S(p)<0である状態は存在しないため、S(p)は“0”か正の値のいずれかの状態である。S(p)=G(p)=0となるポリゴンpが抽出できた場合は、抽出したポリゴンpに対応する探索ステータスS(p)=s、グループ属性G(p)=gに設定する。さらに、更新をカウントする変数である更新カウンタc=0に設定する。
ステップS22において、S(p)=G(p)=0となるポリゴンpを1つ抽出し、抽出したポリゴンpに対応する探索ステータスS(p)=s、グループ属性G(p)=gに設定した場合は、全ポリゴンより、S(q)=sとなるポリゴンqを1つ抽出する(ステップS23)。qはポリゴンを特定する変数であり、ポリゴンpと同様、q=0,・・・,P−1内のいずれかの整数値をとる。S(q)=sとなるポリゴンqが複数存在する場合は、例えばqの値が最も小さいものを抽出する。
ステップS23において、S(q)=sとなるポリゴンqを1つ抽出した場合、全ポリゴンより、抽出されたポリゴンqと辺を共有する隣接ポリゴンr1、r2、r3の3つを探索の上、探索された3つの隣接ポリゴンr1、r2、r3の中でS(r)=G(r)=0を満たすポリゴンrに対して、それぞれ探索ステータスS(r)=s+1、グループ属性G(r)=gに設定し、併せてcの値をc=c+1と更新する(ステップS24)。rはr1、r2、r3のいずれかのポリゴンを特定する変数であり、ポリゴンp、qと同様、r=0,・・・,P−1内のいずれかの整数値をとる。“ポリゴンqと隣接ポリゴンrの辺を共有する”とは、ポリゴンqの2頂点とポリゴンrの2頂点が同一であることを意味する。すなわち、隣接ポリゴンrのいずれか1つの辺はポリゴンqのいずれか1つの辺と同一になる。本実施形態では、ポリゴンが三角形であるので、ポリゴンを構成する3つの辺に対して、各々1辺を共有する隣接ポリゴンは必ず3つ存在する。コンピュータグラフィックで画面表示する場合にはこの条件が満足されなくても支障ないが、3Dプリンタで出力する場合は、物理的に造形物を形成できなるため、この条件は必須要件になる(もし満足されない場合はエラー警告が出され、プリンタ出力が実行されないのが一般的である。)。抽出された3つの隣接ポリゴンの中で、S(r)=G(r)=0を満たすポリゴンrについては、それぞれ探索ステータスS(r)=s+1、グループ属性G(r)=g、c=c+1に設定する。
そして、ステップS23に戻って、全ポリゴンよりS(q)=sとなるポリゴンqが他にも存在する場合、更に1つ抽出し、同様にステップS24を実行する。即ち、ステップS23とステップS24の処理を繰り返すことにより、対象モデル中、S(q)=sとなるポリゴン全てについて、ステップS24の処理を実行する。ステップS23において、S(q)=sとなるポリゴンqが存在しない場合、すなわち、全てのS(q)=sとなるポリゴンqについて、3つの隣接ポリゴンを探索したら、探索ステータス示す変数sを1インクリメント(s←s+1)する(ステップS25)。
次に、更新カウンタc=0であるか否かを判定する(ステップS26)。判定の結果、c=0でない場合は、ステップS24においてポリゴンqと隣接する3つのポリゴンの中でS(r)=G(r)=0を満たすポリゴンrが少なくとも1つは存在していたことを意味するので、他にも同一のグループgに含めるべきグループ属性が未定義であるポリゴンpが存在しないか、ステップS22に戻って、全ポリゴンより、S(p)=G(p)=0となるポリゴンpを更に探索し、もし存在すれば1つ抽出し、抽出したポリゴンpに対応する探索ステータスS(p)=s、グループ属性G(p)=g、更新カウンタc=0に設定する。そして、上述のように、ステップS23およびステップS24の処理ループに進み全てのS(q)=sとなるポリゴンqについて3つの隣接ポリゴンを探索する処理を繰り返す。このようにして、ステップS22〜ステップS25の処理を繰り返して実行し、ステップS26における判定の結果、更新カウンタc=0である場合、即ちステップS24においてポリゴンqと隣接する3つのポリゴンのいずれもが既に同一のグループgに設定され、グループgに含めるべきS(r)=G(r)=0を満たすグループ属性が未定義ポリゴンrが全く存在しない場合はグループgへの分類は終了したとみなし、次のグループg+1への分類に移行するため、グループを特定する変数gを1インクリメント(g←g+1)する(ステップS27)。そしてステップS22に戻り、新たなグループgへの分類を同様に行う。もし、ステップS22において、S(p)=G(p)=0となるグループ属性が未定義のポリゴンpが見つからなかった場合、全P個のポリゴンのグループ属性はいずれかの値に設定されていることから、分類処理が終了したとみなすことができる。その際、ステップS27で更新されたグループgはいずれのポリゴンのグループ属性として設定されていないことから、全P個のポリゴンはg−1個のグループに分類されたことになる。
図6のフローチャートに従った処理を実行することにより、全P個のポリゴンが、2頂点を共有して連結するポリゴン集合ごとにグループに分類される。この分類されたグループが、部分対象モデルとなる。図6の例では、対象モデルの各ポリゴンは、g−1個の部分対象モデルのいずれかに属することになる。この結果、対象モデルはg−1個の部分対象モデルに分割される。
<2.5.ポリゴン正規化処理>
次に、ステップS300のポリゴン正規化処理について説明する。ポリゴン正規化処理には、基準点と基準点から最も遠いポリゴンまでの最長距離を基準長とする第1の正規化手法、基準点とポリゴンまでの平均距離を基準長とする第2の正規化手法の2通りの手法がある。本ポリゴン正規化処理はステップS200において分割された複数の部分対象モデルより、1つずつ実行するとともに、規制モデルデータベース50にあらかじめ登録されている規制モデルに対しても事前にまたは照合時に実行される。その際、規制モデルに対して2種類の正規化手法のうち第1の正規化手法を適用して正規化処理を実行した場合は、部分対象モデルに対しても第1の正規化手法を適用する必要があり、規制モデルに対して第2の正規化手法を適用して正規化処理を実行した場合は、部分対象モデルに対しても第2の正規化手法を適用する必要がある。
<2.5.1.第1の正規化手法>
まず、第1の正規化手法について説明する。図7は、第1の正規化手法によるポリゴン正規化処理の詳細を示すフローチャートである。ここでは、ステップS200において分割された部分対象モデルのポリゴン数N、ポリゴンを特定する変数i(i=0,・・・,N−1)とし、各ポリゴンiの頂点を(Xp(i),Yp(i),Zp(i))と定義されたものとする。pは頂点番号を示しており、本実施形態では、ポリゴンが三角形であるため、p=0,1,2の3つの値をとる。
まず、ステップS200において分割された部分対象モデルにおける基準点を算出する(ステップS310)。具体的には、ポリゴンモデルを構成する各ポリゴンについて、頂点の平均となる平均点を算出し、ポリゴンモデルを構成するN個のポリゴンの平均点の平均値をポリゴンモデルの基準点として算出する。具体的には、まず、以下の〔数式1〕に従った処理を実行することにより、各ポリゴンの平均点(Xc(i),Yc(i),Zc(i))を算出する。
〔数式1〕
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
次に、以下の〔数式2〕に従った処理を実行することにより、ポリゴンモデルの基準点(Xg,Yg,Zg)を算出する。
〔数式2〕
Xg={Σi=0,N-1Xc(i)}/N
Yg={Σi=0,N-1Yc(i)}/N
Zg={Σi=0,N-1Zc(i)}/N
上記〔数式2〕において、Σの添え字の“i=0,N−1”は、iが0からN−1の全ての整数をとる場合について、総和を求めることを示している。以下の数式においても同様である。次に、部分対象モデルの主軸を求める(ステップS320)。具体的には、基準点(Xg,Yg,Zg)から各ポリゴンの平均点までの距離を算出し、そのうち最長である最長距離を主軸とする。具体的には、以下の〔数式3〕に従った処理を実行することにより、主軸の長さLmax(最長距離)を算出する。
〔数式3〕
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
上記〔数式3〕において、Maxの添え字の“i=0,N−1”は、iが0からN−1の全ての整数をとる場合における、最大値を選択することを示している。以下の数式においても同様である。また、“im”は、基準点との距離が最大となるポリゴン、すなわち基準点から最も遠いポリゴンである最遠ポリゴンのポリゴン番号を示している。次に、部分対象モデルの移動およびスケーリングを行う(ステップS330)。具体的には、基準点(Xg,Yg,Zg)が原点(0,0,0)となるように移動した後、スケーリングとして、主軸の長さが基準長になるように、サイズ変更を行う。図8は、ポリゴン正規化処理の概要を示す図である。図8において示した直方体は、部分対象モデルの一例である。図8(a)は、XYZの三次元空間において部分対象モデルの主軸が求められた状態を示している。ステップS330においては、以下の〔数式4〕に従った処理を実行することにより、各ポリゴンの頂点座標および平均点座標を補正する。
〔数式4〕
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
上記〔数式4〕は、上記基準長を“100”とした場合を示している。ステップS330の処理により、各ポリゴンiの頂点は、(Xp'(i),Yp'(i),Zp'(i))、各ポリゴンiの平均点は(Xc'(i),Yc'(i),Zc'(i))となる。また、部分対象モデルは、図8(b)に示すように、基準点が原点(0,0,0)と一致し、主軸の長さが基準長となる。
次に、XZ座標上で主軸をZ軸正方向に揃えるようにY軸中心回転を行う(ステップS340)。具体的には、まず、以下の〔数式5〕に従った処理を実行することにより、主軸とZ軸正方向との角度Ang、最遠ポリゴンの平均点Z座標Zc''(im)を求める。
〔数式5〕
Ang=−tan-1(Xc'(im)/Zc'(im))
Zc''(im)=cos(Ang)×Zc'(im)−sin(Ang)×Xc'(im)
さらに、Zc''(im)の値に応じて場合分けし、以下の〔数式6〕に従った処理を実行することにより、回転後の部分対象モデルを求める。
〔数式6〕
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の処理により、部分対象モデルは、図8(c)に示すように、主軸がXZ平面においてZ軸と重なるようになる。
次に、YZ座標上で主軸をZ軸正方向に揃えるようにX軸中心回転を行う(ステップS350)。具体的には、まず、以下の〔数式7〕に従った処理を実行することにより、主軸とZ軸正方向との角度Ang、最遠ポリゴンの平均点Z座標Zc'''(im)を求める。
〔数式7〕
Ang=−tan-1(Yc'(im)/Zc''(im))
Zc'''(im)=cos(Ang)×Zc''(im)−sin(Ang)×Yc'(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)×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の処理により、部分対象モデルは、図8(d)に示すように、主軸がYZ平面においてZ軸と重なるようになる。これにより、三次元空間において、部分対象モデルの主軸は、Z軸と重なることになる。本実施形態では、主軸をZ軸の正方向に重ねたが、負方向に重ねるようにしてもよい。
次に、部分対象モデルの副軸を求める(ステップS360)。具体的には、XZ平面上で原点(0,0,0)から各ポリゴンの平均点までの距離を算出し、そのうち最長である最長距離を副軸とする。具体的には、以下の〔数式9〕に従った処理を実行することにより、副軸の長さLmax2(最長距離)を算出する。
〔数式9〕
Lmax2=Maxi=0,N-1{(Xc''(i))2+(Yc(i)'')21/2
={(Xc''(im2))2+(Yc(im2)'')21/2
上記〔数式9〕において、“im2”は、XZ平面において基準点との距離が最大となるポリゴン、すなわち基準点から最も遠いポリゴンである最遠ポリゴンのポリゴン番号を示している。次に、XY座標上で副軸をY軸正方向に揃えるようにZ軸中心回転を行う(ステップS370)。具体的には、まず、以下の〔数式10〕に従った処理を実行することにより、副軸とZ軸正方向との角度Ang、最遠ポリゴンの平均点Y座標Yc'''(im2)を求める。
〔数式10〕
Ang=−tan-1(Xc''(im2)/Yc''(im2))
Yc'''(im2)=cos(Ang)×Yc''(im2)−sin(Ang)×Xc''(im2)
さらに、Yc'''(im2)の値に応じて場合分けし、以下の〔数式11〕に従った処理を実行することにより、回転後の部分対象モデルを求める。
〔数式11〕
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の処理により、部分対象モデルは、図8(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))と定義される。ポリゴン正規化処理の結果、図8(f)に示すように、部分対象モデルは、所定の位置、スケール、傾きに正規化される。
<2.5.2.第2の正規化手法>
次に、第2の正規化手法について説明する。図9は、第2の正規化手法によるポリゴン正規化処理の詳細を示すフローチャートである。第1の正規化手法と同様、ステップS200において分割された部分対象モデルのポリゴン数N、ポリゴンを特定する変数i(i=0,・・・,N−1)とし、各ポリゴンiの頂点を(Xp(i),Yp(i),Zp(i))と定義されたものとする。pは頂点番号を示しており、本実施形態では、ポリゴンが三角形であるため、p=0,1,2の3つの値をとる。
まず、ステップS200において分割された部分対象モデルにおける基準点を算出する(ステップS375)。具体的には、第1の正規化手法のステップS210と同様、ポリゴンモデルを構成する各ポリゴンについて、頂点の平均となる平均点を算出し、ポリゴンモデルを構成するN個のポリゴンの平均点の平均値をポリゴンモデルの基準点として算出する。より具体的には、まず、以下の〔数式1〕に従った処理を実行することにより、各ポリゴンの平均点(Xc(i),Yc(i),Zc(i))を算出する。
〔数式1〕
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
次に、第1の正規化手法のステップS210と同様、以下の〔数式2〕に従った処理を実行することにより、ポリゴンモデルの基準点(Xg,Yg,Zg)を算出する。
〔数式2〕
Xg={Σi=0,N-1Xc(i)}/N
Yg={Σi=0,N-1Yc(i)}/N
Zg={Σi=0,N-1Zc(i)}/N
次に、部分対象モデルにおける基準点から各ポリゴンの平均点までの平均距離を求める(ステップS380)。具体的には、基準点(Xg,Yg,Zg)から各ポリゴンの平均点(Xc(i),Yc(i),Zc(i))までの距離を算出し、全てのポリゴンについての平均距離を算出する。具体的には、以下の〔数式12〕に従った処理を実行することにより、平均距離Lavを算出する。
〔数式12〕
Lav
=[Σi=0,N-1{(Xc(i)−Xg)2+(Yc(i)−Yg)2+(Zc(i)−Zg)21/2]/N
次に、部分対象モデルの移動およびスケーリングを行う(ステップS385)。具体的には、基準点(Xg,Yg,Zg)が三次元座標の原点(0,0,0)となるように移動した後、スケーリングとして、平均距離Lavの長さが基準長になるように、サイズ変更を行う。図10は、ポリゴン正規化処理の概要を示す図である。図10において示した直方体は、部分対象モデルの一例である。図10(a)は、XYZの三つの直交軸で規定される三次元空間において部分対象モデルの平均距離が求められた状態を示している。なお、図10(a)において、Gは基準点を示している。ステップS385においては、以下の〔数式13〕に従った処理を実行することにより、各ポリゴンの頂点座標および平均点座標を補正する。
〔数式13〕
Xp'(i)={Xp(i)−Xg}×100/Lav
Yp'(i)={Yp(i)−Yg}×100/Lav
Zp'(i)={Zp(i)−Zg}×100/Lav
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
上記〔数式13〕は、上記基準長を“100”とした場合を示している。ステップS385の処理により、各ポリゴンiの頂点は、(Xp'(i),Yp'(i),Zp'(i))、各ポリゴンiの平均点は(Xc'(i),Yc'(i),Zc'(i))となる。また、部分対象モデルは、図10(b)に示すように、基準点が原点(0,0,0)と一致する。
次に、XYZ軸より主軸を選定し、Z軸正方向に揃えるように90度単位に回転を行う(ステップS390)。具体的には、まず、以下の〔数式14〕に従った処理を実行することにより、XYZ座標軸の各正負方向別に6種のポリゴン分布比率MAを算出する。
〔数式14〕
MA-0={Σi=0,N-1|Xc'(i)<0Xc'(i)2}/[Σi=0,N-1|Xc'(i)<0{Yc'(i)2+Zc'(i)2}]
MA+0={Σi=0,N-1|Xc'(i)≧0Xc'(i)2}/[Σi=0,N-1|Xc'(i)≧0{Yc'(i)2+Zc'(i)2}]
MA-1={Σi=0,N-1|Yc'(i)<0Yc'(i)2}/[Σi=0,N-1|Yc'(i)<0{Xc'(i)2+Zc'(i)2}]
MA+1={Σi=0,N-1|Yc'(i)≧0Yc'(i)2}/[Σi=0,N-1|Yc'(i)≧0{Xc'(i)2+Zc'(i)2}]
MA-2={Σi=0,N-1|Zc'(i)<0Zc'(i)2}/[Σi=0,N-1|Zc'(i)<0{Xc'(i)2+Yc'(i)2}]
MA+2={Σi=0,N-1|Zc'(i)≧0Zc'(i)2}/[Σi=0,N-1|Zc'(i)≧0{Xc'(i)2+Yc'(i)2}]
上記〔数式14〕の最初の式において、Σの添え字の“i=0,N−1|Xc’(i)<0”の意味は、iが0からN−1の範囲でXc’(i)<0を満たす要素に限定して、分子のXc'(i)2または分母のYc'(i)2+Zc'(i)2について、総和を求めることを示している。〔数式14〕の2番目以下の式も同様である。〔数式14〕は物理学的には慣性モーメントの比率を表している。物理学で定義される慣性モーメントとは、3次元空間上のある軸Xの回りに微小質量dmが距離rだけ隔てて分布した物体に対して、∫r2dmで定義される量で、前記物体を軸Xを中心にした回転させる際の回転のしにくさ、あるいは前記物体が軸Xを中心に回転している際の回転の止めにくさを表す。即ち、この値が大きいほど、回転させるのは難しいが、一端回転させると回転が長時間持続する特性をもち、その代表例がコマである。上記〔数式14〕の最初の式において、各ポリゴンは均一の質量mをもっていると仮定し(実際には面積に比例して質量は変化するが、ポリゴンの数が細かいと、各ポリゴンの面積も均一と仮定できる。)、分母のYc'(i)2+Zc'(i)2は、正確にはm×{Yc'(i)2+Zc'(i)2}で、3次元空間をX軸方向に2分割した際、X軸負方向の領域に分布するポリゴンのX軸に対する慣性モーメントを示す。一方、分子のXc'(i)2は、正確にはm×Xc'(i)2で、同じく3次元空間をX軸方向に2分割した際、X軸負方向の領域に分布するポリゴンをX軸上に1次元的に投影させたヤジロベエ状の物体におけるY軸またはZ軸に対する慣性モーメントを示す。上記〔数式7〕の最初の式は、これらの比率であるから、YZ方向へのポリゴン分布の広がりが小さく(コマ状の分布が小さく)、X軸方向に縦長にポリゴンが分布しているほど(ヤジロベエ状分布が大きいほど)大きくなる。〔数式7〕の2番目以下の式も同様である。したがって、上記〔数式14〕において算出された6種のポリゴン分布比率MAのうち最大となる軸の方向は、その軸方向に最も縦長(すなわち軸方向に最も広範)にポリゴンが分布している方向となるので、その軸を主軸に決定し、主軸がZ軸の正方向と一致するように部分対象モデルの回転を行う。具体的には、以下の〔数式15〕に従った処理を実行することにより、回転後の部分対象モデルを求める。
〔数式15〕
MA-0が最大の場合(X軸負方向を選定):i=0,…,N−1、 p=0, 1,2において、
Xp''(i)=Zp'(i),Yp''(i)=Yp'(i),Zp''(i)=−Xp'(i)
MA+0が最大の場合(X軸正方向を選定):i=0,…,N−1、p=0, 1,2において、
Xp''(i)=−Zp'(i),Yp''(i)=Yp'(i),Zp''(i)=Xp'(i)
MA-1が最大の場合(Y軸負方向を選定):i=0,…,N−1、p=0, 1,2において、
Xp''(i)=Xp'(i),Yp''(i)=Zp'(i),Zp''(i)=−Yp'(i)
MA+1が最大の場合(Y軸正方向を選定):i=0,…,N−1、p=0, 1,2において、
Xp''(i)=Xp'(i),Yp''(i)=−Zp'(i),Zp''(i)=Yp'(i)
MA-2が最大の場合(Z軸負方向を選定):i=0,…,N−1、p=0, 1,2において、
Xp''(i)=−Xp'(i),Yp''(i)=Yp'(i),Zp''(i)=−Zp'(i)
MA+2が最大の場合(Z軸正方向を選定):i=0,…,N−1、p=0, 1,2において、
Xp''(i)=Xp'(i),Yp''(i)=Yp'(i),Zp''(i)=Zp'(i)
以上の結果、各ポリゴンの平均点(Xc''(i),Yc''(i),Zc''(i))を更新する
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(c)は、MA-0が最大の場合、すなわちX軸負方向(−X軸)が主軸として選定された場合の例を示している。X軸の負方向が主軸として選定された場合、部分対象モデルのX軸負方向が三次元空間におけるZ軸正方向に一致するように90度単位で回転を行う。ステップS390の処理により、部分対象モデルは、図10(d)に示すように、主軸がXYZ空間においてZ軸正方向と重なるようになる。本実施形態では、主軸をZ軸の正方向に重ねたが、負方向に重ねるようにしてもよい。
次に、XY座標上で副軸を選定し、Y軸正方向に揃えるように90度単位に回転を行う(ステップS395)。具体的には、まず、以下の〔数式16〕に従った処理を実行することにより、XY座標軸の各正負方向別に4種のポリゴン分布比率MBを算出する。
〔数式16〕
MB-0={Σi=0,N-1|Xc''(i)<0Xc''(i)2}/[Σi=0,N-1|Xc''(i)<0Yc''(i)2
MB+0={Σi=0,N-1|Xc''(i)≧0Xc''(i)2}/[Σi=0,N-1|Xc''(i)≧0Yc''(i)2
MB-1={Σi=0,N-1|Yc''(i)<0Yc''(i)2}/[Σi=0,N-1|Yc''(i)<0Xc''(i)2
MB+1={Σi=0,N-1|Yc''(i)≧0Yc''(i)2}/[Σi=0,N-1|Yc''(i)≧0Xc''(i)2
〔数式16〕も〔数式14〕と同様に、物理学的には慣性モーメントの比率を表しているが、この式では全てのポリゴンをXY平面に投影させた2次元空間で計算している。〔数式16〕の最初の式において、各ポリゴンは均一の質量mをもっていると仮定し、分母のYc''(i)2は、正確にはm×Yc''(i)2で、2次元空間をX軸方向に2分割した際、X軸負方向のY軸上に1次元的に投影させたヤジロベエ状の物体における分布するポリゴンのX軸に対する慣性モーメントを示す。一方、分子のXc''(i)2は、正確にはm×Xc''(i)2で、同じく2次元空間をX軸方向に2分割した際、X軸負方向の領域に分布するポリゴンをX軸上に1次元的に投影させたヤジロベエ状の物体におけるYに対する慣性モーメントを示す。上記〔数式16〕の最初の式は、これらの比率であるから、Y軸方向へのポリゴン分布の広がりが小さく(ヤジロベエ状の分布が小さく)、X軸方向に縦長にポリゴンが分布しているほど(ヤジロベエ状分布が大きいほど)大きくなる。〔数式16〕の2番目以下の式も同様である。したがって、上記〔数式16〕において算出された4種のポリゴン分布比率MBのうち、最大となる軸の方向は、その軸方向に最も縦長(すなわち軸方向に最も広範)にポリゴンが分布している方向となるので、その軸を副軸に決定し、副軸がY軸の正方向と一致するように部分対象モデルの回転を行う。具体的には、以下の〔数式17〕に従った処理を実行することにより、回転後の部分対象モデルを求める。
〔数式17〕
MB-0が最大の場合(X軸負方向を選定):i=0,…,N−1、p=0, 1,2において、
Xp'''(i)=Yp''(i),Yp'''(i)=−Xp''(i),Zp'''(i)=Zp''(i)
MB+0が最大の場合(X軸正方向を選定):i=0,…,N−1、p=0, 1,2において、
Xp'''(i)=−Yp''(i),Yp'''(i)=Xp''(i),Zp'''(i)=Zp''(i)
MB-1が最大の場合(Y軸負方向を選定):i=0,…,N−1、p=0, 1,2において、
Xp'''(i)=−Xp''(i),Yp'''(i)=−Yp''(i),Zp'''(i)=Zp''(i)
MB+1が最大の場合(Y軸正方向を選定):i=0,…,N−1、p=0, 1,2において、
Xp'''(i)=Xp''(i),Yp'''(i)=Yp''(i),Zp'''(i)=Zp''(i)
以上の結果、各ポリゴンの平均点 (Xc'''(i),Yc'''(i),Zc'''(i))を更新する
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(e)は、MB-0が最大の場合、すなわちX軸負方向(−X軸)が副軸として選定された場合の例を示している。X軸の負方向が副軸として選定された場合、部分対象モデルのX軸負方向が二次元座標におけるY軸正方向に一致するように90度単位で回転を行う。ステップS395の処理により、部分対象モデルは、図10(f)に示すように、副軸が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))と定義される。ポリゴン正規化処理の結果、図10(f)に示すように、部分対象モデルは、所定の位置、スケール、傾きに正規化される。
ステップS300のポリゴン正規化処理としては、第1の正規化手法と第2の正規化手法のいずれを用いてもよい。第1の正規化手法は、全体形状を正規化するので、装飾や変形が加えられていない形状のものに適している。一方、第2の正規化手法は、主要な部分を基本として正規化するので、装飾や変形が加えられた形状のものに適している。
<2.6.ポリゴン照合処理>
次に、ステップS400のポリゴン照合処理について説明する。図11は、ポリゴン照合処理の概要を示すフローチャートである。ポリゴン照合処理においては、ステップS300において正規化された複数の部分対象モデルより順次1つずつ抽出し、各々の部分対象モデルに対してポリゴンモデル照合手段30に基づき照合を行う。ポリゴンモデル照合手段30は、規制モデルデータベース50に登録された規制モデルを1つずつ抽出し(ステップS401)、抽出された単一の部分対象モデルと照合を行う。本実施形態では、ポリゴンモデル照合手段30は、図11に示すように、総面積に基づく照合処理(ステップS410)、体積に基づく照合処理(ステップS420)、座標値に基づく照合処理(ステップS430)の3つの照合処理を順に行う。先に行った照合処理の結果、適合(すなわち類似)と判定された場合にのみ、次の照合処理に進む。不適合(すなわち非類似)と判定された場合には、ステップS401に戻って次の規制モデルとの照合を行う。そして、全ての規制モデルとの照合を行い、いずれも不適合と判定された場合、次の部分対象モデルを抽出し、ステップS401、ステップS410、ステップS420、ステップS430の処理を繰り返し、適合と判定されるものが見つからない限り、全ての部分対象モデルと全ての規制モデルとの照合を継続する。照合処理の途中で、適合と判定されるものが1つでも見つかれば、即座に照合処理を中断し、出力不適との判定がなされ、全ての部分対象モデルと全ての規制モデルとの照合の結果、適合と判定されるものが全く見つからなければ、出力適正との判定がなされる。
3つの照合処理のうち、総面積に基づく照合処理および体積に基づく照合処理は、角度に依存しない角度非依存照合処理であり、座標値に基づく照合処理は、角度に依存する角度依存照合処理である。3つの照合処理全てにおいて適合(すなわち類似)と判定された場合は、その部分対象モデルは、規制モデルと類似していることになるので、出力不適との判定がなされる。規制モデルデータベース50に登録された全ての規制モデルとの照合が不適合であった場合には、その部分対象モデルは、どの規制モデルとも非類似になるので、出力適正との判定がなされる。1つの対象モデルを分割して得られた複数の部分対象モデルのうち、1つでも出力不適のものがあれば、その対象モデルは、規制モデルと同等の形状のものを部品として含むと考えられるので、全体として出力不適の判定がなされる。1つの対象モデルを分割して得られた複数の部分対象モデルの全てが出力適正と判定されれば、その対象モデルは、規制モデルと同等の形状のものを部品として含まないと考えられるので、全体としても出力適正の判定がなされる。
<2.6.1.総面積に基づくポリゴン照合処理>
まず、図11に示した3つの照合処理のうち、ステップS410の総面積に基づくポリゴン照合処理について説明する。図12は、総面積に基づくポリゴン照合処理の詳細を示すフローチャートである。ステップ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を以下の〔数式18〕に従った処理を実行することにより算出する(ステップS411)。
〔数式18〕
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における処理と同様に、上記〔数式18〕に従った処理を、変数を変えて、M個のポリゴンで構成される規制モデルに対して実行し、規制モデルの総面積SMを算出する。(ステップS412)。
続いて、ポリゴンモデル照合手段30は、正規化された対象モデルの総面積SNと規制モデルの総面積SMの面積差分dSを、を以下の〔数式19〕に従った処理を実行することにより算出する(ステップS413)。
〔数式19〕
dS=|SM−SN|/(SM+SN)
上記〔数式19〕においては、後に判定しきい値と比較するために、総面積の和(SM+SN)で除算することにより正規化している。上記〔数式19〕に示すように面積差分dSは、総面積の差分の絶対値となっている。
面積差分dSが得られたら、ポリゴンモデル照合手段30は、面積差分dSと判定しきい値との比較を行う(ステップS414)。面積差分dSが判定しきい値より小さい場合は、適合と判定し、面積差分dSが判定しきい値以上である場合は、不適合と判定する。判定しきい値としては、適宜設定可能であるが、ここでは、0.01としてある。
<2.6.2.体積に基づく照合処理>
次に、ステップS420の体積に基づくポリゴン照合処理について説明する。図13は、体積に基づくポリゴン照合処理の詳細を示すフローチャートである。ステップ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)。具体的には、まず、上記〔数式18〕に従った処理を実行して各ポリゴンiの面積S(i)を算出する。そして、以下の〔数式20〕に従った処理を実行することにより、各ポリゴンの法線ベクトル(Nx(i),Ny(i),Nz(i))を算出する。
〔数式20〕
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)
角錐の高さは、平均点から原点方向のベクトルとポリゴンの法線ベクトルとの内積の絶対値で算出できるので、以下の〔数式21〕に従った処理を実行することにより、ポリゴンiを底面とする角錐の体積V(i)、およびN個のポリゴンについての角錐の体積総和VNを算出する。
〔数式21〕
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における処理と同様に、上記〔数式20〕、〔数式21〕に従った処理を、変数を変えて、M個のポリゴンで構成される規制モデルに対して実行し、規制モデルの体積総和VMを算出する。(ステップS422)。
続いて、ポリゴンモデル照合手段30は、正規化されたポリゴンモデルの体積総和VNと規制モデルの体積総和VMの体積差分dVを、以下の〔数式22〕に従った処理を実行することにより算出する(ステップS423)。
〔数式22〕
dV=|VM−VN|/(VM+VN)
上記〔数式22〕においては、後に判定しきい値と比較するために、体積総和の和(VM+VN)で除算することにより正規化している。上記〔数式22〕に示すように体積差分dVは、体積総和の差分の絶対値となっている。
体積差分dVが得られたら、ポリゴンモデル照合手段30は、体積差分dVと判定しきい値との比較を行う(ステップS424)。体積差分dVが判定しきい値より小さい場合は、適合と判定し、体積差分dVが判定しきい値以上である場合は、不適合と判定する。判定しきい値としては、適宜設定可能であるが、ここでは、0.001としてある。
<2.6.3.座標値に基づく照合処理>
次に、ステップS430の座標値に基づくポリゴン照合処理について説明する。図14は、座標値に基づくポリゴン照合処理の詳細を示すフローチャートである。ここでは、対象モデルの各ポリゴンiの平均点を、(Xcn(i),Ycn(i),Zcn(i))(i:ポリゴン番号=0,・・・、N−1)と定義し、規制モデルの各ポリゴンjの平均点を、(Xcm(j),Ycm(j),Zcm(j))(j:ポリゴン番号=0,・・・、M−1)と定義する。
ポリゴンモデル照合手段30は、まず、初期設定を行い、D=0,i=0とする(ステップS431)。Dは判定しきい値と比較する際、距離総和として出力される変数である。i=0は、対象モデルで最初に処理されるポリゴンのポリゴン番号である。次に、j=0,dmin=BIGに設定する(ステップS432)。j=0は、規制モデルで最初に処理されるポリゴンのポリゴン番号である。dminは初期値BIGに設定される。BIGとしては、dminとして取り得ない程度の大きな値を設定しておく。
次に両モデルにおいて特定されたポリゴン同士の平均点座標距離dを算出する(ステップS433)。具体的には、以下の〔数式23〕に従った処理を実行することにより算出する。
〔数式23〕
d=[(Xcm(j)−Xcn(i))2+(Ycm(j)−Ycn(i)) 2 +(Zcm(j)−Zcn(i))2]1/2
上記〔数式23〕に示すように平均点座標距離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をDに加算する(ステップS438)。そして、iを1だけインクリメントして対象モデルの処理対象ポリゴンを変更し、対象モデルのポリゴン番号iとポリゴン数Nを比較する(ステップS439)。
比較の結果、iがNより小さい場合は、対象モデルの全てのポリゴンに対して処理が終わっていないため、ステップS432に戻って、対象モデルの次のポリゴンに対して処理を行う。対象モデルの全てのポリゴンについて、ステップS432〜ステップS438の処理を実行した後には、i=Nとなるので、ステップS440に進む。
ステップS432〜ステップS438の処理を繰り返すことにより、Dには、対象モデルの各ポリゴンに対する距離最小値dminの総和が記録される。
距離総和Dが得られたら、ポリゴンモデル照合手段30は、距離総和Dを対象モデルのポリゴン数Nで除した値D/Nと判定しきい値との比較を行う(ステップS440)。D/Nが判定しきい値より小さい場合は、適合と判定し、D/Nが判定しきい値以上である場合は、不適合と判定する。判定しきい値としては、適宜設定可能であるが、ここでは、10.0としてある。
本実施形態では、ポリゴン同士の平均点座標間の距離、およびその総和を算出するようにしたが、平均点に代えてポリゴン同士の対応する頂点間の距離、およびその総和を算出するようにしてもよい。
<3.3Dプリンタへのデータ出力>
ポリゴンモデル照合手段30により出力適正と判定された場合には、立体物造形装置である3Dプリンタ7へ対象ポリゴンモデルを出力する。一方、ポリゴンモデル照合手段30により出力不適と判定された場合には、立体物造形装置である3Dプリンタへ対象モデルを出力しない。また、出力適正か否かの判定に時間がかかる場合には、3Dプリンタ7に対象モデルを出力し、3Dプリンタ7の出力処理(立体物造形処理)と並行して出力適正か否かの判定を行い、出力不適である場合に出力中止命令を3Dプリンタ7に出力するようにしてもよい。この際、オペレータから見れば、対象モデルの出力という一つの命令を行うことにより、3Dプリンタにおける立体物造形処理が開始されることが確認できるだけで、並行して出力適正か否かの判定のための処理の実行が開始されることは気付かれない。
<4.規制モデルの正規化および登録について>
上記実施形態では、規制モデルデータベース50に既に正規化がなされ複数の部分規制モデルに分割不能な単一の規制モデルが登録された場合について説明したが、規制モデルデータベース50に正規化されていない規制モデルを登録しておき、この規制モデルに対して、上記実施形態において対象モデルに対して行ったようにポリゴンの削減、正規化を行い、正規化後の規制モデルと、上記正規化後の対象モデルを用いて照合を行うようにしてもよい。この場合、規制モデルデータベース50に登録されている正規化されていない各規制モデルは、ポリゴン削減手段10によりポリゴンが削減され、ポリゴン正規化手段20により正規化された後、ポリゴンモデル照合手段30により、正規化後の対象モデルとの照合が行われる。あるいは、複数の部分規制モデルに分割可能な規制モデルを登録しようとする場合、対象モデル分割手段15を適用し、複数の部分規制モデルに分割を行い、各々を単一の規制モデルとみなして、ポリゴン正規化手段20を適用し、規制モデルデータベース50に登録するようにしてもよい。
また、変形例として、ポリゴンモデル照合手段30を備えた立体物造形用データ出力規制装置とは、別の場所で規制モデルの正規化を行って正規化された規制モデルを、立体物造形用データ出力規制装置にネットワークを介して送信して登録するようにしてもよい。
図15は、変形例における立体物造形用データ出力規制装置のハードウェア構成図である。図15に示した本実施形態に係る立体物造形用データ出力規制装置において、立体物造形用データ出力規制装置101は、図1に示した立体物造形用データ出力規制装置100の構成に、インターネット等の公衆ネットワークと通信するためのネットワーク通信部8を備えた構成となっている。規制モデル正規化装置102は、汎用のコンピュータで実現することができ、図15に示すように、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へ正規化された規制モデルの送信を行うことが可能になっている。図15では、立体物造形用データ出力規制装置101と3Dプリンタ7は分離した形態で示されているが、現在市販されている殆どの3Dプリンタ製品には立体物造形用データ出力規制装置101の構成要素である、CPU1、RAM2、記憶装置3、キー入力I/F4(汎用コンピュータ向けキーボード・マウスではなく、テンキーレベルの数種のボタン)、データ入出力I/F5、表示部6(数行の文字を表示可能な小型液晶パネル、タッチパネルを重畳させキー入力I/F4を兼ねることも多い)、ネットワーク通信部8(無線LAN機能)も小規模ながら重複して備えている。従って、3Dプリンタ7自体が外部記憶媒体やインターネット経由で立体物造形用データを直接受け取り、単独で立体物を造形する運用も可能になっている(特に民生用の3Dプリンタではこちらの実施形態の方が多い)。すなわち、図15に示した立体物造形用データ出力規制装置101および3Dプリンタ7を1つの筐体に収めて、“3Dプリンタ”という製品として流通することも多い。
規制モデル正規化装置102においては、CPU1が、記憶装置3に記憶されているプログラムを実行することにより、第2のポリゴン削減手段、第2のポリゴン正規化手段、規制モデル送信手段が実現される。規制モデル正規化装置102で実現される第2のポリゴン削減手段、第2のポリゴン正規化手段は、立体物造形用データ出力規制装置100で実現されるポリゴン削減手段10、ポリゴン正規化手段20と同様の機能を有し、規制モデルのポリゴンを削減し、規制モデルの正規化を行う。規制モデル送信手段は、正規化された規制モデルを立体物造形用データ出力規制装置101に送信する。立体物造形用データ出力規制装置101では、ネットワーク通信部8が、規制モデル正規化装置102から規制モデルを受信すると、CPU1が所定のプログラムを実行して規制モデル登録手段として機能し、受信した規制モデルを記憶装置3で実現される規制モデルデータベース50に登録する。
<5.ポリゴンモデル正規化事例>
図16〜図21に、本実施形態に係る立体物造形用データ出力規制装置による照合の事例を示す。図16〜図21のいずれにおいても、左側に規制モデル、右側に対象モデルを示している。いずれも規制モデルは、単一の物品を表現したものであり、対象モデルは複数の物品により構成された複合モデルとなっている。図16〜図18は、対象モデルが規制モデルと同一形状を一部として含む照合例1を示しており、図19〜図21は、対象モデルが、規制モデルを若干変形した形状を一部として含む照合例2を示している。
図16は、正規化前のオリジナル(実際にはポリゴン削減後)のポリゴンモデルを示す図である。図16では、紙面に対して座標系を揃えてあるが、正規化前であるため、両者は位置、スケール、傾きが異なっている。図17は、本発明以外の他方式により複合モデルである対象モデル全体で正規化して、規制モデルと照合した例を示す図である。図17においては、両者のアングルが大きく異なり、出力適正の結果が出てしまう。図18は、本発明により部分対象モデルごとに正規化して、規制モデルと照合した例を示す図である。図18においては、両者のアングルがほぼ一致し、出力不適の結果が出た。
図19は、正規化前のオリジナル(実際にはポリゴン削減後)のポリゴンモデルを示す図である。図19では、紙面に対して座標系を揃えてあるが、正規化前であるため、両者は位置、スケール、傾きが異なっている。図20は、本発明以外の他方式により複合モデルである対象モデル全体で正規化して、規制モデルと照合した例を示す図である。図20においては、両者のアングルが大きく異なり、出力適正の結果が出てしまう。図21は、本発明により部分対象モデルごとに正規化して、規制モデルと照合した例を示す図である。図21においては、両者のアングルがほぼ一致し、出力不適の結果が出た。
<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・・・ポリゴン削減手段
15・・・対象モデル分割手段
20・・・ポリゴン正規化手段
30・・・ポリゴンモデル照合手段
40・・・対象モデル記憶手段
50・・・規制モデルデータベース
100、101・・・立体物造形用データ出力規制装置
102・・・規制モデル正規化装置

Claims (18)

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

JP2014094084A 2014-04-30 2014-04-30 立体物造形用データ出力規制装置 Active JP6369117B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2015210789A JP2015210789A (ja) 2015-11-24
JP6369117B2 true JP6369117B2 (ja) 2018-08-08

Family

ID=54612887

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP6369117B2 (ja)

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
JP2015210789A (ja) 2015-11-24

Similar Documents

Publication Publication Date Title
Fu et al. Efficient volumetric polycube‐map construction
US20140067333A1 (en) CAD-Based System for Product Definition, Inspection and Validation
JP6318701B2 (ja) 立体物造形用データ出力規制装置
JP6375768B2 (ja) 立体物造形用データ出力規制装置
JP6369117B2 (ja) 立体物造形用データ出力規制装置
US10068036B2 (en) Simulation of resizable bodies using a rigid body solver
JP6369116B2 (ja) 立体物造形用データ出力規制装置
JP6557988B2 (ja) 立体物造形用データ出力規制装置
JP6540238B2 (ja) 立体物造形用データ出力規制装置
WO2019209709A1 (en) Computer-aided design file format for additive manufacturing and methods of file generation
JP6409513B2 (ja) 立体物造形用データ出力規制装置
JP2019018446A (ja) 立体物造形用データ出力規制装置
JP6451932B2 (ja) 立体物造形用データ出力規制装置
JP6638341B2 (ja) 立体物造形用データ出力規制装置
US11416648B2 (en) Computer-aided design file format for additive manufacturing and methods of file generation
JP2015208982A (ja) 立体物造形用データ出力規制装置
JP6638466B2 (ja) 立体物造形用データ出力規制装置
JP2020194482A (ja) 表示制御方法、表示制御プログラムおよび情報処理装置
JP6613832B2 (ja) 立体物造形用データ出力規制装置
JP2016215598A (ja) 立体物造形用データ出力規制装置
JP6613707B2 (ja) 立体物造形用データ出力規制装置
JP2017207900A (ja) 立体物造形用データ出力規制装置
JP2018126939A (ja) 立体物造形用データ出力規制装置
JP2016124241A (ja) 立体物造形用データ出力規制装置
Schier et al. Fast texture mapping for triangle soups using electrostatic monopole field lines

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

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150