JP6613832B2 - Data output restriction device for 3D object modeling - Google Patents

Data output restriction device for 3D object modeling Download PDF

Info

Publication number
JP6613832B2
JP6613832B2 JP2015220943A JP2015220943A JP6613832B2 JP 6613832 B2 JP6613832 B2 JP 6613832B2 JP 2015220943 A JP2015220943 A JP 2015220943A JP 2015220943 A JP2015220943 A JP 2015220943A JP 6613832 B2 JP6613832 B2 JP 6613832B2
Authority
JP
Japan
Prior art keywords
polygon
polygons
circumscribed circle
distribution
dimensional object
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
JP2015220943A
Other languages
Japanese (ja)
Other versions
JP2017091236A (en
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 JP2015220943A priority Critical patent/JP6613832B2/en
Publication of JP2017091236A publication Critical patent/JP2017091236A/en
Application granted granted Critical
Publication of JP6613832B2 publication Critical patent/JP6613832B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Generation (AREA)

Description

本発明は、立体物を表すデータを基に、樹脂等を加工して立体物を造形する3Dプリンタ等の立体物造形装置の利用に際して、立体物造形装置からの出力に不適切なものを判別するための技術に関する。   In the present invention, when using a three-dimensional object forming apparatus such as a 3D printer that processes a resin or the like to form a three-dimensional object based on data representing the three-dimensional object, it is determined whether the output is inappropriate for the output from the three-dimensional object forming apparatus. It relates to technology.

近年、立体物を表すデータをもとに、樹脂や石膏等を加工して造形する3Dプリンタが立体物造形装置として普及してきている。3Dプリンタは、立体物の三次元形状をポリゴンの集合で表現したポリゴンモデルを用いて立体物の出力を行う。3Dプリンタの医療応用として、医療診断で撮影されるCT/MRI画像(DICOM形式3次元ボクセルデータ)を基に、3Dプリンタ出力用モデリングデータ(ポリゴンモデル)を作成し、手術シミュレーション・医学教育・インフォームドコンセント向けの臓器模型を出力したり、体内埋め込み用の人工臓器(血管、骨、関節など)を作成したりする試みが始まっている。   In recent years, 3D printers that process and model resin, gypsum, and the like based on data representing a three-dimensional object have become widespread as three-dimensional object modeling apparatuses. The 3D printer outputs a three-dimensional object using a polygon model that represents a three-dimensional shape of the three-dimensional object as a set of polygons. As a medical application of 3D printer, 3D printer output modeling data (polygon model) is created based on CT / MRI image (DICOM format 3D voxel data) taken by medical diagnosis. Attempts have been made to output organ models for informed consent or to create artificial organs (blood vessels, bones, joints, etc.) for implantation in the body.

3Dプリンタには、インターネットを介して情報だけでなく、モノを遠隔地に間接的に伝搬できる革新性を備えている。そのため、これまで税関で規制されていた銃砲・刀剣などの危険物がデータ形態で国境を越えて流布され、3Dプリンタによりモノとして容易に入手可能になるという問題が発生している。   3D printers have an innovation that can propagate not only information but also things remotely to the remote location via the Internet. For this reason, there has been a problem that dangerous materials such as guns and swords that have been regulated by customs have been distributed across the border in the form of data and can be easily obtained as 3D printers.

具体的には、あるWEBサイトにて3Dプリンタを用いて所定のモデルの拳銃を製造できるSTL(Standard Triangulated Language)が無償で公開されている。金属製に比べて射程距離などは多少劣るが、3Dプリンタで作成された弾丸でも殺傷能力はそれなりにある。更に、現状の3Dプリンタで造形可能な材料は樹脂・石膏に限定され、金属が使用できないという欠点が裏目に出て、空港の金属探知機で見逃されるという問題も指摘されている。今後、民生用の3Dプリンタが普及するにあたり、3Dプリンタ側に投入される出力データの形状認証と危険物の出力規制などのセキュリティ機能をもたせることが求められる。   Specifically, STL (Standard Triangulated Language) that can manufacture a handgun of a predetermined model using a 3D printer is disclosed free of charge at a certain WEB site. Although the range is somewhat inferior to that of metal, bullets made with 3D printers have some killing ability. Furthermore, the material that can be formed by the current 3D printer is limited to resin and gypsum, and the disadvantage that metal cannot be used appears behind the scenes, and it is pointed out that it is overlooked by the metal detector at the airport. In the future, as 3D printers for consumer use become widespread, it is required to have security functions such as output authentication of output data input to the 3D printer and output regulation of dangerous goods.

これに対して、ウィルス対策ツールと類似した手法で出力可否判定を行うシステムを構築する手法が考えられ、その実現にあたり、ポリゴン照合技術が必要になる。しかし、ポリゴン照合には、従来、次の問題が知られている。3Dプリンタ出力用のポリゴンデータ(STL形式など)では、3次元座標値が絶対寸法でないためスケールがまちまちで、座標原点やアングルも使用されるCADや出力予定のプリンタの特性に合せて種々に設定される。そのため、たとえソースが同一の3Dモデルであっても、ポリゴンデータの作成方法が異なると、表現される総ポリゴン数も変化し、ポリゴンデータの座標値比較で同一性を判定することは一般に難しい。   On the other hand, a method of constructing a system that determines whether or not output is possible using a method similar to that of an anti-virus tool is conceivable, and polygon matching technology is required for its realization. However, the following problems have been known for polygon matching. Polygon data for 3D printer output (STL format, etc.), the 3D coordinate value is not an absolute dimension, so the scale varies, and the coordinate origin and angle are also set according to the characteristics of the CAD that uses the printer and the printer to be output. Is done. Therefore, even if the source is the same 3D model, if the polygon data creation method is different, the total number of polygons to be expressed also changes, and it is generally difficult to determine the identity by comparing the coordinate values of the polygon data.

そこで、特許文献1のように、重心からの慣性モーメントなど特徴パラメータによるアングル・スケールに依存しない比較手法が提案されている。また、特許文献2では、ポリゴンモデルの重心からの面積分布や隣接面とのクリーズ角などの特徴量を抽出してアングル・スケールに依存しない比較を行う手法が提案されている。特許文献3では、3次元モデルを複数アングルに2次元投影した画像に対してフーリエ変換を行い特徴抽出して比較する手法が提案されている。 Therefore, as in Patent Document 1, a comparison method that does not depend on an angle scale based on characteristic parameters such as a moment of inertia from the center of gravity has been proposed. Patent Document 2 proposes a method of extracting feature quantities such as an area distribution from the center of gravity of a polygon model and a crease angle with an adjacent surface and performing a comparison independent of an angle scale. Patent Document 3 proposes a method of performing a Fourier transform on an image obtained by two-dimensionally projecting a three-dimensional model onto a plurality of angles, extracting features, and comparing them.

特許第3610270号公報Japanese Patent No. 3610270 特開2000−222428号公報JP 2000-222428 A 特許第5024767号公報Japanese Patent No. 5024767

上記従来の技術を出力物規制に応用する場合、規制すべきポリゴンモデルをデータベースに登録しておき、出力要求のあったポリゴンモデルと比較する手法をとることになる。出力規制の対象は、銃砲・刀剣などの危険物だけでなく、キャラクターなどの著作物となることもある。いずれの場合においても、制作されたポリゴンモデルは、著作権者が存在する著作物になる。   When applying the above-described conventional technique to output regulation, a polygon model to be regulated is registered in a database and compared with a polygon model requested to be output. The target of output regulation may be not only dangerous materials such as guns and swords, but also copyrighted materials such as characters. In any case, the produced polygon model becomes a copyrighted work with a copyright holder.

しかしながら、著作物であるポリゴンモデルをデータベースに登録するためには、その行為自体に著作者の許諾が必要となる。しかし、銃砲・刀剣などの危険物を制作した著作権者から許諾を得ることは難しい。このため、著作物の出力規制をするためのデータベースの構築が困難になるという問題がある。これに対して、ポリゴンモデルから特徴となる情報である特徴ベクトルを作成し、この特徴ベクトルによりデータベースを構築する手法が考えられる。しかし、特徴ベクトルはポリゴンモデルに比べて情報量が少ないため、出力を規制すべきか否かを的確に判定することが困難であった。   However, in order to register a polygon model that is a copyrighted work in the database, the act itself requires the permission of the author. However, it is difficult to obtain permission from the copyright holder who produced dangerous materials such as guns and swords. For this reason, there is a problem that it is difficult to construct a database for regulating the output of a copyrighted work. On the other hand, a method is conceivable in which a feature vector, which is information serving as a feature, is created from a polygon model, and a database is constructed from the feature vector. However, since the feature vector has a smaller amount of information than the polygon model, it has been difficult to accurately determine whether the output should be restricted.

そこで、本発明は、ポリゴンモデルを基に立体物の出力を行う際に、出力を規制すべきか否かの判定を少ない処理負荷で高速に行うことが可能な立体物造形用データ出力規制装置を提供することを課題とする。   Therefore, the present invention provides a three-dimensional object modeling data output regulation device capable of performing a high-speed determination with a small processing load whether or not the output should be regulated when outputting a three-dimensional object based on a polygon model. The issue is to provide.

上記課題を解決するため、本発明第1の態様では、
ポリゴンの集合として表現されたポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきか否かを判定する装置であって、
出力を規制すべきポリゴンモデルである規制モデル内の3つのポリゴンで形成される三角形の外接円の半径の度数分布である外接円分布が登録されたデータベースと、
出力対象のポリゴンモデルである対象モデルに対して、当該対象モデル内から選択された3つのポリゴン上の所定の点により形成される三角形の外接円の半径を算出し、外接円の半径の度数分布である外接円分布を算出する度数分布算出手段と、
前記算出された外接円分布を、前記データベースに登録されている規制モデルの外接円分布と照合し、出力を規制すべきか否かを判定する度数分布照合手段と、
を有することを特徴とする立体物造形用データ出力規制装置を提供する。
In order to solve the above problems, in the first aspect of the present invention,
A device for determining whether or not to regulate when outputting a polygon model expressed as a set of polygons to a three-dimensional object modeling apparatus as three-dimensional object modeling data,
A database in which a circumscribed circle distribution that is a frequency distribution of the radius of a circumscribed circle of a triangle formed by three polygons in a regulated model that is a polygon model whose output is to be regulated;
For the target model that is the polygon model to be output, calculate the radius of the circumscribed circle of the triangle formed by the predetermined points on the three polygons selected from the target model, and the frequency distribution of the radius of the circumscribed circle A frequency distribution calculating means for calculating a circumscribed circle distribution that is,
The calculated circumscribed circle distribution is compared with the circumscribed circle distribution of the regulation model registered in the database, and a frequency distribution matching means for determining whether or not the output should be regulated,
There is provided a three-dimensional object shaping data output regulation device characterized by comprising:

本発明第1の態様によれば、規制モデル内の3つのポリゴンで形成される三角形の外接円の半径の度数分布である外接円分布が登録されたデータベースを備え、対象モデル内から選択された3つのポリゴン上の所定の点により形成される三角形の外接円の半径を算出し、外接円の半径の度数分布である外接円分布を算出し、算出された外接円分布を、データベースに登録されている規制モデルの外接円分布と照合し、出力を規制すべきか否かを判定するようにしたので、ポリゴンモデルを基に立体物の出力を行う際に、出力を規制すべきか否かの判定をポリゴンモデルの形状に鋭敏に反映する外接円分布を用いて高精度に行うことが可能となる。ここで、外接円分布がポリゴンモデルの形状に鋭敏に反映するとは、3D形状の基本である球体では、当該球体の半径に対応する最大距離の1箇所にピークが現れる簡素な分布になることにより形状が球体からずれるに伴い、種々の箇所にピークが加わり、形状差異に明確に反応する複雑な分布になることを意味する。   According to the first aspect of the present invention, there is provided a database in which a circumscribed circle distribution, which is a frequency distribution of the radius of a circumscribed circle of a triangle formed by three polygons in a regulation model, is selected from the target model The radius of the circumscribed circle of the triangle formed by the predetermined points on the three polygons is calculated, the circumscribed circle distribution that is the frequency distribution of the radius of the circumscribed circle is calculated, and the calculated circumscribed circle distribution is registered in the database. Since it is checked whether the output should be regulated by comparing with the circumscribed circle distribution of the regulated model, it is judged whether the output should be regulated when outputting the three-dimensional object based on the polygon model Can be performed with high accuracy by using a circumscribed circle distribution that reflects the shape of the polygon model sharply. Here, the circumscribed circle distribution is sharply reflected in the shape of the polygon model because the sphere that is the basis of the 3D shape has a simple distribution in which a peak appears at one place at the maximum distance corresponding to the radius of the sphere. As the shape deviates from the sphere, peaks are added at various locations, which means that the distribution becomes a complex distribution that clearly reacts to the shape difference.

また、本発明第2の態様では、前記度数分布算出手段は、前記対象モデルに対して、当該対象モデル内のポリゴンを第1グループ、第2グループ、第3グループの3つのグループに分類し、各グループから1つずつポリゴンを選択することにより、前記3つのポリゴンを選択することを特徴とする。   Further, in the second aspect of the present invention, the frequency distribution calculating unit classifies the polygons in the target model into three groups of a first group, a second group, and a third group for the target model, The three polygons are selected by selecting one polygon from each group.

本発明第2の態様によれば、対象モデル内のポリゴンを第1グループ、第2グループ、第3グループの3つのグループに分類し、各グループから1つずつポリゴンを選択するようにしたので、三角形を形成するための3つのポリゴンの組み合わせを互いに重複することなく作成することができ、効率的な処理を行うことが可能となる。グループに分類せずにランダムに選択すれば、ある確率で重複が発生してしまうことが多くなる。第2の態様では、重複が発生しないように、各グループからポリゴンを1つずつ選択している。   According to the second aspect of the present invention, the polygons in the target model are classified into three groups of the first group, the second group, and the third group, and one polygon is selected from each group. A combination of three polygons for forming a triangle can be created without overlapping each other, and efficient processing can be performed. If a random selection is made without classifying into groups, duplication often occurs with a certain probability. In the second mode, one polygon is selected from each group so that no overlap occurs.

また、本発明第3の態様では、前記度数分布算出手段は、前記各グループのポリゴン数をN/3個とした際、N/3個の連続する整数をランダムに入れ替えた(シャッフル)乱数配列を作成するとともに、前記乱数配列の先頭から末尾への順序を逆にした反転乱数配列を作成し、前記3つのグループのうち、1つのグループに前記乱数配列、他の1つのグループに前記反転乱数配列をそれぞれ適用してグループ内のポリゴンの順序を入れ替えた後、各グループの先頭から順に、前記ポリゴンの選択を行うことを特徴とする。   Also, in the third aspect of the present invention, the frequency distribution calculating means, when the number of polygons in each group is set to N / 3, is a random number array in which N / 3 consecutive integers are randomly replaced (shuffled). And generating an inverted random number array in which the order of the random number array from the beginning to the end is reversed, and among the three groups, the random number array is included in one group, and the inverted random number array is included in the other group. The polygons are selected in order from the top of each group after the order of the polygons in the group is changed by applying each array.

本発明第3の態様によれば、各グループのポリゴン数N/3の連続する整数をランダムに入れ替えた乱数配列を作成するとともに、乱数配列の先頭から末尾への順序を逆にした反転乱数配列を作成し、3つのグループのうち、1つのグループに乱数配列、他の1つのグループに反転乱数配列をそれぞれ適用してグループ内のポリゴンの順序を入れ替えた後、各グループの先頭から順に、ポリゴンの選択を行うようにしたので、3つのグループのポリゴンの配列順序を、三次元空間における位置からランダムに設定することができ、ランダムかつ互いに重複しないポリゴンの組み合わせで算出された三角形の外接円の半径に基づいて、外接円分布を求めることが可能となる。   According to the third aspect of the present invention, an inverted random number array in which a random number array in which consecutive integers of the number of polygons N / 3 in each group are randomly replaced is created and the order from the beginning to the end of the random number array is reversed After applying the random number array to one group and the inverted random number array to the other group, and changing the order of the polygons in the group, the polygons in order from the top of each group The arrangement order of the polygons of the three groups can be set randomly from the position in the three-dimensional space, and the circumscribed circle of the triangle calculated by the combination of the polygons that are random and do not overlap with each other can be selected. The circumscribed circle distribution can be obtained based on the radius.

また、本発明第4の態様では、前記度数分布算出手段は、
前記第1グループのポリゴンに前記乱数配列、前記第2グループのポリゴンに前記反転乱数配列をそれぞれ適用して順序を入れ替え、前記第3グループのポリゴンの順序を入れ替えずに前記ポリゴンの選択を行ってN/3個の三角形を形成し、
前記第2グループのポリゴンに前記乱数配列、前記第3グループのポリゴンに前記反転乱数配列をそれぞれ適用して順序を入れ替え、前記第1グループのポリゴンの順序を入れ替えずに前記ポリゴンの選択を行ってN/3個の三角形を形成し、
前記第3グループのポリゴンに前記乱数配列、前記第1グループのポリゴンに前記反転乱数配列をそれぞれ適用して順序を入れ替え、前記第2グループのポリゴンの順序を入れ替えずに前記ポリゴンの選択を行ってN/3個の三角形を形成することを特徴とする。
In the fourth aspect of the present invention, the frequency distribution calculating means includes
The random number array is applied to the first group of polygons and the inverted random number array is applied to the second group of polygons to change the order, and the polygons are selected without changing the order of the third group of polygons. N / 3 triangles are formed,
The random number array is applied to the second group of polygons and the inverted random number array is applied to the third group of polygons to change the order, and the polygons are selected without changing the order of the first group of polygons. N / 3 triangles are formed,
The random number array is applied to the third group of polygons and the inverted random number array is applied to the first group of polygons to change the order, and the polygons are selected without changing the order of the second group of polygons. N / 3 triangles are formed.

本発明第4の態様によれば、第1グループのポリゴンに乱数配列、第2グループのポリゴンに反転乱数配列をそれぞれ適用して順序を入れ替え、第3グループのポリゴンの順序を入れ替えずにポリゴンの選択を行ってN/3個の三角形を形成し、第2グループのポリゴンに乱数配列、第3グループのポリゴンに反転乱数配列をそれぞれ適用して順序を入れ替え、第1グループのポリゴンの順序を入れ替えずにポリゴンの選択を行ってN/3個の三角形を形成し、第3グループのポリゴンに乱数配列、第1グループのポリゴンに反転乱数配列をそれぞれ適用して順序を入れ替え、第2グループのポリゴンの順序を入れ替えずにポリゴンの選択を行ってN/3個の三角形を形成するようにしたので、ポリゴンモデルのポリゴン数Nと同数のトータルN個の三角形をランダムかつ互いに重複することなく形成することが可能となる。   According to the fourth aspect of the present invention, the random number array is applied to the first group of polygons and the reverse random number array is applied to the second group of polygons to change the order of the polygons without changing the order of the third group of polygons. Select to form N / 3 triangles, apply a random number array to the second group of polygons, and apply an inverted random number array to the third group of polygons to change the order, and change the order of the first group of polygons The polygons are selected to form N / 3 triangles, the order is changed by applying a random number array to the third group of polygons and an inverted random number array to the first group of polygons, and the second group of polygons. Since polygons are selected without changing the order of N / 3 triangles, the number of totas equal to the number N of polygons in the polygon model is set. N pieces of triangular can be formed without overlapping random and each other.

また、本発明第5の態様では、
前記度数分布算出手段は、
前記外接円分布を1回算出するごとに、前記3つのグループのうち2つのグループ内のポリゴンの順序を変化させて、前記外接円分布を改めて算出する処理を繰り返し行い、所定の回数、算出された外接円分布の平均値を、照合対象の外接円分布とするものであることを特徴とする。
In the fifth aspect of the present invention,
The frequency distribution calculating means includes:
Each time the circumscribed circle distribution is calculated, the order of polygons in two groups of the three groups is changed, and the process of calculating the circumscribed circle distribution is repeated to calculate a predetermined number of times. The average value of the circumscribed circle distribution is the circumscribed circle distribution to be verified.

本発明第5の態様によれば、外接円分布を1回算出するごとに、3つのグループのうち2つのグループ内のポリゴンの順序を変化させて、外接円分布を改めて算出する処理を繰り返し行い、所定の回数、算出された外接円分布の平均値を、照合対象の外接円分布とするようにしたので、既に算出されたN個の三角形とは重複しない新規なN個の三角形を基に外接円分布が算出され、外接円分布が更新されるようになるため、3つのポリゴンの組み合わせである三角形のサンプルが少な過ぎることにより外接円分布が特異な形態に偏らないように的確な外接円分布を得ることが可能となる。   According to the fifth aspect of the present invention, every time the circumscribed circle distribution is calculated, the process of calculating the circumscribed circle distribution again by changing the order of the polygons in two of the three groups is repeatedly performed. Since the average value of the circumscribed circle distribution calculated a predetermined number of times is set as the circumscribed circle distribution to be collated, based on the new N triangles that do not overlap with the already calculated N triangles. Since the circumscribed circle distribution is calculated and the circumscribed circle distribution is updated, the circumscribed circle is accurately adjusted so that the circumscribed circle distribution is not biased to a peculiar form because there are too few triangle samples that are combinations of three polygons. A distribution can be obtained.

また、本発明第6の態様では、
前記度数分布算出手段は、
前記外接円分布を1回算出するごとに、前記3つのグループのうち2つのグループ内のポリゴンの順序を変化させて、前記外接円分布を改めて算出する処理を繰り返し行い、
算出直後の外接円分布と、その直前に得られた前記外接円分布を比較し、比較の結果で類似性が認められる場合に、前記算出直後の外接円分布を、照合対象の外接円分布とするものであることを特徴とする。
In the sixth aspect of the present invention,
The frequency distribution calculating means includes:
Every time the circumscribed circle distribution is calculated, the order of polygons in two groups among the three groups is changed, and the process of calculating the circumscribed circle distribution is repeated.
When the circumscribed circle distribution immediately after the calculation is compared with the circumscribed circle distribution obtained immediately before and the similarity is found in the comparison result, the circumscribed circle distribution immediately after the calculation is referred to as the circumscribed circle distribution to be verified. It is a thing to do.

本発明第6の態様によれば、外接円分布を1回算出するごとに、3つのグループのうち2つのグループ内のポリゴンの順序を変化させて、外接円分布を改めて算出する処理を繰り返し行い、算出直後の外接円分布と、直前に得られた外接円分布を比較し、比較の結果で類似性が認められる場合に、算出直後の外接円分布を、照合対象の外接円分布とするようにしたので、3つのポリゴンの組み合わせである三角形のサンプルが少な過ぎることにより外接円分布が特異な形態に偏りそうか否かを自動的に判断しながら最適な外接円分布を得ることが可能となる。   According to the sixth aspect of the present invention, each time the circumscribed circle distribution is calculated once, the process of calculating the circumscribed circle distribution again is performed by changing the order of the polygons in two of the three groups. Compare the circumscribed circle distribution immediately after calculation with the circumscribed circle distribution obtained immediately before, and if the comparison shows similarities, the circumscribed circle distribution immediately after calculation is the circumscribed circle distribution to be verified. Therefore, it is possible to obtain the optimum circumscribed circle distribution while automatically judging whether or not the circumscribed circle distribution is likely to be biased to a peculiar form when there are too few triangular samples that are combinations of three polygons. Become.

また、本発明第7の態様では、前記度数分布算出手段は、前記外接円分布を算出するにあたり、所定数の要素で構成される1次元の配列を準備し、前記算出された外接円の半径の最大値の範囲を前記所定数に均等に分割した上で、前記各外接円の半径を当該外接円の半径の値に基づいて前記所定数のいずれかの要素(md)に割り当て、当該要素に該当する数(Hd(md))を計数することにより、前記外接円分布を算出するようにしていることを特徴とする。   In the seventh aspect of the present invention, the frequency distribution calculating means prepares a one-dimensional array composed of a predetermined number of elements when calculating the circumscribed circle distribution, and calculates the radius of the calculated circumscribed circle. The maximum value range is equally divided into the predetermined number, and the radius of each circumscribed circle is assigned to one of the predetermined number of elements (md) based on the value of the radius of the circumscribed circle. The circumscribed circle distribution is calculated by counting the number corresponding to (Hd (md)).

本発明第7の態様によれば、外接円分布を算出するにあたり、所定数の要素で構成される1次元の配列を準備し、算出された外接円の半径の最大値の範囲を所定数に均等に分割した上で、各外接円の半径を当該外接円の半径の値に基づいて所定数のいずれかの要素に割り当て、当該要素に該当する数を計数することにより、外接円分布を算出するようにしたので、ポリゴンモデルのスケールに依存しない外接円分布を算出することが可能となる。   According to the seventh aspect of the present invention, in calculating the circumscribed circle distribution, a one-dimensional array composed of a predetermined number of elements is prepared, and the range of the calculated maximum value of the radius of the circumscribed circle is set to the predetermined number. Dividing evenly, assigning the radius of each circumscribed circle to a predetermined number of elements based on the value of the radius of the circumscribed circle, and calculating the circumscribed circle distribution by counting the number corresponding to the element Therefore, it is possible to calculate a circumscribed circle distribution that does not depend on the scale of the polygon model.

また、本発明第8の態様では、前記データベースは、前記外接円分布に加えて、前記三角形の内接円の半径の度数分布である内接円分布が登録されたものであり、
前記度数分布算出手段は、前記対象モデルに対して、前記外接円分布に加えて、前記三角形の内接円の半径を算出し、算出結果である内接円の半径の度数分布である内接円分布を算出するものであり、
前記度数分布照合手段は、前記外接円分布に加えて、前記算出された内接円分布を、前記データベースに登録されている規制モデルの内接円分布と照合し、出力を規制すべきか否かを判定するものであることを特徴とする。
In the eighth aspect of the present invention, in addition to the circumscribed circle distribution, the database registers an inscribed circle distribution that is a frequency distribution of the radius of the inscribed circle of the triangle,
The frequency distribution calculating means calculates a radius of the inscribed circle of the triangle in addition to the circumscribed circle distribution for the target model, and calculates an inscribed shape that is a frequency distribution of the radius of the inscribed circle as a calculation result. To calculate the circle distribution,
Whether or not the frequency distribution matching means should check the calculated inscribed circle distribution in addition to the circumscribed circle distribution with the inscribed circle distribution of the restriction model registered in the database, and regulate the output. It is characterized by determining.

本発明第8の態様によれば、外接円分布に加えて、内接円の半径の度数分布である内接円分布がデータベースに登録されており、対象モデルに対して、外接円分布に加えて、三角形の内接円の半径を算出し、算出結果である内接円の半径の度数分布である内接円分布を算出し、外接円分布に加えて、算出された内接円分布を、データベースに登録されている規制モデルの内接円分布と照合し、出力を規制すべきか否かを判定するようにしたので、複数の観点から2つのポリゴンモデルの類似性を判定することになり、出力を規制すべきか否かの判定をより的確に行うことが可能となる。   According to the eighth aspect of the present invention, in addition to the circumscribed circle distribution, an inscribed circle distribution, which is a frequency distribution of the radius of the inscribed circle, is registered in the database. The inscribed circle radius of the triangle is calculated, the inscribed circle distribution that is the frequency distribution of the inscribed circle radius as the calculation result is calculated, and in addition to the circumscribed circle distribution, the calculated inscribed circle distribution is calculated. Since it is checked whether the output should be regulated by comparing with the inscribed circle distribution of the regulation model registered in the database, the similarity between the two polygon models is judged from a plurality of viewpoints. Therefore, it is possible to more accurately determine whether the output should be regulated.

また、本発明第9の態様では、前記度数分布算出手段は、前記内接円分布を算出するにあたり、所定数の要素で構成される1次元の配列を準備し、前記算出された内接円の半径の範囲を前記所定数に均等に分割した上で、前記各内接円の半径を当該内接円の半径の値に基づいて前記所定数のいずれかの要素(ma)に割り当て、当該要素に該当する数(Ha(ma))を計数することにより、前記内接円分布を算出するようにしていることを特徴とする。   In the ninth aspect of the present invention, the frequency distribution calculating means prepares a one-dimensional array composed of a predetermined number of elements when calculating the inscribed circle distribution, and calculates the calculated inscribed circle. The radius range of each inscribed circle is equally divided into the predetermined number, and the radius of each inscribed circle is assigned to one of the predetermined number of elements (ma) based on the value of the radius of the inscribed circle. The inscribed circle distribution is calculated by counting the number corresponding to the element (Ha (ma)).

本発明第9の態様によれば、内接円分布を算出するにあたり、所定数の要素で構成される1次元の配列を準備し、算出された内接円の半径の範囲を所定数に均等に分割した上で、各内接円の半径を当該内接円の半径の値に基づいて所定数のいずれかの要素に割り当て、当該要素に該当する数を計数することにより、内接円分布を算出するようにしたので、3つのポリゴンで形成される三角形の内接円の半径に基づいて容易に内接円分布を算出することが可能となる。   According to the ninth aspect of the present invention, in calculating the inscribed circle distribution, a one-dimensional array composed of a predetermined number of elements is prepared, and the calculated radius range of the inscribed circle is made equal to the predetermined number. Distribution of the inscribed circle by assigning the radius of each inscribed circle to a predetermined number of elements based on the value of the radius of the inscribed circle and counting the number corresponding to the element. Therefore, the inscribed circle distribution can be easily calculated based on the radius of the inscribed circle of the triangle formed by the three polygons.

また、本発明第10の態様では、前記度数分布算出手段は、前記要素に該当する数を計数する際、前記選択された3つのポリゴンの面積の平均値で重み付けするようにしていることを特徴とする。   In the tenth aspect of the present invention, the frequency distribution calculating means weights the average number of areas of the three selected polygons when counting the number corresponding to the element. And

本発明第10の態様によれば、外接円分布または内接円分布を算出するにあたり、割り当てられた要素に該当する数を計数する際、選択された3つのポリゴンの面積の平均値で重み付けするようにしたので、ポリゴン分割の精細度の差異が、外接円分布または内接円分布にあまり反映せず、ポリゴン分割の精細度が異なる複数のポリゴンモデルに対して同一(出力を規制すべき)であると判定させることが可能となる。   According to the tenth aspect of the present invention, when calculating the circumscribed circle distribution or the inscribed circle distribution, the number corresponding to the assigned element is weighted with the average value of the areas of the three selected polygons. As a result, the difference in definition of polygon division does not reflect much on the circumscribed circle distribution or inscribed circle distribution, and is the same for multiple polygon models with different polygon division details (output should be regulated) It can be determined that

また、本発明第11の態様では、前記度数分布算出手段は、前記各対象モデルを構成するポリゴンの面積の総和値(Ssum)により、前記各要素の値(Hd(md)、Ha(ma))を除算するようにしていることを特徴とする。   In the eleventh aspect of the present invention, the frequency distribution calculating means may calculate the value of each element (Hd (md), Ha (ma) based on a total area value (Ssum) of polygons constituting each target model. ) Is divided.

本発明第11の態様によれば、外接円分布または内接円分布を算出するにあたり、各対象モデルを構成するポリゴンの面積の総和値により、各要素の値を除算するようにしたので、対象モデルの表面積や容積の影響を排除した外接円分布または内接円分布を得ることが可能となる。   According to the eleventh aspect of the present invention, in calculating the circumscribed circle distribution or the inscribed circle distribution, the value of each element is divided by the total value of the areas of the polygons constituting each target model. It is possible to obtain a circumscribed circle distribution or an inscribed circle distribution excluding the influence of the surface area and volume of the model.

また、本発明第12の態様では、出力対象のポリゴンモデルである対象モデルを複数の部分対象モデルに分離する対象モデル分離手段を更に備え、前記部分対象モデルに対して、前記度数分布算出手段が処理を行うことを特徴とする。   The twelfth aspect of the present invention further includes target model separation means for separating a target model, which is a polygon model to be output, into a plurality of partial target models, and the frequency distribution calculating means is provided for the partial target model. It is characterized by performing processing.

本発明第12の態様によれば、まず、対象モデルを複数の部分対象モデルに分離し、各部分対象モデルに対して、外接円分布、内接円分布を算出するようにしたので、複数の部品で構成される物品を表現した対象モデルの照合の際、規制モデルと対象モデルとで互いに部品構成が異なる場合でも、適切に出力が適正か否かの判断を行うことが可能となる。   According to the twelfth aspect of the present invention, first, the target model is separated into a plurality of partial target models, and the circumscribed circle distribution and the inscribed circle distribution are calculated for each partial target model. When collating a target model representing an article composed of parts, it is possible to appropriately determine whether or not the output is appropriate even when the restriction model and the target model have different part configurations.

また、本発明第13の態様では、前記ポリゴンは三角形状であり、前記対象モデル分離手段は、あるポリゴンと、当該ポリゴンと辺を共有する3つの隣接ポリゴンが、同一の部分対象モデルに属するように、分離することを特徴とする。   In the thirteenth aspect of the present invention, the polygon has a triangular shape, and the target model separation unit is configured so that a polygon and three adjacent polygons sharing sides with the polygon belong to the same partial target model. It is characterized by separating.

本発明第13の態様によれば、ポリゴンは三角形状であり、対象モデル分離手段は、あるポリゴンと、そのポリゴンと辺を共有する3つの隣接ポリゴンが、同一の部分対象モデルに属するように分離するようにしたので、複数の部品で構成される物品を表現した対象モデルを、迅速かつ的確に複数の部分対象モデルに分離することが可能となる。   According to the thirteenth aspect of the present invention, the polygon has a triangular shape, and the target model separation means separates the polygon and the three adjacent polygons sharing the sides with the polygon to belong to the same partial target model. Since it was made to do, it becomes possible to isolate | separate the object model expressing the articles | goods comprised by several components into several partial object model rapidly and accurately.

また、本発明第14の態様では、
前記度数分布照合手段は、前記度数分布算出手段により前記対象モデルから算出された外接円分布を前記データベースに登録されている前記外接円分布と照合するにあたり、
前記外接円分布どうしの相関係数を算出し、算出された相関係数が所定の正のしきい値より大きい場合に、出力を規制すべきであると判定するようにしていることを特徴とする。
In the fourteenth aspect of the present invention,
The frequency distribution matching means, in matching the circumscribed circle distribution calculated from the target model by the frequency distribution calculating means with the circumscribed circle distribution registered in the database,
A correlation coefficient between the circumscribed circle distributions is calculated, and when the calculated correlation coefficient is larger than a predetermined positive threshold value, it is determined that the output should be regulated. To do.

本発明第14の態様によれば、対象モデルから算出された外接円分布をデータベースに登録されている外接円分布と照合するにあたり、外接円分布同士の相関係数を算出し、算出された相関係数が所定の正のしきい値より大きい場合に、出力を規制すべきであると判定するようにしたので、対象モデルと規制モデルの特徴の照合を、迅速かつ的確に行うことが可能となる。   According to the fourteenth aspect of the present invention, in comparing the circumscribed circle distribution calculated from the target model with the circumscribed circle distribution registered in the database, the correlation coefficient between the circumscribed circle distributions is calculated, and the calculated phase is calculated. Since it is determined that the output should be regulated when the number of relations is greater than a predetermined positive threshold, it is possible to quickly and accurately match the features of the target model and the regulated model. Become.

また、本発明第15の態様では、前記規制モデルに対して、当該規制モデル内から選択された3つのポリゴン上の所定の点により形成される三角形の外接円の半径を算出し、外接円の半径の度数分布である外接円分布を算出する規制モデル度数分布算出装置により算出された外接円分布を受信し、受信した外接円分布を前記データベースに登録する登録手段を更に有することを特徴とする。   In the fifteenth aspect of the present invention, a radius of a circumscribed circle of a triangle formed by predetermined points on three polygons selected from the restricted model is calculated for the restricted model, The apparatus further comprises registration means for receiving the circumscribed circle distribution calculated by the regulatory model frequency distribution calculating device for calculating the circumscribed circle distribution which is a frequency distribution of the radius, and registering the received circumscribed circle distribution in the database. .

本発明第15の態様によれば、規制モデルに対して、規制モデル内から選択された3つのポリゴン上の所定の点により形成される三角形の外接円の半径を算出し、外接円の半径の度数分布である外接円分布を算出する規制モデル度数分布算出装置を別途用意し、この規制モデル度数分布算出装置から規制モデルの外接円分布を受信し、データベースに登録するようにしたので、データベースの更新を遠隔地から迅速に行うことが可能となる。   According to the fifteenth aspect of the present invention, a radius of a circumscribed circle of a triangle formed by predetermined points on three polygons selected from within the restricted model is calculated with respect to the restricted model, and the radius of the circumscribed circle is calculated. A regulation model frequency distribution calculation device that calculates the circumscribed circle distribution, which is a frequency distribution, is prepared separately, and the circumscribed circle distribution of the regulatory model is received from this regulatory model frequency distribution calculation device and registered in the database. Updates can be made quickly from a remote location.

また、本発明第16の態様では、
前記規制モデル度数分布算出装置は、前記規制モデルに対して、当該規制モデル内のポリゴンを第1グループ、第2グループ、第3グループの3つのグループに分類し、各グループから1つずつポリゴンを選択することにより、前記3つのポリゴンを選択することを特徴とする。
In the sixteenth aspect of the present invention,
The restriction model frequency distribution calculating device classifies the polygons in the restriction model into three groups of a first group, a second group, and a third group with respect to the restriction model, and assigns one polygon from each group. By selecting, the three polygons are selected.

本発明第16の態様によれば、規制モデル度数分布算出装置により規制モデルから外接円分布を算出する際、規制モデル内のポリゴンを第1グループ、第2グループ、第3グループの3つのグループに分類し、各グループから1つずつポリゴンを選択することにより、3つのポリゴンを選択するようにしたので、規制モデルの外接円分布を算出する際においても、三角形を形成するための3つのポリゴンの組み合わせを互いに重複することなく作成することができ、効率的な処理を行うことが可能となる。   According to the sixteenth aspect of the present invention, when the circumscribed circle distribution is calculated from the restriction model by the restriction model frequency distribution calculation device, the polygons in the restriction model are divided into three groups of the first group, the second group, and the third group. Since three polygons are selected by classifying and selecting one polygon from each group, when calculating the circumscribed circle distribution of the regulatory model, the three polygons for forming the triangle are also selected. Combinations can be created without overlapping each other, and efficient processing can be performed.

また、本発明第17の態様では、
前記対象モデルを、接続された立体物造形装置に出力する手段と、
前記立体物造形装置による立体物の造形処理と並行して実行される前記度数分布照合手段により、出力を規制すべきである(出力不適)と判定された場合に、前記立体物造形装置に、前記対象モデルの出力中止命令を出力する手段と、
を更に有することを特徴とする。
In the seventeenth aspect of the present invention,
Means for outputting the target model to a connected three-dimensional object shaping apparatus;
When it is determined that the output should be regulated (output inappropriate) by the frequency distribution matching unit executed in parallel with the three-dimensional object modeling process by the three-dimensional object modeling apparatus, Means for outputting an output stop command of the target model;
It further has these.

本発明第17の態様によれば、対象モデルを、接続された立体物造形装置に出力し、並行して実行される度数分布照合手段による照合の結果、出力を規制すべきであると判定された場合に、立体物造形装置に、対象モデルの出力中止命令を出力するようにしたので、時間のかかる立体物の造形を遅延させることなく、出力不適の場合にのみ、出力を中止することが可能となる。   According to the seventeenth aspect of the present invention, the target model is output to the connected three-dimensional object shaping apparatus, and it is determined that the output should be restricted as a result of the collation performed by the frequency distribution collation means executed in parallel. In this case, since the output stop command for the target model is output to the three-dimensional object modeling apparatus, the output can be canceled only when the output is inappropriate without delaying the modeling of the three-dimensional object that takes time. It becomes possible.

また、本発明第18の態様では、
出力制御用端末と、処理サーバがネットワークを介して接続された構成であって、
前記出力制御用端末は、前記度数分布算出手段を有し、
前記処理サーバは、
前記データベースと、
ネットワークを介して前記出力制御用端末から前記対象モデルの外接円分布を受信する受信手段と、
前記度数分布照合手段と、
前記度数分布照合手段により判定された、出力を規制すべきか否かに基づくデータを前記出力制御用端末に送信する出力適否データ送信手段と、
を有することを特徴とする。
In the eighteenth aspect of the present invention,
The output control terminal and the processing server are connected via a network,
The output control terminal has the frequency distribution calculating means,
The processing server
The database;
Receiving means for receiving a circumscribed circle distribution of the target model from the output control terminal via a network;
The frequency distribution matching means;
Output suitability data transmission means for transmitting data based on whether the output should be regulated or not, determined by the frequency distribution matching means, to the output control terminal;
It is characterized by having.

本発明第18の態様によれば、ネットワークを介して対象モデルの外接円分布を受信し、出力を規制すべきか否かの判定により得られた出力を規制すべきか否かに基づくデータを対象モデルの外接円分布の送信元に送信するようにしたので、出力を規制すべきか否かの判定をクラウド型で提供することができ、出力側における処理を軽減することができる。更に、データベースをクラウド側で一元管理でき、3Dプリンタ等の立体物造形装置ごとに接続されている出力制御用端末内でデータベースを管理する必要がないため、常に最新のデータベースに基づいて出力を規制すべきか否かの判定を行うことが可能になる。   According to the eighteenth aspect of the present invention, the target model receives data based on whether the output obtained by receiving the circumscribed circle distribution of the target model via the network and determining whether the output should be regulated or not. Since it is transmitted to the transmission source of the circumscribed circle distribution, it is possible to provide the cloud type determination as to whether or not the output should be regulated, and to reduce the processing on the output side. In addition, the database can be centrally managed on the cloud side, and there is no need to manage the database in the output control terminal connected to each 3D object shaping device such as a 3D printer, so the output is always regulated based on the latest database. It is possible to determine whether or not to do so.

また、本発明第19の態様では、
前記立体物造形用データ出力規制装置と、
前記立体物造形用データ出力規制装置で出力が許可されたポリゴンモデルを用いて立体物を造形する立体物造形装置と、
を有することを特徴とする立体物造形システムを提供する。
In the nineteenth aspect of the present invention,
The three-dimensional object shaping data output restriction device;
A three-dimensional object modeling apparatus that models a three-dimensional object using a polygon model whose output is permitted by the three-dimensional object modeling data output restriction device;
There is provided a three-dimensional object forming system.

本発明第19の態様によれば、立体物造形用データ出力規制装置と、立体物造形用データ出力規制装置で出力が許可されたポリゴンモデルを用いて立体物を造形する立体物造形装置により立体物造形システムを実現するようにしたので、ボードコンピュータを組み込んだ3Dプリンタ等の形態で、立体物造形システムを提供することが可能となる。   According to the nineteenth aspect of the present invention, the three-dimensional object modeling data output restricting device and the three-dimensional object modeling device that models the three-dimensional object using the polygon model whose output is permitted by the three-dimensional object modeling data output restricting device. Since the object modeling system is realized, the three-dimensional object modeling system can be provided in the form of a 3D printer or the like incorporating a board computer.

また、本発明第20の態様では、
ポリゴンの集合として表現されたポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきか否かを判定するために、前記ポリゴンモデルを基に度数分布を作成する装置であって、
出力対象のポリゴンモデルである対象モデルに対して、当該対象モデル内から選択された3つのポリゴン上の所定の点により形成される三角形の外接円の半径を算出し、外接円の半径の度数分布である外接円分布を算出する度数分布算出装置を提供する。
In the twentieth aspect of the present invention,
A device that creates a frequency distribution based on the polygon model in order to determine whether or not to restrict when a polygon model expressed as a set of polygons is output to the three-dimensional object modeling device as three-dimensional object modeling data. There,
For the target model that is the polygon model to be output, calculate the radius of the circumscribed circle of the triangle formed by the predetermined points on the three polygons selected from the target model, and the frequency distribution of the radius of the circumscribed circle Provided is a frequency distribution calculating device for calculating a circumscribed circle distribution.

本発明第20の態様によれば、出力対象のポリゴンモデルである対象モデルに対して、当該対象モデル内から選択された3つのポリゴン上の所定の点により形成される三角形の外接円の半径を算出し、外接円の半径の度数分布である外接円分布を算出するようにしたので、ポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきか否かを判定するための度数分布を少ない処理負荷で高速に作成することが可能となる。   According to the twentieth aspect of the present invention, for a target model that is a polygon model to be output, a radius of a circumscribed circle of a triangle formed by predetermined points on three polygons selected from the target model is set. Since the circumscribed circle distribution, which is a frequency distribution of the radius of the circumscribed circle, is calculated, it is determined whether or not the regulation should be performed when outputting the polygon model to the three-dimensional object modeling apparatus as the three-dimensional object modeling data. Therefore, the frequency distribution can be created at a high speed with a small processing load.

本発明によれば、ポリゴンモデルを基に立体物の出力を行う際に、出力を規制すべきか否かの判定を少ない処理負荷で高速に行うことが可能となる。   According to the present invention, when outputting a three-dimensional object based on a polygon model, it is possible to determine at a high speed with a small processing load whether or not the output should be restricted.

本発明の一実施形態に係る立体物造形用データ出力規制装置100を含む立体物造形システムのハードウェア構成図である。1 is a hardware configuration diagram of a three-dimensional object formation system including a three-dimensional object formation data output restriction device 100 according to an embodiment of the present invention. 本発明の一実施形態に係る立体物造形用データ出力規制装置の構成を示す機能ブロック図である。It is a functional block diagram which shows the structure of the data output control apparatus for solid object modeling which concerns on one Embodiment of this invention. 本発明の一実施形態に係る立体物造形用データ出力規制装置の処理概要を示すフローチャートである。It is a flowchart which shows the process outline | summary of the data output control apparatus for solid object shaping which concerns on one Embodiment of this invention. ステップS100の度数分布の算出処理の第1の手法の詳細を示すフローチャートである。It is a flowchart which shows the detail of the 1st method of the calculation process of the frequency distribution of step S100. ステップS100の度数分布の算出処理の第2の手法の詳細を示すフローチャートである。It is a flowchart which shows the detail of the 2nd method of calculation processing of the frequency distribution of step S100. 対象モデルから得られた外接円分布と内接円分布における外接円と内接円を示す図である。It is a figure which shows the circumscribed circle and the inscribed circle in the circumscribed circle distribution and the inscribed circle distribution obtained from the target model. ステップS200の度数分布の照合処理の詳細を示すフローチャートである。It is a flowchart which shows the detail of the collation process of the frequency distribution of step S200. 対象モデル分離手段による対象モデル分離処理の詳細を示すフローチャートである。It is a flowchart which shows the detail of the object model separation process by an object model separation means. 分離処理の対象とするポリゴン群の一例を示す図である。It is a figure which shows an example of the polygon group made into the object of a separation process. 図9に示したポリゴン群を実現するための頂点座標配列データを示す図である。It is a figure which shows the vertex coordinate arrangement | sequence data for implement | achieving the polygon group shown in FIG. ポリゴンモデルの構造化の詳細を示すフローチャートである。It is a flowchart which shows the detail of structuring of a polygon model. ポリゴン群とハッシュ値の関係を示す図である。It is a figure which shows the relationship between a polygon group and a hash value. 初期化時の各テーブルの状態を示す図である。It is a figure which shows the state of each table at the time of initialization. 各テーブルの変化の様子を示す図である。It is a figure which shows the mode of a change of each table. 各テーブルの変化の様子を示す図である。It is a figure which shows the mode of a change of each table. 各テーブルの変化の様子を示す図である。It is a figure which shows the mode of a change of each table. 各テーブルの変化の様子を示す図である。It is a figure which shows the mode of a change of each table. 各テーブルの変化の様子を示す図である。It is a figure which shows the mode of a change of each table. ポリゴンモデルの構造化の結果を示す図である。It is a figure which shows the result of structuring of a polygon model. ステップS20のポリゴン稜線の構造化の詳細を示すフローチャートである。It is a flowchart which shows the detail of structuring of the polygon ridgeline of step S20. ポリゴンP1の稜線構成が記録された時点の各テーブルの状態を示す図である。It is a figure which shows the state of each table at the time of the ridgeline structure of the polygon P1 being recorded. ポリゴンP2の稜線構成が記録された時点の各テーブルの状態を示す図である。It is a figure which shows the state of each table at the time of the ridgeline structure of the polygon P2 being recorded. ポリゴンP3の稜線構成が記録された時点の各テーブルの状態を示す図である。It is a figure which shows the state of each table at the time of the ridgeline structure of the polygon P3 being recorded. ポリゴンP18の稜線構成が記録された時点の各テーブルの状態を示す図である。It is a figure which shows the state of each table at the time of the ridgeline structure of the polygon P18 being recorded. 完成した稜線構成テーブル、稜線テーブルを示す図である。It is a figure which shows the completed ridgeline structure table and ridgeline table. ステップS30の隣接ポリゴンテーブルの作成の詳細を示すフローチャートである。It is a flowchart which shows the detail of preparation of the adjacent polygon table of step S30. ポリゴンP2のポリゴン別稜線IDが記録された時点の各テーブルの状態を示す図である。It is a figure which shows the state of each table at the time of recording the edge line ID for each polygon of the polygon P2. ポリゴンP4のポリゴン別稜線IDが記録された時点の各テーブルの状態を示す図である。It is a figure which shows the state of each table at the time of recording the edge line ID for each polygon of the polygon P4. ポリゴンP18のポリゴン別稜線IDが記録された時点の各テーブルの状態を示す図である。It is a figure which shows the state of each table at the time of recording the edge line ID for each polygon of the polygon P18. ステップS10で完成した頂点構成テーブル、ステップS20で完成した稜線構成テーブル、ステップS30で完成した隣接ポリゴンテーブルを示す図である。It is a figure which shows the vertex structure table completed by step S10, the ridgeline structure table completed by step S20, and the adjacent polygon table completed by step S30. ステップS40のポリゴンモデルの分離の詳細を示すフローチャートである。It is a flowchart which shows the detail of isolation | separation of the polygon model of step S40. 変形例における立体物造形用データ出力規制装置を含む立体物造形システムのハードウェア構成図である。It is a hardware block diagram of the solid object modeling system containing the data output control apparatus for solid object modeling in a modification. クラウド型の立体物造形システムのハードウェア構成図である。It is a hardware block diagram of a cloud type solid thing modeling system. クラウド型の立体物造形システムの機能ブロック図である。It is a functional block diagram of a cloud type solid thing modeling system. 球体についての度数分布算出事例を示す図である。It is a figure which shows the frequency distribution calculation example about a sphere. 球体についての度数分布算出事例を示す図である。It is a figure which shows the frequency distribution calculation example about a sphere. 模擬拳銃についての度数分布算出事例を示す図である。It is a figure which shows the frequency distribution calculation example about a simulation handgun.

以下、本発明の好適な実施形態について図面を参照して詳細に説明する。
<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と、を備え、互いにバスを介して接続されている。
DESCRIPTION OF EXEMPLARY EMBODIMENTS Hereinafter, preferred embodiments of the invention will be described in detail with reference to the drawings.
<1. Device configuration>
FIG. 1 is a hardware configuration diagram of a three-dimensional object formation system including a three-dimensional object formation data output restriction device 100 according to an embodiment of the present invention. The three-dimensional object modeling data output restriction device 100 according to the present embodiment can be realized by a general-purpose computer. As shown in FIG. 1, a CPU (Central Processing Unit) 1 and a RAM (a main memory of the computer) Random Access Memory) 2, a large-capacity storage device 3 such as a hard disk or flash memory for storing programs and data executed by the CPU 1, a key input I / F (interface) 4 such as a keyboard and a mouse, and 3D A data input / output I / F (interface) 5 for data communication with an external device such as a printer or a data storage medium and a display unit 6 which is a display device such as a liquid crystal display are connected to each other via a bus. ing.

3Dプリンタ7は、汎用の3Dプリンタであり、立体物の三次元形状をポリゴンの集合で表現したポリゴンモデルである立体物造形用データを基に樹脂、石膏等の素材を加工して立体物を造形する立体物造形装置である。3Dプリンタ7は、データ処理部7aと出力部7bを有している。3Dプリンタ7のデータ処理部7aは、データ入出力I/F5に接続されており、データ入出力I/F5から受け取った立体物造形用データを基に、出力部7bが立体物を造形するようになっている。   The 3D printer 7 is a general-purpose 3D printer, which processes a material such as resin and gypsum on the basis of data for modeling a three-dimensional object, which is a polygon model expressing the three-dimensional shape of the three-dimensional object as a set of polygons. It is a three-dimensional object modeling apparatus to model. The 3D printer 7 includes a data processing unit 7a and an output unit 7b. The data processing unit 7a of the 3D printer 7 is connected to the data input / output I / F 5 so that the output unit 7b models the three-dimensional object based on the three-dimensional object modeling data received from the data input / output I / F 5. It has become.

図1では、立体物造形用データ出力規制装置100と3Dプリンタ7は分離した形態で示されているが、現在市販されている殆どの3Dプリンタ製品には立体物造形用データ出力規制装置100の構成要素である、CPU1、RAM2、記憶装置3、キー入力I/F4(汎用コンピュータ向けキーボード・マウスではなく、テンキーレベルの数種のボタン)、データ入出力I/F5、表示部6(数行の文字を表示可能な小型液晶パネルやタッチパネルを重畳させてキー入力I/F4を兼ねることも多い)も小規模ながら重複して備えている。従って、3Dプリンタ7自体が外部記憶媒体経由で立体物造形用データを直接受け取り、単独で立体物を造形する運用も可能になっている(特に民生用の3Dプリンタではこちらの形態の方が多い)。すなわち、図1に示した立体物造形システムを1つの筐体に収めて、“3Dプリンタ”という製品として流通することも多い。   In FIG. 1, the three-dimensional object formation data output restriction device 100 and the 3D printer 7 are shown in a separated form, but most of the 3D printer products currently on the market include the three-dimensional object formation data output restriction device 100. Constituent elements, such as CPU1, RAM2, storage device 3, key input I / F4 (not a keyboard / mouse for general-purpose computers, but several buttons at a numeric keypad level), data input / output I / F5, display unit 6 (several lines) A small liquid crystal panel or a touch panel capable of displaying the above characters is often used as a key input I / F 4 in an overlapping manner. Accordingly, the 3D printer 7 itself can directly receive the three-dimensional object modeling data via the external storage medium, and can be operated to model the three-dimensional object alone (particularly this is more common in a 3D printer for consumer use). ). That is, the three-dimensional object modeling system shown in FIG. 1 is often housed in one housing and distributed as a product called “3D printer”.

図2は、本実施形態に係る立体物造形用データ出力規制装置の構成を示す機能ブロック図である。図2において、10は度数分布算出手段、20は度数分布照合手段、30は対象モデル記憶手段、40は規制モデルデータベースである。度数分布算出手段10は、出力対象のポリゴンモデルである対象モデルに対して、対象モデル内のポリゴンにより形成された三角形の外接円の半径と内接円の半径を算出し、算出結果である外接円の半径の度数分布である外接円分布と、内接円の半径の度数分布である内接円分布を算出する処理を行う。度数分布照合手段20は、対象モデルについて算出された外接円分布、内接円分布をそれぞれ、規制モデルデータベース40に登録されている規制モデルの外接円分布、内接円分布と照合し、出力を規制すべきか否か、すなわち出力不適であるか出力適正であるかを判定する。   FIG. 2 is a functional block diagram illustrating a configuration of the three-dimensional object formation data output restriction device according to the present embodiment. In FIG. 2, 10 is a frequency distribution calculating means, 20 is a frequency distribution matching means, 30 is a target model storage means, and 40 is a regulation model database. The frequency distribution calculating means 10 calculates the circumscribed circle radius and the inscribed circle radius of the triangle formed by the polygons in the target model for the target model which is the polygon model to be output, and the circumscribed circle that is the calculation result Processing for calculating a circumscribed circle distribution that is a frequency distribution of the radius of the circle and an inscribed circle distribution that is a frequency distribution of the radius of the inscribed circle is performed. The frequency distribution matching unit 20 compares the circumscribed circle distribution and the inscribed circle distribution calculated for the target model with the circumscribed circle distribution and the inscribed circle distribution of the restriction model registered in the restriction model database 40, and outputs the result. It is determined whether or not to regulate, that is, whether the output is inappropriate or appropriate.

度数分布算出手段10、度数分布照合手段20は、CPU1が、記憶装置3に記憶されているプログラムを実行することにより実現される。対象モデル記憶手段30は、出力を規制すべきか否かの判定対象となるポリゴンモデルである対象モデルを記憶した記憶手段であり、記憶装置3により実現される。ポリゴンモデルとは、ポリゴンの集合により三次元空間における所定の立体形状を表現したデータであり、3Dプリンタ等の立体物造形装置に立体物造形用データとして出力されるものである。本実施形態では、ポリゴンモデルのデータ形式としてSTL(Standard Triangulated Language)を採用している。   The frequency distribution calculating unit 10 and the frequency distribution matching unit 20 are realized by the CPU 1 executing a program stored in the storage device 3. The target model storage unit 30 is a storage unit that stores a target model, which is a polygon model that is a determination target of whether or not output should be restricted, and is realized by the storage device 3. The polygon model is data representing a predetermined three-dimensional shape in a three-dimensional space by a set of polygons, and is output as three-dimensional object modeling data to a three-dimensional object modeling apparatus such as a 3D printer. In this embodiment, STL (Standard Triangulated Language) is adopted as the data format of the polygon model.

規制モデルデータベース40は、出力を規制すべきポリゴンモデルである規制モデルに対して2種の度数分布として算出された外接円分布および内接円分布を記憶して、データベース化したものであり、記憶装置3により実現される。2種の度数分布である外接円分布および内接円分布は、規制モデルの特徴を表現した特徴ベクトルとしての役割を果たすものとなる。すなわち、2種の度数分布により、元の規制モデルの相違を識別可能であるが、元の規制モデルを復元できるわけではない。これは、指紋(フィンガープリント)により個人の相違を識別可能であるが、人物の姿そのものを復元できるわけではないのと同様である。したがって、2種の度数分布は、著作物としての役割は果たさないが、2つの著作物の同一性を証明する、いわゆるフィンガープリントとしての役割も果たすことになる。規制モデルデータベース40には、外接円分布および内接円分布だけでなく、外接円分布および内接円分布の算出の基になった規制モデル自体を登録しておくことも可能であるが、通常は、著作権の問題から規制モデル自体は登録されていない。   The restriction model database 40 stores a circumscribed circle distribution and an inscribed circle distribution calculated as two types of frequency distributions with respect to a restriction model that is a polygon model whose output is to be restricted. This is realized by the device 3. The circumscribed circle distribution and the inscribed circle distribution, which are two kinds of frequency distributions, serve as feature vectors representing the features of the regulation model. That is, the difference between the original restriction models can be identified by the two types of frequency distributions, but the original restriction model cannot be restored. This is similar to the fact that individual differences can be identified by fingerprints, but the figure of the person itself cannot be restored. Therefore, the two frequency distributions do not play a role as a work, but also play a role as a so-called fingerprint that proves the identity of the two works. In the regulation model database 40, it is possible to register not only the circumscribed circle distribution and the inscribed circle distribution but also the regulation model itself that is a basis for calculating the circumscribed circle distribution and the inscribed circle distribution. The regulatory model itself is not registered due to copyright issues.

図2に示した各構成手段は、現実には図1に示したように、コンピュータおよびその周辺機器等のハードウェアに専用のプログラムを搭載することにより実現される。すなわち、コンピュータが、専用のプログラムに従って各手段の内容を実行することになる。なお、本明細書において、コンピュータとは、CPU等の演算処理部を有し、データ処理が可能な装置を意味し、パーソナルコンピュータなどの汎用コンピュータだけでなく、製品としての“3Dプリンタ”に組み込まれたボードコンピュータも含む。   Each component shown in FIG. 2 is actually realized by installing a dedicated program in hardware such as a computer and its peripheral devices as shown in FIG. That is, the computer executes the contents of each means according to a dedicated program. In this specification, the computer means an apparatus having an arithmetic processing unit such as a CPU and capable of data processing, and is incorporated not only in a general-purpose computer such as a personal computer but also in a “3D printer” as a product. Board computer included.

図1に示した記憶装置3には、CPU1を動作させ、コンピュータを、立体物造形用データ出力規制装置として機能させるための専用のプログラムが実装されている。この専用のプログラムを実行することにより、CPU1は、度数分布算出手段10、度数分布照合手段20としての機能を実現することになる。また、記憶装置3は、対象モデル記憶手段30、規制モデルデータベース40として機能するだけでなく、立体物造形用データ出力規制装置としての処理に必要な様々なデータを記憶する。   In the storage device 3 shown in FIG. 1, a dedicated program for operating the CPU 1 and causing the computer to function as a three-dimensional object formation data output restriction device is mounted. By executing this dedicated program, the CPU 1 realizes functions as the frequency distribution calculating means 10 and the frequency distribution matching means 20. The storage device 3 not only functions as the target model storage unit 30 and the restriction model database 40 but also stores various data necessary for processing as the three-dimensional object formation data output restriction device.

図1に示したハードウェア構成において、コンピュータを、度数分布算出手段10として機能させるための専用のプログラムのみを記憶装置3に実装しておくことにより、度数分布を算出するための度数分布算出装置を実現することもできる。度数分布算出装置は、対象モデル記憶手段30から読み込んだ対象モデルを基に、2種の度数分布を算出して出力する。出力された度数分布は、別途、度数分布照合手段20、規制モデルデータベース40を備えた装置に入力され、照合および出力規制の判定を行うことができる。   In the hardware configuration shown in FIG. 1, a frequency distribution calculating device for calculating a frequency distribution is provided by mounting only a dedicated program for causing the computer to function as the frequency distribution calculating means 10 in the storage device 3. Can also be realized. The frequency distribution calculation apparatus calculates and outputs two types of frequency distributions based on the target model read from the target model storage unit 30. The output frequency distribution is separately input to a device provided with the frequency distribution matching means 20 and the restriction model database 40, so that the matching and the output restriction can be determined.

<2.処理動作>
<2.1.前処理>
次に、図1、図2に示した立体物造形用データ出力規制装置の処理動作について説明する。まず、規制対象とするポリゴンモデルである規制モデルについて、2種の度数分布である外接円分布および内接円分布を作成する。ポリゴンモデルからの外接円分布および内接円分布の作成については、後述する立体物造形用データ出力規制装置における処理と同様にして行うことができる。規制モデルからの外接円分布および内接円分布の作成は、立体物造形用データ出力規制装置で行ってもよいし、別のコンピュータで同様のプログラムを実行することにより行ってもよい。作成された外接円分布および内接円分布は、規制モデルデータベース40に登録される。
<2. Processing action>
<2.1. Pretreatment>
Next, the processing operation of the three-dimensional object formation data output restriction device shown in FIGS. 1 and 2 will be described. First, a circumscribed circle distribution and an inscribed circle distribution, which are two types of frequency distributions, are created for a regulated model that is a polygon model to be regulated. The creation of the circumscribed circle distribution and the inscribed circle distribution from the polygon model can be performed in the same manner as the processing in the three-dimensional object formation data output restriction device described later. Creation of the circumscribed circle distribution and the inscribed circle distribution from the restriction model may be performed by the three-dimensional object formation data output restriction device, or may be performed by executing a similar program on another computer. The created circumscribed circle distribution and inscribed circle distribution are registered in the regulation model database 40.

出力規制の対象は、銃砲・刀剣などの危険物だけでなく、キャラクターなどの著作物となることもある。いずれの場合においても、制作されたポリゴンモデルは、著作権者が存在する著作物になる。したがって、著作物であるポリゴンモデルをデータベースに登録するためには、その行為自体に著作者の許諾が必要となる。外接円分布および内接円分布の形式により、元のポリゴンモデルの相違を識別可能であるが、元のポリゴンモデルを復元できるわけではない。これは、指紋(フィンガープリント)により個人の相違を識別可能であるが、人物の姿そのものを復元できるわけではないのと同様であり、外接円分布および内接円分布の形式はフィンガープリントに相当し、著作物には該当しない。そこで、本発明のように、外接円分布および内接円分布の形式で登録することにより、著作者の許諾を必要とせずに、規制モデルの特徴を記録したデータベースを構築することができる。   The target of output regulation may be not only dangerous materials such as guns and swords, but also copyrighted materials such as characters. In any case, the produced polygon model becomes a copyrighted work with a copyright holder. Therefore, in order to register a polygon model, which is a work, in the database, permission for the author is required for the act itself. Although the difference between the original polygon model can be identified by the forms of the circumscribed circle distribution and the inscribed circle distribution, the original polygon model cannot be restored. This is similar to the fact that individual differences can be identified by fingerprints, but the figure of the person itself cannot be restored, and the circumscribed circle distribution and inscribed circle distribution form is equivalent to the fingerprint. However, it does not fall under the copyrighted work. Thus, by registering in the form of circumscribed circle distribution and inscribed circle distribution as in the present invention, it is possible to construct a database that records the characteristics of the regulatory model without requiring the author's permission.

<2.2.処理概要>
次に、図1、図2に示した立体物造形用データ出力規制装置の処理動作について説明する。図3は、本発明の一実施形態に係る立体物造形用データ出力規制装置の処理概要を示すフローチャートである。まず、度数分布算出手段10が、ポリゴンモデルである対象モデルについて、2種の度数分布である外接円分布および内接円分布を算出する(ステップS100)。そして、度数分布照合手段20が、算出された対象モデルの度数分布と、規制モデルデータベース40に登録された規制モデルの度数分布との照合を行う(ステップS200)。
<2.2. Process Overview>
Next, the processing operation of the three-dimensional object formation data output restriction device shown in FIGS. 1 and 2 will be described. FIG. 3 is a flowchart showing a processing outline of the three-dimensional object formation data output restriction device according to the embodiment of the present invention. First, the frequency distribution calculating means 10 calculates a circumscribed circle distribution and an inscribed circle distribution that are two types of frequency distributions for the target model that is a polygon model (step S100). Then, the frequency distribution matching unit 20 performs matching between the calculated frequency distribution of the target model and the frequency distribution of the regulation model registered in the regulation model database 40 (step S200).

<2.3.度数分布の算出処理>
<2.3.1.第1の手法>
まず、ステップS100の度数分布の算出処理について説明する。度数分布の算出処理としては、第1の手法と第2の手法の2通りが存在する。まず、第1の手法について説明する。図4は、第1の手法による度数分布の算出処理の詳細を示すフローチャートである。ここでは、対象モデルのポリゴン数N、ポリゴンを特定する変数i(i=0,・・・,N−1)とし、各ポリゴンiの頂点を(Xu(i),Yu(i),Zu(i))と定義されたものとする。uは頂点番号を示しており、本実施形態では、ポリゴンが三角形状であるため、u=0,1,2の3つの値をとる。したがって、例えばXu(i)は、X0(i)、X1(i)、X2(i)とも表記される。頂点を特定したポリゴンおよび法線ベクトルは、立体物造形装置である3Dプリンタによる出力に必要なものであり、法線ベクトルの方向が造形面の外側(材料から空中方向)を示す。法線ベクトルは、3Dプリンタに出力用のポリゴンモデルにおいては、各ポリゴンについて記録されているのが普通である。度数分布算出手段10は、まず、対象モデルを構成する各ポリゴンiの面積S(i)、N個のポリゴンの面積S(i)の総和である総面積Ssumを以下の〔数式1〕に従った処理を実行することにより算出する(ステップS501)。
<2.3. Frequency distribution calculation processing>
<2.3.1. First Method>
First, the frequency distribution calculation process in step S100 will be described. There are two types of frequency distribution calculation processing: the first method and the second method. First, the first method will be described. FIG. 4 is a flowchart showing details of the frequency distribution calculation processing by the first method. Here, the number of polygons of the target model is N, and the variable i (i = 0,..., N−1) for specifying the polygon is used, and the vertices of each polygon i are (Xu (i), Yu (i), Zu ( i)). u indicates a vertex number. In this embodiment, since the polygon is triangular, three values of u = 0, 1, and 2 are taken. Therefore, for example, Xu (i) is also expressed as X0 (i), X1 (i), and X2 (i). The polygons and normal vectors specifying the vertices are necessary for output by a 3D printer, which is a three-dimensional object forming apparatus, and the direction of the normal vectors indicates the outside of the forming surface (from the material to the air). The normal vector is normally recorded for each polygon in a polygon model for output to a 3D printer. The frequency distribution calculating means 10 first calculates the total area Ssum, which is the sum of the areas S (i) and N polygons S (i) of each polygon i constituting the target model, according to the following [Equation 1]. The calculation is performed by executing the process (step S501).

〔数式1〕
Vx=[Y1(i)−Y0(i)][Z2(i)−Z0(i)]−[Z1(i)−Z0(i)][ Y2(i)−Y0(i)]
Vy=[Z1(i)−Z0(i)][X2(i)−X0(i)]−[X1(i)−X0(i)][ Z2(i)−Z0(i)]
Vz=[X1(i)−X0(i)][Y2(i)−Y0(i)]−[Y1(i)−Y0(i)][X2(i)−X0(i)]
S(i)=[Vx(i)2+Vy(i)2+Vz(i)2]1/2
Ssum=Σi=0,N-1S(i)
[Formula 1]
Vx = [Y1 (i) -Y0 (i)] [Z2 (i) -Z0 (i)]-[Z1 (i) -Z0 (i)] [Y2 (i) -Y0 (i)]
Vy = [Z1 (i) -Z0 (i)] [X2 (i) -X0 (i)]-[X1 (i) -X0 (i)] [Z2 (i) -Z0 (i)]
Vz = [X1 (i) -X0 (i)] [Y2 (i) -Y0 (i)]-[Y1 (i) -Y0 (i)] [X2 (i) -X0 (i)]
S (i) = [Vx (i) 2 + Vy (i) 2 + Vz (i) 2 ] 1/2
Ssum = Σ i = 0, N-1 S (i)

上記〔数式1〕において、Σの添え字の“i=0,N−1”は、iが0からN−1の全ての整数をとる場合について、総和を求めることを示している。次に、対象モデルを構成する各ポリゴンについて、頂点の平均となる平均点を算出する(ステップS502)。具体的には、以下の〔数式2〕に従った処理を実行することにより、各ポリゴンの平均点であるポリゴン平均点(Xc(i),Yc(i),Zc(i))を算出する。   In the above [Equation 1], the subscript “i = 0, N−1” of Σ indicates that the sum is obtained when i is an integer from 0 to N−1. Next, for each polygon constituting the target model, an average point that is the average of the vertices is calculated (step S502). Specifically, a polygon average point (Xc (i), Yc (i), Zc (i)) that is an average point of each polygon is calculated by executing processing according to the following [Equation 2]. .

〔数式2〕
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
[Formula 2]
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〕において、X0(i)、X1(i)、X2(i)はそれぞれXu(i)において、頂点番号u=0,1,2の場合を示し、Y0(i)、Y1(i)、Y2(i)はそれぞれYu(i)において、頂点番号u=0,1,2の場合を示し、Z0(i)、Z1(i)、Z2(i)はそれぞれZu(i)において、頂点番号u=0,1,2の場合を示している。上記〔数式2〕に示すように、ポリゴン平均点は、ポリゴンの各頂点の平均座標として算出される。   In the above [Equation 2], X0 (i), X1 (i), and X2 (i) represent the cases of vertex numbers u = 0, 1, and 2 in Xu (i), respectively, and Y0 (i), Y1 ( i) and Y2 (i) respectively indicate the cases of vertex numbers u = 0, 1, and 2 in Yu (i), and Z0 (i), Z1 (i), and Z2 (i) are in Zu (i), respectively. , Vertex numbers u = 0, 1, and 2 are shown. As shown in the above [Equation 2], the polygon average point is calculated as the average coordinate of each vertex of the polygon.

次に、ポリゴンモデルを構成するポリゴンの集合を3つのグループに分け、各グループのポリゴンの順序を入れ替える(ステップS503)。3つのグループへの分け方としては、同数に分けることができれば、どのような手法を用いてもよい。本実施形態では、ポリゴンモデルのデータ配列における順序に基づき、3で除して余りが0となる順番のポリゴンの第1グループと、3で除して余りが1となる順番のポリゴンの第2グループと、3で除して余りが2となる順番のポリゴンの第3グループに分けている。これにより、ポリゴンモデルを構成するN個のポリゴンは、N/3個ずつのグループに分けられることになる。各グループのポリゴン数が同数になるように、元のポリゴン数Nの3の剰余が2の場合、先頭のポリゴン0を、最後尾のポリゴンN=ポリゴン0として重複してもたせ、全ポリゴン数がN+1個になるように修正する。また、元のポリゴン数Nの3の剰余が1の場合、先頭のポリゴン0および2番目のポリゴン1を、最後尾から2番目のポリゴンN=ポリゴン0、最後尾のポリゴンN+1=ポリゴン1として重複してもたせ、全ポリゴン数がN+2個になるように修正する。各グループのポリゴン数が同数になるように、ポリゴンを重複して追加し、全ポリゴン数がN+1個またはN+2個となった場合であっても、以下では、全ポリゴン数をN個として置き換えて説明していく。   Next, a set of polygons constituting the polygon model is divided into three groups, and the order of the polygons in each group is changed (step S503). As a method of dividing into three groups, any method may be used as long as it can be divided into the same number. In this embodiment, based on the order in the polygon model data array, the first group of polygons in the order in which the remainder is 0 when divided by 3 and the second group of polygons in the order in which the remainder is 1 after being divided by 3 are used. It is divided into a group and a third group of polygons in the order in which the remainder is 2 divided by 3. As a result, N polygons constituting the polygon model are divided into groups of N / 3. When the remainder of 3 of the original polygon number N is 2 so that the number of polygons in each group is the same, the top polygon 0 is overlapped as the last polygon N = polygon 0, and the total number of polygons is Modify to be N + 1. If the remainder of 3 of the original polygon number N is 1, the first polygon 0 and the second polygon 1 are overlapped as the second polygon N = polygon 0 from the tail and the last polygon N + 1 = polygon 1 In any case, the total number of polygons is corrected to N + 2. Even if the number of polygons is duplicated and the total number of polygons is N + 1 or N + 2 so that the number of polygons in each group is the same, the total number of polygons will be replaced with N in the following. I will explain.

3で除した余りによりグループ分けすることにより、3つの配列G1(f)=3f、G2(f)=3f+1、G3(f)=3f+2(f=0,・・・,N/3−1)が得られる。次に、各グループのポリゴンの配列の順序を入れ替える。順序の入れ替えは無作為に行われる。すなわち、シャッフルされる。ポリゴンの配列の順序を入れ替えることができれば、どのような手法を用いてもよいが、本実施形態では、以下のような手法によりポリゴンの配列の順序を入れ替えている。まず、3種類の乱数配列R1(k)、R2(k)、R3(k)を作成する。具体的には、k=0,・・・,N/3−1について、R1(k)=kに初期化する。続いて、0≦Rnd(k)<1の範囲で実数値の一様乱数をN/3回発生させ、1回発生させるごとに、pp=Rnd(k)・N/3なる演算(“・”は乗算を示す)で0≦pp≦N/3の整数値を算出し、R1(k)の値とR1(pp)の値を交換する処理をN/3回繰り返す。繰り返しの結果、N/3個の連続する整数をランダムに入れ替えた乱数配列R1(k)が得られる。これにより、例えば、第1グループのポリゴンの配列G1(f)に対して、f=R1(k)で与え、G1(R1(k))=3R1(k)(k=0,・・・,N/3−1)のように、順序が入れ替えられた配列を得ることができる。第2の乱数配列R2(k)に対しては、R2(k)=R1(N/3−1−k)で与える。すなわち、第1の乱数配列R1(k)の先頭から末尾への順序を逆にしたものが乱数配列R2(k)である。乱数配列R1(k)、乱数配列R2(k)は、互いに他方の反転乱数配列となる。また、乱数配列R3(k)=kとし乱数にせず、k=0,・・・,N/3−1なるシーケンシャルな値に設定する。このように、ポリゴンの配列の順序を入れ替えることにより、各グループのポリゴンの配列順序を、3次元空間である対象モデル内のポリゴンからランダムに設定することができ、ランダムなポリゴン上の点の組み合わせで作成された三角形の外接円の半径および内接円の半径に基づいて、外接円分布および内接円分布を求めることが可能となる。   By grouping by the remainder divided by 3, three arrays G1 (f) = 3f, G2 (f) = 3f + 1, G3 (f) = 3f + 2 (f = 0,..., N / 3-1) Is obtained. Next, the arrangement order of the polygons in each group is changed. The order is changed randomly. That is, it is shuffled. Any method may be used as long as the order of polygon arrangement can be changed. In this embodiment, the order of polygon arrangement is changed by the following method. First, three types of random number arrays R1 (k), R2 (k), and R3 (k) are created. Specifically, k = 0,..., N / 3-1 are initialized to R1 (k) = k. Subsequently, a real-valued uniform random number is generated N / 3 times within a range of 0 ≦ Rnd (k) <1, and every time it is generated, an operation of pp = Rnd (k) · N / 3 (“· "Represents multiplication"), an integer value of 0 ≦ pp ≦ N / 3 is calculated, and the process of exchanging the value of R1 (k) and the value of R1 (pp) is repeated N / 3 times. As a result of repetition, a random number array R1 (k) in which N / 3 consecutive integers are randomly replaced is obtained. As a result, for example, f = R1 (k) is given to the polygon array G1 (f) of the first group, and G1 (R1 (k)) = 3R1 (k) (k = 0,... As in (N / 3-1), an array in which the order is changed can be obtained. The second random number array R2 (k) is given by R2 (k) = R1 (N / 3-1-k). That is, the random number array R2 (k) is obtained by reversing the order from the beginning to the end of the first random number array R1 (k). The random number array R1 (k) and the random number array R2 (k) are the other inverted random number arrays. In addition, the random number array R3 (k) = k is set to a sequential value of k = 0,..., N / 3-1 without using random numbers. In this way, by rearranging the polygon arrangement order, the polygon arrangement order of each group can be set randomly from the polygons in the target model that is a three-dimensional space, and a combination of points on the random polygons. The circumscribed circle distribution and the inscribed circle distribution can be obtained based on the radius of the circumscribed circle and the radius of the inscribed circle of the triangle created in step (1).

このように3つのグループにポリゴンを分類するのは、3つのポリゴンをランダムに選択して三角形を作成する際、互いに重複しないようにするためである。ポリゴンモデルを構成する全てのポリゴンの組み合わせで三角形を順次構成することも可能であるが、ポリゴン数が多いと組み合わせが膨大な数になり実用的ではない。また、グループ分けをせず、ポリゴンモデルを構成する全てのポリゴンよりランダムに3つのポリゴンを選択して三角形を構成する方法も考えられるが、ある確率で同一の三角形が発生してしまう。ランダムに抽出される三角形のサンプル数が十分に多くないと、偏った度数分布が算出される可能性がある。本実施形態のように、3つのグループに分類し、各グループから1つずつポリゴンを選択して計3つ選択するようにすることにより、三角形を形成するための3つのポリゴンを互いに重複することなくランダム性をもたせながら効率的に選択することが可能になる。   The reason why the polygons are classified into the three groups in this way is to prevent the polygons from overlapping each other when the three polygons are randomly selected to create a triangle. Although it is possible to sequentially form triangles by combining all polygons constituting the polygon model, if the number of polygons is large, the number of combinations becomes enormous, which is not practical. A method of forming a triangle by randomly selecting three polygons from all the polygons constituting the polygon model without grouping is also conceivable, but the same triangle is generated with a certain probability. If the number of triangle samples extracted at random is not large enough, a biased frequency distribution may be calculated. As in this embodiment, the three polygons for forming a triangle are overlapped with each other by classifying into three groups, selecting one polygon from each group and selecting a total of three. It is possible to select efficiently while providing randomness.

次に、初期設定を行う(ステップS504)。具体的には、算出する外接円分布、内接円分布の初期化、ループカウンタの初期化を行う。本実施形態で算出される外接円分布は、ポリゴンの面積を加重した、三角形の外接円の半径の分布であり、要素数をMDとし、各要素md(md=0,・・・,MD−1)の度数をHd(md)と表す。Hd(md)は、所定数MDの要素で構成される1次元配列である。このような1次元の配列を準備した後、度数分布算出手段10は、初期値をHd(md)=0と設定する。本実施形態で算出される内接円分布は、ポリゴンの面積を加重した、三角形の内接円の半径の分布であり、要素数をMAとし、各要素ma(ma=0,・・・,MA−1)の度数をHa(ma)と表す。要素数MAは、上記要素数MDと同一であってもよい。Ha(ma)は、所定数MAの要素で構成される1次元配列である。このような1次元の配列を準備した後、度数分布算出手段10は、初期値をHa(ma)=0と設定する。ループカウンタLCについては、初期値LC=0と設定する。   Next, initial setting is performed (step S504). Specifically, the circumscribed circle distribution to be calculated, the inscribed circle distribution are initialized, and the loop counter is initialized. The circumscribed circle distribution calculated in the present embodiment is a distribution of the radius of a triangular circumscribed circle obtained by weighting the area of the polygon. The number of elements is MD, and each element md (md = 0,..., MD− The frequency of 1) is expressed as Hd (md). Hd (md) is a one-dimensional array composed of a predetermined number of MD elements. After preparing such a one-dimensional array, the frequency distribution calculating means 10 sets the initial value as Hd (md) = 0. The inscribed circle distribution calculated in the present embodiment is a distribution of the radius of a triangular inscribed circle obtained by weighting the area of a polygon. The number of elements is MA, and each element ma (ma = 0,..., The frequency of MA-1) is expressed as Ha (ma). The element number MA may be the same as the element number MD. Ha (ma) is a one-dimensional array composed of a predetermined number of elements. After preparing such a one-dimensional array, the frequency distribution calculating means 10 sets the initial value as Ha (ma) = 0. For the loop counter LC, an initial value LC = 0 is set.

次に、度数分布算出手段10は、3つのグループ間における各ポリゴン平均点を頂点とする三角形の作成を行う(ステップS505)。3つのポリゴンを用いて三角形を作成する際、ポリゴン平均点に限らず、ポリゴン上の点としては、様々な点を用いることができる。しかし、ポリゴン平均点が、1つのポリゴンを代表する点として好ましいため、本実施形態では、ポリゴン平均点を頂点として三角形を作成する。ポリゴン上の点とは、ポリゴンを構成する頂点を全て通る面上であって、これらの頂点に囲まれる範囲に位置する点を意味する。ステップS505においては、三角形の数がポリゴン総数Nと同一になるように、グループ間の組み合わせを変えて3通り作成する。具体的には、第1グループのf(f=0,・・・,N/3−1)番目のポリゴンG1(f)に対して乱数配列R1(k)によりランダムに順番を入れ替えたG1(R1(k))の平均点(Xc(G1(R1(k))),Yc(G1(R1(k))),Zc(G1(R1(k))))、第2グループの対応する順序fのポリゴンG2(f)に対して乱数配列R2(k)によりランダムに順番を入れ替えたG2(R2(k))の平均点(Xc(G2(R2(k))),Yc(G2(R2(k))),Zc(G2(R2(k))))、第3グループの対応する順序fのポリゴンG3(f)に対して乱数配列R3(k)によりランダムに順番を入れ替えたG3(R3(k))の平均点(Xc(G3(R3(k))),Yc(G3(R3(k))),Zc(G3(R3(k))))の3点を頂点とする第1三角形をN/3個作成する。   Next, the frequency distribution calculating unit 10 creates a triangle having the vertexes of the respective polygon average points among the three groups (step S505). When creating a triangle using three polygons, various points can be used as points on the polygon, not limited to the polygon average point. However, since the polygon average point is preferable as a point representing one polygon, in this embodiment, a triangle is created with the polygon average point as a vertex. A point on a polygon means a point located on a plane passing through all the vertices constituting the polygon and within a range surrounded by these vertices. In step S505, three combinations are created by changing the combinations between groups so that the number of triangles is the same as the total number N of polygons. More specifically, G1 (f1 (f = 0,..., N / 3-1) th polygon G1 (f) of the first group is randomly changed in order by the random number array R1 (k). R1 (k)) average points (Xc (G1 (R1 (k))), Yc (G1 (R1 (k))), Zc (G1 (R1 (k)))), the corresponding order of the second group The average points (Xc (G2 (R2 (k))), Yc (G2 (R2)) of G2 (R2 (k)) obtained by randomly changing the order of the polygon G2 (f) of f by the random number array R2 (k). (K))), Zc (G2 (R2 (k)))), G3 () in which the order is randomly changed by the random number array R3 (k) with respect to the polygon G3 (f) in the corresponding order f of the third group. R3 (k)) average points (Xc (G3 (R3 (k))), Yc (G3 (R3 (k))), Z (G3 (R3 (k)))) the first triangle to N / 3 pieces created as vertices the three points.

同様に、第2グループのf番目のポリゴンG2(f)に対して乱数配列R1(k)によりランダムに順番を入れ替えたG2(R1(k))の平均点(Xc(G2(R1(k))),Yc(G2(R1(k))),Zc(G2(R1(k))))、第3グループの対応する順序fのポリゴンG3(f)に対して乱数配列R2(k)によりランダムに順番を入れ替えたG3(R2(k))の平均点(Xc(G3(R2(k))),Yc(G3(R2(k))),Zc(G3(R2(k))))、第1グループの対応する順序fのポリゴンG1(f)に対して乱数配列R3(k)によりランダムに順番を入れ替えたG1(R3(k))の平均点(Xc(G1(R3(k))),Yc(G1(R3(k))),Zc(G1(R3(k))))の3点を頂点とする第2三角形をN/3個作成する。   Similarly, the average point (Xc (G2 (R1 (k)) of G2 (R1 (k)) obtained by randomly changing the order of the f-th polygon G2 (f) of the second group by the random number array R1 (k). )), Yc (G2 (R1 (k))), Zc (G2 (R1 (k)))), a corresponding sequence f of polygons G3 (f) in the third group by a random number array R2 (k). G3 (R2 (k)) average points (Xc (G3 (R2 (k))), Yc (G3 (R2 (k))), Zc (G3 (R2 (k)))) whose order was randomly changed The average point (Xc (G1 (R3 (k)) of G1 (R3 (k)) obtained by randomly changing the order of the polygon G1 (f) in the corresponding order f of the first group by the random number array R3 (k). )), Yc (G1 (R3 (k))), Zc (G1 (R3 (k)))) The second triangle to a point N / 3 pieces to create.

さらに、第3グループのf番目のポリゴンG3(f)に対して乱数配列R1(k)によりランダムに順番を入れ替えたG3(R1(k))の平均点(Xc(G3(R1(k))),Yc(G3(R1(k))),Zc(G3(R1(k))))、第1グループの対応する順序fのポリゴンG1(f)に対して乱数配列R2(k)によりランダムに順番を入れ替えたG1(R2(k))の平均点(Xc(G1(R2(k))),Yc(G1(R2(k))),Zc(G1(R2(k))))、第2グループの対応する順序fのポリゴンG2(f)に対して乱数配列R3(k)によりランダムに順番を入れ替えたG2(R3(k))の平均点(Xc(G2(R3(k))),Yc(G2(R3(k))),Zc(G2(R3(k))))の3点を頂点とする第3三角形をN/3個作成する。   Further, the average point (Xc (G3 (R1 (k))) of G3 (R1 (k)) obtained by randomly changing the order of the fth polygon G3 (f) of the third group by the random number array R1 (k). ), Yc (G3 (R1 (k))), Zc (G3 (R1 (k)))), a random number array R2 (k) for the polygon G1 (f) in the corresponding order f of the first group. G1 (R2 (k)) average points (Xc (G1 (R2 (k))), Yc (G1 (R2 (k))), Zc (G1 (R2 (k)))), The average point (Xc (G2 (R3 (k))) of G2 (R3 (k)) in which the order is randomly changed by the random number array R3 (k) for the polygon G2 (f) in the corresponding order f of the second group. ), Yc (G2 (R3 (k))), Zc (G2 (R3 (k)))) A third triangle to a point N / 3 pieces to create.

次に、度数分布算出手段10は、ポリゴン平均点を頂点とする三角形の外接円の半径の算出を行う(ステップS506)。具体的には、まず、以下の〔数式3〕に従った処理を実行することにより、k=0,・・・,N/3−1の範囲で、第1三角形の面積S(k)を算出する。   Next, the frequency distribution calculating means 10 calculates the radius of a circumscribed circle of a triangle having the polygon average point as a vertex (step S506). Specifically, first, by executing the processing according to the following [Equation 3], the area S (k) of the first triangle is set in the range of k = 0,..., N / 3-1. calculate.

〔数式3〕
D12=[[Xc(G2(R2(k)))−Xc(G1(R1(k)))]2+[Yc(G2(R2(k)))−Yc(G1(R1(k)))]21/2
D23=[[Xc(G3(R3(k)))−Xc(G2(R2(k)))]2+[Yc(G3(R3(k)))−Yc(G2(R2(k)))]21/2
D31=[[Xc(G1(R1(k)))−Xc(G3(R3(k)))]2+[Yc(G1(R1(k)))−Yc(G3(R3(k)))]21/2
D=(D12+D23+D31)/2
S(k)=[D・(D−D12)・(D−D23)・(D−D31)]1/2
[Formula 3]
D12 = [[Xc (G2 (R2 (k)))-Xc (G1 (R1 (k)))] 2 + [Yc (G2 (R2 (k)))-Yc (G1 (R1 (k))) ] 2 ] 1/2
D23 = [[Xc (G3 (R3 (k))) − Xc (G2 (R2 (k)))] 2 + [Yc (G3 (R3 (k))) − Yc (G2 (R2 (k))) ] 2 ] 1/2
D31 = [[Xc (G1 (R1 (k))) − Xc (G3 (R3 (k)))] 2 + [Yc (G1 (R1 (k))) − Yc (G3 (R3 (k))) ] 2 ] 1/2
D = (D12 + D23 + D31) / 2
S (k) = [D · (D−D12) · (D−D23) · (D−D31)] 1/2

上記〔数式3〕において、“・”は、乗算を示す。以下の各数式においても同様である。そして、以下の〔数式4〕に従った処理を実行することにより、k=0,・・・,N/3−1の範囲で、第1三角形の外接円の半径D(k)を算出する。   In the above [Equation 3], “·” indicates multiplication. The same applies to the following equations. Then, the radius D (k) of the circumscribed circle of the first triangle is calculated in the range of k = 0,..., N / 3-1 by executing the processing according to the following [Equation 4]. .

〔数式4〕
D(k)=D12・D23・D31/(4・S(k))
[Formula 4]
D (k) = D12 · D23 · D31 / (4 · S (k))

度数分布算出手段10は、同様に、以下の〔数式5〕に従った処理を実行することにより、k=0,・・・,N/3−1の範囲で、第2三角形の面積S(k)を算出する。   Similarly, the frequency distribution calculating means 10 executes a process according to the following [Equation 5], whereby the area S (2) of the second triangle in the range of k = 0,..., N / 3-1. k) is calculated.

〔数式5〕
D12=[[Xc(G3(R2(k)))−Xc(G2(R1(k)))]2+[Yc(G3(R2(k)))−Yc(G2(R1(k)))]21/2
D23=[[Xc(G1(R3(k)))−Xc(G3(R2(k)))]2+[Yc(G1(R3(k)))−Yc(G3(R2(k)))]21/2
D31=[[Xc(G2(R1(k)))−Xc(G1(R3(k)))]2+[Yc(G2(R1(k)))−Yc(G1(R3(k)))]21/2
D=(D12+D23+D31)/2
S(k)=[D・(D−D12)・(D−D23)・(D−D31)]1/2
[Formula 5]
D12 = [[Xc (G3 (R2 (k))) − Xc (G2 (R1 (k)))] 2 + [Yc (G3 (R2 (k))) − Yc (G2 (R1 (k))) ] 2 ] 1/2
D23 = [[Xc (G1 (R3 (k))) − Xc (G3 (R2 (k)))] 2 + [Yc (G1 (R3 (k))) − Yc (G3 (R2 (k))) ] 2 ] 1/2
D31 = [[Xc (G2 (R1 (k))) − Xc (G1 (R3 (k)))] 2 + [Yc (G2 (R1 (k))) − Yc (G1 (R3 (k))) ] 2 ] 1/2
D = (D12 + D23 + D31) / 2
S (k) = [D · (D−D12) · (D−D23) · (D−D31)] 1/2

そして、上記〔数式4〕に従った処理を実行することにより、k=0,・・・,N/3−1の範囲で、第2三角形の外接円の半径D(k)を算出する。   Then, the radius D (k) of the circumscribed circle of the second triangle is calculated in the range of k = 0,..., N / 3-1 by executing the processing according to the above [Equation 4].

度数分布算出手段10は、同様に、以下の〔数式6〕に従った処理を実行することにより、k=0,・・・,N/3−1の範囲で、第3三角形の面積S(k)を算出する。   Similarly, the frequency distribution calculating means 10 executes the processing according to the following [Equation 6], whereby the area S (3) of the third triangle in the range of k = 0,..., N / 3-1. k) is calculated.

〔数式6〕
D12=[[Xc(G1(R2(k)))−Xc(G3(R1(k)))]2+[Yc(G1(R2(k)))−Yc(G3(R1(k)))]21/2
D23=[[Xc(G2(R3(k)))−Xc(G1(R2(k)))]2+[Yc(G2(R3(k)))−Yc(G1(R2(k)))]21/2
D31=[[Xc(G3(R1(k)))−Xc(G2(R3(k)))]2+[Yc(G3(R1(k)))−Yc(G2(R3(k)))]21/2
D=(D12+D23+D31)/2
S(k)=[D・(D−D12)・(D−D23)・(D−D31)]1/2
[Formula 6]
D12 = [[Xc (G1 (R2 (k)))-Xc (G3 (R1 (k)))] 2 + [Yc (G1 (R2 (k)))-Yc (G3 (R1 (k))) ] 2 ] 1/2
D23 = [[Xc (G2 (R3 (k))) − Xc (G1 (R2 (k)))] 2 + [Yc (G2 (R3 (k))) − Yc (G1 (R2 (k))) ] 2 ] 1/2
D31 = [[Xc (G3 (R1 (k))) − Xc (G2 (R3 (k)))] 2 + [Yc (G3 (R1 (k))) − Yc (G2 (R3 (k))) ] 2 ] 1/2
D = (D12 + D23 + D31) / 2
S (k) = [D · (D−D12) · (D−D23) · (D−D31)] 1/2

そして、上記〔数式4〕に従った処理を実行することにより、k=0,・・・,N/3−1の範囲で、第3三角形の外接円の半径D(k)を算出する。   Then, by executing the processing according to the above [Equation 4], the radius D (k) of the circumscribed circle of the third triangle is calculated in the range of k = 0,..., N / 3-1.

上記〔数式3〕〔数式5〕〔数式6〕においては、三角形の各辺の長さD12、D23、D31が、以下の〔数式7〕に示した6条件全てを満たした三角形のみ、外接円半径の度数分布の対象とする。したがって、〔数式7〕に示した6条件のうち1つでも満たさなかった三角形については、外接円半径の度数分布の対象としない。下記〔数式7〕に示した6条件を満たさない場合は、外接円の半径D(k)が極端に大きくなり、精度のよい度数分布を求めることができないためである。   In the above [Equation 3], [Equation 5] and [Equation 6], only the triangle in which the lengths D12, D23 and D31 of each side of the triangle satisfy all the six conditions shown in the following [Equation 7] The target of the frequency distribution of the radius. Therefore, a triangle that does not satisfy even one of the six conditions shown in [Formula 7] is not subject to the frequency distribution of the circumscribed circle radius. This is because the radius D (k) of the circumscribed circle becomes extremely large when the six conditions shown in the following [Equation 7] are not satisfied, and a highly accurate frequency distribution cannot be obtained.

〔数式7〕
D12>0
D23>0
D31>0
|D12−D23−D31|/D12>0.1
|D23−D31−D12|/D23>0.1
|D31−D12−D23|/D31>0.1
[Formula 7]
D12> 0
D23> 0
D31> 0
| D12-D23-D31 | / D12> 0.1
| D23-D31-D12 | / D23> 0.1
| D31-D12-D23 | / D31> 0.1

上記〔数式7〕に示すように、6条件のうち前半3条件は、全ての辺が0でない正の値をとること、すなわち三角形を形成することを意味する。6条件のうち後半3条件は、作成される三角形が極端に偏平な形状にならないことを意味する。三角形が極端に偏平な形状になると、外接円の半径が無限大に近付き、精度のよい度数分布が得られないことになる。上記〔数式7〕に示した6条件を満たさない場合は、三角形を形成しないか(いずれかの辺が0の場合)、外接円の半径D(k)が極端に大きくなり、精度のよい度数分布を求めることができないためである。   As shown in [Expression 7] above, the first three conditions out of the six conditions mean that all sides take positive values other than 0, that is, form a triangle. The latter half of the six conditions means that the triangle to be created does not have an extremely flat shape. If the triangle becomes extremely flat, the radius of the circumscribed circle will approach infinity, and a highly accurate frequency distribution will not be obtained. When the six conditions shown in [Expression 7] are not satisfied, a triangle is not formed (when either side is 0), or the radius D (k) of the circumscribed circle is extremely large, and the frequency is high in accuracy. This is because the distribution cannot be obtained.

上記〔数式4〕により算出されたN/3個の第1三角形の外接円の半径と、N/3個の第2三角形の外接円の半径と、N/3個の第3三角形の外接円の半径の3種のN/3個の配列D(k)に対し、第2三角形のN/3個の配列にはN/3だけオフセットを加え、第3三角形のN/3個の配列には2N/3だけオフセットを加えた上で、通し番号iでまとめて、その範囲をi=0,・・・,N−1に設定し直してN個の三角形の外接円半径D(i)(i=0,・・・,N−1)を得る。そして、i=0,・・・,N−1のN個の外接円半径D(i)のうち最大のものを最大外接円半径Dmaxとする。   The radius of the circumscribed circle of N / 3 first triangles, the radius of the circumscribed circle of N / 3 second triangles, and the circumscribed circle of N / 3 third triangles calculated by the above [Equation 4] The N / 3 array D (k) of the second triangle is offset by N / 3 for the N / 3 array D of the second triangle, and the N / 3 array of the third triangle is added to the N / 3 array of the third triangle. Is added with an offset of 2N / 3, and is grouped with a serial number i, the range is reset to i = 0,..., N−1, and the circumscribed circle radius D (i) ( i = 0,..., N-1). And the largest one among the N circumscribed circle radii D (i) of i = 0,..., N−1 is set as the maximum circumscribed circle radius Dmax.

次に、度数分布算出手段10は、ポリゴン平均点を頂点とする三角形の内接円の半径の算出を行う(ステップS507)。具体的には、以下の〔数式8〕に従った処理を実行することにより、k=0,・・・,N/3−1の範囲で第1三角形、第2三角形、第3三角形の内接円の半径A(k)を算出する。   Next, the frequency distribution calculation means 10 calculates the radius of the inscribed circle of the triangle having the polygon average point as a vertex (step S507). Specifically, by executing the processing according to the following [Equation 8], within the range of k = 0,..., N / 3-1, the first triangle, the second triangle, and the third triangle. The radius A (k) of the tangent circle is calculated.

〔数式8〕
A(k)=2・S(k)/(D12+D23+D31)
[Formula 8]
A (k) = 2 · S (k) / (D12 + D23 + D31)

上記〔数式8〕において、D12、D23、D31およびS(k)は、上記〔数式3〕〔数式5〕〔数式6〕に従った処理により算出された第1三角形、第2三角形、第3三角形の三辺の長さと面積である。なお、〔数式7〕に示した6条件のうち1つでも満たさなかった三角形については、内接円半径の度数分布の対象としない。   In the above [Expression 8], D12, D23, D31 and S (k) are the first triangle, the second triangle, the third triangle calculated by the processing according to the above [Expression 3], [Expression 5] and [Expression 6]. The length and area of the three sides of the triangle. Note that a triangle that does not satisfy any one of the six conditions shown in [Equation 7] is not subject to the frequency distribution of the inscribed circle radius.

上記〔数式8〕により算出されたN/3個の第1三角形の内接円の半径A(k)と、N/3個の第2三角形の内接円の半径A(k)と、N/3個の第3三角形の内接円の半径A(k)の3種のN/3個の配列A(k)に対し、第2三角形についてのN/3個の配列にはN/3だけオフセットを加え、第3三角形についてのN/3個の配列には2N/3だけオフセットを加えた上で、通し番号iの範囲をi=0,・・・,N−1に設定し直してN個の三角形の内接円の半径A(i)(i=0,・・・,N−1)を得る。そして、i=0,・・・,N−1のN個の内接円半径A(i)のうち最大のものを最大内接円半径Amaxとする。   The radius A (k) of the inscribed circle of N / 3 first triangles calculated by the above [Equation 8], the radius A (k) of the inscribed circle of N / 3 second triangles, and N / 3 of N / 3 arrays A (k) of inscribed circle radius A (k) of 3rd 3 triangles, N / 3 for N / 3 arrays of 2nd triangle Add an offset only, add an offset of 2N / 3 to the N / 3 array for the third triangle, and reset the range of serial number i to i = 0, ..., N-1 The radius A (i) (i = 0,..., N−1) of N inscribed circles of N triangles is obtained. Then, the largest one of N inscribed circle radii A (i) of i = 0,..., N−1 is set as a maximum inscribed circle radius Amax.

次に、度数分布算出手段10は、三角形の外接円の半径の度数分布である外接円分布を算出する(ステップS508)。具体的には、以下の〔数式9〕に従った処理を実行することにより、要素mdの度数Hd(md)を、i=0,・・・,N−1について、算出する。   Next, the frequency distribution calculating means 10 calculates a circumscribed circle distribution that is a frequency distribution of the radius of the circumscribed circle of the triangle (step S508). Specifically, the frequency Hd (md) of the element md is calculated for i = 0,..., N−1 by executing processing according to the following [Equation 9].

〔数式9〕
Dmax・md/MD≦D(i)<Dmax・(md+1)/MDならば、
Hd(md)←Hd(md)+S
0≦i≦N/3−1の場合
S=[σ(G1(R1(i)))+σ(G2(R2(i)))+σ(G3(R3(i)))]/3
N/3≦i≦2N/3−1の場合
S=[σ(G2(R1(i)))+σ(G3(R2(i)))+σ(G1(R3(i)))] /3
2N/3≦i≦N−1の場合
S=[σ(G3(R1(i)))+σ(G1(R2(i)))+σ(G2(R3(i)))]/3
[Formula 9]
If Dmax · md / MD ≦ D (i) <Dmax · (md + 1) / MD,
Hd (md) ← Hd (md) + S
When 0 ≦ i ≦ N / 3-1 S = [σ (G1 (R1 (i))) + σ (G2 (R2 (i))) + σ (G3 (R3 (i)))] / 3
In the case of N / 3 ≦ i ≦ 2N / 3-1 S = [σ (G2 (R1 (i))) + σ (G3 (R2 (i))) + σ (G1 (R3 (i)))] / 3
When 2N / 3 ≦ i ≦ N−1 S = [σ (G3 (R1 (i))) + σ (G1 (R2 (i))) + σ (G2 (R3 (i)))] / 3

上記〔数式9〕において、σ(p)は、3つのグループに分類されたポリゴンpの面積である。上記〔数式9〕は、三角形の外接円半径D(i)が、最大外接円半径Dmaxにmd/MDを乗じた値以上で、(md+1)/MDを乗じた値より小さい場合に、三角形の頂点をポリゴン平均点として有する3つのポリゴンの平均面積SをHd(md)に加算することを意味している。すなわち、外接円の半径の最大値Dmaxの範囲を所定数mdに均等に分割した上で、各外接円の半径D(i)を外接円の半径D(i)の値に基づいて所定数mdのいずれかの要素に割り当てている。   In the above [Equation 9], σ (p) is the area of the polygon p classified into three groups. [Equation 9] is obtained when the circumscribed circle radius D (i) of the triangle is equal to or larger than the value obtained by multiplying the maximum circumscribed circle radius Dmax by md / MD and smaller than the value obtained by multiplying (md + 1) / MD. This means that the average area S of three polygons having vertices as polygon average points is added to Hd (md). That is, the range of the maximum value Dmax of the radius of the circumscribed circle is equally divided into a predetermined number md, and the radius D (i) of each circumscribed circle is set to the predetermined number md based on the value of the radius D (i) of the circumscribed circle. Is assigned to one of the elements.

上記〔数式9〕に従った処理を、N個の三角形について実行することにより、外接円分布Hd(md)(md=0,・・・,MD−1)が算出される。各要素には、単なる頻度ではなく、ポリゴンの面積が加算されているため、外接円分布Hd(md)は、面積加重の外接円分布を示すことになる。面積でなく単に1を加算するようにすることも可能であるが、その場合、ポリゴンの面積が加味されない外接円分布となり、同一のポリゴンモデルに対してポリゴン構成が粗い場合と細かい場合とで、外接円分布に顕著な差が生じてしまう。そこで、本実施形態では、外接円分布算出時にポリゴンの面積を加算するようにしている。面積でなく単に1を加算するようにした場合は、ある要素mdに該当する数Hd(md)を計数することにより、外接円分布を算出することになる。   The circumscribed circle distribution Hd (md) (md = 0,..., MD-1) is calculated by executing the processing according to the above [Equation 9] for N triangles. Since each element is added not with a simple frequency but with the area of a polygon, the circumscribed circle distribution Hd (md) represents an area-weighted circumscribed circle distribution. It is possible to simply add 1 instead of area, but in that case, the circumscribed circle distribution does not take into account the area of the polygon, and when the polygon configuration is coarse and fine for the same polygon model, There will be a significant difference in the circumscribed circle distribution. Therefore, in the present embodiment, the area of the polygon is added when calculating the circumscribed circle distribution. When only 1 is added instead of the area, the circumscribed circle distribution is calculated by counting the number Hd (md) corresponding to a certain element md.

次に、度数分布算出手段10は、各三角形の内接円の半径の度数分布である内接円分布を算出する(ステップS509)。具体的には、以下の〔数式10〕に従った処理を実行することにより、要素maの度数Ha(ma)を、i=0,・・・,N−1について、算出する。   Next, the frequency distribution calculation means 10 calculates an inscribed circle distribution that is a frequency distribution of the radius of the inscribed circle of each triangle (step S509). Specifically, the frequency Ha (ma) of the element ma is calculated for i = 0,..., N−1 by executing processing according to the following [Equation 10].

〔数式10〕
Amax・ma/MA≦A(i)<Amax・(ma+1)/MAならば、
Ha(ma)←Ha(ma)+S
[Formula 10]
If Amax · ma / MA ≦ A (i) <Amax · (ma + 1) / MA,
Ha (ma) ← Ha (ma) + S

上記〔数式10〕は、三角形の内接円の半径A(i)が、Amaxにma/MAを乗じた値以上で、(ma+1)/MAを乗じた値より小さい場合に、三角形の頂点を平均点として有する3つのポリゴンの平均面積SをHa(ma)に加算することを意味している。すなわち、内接円の半径の最大値Amaxの範囲を所定数maに均等に分割した上で、各内接円の半径A(i)を内接円の半径A(i)の値に基づいて所定数maのいずれかの要素に割り当てている。3つのポリゴンの平均面積Sについては、上記〔数式9〕に従った処理により算出したものを用いる。   [Equation 10] shows that when the radius A (i) of the inscribed circle of the triangle is equal to or larger than the value obtained by multiplying Amax by ma / MA and smaller than the value obtained by multiplying (ma + 1) / MA, the vertex of the triangle is calculated. This means that the average area S of the three polygons possessed as the average point is added to Ha (ma). That is, the range of the maximum value Amax of the radius of the inscribed circle is equally divided into a predetermined number ma, and the radius A (i) of each inscribed circle is based on the value of the radius A (i) of the inscribed circle. It is assigned to any element of a predetermined number ma. As the average area S of the three polygons, the average area S calculated by the processing according to [Formula 9] is used.

上記〔数式10〕に従った処理を、N個の三角形について実行することにより、内接円分布Ha(ma)(ma=0,・・・,MA−1)が算出される。各要素には、単なる頻度ではなく、ポリゴンの面積が加算されているため、内接円分布Ha(ma)は、面積加重の内接円分布を示すことになる。面積でなく単に1を加算するようにすることも可能であるが、その場合、ポリゴンの面積が加味されない内接円分布となり、同一のポリゴンモデルに対してポリゴン構成が粗い場合と細かい場合とで、内接円分布に顕著な差が生じてしまう。そこで、本実施形態では、内接円分布算出時にポリゴンの面積を加算するようにしている。面積でなく単に1を加算するようにした場合は、ある要素maに該当する数Ha(ma)を計数することにより、内接円分布を算出することになる。   The inscribed circle distribution Ha (ma) (ma = 0,..., MA−1) is calculated by executing the processing according to the above [Equation 10] for N triangles. Since the polygon area is added to each element, not just the frequency, the inscribed circle distribution Ha (ma) indicates an area-weighted inscribed circle distribution. It is possible to simply add 1 instead of the area, but in that case, the inscribed circle distribution does not take the area of the polygon into account, and the polygon configuration is rough and fine for the same polygon model. A noticeable difference occurs in the inscribed circle distribution. Therefore, in this embodiment, the area of the polygon is added when calculating the inscribed circle distribution. When only 1 is added instead of the area, the inscribed circle distribution is calculated by counting the number Ha (ma) corresponding to a certain element ma.

外接円分布および内接円分布が算出されたら、次に、ループカウンタLCが規定値以上であるかどうかを判定する(ステップS510)。判定の結果、ループカウンタLCが規定値未満である場合は、2つのグループの配列を1だけずらす処理を行う(ステップS511)。例えば、第1グループの順序を固定する場合、本実施形態では、以下の〔数式11〕に従った処理を実行することにより、第2、第3グループの2つのグループに用いる乱数配列R2(k)、乱数配列R3(k)の順序をずらしている。   If the circumscribed circle distribution and the inscribed circle distribution are calculated, it is next determined whether or not the loop counter LC is equal to or greater than a specified value (step S510). As a result of the determination, if the loop counter LC is less than the specified value, a process of shifting the arrangement of the two groups by 1 is performed (step S511). For example, in the case where the order of the first group is fixed, in the present embodiment, the random number array R2 (k) used for the two groups of the second and third groups is executed by executing the processing according to the following [Equation 11]. ), The order of the random number array R3 (k) is shifted.

〔数式11〕
Ro=R2(0)、Ro3=R3(0)とし、
k=0,・・・,N/3−2に対して、
R2(k)←R2(k+1)、R3(k)←R3(k+1)を繰り返し、
R2(N/3−1)=Ro、R3(N/3−1)=Ro3とする。
[Formula 11]
Ro = R2 (0), Ro3 = R3 (0),
For k = 0, ..., N / 3-2,
R2 (k) ← R2 (k + 1), R3 (k) ← R3 (k + 1) are repeated,
It is assumed that R2 (N / 3-1) = Ro and R3 (N / 3-1) = Ro3.

第2グループの順序を固定する場合、第3グループの順序を固定する場合については、グループの関係を変えて、〔数式11〕に従った処理を実行することにより行われる。併せて、ループカウンタLCをインクリメント(LC←LC+1)する処理も行う。既に算出された度数分布が存在する場合は、その度数分布の各要素について、各要素に該当する度数の値を加算する。ステップS511において、2つのグループの配列をずらした後、2つのグループともう1つのグループのポリゴンの組み合わせを1回目とは変えて、ステップS505〜ステップS509の処理を実行し、外接円分布および内接円分布を算出する。ステップS505〜ステップS509の外接円分布および内接円分布の算出処理は、規定値として設定された所定回数だけ繰り返される。規定値としては、適宜設定することが可能であるが、ポリゴン総数N=10000の場合、10程度である。   When the order of the second group is fixed or when the order of the third group is fixed, the relationship between the groups is changed and the process according to [Formula 11] is executed. In addition, a process of incrementing the loop counter LC (LC ← LC + 1) is also performed. When there is a frequency distribution that has already been calculated, the frequency value corresponding to each element is added to each element of the frequency distribution. In step S511, after shifting the arrangement of the two groups, the combination of the polygons of the two groups and the other group is changed from the first, and the processing of steps S505 to S509 is executed, and the circumscribed circle distribution and the inner Calculate the tangent circle distribution. The circumscribed circle distribution and the inscribed circle distribution calculation process in steps S505 to S509 is repeated a predetermined number of times set as the specified value. The specified value can be set as appropriate, but is about 10 when the total number of polygons N = 10000.

すなわち、外接円分布および内接円分布を1回算出するごとに、3つのグループのうち2つのグループ内のポリゴンの順序を変化させて、外接円分布および内接円分布を改めて算出する処理を繰り返し行うことになる。ループカウンタLCが規定値に達した場合、ステップS510において、ループカウンタLCが規定値以上であると判定されるため、2種の度数分布の正規化を行う(ステップS512)。   That is, every time the circumscribed circle distribution and the inscribed circle distribution are calculated once, the process of calculating the circumscribed circle distribution and the inscribed circle distribution again by changing the order of the polygons in two of the three groups is performed. Repeatedly. When the loop counter LC reaches the specified value, it is determined in step S510 that the loop counter LC is equal to or greater than the specified value, so that the two frequency distributions are normalized (step S512).

具体的には、上記〔数式9〕で算出されたHd(md)に、更に100/{Ssum・LC}を乗じてHd(md)と置き換えることにより、単位を面積率[%]に正規化している。すなわち、ポリゴンの面積の総和値Ssumとループ回数LCの乗算値により、各要素の値Hd(md)を除算している。これにより、ポリゴンの面積の総和値が異なる、即ちスケールが異なるポリゴンモデルであっても同一スケールの外接円分布に変換され、同一スケール基準のポリゴンモデルとして判定が可能になる。また、ループ回数LCで除算していることになるため、ループ回数分の平均値が得られることになる。   Specifically, the unit is normalized to the area ratio [%] by multiplying Hd (md) calculated by the above [Equation 9] by 100 / {Ssum · LC} and replacing it with Hd (md). ing. That is, the value Hd (md) of each element is divided by the multiplication value of the total area value Ssum of the polygon area and the loop count LC. Thereby, even polygon models having different total area values of polygons, that is, different scales, are converted into circumscribed circle distributions of the same scale, and can be determined as polygon models based on the same scale. In addition, since it is divided by the loop number LC, an average value for the loop number is obtained.

また、上記〔数式10〕で算出されたHa(ma)に、更に100/{Ssum・LC}を乗じてHa(ma)と置き換えることにより、単位を面積率[%]に正規化している。すなわち、ポリゴンの面積の総和値Ssumとループ回数LCの乗算値により、各要素の値Ha(ma)を除算している。これにより、ポリゴンの面積の総和値が異なる、即ちスケールが異なるポリゴンモデルであっても同一スケールの内接円分布に変換され、同一スケール基準のポリゴンモデルとして判定が可能になる。また、ループ回数LCで除算していることになるため、ループ回数分の平均値が得られることになる。   Further, the unit is normalized to the area ratio [%] by multiplying Ha (ma) calculated by the above [Equation 10] by 100 / {Ssum · LC} and replacing it with Ha (ma). That is, the value Ha (ma) of each element is divided by the multiplication value of the total area value Ssum of the polygon area and the loop count LC. Thereby, even polygon models having different total area values of polygons, that is, different scales, are converted to inscribed circle distributions of the same scale, and can be determined as polygon models based on the same scale. In addition, since it is divided by the loop number LC, an average value for the loop number is obtained.

本実施形態では、三角形の外接円の半径と、三角形の内接円の半径の算出に際し、ポリゴンの平均点を3つの頂点とする三角形を作成するようにした。三角形の頂点は、ポリゴンの各頂点の平均点とすることが好ましいが、平均点以外のポリゴン上の所定の点同士を結んだ三角形とすることも可能である。ポリゴン上の所定の点としては、例えば、ポリゴンを構成するいずれかの頂点、ポリゴンの重心点、ポリゴンの頂点のxyz座標別の最大値と最小値の丁度中間となる値をもつ点、等を用いることができる。   In this embodiment, when calculating the radius of the circumscribed circle of the triangle and the radius of the inscribed circle of the triangle, a triangle having three vertexes as the average point of the polygon is created. The vertices of the triangles are preferably the average points of the vertices of the polygons, but can also be triangles connecting predetermined points on the polygons other than the average points. The predetermined points on the polygon include, for example, any vertex constituting the polygon, the center of gravity of the polygon, a point having a value that is exactly halfway between the maximum value and the minimum value of each vertex of the polygon, and the like. Can be used.

<2.3.2.第2の手法>
次に、第2の手法について説明する。図5は、第2の手法による度数分布の算出処理の詳細を示すフローチャートである。第1の手法と同様の処理については、同一符号を付して説明を省略する。第2の手法においても、ステップS501〜ステップS509までは、第1の手法と同様に行われる。そして、第1の手法のステップS512と同様に、2種の度数分布の正規化を行う(ステップS512)。第2の手法では、2種の度数分布の算出後、強制的に正規化を行う。具体的には、上記〔数式9〕で算出されたHd(md)に、更に100/Ssumを乗じてHd(md)と置き換えることにより、単位を面積率[%]に正規化している。また、上記〔数式10〕で算出されたHa(ma)に、更に100/Ssumを乗じてHa(ma)と置き換えることにより、単位を面積率[%]に正規化している。第1の手法とは異なり、ループカウンタLCによる除算は行わない。
<2.3.2. Second method>
Next, the second method will be described. FIG. 5 is a flowchart showing details of the frequency distribution calculation processing by the second method. The same processes as those in the first method are denoted by the same reference numerals and description thereof is omitted. Also in the second method, steps S501 to S509 are performed in the same manner as in the first method. Then, as in step S512 of the first method, normalization of the two types of frequency distribution is performed (step S512). In the second method, normalization is forcibly performed after the calculation of the two types of frequency distributions. Specifically, the unit is normalized to the area ratio [%] by multiplying Hd (md) calculated by the above [Equation 9] by 100 / Ssum and replacing it with Hd (md). Further, the unit is normalized to the area ratio [%] by multiplying Ha (ma) calculated by the above [Equation 10] by 100 / Ssum and replacing it with Ha (ma). Unlike the first method, division by the loop counter LC is not performed.

外接円分布および内接円分布の正規化が行われたら、次に、ループカウンタLCが1以上であるかどうかを判定する(ステップS521)。これは、度数分布の算出が初回であるか否かの判定を行っている。ループカウンタLCが1未満である場合は、度数分布の算出が初回であることを意味するので、2つのグループの配列を1だけずらす処理を行う(ステップS511)。具体的には、第1の手法のステップS511と同様に、上記〔数式11〕に従った処理を実行することにより、配列R1(k)、R2(k)、R3(k)のうち2つの配列の順序をずらしている。   If normalization of the circumscribed circle distribution and the inscribed circle distribution is performed, it is next determined whether or not the loop counter LC is 1 or more (step S521). This determines whether or not the frequency distribution is calculated for the first time. When the loop counter LC is less than 1, it means that the frequency distribution is calculated for the first time, so that the process of shifting the arrangement of the two groups by 1 is performed (step S511). Specifically, similarly to step S511 of the first method, by executing the processing according to [Formula 11], two of the arrays R1 (k), R2 (k), and R3 (k) The order of the array is shifted.

ステップS511において、2つのグループの配列をずらした後、2つのグループともう1つのグループのポリゴンの組み合わせを1回目とは変えて、ステップS505〜ステップS512の処理を実行し、外接円分布および内接円分布の正規化を行う。すなわち、外接円分布および内接円分布を1回算出するごとに、3つのグループのうち2つのグループ内のポリゴンの順序を変化させて、外接円分布および内接円分布を改めて算出する処理を繰り返し行う。2回目以降では、ステップS521において、ループカウンタLCが1以上と判定されるため、直前の外接円分布および内接円分布との比較を行う(ステップS522)。まず、以下の〔数式12〕に従った処理を実行することにより、算出された外接円分布と直前の外接円分布のユークリッド距離DDを算出する。ユークリッド距離とは、各要素の度数同士の差分の絶対値を2乗した値で与えられるユークリッド空間上の距離である。ユークリッド距離DDは、MD次元ユークリッド空間内の2点の距離として求められる。   In step S511, after the arrangement of the two groups is shifted, the combination of the polygons of the two groups and the other group is changed from the first time, and the processing of steps S505 to S512 is executed, and the circumscribed circle distribution and the inner Normalize the tangent circle distribution. That is, every time the circumscribed circle distribution and the inscribed circle distribution are calculated once, the process of calculating the circumscribed circle distribution and the inscribed circle distribution again by changing the order of the polygons in two of the three groups is performed. Repeat. In the second and subsequent times, in step S521, since the loop counter LC is determined to be 1 or more, the immediately preceding circumscribed circle distribution and inscribed circle distribution are compared (step S522). First, the processing according to the following [Equation 12] is executed to calculate the Euclidean distance DD between the calculated circumscribed circle distribution and the immediately preceding circumscribed circle distribution. The Euclidean distance is a distance in the Euclidean space given as a value obtained by squaring the absolute value of the difference between the frequencies of each element. The Euclidean distance DD is obtained as a distance between two points in the MD dimensional Euclidean space.

〔数式12〕
DD=Σmd=0,MD-1[{Hd(md)−Hdp(md)}2/MD]1/2
[Formula 12]
DD = Σ md = 0, MD-1 [{Hd (md) −Hdp (md)} 2 / MD] 1/2

上記〔数式12〕において、Σの添え字の“md=0,MD−1”は、mdが0からMD−1の全ての整数をとる場合について、後続の[・・・]1/2の総和を求めることを示している。また、上記〔数式12〕において、Hdp(md)は、直前に算出された外接円分布を示す。 In the above [Equation 12], the subscript “md = 0, MD-1” of Σ is the following [...] 1/2 when md takes all integers from 0 to MD-1. The sum is calculated. In the above [Equation 12], Hdp (md) represents the circumscribed circle distribution calculated immediately before.

続いて、以下の〔数式13〕に従った処理を実行することにより、算出された内接円分布と直前の内接円分布のユークリッド距離DAを算出する。ユークリッド距離DAは、MA次元ユークリッド空間内の2点の距離として求められる。   Subsequently, by executing processing according to the following [Equation 13], the Euclidean distance DA between the calculated inscribed circle distribution and the immediately preceding inscribed circle distribution is calculated. The Euclidean distance DA is obtained as a distance between two points in the MA dimensional Euclidean space.

〔数式13〕
DA=Σma=0,MA-1[{Ha(ma)−Hap(ma)}2/MA]1/2
[Formula 13]
DA = Σ ma = 0, MA-1 [{Ha (ma) −Hap (ma)} 2 / MA] 1/2

上記〔数式13〕において、Σの添え字の“ma=0,MA−1”は、maが0からMA−1の全ての整数をとる場合について、後続の[・・・]1/2の総和を求めることを示している。また、上記〔数式13〕において、Hap(ma)は、直前に算出された内接円分布を示す。 In the above [Formula 13], the subscript “ma = 0, MA-1” of Σ is the following [...] 1/2 when ma takes all integers from 0 to MA-1. The sum is calculated. In the above [Equation 13], Hap (ma) represents the inscribed circle distribution calculated immediately before.

次に、度数分布算出手段10は、ステップS522において算出された外接円分布、内接円分布のユークリッド距離と、それぞれの判定しきい値との比較を行う(ステップS523)。具体的には、ユークリッド距離DD、DAが判定しきい値よりともに小さい場合は、飽和状態と判定し、ユークリッド距離DD、DAのいずれか一方が判定しきい値以上である場合は、生成途上と判定する。判定しきい値としては、任意に設定可能であるが、ここでは、0.05としてある。   Next, the frequency distribution calculating means 10 compares the circumscribed circle distribution calculated in step S522, the Euclidean distance of the inscribed circle distribution, and the respective determination threshold values (step S523). Specifically, when both of the Euclidean distances DD and DA are smaller than the determination threshold value, the saturated state is determined. When either one of the Euclidean distances DD and DA is equal to or greater than the determination threshold value, the generation is in progress. judge. The determination threshold can be arbitrarily set, but here it is set to 0.05.

ステップS523において飽和状態と判定された場合、すなわち両者に類似性が認められる場合には、度数分布算出手段10は、最後に算出された外接円分布および内接円分布を、正式に2種の度数分布とすることを決定する(ステップS524)。すなわち、算出直後の外接円分布および内接円分布と、その直前に得られた外接円分布および内接円分布を比較し、比較の結果で類似性が認められる場合に、算出直後の外接円分布および内接円分布を、照合対象の外接円分布および内接円分布とする。   When it is determined in step S523 that the state is saturated, that is, when similarity is recognized between the two, the frequency distribution calculating unit 10 officially converts the circumscribed circle distribution and the inscribed circle distribution calculated last into two types. The frequency distribution is determined (step S524). That is, the circumscribed circle distribution and the inscribed circle distribution immediately after the calculation are compared with the circumscribed circle distribution and the inscribed circle distribution obtained immediately before the circumscribed circle immediately after the calculation. The distribution and the inscribed circle distribution are set as a circumscribed circle distribution and an inscribed circle distribution to be collated.

ステップS523において生成途上と判定された場合には、2つのグループの配列を1だけずらす処理を行った後(ステップS511)、ステップS505〜ステップS509、S512、S521、S522の処理を繰り返し実行する。   If it is determined in step S523 that the group is in the process of generation, a process for shifting the arrangement of the two groups by 1 is performed (step S511), and then the processes in steps S505 to S509, S512, S521, and S522 are repeatedly executed.

対象モデルから得られた外接円分布と内接円分布における外接円と内接円を図6に示す。図6は、ポリゴンが三角形状の場合のポリゴンモデルを示している。ポリゴンモデル上から選択された3つのポリゴンについて、それぞれのポリゴンの頂点の平均座標をもつ平均点を結ぶことにより三角形が作成される。そして、三角形の外接円と内接円を求める。図6(a)は、三角形とその外接円と半径の関係を示し、図6(b)は、三角形とその内接円と半径の関係を示している。図6(a)(b)において、下向きの矢印は、それぞれ外接円の半径、内接円の半径を示している。   FIG. 6 shows circumscribed circles and inscribed circles in the circumscribed circle distribution and inscribed circle distribution obtained from the target model. FIG. 6 shows a polygon model when the polygon is triangular. For the three polygons selected from the polygon model, a triangle is created by connecting the average points having the average coordinates of the vertices of each polygon. Then, a circumscribed circle and an inscribed circle of a triangle are obtained. FIG. 6A shows the relationship between the triangle, its circumscribed circle, and the radius, and FIG. 6B shows the relationship between the triangle, its inscribed circle, and the radius. 6A and 6B, downward arrows indicate the radius of the circumscribed circle and the radius of the inscribed circle, respectively.

<2.4.度数分布の照合処理>
次に、ステップS200の度数分布の照合処理について説明する。図7は、度数分布の照合処理を示すフローチャートである。まず、度数分布照合手段20は、規制モデルデータベース40に記憶されているRE個のレコードの中からレコードre(re=0,・・・,RE−1)に登録されている度数分布を抽出する(ステップS610)。度数分布として、外接円分布Hdo(re,md)(md=0,・・・,MD−1)、内接円分布Hao(re,ma)(ma=0,・・・,MA−1)を抽出する。
<2.4. Frequency distribution matching process>
Next, the frequency distribution matching process in step S200 will be described. FIG. 7 is a flowchart showing the frequency distribution matching process. First, the frequency distribution matching unit 20 extracts the frequency distribution registered in the record re (re = 0,..., RE−1) from the RE records stored in the restriction model database 40. (Step S610). As the frequency distribution, circumscribed circle distribution Hdo (re, md) (md = 0,..., MD-1), inscribed circle distribution Hao (re, ma) (ma = 0,..., MA-1). To extract.

次に、度数分布照合手段20は、対象モデルから算出された外接円分布と、規制モデルデータベース40から抽出された規制モデルの外接円分布同士で各要素間の相関係数を算出する(ステップS620)。相関係数とは、二つの配列要素の関連性の強弱を示す指標である。ここでは、対象モデルと規制モデルの類似性の強弱を判定するために用いる。まず、以下の〔数式14〕に従った処理を実行することにより、対象モデルから算出された外接円分布Hd(md)の平均値Ad、規制モデルデータベース40から抽出された規制モデルの外接円分布Hdo(re,md)の平均値Ado(re)を算出する。   Next, the frequency distribution matching unit 20 calculates a correlation coefficient between each element between the circumscribed circle distribution calculated from the target model and the circumscribed circle distributions of the restriction model extracted from the restriction model database 40 (step S620). ). The correlation coefficient is an index indicating the strength of the relationship between two array elements. Here, it is used to determine the strength of similarity between the target model and the regulation model. First, by executing the processing according to the following [Formula 14], the average value Ad of the circumscribed circle distribution Hd (md) calculated from the target model, the circumscribed circle distribution of the regulated model extracted from the regulated model database 40 An average value Ado (re) of Hdo (re, md) is calculated.

〔数式14〕
Ad=Σmd=0,MD-1Hd(md)/MD
Ado(re)=Σmd=0,MD-1Hdo(re,md)/MD
[Formula 14]
Ad = Σ md = 0, MD-1 Hd (md) / MD
Ado (re) = Σ md = 0, MD-1 Hdo (re, md) / MD

続いて、以下の〔数式15〕に従った処理を実行することにより、対象モデルから算出された外接円分布Hd(md)の標準偏差Sd、規制モデルデータベース40から抽出された規制モデルの外接円分布Hdo(re,md)の標準偏差Sdo(re)を算出する。   Subsequently, by executing processing according to the following [Equation 15], the standard deviation Sd of the circumscribed circle distribution Hd (md) calculated from the target model, the circumscribed circle of the restriction model extracted from the restriction model database 40 A standard deviation Sdo (re) of the distribution Hdo (re, md) is calculated.

〔数式15〕
Sd=[Σmd=0,MD-1(Hd(md)−Ad)2]1/2
Sdo(re)=[Σmd=0,MD-1(Hdo(re,md)−Ado(re))2]1/2
[Formula 15]
Sd = [Σ md = 0, MD-1 (Hd (md) −Ad) 2 ] 1/2
Sdo (re) = [Σ md = 0, MD-1 (Hdo (re, md) −Ado (re)) 2 ] 1/2

厳密には、標準偏差は、上記〔数式15〕の{}内において、さらに定数MDで除算しておく必要がある。しかし、ここでは、相関係数を算出することが目的であるため、後述の〔数式16〕における分子の共分散を算出する項においても定数MDで除算する必要があり、分子と分母で重複して定数MDで除算する演算がキャンセルされる(分母は定数MDの平方根で2回除算)。   Strictly speaking, the standard deviation needs to be further divided by a constant MD in {} of the above [Formula 15]. However, since the purpose here is to calculate the correlation coefficient, it is necessary to divide by the constant MD in the term for calculating the covariance of the numerator in [Equation 16] to be described later. The operation of dividing by the constant MD is canceled (the denominator is divided twice by the square root of the constant MD).

次に、算出された平均値および標準偏差を用いて、以下の〔数式16〕に従った処理を実行することにより、対象モデルの外接円分布とレコードreに対応する規制モデルの外接円分布の相関係数Dd(re)を算出する。   Next, by using the calculated average value and standard deviation, the process according to the following [Equation 16] is executed, whereby the circumscribed circle distribution of the target model and the circumscribed circle distribution of the restriction model corresponding to the record re A correlation coefficient Dd (re) is calculated.

〔数式16〕
Dd(re)=[Σmd=0,MD-1(Hd(md)−Ad)・(Hdo(re,md)−Ado(re))]/(Sdo(re)・Sd)
[Formula 16]
Dd (re) = [Σ md = 0, MD-1 (Hd (md) −Ad) · (Hdo (re, md) −Ado (re))] / (Sdo (re) · Sd)

上記〔数式16〕において、Σの添え字の“md=0,MD−1”は、mdが0からMD−1の全ての整数をとる場合について、総和を求めることを示している。相関係数Dd(re)は、度数分布Hd(md)、Hdo(re,md)の共分散を、それぞれの標準偏差で除したものとなっている。上記〔数式16〕の演算のように、分母の平方根の割算を2回行うのは一般に処理負荷が高い。このため、画像処理の分野においては、分子の積和演算だけで済ますものを「相関係数」と呼び、上記〔数式16〕に示したDd(re)を「正規化相関係数」と呼ぶ習慣もある。   In the above [Equation 16], the subscript “md = 0, MD-1” of Σ indicates that the sum is obtained when md takes all integers from 0 to MD-1. The correlation coefficient Dd (re) is obtained by dividing the covariance of the frequency distributions Hd (md) and Hdo (re, md) by their standard deviations. As in the calculation of [Formula 16], performing the division of the square root of the denominator twice generally has a high processing load. For this reason, in the field of image processing, what is required only by the product-sum operation of numerators is called “correlation coefficient”, and Dd (re) shown in the above [Equation 16] is called “normalized correlation coefficient”. There are also customs.

次に、度数分布照合手段20は、ステップS620において算出された外接円分布の相関係数Dd(re)と、判定しきい値との比較を行う(ステップS630)。相関係数Dd(re)が判定しきい値以上である場合は、適合と判定し、相関係数Dd(re)が判定しきい値より小さい場合は、不適合と判定する。判定しきい値としては、正の値であれば任意に設定可能であるが、ここでは、+5.0(−1から+1の範囲をとる相関係数値を100倍して%次元で表現した場合)としてある。   Next, the frequency distribution matching unit 20 compares the correlation coefficient Dd (re) of the circumscribed circle distribution calculated in step S620 with the determination threshold value (step S630). When the correlation coefficient Dd (re) is greater than or equal to the determination threshold value, it is determined as conforming, and when the correlation coefficient Dd (re) is smaller than the determination threshold value, it is determined as non-conforming. The determination threshold value can be arbitrarily set as long as it is a positive value. Here, the correlation coefficient value taking a range of +5.0 (−1 to +1) is multiplied by 100 and expressed in% dimension. ).

ステップS630において適合と判定された場合には、度数分布照合手段20は、対象モデルから算出された内接円分布と、規制モデルデータベース40から抽出された規制モデルの内接円分布同士で、各要素間の相関係数を算出する(ステップS640)。まず、以下の〔数式17〕に従った処理を実行することにより、対象モデルから算出された内接円分布Ha(ma)の平均値Aa、規制モデルデータベース40から抽出された規制モデルの内接円分布Hao(re,ma)の平均値Aao(re)を算出する。   If it is determined in step S630 that the data is suitable, the frequency distribution matching unit 20 uses the inscribed circle distribution calculated from the target model and the inscribed circle distributions of the restriction model extracted from the restriction model database 40, respectively. A correlation coefficient between elements is calculated (step S640). First, by executing the processing according to the following [Equation 17], the average value Aa of the inscribed circle distribution Ha (ma) calculated from the target model, the inscribed of the restriction model extracted from the restriction model database 40 An average value Aao (re) of the circle distribution Hao (re, ma) is calculated.

〔数式17〕
Aa=Σma=0,MA-1Ha(ma)/MA
Aao(re)=Σma=0,MA-1Hao(re,ma)/MA
[Formula 17]
Aa = Σ ma = 0, MA-1 Ha (ma) / MA
Aao (re) = Σ ma = 0, MA-1 Hao (re, ma) / MA

続いて、以下の〔数式18〕に従った処理を実行することにより、対象モデルから算出された内接円分布Ha(ma)の標準偏差Sa、規制モデルデータベース40から抽出された規制モデルの内接円分布Hao(re,ma)の標準偏差Sao(re)を算出する。   Subsequently, by executing the processing according to the following [Equation 18], the standard deviation Sa of the inscribed circle distribution Ha (ma) calculated from the target model, the restriction model extracted from the restriction model database 40, A standard deviation Sao (re) of the tangent circle distribution Hao (re, ma) is calculated.

〔数式18〕
Sa=[Σma=0,MA-1(Ha(ma)−Aa)2]1/2
Sao(re)=[Σma=0,MA-1(Hao(re,ma)−Aao(re))2]1/2
[Formula 18]
Sa = [ Σma = 0, MA-1 (Ha (ma) −Aa) 2 ] 1/2
Sao (re) = [Σma = 0, MA-1 (Hao (re, ma) −Aao (re)) 2 ] 1/2

厳密には、標準偏差は、上記〔数式18〕の{}内において、さらに定数MAで除算しておく必要がある。しかし、ここでは、相関係数を算出することが目的であるため、後述の〔数式19〕における分子の共分散を算出する項においても定数MAで除算する必要があり、分子と分母で重複して定数MAで除算する演算がキャンセルされる(分母は定数MAの平方根で2回除算)。   Strictly speaking, the standard deviation needs to be further divided by a constant MA within {} in the above [Formula 18]. However, since the purpose here is to calculate the correlation coefficient, it is necessary to divide by the constant MA in the term for calculating the covariance of the numerator in [Equation 19], which will be described later. The operation of dividing by the constant MA is canceled (the denominator is divided by the square root of the constant MA twice).

次に、算出された平均値および標準偏差を用いて、以下の〔数式19〕に従った処理を実行することにより、対象モデルの内接円分布とレコードreに対応する規制モデルの内接円分布の相関係数Da(re)を算出する。   Next, by using the calculated average value and standard deviation, the process according to the following [Equation 19] is executed, whereby the inscribed circle distribution of the target model and the inscribed circle of the restriction model corresponding to the record re A correlation coefficient Da (re) of the distribution is calculated.

〔数式19〕
Da(re)=[Σma=0,MA-1(Ha(ma)−Aa)・(Hao(re,ma)−Aao(re))]/(Sao(re)・Sa)
[Formula 19]
Da (re) = [Σma = 0, MA-1 (Ha (ma) -Aa). (Hao (re, ma) -Aao (re))] / (Sao (re) .Sa)

上記〔数式19〕において、Σの添え字の“ma=0,MA−1”は、maが0からMA−1の全ての整数をとる場合について、総和を求めることを示している。相関係数Da(re)は、度数分布Ha(ma)、Hao(re,ma)の共分散を、それぞれの標準偏差で除したものとなっている。上記〔数式19〕の演算のように、分母の平方根の割算を2回行うのは一般に処理負荷が高い。このため、画像処理の分野においては、分子の積和演算だけで済ますものを「相関係数」と呼び、上記〔数式19〕に示したDa(re)を「正規化相関係数」と呼ぶ習慣もある。   In the above [Equation 19], the subscript “ma = 0, MA−1” of Σ indicates that the sum is obtained when ma takes all integers from 0 to MA−1. The correlation coefficient Da (re) is obtained by dividing the covariance of the frequency distributions Ha (ma) and Hao (re, ma) by the respective standard deviations. In general, the processing load is high when dividing the square root of the denominator twice as in the calculation of [Formula 19]. For this reason, in the field of image processing, what is required only by the product-sum operation of numerators is called “correlation coefficient”, and Da (re) shown in the above [Equation 19] is called “normalized correlation coefficient”. There are also customs.

次に、度数分布照合手段20は、ステップS640において算出された内接円分布の相関係数Da(re)と、判定しきい値との比較を行う(ステップS650)。相関係数Da(re)が判定しきい値以上である場合は、適合と判定し、相関係数Da(re)が判定しきい値より小さい場合は、不適合と判定する。判定しきい値としては、正の値であれば任意に設定可能であるが、ここでは、+5.0(−1から+1の範囲をとる相関係数値を100倍して%次元で表現した場合)としてある。ステップS650において適合と判定された場合には、度数分布照合手段20は、対象モデルとレコードreの規制モデルが適合することになるため、出力を規制すべきである(出力不適)との判定を行う。   Next, the frequency distribution matching unit 20 compares the correlation coefficient Da (re) of the inscribed circle distribution calculated in step S640 with the determination threshold value (step S650). If the correlation coefficient Da (re) is greater than or equal to the determination threshold value, it is determined as conforming, and if the correlation coefficient Da (re) is smaller than the determination threshold value, it is determined as non-conforming. The determination threshold value can be arbitrarily set as long as it is a positive value. Here, the correlation coefficient value taking a range of +5.0 (−1 to +1) is multiplied by 100 and expressed in% dimension. ). If it is determined to be suitable in step S650, the frequency distribution matching unit 20 determines that the output should be restricted (output inappropriate) because the target model and the restriction model of the record re are compatible. Do.

ステップS630、S650のいずれかにおいて不適合と判定された場合には、度数分布照合手段20は、対象モデルとレコードreの規制モデルの照合を終え、次のレコードre+1の規制モデルとの照合に移行する。図7のフローチャートに従った処理を、規制モデルデータベース40内の全レコードに対して実行し、適合となる規制モデルが1つでも存在したら、対象モデルを“出力を規制すべきである(出力不適)”としてステップS200の照合処理を終了することになる。   When it is determined as non-conforming in either step S630 or S650, the frequency distribution matching unit 20 finishes matching the target model with the restriction model of the record re, and proceeds to matching with the restriction model of the next record re + 1. . When the process according to the flowchart of FIG. 7 is executed for all records in the restriction model database 40 and there is at least one applicable restriction model, the output should be restricted to the target model (output inappropriate) ) ", The collation process in step S200 is terminated.

<3.3Dプリンタへのデータ出力>
上記ステップS200において、度数分布照合手段20により“出力を規制すべきでない(出力適正)”と判定された場合には、立体物造形装置である3Dプリンタ7へ対象モデルを出力する。すなわち、立体物造形用データ出力規制装置で出力が許可されたポリゴンモデルである対象モデルを、立体物を造形する立体物造形装置に出力する。一方、度数分布照合手段20により“出力を規制すべきである(出力不適)”と判定された場合には、立体物造形装置である3Dプリンタ7へ対象モデルを出力しない。また、出力適正か出力不適かの判定に時間がかかる場合には、3Dプリンタ7に対象モデルを出力し、3Dプリンタ7の出力処理(立体物造形処理)と並行して出力適正か出力不適かの判定を行い、出力不適である場合に出力中止命令を3Dプリンタ7に出力するようにしてもよい。この際、利用者から見れば、対象モデルの出力という一つの命令を行うことにより、3Dプリンタにおける立体物造形処理が開始されることが確認できるだけで、並行して出力適正か出力不適かの判定のための処理の実行が開始されることは気付かない。
<Data output to 3.3D printer>
In step S200, when the frequency distribution matching unit 20 determines that “the output should not be restricted (output appropriate)”, the target model is output to the 3D printer 7 which is a three-dimensional object formation apparatus. That is, the target model that is a polygon model whose output is permitted by the three-dimensional object modeling data output restriction device is output to the three-dimensional object modeling device that models the three-dimensional object. On the other hand, if the frequency distribution matching means 20 determines that “the output should be regulated (output inappropriate)”, the target model is not output to the 3D printer 7 which is a three-dimensional object forming apparatus. If it takes a long time to determine whether output is appropriate or not, whether the target model is output to the 3D printer 7 and whether the output is appropriate or inappropriate in parallel with the output process (three-dimensional object modeling process) of the 3D printer 7. If the output is unsuitable, an output stop command may be output to the 3D printer 7. At this time, from the user's point of view, it is only possible to confirm that the three-dimensional object shaping process in the 3D printer is started by issuing a single command to output the target model. I do not notice that the execution of the process for is started.

<4.対象モデル分離処理>
図3に示した度数分布の算出処理に先立ち、対象モデルの分離を行う対象モデル分離処理を行うようにしてもよい。事前に対象モデルの分離を行っておくことにより、規制モデルと対象モデルとで互いに部品構成が異なる場合であっても、適切に出力適正か出力不適かの判断を行うことが可能となる。以下に、度数分布の算出処理に先立つ対象モデル分離処理について説明する。対象モデル分離処理は、図1に示したCPU1が記憶装置3に記憶されたプログラムを実行することにより実現される対象モデル分離手段により行われる。
<4. Target model separation processing>
Prior to the frequency distribution calculation process shown in FIG. 3, a target model separation process for separating the target model may be performed. By separating the target model in advance, it is possible to appropriately determine whether the output is appropriate or inappropriate even if the component model is different between the regulated model and the target model. The target model separation process prior to the frequency distribution calculation process will be described below. The target model separation process is performed by a target model separation unit realized by the CPU 1 illustrated in FIG. 1 executing a program stored in the storage device 3.

<4.1.分離処理の概要>
対象モデル分離手段は、対象モデルを複数の部分対象モデルに分離する対象モデル分離処理を行う。より詳細には、対象モデル分離手段は、あるポリゴンと、そのポリゴンと辺を共有する3つの隣接ポリゴンが、同一の部分対象モデルに属するように分離する。図8は、対象モデル分離手段による対象モデル分離処理の詳細を示すフローチャートである。まず、対象モデル分離手段は、対象モデル記憶手段30から、分離前のポリゴンモデルを読み込み、ポリゴンモデルの構造化を行う(ステップS10)。次に、対象モデル分離手段は、ポリゴン稜線の構造化を行う(ステップS20)。次に、対象モデル分離手段は、隣接ポリゴンテーブルの作成を行う(ステップS30)。そして、対象モデル分離手段は、隣接ポリゴンテーブルが作成されたポリゴンモデルを、複数のグループに分離する(ステップS40)。なお、<4.対象モデル分離処理>においても「グループ」やポリゴンを特定する「ポリゴンID」の用語が出現する。しかし、これらは、<4.対象モデル分離処理>内でのみ用いられるものであり、<4.対象モデル分離処理>以外で出現する3つのグループや、ポリゴンを特定する「変数i」とは無関係である。
<4.1. Overview of separation process>
The target model separation means performs a target model separation process for separating the target model into a plurality of partial target models. More specifically, the target model separation means separates a certain polygon and three adjacent polygons sharing the side with the polygon so that they belong to the same partial target model. FIG. 8 is a flowchart showing details of target model separation processing by the target model separation means. First, the target model separation unit reads the polygon model before separation from the target model storage unit 30 and structures the polygon model (step S10). Next, the target model separating means performs structuring of the polygon ridge line (step S20). Next, the target model separation unit creates an adjacent polygon table (step S30). Then, the target model separation means separates the polygon model for which the adjacent polygon table has been created into a plurality of groups (step S40). In addition, <4. Also in the target model separation process>, the term “polygon ID” that identifies a “group” or a polygon appears. However, these are <4. This is only used in the target model separation processing><4. It is unrelated to the three groups appearing except for the target model separation process> and the “variable i” for specifying the polygon.

まず、処理対象とするポリゴンモデルである対象モデルは、空間における三次元の値をもち、数万個単位のポリゴンからなることもあるが、本実施形態では、説明の便宜上、二次元空間に投影したポリゴン群を用いる。図9は、処理対象とするポリゴン群の一例を示す図である。図9の例では、18個の三角形のポリゴンからなるポリゴン群を示している。図9において、大文字のアルファベットA〜Nは特定のポリゴンに属する形式でなく、複数のポリゴンで共有される共有頂点を識別するために示している。大文字のアルファベットA〜Nは、ポリゴン群全体において共有頂点を識別するために、便宜上付されたものであり、後述する頂点座標配列データや、頂点構成テーブル、先頭頂点テーブル、頂点座標テーブル、稜線構成テーブル、先頭稜線テーブル、稜線テーブル、稜線ID別ポリゴンテーブル、隣接ポリゴンテーブルには記録されていない(一部記載されているものは、理解を容易にするために便宜上用いられている。)。   First, a target model, which is a polygon model to be processed, has a three-dimensional value in space and may be composed of tens of thousands of polygons. In this embodiment, for convenience of explanation, the target model is projected onto a two-dimensional space. Use the polygon group. FIG. 9 is a diagram illustrating an example of a polygon group to be processed. In the example of FIG. 9, a polygon group consisting of 18 triangular polygons is shown. In FIG. 9, uppercase alphabets A to N are shown not for belonging to a specific polygon but for identifying a shared vertex shared by a plurality of polygons. Uppercase alphabets A to N are attached for convenience in order to identify shared vertices in the entire polygon group. Vertex coordinate array data, a vertex configuration table, a head vertex table, a vertex coordinate table, and a ridge line configuration to be described later It is not recorded in the table, the head ridge line table, the ridge line table, the polygon table by ridge line ID, and the adjacent polygon table (some of them are used for convenience to facilitate understanding).

図10は、図9に示したポリゴン群を実現するための頂点座標配列データを示す図である。頂点座標配列データは、ポリゴンモデルを規定するデータであり、ポリゴンの集合体であるポリゴンモデルを配列構造で定義している。すなわち、図10は、STLデータより法線ベクトルの情報を削除した構造を示している。図10に示すように、頂点座標配列データは、ポリゴンを識別するポリゴン識別情報であるポリゴンIDP1〜P18に対応付けて、ポリゴンを構成する第1頂点、第2頂点、第3頂点の3つの頂点順に各座標値が記録されている。   FIG. 10 is a diagram showing vertex coordinate array data for realizing the polygon group shown in FIG. The vertex coordinate array data is data defining a polygon model, and a polygon model that is an aggregate of polygons is defined by an array structure. That is, FIG. 10 shows a structure in which normal vector information is deleted from the STL data. As shown in FIG. 10, the vertex coordinate array data is associated with polygon IDs P1 to P18 which are polygon identification information for identifying polygons, and the three vertices of the first vertex, the second vertex, and the third vertex constituting the polygon. Each coordinate value is recorded in order.

また、図9、図10には、各ポリゴンおよび各ポリゴンを構成する3つの頂点を各ポリゴンIDP1〜P18と頂点順に対応付けて表現されたポリゴン別頂点ID“V1a”〜“V18c”が記載されている。ポリゴン別頂点ID“V1a”〜“V18c”は、説明の便宜上設けたものであり、頂点座標配列データ、先頭頂点テーブル、頂点構成テーブル、頂点座標テーブル、稜線構成テーブル、先頭稜線テーブル、稜線テーブル、稜線ID別ポリゴンテーブル、隣接ポリゴンテーブルには記録されていない。   9 and 10 show polygon-specific vertex IDs “V1a” to “V18c” in which the polygons and the three vertices constituting each polygon are associated with the polygon IDs P1 to P18 in the order of the vertices. ing. The polygon-specific vertex IDs “V1a” to “V18c” are provided for convenience of explanation, and include vertex coordinate array data, head vertex table, vertex configuration table, vertex coordinate table, edge line configuration table, head edge line table, edge line table, It is not recorded in the polygon table by edge line ID and the adjacent polygon table.

ポリゴン別頂点IDは、その頂点が属するポリゴンのポリゴンIDと当該ポリゴンにおける頂点順が特定される形式で頂点を表現したものである。具体的には、図9に示すように、頂点を示すVの後に、対応するポリゴンIDに含まれる数字、そして第1頂点、第2頂点、第3頂点の頂点順を示すa、b、cのいずれかの小文字のアルファベットで表現する。例えば、図10の1行目に示すように、ポリゴンID“P1”のポリゴン(ポリゴンP1)の第1頂点は、“V1a”と表現される。頂点順“V1a”に数字“1”が入っているため、ポリゴンP1の頂点であることが明確になっている。このポリゴン別頂点IDは、実際にはシリアル番号で表現され、そのシリアル番号に従って各頂点の座標値が頂点座標配列データに記録されているが、図9との対応関係、頂点がどのポリゴンに所属するかを明らかにするため、便宜上ポリゴン別頂点IDに記号を付加して図面に掲載したものである。また、図10の頂点座標配列データにおいて、各頂点の座標は、図9で示した共有頂点A〜Nのいずれかに対応するため、各頂点の座標値が対応する共有頂点A〜Nを識別するアルファベットの小文字を添えて表現している。例えば、図10の1行目に示すように、ポリゴンP1の第1頂点V1aの座標値は、図9において“D”と表示されているので、“(Xd,Yd,Zd)”と表現される。各ポリゴンごとに、構成される3つの頂点に対応付けて3つの頂点の座標値が記録されている。   The vertex ID for each polygon expresses the vertex in a format in which the polygon ID of the polygon to which the vertex belongs and the vertex order in the polygon are specified. Specifically, as shown in FIG. 9, after V indicating a vertex, numbers included in the corresponding polygon ID, and a, b, and c indicating the vertex order of the first vertex, the second vertex, and the third vertex. Express with one of the lowercase alphabets. For example, as shown in the first line of FIG. 10, the first vertex of the polygon (polygon P1) with the polygon ID “P1” is expressed as “V1a”. Since the number “1” is entered in the vertex order “V1a”, it is clear that it is the vertex of the polygon P1. This vertex ID for each polygon is actually expressed by a serial number, and the coordinate value of each vertex is recorded in the vertex coordinate array data according to the serial number, but the correspondence relationship with FIG. 9 and which polygon the vertex belongs to In order to clarify whether this is done, a symbol is added to the vertex ID for each polygon for convenience and is shown in the drawing. Further, in the vertex coordinate array data of FIG. 10, since the coordinates of each vertex correspond to any of the shared vertices A to N shown in FIG. 9, the shared vertex A to N corresponding to the coordinate value of each vertex is identified. It is expressed with the lowercase letters of the alphabet. For example, as shown in the first line of FIG. 10, the coordinate value of the first vertex V1a of the polygon P1 is expressed as “(Xd, Yd, Zd)” because “D” is displayed in FIG. The For each polygon, the coordinate values of the three vertices are recorded in association with the three vertices configured.

上記のような規則に従って作成されるため、頂点座標配列データにおいては、同一座標の頂点が複数箇所に重複して記録されることになる。例えば、図9に示した頂点Dは、6つのポリゴンP1,P2,P4,P5,P6,P7に共有されるため、座標値“(Xd,Yd,Zd)”は、頂点V1a,V2a,V4b,V5c,V6c,V7cとして6箇所に記録される。   Since it is created according to the rules as described above, in the vertex coordinate array data, vertices with the same coordinates are recorded redundantly at a plurality of locations. For example, since the vertex D shown in FIG. 9 is shared by six polygons P1, P2, P4, P5, P6, and P7, the coordinate values “(Xd, Yd, Zd)” are the vertexes V1a, V2a, V4b. , V5c, V6c, V7c are recorded at six locations.

<4.2.ポリゴンモデルの構造化>
ステップS10のポリゴンモデルの構造化について説明する。ポリゴンモデルの構造化とは、ポリゴンモデルを実現するデータである頂点座標配列データを、頂点構成テーブルおよび頂点座標テーブルで構成される構造に変換することにより、ポリゴンモデルにおける頂点関係(トポロジー・位相情報)が座標値(数値データ)から分離され、あるポリゴンの頂点の修正により影響を受ける周辺のポリゴンの頂点の探索が容易になり、編集し易い構造に組み替えることを意味する。
<4.2. Structure of polygon model>
The structuring of the polygon model in step S10 will be described. Polygon model structuring refers to the vertex relationship (topology / phase information in the polygon model) by converting the vertex coordinate array data, which is the data that realizes the polygon model, into a structure consisting of a vertex configuration table and a vertex coordinate table. ) Is separated from the coordinate value (numerical data), and it becomes easy to search for the vertices of the surrounding polygons affected by the correction of the vertices of a certain polygon, and it is rearranged into a structure easy to edit.

図11は、ステップS10のポリゴンモデルの構造化の詳細を示すフローチャートである。ステップS10のポリゴンモデルの構造化は、対象モデル分離手段により行われる。まず、頂点構成テーブル、頂点座標テーブル、頂点IDの初期化を行う(S101)。頂点構成テーブルは、各ポリゴンに含まれる各頂点を、同一座標の共有頂点を同一値とする頂点IDで表現し、ポリゴンを構成する各頂点を共有頂点の頂点IDで表現して当該ポリゴンのポリゴンIDと頂点順とで対応付けて記録したテーブルである。頂点IDは、共有頂点を識別するための頂点識別情報であり、共有頂点を一意に特定することができれば、どのようなものを用いてもよいが、演算処理の効率化のため、本実施形態では、0から始まるシリアルな整数値を用いている。頂点座標テーブルは、頂点構成テーブルに記録された頂点IDと座標値を対応付けて記録したテーブルである。頂点構成テーブル、頂点座標テーブルの初期化は、各項目が記録されていない状態にすることを意味する。また、頂点IDの初期化として現在の頂点ID=0に設定する。さらに、ハッシュ値とリンク先頂点IDを対応付けた先頭頂点テーブルも初期化する。先頭頂点テーブルの初期化は、リンク先頂点IDを全て“−1”に設定することにより行われる。頂点座標テーブルと先頭頂点テーブルの2つのテーブルによりハッシュ値別頂点座標テーブルを実現する。   FIG. 11 is a flowchart showing details of the structuring of the polygon model in step S10. The structuring of the polygon model in step S10 is performed by the target model separation unit. First, the vertex configuration table, vertex coordinate table, and vertex ID are initialized (S101). The vertex configuration table expresses each vertex included in each polygon by a vertex ID having the same value as the shared vertex of the same coordinate, and expresses each vertex constituting the polygon by the vertex ID of the shared vertex. It is the table which matched and recorded by ID and vertex order. The vertex ID is vertex identification information for identifying the shared vertex, and any vertex can be used as long as the shared vertex can be uniquely specified. In this example, a serial integer value starting from 0 is used. The vertex coordinate table is a table in which the vertex ID and the coordinate value recorded in the vertex configuration table are recorded in association with each other. Initialization of the vertex configuration table and the vertex coordinate table means that each item is not recorded. Also, the current vertex ID = 0 is set as the initialization of the vertex ID. Furthermore, the top vertex table in which the hash value and the link destination vertex ID are associated is also initialized. The initial vertex table is initialized by setting all link destination vertex IDs to “−1”. A vertex coordinate table by hash value is realized by two tables, a vertex coordinate table and a head vertex table.

次に、頂点座標配列データより頂点座標値を抽出するにあたり、ポリゴンIDを“P1”に、頂点順を“0”に初期化する(S101)。そして、頂点座標配列データより現在のポリゴンIDと頂点順に対応する1つの頂点座標値を抽出する(S102)。例えば、図10に示した頂点座標配列データからは、ポリゴンID“P1”と第1頂点の頂点座標値(Xd,Yd,Zd)が抽出される。   Next, in extracting the vertex coordinate value from the vertex coordinate array data, the polygon ID is initialized to “P1” and the vertex order is initialized to “0” (S101). Then, one vertex coordinate value corresponding to the current polygon ID and the vertex order is extracted from the vertex coordinate array data (S102). For example, the polygon ID “P1” and the vertex coordinate values (Xd, Yd, Zd) of the first vertex are extracted from the vertex coordinate array data shown in FIG.

続いて、抽出された頂点座標値(Xd,Yd,Zd)よりハッシュ値を算出する(S103)。具体的には、まず、ポリゴンモデル内の全てのポリゴンの3次元座標値x,y,zの最大値Xmax,Ymax,Zmax、最小値Xmin,Ymin,Zminを求める。これは、図10に示したような頂点座標配列データの座標ごとの最大値、最小値を求めることになる。そして、座標値x,y,zの値を均等なT段階に分類し、整数値hx,hy,hz(0≦hx,hy,hz≦T−1)に変換する。整数Tとしては、例えばT=32を設定することができる。具体的には、以下の〔数式20〕に従った処理を実行することにより、hx,hy,hzを算出する。ただし、〔数式20〕に従った処理の後、小数点以下を切り捨てた値を、整数値hx,hy,hzとして得るものとする。   Subsequently, a hash value is calculated from the extracted vertex coordinate values (Xd, Yd, Zd) (S103). Specifically, first, the maximum values Xmax, Ymax, Zmax and the minimum values Xmin, Ymin, Zmin of the three-dimensional coordinate values x, y, z of all the polygons in the polygon model are obtained. This is to obtain the maximum value and the minimum value for each coordinate of the vertex coordinate array data as shown in FIG. Then, the coordinate values x, y, and z are classified into equal T stages, and converted into integer values hx, hy, hz (0 ≦ hx, hy, hz ≦ T−1). As the integer T, for example, T = 32 can be set. Specifically, hx, hy, hz are calculated by executing processing according to the following [Equation 20]. However, after the processing according to [Equation 20], values obtained by rounding down the decimals are obtained as integer values hx, hy, hz.

〔数式20〕
hx=(x−Xmin)・T/(Xmax−Xmin)
hy=(y−Ymin)・T/(Ymax−Ymin)
hz=(z−Zmin)・T/(Zmax−Zmin)
[Formula 20]
hx = (x−Xmin) · T / (Xmax−Xmin)
hy = (y−Ymin) · T / (Ymax−Ymin)
hz = (z−Zmin) · T / (Zmax−Zmin)

そして、以下の〔数式21〕に従った処理を実行することにより、ハッシュ値hを算出する。   And the hash value h is calculated by performing the process according to the following [Formula 21].

〔数式21〕
h=hx+hy・T+hz・T2(0≦h≦T3−1)
[Formula 21]
h = hx + hy · T + hz · T 2 (0 ≦ h ≦ T 3 −1)

次に、算出されたハッシュ値を用いて先頭頂点テーブルを参照する(S104)。そして、そのハッシュ値に対応するリンク先頂点IDが先頭頂点テーブルに登録されているか否かを判定する(S105)。ハッシュ値に対応するリンク先頂点ID(図中“リンク頂点ID”と表示)が“−1”、すなわち初期状態である場合は、そのハッシュ値に対応するリンク先頂点IDが未登録、すなわち既登録でないことを意味する。   Next, the head vertex table is referred to using the calculated hash value (S104). Then, it is determined whether or not the link destination vertex ID corresponding to the hash value is registered in the head vertex table (S105). When the link destination vertex ID corresponding to the hash value (indicated as “link vertex ID” in the figure) is “−1”, that is, in the initial state, the link destination vertex ID corresponding to the hash value is not registered, that is, already exists. Means not registered.

この場合、先頭頂点テーブルに頂点IDの記録を行う(S106)。具体的には、先頭頂点テーブルのハッシュ値に対応するリンク先頂点IDに、現在の頂点ID(初期状態では“0”)を書き込む。続いて、頂点座標テーブルの現在の頂点IDの位置にステップS102で抽出した座標値を書き込む(S107)。この時、頂点座標テーブルにもリンク先頂点IDを書き込む欄があるが、初期状態の“−1”のままにする。また、頂点構成テーブルにステップS102で抽出したポリゴンIDと頂点順の位置に対応付けて、現在の頂点IDを書き込む。ここでは、新規な頂点IDとして記録されることになる。そして、現在の頂点IDをインクリメントする。   In this case, the vertex ID is recorded in the head vertex table (S106). Specifically, the current vertex ID (“0” in the initial state) is written in the link destination vertex ID corresponding to the hash value of the head vertex table. Subsequently, the coordinate value extracted in step S102 is written in the position of the current vertex ID in the vertex coordinate table (S107). At this time, the vertex coordinate table also has a column for writing the link destination vertex ID, but the initial state is “−1”. Further, the current vertex ID is written in the vertex configuration table in association with the polygon ID extracted in step S102 and the position in the vertex order. Here, it is recorded as a new vertex ID. Then, the current vertex ID is incremented.

一方、ステップS105において、ハッシュ値に対応するリンク先頂点IDが“−1”でない場合は、そのハッシュ値に対応するリンク先頂点IDが既登録であることを意味する。この場合、ステップS102で抽出した座標値と、頂点座標テーブルにおける既登録のリンク先頂点IDに対応する座標値が一致するか否かを判定する(S108)。判定の結果、両座標値が一致する場合は、頂点構成テーブルのポリゴンID、頂点順の位置に、既登録のリンク先頂点IDを記録する(S109)。ステップS108における判定の結果、両座標値が異なる場合は、頂点座標テーブルのリンク先頂点IDを参照し、リンク先頂点IDが0以上であるか否かを確認する(S110)。   On the other hand, if the link destination vertex ID corresponding to the hash value is not “−1” in step S105, it means that the link destination vertex ID corresponding to the hash value is already registered. In this case, it is determined whether the coordinate value extracted in step S102 matches the coordinate value corresponding to the registered link destination vertex ID in the vertex coordinate table (S108). If the two coordinate values match as a result of the determination, the registered link destination vertex ID is recorded at the position of the polygon ID and the vertex order in the vertex configuration table (S109). If the two coordinate values are different as a result of the determination in step S108, the link destination vertex ID in the vertex coordinate table is referred to and it is confirmed whether the link destination vertex ID is 0 or more (S110).

確認の結果、リンク先頂点IDが0以上である場合は、その値を頂点IDとし、ステップS108に戻って、その頂点IDに対応する頂点座標テーブルにおける既登録の座標値とステップS102で抽出した座標値を照合する。ステップS110における確認の結果、リンク先頂点IDが負値(例えば“−1”)である場合は、頂点座標テーブルのその頂点IDに対応するリンク先頂点IDに現在の頂点IDを記録し、ステップS107に戻って、頂点座標テーブルの現在の頂点IDの位置にステップS102で抽出した座標値を記録する。この時、頂点座標テーブルの現在の頂点IDにおけるリンク先頂点IDについては、初期状態の“−1”のままにする。また、頂点構成テーブルにステップS102で抽出したポリゴンIDと頂点順の位置に現在の頂点IDを記録する。そして、頂点IDをインクリメントする。   As a result of the confirmation, if the link destination vertex ID is 0 or more, the value is set as the vertex ID, the process returns to step S108, and the already registered coordinate value in the vertex coordinate table corresponding to the vertex ID is extracted in step S102. Match coordinate values. As a result of the confirmation in step S110, if the link destination vertex ID is a negative value (eg, “−1”), the current vertex ID is recorded in the link destination vertex ID corresponding to the vertex ID in the vertex coordinate table, and step Returning to S107, the coordinate value extracted in step S102 is recorded at the position of the current vertex ID in the vertex coordinate table. At this time, the link destination vertex ID at the current vertex ID in the vertex coordinate table is left as “−1” in the initial state. Also, the current vertex ID is recorded in the vertex configuration table at the position of the polygon ID extracted in step S102 and the vertex order. Then, the vertex ID is incremented.

ステップS107またはS109の処理を終えたら、全ポリゴンに対して処理を終えたか否かを判定する(S111)。具体的には、まず、頂点順をインクリメントし、頂点順が“2”を超えたら、ポリゴンIDをインクリメントして頂点順を“0”にする。例えば、現在のポリゴンIDが“P1”の場合、ポリゴンIDをインクリメントすると、ポリゴンIDは“P2”になる。ポリゴンIDがポリゴン総数を超えていなければ、ステップS102に戻って処理を繰り返す。ポリゴンIDがポリゴン総数を超えていれば、全ポリゴンに対して処理を終えたと判定して処理を終了する。   When the process of step S107 or S109 is completed, it is determined whether or not the process has been completed for all the polygons (S111). Specifically, first, the vertex order is incremented. When the vertex order exceeds “2”, the polygon ID is incremented to set the vertex order to “0”. For example, if the current polygon ID is “P1” and the polygon ID is incremented, the polygon ID becomes “P2”. If the polygon ID does not exceed the total number of polygons, the process returns to step S102 and is repeated. If the polygon ID exceeds the total number of polygons, it is determined that the processing has been completed for all the polygons, and the processing ends.

対象モデル分離手段は、ハッシュ値算出手段、座標値照合手段、頂点構成テーブル処理手段、頂点座標テーブル処理手段を備えており、図11に示したポリゴンモデルの構造化処理は、これらの手段が連携することにより実現される。   The target model separation means includes a hash value calculation means, a coordinate value collation means, a vertex configuration table processing means, and a vertex coordinate table processing means, and these means cooperate in the polygon model structuring process shown in FIG. It is realized by doing.

図11に示したステップS10のポリゴンモデルの構造化処理の具体例について説明する。図9に示したポリゴン群が、その頂点の座標値により図12に示すようなハッシュ値をとる場合を例にとって説明する。図12の例では、説明の都合上2次元で表現し、上記〔数式21〕においてT=2とすると、h=hx+hy・2となり、頂点A,B,D,Eのハッシュ値がh=0、頂点C,Fのハッシュ値がh=1、頂点G,H,J,L,Mのハッシュ値がh=2、頂点I,K,Nのハッシュ値がh=3であることを示している。実際には上記〔数式21〕において、T=32に設定し、h=hx+hy・32+hz・1024となり、ハッシュ値hは、0〜32767の値をとるが、以下では、説明を簡略化するため、ハッシュ値は図12に示したような0〜3の値をとるものとして説明していく。   A specific example of the polygon model structuring process in step S10 shown in FIG. 11 will be described. The case where the polygon group shown in FIG. 9 takes a hash value as shown in FIG. 12 based on the coordinate value of the vertex will be described as an example. In the example of FIG. 12, it is expressed in two dimensions for convenience of explanation, and if T = 2 in the above [Equation 21], h = hx + hy · 2 is obtained, and the hash values of the vertices A, B, D, and E are h = 0. , The hash values of vertices C and F are h = 1, the hash values of vertices G, H, J, L, and M are h = 2, and the hash values of vertices I, K, and N are h = 3 Yes. Actually, in the above [Equation 21], T = 32 is set, h = hx + hy · 32 + hz · 1024, and the hash value h takes a value of 0 to 32767, but in the following, in order to simplify the explanation, The hash value will be described assuming that it takes a value of 0 to 3 as shown in FIG.

図13は、S101における初期化時の各テーブルの状態を示す図である。図13(a)は頂点構成テーブル、図13(b)は先頭頂点テーブル、図13(c)は頂点座標テーブルを示している。先頭頂点テーブルには、ハッシュ値に頂点IDが対応付けられてリンク先頂点IDとして記録されている。ここでは、図12に示したようにハッシュ値が0〜3の値をとるため、先頭頂点テーブルには、全てのハッシュ値0〜3に対応付けてリンク先頂点IDとして“−1”が記録されている。頂点座標テーブルには、頂点IDに対応付けられて頂点座標が記録されるとともに、リンク先頂点IDが記録されている。   FIG. 13 is a diagram showing the state of each table at the time of initialization in S101. FIG. 13A shows a vertex configuration table, FIG. 13B shows a top vertex table, and FIG. 13C shows a vertex coordinate table. In the head vertex table, a vertex ID is associated with a hash value and recorded as a link destination vertex ID. Here, since the hash value takes a value of 0 to 3 as shown in FIG. 12, “−1” is recorded as the link destination vertex ID in association with all the hash values 0 to 3 in the head vertex table. Has been. In the vertex coordinate table, vertex coordinates are recorded in association with vertex IDs, and link destination vertex IDs are recorded.

図13(a)に示すように、頂点構成テーブルは、ポリゴンIDと頂点順に対応付けて3つの頂点IDが記録されるようになっているが、頂点順は、左から0,1,2となっており、図10に示した第1頂点、第2頂点、第3頂点に対応している。ステップS101における初期化の際、頂点順=0に初期化される。ステップS102において、頂点座標配列データより、ポリゴンP1の第1頂点の座標値(Xd,Yd,Zd)を抽出して、ステップS103において、ハッシュ値“0”が算出されたものとする。ステップS104において、ハッシュ値“0”で先頭頂点テーブルを参照すると、ステップS105において、リンク先の頂点IDが登録されていないため、先頭頂点テーブルのハッシュ値“0”に対応付けて、ステップS106において、現在の頂点ID“0”をリンク先として記録する。   As shown in FIG. 13A, in the vertex configuration table, three vertex IDs are recorded in association with the polygon ID and the vertex order. The vertex order is 0, 1, 2 from the left. These correspond to the first vertex, the second vertex, and the third vertex shown in FIG. At the time of initialization in step S101, the vertex order is initialized to zero. It is assumed that the coordinate value (Xd, Yd, Zd) of the first vertex of the polygon P1 is extracted from the vertex coordinate array data in step S102, and the hash value “0” is calculated in step S103. If the head vertex table is referenced with the hash value “0” in step S104, since the link destination vertex ID is not registered in step S105, the hash value “0” in the head vertex table is associated with the hash value “0” in step S106. The current vertex ID “0” is recorded as the link destination.

そして、ステップS107において、頂点座標テーブルにおける現在の頂点ID“0”の位置に、ステップS102において抽出した座標値(Xd,Yd,Zd)を記録し、リンク先頂点IDとして“−1”を記録する。さらに、ステップS107において、現在のポリゴンID“P1”の現在の頂点順“0”の位置に、現在の頂点ID“0”を記録する。この結果、各テーブルは、図14に示すような状態となる。そして、頂点IDをインクリメントして現在の頂点IDを“0”→“1”とする。また、頂点順をインクリメントして現在の頂点順を“0”→“1” とする。現在のポリゴンIDは“P1”であり、“P18”を超えていないため、ステップS111において、全ポリゴンに対して処理終了していないと判断され、ステップS102に戻る。   In step S107, the coordinate value (Xd, Yd, Zd) extracted in step S102 is recorded at the position of the current vertex ID “0” in the vertex coordinate table, and “−1” is recorded as the link destination vertex ID. To do. In step S107, the current vertex ID “0” is recorded at the position of the current polygon ID “P1” in the current vertex order “0”. As a result, each table is in a state as shown in FIG. Then, the vertex ID is incremented to change the current vertex ID from “0” to “1”. Also, the vertex order is incremented to change the current vertex order from “0” to “1”. Since the current polygon ID is “P1” and does not exceed “P18”, it is determined in step S111 that processing has not been completed for all polygons, and the process returns to step S102.

ステップS102において、頂点座標配列データより、現在のポリゴンID“P1”、現在の頂点順“1”に基づき、ポリゴンP1の第2頂点の座標値(Xb,Yb,Zb)を抽出する。そして、ステップS103において、座標値(Xb,Yb,Zb)に対してハッシュ値“0”が算出されたものとする。ステップS104において、ハッシュ値“0”で先頭頂点テーブルを参照すると、ステップS105において、リンク先の頂点IDとして“0”が既登録であるため、ステップS108において、既登録の頂点ID“0”に対応する頂点座標テーブルの座標値(Xd,Yd,Zd)と、ステップS102で抽出した座標値(Xb,Yb,Zb)を照合する。照合の結果、不一致であるので、ステップS110において、頂点座標テーブルのリンク先の頂点IDが0以上であるか負の値であるかを確認する。   In step S102, the coordinate value (Xb, Yb, Zb) of the second vertex of the polygon P1 is extracted from the vertex coordinate array data based on the current polygon ID “P1” and the current vertex order “1”. In step S103, the hash value “0” is calculated for the coordinate values (Xb, Yb, Zb). If the head vertex table is referenced with the hash value “0” in step S104, “0” is already registered as the link destination vertex ID in step S105. Therefore, in step S108, the registered vertex ID “0” is set. The coordinate values (Xd, Yd, Zd) in the corresponding vertex coordinate table are collated with the coordinate values (Xb, Yb, Zb) extracted in step S102. As a result of the collation, there is a mismatch, so in step S110, it is confirmed whether the vertex ID of the link destination in the vertex coordinate table is 0 or more or a negative value.

図14に示すように、リンク先の頂点IDが“−1”であるので、ステップS107において、頂点座標テーブルの現在の頂点ID“1”の位置に、ステップS102において抽出した座標値(Xb,Yb,Zb)を記録し、リンク先頂点IDとして“−1”を記録する。さらに、ステップS107において、頂点構成テーブルの、現在のポリゴンID“P1”の現在の頂点順“1”の位置に、現在の頂点ID“1”を記録する。この結果、各テーブルは、図15に示すような状態となる。そして、頂点IDをインクリメントして現在の頂点IDを“1”→“2”とする。また、頂点順をインクリメントして現在の頂点順を“1”→“2” とする。現在のポリゴンIDは“P1”であり、“P18”を超えていないため、ステップS111において、全ポリゴンに対して処理終了していないと判断され、ステップS102に戻る。   As shown in FIG. 14, since the vertex ID of the link destination is “−1”, the coordinate value (Xb, X) extracted in step S102 is added to the current vertex ID “1” in the vertex coordinate table in step S107. Yb, Zb) is recorded, and “−1” is recorded as the link destination vertex ID. Further, in step S107, the current vertex ID “1” is recorded at the position of the current polygon ID “P1” in the current vertex order “1” in the vertex configuration table. As a result, each table is in a state as shown in FIG. Then, the vertex ID is incremented to change the current vertex ID from “1” to “2”. Also, the vertex order is incremented to change the current vertex order from “1” to “2”. Since the current polygon ID is “P1” and does not exceed “P18”, it is determined in step S111 that processing has not been completed for all polygons, and the process returns to step S102.

ポリゴンID“P1”、頂点ID“2”、頂点順“2”の場合は、ポリゴンID“P1”、頂点ID“1”、頂点順“1”の場合と同様に処理され、各テーブルは、図16に示すような状態となる。そして、頂点IDをインクリメントして現在の頂点IDを“2”→“3”とする。また、頂点順は、1つのポリゴンについて“0”“1”“2”の3つの値のみをとるため、ポリゴンIDをインクリメントして“P1”→“P2”とし、頂点順をリセットして現在の頂点順を“2”→“0” とする。現在のポリゴンIDは“P2”となり、“P18”を超えていないため、ステップS111において、全ポリゴンに対して処理終了していないと判断され、ステップS102に戻る。   The polygon ID “P1”, the vertex ID “2”, and the vertex order “2” are processed in the same manner as the polygon ID “P1”, the vertex ID “1”, and the vertex order “1”. The state is as shown in FIG. Then, the vertex ID is incremented to change the current vertex ID from “2” to “3”. Since the vertex order takes only three values “0”, “1”, and “2” for one polygon, the polygon ID is incremented to “P1” → “P2”, and the vertex order is reset to the current The vertex order of “2” → “0”. Since the current polygon ID is “P2” and does not exceed “P18”, it is determined in step S111 that processing has not been completed for all polygons, and the process returns to step S102.

ステップS102において、頂点座標配列データより、現在のポリゴンID“P2”、現在の頂点順“0”に基づき、ポリゴンP2の第1頂点の座標値(Xd,Yd,Zd)を抽出する。そして、ステップS103において、座標値(Xd,Yd,Zd)に対してハッシュ値“0”が算出されたものとする。ステップS104において、ハッシュ値“0”で先頭頂点テーブルを参照すると、ステップS105において、リンク先の頂点IDとして“0”が既登録であるため、ステップS108において、既登録の頂点ID“0”に対応する頂点座標テーブルの座標値(Xd,Yd,Zd)と、ステップS102で抽出した座標値(Xd,Yd,Zd)を照合する。照合の結果、一致するので、ステップS109において、頂点座標テーブルの座標値が一致した頂点ID“0”を、頂点構成テーブルの、現在のポリゴンID“P2”の現在の頂点順“0”の位置に記録する。この結果、各テーブルは、図17に示すような状態となる。   In step S102, the coordinate value (Xd, Yd, Zd) of the first vertex of the polygon P2 is extracted from the vertex coordinate array data based on the current polygon ID “P2” and the current vertex order “0”. In step S103, the hash value “0” is calculated for the coordinate values (Xd, Yd, Zd). If the head vertex table is referenced with the hash value “0” in step S104, “0” is already registered as the link destination vertex ID in step S105. Therefore, in step S108, the registered vertex ID “0” is set. The coordinate values (Xd, Yd, Zd) in the corresponding vertex coordinate table are collated with the coordinate values (Xd, Yd, Zd) extracted in step S102. As a result of the collation, in step S109, the vertex ID “0” having the same coordinate value in the vertex coordinate table is set as the current vertex order “0” position of the current polygon ID “P2” in the vertex configuration table. To record. As a result, each table is in a state as shown in FIG.

上記のようにして、ポリゴンP18まで処理を行ってステップS111の判定により処理を終了する。このとき、各テーブルは、図18に示すような状態となる。すなわち、ハッシュ値が同一の他の座標値を頂点IDより最近傍に記録した単一の頂点IDがリンク先として対応付けられているものとなる。上記説明のように、ポリゴンモデルの構造化処理においては、ステップS108において座標値の照合を行い、不一致であれば頂点座標テーブルに登録するが、一致している場合は、次々に照合を繰り返していく。この処理は、頂点座標テーブルが大きくなり、既登録の座標値が多くなる程、負荷が高くなることになる。本実施形態では、ハッシュ値を用いてハッシュ値別頂点座標テーブルを参照することにより、頂点座標テーブルの全ての座標値の照合を行うことなく、ハッシュ値が異なる座標値とは一致しないことが自明なため照合対象から除外することができ、同一ハッシュ値の頂点座標テーブルのみを参照すればよいことになる。頂点座標テーブルの中で同一ハッシュ値をもつ座標値は、本実施形態では高々1/4程度であるが、前述の通り実際には上記〔数式21〕において、T=32に設定することが多く、そうすると頂点座標テーブルの中で同一ハッシュ値をもつ座標値は1/32767程度に削減され、全件と照合する場合に比べ照合時間も1/32767程度に短縮されることになる。このため、ポリゴンモデルの構造化処理を桁違いに高速に行うことが可能となる。   As described above, the process is performed up to the polygon P18, and the process is terminated by the determination in step S111. At this time, each table is in a state as shown in FIG. That is, a single vertex ID in which other coordinate values having the same hash value are recorded closest to the vertex ID is associated as a link destination. As described above, in the polygon model structuring process, coordinate values are collated in step S108, and if they do not match, they are registered in the vertex coordinate table, but if they match, the collation is repeated one after another. Go. In this process, the load increases as the vertex coordinate table increases and the number of registered coordinate values increases. In this embodiment, it is obvious that the hash value does not match different coordinate values without referring to all the coordinate values in the vertex coordinate table by referring to the hash value-specific vertex coordinate table. Therefore, it can be excluded from the verification target, and only the vertex coordinate table having the same hash value needs to be referred to. In the present embodiment, the coordinate value having the same hash value in the vertex coordinate table is at most about ¼, but as described above, in many cases, in the above [Equation 21], T = 32 is often set. Then, the coordinate value having the same hash value in the vertex coordinate table is reduced to about 1/32767, and the verification time is also reduced to about 1/32767 compared with the case of matching with all cases. For this reason, the structuring process of the polygon model can be performed at an extremely high speed.

図18の例で、ハッシュ値が“0”の場合、図18(c)の頂点座標テーブルでは、リンク先頂点IDに従って、頂点ID“0”“1”“2”“6”のものだけ照合すれば、頂点座標の登録が可能となる。図18(b)に示した先頭頂点テーブルを削除し、図18(c)に示した頂点座標テーブルよりリンク先頂点IDの欄を削除することにより、図19に示したような頂点構成テーブルと頂点座標テーブルを得ることができ、ポリゴンモデルの構造化は完了する。   In the example of FIG. 18, when the hash value is “0”, only the vertex IDs “0”, “1”, “2”, and “6” are collated according to the link destination vertex ID in the vertex coordinate table of FIG. Then, the vertex coordinates can be registered. By deleting the head vertex table shown in FIG. 18B and deleting the link destination vertex ID column from the vertex coordinate table shown in FIG. 18C, the vertex configuration table as shown in FIG. A vertex coordinate table can be obtained and the structuring of the polygon model is completed.

<4.3.ポリゴン稜線の構造化>
ステップS20のポリゴン稜線の構造化について説明する。ポリゴン稜線の構造化とは、与えられたポリゴン内の頂点順において隣接する2つの頂点の頂点IDペアに対して稜線IDを付与し、ポリゴンを構成する各稜線を稜線IDで表現してポリゴンIDと稜線順とで対応付けて記録した稜線構成テーブルと、稜線構成テーブルに付与された稜線IDに対する頂点IDペアを対応付けて記録した稜線テーブルに分離する処理である。ここで、稜線順は頂点順に対応し、例えば、頂点順で“0”と“1”の隣接する2つの頂点は稜線順“0”に対応し、頂点順で“1”と“2”の隣接する2つの頂点は稜線順“1”に対応し、頂点順で“2”と“0”の隣接する2つの頂点は稜線順“2”に対応させる。この時、稜線テーブルの複数の稜線IDに同一の頂点IDペアが重複して記録されないようにすることがポイントになる。同一の頂点IDペアを共有する隣接するポリゴンの稜線は、頂点IDペアの順番が逆になることが原則になるため、頂点IDペアは番号が小さい(若い)順に設定するようにする。そして、各頂点IDペアに稜線IDを付与する際、稜線テーブルに既に登録されているか否かを探索し、既登録であれば該当する稜線IDを付与し、未登録であれば新規の稜線IDを付与し、稜線テーブルに追加登録するという処理を繰り返す。
<4.3. Polygon ridge structure>
The structuring of the polygon ridge line in step S20 will be described. Polygon ridge line structuring means that a ridge line ID is assigned to a vertex ID pair of two vertices adjacent in the order of vertices in a given polygon, and each ridge line constituting the polygon is expressed by a ridge line ID. And the ridge line configuration table recorded in association with the ridge line order, and the ridge line table in which the vertex ID pairs corresponding to the ridge line IDs assigned to the ridge line configuration table are recorded in association with each other. Here, the ridge line order corresponds to the vertex order. For example, two adjacent vertices “0” and “1” in the vertex order correspond to the ridge line order “0”, and “1” and “2” in the vertex order. Two adjacent vertices correspond to the ridge line order “1”, and two adjacent vertices “2” and “0” in the vertex order correspond to the ridge line order “2”. At this time, it is important that the same vertex ID pair is not recorded repeatedly on a plurality of ridge line IDs in the ridge line table. Since the ridge lines of adjacent polygons sharing the same vertex ID pair are in principle reverse in the order of the vertex ID pairs, the vertex ID pairs are set in ascending order (numbered). Then, when assigning a ridge line ID to each vertex ID pair, it is searched whether or not it is already registered in the ridge line table. If it is already registered, the corresponding ridge line ID is assigned, and if not registered, a new ridge line ID is assigned. Is added, and the process of additionally registering in the ridge line table is repeated.

図20は、ステップS20のポリゴン稜線の構造化の詳細を示すフローチャートである。ステップS20のポリゴン稜線の構造化は、対象モデル分離手段により行われる。まず、稜線構成テーブル、頂点ID別稜線テーブル、稜線IDの初期化を行う(S201)。稜線構成テーブルは、各ポリゴンに含まれる各稜線を稜線IDで表現してポリゴンと稜線順とで対応付けて記録したテーブルである。稜線IDは、稜線を識別するための稜線識別情報であり、稜線を一意に特定することができれば、どのようなものを用いてもよいが、演算処理の効率化のため、本実施形態では、0から始まるシリアルな整数値を用いている。稜線テーブルは、稜線構成テーブルに付与された稜線IDと頂点IDペアを対応付けて記録したテーブルである。稜線構成テーブル、稜線テーブルの初期化は、各項目が記録されていない状態にすることを意味する。また、稜線IDの初期化として現在の稜線ID=0に設定する。さらに、頂点IDペアの小さい方の頂点IDとリンク先稜線IDを対応付けた先頭稜線テーブルも初期化する。先頭稜線テーブルの初期化は、リンク先稜線IDを全て“−1”に設定することにより行われる。稜線テーブルと先頭稜線テーブルの2つのテーブルにより頂点ID別稜線テーブルを実現する。   FIG. 20 is a flowchart showing details of structuring of polygon ridge lines in step S20. In step S20, the polygon ridge line is structured by the target model separation unit. First, the ridge line configuration table, the ridge line table by vertex ID, and the ridge line ID are initialized (S201). The ridge line configuration table is a table in which each ridge line included in each polygon is expressed by a ridge line ID and associated with the polygon and the ridge line order. The ridge line ID is ridge line identification information for identifying the ridge line, and any ridge line ID may be used as long as it can uniquely identify the ridge line. A serial integer value starting from 0 is used. The ridge line table is a table in which ridge line IDs and vertex ID pairs assigned to the ridge line configuration table are recorded in association with each other. Initialization of the ridge line configuration table and the ridge line table means that each item is not recorded. Also, the current ridge line ID = 0 is set as the initialization of the ridge line ID. Furthermore, the head edge line table in which the vertex ID of the smaller vertex ID pair is associated with the link destination edge line ID is also initialized. Initialization of the head ridge line table is performed by setting all link destination ridge line IDs to “−1”. A vertex line-specific ridge line table is realized by two tables, a ridge line table and a head ridge line table.

次に、頂点構成テーブルより頂点IDペアを抽出するにあたり、ポリゴンIDを“P1”に、頂点順を“0”に初期化する(S201)。そして、頂点構成テーブルより現在のポリゴンIDと頂点順に対応する頂点IDと、次の頂点順に対応する隣接する頂点IDからなる2つの頂点IDペアを抽出する(S202)。次の頂点順は現在の頂点順に1を加えたものであるが、頂点順が“2”の場合、次の頂点順は“0”とする。例えば、図19に示した頂点構成テーブルからは、ポリゴンID“P1”と頂点ID“0”と“1”のペアが抽出される。   Next, in extracting the vertex ID pair from the vertex configuration table, the polygon ID is initialized to “P1” and the vertex order is initialized to “0” (S201). Then, two vertex ID pairs consisting of the vertex ID corresponding to the current polygon ID and the vertex order and the adjacent vertex ID corresponding to the next vertex order are extracted from the vertex configuration table (S202). The next vertex order is obtained by adding 1 to the current vertex order. When the vertex order is “2”, the next vertex order is “0”. For example, a pair of polygon ID “P1” and vertex IDs “0” and “1” is extracted from the vertex configuration table shown in FIG.

次に、抽出された頂点IDペアのうち小さい方の頂点IDを用いて先頭稜線テーブルを参照する(S204)。そして、その頂点IDに対応するリンク先稜線IDが先頭稜線テーブルに登録されているか否かを確認する(S205)。頂点IDに対応するリンク先稜線ID(図中“リンク稜線ID”と表示)が“−1”、すなわち初期状態である場合は、その頂点IDに対応するリンク先稜線IDが未登録、すなわち既登録でないことを意味する。   Next, the leading edge line table is referenced using the smaller vertex ID of the extracted vertex ID pairs (S204). Then, it is confirmed whether or not the link destination ridge line ID corresponding to the vertex ID is registered in the head ridge line table (S205). When the link destination ridge line ID (indicated as “link ridge line ID” in the figure) corresponding to the vertex ID is “−1”, that is, in the initial state, the link destination ridge line ID corresponding to the vertex ID is not registered, that is, already exists. Means not registered.

この場合、先頭稜線テーブルに稜線IDの記録を行う(S206)。具体的には、先頭稜線テーブルの頂点IDに対応するリンク先稜線IDに、現在の稜線ID(初期状態では“0”)を書き込む。続いて、稜線テーブルの現在の稜線IDの位置にステップS202で抽出した頂点IDペアを書き込む(S207)。この時、稜線テーブルにもリンク先稜線IDを書き込む欄があるが、初期状態の“−1”のままにする。また、稜線構成テーブルにおける、ステップS202で抽出したポリゴンIDと頂点順と同値の稜線順の位置に、現在の稜線IDを書き込む。ここでは、新規な稜線IDとして記録されることになる。そして、現在の稜線IDをインクリメントする。   In this case, the ridge line ID is recorded in the head ridge line table (S206). Specifically, the current ridge line ID (“0” in the initial state) is written in the link destination ridge line ID corresponding to the vertex ID of the head ridge line table. Subsequently, the vertex ID pair extracted in step S202 is written at the position of the current ridge line ID in the ridge line table (S207). At this time, there is a column for writing the link destination ridge line ID in the ridge line table, but the initial state is “−1”. In addition, the current ridge line ID is written in the ridge line configuration table at the position in the ridge line order which is the same as the vertex order and the polygon ID extracted in step S202. Here, it is recorded as a new ridge line ID. Then, the current ridge line ID is incremented.

一方、ステップS205において、頂点IDに対応するリンク先稜線IDが“−1”でない場合は、その頂点IDに対応するリンク先稜線IDが既登録であることを意味する。この場合、ステップS202で抽出した頂点IDペアと、頂点座標テーブルにおける既登録のリンク先稜線IDに対応する頂点IDペアが一致するか否かを判定する(S208)。判定の結果、両頂点IDペアが一致する場合は、稜線構成テーブルのポリゴンID、頂点順と同値の稜線順の位置に、現在の稜線IDを記録する(S209)。ステップS208における判定の結果、両座標値が異なる場合は、稜線テーブルのリンク先稜線IDを参照し、リンク先稜線IDが0以上であるか否かを確認する(S210)。確認の結果、リンク先稜線IDが0以上である場合は、その値を稜線IDとし、ステップS208に戻って、その稜線IDに対応する頂点IDペアとステップS202で抽出した頂点IDペアを照合する。ステップS210における確認の結果、リンク先稜線IDが負値(例えば“−1”)である場合は、稜線テーブルのその稜線IDに対応するリンク先稜線IDに現在の稜線IDを記録し、ステップS207に戻って、稜線テーブルの現在の稜線IDの位置にステップS202で抽出した頂点IDペアを記録する。この時、稜線テーブルの現在の稜線IDにおけるリンク先稜線IDについては、初期状態の“−1”のままにする。また、稜線構成テーブルにおける、ステップS202で抽出したポリゴンIDと頂点順と同値の稜線順の位置に現在の稜線IDを記録する。そして、稜線IDをインクリメントする。   On the other hand, if the link destination ridge line ID corresponding to the vertex ID is not “−1” in step S205, it means that the link destination ridge line ID corresponding to the vertex ID is already registered. In this case, it is determined whether the vertex ID pair extracted in step S202 matches the vertex ID pair corresponding to the registered link destination ridge line ID in the vertex coordinate table (S208). As a result of the determination, if both vertex ID pairs match, the current ridge line ID is recorded at the position of the ridge line order equivalent to the polygon ID and vertex order of the ridge line configuration table (S209). If the two coordinate values are different as a result of the determination in step S208, the link destination ridge line ID in the ridge line table is referred to and it is confirmed whether the link destination ridge line ID is 0 or more (S210). As a result of the confirmation, if the link destination ridge line ID is 0 or more, the value is set as the ridge line ID, the process returns to step S208, and the vertex ID pair corresponding to the ridge line ID is compared with the vertex ID pair extracted in step S202. . As a result of the confirmation in step S210, if the link destination ridge line ID is a negative value (eg, “−1”), the current ridge line ID is recorded in the link destination ridge line ID corresponding to the ridge line ID in the ridge line table, and step S207. The vertex ID pair extracted in step S202 is recorded at the position of the current ridge line ID in the ridge line table. At this time, the link destination ridge line ID in the current ridge line ID of the ridge line table is left as “−1” in the initial state. Further, the current ridge line ID is recorded in the ridge line configuration table in the position of the ridge line order that is the same as the vertex order and the polygon ID extracted in step S202. Then, the ridge line ID is incremented.

ステップS207またはS209の処理を終えたら、全ポリゴンに対して処理を終えたか否かを判定する(S211)。具体的には、まず、頂点順をインクリメントし、頂点順が“2”を超えたら、ポリゴンIDをインクリメントして頂点順を“0”にする。ポリゴンIDがポリゴン総数を超えていなければ、ステップS202に戻って処理を繰り返す。ポリゴンIDがポリゴン総数を超えていれば、全ポリゴンに対して処理を終えたと判定して処理を終了する。   When the process of step S207 or S209 is completed, it is determined whether or not the process has been completed for all the polygons (S211). Specifically, first, the vertex order is incremented. When the vertex order exceeds “2”, the polygon ID is incremented to set the vertex order to “0”. If the polygon ID does not exceed the total number of polygons, the process returns to step S202 and the process is repeated. If the polygon ID exceeds the total number of polygons, it is determined that the processing has been completed for all the polygons, and the processing ends.

対象モデル分離手段は、頂点ID照合手段、稜線構成テーブル更新手段、稜線テーブル更新手段を備えており、図20に示したポリゴン稜線の構造化処理は、これらの手段が連携することにより実現される。   The target model separating unit includes a vertex ID collating unit, a ridge line configuration table updating unit, and a ridge line table updating unit. The polygon ridge line structuring process shown in FIG. 20 is realized by cooperation of these units. .

図21は、ポリゴンP1の稜線構成が記録された時点の各テーブルの状態を示す図である。図21(a)は頂点構成テーブル、図21(b)は稜線構成テーブル、図21(c)は先頭稜線テーブル、図21(d)は稜線テーブルを示している。先頭稜線テーブルには、頂点IDペアの小さい方の頂点IDに稜線IDが対応付けられてリンク先稜線IDとして記録されている。ここでは、頂点IDが0〜13の値をとるが、最終の頂点ID13を小さい方の頂点IDとする頂点IDペアは存在しないため、先頭稜線テーブルには、最終の頂点ID13を除く全ての頂点ID0〜12に対応付けてリンク先稜線IDが記録される。初期状態では、全て“−1”が記録される。稜線テーブルには、稜線IDに対応付けられて頂点IDペア(図中“頂点ペア”と表示)が記録されるとともに、リンク先稜線IDが記録されている。   FIG. 21 is a diagram showing the state of each table at the time when the ridge line configuration of the polygon P1 is recorded. 21A shows a vertex configuration table, FIG. 21B shows a ridge line configuration table, FIG. 21C shows a head ridge line table, and FIG. 21D shows a ridge line table. In the head ridge line table, the ridge line ID is associated with the vertex ID of the smaller vertex ID pair and recorded as the link destination ridge line ID. Here, the vertex ID takes a value of 0 to 13, but since there is no vertex ID pair in which the final vertex ID 13 is the smaller vertex ID, all the vertices except the final vertex ID 13 are included in the leading edge line table. Link destination ridge line IDs are recorded in association with IDs 0-12. In the initial state, all “−1” are recorded. In the ridge line table, a vertex ID pair (indicated as “vertex pair” in the figure) is recorded in association with the ridge line ID, and a link destination ridge line ID is recorded.

図21(b)に示すように、稜線構成テーブルは、ポリゴンIDと稜線順に対応付けて3つの稜線IDが記録されるようになっているが、稜線順は頂点順と同値で、左から0,1,2となっている。ステップS201における初期化の際、頂点順=稜線順=0に初期化される。   As shown in FIG. 21B, in the ridge line configuration table, three ridge line IDs are recorded in association with the polygon ID and the ridge line order, but the ridge line order is the same as the vertex order and is 0 from the left. , 1 and 2. At the time of initialization in step S201, the vertex order = ridge line order = 0 is initialized.

図22は、ポリゴンP2の稜線構成が記録された時点の各テーブルの状態を示す図である。図23は、ポリゴンP3の稜線構成が記録された時点の各テーブルの状態を示す図である。図24は、ポリゴンP18の稜線構成が記録された時点の各テーブルの状態を示す図である。図20に示したフローチャートに従って処理を実行していくことにより、図24に示したような状態まで処理が行われることになる。   FIG. 22 is a diagram illustrating the state of each table at the time when the ridge line configuration of the polygon P2 is recorded. FIG. 23 is a diagram showing the state of each table at the time when the ridge line configuration of the polygon P3 is recorded. FIG. 24 is a diagram showing the state of each table at the time when the ridge line configuration of the polygon P18 is recorded. By executing the processing according to the flowchart shown in FIG. 20, the processing is performed up to the state shown in FIG.

図24の例で、頂点IDペアの小さい方の頂点IDが“0”の場合、図24(d)の稜線テーブルでは、リンク先稜線IDに従って、稜線ID“0”“2”“3”“8”“10”“12”のものだけ照合すれば、頂点IDペアの登録が可能となる。図24(c)に示した先頭稜線テーブルを削除し、図24(d)に示した稜線テーブルよりリンク先稜線IDの欄を削除することにより、図25に示したような稜線構成テーブルと稜線テーブルを得ることができ、ポリゴン稜線の構造化は完了する。   In the example of FIG. 24, when the vertex ID of the smaller vertex ID pair is “0”, in the ridge line table of FIG. 24D, the ridge line ID “0” “2” “3” “ If only 8 "" 10 "" 12 "are collated, the vertex ID pair can be registered. The head ridge line table shown in FIG. 24C is deleted, and the column of the link destination ridge line ID is deleted from the ridge line table shown in FIG. A table can be obtained and the structuring of the polygon ridge is completed.

<4.4.隣接ポリゴンテーブルの作成>
ステップS30の隣接ポリゴンテーブルの作成について説明する。隣接ポリゴンテーブルの作成は、ポリゴンの各稜線(隣接する頂点ペア)と共有する稜線をもつ隣接するポリゴンを探索し、頂点座標配列データをポリゴンIDと稜線順に対応付けて隣接ポリゴンのポリゴンIDで記述した隣接ポリゴンテーブルを作成する処理である。この探索処理はポリゴン数の2乗に比例して処理時間がかかるという問題があった。ステップS20において、稜線構成テーブルを作成しておくことにより、高速に隣接ポリゴンテーブルを作成することができる。
<4.4. Creating an adjacent polygon table>
The creation of the adjacent polygon table in step S30 will be described. To create an adjacent polygon table, search for adjacent polygons that share a ridge line shared with each ridge line (adjacent vertex pair) of the polygon, and describe the vertex coordinate array data in the polygon ID of the adjacent polygon by associating the polygon ID with the ridge line order. This process creates the adjacent polygon table. This search processing has a problem that it takes a processing time in proportion to the square of the number of polygons. In step S20, an adjacent polygon table can be created at high speed by creating an edge line configuration table.

図26は、ステップS30の隣接ポリゴンテーブルの作成の詳細を示すフローチャートである。ステップS30の隣接ポリゴンテーブルの作成は、対象モデル分離手段により行われる。まず、隣接ポリゴンテーブル、稜線ID別ポリゴンテーブル、ポリゴンID、稜線順の初期化を行う(S301)。隣接ポリゴンテーブルは、各ポリゴンと隣接するポリゴンのポリゴンIDを対応付けて記録したテーブルである。稜線ID別ポリゴンテーブルは、稜線IDと稜線を含むポリゴンと当該ポリゴンにおける当該稜線の稜線順を識別するポリゴン別稜線IDを対応付けて記録したテーブルである。隣接ポリゴンテーブルの初期化は、各項目が記録されていない状態にすることを意味する。また、ポリゴンIDと稜線順の初期化として現在のポリゴンIDを“P1”、稜線順を“0”に設定する。稜線ID別ポリゴンテーブルの初期化は、ポリゴン別稜線IDを全て“−1”に設定することにより行われる。   FIG. 26 is a flowchart showing details of the creation of the adjacent polygon table in step S30. The creation of the adjacent polygon table in step S30 is performed by the target model separation unit. First, the adjacent polygon table, the polygon table by edge line ID, the polygon ID, and the edge line order are initialized (S301). The adjacent polygon table is a table that records each polygon and the polygon ID of the adjacent polygon in association with each other. The polygon table by ridge line ID is a table in which a ridge line ID, a polygon including the ridge line, and a ridge line ID by polygon for identifying the ridge line order of the ridge line in the polygon are associated and recorded. The initialization of the adjacent polygon table means that each item is not recorded. Further, as initialization of the polygon ID and the ridge line order, the current polygon ID is set to “P1”, and the ridge line order is set to “0”. Initialization of the polygon table by edge line ID is performed by setting all polygon edge IDs to “−1”.

次に、稜線構成テーブルよりポリゴンIDと、そのポリゴンIDに対応する現在の稜線順の稜線IDを抽出する(S302)。例えば、図27に示した稜線構成テーブルからは、ポリゴンID“P1”と稜線ID“0”が抽出される。   Next, the polygon ID and the ridge line ID in the current ridge line order corresponding to the polygon ID are extracted from the ridge line configuration table (S302). For example, the polygon ID “P1” and the ridge line ID “0” are extracted from the ridge line configuration table shown in FIG.

次に、抽出された稜線IDを用いて稜線ID別ポリゴンテーブルを参照する(S304)。そして、その稜線IDに対応するポリゴン別稜線IDが稜線ID別ポリゴンテーブルに登録されているか否かを確認する(S305)。稜線IDに対応するポリゴン別稜線IDが“−1”、すなわち初期状態である場合は、その稜線IDに対応するポリゴン別稜線IDが未登録、すなわち既登録でないことを意味する。   Next, the ridge line ID-specific polygon table is referred to using the extracted ridge line ID (S304). Then, it is confirmed whether or not the polygonal ridgeline ID corresponding to the ridgeline ID is registered in the ridgeline ID specific polygon table (S305). When the polygonal ridgeline ID corresponding to the ridgeline ID is “−1”, that is, in the initial state, it means that the polygonal ridgeline ID corresponding to the ridgeline ID is not registered, that is, not registered.

この場合、稜線ID別ポリゴンテーブルに現在のポリゴン別稜線IDの記録を行う(S306)。具体的には、稜線ID別ポリゴンテーブルの稜線IDに対応して、現在のポリゴンID(初期状態では“P1”)と稜線順(初期状態では“0”)により特定されるポリゴン別稜線IDを書き込む。   In this case, the current ridge line ID for each polygon is recorded in the polygon table for each ridge line ID (S306). Specifically, the polygonal ridgeline ID specified by the current polygon ID (“P1” in the initial state) and the ridgeline order (“0” in the initial state) is associated with the ridgeline ID of the polygon table by ridgeline ID. Write.

一方、ステップS305において、稜線IDに対応するポリゴン別稜線IDが“−1”でない場合は、その稜線IDに対応するポリゴン別稜線IDが既登録であることを意味し、既登録のポリゴン別稜線IDに対応する稜線と、現在のポリゴンIDと稜線順に対応する稜線とが、その稜線IDで共有することを意味する。この場合、その稜線IDに対応するポリゴン別稜線IDを取得し、隣接ポリゴンテーブルにおける、そのポリゴン別稜線IDにより特定されるポリゴンIDと稜線順の位置に、現在のポリゴンIDを記録する(S307)。ステップS307においては、さらに、隣接ポリゴンテーブルにおける、現在のポリゴンIDと現在の稜線順の位置に、ポリゴン別稜線IDにより特定されるポリゴンIDを記録する。   On the other hand, if the polygonal ridgeline ID corresponding to the ridgeline ID is not “−1” in step S305, it means that the polygonal ridgeline ID corresponding to the ridgeline ID has already been registered, and the registered polygonal ridgeline ID. This means that the ridge line corresponding to the ID and the ridge line corresponding to the current polygon ID and the ridge line order are shared by the ridge line ID. In this case, the polygonal ridgeline ID corresponding to the ridgeline ID is acquired, and the current polygon ID is recorded at the position of the polygon ID specified by the polygonal ridgeline ID and the ridgeline order in the adjacent polygon table (S307). . In step S307, the polygon ID specified by the polygonal ridge line ID is further recorded at the position of the current polygon ID and the current ridge line order in the adjacent polygon table.

ステップS306またはS307の処理を終えたら、全ポリゴンに対して処理を終えたか否かを判定する(S308)。具体的には、まず、稜線順をインクリメントし、稜線順が“2”を超えたら、ポリゴンIDをインクリメントして稜線順を“0”にする。ポリゴンIDがポリゴン総数を超えていなければ、ステップS302に戻って処理を繰り返す。ポリゴンIDがポリゴン総数を超えていれば、全ポリゴンに対して処理を終えたと判定して処理を終了する。   When the process of step S306 or S307 is completed, it is determined whether or not the process has been completed for all the polygons (S308). Specifically, first, the ridge line order is incremented, and when the ridge line order exceeds “2”, the polygon ID is incremented to set the ridge line order to “0”. If the polygon ID does not exceed the total number of polygons, the process returns to step S302 and the process is repeated. If the polygon ID exceeds the total number of polygons, it is determined that the processing has been completed for all the polygons, and the processing ends.

対象モデル分離手段は、ポリゴンテーブル登録手段と、隣接ポリゴンテーブル登録手段を備えており、図26に示した隣接ポリゴンテーブルの作成処理は、これらの手段が連携することにより実現される。   The target model separation unit includes a polygon table registration unit and an adjacent polygon table registration unit, and the adjacent polygon table creation processing shown in FIG. 26 is realized by the cooperation of these units.

図27は、ポリゴンP2のポリゴン別稜線IDが記録された時点の各テーブルの状態を示す図である。図27(a)は稜線構成テーブル、図27(b)は稜線ID別ポリゴンテーブル、図27(c)は隣接ポリゴンテーブルを示している。図27(a)の稜線構成テーブルは、図25(a)の稜線構成テーブルと同一である。稜線ID別ポリゴンテーブルには、稜線IDに対応付けて、ポリゴン別稜線IDが記録されている。ここでは、稜線IDが0〜30の値をとるため、稜線ID別ポリゴンテーブルには、全ての稜線ID0〜30に対応付けてポリゴン別稜線IDが記録される。稜線ID別ポリゴンテーブルにおいては、初期状態では、ポリゴン別稜線IDとして全て“−1”が記録される。図27(b)の空欄においては、実際には、初期値であるポリゴン別稜線IDとして全て“−1”が記録されている。隣接ポリゴンテーブルには、ポリゴンIDに対応付けられて隣接ポリゴンIDが記録される。   FIG. 27 is a diagram showing the state of each table at the time when the polygonal ridge line ID of the polygon P2 is recorded. FIG. 27A shows an edge line configuration table, FIG. 27B shows an edge polygon ID-specific polygon table, and FIG. 27C shows an adjacent polygon table. The ridge line configuration table in FIG. 27A is the same as the ridge line configuration table in FIG. In the polygon table by edge line ID, the edge line ID by polygon is recorded in association with the edge line ID. Here, since the ridge line ID takes a value of 0 to 30, the ridge line ID is recorded in the ridge line ID polygon table in association with all the ridge line IDs 0 to 30. In the polygon table by edge line ID, “−1” is all recorded as the edge line ID by polygon in the initial state. In the blank of FIG. 27B, in reality, “−1” is recorded as the ridge line ID for each polygon which is the initial value. In the adjacent polygon table, the adjacent polygon ID is recorded in association with the polygon ID.

図27(c)に示すように、隣接ポリゴンテーブルは、ポリゴンIDに対応付けて3つの隣接ポリゴンのポリゴンIDが記録されるようになっているが、稜線順は、左から0,1,2となっている。ステップS301における初期化の際、稜線順=0に初期化される。隣接ポリゴンテーブルにおいては、必ず、対になるようにポリゴンIDの記録が行われる。すなわち、図27(c)に示すように、ポリゴンP1に対応付けて隣接ポリゴンとしてポリゴンP2が記録された場合、ポリゴンP2に対応付けて隣接ポリゴンとしてポリゴンP1も記録されることになる。   As shown in FIG. 27 (c), in the adjacent polygon table, the polygon IDs of three adjacent polygons are recorded in association with the polygon IDs, but the ridge line order is 0, 1, 2 from the left. It has become. At the time of initialization in step S301, the edge order is initialized to zero. In the adjacent polygon table, polygon IDs are always recorded so as to be paired. That is, as shown in FIG. 27C, when the polygon P2 is recorded as an adjacent polygon in association with the polygon P1, the polygon P1 is also recorded as an adjacent polygon in association with the polygon P2.

図28は、ポリゴンP4のポリゴン別稜線IDが記録された時点の各テーブルの状態を示す図である。図29は、ポリゴンP18のポリゴン別稜線IDが記録された時点の各テーブルの状態を示す図である。図26に示したフローチャートに従って処理を実行していくことにより、図29に示したような状態まで処理が行われることになる。これにより、図29(c)に示したような隣接ポリゴンテーブルが完成する。   FIG. 28 is a diagram showing the state of each table at the time when the polygonal ridge line ID of the polygon P4 is recorded. FIG. 29 is a diagram showing the state of each table at the time when the polygonal ridge line ID of the polygon P18 is recorded. By executing the processing according to the flowchart shown in FIG. 26, the processing is performed up to the state shown in FIG. Thereby, the adjacent polygon table as shown in FIG. 29C is completed.

図30は、ステップS10で完成した頂点構成テーブル、ステップS20で完成した稜線構成テーブル、ステップS30で完成した隣接ポリゴンテーブルを示す図である。   FIG. 30 is a diagram showing the vertex configuration table completed in step S10, the ridge line configuration table completed in step S20, and the adjacent polygon table completed in step S30.

<4.5.ポリゴンモデルの分離>
ステップS40のポリゴンモデルの分離について説明する。ポリゴンモデルの分離においては、ステップS30で作成された隣接ポリゴンテーブルを用いる。隣接ポリゴンテーブルを用いることにより、高速にポリゴンモデルの分離を行うことができる。
<4.5. Polygon model separation>
The polygon model separation in step S40 will be described. In the separation of the polygon model, the adjacent polygon table created in step S30 is used. By using the adjacent polygon table, polygon models can be separated at high speed.

図31は、ステップS40のポリゴンモデルの分離の詳細を示すフローチャートである。ステップS40のポリゴンモデルの分離は、対象モデル分離手段により行われる。まず、グループIDの仮設定を行う(S401)。具体的には、グループを識別するグループ識別情報であるグループIDを新規に定義し、グループIDが未設定のポリゴンを1つ抽出し、そのポリゴンのポリゴンIDに新規なグループIDを仮設定する。ここで、「グループIDが未設定」とは、本設定も仮設定も行われていない状態を意味する。 FIG. 31 is a flowchart showing details of polygon model separation in step S40. The polygon model separation in step S40 is performed by the target model separation means. First, provisional setting of a group ID is performed (S401). Specifically, a group ID that is group identification information for identifying a group is newly defined, one polygon with no group ID set is extracted, and a new group ID is temporarily set as the polygon ID of the polygon. Here, “the group ID is not set” means a state in which neither the main setting nor the temporary setting is performed.

次に、グループIDの本設定を行う(S402)。具体的には、まず、グループIDが仮設定されているポリゴンを全て抽出し、抽出された各ポリゴンのポリゴンIDに対して、仮設定されているグループIDを本設定する。そして、隣接ポリゴンテーブルを参照し、本設定がなされた各ポリゴンに隣接するグループIDが未設定のポリゴンを全て抽出し、本設定されたグループIDと同一のグループIDを、抽出された全てのポリゴンのポリゴンIDに仮設定する。 Next, the main setting of the group ID is performed (S402). Specifically, first, all the polygons for which the group ID is temporarily set are extracted, and the temporarily set group ID is set for the extracted polygon ID of each polygon. Then, referring to the adjacent polygon table, all the polygons that are not set with the group ID adjacent to each of the polygons that have been set are extracted, and the group ID that is the same as the set group ID is extracted to all the extracted polygons. Is temporarily set to the polygon ID.

次に、グループIDが仮設定されているポリゴンが存在するか否かを判定する(S403)。判定の結果、グループIDが仮設定されているポリゴンが存在する場合は、ステップS402に戻って、グループIDが仮設定されているポリゴンのポリゴンIDに対して、仮設定されているグループIDを本設定し、隣接ポリゴンテーブルを参照し、隣接するグループIDが未設定のポリゴンのポリゴンIDに同一のグループIDを仮設定する処理を繰り返す。 Next, it is determined whether or not there is a polygon whose group ID is temporarily set (S403). As a result of the determination, if there is a polygon for which the group ID is temporarily set, the process returns to step S402, and the temporarily set group ID is set for the polygon ID of the polygon for which the group ID is temporarily set. The process of setting, referring to the adjacent polygon table, and temporarily setting the same group ID as the polygon ID of the polygon for which the adjacent group ID is not set is repeated.

ステップS403における判定の結果、グループIDが仮設定されているポリゴンが存在しない場合は、全ポリゴンについてグループIDの本設定を終了したか否かを判定する(S404)。判定の結果、全てのポリゴンにグループIDが本設定されていない、即ちグループIDが未設定のポリゴンが存在する場合は、ステップS401に戻って、グループIDを新規に定義し、グループIDが未設定のポリゴンIDを1つ抽出し、そのポリゴンIDに新規なグループIDを仮設定する。 If the result of determination in step S403 is that there is no polygon for which the group ID is temporarily set, it is determined whether or not the group ID has been completely set for all polygons (S404). As a result of the determination, if the group ID is not set for all the polygons, that is, there is a polygon for which the group ID is not set, the process returns to step S401 to define a new group ID, and the group ID is not set. One polygon ID is extracted, and a new group ID is provisionally set to the polygon ID.

ステップS404における判定の結果、全てのポリゴンにグループIDが本設定されている場合は、ポリゴンIDとグループIDの関係を用いて、ポリゴンモデルを分離する(S405)。具体的には、図10に示した頂点座標配列データのポリゴンIDと座標値を、同一グループIDごとに、異なるファイルに分離する。また、バイナリSTL形式のファイルを使用する場合、ポリゴンごとに色情報を指示できる識別フラグを設定できるため、ファイル分離せず同一ファイルのまま、ポリゴンごとの識別フラグにグループIDを設定する方法もとれる。分離された複数のSTL形式ファイルまたはポリゴンごとにグループIDが設定された単一のSTL形式ファイルを3Dプリンタに出力すると、グループIDごとに異なる材料(サポート材を含む)あるいは異なる色の材料(透明材を含む)を指定でき、多色または中身が透けて見える造形物を作成することができる。このように、ポリゴンモデルの分離とは、頂点座標配列データのポリゴンIDと座標値を、同一グループIDごとに、異なるファイルに分離するだけでなく、1つのファイル内で、明確に区別することも含む概念である。以上のようにして、対象モデル分離手段は、対象モデルを複数の部分対象モデルに分離する。対象モデル分離手段は、出力を規制すべきポリゴンモデルである規制モデルについても、同様にして部分規制モデルに分離することができる。 As a result of the determination in step S404, if the group ID is set for all the polygons, the polygon model is separated using the relationship between the polygon ID and the group ID (S405). Specifically, the polygon ID and the coordinate value of the vertex coordinate array data shown in FIG. 10 are separated into different files for the same group ID. In addition, when a binary STL format file is used, an identification flag that can specify color information can be set for each polygon. Therefore, a method for setting a group ID to an identification flag for each polygon without using file separation can be used. . When a plurality of separated STL format files or a single STL format file in which a group ID is set for each polygon is output to a 3D printer, a different material (including support material) or a different color material (transparent) for each group ID (Including materials) can be specified, and a model can be created in which multiple colors or contents can be seen through. In this way, the polygon model separation is not only separating the polygon ID and coordinate value of the vertex coordinate array data into different files for the same group ID, but also clearly distinguishing them within one file. It is a concept that includes. As described above, the target model separation unit separates the target model into a plurality of partial target models. The target model separation means can also separate the restriction model, which is a polygon model whose output should be restricted, into the partial restriction model in the same manner.

<5.規制モデルの度数分布算出および登録について>
変形例として、度数分布照合手段20を備えた立体物造形用データ出力規制装置とは別の場所で、規制モデルに対して算出された外接円分布および内接円分布を、立体物造形用データ出力規制装置にネットワークを介して送信して登録するようにしてもよい。
<5. Calculation and registration of regulatory model frequency distribution>
As a modified example, the circumscribed circle distribution and the inscribed circle distribution calculated with respect to the regulated model at a place different from the three-dimensional object shaping data output restriction device provided with the frequency distribution matching means 20 are used as the three-dimensional object shaping data. You may make it transmit and register to an output control apparatus via a network.

図32は、変形例における立体物造形用データ出力規制装置を含む立体物造形システムのハードウェア構成図である。図32に示した立体物造形システムにおいて、立体物造形用データ出力規制装置101は、図1に示した立体物造形用データ出力規制装置100の構成に、インターネット等の公衆ネットワークと通信するためのネットワーク通信部8を備えた構成となっている。規制モデル度数分布算出装置102は、汎用のコンピュータで実現することができ、図32に示すように、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へ、規制モデルに対して算出された2種の度数分布の送信を行うことが可能になっている。   FIG. 32 is a hardware configuration diagram of a three-dimensional object formation system including a three-dimensional object formation data output restriction device according to a modification. In the three-dimensional object formation system shown in FIG. 32, the three-dimensional object formation data output restriction device 101 is configured to communicate with a public network such as the Internet in the configuration of the three-dimensional object formation data output restriction device 100 shown in FIG. The network communication unit 8 is provided. The regulation model frequency distribution calculation device 102 can be realized by a general-purpose computer. As shown in FIG. 32, a CPU (Central Processing Unit) 1a, a RAM (Random Access Memory) 2a that is a main memory of the computer, A large-capacity storage device 3a such as a hard disk or flash memory for storing programs and data executed by the CPU 1a, a key input I / F (interface) 4a such as a keyboard and a mouse, and an external device such as a data storage medium A data input / output I / F (interface) 5a for data communication, a display unit 6a that is a display device such as a liquid crystal display, and a network communication unit 8a for communicating with a public network such as the Internet are provided. Connected through. The network communication unit 8 of the three-dimensional object formation data output restriction device 101 and the network communication unit 8a of the restriction model frequency distribution calculation device 102 communicate with each other, and the restriction model frequency distribution calculation device 102 transmits the three-dimensional object formation data output restriction device 101. Thus, it is possible to transmit two types of frequency distributions calculated for the regulatory model.

図32では、立体物造形用データ出力規制装置101と3Dプリンタ7は分離した形態で示されているが、現在市販されている殆どの3Dプリンタ製品には立体物造形用データ出力規制装置101の構成要素である、CPU1、RAM2、記憶装置3、キー入力I/F4(汎用コンピュータ向けキーボード・マウスではなく、テンキーレベルの数種のボタン)、データ入出力I/F5、表示部6(数行の文字を表示可能な小型液晶パネル、タッチパネルを重畳させてキー入力I/F4を兼ねることも多い)、ネットワーク通信部8(無線LAN機能)も小規模ながら重複して備えている。従って、3Dプリンタ自体が外部記憶媒体やインターネット経由で立体物造形用データを直接受け取り、単独で立体物を造形する運用も可能になっている(特に民生用の3Dプリンタではこちらの形態の方が多い)。すなわち、図32に示した立体物造形用データ出力規制装置101および3Dプリンタ7を1つの筐体に収めて、“3Dプリンタ”という製品として流通することも多い。   In FIG. 32, the three-dimensional object formation data output restriction device 101 and the 3D printer 7 are shown in a separated form, but most of the currently available 3D printer products include the three-dimensional object formation data output restriction device 101. Constituent elements, such as CPU1, RAM2, storage device 3, key input I / F4 (not a keyboard / mouse for general-purpose computers, but several buttons at a numeric keypad level), data input / output I / F5, display unit 6 (several lines) A small liquid crystal panel capable of displaying the above-mentioned characters, a touch panel is often overlapped to serve also as a key input I / F 4), and a network communication unit 8 (wireless LAN function) is also provided in a small but overlapping manner. Accordingly, the 3D printer itself can directly receive the data for modeling a three-dimensional object via an external storage medium or the Internet, and can be operated to model a three-dimensional object alone (especially in the case of a 3D printer for consumer use, this form is preferred. Many). That is, the three-dimensional object formation data output restriction device 101 and the 3D printer 7 shown in FIG. 32 are often housed in one housing and distributed as a product called “3D printer”.

規制モデル度数分布算出装置102においては、CPU1aが、記憶装置3aに記憶されているプログラムを実行することにより、第2の度数分布算出手段、度数分布送信手段が実現される。規制モデル度数分布算出装置102で実現される第2の度数分布算出手段は、立体物造形用データ出力規制装置100で実現される度数分布算出手段10と同様の機能を有し、規制モデルに対して2種の度数分布として外接円分布、内接円分布を算出する。度数分布送信手段は、規制モデルについて算出された2種の度数分布である外接円分布、内接円分布を立体物造形用データ出力規制装置101に送信する。立体物造形用データ出力規制装置101では、ネットワーク通信部8が、規制モデル度数分布算出装置102から度数分布を受信すると、CPU1が所定のプログラムを実行して度数分布登録手段として機能し、受信した2種の度数分布を記憶装置3で実現される規制モデルデータベース40に登録する。   In the regulated model frequency distribution calculation device 102, the CPU 1a executes a program stored in the storage device 3a, thereby realizing a second frequency distribution calculation unit and a frequency distribution transmission unit. The second frequency distribution calculation means realized by the restriction model frequency distribution calculation device 102 has the same function as the frequency distribution calculation means 10 realized by the three-dimensional object formation data output restriction device 100, and is compatible with the restriction model. The circumscribed circle distribution and the inscribed circle distribution are calculated as two types of frequency distribution. The frequency distribution transmission unit transmits the circumscribed circle distribution and the inscribed circle distribution, which are two types of frequency distributions calculated for the restriction model, to the three-dimensional object formation data output restriction device 101. In the three-dimensional object shaping data output restriction device 101, when the network communication unit 8 receives the frequency distribution from the restriction model frequency distribution calculation device 102, the CPU 1 executes a predetermined program and functions as a frequency distribution registration unit. Two kinds of frequency distributions are registered in the regulation model database 40 realized by the storage device 3.

<6.クラウド型の立体物造形システム>
本発明は、クラウド型の立体物造形システムに適用することも可能である。図33は、クラウド型の立体物造形システムのハードウェア構成図である。図33に示した立体物造形システムでは、出力制御用端末201と処理サーバ202により立体物造形用データ出力規制装置が実現される。図33に示した立体物造形システムにおいて、出力制御用端末201は、図32において立体物造形用データ出力規制装置101として示したコンピュータと同等のハードウェア構成を有する。すなわち、出力制御用端末201は、CPU11、RAM12、記憶装置13、キー入力I/F14、データ入出力I/F15、表示部16、ネットワーク通信部18を備え、互いにバスを介して接続されている。
<6. Cloud-type 3D object modeling system>
The present invention can also be applied to a cloud-type three-dimensional object modeling system. FIG. 33 is a hardware configuration diagram of a cloud-type three-dimensional object modeling system. In the three-dimensional object formation system shown in FIG. 33, the three-dimensional object formation data output restriction device is realized by the output control terminal 201 and the processing server 202. In the three-dimensional object formation system shown in FIG. 33, the output control terminal 201 has the same hardware configuration as the computer shown as the three-dimensional object formation data output restriction device 101 in FIG. That is, the output control terminal 201 includes a CPU 11, a RAM 12, a storage device 13, a key input I / F 14, a data input / output I / F 15, a display unit 16, and a network communication unit 18, which are connected to each other via a bus. .

処理サーバ202は、汎用のコンピュータに専用のプログラムを組み込むことにより実現することができる。図33に示すように、CPU11a、RAM12a、記憶装置13a、キー入力I/F14a、データ入出力I/F15a、表示部16a、ネットワーク通信部18aを備え、互いにバスを介して接続されている。出力制御用端末201のネットワーク通信部18と処理サーバ202のネットワーク通信部18aは互いに通信を行い、処理サーバ202から出力制御用端末201へ出力適否の判定に基づく出力適否データの送信を行うことが可能になっている。図33では、出力制御用端末201と3Dプリンタ7は分離した形態で示されているが、図32の例と同様、3Dプリンタ製品に出力制御用端末201の構成要素である、CPU11、RAM12、記憶装置13、キー入力I/F14、データ入出力I/F15、表示部16、ネットワーク通信部18を重複して備えていてもよい。   The processing server 202 can be realized by incorporating a dedicated program into a general-purpose computer. As shown in FIG. 33, a CPU 11a, a RAM 12a, a storage device 13a, a key input I / F 14a, a data input / output I / F 15a, a display unit 16a, and a network communication unit 18a are connected to each other via a bus. The network communication unit 18 of the output control terminal 201 and the network communication unit 18a of the processing server 202 communicate with each other, and send output suitability data from the processing server 202 to the output control terminal 201 based on the judgment of output suitability. It is possible. In FIG. 33, the output control terminal 201 and the 3D printer 7 are shown in a separated form. However, as in the example of FIG. 32, the CPU 11, RAM 12, The storage device 13, the key input I / F 14, the data input / output I / F 15, the display unit 16, and the network communication unit 18 may be provided in an overlapping manner.

図34は、クラウド型の立体物造形システムの機能ブロック図である。クラウド型の立体物造形システムを構成する処理サーバ202は、図2に示した立体物造形用データ出力規制装置の各手段に加えて、対象モデル受信手段50、出力適否データ送信手段60を備えた構成となっている。対象モデル記憶手段31は、対象モデル自体ではなく、対象モデルについて算出された2種の度数分布を記憶する。また、度数分布算出手段10は、処理サーバ202ではなく、出力制御用端末201が備えた構成となっている。   FIG. 34 is a functional block diagram of a cloud-type three-dimensional object modeling system. The processing server 202 constituting the cloud-type three-dimensional object modeling system includes a target model receiving unit 50 and an output suitability data transmitting unit 60 in addition to each unit of the three-dimensional object modeling data output restriction device shown in FIG. It has a configuration. The target model storage unit 31 stores not the target model itself but two kinds of frequency distributions calculated for the target model. Further, the frequency distribution calculating means 10 is configured to be provided not in the processing server 202 but in the output control terminal 201.

図2に示した立体物造形用データ出力規制装置と同等の機能を有するものについては、同一符号を付して説明を省略する。対象モデル受信手段50は、出力制御用端末201から送信された対象モデルの2種の度数分布を受信して対象モデル記憶手段31に登録する手段であり、CPU11aが所定のプログラムを実行するとともに、ネットワーク通信部18aを制御することにより実現される。出力適否データ送信手段60は、度数分布照合手段20により判定された“出力を規制すべきであるか否か”に基づき、出力適否データを出力制御用端末201に送信する手段であり、CPU11aが所定のプログラムを実行するとともに、ネットワーク通信部18aを制御することにより実現される。   Components having the same functions as those of the three-dimensional object formation data output restriction device shown in FIG. The target model receiving means 50 is means for receiving two types of frequency distributions of the target model transmitted from the output control terminal 201 and registering them in the target model storage means 31. While the CPU 11a executes a predetermined program, This is realized by controlling the network communication unit 18a. The output suitability data transmission means 60 is means for sending the output suitability data to the output control terminal 201 based on “whether or not the output should be regulated” determined by the frequency distribution matching means 20, and the CPU 11a This is realized by executing a predetermined program and controlling the network communication unit 18a.

処理サーバ202は、インターネット等のネットワークに接続され、多数の出力制御用端末からアクセス可能になっている。クラウド型の立体物造形システムの「クラウド型」とは、3Dプリンタにより立体物を出力する出力側でなく、出力側からネットワークを介した遠隔地のコンピュータにおいて、出力を規制すべきか否かを判定することを意味する。従来のサーバ型コンピュータでは多数の利用者のアクセスが集中すると応答性が遅くなり利用者に迷惑をかけることが多かったが、クラウド型では仮想化技術によりコンピュータの物理的構成を動的に変更することが可能になるため、常に安定した応答性を維持できるという特徴がある。処理サーバ202は物理的には複数台のコンピュータにより実現されるのが一般的である。   The processing server 202 is connected to a network such as the Internet and is accessible from a number of output control terminals. The “cloud type” of the cloud-type three-dimensional object modeling system determines whether the output should be regulated at the remote computer via the network from the output side instead of the output side that outputs the three-dimensional object by the 3D printer It means to do. In the conventional server type computer, when the access of many users is concentrated, the responsiveness becomes slow and it often causes trouble for the user. In the cloud type, the physical configuration of the computer is dynamically changed by the virtualization technology. This makes it possible to always maintain a stable response. Generally, the processing server 202 is physically realized by a plurality of computers.

図33、図34に示したクラウド型の立体物造形システムの処理動作について説明する。出力制御用端末201において、利用者がキー入力I/F14を介して出力したい対象モデルを指定すると、CPU11は、記憶装置13に記憶されている指定された対象モデルを抽出し、対象モデルを特定する識別情報であるモデルIDを付与する。そして、CPU11は、モデルIDが付与された対象モデルに対して、図4または図5に示したフローチャートに従って、度数分布算出手段10が処理を行い、外接円分布および内接円分布で構成される2種の度数分布を生成する。さらにCPU11は、生成された2種の度数分布を、記憶装置13に事前に設定されているURL等のアドレス宛に、ネットワーク通信部18を介して送信する。ポリゴンデータに比べ情報量が顕著に少ない2種の度数分布を送信する方法をとることにより、伝送時間が大幅に短縮されるだけでなく、処理サーバ202側には著作物であるポリゴンデータが送信されず、処理サーバ202側に複製物が残らないため、著作権侵害を回避することができる。   The processing operation of the cloud-type three-dimensional object modeling system shown in FIGS. 33 and 34 will be described. In the output control terminal 201, when the user specifies a target model to be output via the key input I / F 14, the CPU 11 extracts the specified target model stored in the storage device 13 and specifies the target model. A model ID which is identification information to be assigned is assigned. Then, the CPU 11 performs processing on the target model to which the model ID is assigned according to the flowchart shown in FIG. 4 or 5, and is configured by a circumscribed circle distribution and an inscribed circle distribution. Two types of frequency distribution are generated. Further, the CPU 11 transmits the generated two types of frequency distributions to an address such as a URL set in advance in the storage device 13 via the network communication unit 18. By using a method of transmitting two types of frequency distributions that have a significantly smaller amount of information than polygon data, not only the transmission time is greatly shortened, but also polygon data that is a copyrighted work is transmitted to the processing server 202 side. Since no copy remains on the processing server 202 side, copyright infringement can be avoided.

並行してCPU11は、モデルIDが付与された対象モデルを、データ入出力I/F15を介して3Dプリンタ7のデータ処理部7aに送信する。データ処理部7a内のプリンタキューには、出力制御用端末201から受信した対象モデルが保持され、出力ジョブとして待機状態となる。この時、3Dプリンタ出力における前処理であるポリゴン形式のデータを積層形式のデータに変換する処理のみ実行させるようにし、積層形式のデータに変換された段階で待機状態にする手法もとることができる。このデータ処理負荷もそれなりに高いため、この間に出力適否判定が完了すれば、利用者側に余分な待ち時間を感じさせないようにすることができる。   In parallel, the CPU 11 transmits the target model to which the model ID is assigned to the data processing unit 7a of the 3D printer 7 via the data input / output I / F 15. The target model received from the output control terminal 201 is held in the printer queue in the data processing unit 7a, and enters a standby state as an output job. At this time, it is possible to execute only the process of converting the polygon format data, which is the pre-processing in the 3D printer output, into the data in the stack format, and to enter the standby state when the data is converted into the stack format data. . Since this data processing load is also reasonably high, if the output suitability determination is completed during this time, it is possible to prevent the user from feeling an extra waiting time.

処理サーバ202では、対象モデル受信手段50が、出力制御用端末201から送信された対象モデルの2種の度数分布を受信すると、その2種の度数分布を対象モデル記憶手段31に記憶する。ここで、図3に示したフローチャートに従って、度数分布照合手段20が処理を行い、受信した2種の度数分布に対応する対象モデルの出力適否を判定する。出力適否の結果である出力適否データは、度数分布照合手段20から出力適否データ送信手段60に渡される。そして、出力適否データ送信手段60は、2種の度数分布の送信元(アクセス元)である出力制御用端末201に、モデルIDを付加した出力適否データを送信する。   In the processing server 202, when the target model receiving unit 50 receives two types of frequency distributions of the target model transmitted from the output control terminal 201, the two types of frequency distributions are stored in the target model storage unit 31. Here, according to the flowchart shown in FIG. 3, the frequency distribution matching unit 20 performs processing, and determines whether the output of the target model corresponding to the two received frequency distributions is appropriate. Output propriety data as a result of output propriety is passed from the frequency distribution matching unit 20 to the output propriety data transmitting unit 60. Then, the output suitability data transmission means 60 transmits the output suitability data with the model ID added to the output control terminal 201 which is the transmission source (access source) of the two types of frequency distributions.

出力制御用端末201では、ネットワーク通信部18が処理サーバ202から出力適否データを受信すると、CPU11が、受信した出力適否データを、データ入出力I/F15を介して3Dプリンタ7のデータ処理部7aに送信する。データ処理部7aは、受信した出力適否データに付与されたモデルIDでプリンタキュー内の出力ジョブを参照する。そして、出力適否データが“適(出力適正)”である場合、データ処理部7aは、その出力ジョブを待機状態から出力状態に変更し、出力部7bに対象モデルを出力する。出力適否データが“否(出力不適)”である場合、データ処理部7aは、その出力ジョブを破棄する。すなわち、プリンタキューから削除する。   In the output control terminal 201, when the network communication unit 18 receives the output suitability data from the processing server 202, the CPU 11 sends the received output suitability data to the data processing unit 7a of the 3D printer 7 via the data input / output I / F 15. Send to. The data processing unit 7a refers to the output job in the printer queue by using the model ID given to the received output suitability data. If the output suitability data is “appropriate (output proper)”, the data processing unit 7a changes the output job from the standby state to the output state, and outputs the target model to the output unit 7b. If the output suitability data is “No (output unsuitable)”, the data processing unit 7a discards the output job. That is, it is deleted from the printer queue.

<7.度数分布算出事例>
図35、図36に、球体(実際には、球体に近似した多面体)について、上記実施形態に係る立体物造形用データ出力規制装置による度数分布算出事例を示す。図35、図36のいずれにおいても、左端にポリゴンモデル、右側に度数分布を示している。度数分布は、他方式については、上段が面積の平方根の分布(Distance)を示し、下段が角度分布(Angle)を示している。本発明については、上段が外接円分布(OutRadius)を示し、下段が内接円分布(InRadius)を示している。
<7. Frequency distribution calculation example>
FIG. 35 and FIG. 36 show frequency distribution calculation examples for a sphere (actually, a polyhedron approximate to a sphere) by the three-dimensional object formation data output restriction device according to the embodiment. In both FIG. 35 and FIG. 36, the polygon model is shown on the left end and the frequency distribution is shown on the right side. As for the frequency distribution, for other methods, the upper part shows the distribution of the square root of the area (Distance), and the lower part shows the angular distribution (Angle). Regarding the present invention, the upper part shows the circumscribed circle distribution (OutRadius), and the lower part shows the inscribed circle distribution (InRadius).

図35(a)は、球体a(実際には多面体)のポリゴンモデル(5040ポリゴン)、図35(b)は他方式による球体aの度数分布、図35(c)は本発明による球体aの度数分布である。図35(d)は、球体b(実際には多面体)のポリゴンモデル(1224ポリゴン)、図35(e)は他方式による球体bの度数分布、図35(f)は本発明による球体bの度数分布である。図36(a)は、球体c(実際には多面体)のポリゴンモデル(120ポリゴン)、図36(b)は他方式による球体cの度数分布、図36(c)は本発明による球体cの度数分布である。   35A is a polygon model (5040 polygon) of a sphere a (actually a polyhedron), FIG. 35B is a frequency distribution of the sphere a by another method, and FIG. 35C is a diagram of the sphere a according to the present invention. Frequency distribution. FIG. 35 (d) shows a polygon model (1224 polygon) of a sphere b (actually a polyhedron), FIG. 35 (e) shows a frequency distribution of the sphere b by another method, and FIG. 35 (f) shows a sphere b according to the present invention. Frequency distribution. 36A shows a polygon model (120 polygons) of a sphere c (actually a polyhedron), FIG. 36B shows a frequency distribution of the sphere c by another method, and FIG. 36C shows a sphere c of the present invention. Frequency distribution.

図35〜図37において、他方式の面積の平方根分布は、ポリゴンモデル内の3つのポリゴンで形成した三角形の面積の平方根の分布であり、他方式の角度分布は、3つのポリゴンで形成した三角形の一頂点の角度の分布である。球体a、b、cの度数分布を比較した場合、本発明における、3つのポリゴンで形成した三角形の外接円半径に基づく外接円分布、3つのポリゴンで形成した三角形の内接円半径に基づく内接円分布の方が、他方式に比べて、ポリゴン数に影響されずに互いに類似性がある。このため、適合するポリゴンモデルを発見し易く、出力規制を行い易いことがわかる。   35 to 37, the square root distribution of the area of another method is the distribution of the square root of the area of a triangle formed by three polygons in the polygon model, and the angular distribution of the other method is a triangle formed by three polygons. Is the distribution of the angles of one vertex. When the frequency distributions of the spheres a, b, and c are compared, the circumscribed circle distribution based on the circumscribed circle radius of the triangle formed by the three polygons in the present invention and the inner radius based on the inscribed circle radius of the triangle formed by the three polygons The tangent circle distribution is more similar to each other than other methods without being affected by the number of polygons. For this reason, it turns out that it is easy to find a suitable polygon model and to perform output regulation easily.

図37(a)は、模擬拳銃dのポリゴンモデル(192ポリゴン)、図37(b)は他方式による模擬拳銃dの度数分布、図37(c)は本発明による模擬拳銃dの度数分布である。図37(d)は、模擬拳銃eのポリゴンモデル(168ポリゴン)、図37(e)は他方式による模擬拳銃eの度数分布、図37(f)は本発明による模擬拳銃eの度数分布である。模擬拳銃eは模擬拳銃dに対して部品が1つ欠落したものである。模擬拳銃eと模擬拳銃dの度数分布を比較した場合、他方式のいずれの度数分布および本発明の内接円分布では、顕著な差が見られず大きな正の相関が見られた。しかし、本発明の外接円分布では、相関値は正の値の範囲で低い値になり、両者に若干の相違が検出されている。このため、外接円分布を用いて照合することにより、適合するポリゴンモデルを発見し易く相違点も検出でき、出力規制を高精度に行えることがわかる。ここで、外接円分布が相違点を検出しやすい理由は、3D形状の基本である球体では、図35(c)の上段に示されるように、当該球体の半径に対応する最大距離の1箇所にピークが現れる白紙に近い分布になるためで、形状が球体からずれるに伴い、種々の箇所にピークが加わり、わずかな形状差異に鋭敏に反応する複雑な分布になる。図7に示したステップS630においては、外接円分布の相関係数の判定しきい値を2段階に設定しておくこともできる。外接円分布の相関係数の判定しきい値を+5.0と+80.0の2段階に設定した場合、ステップS630における照合により、相関係数Dd(re)が+5.0以上+80.0未満の場合に仮適合と判定し(相違点検出)、相関係数Dd(re)が+80.0以上の場合に完全適合と判定する。もちろん、2段階それぞれの判定しきい値は適宜変更が可能である。   37A is a polygon model (192 polygon) of the simulated handgun d, FIG. 37B is a frequency distribution of the simulated handgun d according to another method, and FIG. 37C is a frequency distribution of the simulated handgun d according to the present invention. is there. Fig. 37 (d) is a polygon model (168 polygon) of the simulated handgun e, Fig. 37 (e) is a frequency distribution of the simulated handgun e by another method, and Fig. 37 (f) is a frequency distribution of the simulated handgun e according to the present invention. is there. The simulated handgun e is one in which one part is missing from the simulated handgun d. When the frequency distributions of the simulated handgun e and the simulated handgun d were compared, no significant difference was found in any of the other systems and the inscribed circle distribution of the present invention, and a large positive correlation was observed. However, in the circumscribed circle distribution of the present invention, the correlation value is a low value in the positive value range, and a slight difference is detected between the two. For this reason, it can be seen that by matching using the circumscribed circle distribution, it is easy to find a suitable polygon model, a difference can be detected, and output regulation can be performed with high accuracy. Here, the reason why it is easy to detect the difference in the circumscribed circle distribution is that one point of the maximum distance corresponding to the radius of the sphere is shown in the upper part of FIG. Because the distribution is close to that of a blank sheet in which peaks appear, the peaks are added at various locations as the shape deviates from the sphere, resulting in a complex distribution that reacts sensitively to slight differences in shape. In step S630 shown in FIG. 7, the determination threshold value of the correlation coefficient of the circumscribed circle distribution can be set in two stages. When the threshold values for determining the correlation coefficient of the circumscribed circle distribution are set in two stages, +5.0 and +80.0, the correlation coefficient Dd (re) is +5.0 or more and less than +80.0 by collation in step S630. In the case of (2), it is determined as provisional matching (difference detection), and when the correlation coefficient Dd (re) is +80.0 or more, it is determined as perfect matching. Of course, the determination threshold value for each of the two stages can be changed as appropriate.

<8.変形例等>
以上、本発明の好適な実施形態について説明したが、本発明は上記実施形態に限定されず、種々の変形が可能である。例えば、上記実施形態では、処理対象のポリゴンを三角形状としたが、四角形状以上の多角形状であってもよい。
<8. Modified example>
The preferred embodiments of the present invention have been described above. However, the present invention is not limited to the above embodiments, and various modifications can be made. For example, in the above embodiment, the polygon to be processed is a triangle, but it may be a polygon more than a quadrangle.

また、上記実施形態では、三角形を構成するためのポリゴン上の一点として、ポリゴンの各頂点の平均座標をもつポリゴン平均点を用いたが、ポリゴン上の点であれば、ポリゴン平均点以外の点であってもよい。例えば、ポリゴン上の点としては、ポリゴンの重心点、ポリゴンの頂点のxyz座標別の最大値と最小値の丁度中間となる値をもつ点、等を用いることができる。   In the above embodiment, a polygon average point having the average coordinates of each vertex of the polygon is used as one point on the polygon for constituting the triangle. However, if the point is on the polygon, a point other than the polygon average point is used. It may be. For example, as a point on the polygon, a barycentric point of the polygon, a point having a value that is exactly halfway between the maximum value and the minimum value of each vertex of the polygon, and the like can be used.

また、上記実施形態では、対象モデルと規制モデルの照合対象の度数分布として外接円分布と内接円分布を用いたが、内接円分布を用いず、外接円分布のみを用いるようにしてもよい。   In the above-described embodiment, the circumscribed circle distribution and the inscribed circle distribution are used as the frequency distribution of the comparison target of the target model and the regulation model. However, only the circumscribed circle distribution is used without using the inscribed circle distribution. Good.

1、1a、11、11a・・・CPU(Central Processing Unit)
2、2a、12、12a・・・RAM(Random Access Memory)
3、3a、13、13a・・・記憶装置
4、4a、14、14a・・・キー入力I/F
5、5a、15、15a・・・データ入出力I/F
6、6a、16、16a・・・表示部
7・・・3Dプリンタ(立体物造形装置)
7a・・・データ処理部
7b・・・出力部
8、8a、18、18a・・・ネットワーク通信部
10・・・度数分布算出手段(度数分布算出装置)
20・・・度数分布照合手段
30、31・・・対象モデル記憶手段
40・・・規制モデルデータベース
50・・・対象モデル受信手段
60・・・出力適否データ送信手段
100、101・・・立体物造形用データ出力規制装置
102・・・規制モデル度数分布算出装置
201・・・出力制御用端末
202・・・処理サーバ
1, 1a, 11, 11a... CPU (Central Processing Unit)
2, 2a, 12, 12a ... RAM (Random Access Memory)
3, 3a, 13, 13a ... Storage device 4, 4a, 14, 14a ... Key input I / F
5, 5a, 15, 15a ... Data I / O I / F
6, 6a, 16, 16a ... display unit 7 ... 3D printer (three-dimensional object modeling apparatus)
7a: Data processing unit 7b: Output unit 8, 8a, 18, 18a: Network communication unit 10: Frequency distribution calculating means (frequency distribution calculating device)
DESCRIPTION OF SYMBOLS 20 ... Frequency distribution collating means 30, 31 ... Target model storage means 40 ... Regulatory model database 50 ... Target model receiving means 60 ... Output propriety data transmitting means 100, 101 ... Three-dimensional object Modeling data output restriction device 102 ... restriction model frequency distribution calculation device 201 ... output control terminal 202 ... processing server

Claims (21)

ポリゴンの集合として表現されたポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきか否かを判定する装置であって、
出力を規制すべきポリゴンモデルである規制モデル内の3つのポリゴンで形成される三角形の外接円の半径の度数分布である外接円分布が登録されたデータベースと、
出力対象のポリゴンモデルである対象モデルに対して、当該対象モデル内から選択された3つのポリゴン上の所定の点により形成される三角形の外接円の半径を算出し、外接円の半径の度数分布である外接円分布を算出する度数分布算出手段と、
前記算出された外接円分布を、前記データベースに登録されている規制モデルの外接円分布と照合し、出力を規制すべきか否かを判定する度数分布照合手段と、
を有することを特徴とする立体物造形用データ出力規制装置。
A device for determining whether or not to regulate when outputting a polygon model expressed as a set of polygons to a three-dimensional object modeling apparatus as three-dimensional object modeling data,
A database in which a circumscribed circle distribution that is a frequency distribution of the radius of a circumscribed circle of a triangle formed by three polygons in a regulated model that is a polygon model whose output is to be regulated;
For the target model that is the polygon model to be output, calculate the radius of the circumscribed circle of the triangle formed by the predetermined points on the three polygons selected from the target model, and the frequency distribution of the radius of the circumscribed circle A frequency distribution calculating means for calculating a circumscribed circle distribution that is,
The calculated circumscribed circle distribution is compared with the circumscribed circle distribution of the regulation model registered in the database, and a frequency distribution matching means for determining whether or not the output should be regulated,
A data output regulating device for three-dimensional object formation characterized by comprising:
前記度数分布算出手段は、前記対象モデルに対して、当該対象モデル内のポリゴンを第1グループ、第2グループ、第3グループの3つのグループに分類し、各グループから1つずつポリゴンを選択することにより、前記3つのポリゴンを選択することを特徴とする請求項1に記載の立体物造形用データ出力規制装置。   The frequency distribution calculating unit classifies the polygons in the target model into three groups of a first group, a second group, and a third group, and selects one polygon from each group. The three-dimensional object shaping data output restriction device according to claim 1, wherein the three polygons are selected. 前記度数分布算出手段は、前記各グループのポリゴン数をN/3個とした際、N/3個の連続する整数をランダムに入れ替えた乱数配列を作成するとともに、前記乱数配列の先頭から末尾への順序を逆にした反転乱数配列を作成し、前記3つのグループのうち、1つのグループに前記乱数配列、他の1つのグループに前記反転乱数配列をそれぞれ適用してグループ内のポリゴンの順序を入れ替えた後、各グループの先頭から順に、前記ポリゴンの選択を行うことを特徴とする請求項2に記載の立体物造形用データ出力規制装置。   The frequency distribution calculating means creates a random number array in which N / 3 consecutive integers are randomly replaced when the number of polygons in each group is N / 3, and from the beginning to the end of the random number array. The reverse random number array is created by reversing the order of the above, and the random number array is applied to one of the three groups, and the reverse random number array is applied to the other group, and the order of the polygons in the group is determined. 3. The three-dimensional object formation data output restriction device according to claim 2, wherein the polygons are selected in order from the top of each group after the replacement. 前記度数分布算出手段は、
前記第1グループのポリゴンに前記乱数配列、前記第2グループのポリゴンに前記反転乱数配列をそれぞれ適用して順序を入れ替え、前記第3グループのポリゴンの順序を入れ替えずに前記ポリゴンの選択を行ってN/3個の三角形を形成し、
前記第2グループのポリゴンに前記乱数配列、前記第3グループのポリゴンに前記反転乱数配列をそれぞれ適用して順序を入れ替え、前記第1グループのポリゴンの順序を入れ替えずに前記ポリゴンの選択を行ってN/3個の三角形を形成し、
前記第3グループのポリゴンに前記乱数配列、前記第1グループのポリゴンに前記反転乱数配列をそれぞれ適用して順序を入れ替え、前記第2グループのポリゴンの順序を入れ替えずに前記ポリゴンの選択を行ってN/3個の三角形を形成することを特徴とする請求項3に記載の立体物造形用データ出力規制装置。
The frequency distribution calculating means includes:
The random number array is applied to the first group of polygons and the inverted random number array is applied to the second group of polygons to change the order, and the polygons are selected without changing the order of the third group of polygons. N / 3 triangles are formed,
The random number array is applied to the second group of polygons and the inverted random number array is applied to the third group of polygons to change the order, and the polygons are selected without changing the order of the first group of polygons. N / 3 triangles are formed,
The random number array is applied to the third group of polygons and the inverted random number array is applied to the first group of polygons to change the order, and the polygons are selected without changing the order of the second group of polygons. 4. The three-dimensional object formation data output restriction device according to claim 3, wherein N / 3 triangles are formed.
前記度数分布算出手段は、
前記外接円分布を1回算出するごとに、前記3つのグループのうち2つのグループ内のポリゴンの順序を変化させて、前記外接円分布を改めて算出する処理を繰り返し行い、所定の回数、算出された外接円分布の平均値を、照合対象の外接円分布とするものであることを特徴とする請求項3または請求項4に記載の立体物造形用データ出力規制装置。
The frequency distribution calculating means includes:
Each time the circumscribed circle distribution is calculated, the order of polygons in two groups of the three groups is changed, and the process of calculating the circumscribed circle distribution is repeated to calculate a predetermined number of times. 5. The three-dimensional object shaping data output restriction device according to claim 3, wherein an average value of the circumscribed circle distribution is a circumscribed circle distribution to be collated.
前記度数分布算出手段は、
前記外接円分布を1回算出するごとに、前記3つのグループのうち2つのグループ内のポリゴンの順序を変化させて、前記外接円分布を改めて算出する処理を繰り返し行い、
算出直後の外接円分布と、その直前に得られた前記外接円分布を比較し、比較の結果で類似性が認められる場合に、前記算出直後の外接円分布を、照合対象の外接円分布とするものであることを特徴とする請求項3または請求項4に記載の立体物造形用データ出力規制装置。
The frequency distribution calculating means includes:
Every time the circumscribed circle distribution is calculated, the order of polygons in two groups among the three groups is changed, and the process of calculating the circumscribed circle distribution is repeated.
When the circumscribed circle distribution immediately after the calculation is compared with the circumscribed circle distribution obtained immediately before and the similarity is found in the comparison result, the circumscribed circle distribution immediately after the calculation is referred to as the circumscribed circle distribution to be verified. The three-dimensional object formation data output restriction device according to claim 3 or 4, wherein the three-dimensional object formation data output restriction device is provided.
前記度数分布算出手段は、前記外接円分布を算出するにあたり、所定数の要素で構成される1次元の配列を準備し、前記算出された外接円の半径の最大値の範囲を前記所定数に均等に分割した上で、前記各外接円の半径を当該外接円の半径の値に基づいて前記所定数のいずれかの要素に割り当て、当該要素に該当する数を計数することにより、前記外接円分布を算出するようにしていることを特徴とする請求項1から請求項6のいずれか一項に記載の立体物造形用データ出力規制装置。   In calculating the circumscribed circle distribution, the frequency distribution calculating unit prepares a one-dimensional array composed of a predetermined number of elements, and sets the range of the calculated maximum value of the radius of the circumscribed circle to the predetermined number. After dividing equally, the radius of each circumscribed circle is assigned to any one of the predetermined number of elements based on the value of the radius of the circumscribed circle, and the number corresponding to the element is counted to thereby calculate the circumscribed circle. The distribution is calculated, The three-dimensional object formation data output restriction device according to any one of claims 1 to 6. 前記データベースは、前記外接円分布に加えて、前記三角形の内接円の半径の度数分布である内接円分布が登録されたものであり、
前記度数分布算出手段は、前記対象モデルに対して、前記外接円分布に加えて、前記三角形の内接円の半径を算出し、算出結果である内接円の半径の度数分布である内接円分布を算出するものであり、
前記度数分布照合手段は、前記外接円分布に加えて、前記算出された内接円分布を、前記データベースに登録されている規制モデルの内接円分布と照合し、出力を規制すべきか否かを判定するものであることを特徴とする請求項1から請求項7のいずれか一項に記載の立体物造形用データ出力規制装置。
In the database, in addition to the circumscribed circle distribution, an inscribed circle distribution that is a frequency distribution of the radius of the inscribed circle of the triangle is registered.
The frequency distribution calculating means calculates a radius of the inscribed circle of the triangle in addition to the circumscribed circle distribution for the target model, and calculates an inscribed shape that is a frequency distribution of the radius of the inscribed circle as a calculation result. To calculate the circle distribution,
Whether or not the frequency distribution matching means should check the calculated inscribed circle distribution in addition to the circumscribed circle distribution with the inscribed circle distribution of the restriction model registered in the database, and regulate the output. The data output restriction device for three-dimensional object formation according to any one of claims 1 to 7, wherein
前記度数分布算出手段は、前記内接円分布を算出するにあたり、所定数の要素で構成される1次元の配列を準備し、前記算出された内接円の半径の最大値の範囲を前記所定数に均等に分割した上で、前記各内接円の半径を当該内接円の半径の値に基づいて前記所定数のいずれかの要素に割り当て、当該要素に該当する数を計数することにより、前記内接円分布を算出するようにしていることを特徴とする請求項8に記載の立体物造形用データ出力規制装置。   In calculating the inscribed circle distribution, the frequency distribution calculating unit prepares a one-dimensional array composed of a predetermined number of elements, and sets the range of the calculated maximum value of the radius of the inscribed circle. By dividing the radius of each inscribed circle into the predetermined number of elements based on the value of the radius of the inscribed circle and counting the number corresponding to the element. The inscribed circle distribution is calculated, and the three-dimensional object formation data output regulation device according to claim 8. 前記度数分布算出手段は、前記要素に該当する数を計数する際、前記選択された3つのポリゴンの面積の平均値で重み付けするようにしていることを特徴とする請求項9に記載の立体物造形用データ出力規制装置。   10. The three-dimensional object according to claim 9, wherein the frequency distribution calculating means weights an average value of the areas of the three selected polygons when counting the number corresponding to the element. Data output regulation device for modeling. 前記度数分布算出手段は、前記各対象モデルを構成するポリゴンの面積の総和値により、前記各要素の値を除算するようにしていることを特徴とする請求項10に記載の立体物造形用データ出力規制装置。   11. The three-dimensional object formation data according to claim 10, wherein the frequency distribution calculating unit divides the value of each element by the total value of the areas of the polygons forming each of the target models. Output restriction device. 前記対象モデルを複数の部分対象モデルに分離する対象モデル分離手段を更に備え、
前記部分対象モデルに対して、前記度数分布算出手段が処理を行うことを特徴とする請求項1から請求項11のいずれか一項に記載の立体物造形用データ出力規制装置。
A target model separating means for separating the target model into a plurality of partial target models;
The three-dimensional object formation data output restriction device according to any one of claims 1 to 11, wherein the frequency distribution calculating unit performs processing on the partial target model.
前記ポリゴンは三角形状であり、前記対象モデル分離手段は、あるポリゴンと、当該ポリゴンと辺を共有する3つの隣接ポリゴンが、同一の部分対象モデルに属するように、分離することを特徴とする請求項12に記載の立体物造形用データ出力規制装置。   The polygon is triangular, and the target model separation means separates a polygon and three adjacent polygons that share sides with the polygon so that they belong to the same partial target model. Item 13. A three-dimensional object modeling data output restriction device according to Item 12. 前記度数分布照合手段は、前記度数分布算出手段により前記対象モデルから算出された外接円分布を前記データベースに登録されている前記外接円分布と照合するにあたり、
前記外接円分布どうしの相関係数を算出し、算出された相関係数が所定の正のしきい値より大きい場合に、出力を規制すべきであると判定するようにしていることを特徴とする請求項1から請求項13のいずれか一項に記載の立体物造形用データ出力規制装置。
The frequency distribution matching means, in matching the circumscribed circle distribution calculated from the target model by the frequency distribution calculating means with the circumscribed circle distribution registered in the database,
A correlation coefficient between the circumscribed circle distributions is calculated, and when the calculated correlation coefficient is larger than a predetermined positive threshold value, it is determined that the output should be regulated. The data output restriction device for three-dimensional object formation according to any one of claims 1 to 13.
前記規制モデルに対して、当該規制モデル内から選択された3つのポリゴン上の所定の点により形成される三角形の外接円の半径を算出し、外接円の半径の度数分布である外接円分布を算出する規制モデル度数分布算出装置により算出された外接円分布を受信し、受信した外接円分布を前記データベースに登録する登録手段を更に有することを特徴とする請求項1から請求項14のいずれか一項に記載の立体物造形用データ出力規制装置。   With respect to the restriction model, a radius of a circumscribed circle of a triangle formed by predetermined points on three polygons selected from within the restriction model is calculated, and a circumscribed circle distribution that is a frequency distribution of the radius of the circumscribed circle is calculated. 15. The apparatus according to claim 1, further comprising a registration unit that receives the circumscribed circle distribution calculated by the regulatory model frequency distribution calculating device to calculate, and registers the received circumscribed circle distribution in the database. The data output restriction apparatus for three-dimensional object modeling according to one item. 前記規制モデル度数分布算出装置は、前記規制モデルに対して、当該規制モデル内のポリゴンを第1グループ、第2グループ、第3グループの3つのグループに分類し、各グループから1つずつポリゴンを選択することにより、前記3つのポリゴンを選択することを特徴とする請求項15に記載の立体物造形用データ出力規制装置。   The restriction model frequency distribution calculating device classifies the polygons in the restriction model into three groups of a first group, a second group, and a third group with respect to the restriction model, and assigns one polygon from each group. 16. The three-dimensional object formation data output restriction device according to claim 15, wherein the three polygons are selected by selection. 前記対象モデルを、接続された立体物造形装置に出力する手段と、
前記立体物造形装置による立体物の造形処理と並行して実行される前記度数分布照合手段により、出力を規制すべきであると判定された場合に、前記立体物造形装置に、前記対象モデルの出力中止命令を出力する手段と、
を更に有することを特徴とする請求項1から請求項16のいずれか一項に記載の立体物造形用データ出力規制装置。
Means for outputting the target model to a connected three-dimensional object shaping apparatus;
When it is determined that the output should be regulated by the frequency distribution matching unit that is executed in parallel with the three-dimensional object modeling process by the three-dimensional object modeling apparatus, the three-dimensional object modeling apparatus includes the target model. Means for outputting an output stop command;
The three-dimensional object formation data output restriction device according to any one of claims 1 to 16, further comprising:
出力制御用端末と、処理サーバがネットワークを介して接続された構成であって、
前記出力制御用端末は、前記度数分布算出手段を有し、
前記処理サーバは、
前記データベースと、
ネットワークを介して前記出力制御用端末から前記対象モデルの外接円分布を受信する受信手段と、
前記度数分布照合手段と、
前記度数分布照合手段により判定された、出力を規制すべきか否かに基づくデータを前記出力制御用端末に送信する出力適否データ送信手段と、
を有することを特徴とする請求項1から請求項17のいずれか一項に記載の立体物造形用データ出力規制装置。
The output control terminal and the processing server are connected via a network,
The output control terminal has the frequency distribution calculating means,
The processing server
The database;
Receiving means for receiving a circumscribed circle distribution of the target model from the output control terminal via a network;
The frequency distribution matching means;
Output suitability data transmission means for transmitting data based on whether the output should be regulated or not, determined by the frequency distribution matching means, to the output control terminal;
The three-dimensional object formation data output restriction device according to any one of claims 1 to 17, wherein the three-dimensional object formation data output restriction device is provided.
請求項1から請求項18のいずれか一項に記載の立体物造形用データ出力規制装置と、
前記立体物造形用データ出力規制装置で出力が許可されたポリゴンモデルを用いて立体物を造形する立体物造形装置と、
を有することを特徴とする立体物造形システム。
A data output regulation device for three-dimensional object modeling according to any one of claims 1 to 18,
A three-dimensional object modeling apparatus that models a three-dimensional object using a polygon model whose output is permitted by the three-dimensional object modeling data output restriction device;
A three-dimensional object forming system characterized by comprising:
ポリゴンの集合として表現されたポリゴンモデルを立体物造形装置に立体物造形用データとして出力する際に、規制すべきか否かを判定するために、前記ポリゴンモデルを基に度数分布を作成する装置であって、
出力対象のポリゴンモデルである対象モデルに対して、当該対象モデル内から選択された3つのポリゴン上の所定の点により形成される三角形の外接円の半径を算出し、外接円の半径の度数分布である外接円分布を算出する度数分布算出装置。
A device that creates a frequency distribution based on the polygon model in order to determine whether or not to restrict when a polygon model expressed as a set of polygons is output to the three-dimensional object modeling device as three-dimensional object modeling data. There,
For the target model that is the polygon model to be output, calculate the radius of the circumscribed circle of the triangle formed by the predetermined points on the three polygons selected from the target model, and the frequency distribution of the radius of the circumscribed circle A frequency distribution calculation device that calculates a circumscribed circle distribution.
コンピュータを、請求項1から請求項18のいずれか一項に記載の立体物造形用データ出力規制装置として機能させるためのプログラム。   A program for causing a computer to function as the three-dimensional object formation data output restriction device according to any one of claims 1 to 18.
JP2015220943A 2015-11-11 2015-11-11 Data output restriction device for 3D object modeling Active JP6613832B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015220943A JP6613832B2 (en) 2015-11-11 2015-11-11 Data output restriction device for 3D object modeling

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015220943A JP6613832B2 (en) 2015-11-11 2015-11-11 Data output restriction device for 3D object modeling

Publications (2)

Publication Number Publication Date
JP2017091236A JP2017091236A (en) 2017-05-25
JP6613832B2 true JP6613832B2 (en) 2019-12-04

Family

ID=58771713

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015220943A Active JP6613832B2 (en) 2015-11-11 2015-11-11 Data output restriction device for 3D object modeling

Country Status (1)

Country Link
JP (1) JP6613832B2 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4121125B2 (en) * 2003-09-10 2008-07-23 インターナショナル・ビジネス・マシーンズ・コーポレーション Graphics image generation apparatus and method, data analysis apparatus and method, and program
JP6075809B2 (en) * 2013-07-29 2017-02-08 Necソリューションイノベータ株式会社 3D printer device, 3D printing method, and manufacturing method of three-dimensional structure
JP6318701B2 (en) * 2014-02-28 2018-05-09 大日本印刷株式会社 Data output restriction device for 3D object modeling

Also Published As

Publication number Publication date
JP2017091236A (en) 2017-05-25

Similar Documents

Publication Publication Date Title
CN107924583A (en) Grid generates system and method
JP2019045894A (en) Retrieval program, retrieval method and information processing apparatus operating retrieval program
WO2020112078A1 (en) Geometry-aware interactive design
JP2015194909A (en) Management program, management device and management method
CN1815507B (en) Method, apparatus, and medium for transforming graphic data of an object
KR20150112832A (en) Computing program, computing apparatus and computing method
US11954820B2 (en) Graph alignment techniques for dimensioning drawings automatically
JP2017168081A (en) 3d object localization with descriptor
JP6613832B2 (en) Data output restriction device for 3D object modeling
JP6638341B2 (en) Data output regulation device for 3D object modeling
CN107066926A (en) Positioned using the 3D objects of descriptor
JP2017091447A (en) Data output constraint device for solid object modeling
JP6638466B2 (en) Data output regulation device for 3D object modeling
JP2019018446A (en) Data output regulating device for three-dimensional object molding
JP2016224887A (en) Data output regulation device for three-dimensional object molding
JP2018126939A (en) Data output regulating device for three-dimensional object molding
JP6557988B2 (en) Data output restriction device for 3D object modeling
JP6540238B2 (en) Data output regulation device for three-dimensional object modeling
JP6511959B2 (en) Data output regulation device for three-dimensional object modeling
JP6409513B2 (en) Data output restriction device for 3D object modeling
JP2018075755A (en) Data output regulation device for molding three-dimensional object
JP2017207900A (en) Data output restriction device for sold object molding
JP2017091473A (en) Data output constraint device for solid object modeling
JP6369117B2 (en) Data output restriction device for 3D object modeling
JP2017207869A (en) Data output restriction device for solid object molding

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180925

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190930

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191021

R150 Certificate of patent or registration of utility model

Ref document number: 6613832

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150