JP5407695B2 - Self-intersection detection program and self-intersection detection method in 3D curve model - Google Patents
Self-intersection detection program and self-intersection detection method in 3D curve model Download PDFInfo
- Publication number
- JP5407695B2 JP5407695B2 JP2009217093A JP2009217093A JP5407695B2 JP 5407695 B2 JP5407695 B2 JP 5407695B2 JP 2009217093 A JP2009217093 A JP 2009217093A JP 2009217093 A JP2009217093 A JP 2009217093A JP 5407695 B2 JP5407695 B2 JP 5407695B2
- Authority
- JP
- Japan
- Prior art keywords
- intersection
- self
- plane
- detected
- projected
- 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.)
- Expired - Fee Related
Links
Images
Description
本発明は、三次元曲線モデルにおける自己交差の検出プログラム及び自己交差の検出方法に関する。 The present invention relates to a self-intersection detection program and a self-intersection detection method in a three-dimensional curve model.
機械製品や装置に組み込まれているワイヤ、ハーネス、ケーブル等の線状柔軟物を設計する際には、線状柔軟物に繋がれている機械部品の動作を当該線状柔軟物が阻害したり他の部品に干渉せぬ様、線状柔軟物の適性な長さ及び配線経路を決定する必要がある。そのため、三次元的な曲線をモデリングするソフトウェアを三次元CADシステム上で動作させることにより、仮想空間内に線状柔軟物の三次元曲線モデルを作成し、当該仮想空間において線状柔軟物の動きをシミュレーションする方法が、従来提案されている。 When designing linear flexible objects such as wires, harnesses, cables, etc. incorporated in machinery products and equipment, the linear flexible objects obstruct the operation of the machine parts connected to the linear flexible objects. It is necessary to determine an appropriate length and wiring route of the linear flexible object so as not to interfere with other parts. For this reason, a software for modeling a three-dimensional curve is operated on a three-dimensional CAD system to create a three-dimensional curve model of a linear flexible object in the virtual space, and the movement of the linear flexible object in the virtual space. A method of simulating the above has been conventionally proposed.
上述したソフトウェアは、設計対象である線状柔軟物の始点と終点の位置及び接続方向,線状柔軟物の長さ、線状柔軟物の断面の半径,等の条件が入力されると、これらの各条件を満たすとともに力学法則をも満足する三次元曲線を自動生成する。 The software described above receives the input of conditions such as the start and end positions and connection direction of the linear flexible object to be designed, the length of the linear flexible object, the cross-sectional radius of the linear flexible object, etc. A three-dimensional curve that satisfies the following conditions and satisfies the laws of mechanics is automatically generated.
ただし、上述したソフトウェアは、入力された条件が不適切ないし不自然であると、現実にはありえない自己交差を含む形状を呈する三次元曲線モデルを生成してしまうことがある。ここに、自己交差とは、同一曲線の或る一部と他の一部とが空間中の同一座標にて交差することをいう。即ち、線状柔軟物は、パラメータ如何に拘わらず、現実的には螺旋状にループした形状しかとりえないにも関わらず、上述したソフトウェアは、自己交差に因る閉ループを含む形状を作成してしまう場合がある。後者の形状を有する三次元曲線モデルは、現実には存在しな形状を呈するものであるので、線状柔軟物の動きをシミュレーションする目的の為には不適当である。そこで、生成された三次元曲線中の自己交差を高速に検出することが、求められる。 However, the above-described software may generate a three-dimensional curve model having a shape including a self-intersection that is impossible in reality if the input condition is inappropriate or unnatural. Here, the self-intersection means that a part of the same curve and another part intersect at the same coordinate in the space. In other words, the software described above creates a shape that includes a closed loop due to self-intersection, although a linear flexible object can only take a spiral loop shape regardless of parameters. May end up. Since the three-dimensional curve model having the latter shape exhibits a shape that does not actually exist, it is not suitable for the purpose of simulating the movement of the linear flexible object. Therefore, it is required to detect self-intersection in the generated three-dimensional curve at high speed.
三次元曲線中の自己交差を検出するためには、三次元曲線を、複数(N+1個)の点列と各点同士の間を夫々結ぶN本の線分とからなる折れ線に近似し、全線分から選ばれる二本の線分の全組合せに対して、交点(即ち、共通座標)の有無を調べることが考えられる。この場合、座標系において2本の線分を夫々示す連立方程式が解を有せば、交点が存在すると判定される。 In order to detect a self-intersection in a three-dimensional curve, the three-dimensional curve is approximated to a broken line composed of a plurality of (N + 1) point sequences and N line segments each connecting each point, and all lines It is conceivable to check the presence or absence of intersections (that is, common coordinates) for all combinations of two line segments selected from the minutes. In this case, if the simultaneous equations indicating the two line segments in the coordinate system have solutions, it is determined that an intersection exists.
しかしながら、かかる方法による場合、各線分の組み毎に交差の有無判定を行う計算(以下、「交差判定計算」という)の回数は、最大でN×N回となってしまう。 However, according to this method, the number of calculations for determining whether or not there is an intersection for each set of line segments (hereinafter referred to as “intersection determination calculation”) is N × N at the maximum.
そこで、本案は、三次元曲線モデルにおける自己交差の検出のための計算量を削減することを課題とする。 In view of this, it is an object of the present invention to reduce the amount of calculation for detecting self-intersection in a three-dimensional curve model.
提案された手段によると、三次元曲線モデルを、相互に異なる方向を向いた複数の仮想平面に夫々投影する。そして、各仮想平面において、投影された曲線に含まれる自己交差を夫々検出し、全ての仮想平面に投影された曲線に含まれる自己交差が検出された場合に、三次元曲線モデルに自己交差があると判定する。 According to the proposed means, the 3D curve model is projected onto a plurality of virtual planes facing different directions. Then, in each virtual plane, the self-intersection included in the projected curve is detected, and when the self-intersection included in the curve projected on all the virtual planes is detected, the self-intersection is detected in the 3D curve model. Judge that there is.
三次元曲線モデルにおける自己交差の検出のための計算量を削減することができる。 The amount of calculation for detecting the self-intersection in the three-dimensional curve model can be reduced.
以下、図面に基づいて、本案の実施の形態を説明する。
<コンピュータ>
図1は、三次元曲線モデル生成プログラムがインストールされているコンピュータ1のハードウェア構成図である。
Hereinafter, embodiments of the present plan will be described based on the drawings.
<Computer>
FIG. 1 is a hardware configuration diagram of a
図1に示すように、コンピュータ1は、相互にバスBによって接続されたCPU10,RAM11,入力装置12,ディスプレイ13及びハードディスク15を有する一般的なコンピュータである。
As shown in FIG. 1, the
CPU10は、ハードディスク15からプログラムを読み出し、プログラムに従った処理を実行する処理装置である。
The
RAM11は、CPU10が上記処理をする際に作業領域を展開する主記憶装置である。
The
入力装置12は、CPU10に対して各種コマンド又はデータを入力するためのキーボード及びポインティングデバイスである。
The
ディスプレイ13は、CPU10による処理結果を表示するための表示装置である。
The
ハードディスク15は、各種プログラム及び各種データを格納する固体記憶媒体である。このハードディスク15が格納している各種プログラムには、三次元曲線モデルの自己交差検出プログラムを実施したモジュールである三次元曲線モデル生成プログラム16を含む三次元CADプログラムが、含まれている。
The
なお、三次元曲線モデル生成プログラム16を格納する記録媒体は、ハードディスク15に限定されず、コンピュータその他の機械、装置(以下、コンピュータ等)が読み取り可能な記録媒体を用いることができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD−ROM、CD−R/W、DVD、ブルーレイディスク、DAT、8mmテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやROM(リードオンリーメモリ)等がある。
<三次元曲線モデル生成プログラム>
図2のフローチャートは、三次元CADプログラムによる処理のうち、三次元曲線モデル生成プログラム16による処理を示す。なお、図2〜図5に示すフローチャートは、線状柔軟物の一例であるハーネスの三次元モデルを生成するものとして記述されているが、当該プログラム16により他の線状柔軟物の三次元モデルを生成できることは、勿論である。
The recording medium for storing the three-dimensional curve
<3D curve model generation program>
The flowchart of FIG. 2 shows the process by the 3D curve
図2に示す処理は、CADプログラムを実行しているCPU10に対して、オペレータが入力装置12を通じて所定のコマンドを入力することにより、スタートする。
The process shown in FIG. 2 starts when the operator inputs a predetermined command to the
スタート後最初のS001では、CPU10は、ハーネス形状に関する条件を入力する。図2においては、ハーネス形状に関する条件として、ハーネスの始点及び終点の位置,始点及び終点におけるハーネスの接続方向,ハーネスの長さ、ハーネスの断面の半径が例示されているが、更に、ハーネスの剛性,単位体積当たりの重量等が入力されても良い。ハーネス形状に関する条件は、予め操作者が入力装置12を操作することによってハードディスク15に格納されていたものであっても良いし、CPU10がディスプレイ13上に表示する入力画面上に操作者によって書き込まれたものであって良い。
In the first S001 after the start, the
次のS002では、CPU10は、S001にて入力された条件を満たす直線形状を有するハーネス形状の三次元モデルを算出する。
In next step S002, the
次のS003では、CPU10は、S002にて生成したハーネス形状の三次元モデルにおける自己交差の検出を実行する。なお、CPU10は、S002にて算出した三次元モデルを、図6に示すように、太さを有しない三次元曲線に変換し、かかる三次元曲線をS003での自己交差検出処理に用いる。
In the next step S003, the
図3は、S003にて実行される自己交差検出処理サブルーチンを示すフローチャートである。このサブルーチンに入って最初のS101では、CPU10は、図7に示すように、上記三次元曲線上に、当該三次元曲線をN個の線分に等分する所定個数(N+1個)の点列(pi={Xi,Yi,Zi}:i=0,1,2,…,N)を生成することにより、当該三次元曲線を折れ線に近似する。なお、点列の始点p0及び終点pNは、夫々、三次元曲線の始点上及び終点上に生成される。
FIG. 3 is a flowchart showing a self-intersection detection processing subroutine executed in S003. In the first step S101 after entering this subroutine, as shown in FIG. 7, the
次のS102では、CPU10は、S101にて生成した点列(折れ線)を、第1の平面に投影した上で(投影手段に相当)、当該第1の平面上に投影した点列を結ぶ折れ線が自己交差を有するかを検出する処理を実行する(平面上交差検出手段に相当)。なお、第1の平面及び後述する第2の平面は、互いに異なる方向を向いた面であれば、夫々、如何なる方向を向いた面であっても良い。例えば、点列の始点p0,終点pN及び任意の中間点pkを含む面であっても良い。但し、処理を簡単にするため、以下においては、第1の平面を
X−Y平面と平行な面とし、第2の平面をY−Z平面と平行な面として、説明を行う。
In the next S102, the
図4は、S102にて実行される平面上曲線の自己交差検出処理サブルーチンを示すフローチャートである。このサブルーチンに入って最初のS201では、CPU10は、S101にて生成した点列を、図8に示すように、X−Y平面上の点列(pi={Xi,Yi}:i=0,1,2,…,N)に変換する。即ち、CPU10は、点列を構成する各点の座標値からZ座標の
値を削除することにより、点列(折れ線)を、X−Y平面に投影する。
FIG. 4 is a flowchart showing a self-intersection detection processing subroutine for curved lines on the plane executed in S102. In the first step S201 after entering this subroutine, the
次のS202では、CPU10は、S101にて変換された点列(pi={Xi,Yi}:i=0,1,2,…,N)を構成する各点PiのX座標の値Xiを、サフィックスiの値順に読み込むことによ
り、点列におけるX座標の値Xiが単調増加又は単調減少となってないiの区間を検出する。具体的には、CPU10は、点列の始点p0におけるX座標の値X0に比して二番目の点p1におけるX座標の値X1が増加している場合には、一つ前の点Pi-1におけるX座標の値Xi-1よりもX座標の値Xiが減少している点Piが連なるiの区間を検出する。また、CPU10は、点列の始点p0におけるX座標の値X0に比して二番目の点p1におけるX座標の値X1が減少している場合には、一つ前の点Pi-1におけるX座標の値Xi-1よりもX座標の値Xiが増加している点Pi-1が連なるiの区間を検出する。例えば、図9に示す例では、点列の始点p0におけるX座標の値X0に比して二番目の点p1におけるX座標の値X1が増加しているので、点P2から点P6までの区間が、単調増加でないiの区間として検出される。
In the next S202, the
次のS203では、CPU10は、S202において単調増加又は単調減少でない区間が検出されたか否かを、チェックする。そして、変化が単調でない区間が検出されなかった場合には、CPU10は、S211において、戻り値を“交差なし”として、当該サブルーチンを終了して、処理を図3のルーチンに戻す。
In the next S203, the
これに対して、S202にて単調増加又は単調減少でない区間が検出された場合には、CPU10は、処理をS204へ進める。
On the other hand, when a section that is not monotonically increasing or decreasing is detected in S202, the
S204では、CPU10は、S202において検出された単調でない区間に属する一連の点piについてのX座標の値Xiのうち、最小値Xmin及び最大値Xmaxを求める。そして、CPU10は、X座標の値XiがXmin以上Xmax以下である領域の両外側に近接する各点によって囲まれたiの区間[i_xs,i_xe]を選択する。図9の例では、点p6についてのX座標
の値X6がXminであり、点p2についてのX座標の値X2がXm axであるから、X6以上X2以下で
ある領域の両外側に近接する点p1及び点p7によって囲まれたiの区間[1,7]が選択され
る。
In S204,
次のS205では、CPU10は、S204にて選択したiの区間[i_xs,i_xe]に属
する各点piのY座標の値Yiを、サフィックスiの値順に読み込むことにより、点列(pi_xs〜pi_xe)におけるY座標の値Yiが単調増加又は単調減少となっていないiの区間を検出する。具体的には、CPU10は、S202と同様の手法により、単調増加又は単調減少でないiの区間を検出する。例えば、図10に示す例では、既に点p1から点p7までのiの区間[1,7]が選択されているので、当該区間[1,7]のうち点p4から点p7までの区間が、単調増加でないiの区間として検出される。
In the next S205, the
次のS206では、CPU10は、S205において単調増加又は単調減少でない区間が検出されたか否かを、チェックする。そして、単調でない区間が検出されなかった場合には、CPU10は、S211において、戻り値を“交差なし”として、当該サブルーチンを終了して、処理を図3のルーチンに戻す。
In the next S206, the
これに対して、S205にて単調増加又は単調減少でない区間が検出されたとS206
にて判定した場合には、CPU10は、処理をS207へ進める。即ち、CPU10は、S202,S203,S205,S206を経ることで、投影された折れ線上の点列を順に辿ったならば各仮想平面に設定された二つの座標軸上の値の変化が同じ区間において夫々単調とならない場合に限り、自己交差を検出できることとなる。
On the other hand, when an interval that is not monotonically increasing or decreasing is detected in S205, S206 is detected.
If it is determined in step S10, the
S207では、CPU10は、S205において検出された単調でない区間に属する一連の点piについてのY座標の値Yiのうち、最小値Ymin及び最大値Ymaxを求める。そして、CPU10は、点列(pi_xs〜pi_xe)のうち、Y座標の値YiがYmin以上Ymax以下である領域の両外側に近接する各点によって囲まれたiの区間[i_ys,i_ye]を選択する。図10
の例では、点p7についてのY座標の値Y7がYminであり、点p4についてのY座標の値Y4がYmaxであるから、点p1から点p7までの区間のうち、y7以上y4以下である領域の両外側に近接する点はない。そこで、点p4及び点p7によって囲まれた区間[1,7]そのものが選択され
る。
In S207, the
In this example, Y-coordinate value Y 7 for the point p 7 is Y min, Y-coordinate value Y 4 for the point p 4 is from a Y max, the section from the point p 1 to point p 7 Of these, there is no point close to both outer sides of the region that is y 7 or more and y 4 or less. Accordingly, the interval [1,7] surrounded by point p4 and the point p 7 itself is selected.
次のS208では、サフィックスiが区間[i_ys,i_ye]に属する一連の点pi_ys〜pi_yeを繋ぐ折れ線を構成する全線分から選ばれる二本の線分の全組合せに対して、交差(即
ち、共通座標)の計算を試みる。即ち、CPU10は、X−Y座標系において2本の線分を夫々示す連立方程式の解の算出を、試みる。
In the next S208, the suffix i is the interval [i_ys, i_ye] for all combinations of two line segments selected from all line segments constituting a line connecting a series of points p i_ys ~p i_ye belonging to cross (i.e., Attempt to calculate (common coordinates). That is, the
次のS209では、CPU10は、S208での計算の結果、何れの線分の組合わせについて解(即ち、交差の座標)が算出されたか否かに基づいて、X−Y平面上において自己交差があるかどうかをチェックする。そして、X−Y平面上において自己交差がないと判断した場合には、CPU10は、S211において、戻り値を“交差なし”として、当該サブルーチンを終了して、処理を図3のルーチンに戻す。
In the next step S209, the
これに対して、X−Y平面上において自己交差があるとS209にて判断した場合には、CPU10は、処理をS210へ進める。即ち、CPU10は、S204及びS207を経ることで、何れか一方の座標軸上において、値の変化が単調でない区間の両外側に夫々値を有する二点を選択しする。そして、CPU10は、S208及びS209を経ることで、前記折れ線における前記選択された二点間に存する各線分間の交点を求め、何れか2つの線分間に交点が算出できた場合に限り、自己交差を検出できることとなる。
On the other hand, if it is determined in S209 that there is a self-intersection on the XY plane, the
S210では、CPU10は、“交差あり”及び解が算出された二本の線分を夫々区切る4つの点piを戻り値として、当該サブルーチンを終了して、処理を図3に戻す。
In S210, the
処理が戻された図3では、CPU10は、S102の次のS103において、S102の処理からの戻り値が“交差あり”であったか“交差なし”であったかを、チェックする。そして、戻り値が“交差なし”であった場合には、CPU10は、S108において、戻り値を“交差なし”として、当該サブルーチンを終了して、処理を図2のメインルーチンに戻す。
In FIG. 3 in which the process is returned, the
これに対して、戻り値が“交差あり”であった場合には、CPU10は、処理をS104へ進める。S104では、CPU10は、S101にて生成した点列を、第2の平面(Y−Z平面)に投影した上で(投影手段に相当)、当該第2の平面上に投影した点列を結ぶ折れ線が自己交差を有するかを検出する処理を実行する(平面上自己交差検出手段に相当)。図5は、S104にて実行される平面上曲線の自己交差検出処理サブルーチンを示すフローチャートである。図5のフローチャートは、図4のフローチャートと比較して、点列が投影される平面がY−Z平面であるので、処理の対象となる座標の値が、Y座標の値とZ座標の値である点においてのみ相違する。例えば、図4のS201に相当する図5のS301では、S101にて生成された点列を構成する各点の座標値からX座標の値が
削除されることにより、点列(pi={Xi,Yi,Zi}:i=0,1,2,…,N)がY−Z平面に投影される。その他の点において、図5は、図4と同じなので、その説明を省略する。
On the other hand, if the return value is “with intersection”, the
次のS105では、CPU10は、S104の処理からの戻り値が“交差あり”であったか“交差なし”であったかを、チェックする。そして、戻り値が“交差なし”であった場合には、CPU10は、S108において、戻り値を“交差なし”として、当該サブルーチンを終了して、処理を図2のメインルーチンに戻す。
In the next S105, the
これに対して、戻り値が“交差あり”であった場合には、CPU10は、処理をS106へ進める。S106では、CPU10は、S102(S210)における戻り値に含まれる4つの点piとS104(S310)における戻り値に含まれる4つの点piとが一致しているかどうかを判定する。即ち、CPU10は、当該判定結果に基づいて、第1の平面(X−Y平面)に投影された曲線の交点の位置と第2の平面(Y−Z平面)に投影された曲線の交点の位置とが同じであるか否かを、チェックする。そして、両平面に夫々投影された曲線の交点の位置が同じでなければ、CPU10は、S108において、戻り値を“交差なし”として、当該サブルーチンを終了して、処理を図2のメインルーチンに戻す。
On the other hand, if the return value is “with intersection”, the
これに対して、両平面に夫々投影された曲線の交点の位置が同じであれば、CPU10は、S107において、戻り値を“交差あり”として、当該サブルーチンを終了して、処理を図2のメインルーチンに戻す。以上に説明したS103,S105,S106〜S107が、全ての仮想平面に投影された曲線に含まれる自己交差が検出された場合に、前記三次元曲線モデルに自己交差があると判定する判定手段に相当する。
On the other hand, if the positions of the intersections of the curves projected onto the two planes are the same, the
処理が戻されたメインルーチンでは、CPU10は、S003の次のS004において、S003の処理からの戻り値が“交差あり”であったか“交差なし”であったかを、チェックする。そして、戻り値が“交差なし”であった場合には、CPU10は、三次元曲線モデル生成プログラム16による処理を終了する。
In the main routine to which the process is returned, the
これに対して、戻り値が“交差あり”であったとS004にて判断した場合には、CPU10は、処理をS005へ進める。S005では、CPU10は、S001にて入力された条件を調整することにより、調整後の条件を満たす直線形状を有するハーネス形状の三次元モデルを算出する。S005の完了後、CPU10は、三次元曲線モデル生成プログラム16による処理を終了する。
<作用>
以上に説明した本実施形態によれば、ハーネスの三次元曲線モデルが、第1の面及び第2の面に夫々投影されるとともに、各面に投影された二次元曲線について、夫々自己交差が検出される(S102,S104)。
On the other hand, if it is determined in S004 that the return value is “with intersection”, the
<Action>
According to the present embodiment described above, the three-dimensional curve model of the harness is projected onto the first surface and the second surface, respectively, and the two-dimensional curve projected onto each surface has self-intersection. It is detected (S102, S104).
各面に投影された二次元曲線に対する自己交差の検出では、一方の座標軸上において、単調でない区間が検出されると(S202,S203)、当該軸上において当該単調でない区間の両外側に近接する点によって区切られる区間が、選択される(S204)。その結果、一方の軸上において単調でない区間に重なる区間の全体が、選択される。 In the detection of self-intersection with respect to the two-dimensional curve projected on each surface, if a non-monotonic section is detected on one coordinate axis (S202, S203), it approaches the outer sides of the non-monotonic section on the axis. A section delimited by points is selected (S204). As a result, the entire section that overlaps the non-monotonous section on one axis is selected.
しかし、選択された区間は、ループを形成している可能性もあるが、単に蛇行をしている可能性もある。 However, the selected section may form a loop or may simply meander.
そこで、当該選択された区間について、他方の軸上においても単調でない区間があるか否かが検出される(S205,S206)。他方の軸においても単調でない区間があれば、単純な蛇行に過ぎない場合を排除されるからである。そして、他方の軸上においても単調でない区間が検出された場合には、更に、当該軸上において当該単調でない区間の両外
側に近接する点によって区切られる区間が、選択される(S207)。
Therefore, it is detected whether there is a non-monotonous section on the other axis for the selected section (S205, S206). This is because if there is a section that is not monotonous on the other axis, the case of simple meandering is eliminated. If a non-monotonous section is detected on the other axis, a section delimited by points adjacent to both sides of the non-monotonic section on the axis is further selected (S207).
但し、以上の処理によっても、選択された区間が単に渦巻き状になっているに過ぎない可能性も残される。そこで、念のため、当該区間を構成する各線分について、交差の計算がなされる(S208)。この場合、従来技術と異なり二次元上での計算となるので計算が単純化されるとともに、予め計算をすべき区間が区切られているので、計算量が大幅に減少することになる。なお、三次元曲線モデルを生成するプログラムの特性上、渦巻き状の形状が形成される可能性が低いのであれば、S207〜S208は省略可能である。 However, the above processing also leaves a possibility that the selected section is merely spiral. Therefore, as a precaution, the intersection is calculated for each line segment constituting the section (S208). In this case, unlike the conventional technique, the calculation is performed in two dimensions, so that the calculation is simplified and the section to be calculated is divided in advance, so that the calculation amount is greatly reduced. If the possibility of forming a spiral shape is low due to the characteristics of the program that generates the three-dimensional curve model, S207 to S208 can be omitted.
以上の処理の結果、一方の面のみにおいて自己交差が検出された場合には、三次元曲線モデルが螺旋を描いているに過ぎないと判断されるので、交差がないと最終判断される(S108)。 As a result of the above processing, when a self-intersection is detected on only one surface, it is determined that the three-dimensional curve model is merely a spiral, and therefore it is finally determined that there is no intersection (S108). ).
これに対して、両面において自己交差が検出された場合であっても、各面において自己交差が検出された位置(即ち、交差している線分)が異なる場合には、やはり、三次元曲線モデルが螺旋を描いているに過ぎないと判断される(S106:No)。よって、その場合も、交差がないと最終判断される(S108)。 On the other hand, even if self-intersection is detected on both sides, if the positions where self-intersection is detected on each side (that is, intersecting line segments) are different, the three-dimensional curve is still used. It is determined that the model is merely a spiral (S106: No). Therefore, in this case, it is finally determined that there is no intersection (S108).
これに対して、両面において夫々自己交差が検出され、且つ、各面において自己交差が検出された位置が同じ場合には、三次元曲線モデルが螺旋を描いていると判断される(S106:Yes)。よって、その場合には、交差があると最終判断される(S108)。 On the other hand, when the self-intersection is detected on both surfaces and the position where the self-intersection is detected on each surface is the same, it is determined that the three-dimensional curve model draws a spiral (S106: Yes). ). Therefore, in that case, it is finally determined that there is an intersection (S108).
以上説明したように、本実施形態によると、交差計算の計算量が従来と比して大幅に減少するという利点がある。 As described above, according to the present embodiment, there is an advantage that the calculation amount of the intersection calculation is significantly reduced as compared with the conventional case.
1 コンピュータ
10 CPU
12 入力装置
15 ハードディスク
16 三次元曲線モデル生成プログラム
1
12
Claims (5)
三次元曲線モデルを、相互に異なる方向を向いた複数の仮想平面に夫々投影する投影手段,
前記各仮想平面において、投影された曲線に含まれる自己交差を夫々検出する平面上自己交差検出手段,及び、
前記平面上自己交差検出手段により、全ての仮想平面に投影された曲線に含まれる自己交差が検出された場合であって、且つ、前記各仮想平面において自己交差が検出された位置が同じ場合には、前記三次元曲線モデルに自己交差があると判定する判定手段
として機能させる三次元曲線モデルにおける自己交差の検出プログラム。 Computer
Projection means for projecting a three-dimensional curve model onto a plurality of virtual planes facing different directions,
Self-intersection detecting means on the plane for detecting self-intersection included in the projected curve in each virtual plane, and
When self-intersections included in curves projected on all virtual planes are detected by the self-intersection detection unit on the plane, and the positions where the self-intersections are detected in the respective virtual planes are the same A program for detecting a self-intersection in a three-dimensional curve model that functions as a determination unit that determines that the three-dimensional curve model has a self-intersection.
前記平面上自己交差検出手段は、各仮想平面において、投影された折れ線上の点列を順に辿ったならば各仮想平面に設定された二つの座標軸上の値の変化が同じ区間において夫々単調とならない場合に、投影された曲線に自己交差が検出できたとする
ことを特徴とする請求項1記載の三次元曲線モデルにおける自己交差の検出プログラム。 The projecting means projects the three-dimensional model onto the plurality of virtual planes as a broken line composed of a plurality of linear segments separated by a plurality of point sequences,
The on-plane self-intersection detection means, in each virtual plane, if the point sequence on the projected polygonal line is traced in order, the change in values on the two coordinate axes set in each virtual plane is monotonous in the same section. 2. The self-intersection detection program for a three-dimensional curve model according to claim 1, wherein self-intersection can be detected in the projected curve when it is not.
ことを特徴とする請求項2記載の三次元曲線モデルにおける自己交差の検出プログラム。 The on-plane self-intersection detection means, in each virtual plane, if the point sequence on the projected polygonal line is traced in order, the change in values on the two coordinate axes set in each virtual plane is monotonous in the same section. And two points having values close to both outer sides of a section where the change in value is not monotonous on any one of the coordinate axes, and exists between the selected two points in the broken line 3. The three-dimensional curve model according to claim 2, wherein the intersection between each line segment is obtained, and the self-intersection can be detected in the projected curve only when the intersection can be calculated in any two line segments. Self-intersection detection program.
前記判定手段は、前記平面上自己交差検出手段により、全ての仮想平面に投影された曲線に含まれる自己交差が検出された場合であり、且つ、前記平面上自己交差検出手段により各仮想平面について特定された前記交点が算出できた二つの線分が一致する場合にのみ
、前記三次元曲線モデルに自己交差があると判定する
ことを特徴とする請求項3記載の三次元曲線モデルにおける自己交差の検出プログラム。 The self-intersection detecting means on the plane further specifies two line segments for which intersection points can be calculated,
The determination means is a case where a self-intersection included in a curve projected on all virtual planes is detected by the self-intersection detection means on the plane, and each virtual plane is detected by the self-intersection detection means on the plane. 4. The self-intersection in the three-dimensional curve model according to claim 3, wherein it is determined that the three-dimensional curve model has a self-intersection only when two line segments for which the specified intersection point can be calculated match. Detection program.
前記各仮想平面において、投影された曲線に含まれる自己交差を夫々検出し、
全ての仮想平面に投影された曲線に含まれる自己交差が検出された場合であって、且つ、前記各仮想平面において自己交差が検出された位置が同じ場合には、前記三次元曲線モデルに自己交差があると判定する
ことを特徴とする三次元曲線モデルにおける自己交差の検出方法。
The computer projects the 3D curve model onto a plurality of virtual planes facing different directions,
In each of the virtual planes, self-intersections included in the projected curves are detected, respectively.
When self-intersections included in curves projected on all virtual planes are detected and the positions where self-intersections are detected in the respective virtual planes are the same, the self-intersection is added to the three-dimensional curve model. A method for detecting self-intersection in a three-dimensional curve model, characterized by determining that there is an intersection.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009217093A JP5407695B2 (en) | 2009-09-18 | 2009-09-18 | Self-intersection detection program and self-intersection detection method in 3D curve model |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009217093A JP5407695B2 (en) | 2009-09-18 | 2009-09-18 | Self-intersection detection program and self-intersection detection method in 3D curve model |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011065534A JP2011065534A (en) | 2011-03-31 |
JP5407695B2 true JP5407695B2 (en) | 2014-02-05 |
Family
ID=43951686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009217093A Expired - Fee Related JP5407695B2 (en) | 2009-09-18 | 2009-09-18 | Self-intersection detection program and self-intersection detection method in 3D curve model |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5407695B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6094933B1 (en) * | 2015-10-02 | 2017-03-15 | 株式会社ミスミ | Design support system, design support program, and design support method |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0991332A (en) * | 1995-09-28 | 1997-04-04 | Toyota Motor Corp | Method and device for generating and correcting cross-section data |
JPH09292873A (en) * | 1996-04-25 | 1997-11-11 | Sumitomo Metal Ind Ltd | Figure drawing device for variable line width character information |
JP3845477B2 (en) * | 1996-07-19 | 2006-11-15 | 大日本印刷株式会社 | Graphic operation unit |
JPH1115857A (en) * | 1997-06-24 | 1999-01-22 | Oki Electric Ind Co Ltd | Device and method for detecting interference component in two-dimensional cad |
JPH11149574A (en) * | 1997-11-19 | 1999-06-02 | Nippon Telegr & Teleph Corp <Ntt> | Method for displaying three-dimensional line drawing and recording medium for recording the method |
US20100017007A1 (en) * | 2008-07-18 | 2010-01-21 | Wolfgang Seibold | Apparatus and Method For Designing an Electrode Shape for an Electrical Discharge Machining Process |
-
2009
- 2009-09-18 JP JP2009217093A patent/JP5407695B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011065534A (en) | 2011-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
USRE48940E1 (en) | Simulation of the machining of a workpiece | |
JP6249936B2 (en) | Method and system for generating trajectories | |
EP2187325B1 (en) | Garment fit simulation device, garment fit simulation method and garment fit simulation program | |
JP2003150980A (en) | Video game device, display method of character in video game, program, and recording medium | |
JP5195641B2 (en) | Harness verification device and harness verification program | |
JP5650021B2 (en) | Three-dimensional environment restoration apparatus, processing method thereof, and program | |
CN103679792A (en) | Rendering method and system for three-dimensional models | |
JP5407695B2 (en) | Self-intersection detection program and self-intersection detection method in 3D curve model | |
JP5625700B2 (en) | Three-dimensional CAD program, apparatus, and three-dimensional CAD processing method | |
JP2010152863A (en) | System and method for extracting boundary node, and program | |
WO2008026752A1 (en) | Information processing method and information processing apparatus | |
JP4915518B2 (en) | Three-dimensional model display device, program and method thereof | |
JP5290138B2 (en) | Mesh changing device, mesh changing method, and program | |
JP4997265B2 (en) | Component part data simplification device, component part data simplification method, and component part data simplification program | |
JP4622987B2 (en) | Tool reference plane data creation device and creation method | |
JP7285660B2 (en) | DIMENSION GENERATION DEVICE, DIMENSION GENERATION METHOD AND PROGRAM | |
JP2007272397A (en) | Design support device, design support method, and program | |
JP2004094750A (en) | Three-dimensional configuration processor, interference model detecting method, program and storage medium | |
WO2023013042A1 (en) | Interference check device | |
JP6559434B2 (en) | GAME PROGRAM AND GAME DEVICE | |
JP2003271687A (en) | Device and method for detecting interference model and memory medium | |
JP5842460B2 (en) | Drawing creation program, apparatus and processing method | |
JP2755398B2 (en) | Point inside / outside judgment processing method for solid model | |
KR100876641B1 (en) | Contact perception method and the system which use the subshell | |
JP2004062546A (en) | Three dimensional shape processing device and interference model detecting method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120605 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130205 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130416 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130611 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20131008 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131021 |
|
LAPS | Cancellation because of no payment of annual fees |