JP2006039668A - フィレット面を算出する方法およびプログラム - Google Patents
フィレット面を算出する方法およびプログラム Download PDFInfo
- Publication number
- JP2006039668A JP2006039668A JP2004214607A JP2004214607A JP2006039668A JP 2006039668 A JP2006039668 A JP 2006039668A JP 2004214607 A JP2004214607 A JP 2004214607A JP 2004214607 A JP2004214607 A JP 2004214607A JP 2006039668 A JP2006039668 A JP 2006039668A
- Authority
- JP
- Japan
- Prior art keywords
- circle
- calculating
- contact
- intersection
- line
- 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.)
- Pending
Links
Images
Abstract
【課題】R頂点近傍の形状を維持しつつ、より滑らかに2面を接続するフィレット面を生成する。
【解決手段】第1の面10および第2の面11の稜線12を垂直に横切る法平面14を求め、該法平面と第1および第2の面の交線AおよびBを求める。ユーザにより、半径R、R止まり位置の後退量、およびR頂点位置の後退量が指定される。円21と第1および第2の交線AおよびBのR止まり位置R1およびR1’を、指定された後退量に従って後退させ、点R2およびR2’を求める。また、円21のR頂点位置P1を、指定された後退量に従って後退させ、点P2を求める。点R2、点P2、および点R2’を滑らかに通るように、フィレット曲線を描く。すべての法平面について求めたフィレット曲線に基づき、第1および第2の面に滑らかに接触するフィレット面を求める。
【選択図】図4
【解決手段】第1の面10および第2の面11の稜線12を垂直に横切る法平面14を求め、該法平面と第1および第2の面の交線AおよびBを求める。ユーザにより、半径R、R止まり位置の後退量、およびR頂点位置の後退量が指定される。円21と第1および第2の交線AおよびBのR止まり位置R1およびR1’を、指定された後退量に従って後退させ、点R2およびR2’を求める。また、円21のR頂点位置P1を、指定された後退量に従って後退させ、点P2を求める。点R2、点P2、および点R2’を滑らかに通るように、フィレット曲線を描く。すべての法平面について求めたフィレット曲線に基づき、第1および第2の面に滑らかに接触するフィレット面を求める。
【選択図】図4
Description
この発明は、コンピュータにより実施される、3次元形状モデルにおいてフィレット面を算出する方法およびそのプログラムに関する。
従来から、コンピュータを用いたCADシステムにおいて、3次元形状モデルの生成および加工などの処理が行われている。このようなシステムにおいて、任意の形状を有する2つの面を滑らかに接続する面、すなわちフィレット面の作成を要する場合がある。
下記の特許文献1に示される方法によれば、第1の面および第2の面の交線(以下、稜線と呼ぶ)を垂直に切断する平面を複数求める。該切断平面と第1の面との第1の交線、および該切断平面と第2の面との第2の交線を、それぞれ、該切断平面上において、法線方向にオフセットする。2つのオフセット曲線の交点を中心として、第1の交線上の点および第2の交線上の点を両端とする円弧を描く。すべての切断平面について、該円弧を生成する。該生成された円弧の端点を接続して、フィレット面を生成する。
下記の特許文献2には、上記の円弧の半径(以下、丸め半径と呼ぶ)を徐々に変化させることができるフィレット面作成手法が記載されている。
下記の特許文献3には、フィレット面を生成する際、丸め半径および稜線などの生成パラメータの指定を可能にする手法が記載されている。生成パラメータの変更が行われたならば、該変更された生成パラメータに従って、フィレット面を再生成し表示する。
下記の特許文献4には、所定の丸め半径によるフィレット面の一部が第1および第2の面の外側にはみ出す場合、該2つの面の少なくとも一方の一部を延長した補助面を用いて、該2つの面からはみ出す仮フィレット面を生成することが記載されている。仮フィレット面が該2つの面からはみ出す位置において該仮フィレット面を切断し、該2つの面に収まるフィレット面を生成する。
特公平7−67658号公報
特開平4−220774号公報
特開2001−92866号公報
特開2001−222560号公報
フィレット面は、従来の手法に示されるように、2つの面を、所定の丸め半径Rで滑らかに接続する。フィレット面の設計者は、該丸め半径Rを指定することにより、フィレット面の形状を特徴づける。具体的には、フィレット面のカーブ度合いが、丸め半径Rにより特徴づけられる。
従来の手法によると、丸め半径Rのみに基づいてフィレット面の形状を特徴づけるので、フィレット面が該2つの面に接する箇所において、滑らかさに欠けることがあった。
また、丸め半径Rにより、フィレット面の頂点近傍の形状が特徴づけられるが、この頂点近傍の形状を維持することが望まれる場合がある。たとえば、フィレット面を利用して二輪車等のヘッドライトを設計しようとするとき、光学的観点から、丸め半径Rに従って描かれるフィレット面の頂点近傍の形状を維持したまま、様々なフィレット面のシミュレーションを実施したいという要請がある。該頂点近傍の形状は、ヘッドライトの光線の光学的特性に影響しやすいので、該形状を維持することができれば、該ヘッドライトおよび関連する光学的構成要素の設計を容易にすることができる。
この発明は、丸め半径Rに従うフィレット面の頂点近傍の形状を維持しつつ、フィレット面の2つの面に対する接触がより滑らかになるようフィレット面を作成することを目的とする。さらに、この発明は、フィレット面の2つの面に対する接触の滑らかさを、設計者が容易に調整しながら、フィレット面を作成することができるようにすることを目的とする。
本発明の一形態によると、第1の面および第2の面をつなぐフィレット面を算出する方法は、3次元形状データを処理するコンピュータシステムの処理装置により実行され、
(a)第1の面(10)および第2の面(11)の稜線(12)を定義するステップと、
(b)稜線上の複数の箇所において、該稜線を垂直に横切る法平面(14)を算出するステップと、
(c)法平面と第1の面の第1の交線(A)および法平面と第2の面の第2の交線(B)を算出するステップと、
(d)コンピュータシステムの入力装置を介してユーザにより入力された半径R、R止まり位置の後退量、およびR頂点位置の後退量を受け取り、該コンピュータシステムの記憶装置に記憶するステップと、
(e)記憶装置から半径Rを抽出し、該半径Rを持ち、かつ第1の交線および第2の交線に接する第1の円(21)を算出するステップと、
(f)記憶装置からR止まり位置の後退量(X)を抽出し、第1の円(21)と第1の交線(A)の第1の接点(R1)、および第1の円(21)と第2の交線(B)の第2の接点(R1’)を、該R止まり位置の後退量に従って稜線から離れる方向に後退させた第1の後退位置(R2)および第2の後退位置(R2’)を、それぞれ算出するステップと、
(g)第1の接点(R1)における第1の円の第1の接線(22)と、第2の接点(R1’)における第1の円の第2の接線(23)との交点(Q)を算出し、該交点と、第1の円の中心(O)とを結ぶ線を中心線として算出するステップと、
(h)中心線と第1の円との第1の交点(P1)を算出するステップと、
(i)記憶装置からR頂点位置の後退量(Y)を抽出し、第1の交点(P1)を、中心線(OQ)に沿って該R頂点位置の後退量だけ、稜線から離れる方向に後退させ、後退頂点位置(P2)を算出するステップと、
(j)第1の後退位置(R2)、後退頂点位置(P2)、および第2の後退位(R2’)を滑らかに通るように、フィレット曲線を算出するステップと、
(k)複数の法平面上で求められたフィレット曲線に基づいて、フィレット面を算出するステップと、を含む。
(a)第1の面(10)および第2の面(11)の稜線(12)を定義するステップと、
(b)稜線上の複数の箇所において、該稜線を垂直に横切る法平面(14)を算出するステップと、
(c)法平面と第1の面の第1の交線(A)および法平面と第2の面の第2の交線(B)を算出するステップと、
(d)コンピュータシステムの入力装置を介してユーザにより入力された半径R、R止まり位置の後退量、およびR頂点位置の後退量を受け取り、該コンピュータシステムの記憶装置に記憶するステップと、
(e)記憶装置から半径Rを抽出し、該半径Rを持ち、かつ第1の交線および第2の交線に接する第1の円(21)を算出するステップと、
(f)記憶装置からR止まり位置の後退量(X)を抽出し、第1の円(21)と第1の交線(A)の第1の接点(R1)、および第1の円(21)と第2の交線(B)の第2の接点(R1’)を、該R止まり位置の後退量に従って稜線から離れる方向に後退させた第1の後退位置(R2)および第2の後退位置(R2’)を、それぞれ算出するステップと、
(g)第1の接点(R1)における第1の円の第1の接線(22)と、第2の接点(R1’)における第1の円の第2の接線(23)との交点(Q)を算出し、該交点と、第1の円の中心(O)とを結ぶ線を中心線として算出するステップと、
(h)中心線と第1の円との第1の交点(P1)を算出するステップと、
(i)記憶装置からR頂点位置の後退量(Y)を抽出し、第1の交点(P1)を、中心線(OQ)に沿って該R頂点位置の後退量だけ、稜線から離れる方向に後退させ、後退頂点位置(P2)を算出するステップと、
(j)第1の後退位置(R2)、後退頂点位置(P2)、および第2の後退位(R2’)を滑らかに通るように、フィレット曲線を算出するステップと、
(k)複数の法平面上で求められたフィレット曲線に基づいて、フィレット面を算出するステップと、を含む。
本発明の一実施形態によると、上記のステップ(f)は、さらに、
(f1)記憶装置からR止まり位置の後退量を抽出し、第1の接点(R1)を、第1の接線(22)に沿って、該R止まり位置の後退量(X)だけ稜線(12)から離れる方向にシフトし、該シフトにより得られた点(R3)から第1の交線(A)への垂線の交点を、第1の後退位置(R2)として算出するステップと、
(f2)第1の後退位置(R2)を通り、かつ第2の交線(B)に接する第2の円(33)を算出するステップと、
(f3)第2の円が前記第2の交線と接する点(R2’)を、第2の後退位置として算出するステップと、
(f4)第2の円(33)と中心線(OQ)との第2の交点(P1’)を算出し、第1の交点(P1)と第2の交点(P1’)との間の距離を、R頂点位置の後退量についての限界値に設定するステップと、
(f5)R頂点位置の後退量(Y)を、該限界値以下に制限するステップと、を含む。
(f1)記憶装置からR止まり位置の後退量を抽出し、第1の接点(R1)を、第1の接線(22)に沿って、該R止まり位置の後退量(X)だけ稜線(12)から離れる方向にシフトし、該シフトにより得られた点(R3)から第1の交線(A)への垂線の交点を、第1の後退位置(R2)として算出するステップと、
(f2)第1の後退位置(R2)を通り、かつ第2の交線(B)に接する第2の円(33)を算出するステップと、
(f3)第2の円が前記第2の交線と接する点(R2’)を、第2の後退位置として算出するステップと、
(f4)第2の円(33)と中心線(OQ)との第2の交点(P1’)を算出し、第1の交点(P1)と第2の交点(P1’)との間の距離を、R頂点位置の後退量についての限界値に設定するステップと、
(f5)R頂点位置の後退量(Y)を、該限界値以下に制限するステップと、を含む。
本発明の一実施形態によると、上記のステップ(j)は、さらに、
(j1)後退頂点位置(P2)を通るように、第1の円(21)を中心線(OQ)に沿って後退させた円を、後退円(35)として算出するステップと、
(j2)第1の後退位置(R2)を通り、かつ後退円(35)に接する第3の円(37)を算出するステップと、
(j3)第3の円(37)と後退円(35)との接点を第3の接点(S1)として算出するステップと、
(j4)第2の後退位置(R2’)を通り、かつ後退円(35)に接する第4の円(38)を算出するステップと、
(j5)第4の円(38)と後退円(35)との接点を第4の接点(S1’)として算出するステップと、
(j6)第3の円(37)に沿って第1の後退位置(R2)と第3の接点(S1)との間を接続し、後退円(35)に沿って第3の接点(S1)と第4の接点(S1’)との間を接続し、第4の円(38)に沿って第4の接点(S1’)と第2の後退位置(R2’)とを接続して、フィレット曲線を算出するステップと、を含む。
(j1)後退頂点位置(P2)を通るように、第1の円(21)を中心線(OQ)に沿って後退させた円を、後退円(35)として算出するステップと、
(j2)第1の後退位置(R2)を通り、かつ後退円(35)に接する第3の円(37)を算出するステップと、
(j3)第3の円(37)と後退円(35)との接点を第3の接点(S1)として算出するステップと、
(j4)第2の後退位置(R2’)を通り、かつ後退円(35)に接する第4の円(38)を算出するステップと、
(j5)第4の円(38)と後退円(35)との接点を第4の接点(S1’)として算出するステップと、
(j6)第3の円(37)に沿って第1の後退位置(R2)と第3の接点(S1)との間を接続し、後退円(35)に沿って第3の接点(S1)と第4の接点(S1’)との間を接続し、第4の円(38)に沿って第4の接点(S1’)と第2の後退位置(R2’)とを接続して、フィレット曲線を算出するステップと、を含む。
また、他の一形態では、この発明は、コンピュータに上記手法を実現させるコンピュータ・プログラムである。
この発明によれば、R止まり位置(第1の円と、第1および第2の交線との接点)を後退させた点(第1および第2の後退位置)を通るようフィレット曲線が描かれるので、フィレット面の第1および第2の面に対する接触を、より滑らかにすることができる。また、第1の円を後退させた後退円に沿ってフィレット曲線が描かれるので、該R頂点近傍の形状が、フィレット面に維持される。R止まり位置の後退量およびR頂点位置の後退量を、ユーザ入力により指定することができるので、フィレット面の頂点近傍の形状を維持しながら、フィレット面の滑らかさを調整して、所望の形状のフィレット面を生成することができる。
次に図面を参照してこの発明の実施の形態を説明する。図1は、本発明の一実施例に従う、3次元形状処理のためのコンピュータシステム1のブロック図を示す。記憶装置3には、3次元形状モデルに関するデータ、および該データを処理するためのプログラムが記憶されている。処理装置2はCPU(プロセッサ)を備えており、記憶装置3に記憶されたプログラムに従って、記憶装置3に記憶されたデータを用い、3次元形状モデルに関する様々な処理(生成、加工等)を実行する。記憶装置3は、ROM(読み出し専用メモリ)およびRAM(ランダムアクセスメモリ)などのメモリ、およびハードディスク装置などの補助記憶装置を含むことができる。
入力装置4は、キーボードおよびマウスを備えることができる。入力装置4は、ユーザに対する入力インターフェースを提供する。入力装置4を介して、ユーザは、該3次元形状処理システムにデータおよびコマンド(命令)を入力することができる。処理装置2は、入力装置4を介して入力されたデータおよびコマンドを受け取り、3次元形状モデルに関する様々な処理を実行する。
表示装置5は、CRTなどのディスプレイを備え、処理装置2によって処理された結果、および入力装置4を介して入力されたデータなどを、ユーザに表示することができる。ユーザは、表示装置5上に表示された3次元形状モデルを参照しながら、該3次元形状モデルに関する様々な処理を処理装置2に実行させることができる。
図示されていないが、プリンタなどの他の周辺装置を3次元形状処理システム1に含めることができる。また、3次元形状処理システム1をネットワーク上のサーバに設け、該システム1を、遠隔のコンピュータにより該ネットワークを介してアクセス可能なように構成することができる。遠隔のコンピュータは、該システム1から所望の3次元形状モデルデータを抽出して、自身のコンピュータ上で、それらを処理することができる。
図2は、本願発明に従うフィレット面を算出するプロセスのフローチャートを示す。該プロセスは、記憶装置3に記憶されたプログラムを処理装置2が実行することにより実現される。図3は、該プロセスに従って作成されるフィレット面の一例を示す。図3を参照しながら、図2のプロセスを説明する。
記憶装置3には、3次元形状モデルのデータが格納されている。ユーザは、これらの3次元形状モデルのデータを、表示装置5に表示させることができる。ユーザは、入力装置4を介して、表示装置5上に表示された3次元形状モデルのデータから、第1の面10および第2の面11を選択することができる。図3の(a)に、一例として、該2つの面が示されている。図では、第1および第2の面は平面のように示されているが、これらは曲面でもよい。ステップS1において、処理装置2は、入力装置4を介して入力された、該第1の面10および第2の面11の選択を受け取る。処理装置2は、選択された2つの面を、表示装置5上に表示させることができる。
ユーザは、表示装置5上に表示された第1の面10および第2の面11を参照しながら、入力装置4を介して、フィレット面を作成する方向を指定することができる。図3の(a)の例では、フィレット面を作成することができる方向として、D1からD4の4つの方向がある。この実施例では、方向D1にフィレット面を作成する。処理装置2は、ステップS2において、ユーザにより指定された方向D1を受け取り、フィレット面作成方向D1を、第1および第2の面10および11に関連づけて記憶装置3に記憶する。
ユーザは、表示装置5上に表示された第1の面10および第2の面11を参照しながら、入力装置4を介して、稜線12を指定することができる。たとえばマウスによるクリックにより、稜線となるラインを指定することができる。稜線12は、第1の面10と第2の面11とが交差する線を規定する。第1の面10と第2の面11が実際には交差していない場合には、第1の面10を延長した面と、第2の面11の延長した面とが交差する線を、稜線12として指定することができる。また、ユーザが、表示装置5上に表示された第1の面10および第2の面11の位置を調整しながら、稜線12の位置を調整してもよい。処理装置2は、指定された稜線12を表す式を、第1および第2の面10および11に関連づけて記憶装置3に記憶する。
ステップS4において、処理装置2は、図3の(a)の点13a、13b、、、に示されるように、稜線12を所定間隔に区切る。それぞれの点13a、13b、、、は、その位置と共に記憶装置3に記憶される。ステップS5において、処理装置2は、それぞれの点13a、13b、、、において、稜線12を垂直方向に切断する平面、すなわち法平面を定義する。図3の(b)には、一例として、点13aにおける法平面14が示されている。定義された法平面を表す式は、それぞれの点13a、13b、、、に関連づけられて、記憶装置3に記憶される。
ステップS6において、処理装置2は、法平面14と第1の面10との交線Aを算出し、さらに、法平面14と第2の面11との交線Bを算出する。交線AおよびBを表す式は、法平面14と関連づけられて、記憶装置3に記憶される。
ステップS7において、処理装置2は、図3の(b)に示されるような、法平面14上で、交線AおよびBを接続するフィレット曲線15を算出するルーチンを実行する。このルーチンの詳細については、後述される。
ステップS8において、すべての法平面においてフィレット曲線が算出されたかどうかを判断する。最初にこのステップを実行するときは、この判断がNoであるので、ステップS7に戻り、次の法平面(点13bに関連づけられた法平面)について、フィレット曲線を算出するルーチンを実行する。
すべての法平面についてフィレット曲線が算出されると、ステップS8の判断がYesになる。ステップS9に進み、すべての法平面についてのフィレット曲線を通るよう、フィレット面16(網掛けで示されている)を求める。
本願発明は、フィレット曲線を算出する新たな手法を提案する。本願発明に従う手法は、図2のステップS7のルーチンで実行される。
まず、発明の理解を助けるため、図4を参照して、本願発明の原理を説明する。図には、本願発明の一実施例に従って生成されたフィレット曲線15が示されている。
フィレット曲線を生成する際に、3つのパラメータが、ユーザにより指定されることができる。第1のパラメータは、R値である。R値は、交線AおよびBに接する円21の半径を示す。R値を指定することにより、交線AおよびBに接する円21が一義的に定まる。
第2のパラメータは、R止まり位置の後退量である。R止まり位置は、円21の交線AおよびBの接点であり、R1およびR1’でそれぞれ示されている。R止まり位置R1およびR1’における円21の接線が、22および23でそれぞれ表されている。R止まり位置の後退量は、R止まり位置R1およびR1’を、接線22および23に沿って、それぞれ、矢印方向26(稜線12から離れる方向)に後退させる量を示す。後退させることにより得られる点R3およびR3’から、交線AおよびBに垂線をおろし、該垂線と交線AおよびBとの交点が、R2およびR2’でそれぞれ表されている。
この実施例では、接線22および23の交点Qを求め、該交点QとR止まり位置R1との距離に対する割合で、後退量を指定する。後退量をXとすると、以下の式(1)が成立する。
交点Qと点R3間の距離:交点Qと点R1間の距離=X:1
ただし、X>1 (1)
点R3’についても、同様の式が成立する。
ただし、X>1 (1)
点R3’についても、同様の式が成立する。
第3のパラメータは、R頂点位置の後退量である。R頂点位置は、円21と直線OQ(これは、円21の中心Oと交点Qとを結ぶ線)との交点を示しており、図ではP1で表されている。R頂点位置の後退量は、R頂点位置P1を、直線OQに沿って、矢印方向27(稜線12から離れる方向)に後退させる量を示す。後退させることにより得られる点が、P2で表されている。
この実施例では、所定の後退限界値に対する割合で、R頂点位置の後退量を指定する。後退量をYとすると、以下の式(2)が成立する。
点P1と点P2間の距離:後退限界値=Y:1 ただし、0<Y<1 (2)
後退限界値の求め方は、後述される。
後退限界値の求め方は、後述される。
フィレット曲線15は、点R2、P2およびR2’を滑らかに通るよう描かれる。
従来、フィレット曲線は、R値のみに基づいて、その形状、特にその滑らかさが特徴づけられていた。R値のみに基づくので、フィレット曲線と、第1および第2の面10および11との接続部分における滑らかさが十分でない場合があった。また、R値のみでフィレット曲線を特徴づけようとすると、生成されるフィレット曲線の形状が限定される。前述したように、たとえば光学的観点から、R頂点近傍の形状が維持されるように、フィレット曲線を生成することが望まれることがある。
本願発明によれば、点R2およびR2’は、円21の止まり位置R1およびR1’をそれぞれ後退させたものなので、交線AおよびBに対して、フィレット曲線15をより滑らかに接触させることができる。点P2が、R頂点位置P1を後退させたものなので、R頂点近傍の形状を、フィレット曲線15に維持することができる。また、R止まり位置の後退量およびR頂点位置の後退量を、ユーザが所望の値に設定することができる。これら2つの値を調整することにより、R頂点近傍の形状を維持しながら、フィレット曲線15のリブ(カーブ)を、様々な形状に調整することができる。
図5は、図2のステップS7で実施される、フィレット曲線を算出するプロセスのフローチャートである。該プロセスは、記憶装置3に記憶されたプログラムに従い、処理装置2によって実施される。該プロセスを、図6〜図10を参照しつつ説明する。
ユーザは、表示装置5上に、パラメータ入力のための画面を表示させ、入力装置4を介して、フィレット曲線に関するパラメータを入力することができる。図6は、このような画面の一例を示す。入力されるパラメータは、前述したように、R値、R止まり位置の後退量、およびR頂点位置の後退量である。
符号101に示されるボックスに入力されるのが、円21の半径Rを示すR値である。符号102に示されるボックスに入力されるのが、上記のR止まり位置の後退量Xをパーセンテージで表した値である。後退させない時、後退量は100%である。後退量の上限は、200%と示されているが、これは一例であり、他の値を設定することもできる。
符号103で示されるボックスに入力されるのが、上記のR頂点位置の後退量Yをパーセンテージで表した値である。後退させない時、後退量は0%である。後退量の上限は、所定の後退限界値であり、後退限界値を設定する手法については後述される。
ユーザによるOKボタンのクリックに応答して、処理装置2は、これらの入力されたパラメータを受け取り、記憶装置3に記憶する。
ステップS22において、処理装置2は、入力パラメータとして記憶されたR値を記憶装置3から読み出し、図7の(a)に示されるように、交線AおよびBを、法平面14上で法線方向に該R値だけオフセットする。オフセット曲線A’およびB’の交点Oを算出し、該交点Oを中心とした半径Rの円21を表す式を算出する。円21における交線AおよびB上の点R1およびR1’の位置(R止まり位置)を算出する。これらの算出された円21の式、点R1およびR1’の位置は、記憶装置3に記憶される。
ステップS23において、図7の(b)に示されるように、処理装置2は、R止まり位置R1およびR1’における接線22および23を表す式を算出し、該接線22および23の交点Qを求める。こうして、円21の中心Oと交点Qとを結ぶ直線OQを表す式を算出する。
ステップS24において、円21を表す式と、直線OQを表す式とに基づいて、円21と直線OQの交点P1(R頂点位置)を算出する。
ステップS25において、処理装置2は、記憶装置3から、ユーザによって指定されたR止まり位置の後退量パラメータXを抽出し、以下の式(3)のように、点R1を後退させる距離を求める。
後退距離(点R1と点R3間距離)=(点Qと点R1間の距離)×(X−1)
(3)
図8の(a)に示すように、交線Aに沿って、R止まり位置R1を、該算出した後退距離だけ後退させ、該後退により得られる点R3の位置を算出する。点R3から交線Aに垂線をおろし、該垂線と交線Aの交点R2を求める。点R2の位置が、記憶装置3に記憶される。
(3)
図8の(a)に示すように、交線Aに沿って、R止まり位置R1を、該算出した後退距離だけ後退させ、該後退により得られる点R3の位置を算出する。点R3から交線Aに垂線をおろし、該垂線と交線Aの交点R2を求める。点R2の位置が、記憶装置3に記憶される。
ステップS26において、処理装置2は、図8の(b)に示されるように、点R2を通り、かつ交線Bに接する円33を求める。該円33を表す式は、記憶装置3に記憶される。
ステップS27において、処理装置2は、円33と交線Bが接する点R2’、および、円33と直線OQとの交点P1’の位置を算出する。点R2’および交点P1’の位置は、記憶装置3に記憶される。
点P1と点P1’間の距離が、前述した後退限界値を表す。ステップS28において、処理装置2は、該後退限界値を算出して、記憶装置3に記憶する。
円33を描くのは、該後退限界値を規定する点P1’を求めるためである。R頂点位置P1が後退限界値を超えて後退すると、R頂点近傍の形状をフィレット面において維持することができないおそれがある(その理由については、後述される)。したがって、R頂点位置の後退量を、後退限界値により制限する。
代替的に、点R1’と同様の手法で点R2’を求めてもよい。すなわち、R止まり位置R1’を、指定された後退量Xだけ接線23に沿って後退させて点R3’を求め、該点R3’から交線Bへの垂線の交点を、R2’として求めることができる。
ステップS29において、処理装置2は、記憶装置3から、ユーザによって指定されたR頂点位置の後退量パラメータY、およびステップS28で算出された後退限界値を抽出する。処理装置2は、式(4)に示すように、後退限界値に後退量パラメータを乗算することにより、R頂点位置を後退させる距離を求める。
R頂点位置の後退距離(P1とP2間の距離)=後退限界値×Y
(4)
処理装置2は、図9の(a)に示されるように、円21を、該算出した後退距離だけ後退させ、円35(後退円と呼ぶ)を求める。該後退により、R頂点位置P1は点P2に移動する。後退円35を表す式および点P2の位置は、記憶装置3に記憶される。
(4)
処理装置2は、図9の(a)に示されるように、円21を、該算出した後退距離だけ後退させ、円35(後退円と呼ぶ)を求める。該後退により、R頂点位置P1は点P2に移動する。後退円35を表す式および点P2の位置は、記憶装置3に記憶される。
代替的に、R頂点位置P1を後退させることにより点P2の位置を算出し、該点P2の位置を用いて、後退円35を表す式を算出するようにしてもよい。
ステップ30において、点R2を通り、かつ後退円35に接する接円37を求める。同様に、点R2’を通り、かつ後退円35に接する接円38を求める。接円37と後退円35との接点S1、および接円38と後退円35との接点S1’の位置を求める。これらの接円37および38を表す式、および接点S1およびS1’の位置は、記憶装置3に記憶される。
ステップS31において、図10に示されるように、接円37の円周に沿った点R2〜点S1の円弧と、後退円35の円周に沿った点S1〜点S1’の円弧と、接円38の円周に沿った点S1’〜点R2’とを接続することにより、フィレット曲線15を生成する。
フィレット曲線15を参照すると、点S1〜点S1’をつなぐ曲線は、円21を後退させた円35の円周なので、円21のR頂点位置P1近傍の形状はフィレット曲線15において維持されている。また、R止まり点R1およびR1’を後退させた点R2およびR2’において、第1および第2の交線AおよびBに接するので、フィレット曲線15から交線AおよびBに対する傾きがより滑らかになる。R止まり位置の後退量およびR頂点位置の後退量を調整しながら、この滑らかさを細かく調整することが可能となる。
図11を参照して、後退限界値が点P1’により規定される理由を述べる。図11の(a)では、R頂点位置が点P1’にまで後退している。点P1’を通る後退円が、符号35で表されている。
点R2を通り、かつ後退円35に接する接円37を求め、さらに、点R2’を通り、かつ後退円35に接する接円38を求める。接円37と後退円35の接点S1、および接円38と後退円35の接点S1’が、点P1’に重なる。点R2〜P1’〜R2’を接続して、フィレット曲線15を生成することができる。該フィレット曲線15では、R頂点P1近傍の形状は維持されない。
図11の(b)を参照すると、R頂点位置が点P1’を超えて点P3まで後退している。点P3を通る後退円が、符号35で表されている。
点R2を通り、かつ後退円35に接する接円37を求め、さらに、点R2’を通り、かつ後退円35に接する接円38を求める。接円37と後退円35の接点S1が点P3より下方に現れ、接円38と後退円35の接点S1’が、点P3より上方に現れている。このように、R頂点位置が後退限界値を超えて後退すると、図10と比較して明らかなように、接点S1およびS1’が、それぞれ、R頂点位置P3を超えて反対側に現れる。点R2〜S1’〜S1〜R2’を接続しても、滑らかなフィレット曲線を生成することはできない。
このように、R頂点位置の後退量は、後退限界値を超えないよう制御される。たとえば、図6に示す画面のボックス103に入力されるパラメータYの値が100%を超えるならば、処理装置2は、入力エラーであるメッセージを表示装置5に出力することができる。また、パラメータYの値が、後退限界値に対する割合として入力されるので、処理装置2は、図5のステップS29において、R頂点位置の後退距離を、後退限界値を超えないよう算出することができる。
R頂点位置の後退量により、R頂点位置を中心として、円21(後退円35)の形状をどの程度フィレット曲線に維持するかを調節することができる。後退量を多くするほど、維持される形状は小さくなる。
1 3次元形状システム
2 処理装置
3 記憶装置
4 入力装置
5 表示装置
2 処理装置
3 記憶装置
4 入力装置
5 表示装置
Claims (6)
- 3次元形状データを処理するコンピュータシステムの処理装置により実行され、第1の面および第2の面をつなぐフィレット面を算出する方法であって、
(a)前記第1の面および第2の面の稜線を定義するステップと、
(b)前記稜線上の複数の箇所において、該稜線を垂直に横切る法平面を算出するステップと、
(c)前記法平面と前記第1の面の第1の交線および前記法平面と前記第2の面の第2の交線を算出するステップと、
(d)前記コンピュータシステムの入力装置を介してユーザにより入力された半径R、R止まり位置の後退量、およびR頂点位置の後退量を受け取り、該コンピュータシステムの記憶装置に記憶するステップと、
(e)前記記憶装置から前記半径Rを抽出し、該半径Rを持ち、かつ前記第1の交線および第2の交線に接する第1の円を算出するステップと、
(f)前記記憶装置から前記R止まり位置の後退量を抽出し、前記第1の円と前記第1の交線の第1の接点、および該第1の円と前記第2の交線の第2の接点を、該R止まり位置の後退量に従って前記稜線から離れる方向に後退させた第1の後退位置および第2の後退位置を、それぞれ算出するステップと、
(g)前記第1の接点における前記第1の円の第1の接線と、前記第2の接点における前記第1の円の第2の接線との交点を算出し、該交点と、前記第1の円の中心とを結ぶ線を中心線として算出するステップと、
(h)前記中心線と前記第1の円との第1の交点を算出するステップと、
(i)前記記憶装置から前記R頂点位置の後退量を抽出し、前記第1の交点を、前記中心線に沿って該R頂点位置の後退量だけ、前記稜線から離れる方向に後退させ、後退頂点位置を算出するステップと、
(j)前記第1の後退位置、前記後退頂点位置、および前記第2の後退位置を滑らかに通るように、フィレット曲線を算出するステップと、
(k)前記複数の法平面上で求められたフィレット曲線に基づいて、前記フィレット面を算出するステップと、
を含む方法。 - 前記ステップ(f)は、さらに、
(f1)前記記憶装置から前記R止まり位置の後退量を抽出し、前記第1の接点を、前記第1の接線に沿って、該R止まり位置の後退量だけ前記稜線から離れる方向にシフトし、該シフトにより得られた点から前記第1の交線への垂線の交点を、前記第1の後退位置として算出するステップと、
(f2)前記第1の後退位置を通り、かつ前記第2の交線に接する第2の円を算出するステップと、
(f3)前記第2の円が前記第2の交線と接する点を、前記第2の後退位置として算出するステップと、
(f4)前記第2の円と前記中心線との第2の交点を算出し、前記第1の交点と該第2の交点との間の距離を、前記R頂点位置の後退量についての限界値に設定するステップと、
(f5)前記R頂点位置の後退量を、前記限界値以下に制限するステップと、
を含む、請求項1に記載の方法。 - 前記ステップ(j)は、さらに、
(j1)前記後退頂点位置を通るように、前記第1の円を前記中心線に沿って後退させた円を、後退円として算出するステップと、
(j2)前記第1の後退位置を通り、かつ前記後退円に接する第3の円を算出するステップと、
(j3)前記第3の円と前記後退円との接点を第3の接点として算出するステップと、
(j4)前記第2の後退位置を通り、かつ前記後退円に接する第4の円を算出するステップと、
(j5)前記第4の円と前記後退円との接点を第4の接点として算出するステップと、
(j6)前記第3の円に沿って前記第1の後退位置と前記第3の接点との間を接続し、前記後退円に沿って前記第3の接点と前記第4の接点との間を接続し、前記第4の円に沿って前記第4の接点と前記第2の後退位置とを接続して、前記フィレット曲線を算出するステップと、
を含む、請求項1に記載の方法。 - 3次元形状データを処理するコンピュータに、
(a)前記第1の面および第2の面の稜線を定義するステップと、
(b)前記稜線上の複数の箇所において、該稜線を垂直に横切る法平面を算出するステップと、
(c)前記法平面と前記第1の面の第1の交線および前記法平面と前記第2の面の第2の交線を算出するステップと、
(d)前記コンピュータシステムの入力装置を介してユーザにより入力された半径R、R止まり位置の後退量、およびR頂点位置の後退量を受け取り、該コンピュータシステムの記憶装置に記憶するステップと、
(e)前記記憶装置から前記半径Rを抽出し、該半径Rを持ち、かつ前記第1の交線および第2の交線に接する第1の円を算出するステップと、
(f)前記記憶装置から前記R止まり位置の後退量を抽出し、前記第1の円と前記第1の交線の第1の接点、および該第1の円と前記第2の交線の第2の接点を、該R止まり位置の後退量に従って前記稜線から離れる方向に後退させた第1の後退位置および第2の後退位置を、それぞれ算出するステップと、
(g)前記第1の接点における前記第1の円の第1の接線と、前記第2の接点における前記第1の円の第2の接線との交点を算出し、該交点と、前記第1の円の中心とを結ぶ線を中心線として算出するステップと、
(h)前記中心線と前記第1の円との第1の交点を算出するステップと、
(i)前記記憶装置から前記R頂点位置の後退量を抽出し、前記第1の交点を、前記中心線に沿って該R頂点位置の後退量だけ、前記稜線から離れる方向に後退させ、後退頂点位置を算出するステップと、
(j)前記第1の後退位置、前記後退頂点位置、および前記第2の後退位置を滑らかに通るように、フィレット曲線を算出するステップと、
(k)前記複数の法平面上で求められたフィレット曲線に基づいて、前記フィレット面を算出するステップと、
を実行させて、前記第1の面および第2の面をつなぐフィレット面を算出するための、プログラム。 - 前記ステップ(f)は、さらに、
(f1)前記記憶装置から前記R止まり位置の後退量を抽出し、前記第1の接点を、前記第1の接線に沿って、該R止まり位置の後退量だけ前記稜線から離れる方向にシフトし、該シフトにより得られた点から前記第1の交線への垂線の交点を、前記第1の後退位置として算出するステップと、
(f2)前記第1の後退位置を通り、かつ前記第2の交線に接する第2の円を算出するステップと、
(f3)前記第2の円が前記第2の交線と接する点を、前記第2の後退位置として算出するステップと、
(f4)前記第2の円と前記中心線との第2の交点を算出し、前記第1の交点と該第2の交点との間の距離を、前記R頂点位置の後退量についての限界値に設定するステップと、
(f5)前記R頂点位置の後退量を、前記限界値以下に制限するステップと、
を含む、請求項4に記載のプログラム。 - 前記ステップ(j)は、さらに、
(j1)前記後退頂点位置を通るように、前記第1の円を前記中心線に沿って後退させた円を、後退円として算出するステップと、
(j2)前記第1の後退位置を通り、かつ前記後退円に接する第3の円を算出するステップと、
(j3)前記第3の円と前記後退円との接点を第3の接点として算出するステップと、
(j4)前記第2の後退位置を通り、かつ前記後退円に接する第4の円を算出するステップと、
(j5)前記第4の円と前記後退円との接点を第4の接点として算出するステップと、
(j6)前記第3の円に沿って前記第1の後退位置と前記第3の接点との間を接続し、前記後退円に沿って前記第3の接点と前記第4の接点との間を接続し、前記第4の円に沿って前記第4の接点と前記第2の後退位置とを接続して、前記フィレット曲線を算出するステップと、
を含む、請求項4に記載のプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004214607A JP2006039668A (ja) | 2004-07-22 | 2004-07-22 | フィレット面を算出する方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004214607A JP2006039668A (ja) | 2004-07-22 | 2004-07-22 | フィレット面を算出する方法およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006039668A true JP2006039668A (ja) | 2006-02-09 |
Family
ID=35904639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004214607A Pending JP2006039668A (ja) | 2004-07-22 | 2004-07-22 | フィレット面を算出する方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006039668A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008059235A (ja) * | 2006-08-31 | 2008-03-13 | Hitachi Ltd | 立体形状データ変換方法、それを記述したコンピュータプログラムおよび立体形状データ変換装置 |
JP2011150530A (ja) * | 2010-01-21 | 2011-08-04 | Honda Motor Co Ltd | 設計支援システムおよび設計支援プログラム |
JP2017516227A (ja) * | 2014-05-13 | 2017-06-15 | シーメンス プロダクト ライフサイクル マネージメント ソフトウェアー インコーポレイテッドSiemens Product Lifecycle Management Software Inc. | 湾曲したサーフェス上の測地描画 |
-
2004
- 2004-07-22 JP JP2004214607A patent/JP2006039668A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008059235A (ja) * | 2006-08-31 | 2008-03-13 | Hitachi Ltd | 立体形状データ変換方法、それを記述したコンピュータプログラムおよび立体形状データ変換装置 |
JP2011150530A (ja) * | 2010-01-21 | 2011-08-04 | Honda Motor Co Ltd | 設計支援システムおよび設計支援プログラム |
JP2017516227A (ja) * | 2014-05-13 | 2017-06-15 | シーメンス プロダクト ライフサイクル マネージメント ソフトウェアー インコーポレイテッドSiemens Product Lifecycle Management Software Inc. | 湾曲したサーフェス上の測地描画 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101741402B1 (ko) | 평행 지오데식 곡선들에 의해 모델링되는 부품의 설계 | |
EP1710720B1 (en) | Method of computer-aided design of a modeled object having several faces | |
KR102028203B1 (ko) | 워크피스의 기계가공의 시뮬레이션 | |
EP2600315B1 (en) | Creating a surface from a plurality of 3D curves | |
KR100914218B1 (ko) | 3차원 스캔 데이터를 이용하여 로프트 서피스를 계산하기위한 시스템 및 방법 | |
US9047704B2 (en) | Method for filleting 3D mesh edges by subivision | |
CN103500236A (zh) | 设计3d模型对象 | |
JP2007305131A (ja) | 3次元スキャンデータを用いた逆設計実行のモデリング精密度分析のためのシステム及び方法 | |
US20130271459A1 (en) | Systems and methods of editing graphical data | |
JP3567015B2 (ja) | Cadシステムにおいて幾何図形対象に関するブール演算を実行するための方法 | |
JP4620565B2 (ja) | 解析メッシュ生成装置 | |
CN114429535A (zh) | 一种三角网格曲面的光滑裁剪方法及装置 | |
JP2006039668A (ja) | フィレット面を算出する方法およびプログラム | |
US9984503B2 (en) | Systems and methods of updating graphical objects | |
JP4459745B2 (ja) | フィレット面を算出する方法およびプログラム | |
JP3786410B2 (ja) | フィレット作成方法、及び3次元cadプログラム | |
US9639992B2 (en) | Methods and systems for multilevel editing of subdivided polygonal data | |
JP4966898B2 (ja) | 中立面メッシュデータを生成するプログラム、装置、及び方法 | |
JP2007156604A (ja) | 曲面作成方法及び曲面作成プログラム並びに3次元形状処理装置 | |
JP6972647B2 (ja) | 三次元形状データの編集装置、及び三次元形状データの編集プログラム | |
JP3727608B2 (ja) | 部品を工業化するための方法およびシステム | |
JP4912756B2 (ja) | ポリゴンデータ分割方法およびポリゴンデータ分割装置 | |
JP4237180B2 (ja) | 加工残し形状抽出装置、および抽出方法 | |
JP2007331037A (ja) | 金型の加工領域設定方法、およびその装置 | |
JP2012079079A (ja) | 設計支援装置およびプログラム |