(57)【要約】【課題】Ｒ頂点近傍の形状を維持しつつ、より滑らかに２面を接続するフィレット面を生成する。【解決手段】第１の面１０および第２の面１１の稜線１２を垂直に横切る法平面１４を求め、該法平面と第１および第２の面の交線ＡおよびＢを求める。ユーザにより、半径Ｒ、Ｒ止まり位置の後退量、およびＲ頂点位置の後退量が指定される。円２１と第１および第２の交線ＡおよびＢのＲ止まり位置Ｒ１およびＲ１’を、指定された後退量に従って後退させ、点Ｒ２およびＲ２’を求める。また、円２１のＲ頂点位置Ｐ１を、指定された後退量に従って後退させ、点Ｐ２を求める。点Ｒ２、点Ｐ２、および点Ｒ２’を滑らかに通るように、フィレット曲線を描く。すべての法平面について求めたフィレット曲線に基づき、第１および第２の面に滑らかに接触するフィレット面を求める。【選択図】図４
2006039668.tif 000002
【特許請求の範囲】
【請求項１】
３次元形状データを処理するコンピュータシステムの処理装置により実行され、第１の面および第２の面をつなぐフィレット面を算出する方法であって、
（ａ）前記第１の面および第２の面の稜線を定義するステップと、
（ｂ）前記稜線上の複数の箇所において、該稜線を垂直に横切る法平面を算出するステップと、
（ｃ）前記法平面と前記第１の面の第１の交線および前記法平面と前記第２の面の第２の交線を算出するステップと、
（ｄ）前記コンピュータシステムの入力装置を介してユーザにより入力された半径Ｒ、Ｒ止まり位置の後退量、およびＲ頂点位置の後退量を受け取り、該コンピュータシステムの記憶装置に記憶するステップと、
（ｅ）前記記憶装置から前記半径Ｒを抽出し、該半径Ｒを持ち、かつ前記第１の交線および第２の交線に接する第１の円を算出するステップと、
（ｆ）前記記憶装置から前記Ｒ止まり位置の後退量を抽出し、前記第１の円と前記第１の交線の第１の接点、および該第１の円と前記第２の交線の第２の接点を、該Ｒ止まり位置の後退量に従って前記稜線から離れる方向に後退させた第１の後退位置および第２の後退位置を、それぞれ算出するステップと、
（ｇ）前記第１の接点における前記第１の円の第１の接線と、前記第２の接点における前記第１の円の第２の接線との交点を算出し、該交点と、前記第１の円の中心とを結ぶ線を中心線として算出するステップと、
（ｈ）前記中心線と前記第１の円との第１の交点を算出するステップと、
（ｉ）前記記憶装置から前記Ｒ頂点位置の後退量を抽出し、前記第１の交点を、前記中心線に沿って該Ｒ頂点位置の後退量だけ、前記稜線から離れる方向に後退させ、後退頂点位置を算出するステップと、
（ｊ）前記第１の後退位置、前記後退頂点位置、および前記第２の後退位置を滑らかに通るように、フィレット曲線を算出するステップと、
（ｋ）前記複数の法平面上で求められたフィレット曲線に基づいて、前記フィレット面を算出するステップと、
を含む方法。
【請求項２】
前記ステップ（ｆ）は、さらに、
（ｆ１）前記記憶装置から前記Ｒ止まり位置の後退量を抽出し、前記第１の接点を、前記第１の接線に沿って、該Ｒ止まり位置の後退量だけ前記稜線から離れる方向にシフトし、該シフトにより得られた点から前記第１の交線への垂線の交点を、前記第１の後退位置として算出するステップと、
（ｆ２）前記第１の後退位置を通り、かつ前記第２の交線に接する第２の円を算出するステップと、
（ｆ３）前記第２の円が前記第２の交線と接する点を、前記第２の後退位置として算出するステップと、
（ｆ４）前記第２の円と前記中心線との第２の交点を算出し、前記第１の交点と該第２の交点との間の距離を、前記Ｒ頂点位置の後退量についての限界値に設定するステップと、
（ｆ５）前記Ｒ頂点位置の後退量を、前記限界値以下に制限するステップと、
を含む、請求項１に記載の方法。
【請求項３】
前記ステップ（ｊ）は、さらに、
（ｊ１）前記後退頂点位置を通るように、前記第１の円を前記中心線に沿って後退させた円を、後退円として算出するステップと、
（ｊ２）前記第１の後退位置を通り、かつ前記後退円に接する第３の円を算出するステップと、
（ｊ３）前記第３の円と前記後退円との接点を第３の接点として算出するステップと、
（ｊ４）前記第２の後退位置を通り、かつ前記後退円に接する第４の円を算出するステップと、
（ｊ５）前記第４の円と前記後退円との接点を第４の接点として算出するステップと、
（ｊ６）前記第３の円に沿って前記第１の後退位置と前記第３の接点との間を接続し、前記後退円に沿って前記第３の接点と前記第４の接点との間を接続し、前記第４の円に沿って前記第４の接点と前記第２の後退位置とを接続して、前記フィレット曲線を算出するステップと、
を含む、請求項１に記載の方法。
【請求項４】
３次元形状データを処理するコンピュータに、
（ａ）前記第１の面および第２の面の稜線を定義するステップと、
（ｂ）前記稜線上の複数の箇所において、該稜線を垂直に横切る法平面を算出するステップと、
（ｃ）前記法平面と前記第１の面の第１の交線および前記法平面と前記第２の面の第２の交線を算出するステップと、
（ｄ）前記コンピュータシステムの入力装置を介してユーザにより入力された半径Ｒ、Ｒ止まり位置の後退量、およびＲ頂点位置の後退量を受け取り、該コンピュータシステムの記憶装置に記憶するステップと、
（ｅ）前記記憶装置から前記半径Ｒを抽出し、該半径Ｒを持ち、かつ前記第１の交線および第２の交線に接する第１の円を算出するステップと、
（ｆ）前記記憶装置から前記Ｒ止まり位置の後退量を抽出し、前記第１の円と前記第１の交線の第１の接点、および該第１の円と前記第２の交線の第２の接点を、該Ｒ止まり位置の後退量に従って前記稜線から離れる方向に後退させた第１の後退位置および第２の後退位置を、それぞれ算出するステップと、
（ｇ）前記第１の接点における前記第１の円の第１の接線と、前記第２の接点における前記第１の円の第２の接線との交点を算出し、該交点と、前記第１の円の中心とを結ぶ線を中心線として算出するステップと、
（ｈ）前記中心線と前記第１の円との第１の交点を算出するステップと、
（ｉ）前記記憶装置から前記Ｒ頂点位置の後退量を抽出し、前記第１の交点を、前記中心線に沿って該Ｒ頂点位置の後退量だけ、前記稜線から離れる方向に後退させ、後退頂点位置を算出するステップと、
（ｊ）前記第１の後退位置、前記後退頂点位置、および前記第２の後退位置を滑らかに通るように、フィレット曲線を算出するステップと、
（ｋ）前記複数の法平面上で求められたフィレット曲線に基づいて、前記フィレット面を算出するステップと、
を実行させて、前記第１の面および第２の面をつなぐフィレット面を算出するための、プログラム。
【請求項５】
前記ステップ（ｆ）は、さらに、
（ｆ１）前記記憶装置から前記Ｒ止まり位置の後退量を抽出し、前記第１の接点を、前記第１の接線に沿って、該Ｒ止まり位置の後退量だけ前記稜線から離れる方向にシフトし、該シフトにより得られた点から前記第１の交線への垂線の交点を、前記第１の後退位置として算出するステップと、
（ｆ２）前記第１の後退位置を通り、かつ前記第２の交線に接する第２の円を算出するステップと、
（ｆ３）前記第２の円が前記第２の交線と接する点を、前記第２の後退位置として算出するステップと、
（ｆ４）前記第２の円と前記中心線との第２の交点を算出し、前記第１の交点と該第２の交点との間の距離を、前記Ｒ頂点位置の後退量についての限界値に設定するステップと、
（ｆ５）前記Ｒ頂点位置の後退量を、前記限界値以下に制限するステップと、
を含む、請求項４に記載のプログラム。
【請求項６】
前記ステップ（ｊ）は、さらに、
（ｊ１）前記後退頂点位置を通るように、前記第１の円を前記中心線に沿って後退させた円を、後退円として算出するステップと、
（ｊ２）前記第１の後退位置を通り、かつ前記後退円に接する第３の円を算出するステップと、
（ｊ３）前記第３の円と前記後退円との接点を第３の接点として算出するステップと、
（ｊ４）前記第２の後退位置を通り、かつ前記後退円に接する第４の円を算出するステップと、
（ｊ５）前記第４の円と前記後退円との接点を第４の接点として算出するステップと、
（ｊ６）前記第３の円に沿って前記第１の後退位置と前記第３の接点との間を接続し、前記後退円に沿って前記第３の接点と前記第４の接点との間を接続し、前記第４の円に沿って前記第４の接点と前記第２の後退位置とを接続して、前記フィレット曲線を算出するステップと、
を含む、請求項４に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、コンピュータにより実施される、３次元形状モデルにおいてフィレット面を算出する方法およびそのプログラムに関する。
【背景技術】
【０００２】
従来から、コンピュータを用いたＣＡＤシステムにおいて、３次元形状モデルの生成および加工などの処理が行われている。このようなシステムにおいて、任意の形状を有する２つの面を滑らかに接続する面、すなわちフィレット面の作成を要する場合がある。
【０００３】
下記の特許文献１に示される方法によれば、第１の面および第２の面の交線（以下、稜線と呼ぶ）を垂直に切断する平面を複数求める。該切断平面と第１の面との第１の交線、および該切断平面と第２の面との第２の交線を、それぞれ、該切断平面上において、法線方向にオフセットする。２つのオフセット曲線の交点を中心として、第１の交線上の点および第２の交線上の点を両端とする円弧を描く。すべての切断平面について、該円弧を生成する。該生成された円弧の端点を接続して、フィレット面を生成する。
【０００４】
下記の特許文献２には、上記の円弧の半径（以下、丸め半径と呼ぶ）を徐々に変化させることができるフィレット面作成手法が記載されている。
【０００５】
下記の特許文献３には、フィレット面を生成する際、丸め半径および稜線などの生成パラメータの指定を可能にする手法が記載されている。生成パラメータの変更が行われたならば、該変更された生成パラメータに従って、フィレット面を再生成し表示する。
【０００６】
下記の特許文献４には、所定の丸め半径によるフィレット面の一部が第１および第２の面の外側にはみ出す場合、該２つの面の少なくとも一方の一部を延長した補助面を用いて、該２つの面からはみ出す仮フィレット面を生成することが記載されている。仮フィレット面が該２つの面からはみ出す位置において該仮フィレット面を切断し、該２つの面に収まるフィレット面を生成する。
【特許文献１】特公平７−６７６５８号公報
【特許文献２】特開平４−２２０７７４号公報
【特許文献３】特開２００１−９２８６６号公報
【特許文献４】特開２００１−２２２５６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
フィレット面は、従来の手法に示されるように、２つの面を、所定の丸め半径Ｒで滑らかに接続する。フィレット面の設計者は、該丸め半径Ｒを指定することにより、フィレット面の形状を特徴づける。具体的には、フィレット面のカーブ度合いが、丸め半径Ｒにより特徴づけられる。
【０００８】
従来の手法によると、丸め半径Ｒのみに基づいてフィレット面の形状を特徴づけるので、フィレット面が該２つの面に接する箇所において、滑らかさに欠けることがあった。
【０００９】
また、丸め半径Ｒにより、フィレット面の頂点近傍の形状が特徴づけられるが、この頂点近傍の形状を維持することが望まれる場合がある。たとえば、フィレット面を利用して二輪車等のヘッドライトを設計しようとするとき、光学的観点から、丸め半径Ｒに従って描かれるフィレット面の頂点近傍の形状を維持したまま、様々なフィレット面のシミュレーションを実施したいという要請がある。該頂点近傍の形状は、ヘッドライトの光線の光学的特性に影響しやすいので、該形状を維持することができれば、該ヘッドライトおよび関連する光学的構成要素の設計を容易にすることができる。
【００１０】
この発明は、丸め半径Ｒに従うフィレット面の頂点近傍の形状を維持しつつ、フィレット面の２つの面に対する接触がより滑らかになるようフィレット面を作成することを目的とする。さらに、この発明は、フィレット面の２つの面に対する接触の滑らかさを、設計者が容易に調整しながら、フィレット面を作成することができるようにすることを目的とする。
【課題を解決するための手段】
【００１１】
本発明の一形態によると、第１の面および第２の面をつなぐフィレット面を算出する方法は、３次元形状データを処理するコンピュータシステムの処理装置により実行され、
（ａ）第１の面（１０）および第２の面（１１）の稜線（１２）を定義するステップと、
（ｂ）稜線上の複数の箇所において、該稜線を垂直に横切る法平面（１４）を算出するステップと、
（ｃ）法平面と第１の面の第１の交線（Ａ）および法平面と第２の面の第２の交線（Ｂ）を算出するステップと、
（ｄ）コンピュータシステムの入力装置を介してユーザにより入力された半径Ｒ、Ｒ止まり位置の後退量、およびＲ頂点位置の後退量を受け取り、該コンピュータシステムの記憶装置に記憶するステップと、
（ｅ）記憶装置から半径Ｒを抽出し、該半径Ｒを持ち、かつ第１の交線および第２の交線に接する第１の円（２１）を算出するステップと、
（ｆ）記憶装置からＲ止まり位置の後退量（Ｘ）を抽出し、第１の円（２１）と第１の交線（Ａ）の第１の接点（Ｒ１）、および第１の円（２１）と第２の交線（Ｂ）の第２の接点（Ｒ１’）を、該Ｒ止まり位置の後退量に従って稜線から離れる方向に後退させた第１の後退位置（Ｒ２）および第２の後退位置（Ｒ２’）を、それぞれ算出するステップと、
（ｇ）第１の接点（Ｒ１）における第１の円の第１の接線（２２）と、第２の接点（Ｒ１’）における第１の円の第２の接線（２３）との交点（Ｑ）を算出し、該交点と、第１の円の中心（Ｏ）とを結ぶ線を中心線として算出するステップと、
（ｈ）中心線と第１の円との第１の交点（Ｐ１）を算出するステップと、
（ｉ）記憶装置からＲ頂点位置の後退量（Ｙ）を抽出し、第１の交点（Ｐ１）を、中心線（ＯＱ）に沿って該Ｒ頂点位置の後退量だけ、稜線から離れる方向に後退させ、後退頂点位置（Ｐ２）を算出するステップと、
（ｊ）第１の後退位置（Ｒ２）、後退頂点位置（Ｐ２）、および第２の後退位（Ｒ２’）を滑らかに通るように、フィレット曲線を算出するステップと、
（ｋ）複数の法平面上で求められたフィレット曲線に基づいて、フィレット面を算出するステップと、を含む。
【００１２】
本発明の一実施形態によると、上記のステップ（ｆ）は、さらに、
（ｆ１）記憶装置からＲ止まり位置の後退量を抽出し、第１の接点（Ｒ１）を、第１の接線（２２）に沿って、該Ｒ止まり位置の後退量（Ｘ）だけ稜線（１２）から離れる方向にシフトし、該シフトにより得られた点（Ｒ３）から第１の交線（Ａ）への垂線の交点を、第１の後退位置（Ｒ２）として算出するステップと、
（ｆ２）第１の後退位置（Ｒ２）を通り、かつ第２の交線（Ｂ）に接する第２の円（３３）を算出するステップと、
（ｆ３）第２の円が前記第２の交線と接する点（Ｒ２’）を、第２の後退位置として算出するステップと、
（ｆ４）第２の円（３３）と中心線（ＯＱ）との第２の交点（Ｐ１’）を算出し、第１の交点（Ｐ１）と第２の交点（Ｐ１’）との間の距離を、Ｒ頂点位置の後退量についての限界値に設定するステップと、
（ｆ５）Ｒ頂点位置の後退量（Ｙ）を、該限界値以下に制限するステップと、を含む。
【００１３】
本発明の一実施形態によると、上記のステップ（ｊ）は、さらに、
（ｊ１）後退頂点位置（Ｐ２）を通るように、第１の円（２１）を中心線（ＯＱ）に沿って後退させた円を、後退円（３５）として算出するステップと、
（ｊ２）第１の後退位置（Ｒ２）を通り、かつ後退円（３５）に接する第３の円（３７）を算出するステップと、
（ｊ３）第３の円（３７）と後退円（３５）との接点を第３の接点（Ｓ１）として算出するステップと、
（ｊ４）第２の後退位置（Ｒ２’）を通り、かつ後退円（３５）に接する第４の円（３８）を算出するステップと、
（ｊ５）第４の円（３８）と後退円（３５）との接点を第４の接点（Ｓ１’）として算出するステップと、
（ｊ６）第３の円（３７）に沿って第１の後退位置（Ｒ２）と第３の接点（Ｓ１）との間を接続し、後退円（３５）に沿って第３の接点（Ｓ１）と第４の接点（Ｓ１’）との間を接続し、第４の円（３８）に沿って第４の接点（Ｓ１’）と第２の後退位置（Ｒ２’）とを接続して、フィレット曲線を算出するステップと、を含む。
【００１４】
また、他の一形態では、この発明は、コンピュータに上記手法を実現させるコンピュータ・プログラムである。
【発明の効果】
【００１５】
この発明によれば、Ｒ止まり位置（第１の円と、第１および第２の交線との接点）を後退させた点（第１および第２の後退位置）を通るようフィレット曲線が描かれるので、フィレット面の第１および第２の面に対する接触を、より滑らかにすることができる。また、第１の円を後退させた後退円に沿ってフィレット曲線が描かれるので、該Ｒ頂点近傍の形状が、フィレット面に維持される。Ｒ止まり位置の後退量およびＲ頂点位置の後退量を、ユーザ入力により指定することができるので、フィレット面の頂点近傍の形状を維持しながら、フィレット面の滑らかさを調整して、所望の形状のフィレット面を生成することができる。
【発明を実施するための最良の形態】
【００１６】
次に図面を参照してこの発明の実施の形態を説明する。図１は、本発明の一実施例に従う、３次元形状処理のためのコンピュータシステム１のブロック図を示す。記憶装置３には、３次元形状モデルに関するデータ、および該データを処理するためのプログラムが記憶されている。処理装置２はＣＰＵ（プロセッサ）を備えており、記憶装置３に記憶されたプログラムに従って、記憶装置３に記憶されたデータを用い、３次元形状モデルに関する様々な処理（生成、加工等）を実行する。記憶装置３は、ＲＯＭ（読み出し専用メモリ）およびＲＡＭ（ランダムアクセスメモリ）などのメモリ、およびハードディスク装置などの補助記憶装置を含むことができる。
【００１７】
入力装置４は、キーボードおよびマウスを備えることができる。入力装置４は、ユーザに対する入力インターフェースを提供する。入力装置４を介して、ユーザは、該３次元形状処理システムにデータおよびコマンド（命令）を入力することができる。処理装置２は、入力装置４を介して入力されたデータおよびコマンドを受け取り、３次元形状モデルに関する様々な処理を実行する。
【００１８】
表示装置５は、ＣＲＴなどのディスプレイを備え、処理装置２によって処理された結果、および入力装置４を介して入力されたデータなどを、ユーザに表示することができる。ユーザは、表示装置５上に表示された３次元形状モデルを参照しながら、該３次元形状モデルに関する様々な処理を処理装置２に実行させることができる。
【００１９】
図示されていないが、プリンタなどの他の周辺装置を３次元形状処理システム１に含めることができる。また、３次元形状処理システム１をネットワーク上のサーバに設け、該システム１を、遠隔のコンピュータにより該ネットワークを介してアクセス可能なように構成することができる。遠隔のコンピュータは、該システム１から所望の３次元形状モデルデータを抽出して、自身のコンピュータ上で、それらを処理することができる。
【００２０】
図２は、本願発明に従うフィレット面を算出するプロセスのフローチャートを示す。該プロセスは、記憶装置３に記憶されたプログラムを処理装置２が実行することにより実現される。図３は、該プロセスに従って作成されるフィレット面の一例を示す。図３を参照しながら、図２のプロセスを説明する。
【００２１】
記憶装置３には、３次元形状モデルのデータが格納されている。ユーザは、これらの３次元形状モデルのデータを、表示装置５に表示させることができる。ユーザは、入力装置４を介して、表示装置５上に表示された３次元形状モデルのデータから、第１の面１０および第２の面１１を選択することができる。図３の（ａ）に、一例として、該２つの面が示されている。図では、第１および第２の面は平面のように示されているが、これらは曲面でもよい。ステップＳ１において、処理装置２は、入力装置４を介して入力された、該第１の面１０および第２の面１１の選択を受け取る。処理装置２は、選択された２つの面を、表示装置５上に表示させることができる。
【００２２】
ユーザは、表示装置５上に表示された第１の面１０および第２の面１１を参照しながら、入力装置４を介して、フィレット面を作成する方向を指定することができる。図３の（ａ）の例では、フィレット面を作成することができる方向として、Ｄ１からＤ４の４つの方向がある。この実施例では、方向Ｄ１にフィレット面を作成する。処理装置２は、ステップＳ２において、ユーザにより指定された方向Ｄ１を受け取り、フィレット面作成方向Ｄ１を、第１および第２の面１０および１１に関連づけて記憶装置３に記憶する。
【００２３】
ユーザは、表示装置５上に表示された第１の面１０および第２の面１１を参照しながら、入力装置４を介して、稜線１２を指定することができる。たとえばマウスによるクリックにより、稜線となるラインを指定することができる。稜線１２は、第１の面１０と第２の面１１とが交差する線を規定する。第１の面１０と第２の面１１が実際には交差していない場合には、第１の面１０を延長した面と、第２の面１１の延長した面とが交差する線を、稜線１２として指定することができる。また、ユーザが、表示装置５上に表示された第１の面１０および第２の面１１の位置を調整しながら、稜線１２の位置を調整してもよい。処理装置２は、指定された稜線１２を表す式を、第１および第２の面１０および１１に関連づけて記憶装置３に記憶する。
【００２４】
ステップＳ４において、処理装置２は、図３の（ａ）の点１３ａ、１３ｂ、、、に示されるように、稜線１２を所定間隔に区切る。それぞれの点１３ａ、１３ｂ、、、は、その位置と共に記憶装置３に記憶される。ステップＳ５において、処理装置２は、それぞれの点１３ａ、１３ｂ、、、において、稜線１２を垂直方向に切断する平面、すなわち法平面を定義する。図３の（ｂ）には、一例として、点１３ａにおける法平面１４が示されている。定義された法平面を表す式は、それぞれの点１３ａ、１３ｂ、、、に関連づけられて、記憶装置３に記憶される。
【００２５】
ステップＳ６において、処理装置２は、法平面１４と第１の面１０との交線Ａを算出し、さらに、法平面１４と第２の面１１との交線Ｂを算出する。交線ＡおよびＢを表す式は、法平面１４と関連づけられて、記憶装置３に記憶される。
【００２６】
ステップＳ７において、処理装置２は、図３の（ｂ）に示されるような、法平面１４上で、交線ＡおよびＢを接続するフィレット曲線１５を算出するルーチンを実行する。このルーチンの詳細については、後述される。
【００２７】
ステップＳ８において、すべての法平面においてフィレット曲線が算出されたかどうかを判断する。最初にこのステップを実行するときは、この判断がＮｏであるので、ステップＳ７に戻り、次の法平面（点１３ｂに関連づけられた法平面）について、フィレット曲線を算出するルーチンを実行する。
【００２８】
すべての法平面についてフィレット曲線が算出されると、ステップＳ８の判断がＹｅｓになる。ステップＳ９に進み、すべての法平面についてのフィレット曲線を通るよう、フィレット面１６（網掛けで示されている）を求める。
【００２９】
本願発明は、フィレット曲線を算出する新たな手法を提案する。本願発明に従う手法は、図２のステップＳ７のルーチンで実行される。
【００３０】
まず、発明の理解を助けるため、図４を参照して、本願発明の原理を説明する。図には、本願発明の一実施例に従って生成されたフィレット曲線１５が示されている。
【００３１】
フィレット曲線を生成する際に、３つのパラメータが、ユーザにより指定されることができる。第１のパラメータは、Ｒ値である。Ｒ値は、交線ＡおよびＢに接する円２１の半径を示す。Ｒ値を指定することにより、交線ＡおよびＢに接する円２１が一義的に定まる。
【００３２】
第２のパラメータは、Ｒ止まり位置の後退量である。Ｒ止まり位置は、円２１の交線ＡおよびＢの接点であり、Ｒ１およびＲ１’でそれぞれ示されている。Ｒ止まり位置Ｒ１およびＲ１’における円２１の接線が、２２および２３でそれぞれ表されている。Ｒ止まり位置の後退量は、Ｒ止まり位置Ｒ１およびＲ１’を、接線２２および２３に沿って、それぞれ、矢印方向２６（稜線１２から離れる方向）に後退させる量を示す。後退させることにより得られる点Ｒ３およびＲ３’から、交線ＡおよびＢに垂線をおろし、該垂線と交線ＡおよびＢとの交点が、Ｒ２およびＲ２’でそれぞれ表されている。
【００３３】
この実施例では、接線２２および２３の交点Ｑを求め、該交点ＱとＲ止まり位置Ｒ１との距離に対する割合で、後退量を指定する。後退量をＸとすると、以下の式（１）が成立する。
【００３４】
交点Ｑと点Ｒ３間の距離：交点Ｑと点Ｒ１間の距離＝Ｘ：１
ただし、Ｘ＞１        （１）
点Ｒ３’についても、同様の式が成立する。
【００３５】
第３のパラメータは、Ｒ頂点位置の後退量である。Ｒ頂点位置は、円２１と直線ＯＱ（これは、円２１の中心Ｏと交点Ｑとを結ぶ線）との交点を示しており、図ではＰ１で表されている。Ｒ頂点位置の後退量は、Ｒ頂点位置Ｐ１を、直線ＯＱに沿って、矢印方向２７（稜線１２から離れる方向）に後退させる量を示す。後退させることにより得られる点が、Ｐ２で表されている。
【００３６】
この実施例では、所定の後退限界値に対する割合で、Ｒ頂点位置の後退量を指定する。後退量をＹとすると、以下の式（２）が成立する。
【００３７】
点Ｐ１と点Ｐ２間の距離：後退限界値＝Ｙ：１    ただし、０＜Ｙ＜１  （２）
後退限界値の求め方は、後述される。
【００３８】
フィレット曲線１５は、点Ｒ２、Ｐ２およびＲ２’を滑らかに通るよう描かれる。
【００３９】
従来、フィレット曲線は、Ｒ値のみに基づいて、その形状、特にその滑らかさが特徴づけられていた。Ｒ値のみに基づくので、フィレット曲線と、第１および第２の面１０および１１との接続部分における滑らかさが十分でない場合があった。また、Ｒ値のみでフィレット曲線を特徴づけようとすると、生成されるフィレット曲線の形状が限定される。前述したように、たとえば光学的観点から、Ｒ頂点近傍の形状が維持されるように、フィレット曲線を生成することが望まれることがある。
【００４０】
本願発明によれば、点Ｒ２およびＲ２’は、円２１の止まり位置Ｒ１およびＲ１’をそれぞれ後退させたものなので、交線ＡおよびＢに対して、フィレット曲線１５をより滑らかに接触させることができる。点Ｐ２が、Ｒ頂点位置Ｐ１を後退させたものなので、Ｒ頂点近傍の形状を、フィレット曲線１５に維持することができる。また、Ｒ止まり位置の後退量およびＲ頂点位置の後退量を、ユーザが所望の値に設定することができる。これら２つの値を調整することにより、Ｒ頂点近傍の形状を維持しながら、フィレット曲線１５のリブ（カーブ）を、様々な形状に調整することができる。
【００４１】
図５は、図２のステップＳ７で実施される、フィレット曲線を算出するプロセスのフローチャートである。該プロセスは、記憶装置３に記憶されたプログラムに従い、処理装置２によって実施される。該プロセスを、図６〜図１０を参照しつつ説明する。
【００４２】
ユーザは、表示装置５上に、パラメータ入力のための画面を表示させ、入力装置４を介して、フィレット曲線に関するパラメータを入力することができる。図６は、このような画面の一例を示す。入力されるパラメータは、前述したように、Ｒ値、Ｒ止まり位置の後退量、およびＲ頂点位置の後退量である。
【００４３】
符号１０１に示されるボックスに入力されるのが、円２１の半径Ｒを示すＲ値である。符号１０２に示されるボックスに入力されるのが、上記のＲ止まり位置の後退量Ｘをパーセンテージで表した値である。後退させない時、後退量は１００％である。後退量の上限は、２００％と示されているが、これは一例であり、他の値を設定することもできる。
【００４４】
符号１０３で示されるボックスに入力されるのが、上記のＲ頂点位置の後退量Ｙをパーセンテージで表した値である。後退させない時、後退量は０％である。後退量の上限は、所定の後退限界値であり、後退限界値を設定する手法については後述される。
【００４５】
ユーザによるＯＫボタンのクリックに応答して、処理装置２は、これらの入力されたパラメータを受け取り、記憶装置３に記憶する。
【００４６】
ステップＳ２２において、処理装置２は、入力パラメータとして記憶されたＲ値を記憶装置３から読み出し、図７の（ａ）に示されるように、交線ＡおよびＢを、法平面１４上で法線方向に該Ｒ値だけオフセットする。オフセット曲線Ａ’およびＢ’の交点Ｏを算出し、該交点Ｏを中心とした半径Ｒの円２１を表す式を算出する。円２１における交線ＡおよびＢ上の点Ｒ１およびＲ１’の位置（Ｒ止まり位置）を算出する。これらの算出された円２１の式、点Ｒ１およびＲ１’の位置は、記憶装置３に記憶される。
【００４７】
ステップＳ２３において、図７の（ｂ）に示されるように、処理装置２は、Ｒ止まり位置Ｒ１およびＲ１’における接線２２および２３を表す式を算出し、該接線２２および２３の交点Ｑを求める。こうして、円２１の中心Ｏと交点Ｑとを結ぶ直線ＯＱを表す式を算出する。
【００４８】
ステップＳ２４において、円２１を表す式と、直線ＯＱを表す式とに基づいて、円２１と直線ＯＱの交点Ｐ１（Ｒ頂点位置）を算出する。
【００４９】
ステップＳ２５において、処理装置２は、記憶装置３から、ユーザによって指定されたＲ止まり位置の後退量パラメータＸを抽出し、以下の式（３）のように、点Ｒ１を後退させる距離を求める。
【００５０】
後退距離（点Ｒ１と点Ｒ３間距離）＝（点Ｑと点Ｒ１間の距離）×（Ｘ−１）
（３）
図８の（ａ）に示すように、交線Ａに沿って、Ｒ止まり位置Ｒ１を、該算出した後退距離だけ後退させ、該後退により得られる点Ｒ３の位置を算出する。点Ｒ３から交線Ａに垂線をおろし、該垂線と交線Ａの交点Ｒ２を求める。点Ｒ２の位置が、記憶装置３に記憶される。
【００５１】
ステップＳ２６において、処理装置２は、図８の（ｂ）に示されるように、点Ｒ２を通り、かつ交線Ｂに接する円３３を求める。該円３３を表す式は、記憶装置３に記憶される。
【００５２】
ステップＳ２７において、処理装置２は、円３３と交線Ｂが接する点Ｒ２’、および、円３３と直線ＯＱとの交点Ｐ１’の位置を算出する。点Ｒ２’および交点Ｐ１’の位置は、記憶装置３に記憶される。
【００５３】
点Ｐ１と点Ｐ１’間の距離が、前述した後退限界値を表す。ステップＳ２８において、処理装置２は、該後退限界値を算出して、記憶装置３に記憶する。
【００５４】
円３３を描くのは、該後退限界値を規定する点Ｐ１’を求めるためである。Ｒ頂点位置Ｐ１が後退限界値を超えて後退すると、Ｒ頂点近傍の形状をフィレット面において維持することができないおそれがある（その理由については、後述される）。したがって、Ｒ頂点位置の後退量を、後退限界値により制限する。
【００５５】
代替的に、点Ｒ１’と同様の手法で点Ｒ２’を求めてもよい。すなわち、Ｒ止まり位置Ｒ１’を、指定された後退量Ｘだけ接線２３に沿って後退させて点Ｒ３’を求め、該点Ｒ３’から交線Ｂへの垂線の交点を、Ｒ２’として求めることができる。
【００５６】
ステップＳ２９において、処理装置２は、記憶装置３から、ユーザによって指定されたＲ頂点位置の後退量パラメータＹ、およびステップＳ２８で算出された後退限界値を抽出する。処理装置２は、式（４）に示すように、後退限界値に後退量パラメータを乗算することにより、Ｒ頂点位置を後退させる距離を求める。
【００５７】
Ｒ頂点位置の後退距離（Ｐ１とＰ２間の距離）＝後退限界値×Ｙ
（４）
処理装置２は、図９の（ａ）に示されるように、円２１を、該算出した後退距離だけ後退させ、円３５（後退円と呼ぶ）を求める。該後退により、Ｒ頂点位置Ｐ１は点Ｐ２に移動する。後退円３５を表す式および点Ｐ２の位置は、記憶装置３に記憶される。
【００５８】
代替的に、Ｒ頂点位置Ｐ１を後退させることにより点Ｐ２の位置を算出し、該点Ｐ２の位置を用いて、後退円３５を表す式を算出するようにしてもよい。
【００５９】
ステップ３０において、点Ｒ２を通り、かつ後退円３５に接する接円３７を求める。同様に、点Ｒ２’を通り、かつ後退円３５に接する接円３８を求める。接円３７と後退円３５との接点Ｓ１、および接円３８と後退円３５との接点Ｓ１’の位置を求める。これらの接円３７および３８を表す式、および接点Ｓ１およびＳ１’の位置は、記憶装置３に記憶される。
【００６０】
ステップＳ３１において、図１０に示されるように、接円３７の円周に沿った点Ｒ２〜点Ｓ１の円弧と、後退円３５の円周に沿った点Ｓ１〜点Ｓ１’の円弧と、接円３８の円周に沿った点Ｓ１’〜点Ｒ２’とを接続することにより、フィレット曲線１５を生成する。
【００６１】
フィレット曲線１５を参照すると、点Ｓ１〜点Ｓ１’をつなぐ曲線は、円２１を後退させた円３５の円周なので、円２１のＲ頂点位置Ｐ１近傍の形状はフィレット曲線１５において維持されている。また、Ｒ止まり点Ｒ１およびＲ１’を後退させた点Ｒ２およびＲ２’において、第１および第２の交線ＡおよびＢに接するので、フィレット曲線１５から交線ＡおよびＢに対する傾きがより滑らかになる。Ｒ止まり位置の後退量およびＲ頂点位置の後退量を調整しながら、この滑らかさを細かく調整することが可能となる。
【００６２】
図１１を参照して、後退限界値が点Ｐ１’により規定される理由を述べる。図１１の（ａ）では、Ｒ頂点位置が点Ｐ１’にまで後退している。点Ｐ１’を通る後退円が、符号３５で表されている。
【００６３】
点Ｒ２を通り、かつ後退円３５に接する接円３７を求め、さらに、点Ｒ２’を通り、かつ後退円３５に接する接円３８を求める。接円３７と後退円３５の接点Ｓ１、および接円３８と後退円３５の接点Ｓ1’が、点Ｐ１’に重なる。点Ｒ２〜Ｐ１’〜Ｒ２’を接続して、フィレット曲線１５を生成することができる。該フィレット曲線１５では、Ｒ頂点Ｐ１近傍の形状は維持されない。
【００６４】
図１１の（ｂ）を参照すると、Ｒ頂点位置が点Ｐ１’を超えて点Ｐ３まで後退している。点Ｐ３を通る後退円が、符号３５で表されている。
【００６５】
点Ｒ２を通り、かつ後退円３５に接する接円３７を求め、さらに、点Ｒ２’を通り、かつ後退円３５に接する接円３８を求める。接円３７と後退円３５の接点Ｓ１が点Ｐ３より下方に現れ、接円３８と後退円３５の接点Ｓ１’が、点Ｐ３より上方に現れている。このように、Ｒ頂点位置が後退限界値を超えて後退すると、図１０と比較して明らかなように、接点Ｓ１およびＳ１’が、それぞれ、Ｒ頂点位置Ｐ３を超えて反対側に現れる。点Ｒ２〜Ｓ１’〜Ｓ１〜Ｒ２’を接続しても、滑らかなフィレット曲線を生成することはできない。
【００６６】
このように、Ｒ頂点位置の後退量は、後退限界値を超えないよう制御される。たとえば、図６に示す画面のボックス１０３に入力されるパラメータＹの値が１００％を超えるならば、処理装置２は、入力エラーであるメッセージを表示装置５に出力することができる。また、パラメータＹの値が、後退限界値に対する割合として入力されるので、処理装置２は、図５のステップＳ２９において、Ｒ頂点位置の後退距離を、後退限界値を超えないよう算出することができる。
【００６７】
Ｒ頂点位置の後退量により、Ｒ頂点位置を中心として、円２１（後退円３５）の形状をどの程度フィレット曲線に維持するかを調節することができる。後退量を多くするほど、維持される形状は小さくなる。
【図面の簡単な説明】
【００６８】
【図１】この発明の一実施例に従う、３次元形状システムのブロック図。
【図２】この発明の一実施例に従う、フィレット面を作成するプロセスのフローチャート。
【図３】この発明の一実施例に従う、３次元形状モデルにおけるフィレット面を示す図。
【図４】この発明の一実施例に従う、フィレット曲線を算出する手法の原理を概略的に示す図。
【図５】この発明の他の実施例に従う、フィレット曲線を算出するプロセスのフローチャート。
【図６】この発明の一実施例に従う、パラメータを入力するためのダイアログボックスの一例を示す図。
【図７】この発明の一実施例に従う、フィレット曲線の算出プロセスの一過程を示す図。
【図８】この発明の一実施例に従う、フィレット曲線の算出プロセスの一過程を示す図。
【図９】この発明の一実施例に従う、フィレット曲線の算出プロセスの一過程を示す図。
【図１０】この発明の一実施例に従う、フィレット曲線の算出プロセスの一過程を示す図。
【図１１】この発明の一実施例に従う、（ａ）Ｒ頂点が後退限界値まで後退したとき、（ｂ）Ｒ頂点が後退限界値を超えて後退したときの、フィレット曲線の態様を示す図。
【符号の説明】
【００６９】
１  ３次元形状システム
２  処理装置
３  記憶装置
４  入力装置
５  表示装置
【図１】
2006039668.tif 000003
【図２】
2006039668.tif 000004
【図３】
2006039668.tif 000005
【図４】
2006039668.tif 000006
【図５】
2006039668.tif 000007
【図６】
2006039668.tif 000008
【図７】
2006039668.tif 000009
【図８】
2006039668.tif 000010
【図９】
2006039668.tif 000011
【図１０】
2006039668.tif 000012
【図１１】
2006039668.tif 000013