(57)【要約】【課題】物品の撓みや捩れを簡易的に表現し、容易に物品のシミュレーションをすることができる。【解決手段】コンピュータ１の自由曲線特定手段２は、シミュレーションしようとする紐状及び帯状の柔軟性のある物品の通過する２つの通過点Ｂ１，Ｂ２と、通過点Ｂ１，Ｂ２における接線上に配置される制御点Ｃ１，Ｃ２と、及び２つの制御点Ｄ１，Ｄ２とによって５次の自由曲線Ａを特定する。表示手段３は、自由曲線特定手段２によって特定された５次の自由曲線に沿って物品の断面形状をスイープし、物品の３次元形状を表示装置４に表示する。物品の撓みや捩れは、制御点Ｃ１，Ｃ２、制御点Ｄ１，Ｄ２の位置を変更することにより表現できるので、容易にシミュレーションすることができる。【選択図】        図１
2004362191.tif 000002
【特許請求の範囲】
【請求項１】
柔軟性のある紐状及び帯状の物品をシミュレーションするＣＡＤプログラムにおいて、
コンピュータに、
シミュレーションしようとする物品の通過する第１の通過点と第２の通過点と、前記第１の通過点と前記第２の通過点とにおける接線上に配置される第１の制御点と第２の制御点と、及び複数の制御点とによって自由曲線を特定し、
前記自由曲線に沿って前記物品の断面形状をスイープして、前記物品の３次元形状を表示装置に表示する、処理を実行させることを特徴とするＣＡＤプログラム。
【請求項２】
前記第１の制御点と前記第２の制御点との位置を、前記物品の線長及び前記物品のとりうる形状を満たすように特定することを特徴とする請求項１記載のＣＡＤプログラム。
【請求項３】
前記複数の制御点の位置を、前記物品の線長及び前記物品のとりうる形状を満たすように特定することを特徴とする請求項１記載のＣＡＤプログラム。
【請求項４】
前記物品のとりうる形状の範囲内で前記自由曲線の形状を特定することができない場合、前記第１の通過点、前記第２の通過点、前記第１の制御点、及び前記第２の制御点の存在する平面上にある前記複数の制御点を、前記平面上から外すことを特徴とする請求項１記載のＣＡＤプログラム。
【請求項５】
前記自由曲線が交差する場合、前記交差を生じないように前記第１の通過点、前記第２の通過点、前記第１の制御点、及び前記第２の制御点の存在する平面上にある前記複数の制御点を、前記平面上から外すことを特徴とする請求項１記載のＣＡＤプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）プログラムに関し、特にハーネスやケーブルなどの柔軟性のある紐状及び帯状の３次元形状をコンピュータ上でモデリングし、その形状や配置をシュミレーションするＣＡＤプログラムに関する。
【０００２】
【従来の技術】
近年製造業では、開発期間短縮や開発コスト削減を目指して３次元ＣＡＤ（例えば、特許文献１参照）の導入が進められている。また、試作品を作って検証していたことを、３次元ＣＡＤで設計した製品の３次元モデルを仮想試作品と見立てて検証を行いたいというニーズが強まっている。
【０００３】
３次元ＣＡＤでは、ハーネスやケーブルなどは、断面形状を、経路を現す曲線にそってスイープして表現されるが、あくまでも硬い剛体としての表現である。
また、ハーネスやケーブルをフックにかけたことによる撓みや捩れ具合などの柔軟性を表現しようとすると、非常に多くのパラメータが必要となり、コンピュータ処理に時間がかかり、またその費用が高く製品開発において現実的ではない。そのため、プリンタ、パソコン、工作機械などの製品内部には、ハーネスやケーブルといった柔軟性のある部品が多々含まれているが、これらに対しては、実物の挙動に近づけたシミュレーションができないために、試作品を作って検証を行っていた。
【０００４】
【特許文献１】
特開平５−３５８２６号公報（第５頁、第１図）
【０００５】
【発明が解決しようとする課題】
しかし、試作品による検証では、互いが干渉する、配置するスペースがないなどの不具合が見つかると、再び設計に戻って試作品を作り直すなど、手戻りが発生する。そのため、撓みや捩れを簡易的に表現して、容易にシミュレーションすることができるＣＡＤプログラムが望まれていた。
【０００６】
本発明はこのような点に鑑みてなされたものであり、物品の撓みや捩れを簡易的に表現して、容易にシミュレーションすることができるＣＡＤプログラムを提供することを目的とする。
【０００７】
【課題を解決するための手段】
本発明では上記課題を解決するために、図１に示すような、柔軟性のある紐状及び帯状の物品をシミュレーションするＣＡＤプログラムにおいて、コンピュータに、シミュレーションしようとする物品の通過する第１の通過点Ｂ１と第２の通過点Ｂ２と、第１の通過点Ｂ１と第２の通過点Ｂ２とにおける接線上に配置される第１の制御点Ｃ１と第２の制御点Ｃ２と、及び複数の制御点Ｄ１，Ｄ２とによって自由曲線Ａを特定し、自由曲線Ａに沿って物品の断面形状をスイープして、物品の３次元形状を表示装置４に表示する、処理を実行させることを特徴とするＣＡＤプログラムが提供される。
【０００８】
このような、ＣＡＤプログラムによれば、第１の通過点Ｂ１と第２の通過点Ｂ２と、第１の制御点Ｃ１と第２の制御点Ｃ２と、及び複数の制御点Ｄ１，Ｄ２とによって自由曲線Ａを特定し、自由曲線Ａに沿って物品の断面形状をスイープして、物品の３次元形状を表示装置４に表示する。これにより、物品の撓みや捩れを簡易的に表現する。
【０００９】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。図１は、本発明の原理を説明する原理図である。図に示すように、コンピュータ１は、自由曲線特定手段２、表示手段３を有している。コンピュータ１には、表示装置４が接続されている。また、図１には柔軟性のある紐状及び帯状の物品の形状を示す自由曲線Ａが示してある。また、シミュレーションしようとする物品の通過する通過点Ｂ１，Ｂ２、通過点Ｂ１，Ｂ２の接線上に配置される制御点Ｃ１，Ｃ２、及び２つの制御点Ｄ１，Ｄ２が示してある。
【００１０】
自由曲線特定手段２は、物品が通過する通過点Ｂ１，Ｂ２、通過点Ｂ１，Ｂ２における接線上に配置される制御点Ｃ１，Ｃ２、及び２つの制御点Ｄ１，Ｄ２によって自由曲線Ａを特定する。なお、図１において自由曲線Ａをベジェ曲線とすると、６つの点によって特定されているのでベジェ曲線は５次式となる。そして、制御点Ｄ１，Ｄ２を増やすことによってベジェ曲線の次数は上がる。
【００１１】
表示手段３は、自由曲線特定手段２によって特定された自由曲線Ａに沿って、物品の断面形状をスイープし、物品の３次元形状を表示装置４に表示する。
ここで、自由曲線Ａは、接線上の制御点Ｃ１，Ｃ２、制御点Ｄ１，Ｄ２の配置によって形を変形でき、撓みや捩れを表現することができる。すなわち、制御点Ｃ１，Ｃ２、制御点Ｄ１，Ｄ２を、重力や自重を考慮して変更することにより、例えば、物品を装置に組み込んだときの状態を容易にシミュレーションすることができる。
【００１２】
このように、柔軟性のある紐状及び帯状の物品が通過する２つの通過点Ｂ１，Ｂ２、通過点Ｂ１，Ｂ２における接線上に配置される制御点Ｃ１，Ｃ２、及び２つの制御点Ｄ１，Ｄ２によって自由曲線Ａを特定する。そして、自由曲線Ａに沿って物品の断面形状をスイープさせ、物品の３次元形状を表示装置４に表示するようにした。これによって、物品の撓みや捩れを簡易的に表現でき、容易に物品のシミュレーションをすることができる。
【００１３】
次に本発明の実施の形態の構成例について説明する。本発明の実施の形態では、自由曲線の特にベジェ曲線での場合について説明する。図２は、コンピュータのハードウェア構成を示すブロック図である。図に示すように、コンピュータ１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０ａによって装置全体が制御されている。ＣＰＵ１０ａには、バス１０ｇを介してＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０ｂ、ハードディスクドライブ（ＨＤＤ：Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１０ｃ、グラフィック処理装置１０ｄ、入力インタフェース１０ｅ、及び通信インタフェース１０ｆが接続されている。
【００１４】
ＲＡＭ１０ｂには、ＣＰＵ１０ａに実行させるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）のプログラムや、ハーネスやケーブルといった柔軟性のある紐状及び帯状の物品の３次元形状を表示し、シミュレーションするためのアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０ｂには、ＣＰＵ１０ａによる処理に必要な各種データが保存される。ＨＤＤ１０ｃには、上記のＯＳやアプリケーションプログラム、各種データなどが格納される。
【００１５】
グラフィック処理装置１０ｄには、モニタ１０ｈが接続されている。グラフィック処理装置１０ｄは、ＣＰＵ１０ａからの命令に従って、画像をモニタ１０ｈの表示画面に表示させる。入力インタフェース１０ｅには、キーボード１０ｉと、マウス１０ｊとが接続されている。入力インタフェース１０ｅは、キーボード１０ｉやマウス１０ｊから送られてくる信号を、バス１０ｇを介してＣＰＵ１０ａに送信する。
【００１６】
通信インタフェース１０ｆは、ネットワーク２０に接続されている。通信インタフェース１０ｆは、ネットワーク２０を介して、図示してないが他のコンピュータと通信を行う。
【００１７】
以上のようなハードウェア構成によって、本実施の形態を実現することができる。
ここで、シミュレーションする物品の形状表現について説明する。図３は、ベジェポリゴンとその曲線の形状を示す。図に示す曲線は、制御点Ｐ０〜Ｐ５によって特定された５次（６階）ベジェ曲線である。このベジェ曲線は、ワイヤハーネスやケーブルなど、柔軟性のある紐状及び帯状の物品の中心線における形状を示している。図中において下方に重力が働き、ベジェ曲線（物品）は図中下方に撓んだ状態となっている。
【００１８】
この図において制御点Ｐ０，Ｐ５は、シミュレーションしようとする物品の通過点（留め金などによって固定される位置）である。よって、物品の形状をシミュレーションするには、残りの制御点Ｐ１〜Ｐ４の４点の位置（座標値）を決定すればよい。なお、図３の状態を１つのセグメントと呼ぶ。このセグメントを複数連ねることによって、１本のシミュレーションしようとするワイヤハーネスやケーブルが表現される。
【００１９】
図４は、複数のセグメントを連ねたときの曲線の形状を示す。図には、制御点Ｐ０〜Ｐ５によって物品の形状が特定されたセグメントＳ１と、制御点Ｐ６〜Ｐ１１によって物品の形状が特定されたセグメントＳ２が示してある。セグメントＳ１の制御点Ｐ５と、セグメントＳ２の制御点Ｐ６は重なっている。すなわち、セグメントの端の制御点を連ねていくことにより、物品の複雑な形状を表現することができる。そして、連なったセグメントのベジェ曲線に沿って、物品の断面をスイープすることによって、物品の３次元形状を表すことができる。
【００２０】
図５は、１本のケーブルの形状を例示した図である。セグメントを複数連ねることによって、図に示すような１本のケーブルの形状を表現することができる。図に示す通過点と通過点の間は、１つのセグメントによって表現される。図では、４つのセグメントを用いて１本のケーブルが表現されている。
【００２１】
コンピュータ１０の機能について説明する。図６は、コンピュータの機能ブロック図である。図に示すように、コンピュータ１０は、入力部１１、ベジェ曲線特定部１２、スイープ部１３、及び表示部１４を有している。
【００２２】
入力部１１は、物品の形状を表示するために必要な入力データを受け付ける。入力データは、図２で示したキーボード１０ｉ、マウス１０ｊより入力される。入力データは、具体的には、１．シミュレーションされるワイヤハーネスやケーブルなどの物品の、通過点の位置（留め金で固定する位置、ＸＹＺ座標値で示される）とその通過点数、２．通過点の位置での（単位）接線ベクトル、３．物品の全長、４．重力の方向、５．物品の断面半径、６．力が加わらない部分（物品の垂れ下がった部分、撓んだ部分）の撓み半径（撓んだ部分の曲率半径）、７．力が加わる部分（物品を固定した位置の近傍）の限界半径である（物品を固定した位置の近傍の曲率半径）。
【００２３】
なお、上記１の通過点の位置は、ワイヤハーネスやケーブルの中心線の通過位置である。また、上記６，７の自由半径、限界半径は、ワイヤハーネスやケーブルの剛性を示す。撓み半径、限界半径は、その値が大きい程、剛性が大きいことを示し、ワイヤハーネスやケーブルの形状のとりうる範囲（例えば、曲がる範囲、撓む範囲）を決めるものである。また、上記２の接線ベクトルは、ワイヤハーネスやケーブルを特定の方向に向けて留める場合に入力され、必須の入力項目ではない。接線ベクトルが入力されない場合は、通過点から一般的にＣＡＤシステムで自由曲線形状を作成する場合に使用されるＨｅｒｍｉｔｅ補間法を用いて３次曲線を生成し、生成した３次式の通過点での接線ベクトルを用いる。Ｈｅｒｍｉｔｅ補間法以外にもＬａｇｒａｎｇｅ補間法をはじめとする種々の補間法を用いてもよい。３次式を使用することについては、物体が特に拘束されない場合、その物体の形状は、それ自身の形状エネルギーが小さくなる方向に向かうことを考えると十分であると考えられる。
【００２４】
ベジェ曲線特定部１２は、入力部１１に入力された入力データに基づいて５次ベジェ曲線を特定する。上記１〜７の入力データの全てが入力された場合、１セグメント（通過点間）ごとにおけるベジェ曲線の制御点が特定される。ベジェ曲線特定部１２は、各セグメント（セグメント数＝通過点数−１）のベジェ曲線を連ねることにより、１本の紐状及び帯状の物品の形状を特定する。
【００２５】
図７は、制御点と入力データの関係を説明する図である。図に示す制御点Ｐ０，Ｐ５の位置は、入力データの通過点の位置によって特定される。制御点Ｐ１，Ｐ４の位置は、制御点Ｐ０，Ｐ５における接線ベクトルＶ０，Ｖ１上に配置され、入力データの接線ベクトルとその他の入力データによって特定される。制御点Ｐ２，Ｐ３の位置も入力データによって特定される。なお、本発明の実施の形態では、制御点Ｐ２，Ｐ３は、地面に対して水平な位置に設定する。
【００２６】
ここで、セグメント間における物品の線長をｌ、形状半径をｒ（物品の形状を柱状とする）、撓み半径をＲｆ、限界半径をＲｓとする。また、図７に示す制御点Ｐ１の制御点Ｐ０からの距離、制御点Ｐ４の制御点Ｐ５からの距離を剛性長さＬｗとする（接線ベクトルＶ０，Ｖ１上の制御点Ｐ１，Ｐ４の位置は、制御点Ｐ０，Ｐ５からの距離が、剛性長さＬｗで等しくなるよう特定される）。なお、線長ｌは、各セグメントの、両端の通過点間の距離を算出し、物品の全長を比例配分することにより算出される。直接、通過点間の物品長の値を入力データとしてもよい。
【００２７】
線長ｌは、一定であるので、制御点Ｐ２，Ｐ３の位置を可変することによって、接線ベクトルＶ０，Ｖ１上の制御点Ｐ１，Ｐ４の位置（剛性長さＬｗ）が求まる。このとき、ベジェ曲線が、撓み半径Ｒｆ、限界半径Ｒｓを満たすように特定しなければならない。剛性長さＬｗは、次の式（１）によって求める。
【００２８】
【数１】
2004362191.tif 000003
【００２９】
Ｌｗｍ＝５Ｌｗｍａｘの係数５は、扱う物品が軽いものほど大きな値に、重い物ほど小さな値にする必要があるが、経験的に５を設定している。また、式（１）の高さｈは、通過点（制御点）間の中央点からベジェ曲線の最も撓んだ部分（最下点）までの距離である。剛性長さＬｗは、式（１）の高さｈを可変し、撓み半径Ｒｆ、限界半径Ｒｓを満たすよう求められる。
【００３０】
図８は、中央点を説明する図である。図に示すように、中央点Ｐｍは、制御点Ｐ０とＰ５との中央に設定される。中央点Ｐｍは、Ｐｍ＝（Ｐ１＋Ｐ４）／２によって求められる。
【００３１】
図９は、剛性長さと高さの関係を示した図である。図に示すように、縦軸をＬｗ、横軸をｈ／Ｌｗｍとすると、式（１）のＬｗは図８に示すような関係を有する。高さｈが、５Ｌｗｍａｘ（ｈ／Ｌｗｍ＝１）のとき、Ｌｗは、（Ｌｗｍａｘ＋Ｌｗｍｉｎ）／２となる。すなわち、高さｈが、剛性長さＬｗの最大値Ｌｗｍａｘの５倍になったとき、剛性長さＬｗは、（Ｌｗｍａｘ＋Ｌｗｍｉｎ）／２となる。この高さｈ（５Ｌｗｍａｘ）を半減期高さと呼び、物品に、無理なく標準的にストレスがかかっている状態とする。
【００３２】
Ｌｗｍｉｎ＝１．５Ｒｓ、Ｌｗｍａｘ＝１．５Ｒｆの係数１．５について説明する。図１０は、剛性長さの最大値、最小値の係数を説明する図である。図に示すように、曲線Ｋは、２次式で表される曲線で、撓みを表現する最低レベル曲線式である。曲線Ｋは、ｘ−ｙ座標に示され、頂点はｘ＝０，ｙ＝０である。２次式の曲線Ｋを表現する標準的なベジェポリゴンを直角二等辺三角形とした場合、その直角二等辺三角形の一辺の長さｍは、ｘ＝０，ｙ＝０での曲率半径Ｒの２の平方根倍となることから、概ねの値１．５を係数とした。
【００３３】
降伏高さについて説明する。物品は、通過点において、例えば、下方から斜め上方に向かって固定されることもある。この場合、物品は、重力によって、下方から上方へ、そして上方から下方に向かって曲がる部分が生じる。重力によって、物品がこれ以上上方に向かわず、重力方向（下方）に降伏する高さを降伏高さとする。最大の降伏高さをとる剛性長さＬｗｙをＬｗｙ＝Ｎ・Ｌｗｍａｘとする。Ｎは、例えば、２に設定される。
【００３４】
重力作用について説明する。重力作用は以下の３つの条件変更を行う。１１．仮想重力方向：真の重力方向と物品の通過点の接線ベクトルとの合成ベクトル方向に向くとする。１２．降伏重力方向：１１で示した方向に伸びて降伏した後の重力方向。上方に伸びて降伏した場合は、水平となる。１３．最終重力方向：真の重力方向。これらの３つの重力方向座標系は保存しておく。
【００３５】
ベジェ曲線特定部１２は、以上のデータをセットした後、式（１）の高さｈを可変し剛性長さＬｗを算出する。剛性長さＬｗより、接線ベクトル上の２つの制御点（図７において、制御点Ｐ１，Ｐ４）の位置が特定される。
【００３６】
ベジェ曲線特定部１２は、中央点Ｐｍから上記１１〜１３の方向で、高さｈの点に中心を持つ最大値Ｌｗｍａｘを半径とする円を配置する。そして、この円周上に残りの２つの制御点（図７において、制御点Ｐ２，Ｐ３）を配置する。図１１は、円の中心を説明する図である。円の中心Ｐｇは、Ｐｇ＝Ｐｍ＋ｈｇで示される。中央点Ｐｍは、制御点Ｐ０，Ｐ５の中央点であり、高さｈｇは、中央点Ｐｍから５次ベジェ曲線の最も撓んだ部分（最下点）までの距離である。図に示す方向ｇは、上記１１〜１３の方向を示し、高さｈｇは、上記１１〜１３の各々場合における値をとりうるので、中心Ｐｇは、３つの値をとりうる。中心Ｐｇ、最大値Ｌｗｍａｘを半径とする円に制御点Ｐ２，Ｐ３を配置する。
【００３７】
ベジェ曲線特定部１２は、６つの制御点が同一平面内に存在し、限界曲がり角度の条件を満たしていれば、６つの制御点によって、ベジェ曲線を特定する。限界曲がり角度の条件を満たさなければ、条件を満たすよう新たな制御点の位置を算出する。
【００３８】
ここで、限界曲がり角度について説明する。図７における制御点Ｐ１−Ｐ０と制御点Ｐ１−Ｐ２がなす角度、及び制御点Ｐ３−Ｐ４と制御点Ｐ５−Ｐ４がなす角度を曲がり角度θとする。曲がり角度θは、次の式（２）によって示される。
【００３９】
【数２】
2004362191.tif 000004
【００４０】
曲がり角度θは、物品にストレスがかからない場合、π／２となるように、最大ストレスがかかる場合、θｍ（１．９π／２）となるように変化する。θｍ＝１．９π／２の係数１．９は、２以上にするとθｍがπ以上の値になり、これは曲がり角度θが１８０度以上にならない（例えば、ワイヤハーネスやケーブルが行って帰るような折れ曲がりにならない）ようにするための係数で、２未満であればよい。式（２）の曲がり角度θが、所定の角度以上にならないよう決められる所定の角度を限界曲がり角度という。
【００４１】
図１２は、曲がり角度と高さの関係を示した図である。図に示すように、縦軸をθ、横軸をｈ／Ｌｗｍとすると、式（２）のθは図１２に示すような関係を有する。高さｈが、５Ｌｗｍａｘ（ｈ／Ｌｗｍ＝１）のとき、θは、（π／２＋θｍ）／２となる。すなわち、高さｈが、剛性長さＬｗの最大値Ｌｗｍａｘの５倍になったとき、曲がり角度θは、（π／２＋θｍ）／２となる。この高さｈ（５Ｌｗｍａｘ）を半減期高さと呼び、物品に、無理なく標準的にストレスがかかっている状態とする。
【００４２】
ベジェ曲線特定部１２は、通過点及び接線ベクトル上以外の制御点（図７における制御点Ｐ２，Ｐ３）の配置によって、一方の曲がり角度が限界曲がり角度の条件を満たさない場合、その曲がり角度の条件を満たさない制御点と限界曲がり角度の条件を満たす制御点とを結ぶ線と、限界曲がり角度をなす直線との交点を新たな制御点とする。そして、この制御点が上記で説明した円の円周上に位置するよう、その円の中心をスライドさせる。そしてもう一方の制御点の位置を特定する。図１３は、限界曲がり角度を満たすようにする制御点を説明する図である。図に示す制御点Ｐ１−Ｐ０と制御点Ｐ１−Ｐ２がなす曲がり角度は、限界曲がり角度を満たしていないとする。制御点Ｐ３−Ｐ４と制御点Ｐ５−Ｐ４がなす曲がり角度は、限界曲がり角度を満たしているとする。このとき、限界曲がり角をなしている直線ｌ’と制御点Ｐ２，Ｐ３が結ぶ線の交点を新たな制御点Ｐ２ａとする。そして、制御点Ｐ２ａが、上記で説明した制御点Ｐ２，Ｐ３が配置されるべき円の円周上に位置するように、円の中心をスライドさせる。そして、制御点Ｐ２ａ，Ｐ３の位置を特定して、ベジェ曲線を特定する。
【００４３】
ベジェ曲線特定部１２は、通過点及び接線ベクトル上以外の制御点（図７における制御点Ｐ２，Ｐ３）の配置によって、両方の曲がり角度が限界曲がり角度の条件を満たさない場合、全制御点を含む平面に垂直で、通過点及び接線ベクトル上以外の２つの制御点を含む円の円周上で、その２つの制御点を回し、限界曲がり角度の条件を満たすようにする。図１４は、限界曲がり角度を満たすようにする制御点を説明する図である。図に示す制御点Ｐ２，Ｐ３は、図７の制御点Ｐ２，Ｐ３を上方から見た状態で示している。図に示す円は、制御点Ｐ２，Ｐ３とその他の制御点（図７の制御点Ｐ０，Ｐ１，Ｐ４，Ｐ５）を含む平面に垂直で、制御点Ｐ２，Ｐ３を含んでいる。ベジェ曲線特定部１２は、円周上で制御点Ｐ２，Ｐ３を回転し、限界曲がり角度を満たす制御点Ｐ２ｂａ，Ｐ２ｂｂの位置を特定して、ベジェ曲線を特定する。すなわち、物品のとりうる形状の範囲内でベジェ曲線を特定できない場合、全制御点を含む平面から制御点Ｐ２，Ｐ３を外し、物品のとりうる形状の範囲内に納まるようにする。
【００４４】
ベジェ曲線特定部１２は、自己交差を調べる。自己交差とは、ベジェ曲線が一部閉じた曲線をなし、交差することをいう。実際のワイヤハーネスやケーブルにおいて、自己交差ということはありえない。そのため、ベジェ曲線特定部１２は、自己交差をする場合、自己交差を避けるよう上記で説明したのと同様に、通過点と接線ベクトル上の制御点以外の制御点を円周上で回転させる。
【００４５】
制御点を回転させると、線長ｌが変わってしまう。そのため、ベジェ曲線特定部１２は、再び、ベジェ曲線を生成しなおし、線長を求める。この処理を繰り返し行って、線長が線長ｌと十分等しくなれば、そのときのベジェ曲線を特定する。線長が線長ｌと十分等しくならない場合、上記で説明した重力作用を変更する。上記１１の重力作用で計算していれば、上記１２の重力作用へ、上記１２の重力作用で計算していれば、上記１３の重力作用で計算し直す。なお、この変更は、非可逆である。重力作用の変更が生じた場合は、高さｈを０に、そうでない場合は、ｈ＋ｄｈとして増減する。このｄｈは、２分探索型で＋または−に変化する。
【００４６】
次に、通過点の一方が自由（固定されてない）で、接線ベクトルだけが与えられた場合について説明する。この場合、ベジェ曲線特定部１２は、２次（３階）ベジェ曲線を想定する。与えられた長さ（物品の線長）が剛性長さＬｗの最大値Ｌｗｍａｘより短い場合は、直線上で長さを調整する。図１５は、通過点の一方が自由で線長がＬｗｍａｘより小さい場合の制御点を示す図である。図に示す制御点Ｐ０は、固定された通過点である。線長が剛性長さＬｗの最大値Ｌｗｍａｘより短い場合は、残りの制御点Ｐ１，Ｐ２は、与えられた接線ベクトル上に配置するようにする。制御点Ｐ０〜Ｐ２によって、２次ベジェ曲線を特定し、その長さが線長となるように調整する。
【００４７】
２次ベジェ曲線を３階表現での限界とし、与えられた線長がそのベジェ曲線の線長より小さい場合は、この２次ベジェ曲線の自由となっている側の制御点を動かして長さ調整する。図１６は、通過点の一方が自由で与えられた線長がベジェ曲線の線長より小さい場合の制御点を示す図である。図に示すように、与えられた線長がベジェ曲線の線長Ｌより小さい場合は、固定されてない側の制御点Ｐ２を動かして、長さを調整する。
【００４８】
与えられた線長がベジェ曲線の線長Ｌより長い場合は、３次ベジェ曲線に変更し、決定していない制御点を重力方向に移動して長さを調整する。図１７は、通過点の一方が自由で与えられた線長がベジェ曲線の線長より大きい場合の制御点を示す図である。図に示すように、３次ベジェ曲線に変更し、新たな制御点Ｐ３を重力方向に移動して長さを調整する。
【００４９】
スイープ部１３は、ベジェ曲線特定部１２によって、ベジェ曲線が特定されると、入力部１１に入力された物品の形状半径の円をベジェ曲線に沿ってスイープさせる。これにより、ベジェ曲線は３次元形状となる。なお、物品が帯状であれば、その帯状の断面の縦と横の長さが入力データとなる。その縦と横の長さを有する四角形をベジェ曲線に沿ってスイープさせる。
【００５０】
表示部１４は、スイープ部１３によってスイープされたベジェ曲線を、例えば、図２に示したモニタ１０ｈに表示する。
図６のコンピュータ１０の動作について説明する。入力部１１は、入力データを受け付ける。ベジェ曲線特定部１２は、入力データの物品の全長から、１セグメント間における線長ｌを算出する。ベジェ曲線特定部１２は、線長ｌを満足するよう式（１）の高さｈを変化させ、剛性長さＬｗを算出する。これにより、接線ベクトル上の制御点が求まる。なお、入力データより、通過点における制御点は求まっている。
【００５１】
ベジェ曲線特定部１２は、重力作用を考慮し、残りの制御点を算出する。全ての制御点が同一平面内に存在し、限界曲がり角度を満たしていれば、これらの制御点によってベジェ曲線を特定する。
【００５２】
残りの制御点が限界曲がり角度を満たしていない場合、ベジェ曲線特定部１２は、通過点における制御点と接線ベクトル上の制御点以外の制御点を動かして、限界曲がり角度を満足するようにする。そして、ベジェ曲線特定部１２は、この制御点でベジェ曲線を特定する。
【００５３】
ベジェ曲線特定部１２は、ベジェ曲線の自己交差を調べる。ベジェ曲線特定部１２は、ベジェ曲線が自己交差をしていれば、通過点における制御点及び接線ベクトル上の制御点以外の制御点を動かして、自己交差をしないようにする。
【００５４】
ベジェ曲線特定部１２は、ベジェ曲線を生成しなおし、ベジェ曲線の線長を算出する。ベジェ曲線特定部１２は、ベジェ曲線の線長と物品の線長ｌが十分に等しければ、そのときのベジェ曲線を特定する。ベジェ曲線特定部１２は、ベジェ曲線の線長と線長ｌが十分に等しくない場合は、重力作用を変更してベジェ曲線の線長と物品の線長ｌが十分に等しくなるようにし、ベジェ曲線を特定する。
【００５５】
スイープ部１３は、ベジェ曲線特定部１２によって特定されたベジェ曲線に沿って、ワイヤハーネス又はケーブルの断面をスイープする。表示部１４は、モニタ１０ｈに、スイープしたベジェ曲線を表示する。
【００５６】
次に、物品の２つの通過点が固定される場合における、ベジェ曲線を特定するまでのコンピュータ１０の動作を流れ図を用いて説明する。図１８，図１９は、物品の２つの通過点が固定される場合のコンピュータの処理の流れを示した流れ図である。コンピュータ１０は、以下のステップに従ってベジェ曲線を特定する。
【００５７】
［ステップＳ１］コンピュータ１０の入力部は、入力データを受け付ける。入力データは、物品の通過点（留め金）の位置（ＸＹＺ座標値）とその数、通過点の位置での接線ベクトル、物品の全長、重力の方向、物品の断面半径、撓み半径、限界半径である。
【００５８】
［ステップＳ２］コンピュータ１０のベジェ曲線特定部１２は、接線ベクトルが指定されていない（接線ベクトルが入力されなかった場合）通過点を抽出する。ベジェ曲線特定部１２は、抽出した通過点の接線ベクトルを、Ｈｅｒｍｉｔ補間法、Ｌａｇｒａｎｇｅ補間法等によって決定する。
【００５９】
［ステップＳ３］ベジェ曲線特定部１２は、通過点間（１セグメント間）の物品の線長ｌを算出する。ベジェ曲線１２は、個々の通過点間の、物品の線長ｌが指定されていない場合（物品の全長のみが指定されている場合）は、全長を通過点間の距離で比例配分する。
【００６０】
［ステップＳ４］ベジェ曲線特定部１２は、仮想重力方向を求める。
［ステップＳ５］ベジェ曲線特定部１２は、通過点間の中央点からベジェ曲線の最も撓んだ部分（最下点）までの距離である高さｈを０に設定する。
【００６１】
［ステップＳ６］ベジェ曲線特定部１２は、高さｈを可変し、剛性長さＬｗ、その最大値Ｌｗｍａｘ、限界曲がり角度を算出する。
［ステップＳ７］ベジェ曲線特定部１２は、接線ベクトル上に配置される制御点Ｐ１，Ｐ４の位置を求める。
【００６２】
［ステップＳ８］ベジェ曲線特定部１２は、円の中心Ｐｇを求める。
［ステップＳ９］ベジェ曲線特定部１２は、中心Ｐｇ、最大値Ｌｗｍａｘを半径とする円を決定する。
【００６３】
［ステップＳ１０］ベジェ曲線特定部１２は、制御点Ｐ２，Ｐ３を円周上で仮決定する。
［ステップＳ１１］ベジェ曲線特定部１２は、現在の制御点Ｐ１，Ｐ４の位置において、限界曲がり角度を満足しているかを判断する。制御点Ｐ１，Ｐ４のどちらかが、満足していない場合は、限界曲がり角度の平面と制御点Ｐ２，Ｐ３を結ぶ交点を新たな制御点Ｐ２ａとし、制御点Ｐ２ａが円周上の点となるように円の中心をスライドさせる。制御点Ｐ２，Ｐ３ともに限界曲がり角度を満足しない場合、制御点Ｐ２，Ｐ３を円周上で回し、限界曲がり角度を満たす位置に移動する。
【００６４】
［ステップＳ１２］ベジェ曲線特定部１２は、求まった制御点Ｐ０〜Ｐ５において、ベジェ曲線を作成する。
［ステップＳ１３］ベジェ曲線特定部１２は、自己交差の有無をチェックする。ベジェ曲線特定部１２は、自己交差があった場合、物品の半径分を考慮した分だけ円周周りに制御点Ｐ２，Ｐ３を回転させる。
【００６５】
［ステップＳ１４］ベジェ曲線特定部１２は、ベジェ曲線を再作成する。ベジェ曲線特定部１２は、与えられた物品の線長ｌと作成したベジェ曲線の長さを比較する。ベジェ曲線の長さが物品の線長ｌの許容範囲（十分等しい値）内で、全てのセグメントンにおいてベジェ曲線が特定できた場合、処理を終了する。ベジェ曲線の長さが物品の線長ｌの許容範囲内で、全セグメントンにおいてベジェ曲線が特定できてない場合、次のセグメントについて同処理を行うためステップＳ４へ進む。許容範囲外であれば、ステップＳ１５へ進む。
【００６６】
［ステップＳ１５］ベジェ曲線特定部１２は、重力場の降伏条件を検査する。重力場の変更がない場合、高さｈを増減させて（２分探索）ステップＳ６から再計算を行う。ここで、ベジェ曲線の線長が長すぎた場合は、高さｈを減少、短すぎた場合は、高さｈを増加する。重力場の変更がある場合、ステップＳ１６へ進む。
【００６７】
［ステップＳ１６］ベジェ曲線特定部１２は、重力作用を変更する。高さｈを０にして、ステップＳ６から再計算を行う。
このようにして、コンピュータ１０は、ベジェ曲線を特定する。
【００６８】
次に、物品の通過点の一方が自由な場合における、ベジェ曲線を特定するまでのコンピュータ１０の動作について説明する。図２０は、物品の通過点の一方が自由な場合のコンピュータの処理の流れを示した流れ図である。コンピュータ１０は、以下のステップに従ってベジェ曲線を特定する。
【００６９】
［ステップＳ２１］コンピュータ１０の入力部は、入力データを受け付ける。入力データは、物品の通過点の位置とその数、通過点での接線ベクトル、物品の全長、重力の方向、物品の断面半径、撓み半径、限界半径である。
【００７０】
［ステップＳ２２］ベジェ曲線特定部１２は、ベジェ曲線の最も撓む部分（最下点）までの距離である高さｈを０に設定する。
［ステップＳ２３］ベジェ曲線特定部１２は、高さｈを可変し、剛性長さＬｗ、その最大値Ｌｗｍａｘ、限界曲がり角度を算出する。
【００７１】
［ステップＳ２４］ベジェ曲線特定部１２は、物品の線長（全長）Ｌが最大値Ｌｗｍａｘ以下か否かを判断する。ベジェ曲線特定部１２は、物品の線長Ｌが最大値Ｌｗｍａｘ以下であれば、ステップＳ２５へ進む。物品の線長Ｌが最大値Ｌｗｍａｘより大きければ、ステップＳ２６へ進む。
【００７２】
［ステップＳ２５］ベジェ曲線特定部１２は、ベジェ曲線を直線として作成し、処理を終了する。
［ステップＳ２６］ベジェ曲線特定部１２は、２次のベジェ曲線を想定し、制御点Ｐ０〜Ｐ２を求める。制御点Ｐ０は、通過点である。制御点Ｐ１は、通過点を通る入力データとして受け付けた接線ベクトル上で、最大値Ｌｘｍａｘの位置とする。制御点Ｐ２は、制御点Ｐ０，Ｐ１、重力方向を含む平面上で制御点Ｐ１の角度が９０度で重力方向に最大値Ｌｗｍａｘの位置とする。ベジェ曲線特定部１２は、この制御点Ｐ０〜Ｐ２で２次のベジェ曲線を作成する。
【００７３】
［ステップＳ２７］ベジェ曲線特定部１２は、物品の線長Ｌとベジェ曲線の曲線長Ｌｋを比較する。線長Ｌと曲線長Ｌｋが等しければ、処理を終了する。物品の線長Ｌが曲線長Ｌｋより小さければ、制御点Ｐ２の位置を制御点Ｐ１に近づけ、ステップＳ２４へ進み再計算を行う。物品の線長Ｌがベジェ曲線長Ｌｋより大きければ、ステップＳ２８へ進む。
【００７４】
［ステップＳ２８］ベジェ曲線特定部１２は、２次のベジェ曲線では物品を表現できないので、ベジェ曲線の次数を３次に上げる。ベジェ曲線特定部１２は、ステップＳ２６で求めた制御点Ｐ０〜Ｐ２に、制御点Ｐ３を追加する。制御点Ｐ３は、制御点Ｐ２から重力方向にｘ移動させた点とする。ベジェ曲線特定部１２は、制御点Ｐ０〜Ｐ３でベジェ曲線を再作成する。
【００７５】
［ステップＳ２９］ベジェ曲線特定部１２は、線長ＬとステップＳ２８で作成したベジェ曲線の曲線長Ｌｋを比較する。線長Ｌと曲線長Ｌｋが等しければ、処理を終了する。曲線長Ｌｋが物品の線長Ｌより大きければ、制御点Ｐ３を移動させるｘの値を小さくしてステップＳ２８へ進む。曲線長Ｌｋが物品の線長Ｌより小さければ、制御点Ｐ３を移動させるｘの値を大きくしてステップＳ２８へ進む。
【００７６】
このようにして、コンピュータ１０は、ベジェ曲線を特定する。
以上より、柔軟性のある紐状及び帯状の物品の通過点と、その２つの通過点ごとにおける接線ベクトル上の２つの制御点、さらにもう２つの制御点によって５次ベジェ曲線を特定する。そして、５次ベジェ曲線に沿って物品の断面形状をスイープさせ、物品の３次元形状をモニタに表示するようにした。これにより、物品の撓みや捩れを簡易的に表現でき、容易に物品のシミュレーションをすることができる。また、通過点である２つの制御点以外の、４つの制御点の位置を特定すればよく、高速な処理が可能となる。
【００７７】
また、接線ベクトル上の２つの制御点を物品の線長及び物品のとりうる形状を満たすように特定することにより、また、もう２つの制御点の位置を、物品の線長及び物品のとりうる形状を満たすように特定することにより、物品の撓みや捩れを簡易的に表現でき、容易に物品のシミュレーションをすることができる。
【００７８】
なお、本発明の実施の形態では、ベジェ曲線について説明したが、ＮＵＲＢＳ（Ｎｏｎ−Ｕｎｉｆｏｒｍ  Ｒａｔｉｏｎａｌ  Ｂ−ｓｐｌｉｎｅ）曲線等、その他の自由曲線についても利用可能である。
【００７９】
上記の処理機能を実現するプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＤＶＤ−ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ（Ｒｅｃｏｒｄａｂｌｅ）／ＲＷ（ＲｅＷｒｉｔａｂｌｅ）などがある。光磁気記録媒体には、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  ｄｉｓｃ）などがある。
【００８０】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００８１】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００８２】
（付記１）  柔軟性のある紐状及び帯状の物品をシミュレーションするＣＡＤプログラムにおいて、
コンピュータに、
シミュレーションしようとする物品の通過する第１の通過点と第２の通過点と、前記第１の通過点と前記第２の通過点とにおける接線上に配置される第１の制御点と第２の制御点と、及び複数の制御点とによって自由曲線を特定し、
前記自由曲線に沿って前記物品の断面形状をスイープして、前記物品の３次元形状を表示装置に表示する、処理を実行させることを特徴とするＣＡＤプログラム。
【００８３】
（付記２）  前記第１の制御点と前記第２の制御点との位置を、前記物品の線長及び前記物品のとりうる形状を満たすように特定することを特徴とする付記１記載のＣＡＤプログラム。
【００８４】
（付記３）  前記複数の制御点の位置を、前記物品の線長及び前記物品のとりうる形状を満たすように特定することを特徴とする付記１記載のＣＡＤプログラム。
【００８５】
（付記４）  前記物品のとりうる形状の範囲内で前記自由曲線の形状を特定することができない場合、前記第１の通過点、前記第２の通過点、前記第１の制御点、及び前記第２の制御点の存在する平面上にある前記複数の制御点を、前記平面上から外すことを特徴とする付記１記載のＣＡＤプログラム。
【００８６】
（付記５）  前記自由曲線が交差する場合、前記交差を生じないように前記第１の通過点、前記第２の通過点、前記第１の制御点、及び前記第２の制御点の存在する平面上にある前記複数の制御点を、前記平面上から外すことを特徴とする付記１記載のＣＡＤプログラム。
【００８７】
（付記６）  前記第１の通過点と前記第２の通過点は、固定された点であることを特徴とする付記１記載のＣＡＤプログラム。
（付記７）  前記第１の通過点と前記第２の通過点の一方は、固定された点であることを特徴とする付記１記載のＣＡＤプログラム。
【００８８】
（付記８）  前記自由曲線は、５次式であることを特徴とする付記１記載のＣＡＤプログラム。
【００８９】
【発明の効果】
以上説明したように本発明では、シミュレーションしようとする物品の通過する第１の通過点と第２の通過点と、第１の通過点と第２の通過点とにおける接線上に配置される第１の制御点と第２の制御点と、及び複数の制御点とによって自由曲線を特定する。そして、自由曲線に沿って物品の断面形状をスイープして、物品の３次元形状を表示装置に表示するようにした。これにより、物品の撓みや捩れを簡易的に表現でき、容易に物品のシミュレーションをすることができる。
【図面の簡単な説明】
【図１】本発明の原理を説明する原理図である。
【図２】コンピュータのハードウェア構成を示すブロック図である。
【図３】ベジェポリゴンとその曲線の形状を示す。
【図４】複数のセグメントを連ねたときの曲線の形状を示す。
【図５】１本のケーブルの形状を例示した図である。
【図６】コンピュータの機能ブロック図である。
【図７】制御点と入力データの関係を説明する図である。
【図８】中央点を説明する図である。
【図９】剛性長さと高さの関係を示した図である。
【図１０】剛性長さの最大値、最小値の係数を説明する図である。
【図１１】円の中心を説明する図である。
【図１２】曲がり角度と高さの関係を示した図である。
【図１３】限界曲がり角度を満たすようにする制御点を説明する図である。
【図１４】限界曲がり角度を満たすようにする制御点を説明する図である。
【図１５】通過点の一方が自由で線長がＬｗｍａｘより小さい場合の制御点を示す図である。
【図１６】通過点の一方が自由で与えられた線長がベジェ曲線の線長より小さい場合の制御点を示す図である。
【図１７】通過点の一方が自由で与えられた線長がベジェ曲線の線長より大きい場合の制御点を示す図である。
【図１８】物品の２つの通過点が固定される場合のコンピュータの処理の流れを示した流れ図である。
【図１９】物品の２つの通過点が固定される場合のコンピュータの処理の流れを示した流れ図である。
【図２０】物品の１つの通過点が固定される場合のコンピュータの処理の流れを示した流れ図である。
【符号の説明】
１  コンピュータ
２  自由曲線特定手段
３  表示手段
４  表示装置
１１  入力部
１２  ベジェ曲線特定部
１３  スイープ部
１４  表示部
Ａ  自由曲線
Ｂ１，Ｂ２  通過点
Ｃ１，Ｃ２，Ｄ１，Ｄ２，Ｐ１〜Ｐ１１  制御点
Ｖ０，Ｖ１  接線ベクトル
【図１】
2004362191.tif 000005
【図２】
2004362191.tif 000006
【図３】
2004362191.tif 000007
【図４】
2004362191.tif 000008
【図５】
2004362191.tif 000009
【図６】
2004362191.tif 000010
【図７】
2004362191.tif 000011
【図８】
2004362191.tif 000012
【図９】
2004362191.tif 000013
【図１０】
2004362191.tif 000014
【図１１】
2004362191.tif 000015
【図１２】
2004362191.tif 000016
【図１３】
2004362191.tif 000017
【図１４】
2004362191.tif 000018
【図１５】
2004362191.tif 000019
【図１６】
2004362191.tif 000020
【図１７】
2004362191.tif 000021
【図１８】
2004362191.tif 000022
【図１９】
2004362191.tif 000023
【図２０】
2004362191.tif 000024