本ドキュメントでは、 GHL の 3.1 から 3.2 へのバージョンアップの内容 について述べています。
GHL 3.2 では主に 「曲線境界曲面に対するサポートの充実」と 「既存機能の利用性の向上」 が達成されています。
GHL 3.1 における曲線境界曲面は、そのベース面として開いた自由曲面のみを
対象としていましたが、GHL 3.2 では曲線境界曲面を除く全ての面をベース面
として扱えるようになりました。
利用の手引きの「対象形状の定義」の
曲線境界曲面
の項を参照して下さい。
また、曲線境界曲面の境界情報の編集作業を支援するために、 曲線境界曲面が関係する交線関数およびフィレット挿入関数については、 得られる交線やフィレットの端点が曲線境界曲面のどの境界にあるかを示す 情報も出力するようなバージョンを用意しました。
GHL 3.1 において、 曲線境界曲面(ベース面とその上の2次元表現による曲線境界)を与えて 平面近似を行なう関数を用意しました。 GHL 3.2 では、これに加えて ベース面と3次元表現による曲線境界を与えて 平面近似を行なう 関数を用意しました。
GHL ではこれまで「機能+入力形状タイプ」毎に独立した関数エントリを 用意していましたが、 GHL 3.2 ではこれらに加えて、 「機能」だけによる (入力形状のタイプを問わない) 関数エントリ(代表関数) を用意しました。
またこれらの関数に対する入力要素の生成は、 以下の定義関数を用いることにより、簡便に行うことが可能です。
GHL の各機能を利用する際に、 これまでは 関数の入力情報を用意するために まず形状要素の構造体のメモリ領域を確保してから、 その領域に定義情報を直接代入するコードを書き下す必要がありました。
これらのコードを書くためには、 まず最初に構造体の構造や情報の整合性を保つための条件を 正確に把握せねばなりませんが、 GHL を利用する目的が幾何形状の基礎的な事柄の学習ではない ユーザにとっては、 そのために費やすコストが問題になることがありました。
GHL 3.2 では、このコストを少しでも軽減するために、 各種の定義情報を入力として それらに基づいた形状要素を出力する 「定義関数」群を用意しました。
なお、既に GHL の構造体に慣れ親しんでしまったユーザにとっても、 これらの関数を利用することで GHL に関するコードがコンパクトで 見やすいものになってゆくことを期待しています。
GHL ではこれまで主なドキュメントとして LaTeX ベースの「利用の手引き」と roff ベースの「リファレンス・マニュアル」を 用意してきましたが、 これらについては以下のような問題がありました。
GHL 3.2 では、 これらの問題を解消するために、 上記のドキュメントを HTML によるハイパーテキストとして再構成した もの に置き換えました。
複数のフィレットなどが集まる部分の形状を無理なく表現するために 多辺パッチ(Sパッチ) を導入しました。 但し、今回の導入は多分に試験的なもので、 主に多辺パッチの生成と三角形分割の機能のみを サポートしています。
またこれに伴い、4辺に囲まれた領域を1枚の自由曲面で補間する 関数 も用意しました。
3.1 までの名前 3.2 での名前 --------------------------------------------------------------------------- gh2copyCrv gh2copyRCrv ある曲線をコピーする gh2gtdmCrv gh2gtdmRCrv 曲線のパラメータ定義域を得る gh2prtrCrv gh2prtrRCrv ある曲線を平行移動させる gh2rottCrv gh2rottRCrv ある曲線を回転させる gh3copyCrv gh3copyRCrv ある曲線をコピーする gh3copySrf gh3copyRSrf ある曲面をコピーする gh3defnCbs gh3initCbs 曲線境界曲面:初期化 gh3gtdmCrv gh3gtdmRCrv 曲線のパラメータ定義域を得る gh3gtdmSrf gh3gtdmRSrf 曲面のパラメータ定義域を得る gh3prtrCrv gh3prtrRCrv ある曲線を平行移動させる gh3prtrSrf gh3prtrRSrf ある曲面を平行移動させる gh3rottCrv gh3rottRCrv ある曲線を回転させる gh3rottSrf gh3rottRSrf ある曲面を回転させるまた、以下に挙げる関数は、GHL 3.2 において引数が変わっています。
gh3gtobCbs 曲線境界曲面:外側の境界線のコピーを得る
gh2allcCrv 構造体領域の獲得 − 曲線 gh2freeCrv 構造体領域の解放 − 曲線 gh3allcCrv 構造体領域の獲得 − 曲線 gh3allcSrf 構造体領域の獲得 − 曲線 gh3freeCrv 構造体領域の解放 − 曲面 gh3freeSrf 構造体領域の解放 − 曲面
gh2defnVec ベクトルの定義 gh2defnPnt 点の定義 gh2defnLin 直線の定義 gh2defnCir 円の定義 gh2defnCir2 円の定義(タイプ2) gh2defnEll 楕円の定義 gh2defnEll2 楕円の定義(タイプ2) gh2defnPar 放物線の定義 gh2defnPar2 放物線の定義(タイプ2) gh2defnHyp 双曲線の定義 gh2defnHyp2 双曲線の定義(タイプ2) gh2defnBzc ベジエ曲線の定義 gh2defnBsc Bスプライン曲線の定義 gh2defnRBzc 有理ベジエ曲線の定義 gh2defnRBsc 有理Bスプライン曲線の定義 gh2defnLsg ラインセグメントの定義 gh2defnTrc トリム曲線の定義 gh3defnVec ベクトルの定義 gh3defnPnt 点の定義 gh3defnLin 直線の定義 gh3defnCir 円の定義 gh3defnEll 楕円の定義 gh3defnPar 放物線の定義 gh3defnHyp 双曲線の定義 gh3defnBzc ベジエ曲線の定義 gh3defnBsc Bスプライン曲線の定義 gh3defnRBzc 有理ベジエ曲線の定義 gh3defnRBsc 有理Bスプライン曲線の定義 gh3defnLsg ラインセグメントの定義 gh3defnTrc トリム曲線の定義 gh3defnPln 平面の定義 gh3defnPln2 平面の定義(タイプ2) gh3defnSph 球の定義 gh3defnSph2 球の定義(タイプ2) gh3defnCyl 円柱の定義 gh3defnCyl2 円柱の定義(タイプ2) gh3defnCon 円錐の定義 gh3defnCon2 円錐の定義(タイプ2) gh3defnBzs ベジエ曲面の定義 gh3defnBss Bスプライン曲面の定義 gh3defnRBzs 有理ベジエ曲面の定義 gh3defnRBss 有理Bスプライン曲面の定義 gh3defnLes 柱面の定義 gh3defnRvs 回転面の定義 gh3defnRts 矩形有限曲面の定義
gh2coorCrv あるパラメータ値での曲線の値(点)を得る gh2cotaCrv gh2coorCrv + 接線ベクトル gh2cotacuCrv gh2cotaCrv + 曲率、主法線方向 gh2evalCrv あるパラメータ値での曲線の値(点)と導関数値を得る gh3coorCrv あるパラメータ値での曲線の値(点)を得る gh3cotaCrv gh3coorCrv + 接線ベクトル gh3cotacuCrv gh3cotaCrv + 曲率、主法線方向 gh3cotacutoCrv gh3cotacuCrv + レイ率 gh3evalCrv あるパラメータ値での曲線の値(点)と導関数値を得る gh3coorSrf あるパラメータ値での曲面の値(点)を得る gh3tangSrf あるパラメータ値での曲面の一次偏導関数ベクトルを得る gh3pdrvSrf あるパラメータ値での曲面の二次偏導関数ベクトルを得る gh3curvSrf あるパラメータ値での曲面の主曲率、主方向を得る gh2lengCrv 曲線の長さを得る gh3lengCrv 曲線の長さを得る
gh2intsCrvCrv 2曲線の交点を得る gh3intsCrvCrv 2曲線の交点を得る gh3intsCrvSrf 曲線と曲面の交点を得る gh3intsSrfSrf 2曲面の交線を得る
gh2onckPntPnt 2点が同位置を占めるかどうかを判定する gh2onckPntCrv ある点が曲線上にあるかどうかを判定する gh3onckPntPnt 2点が同位置を占めるかどうかを判定する gh3onckPntCrv ある点が曲線上にあるかどうかを判定する gh3onckPntSrf ある点が曲面上にあるかどうかを判定する
gh2projPntCrv ある点を曲線に投影する gh3projPntCrv ある点を曲線に投影する gh3projPntSrf ある点を曲面に投影する gh3projCrvPln ある曲線を平面に投影する
gh2normCrvCrv 2曲線の共通法線を得る
gh2tangPntCrv ある点から曲線への接線を得る
gh2tangCrvCrv 2曲線の共通接線を得る
gh2genrLin2P 2点を通過する直線を得る gh3genrLin2P 2点を通過する直線を得る gh2genrCir3P 3点を通過する円を得る gh2genrCir2PT 通過する2点とその接線方向から円を得る gh2genrEll2F 2焦点から楕円を得る gh2genrPar3P 3点を通過する放物線を得る gh2genrPar2P 頂点と焦点より放物線を得る gh2genrPar3PA 3点と軸の角度より放物線を得る gh2genrHyp3PAA 3点と軸および漸近線の角度より双曲線を得る gh2genrCnc5P 5点を通過する円錐曲線を得る gh2genrBscINTP 点列をBスプライン曲線で補間する gh2genrBscAPRC ある精度で点列をBスプライン曲線で近似する gh3genrBscINTP 点列をBスプライン曲線で補間する gh3genrBscAPRC ある精度で点列をBスプライン曲線で近似する gh3genrBssINTP 点網をBスプライン曲線で補間する gh3genrBssAPRC ある精度で点網をBスプライン曲線で近似する gh2convCrvLsg 曲線を直線近似した点列を得る gh3convCrvLsg 曲線を直線近似した点列を得る gh2convCrvRBzc 曲線を再現する有理ベジエ曲線を得る gh2convCrvRBsc 曲線を再現する有理Bスプライン曲線を得る gh3convCrvRBzc 曲線を再現する有理ベジエ曲線を得る gh3convCrvRBsc 曲線を再現する有理Bスプライン曲線を得る gh3convSrfRBzs 曲面を再現する有理ベジエ曲面を得る gh3convSrfRBss 曲面を再現する有理Bスプライン曲面を得る gh3ispmSrf 曲面の等パラメータ曲線を得る
gh2ifltPntPnt 2点間にフィレットを挿入する gh3ifltPntPnt 2点間にフィレットを挿入する gh2ifltPntCrv 点と曲線の間にフィレットを挿入する gh3ifltPntCrv 点と曲線の間にフィレットを挿入する gh3ifltPntSrf 点と曲面の間ににフィレットを挿入する gh2ifltCrvCrv 2曲線間にフィレットを挿入する gh3ifltCrvCrv 2曲線間にフィレットを挿入する gh3ifltCrvSrf 曲線と曲面の間にフィレットを挿入する gh3ifltSrfSrf 2曲面間にフィレットを挿入する
gh2ofstCrvBzc2 曲線のオフセットをベジエ曲線で近似する(タイプ2) gh2ofstCrvBsc2 曲線のオフセットをBスプライン曲線で近似する(タイプ2) gh3ofstPntBzs2 点のオフセットをベジエ曲面で近似する(タイプ2) gh3ofstPntBss2 点のオフセットをBスプライン曲面で近似する(タイプ2) gh3ofstCrvBzs2 曲線のオフセットをベジエ曲面で近似する(タイプ2) gh3ofstCrvBss2 曲線のオフセットをBスプライン曲面で近似する(タイプ2) gh3ofstSrfBzs2 曲面のオフセットをベジエ曲面で近似する(タイプ2) gh3ofstSrfBss2 曲面のオフセットをBスプライン曲面で近似する(タイプ2)
gh_lstmSchNSmplProc リストデータ処理 − ノードのデータのアドレスを比較する
gh1coorLsg あるパラメータ値でのラインセグメントの値(点)を得る gh1copyRCrv ある曲線をコピーする gh1cotaLsg gh1coorLsg + 接線ベクトル gh1distPntPnt 2点間の距離を得る gh1diviLsg ラインセグメントを分割する gh1evalLsg あるパラメータ値でのラインセグメントの値(点)と導関数値を得る gh1lengLsg ラインセグメントの長さを得る gh1rvrsLsg ラインセグメントの向きを逆にする gh1trncLsg ラインセグメントの前後を切断する
gh2diviCmc 複合曲線を分割する gh2diviTrc トリム曲線を分割する gh2enbxTrc トリム曲線の存在領域(矩形)を得る gh2mergCmc 複合曲線を結合する gh3diviCmc 複合曲線を分割する gh3diviTrc トリム曲線を分割する gh3mergCmc 複合曲線を連結する
gh3cnctlsgRSrf 曲面上のラインセグメントを補正する gh3convCbsSTri2 曲線境界曲面を平面(三角形の集合)で近似する(タイプ2) gh3convRSrfSTri2 曲面を平面(三角形の集合)で近似する(タイプ2) gh3dvdbCbs 曲線境界曲面:外境/内境が基礎面の境界を跨がないように分割する gh3gtppCbs 曲線境界曲面:与えられたパラメータ値が基礎面のどの周期あるかを得る gh3hnciCbs 曲線境界曲面:開いた形式の内境の番号を返す gh3hncoCbs 曲線境界曲面:開いた形式の外境を持つかどうかを返す gh3icboCbs 曲線境界曲面:基礎面上の曲線と外境/内境との交点を得る gh3trppCbs 曲線境界曲面:与えられたパラメータ値を指定の周期に移動させる
gh3ifltBscCbs Bスプライン曲線と曲線境界曲面間にフィレットを挿入する gh3ifltBssCbs Bスプライン曲面と曲線境界曲面間にフィレットを挿入する gh3ifltBzcCbs ベジエ曲線と曲線境界曲面間にフィレットを挿入する gh3ifltBzsCbs ベジエ曲面と曲線境界曲面間にフィレットを挿入する gh3ifltCbsCbs 2曲線境界曲面間にフィレットを挿入する gh3ifltCirCbs 円と曲線境界曲面間にフィレットを挿入する gh3ifltConCbs 円錐面と曲線境界曲面間にフィレットを挿入する gh3ifltCylCbs 円柱面と曲線境界曲面間にフィレットを挿入する gh3ifltEllCbs 楕円と曲線境界曲面間にフィレットを挿入する gh3ifltHypCbs 双曲線と曲線境界曲面間にフィレットを挿入する gh3ifltLesCbs 柱面と曲線境界曲面間にフィレットを挿入する gh3ifltLinCbs 直線と曲線境界曲面間にフィレットを挿入する gh3ifltParCbs 放物線と曲線境界曲面間にフィレットを挿入する gh3ifltPlnCbs 平面と曲線境界曲面間にフィレットを挿入する gh3ifltPntCbs 点と曲線境界曲面間にフィレットを挿入する gh3ifltRBscCbs 有理Bスプライン曲線と曲線境界曲面間にフィレットを挿入する gh3ifltRBssCbs 有理Bスプライン曲面と曲線境界曲面間にフィレットを挿入する gh3ifltRBzcCbs 有理ベジエ曲線と曲線境界曲面間にフィレットを挿入する gh3ifltRBzsCbs 有理ベジエ曲面と曲線境界曲面間にフィレットを挿入する gh3ifltRtsCbs 矩形有限曲面と曲線境界曲面間にフィレットを挿入する gh3ifltRvsCbs 回転面と曲線境界曲面間にフィレットを挿入する gh3ifltSphCbs 球面と曲線境界曲面間にフィレットを挿入する
gh3intsBssCbsWCBP Bスプライン曲面と曲線境界曲面の交線を得る gh3intsBzsCbsWCBP ベジエ曲面と曲線境界曲面の交線を得る gh3intsCbsCbsWCBP 曲線境界曲面と曲線境界曲面の交線を得る gh3intsConCbsWCBP 円錐面と曲線境界曲面の交線を得る gh3intsCylCbsWCBP 円柱面と曲線境界曲面の交線を得る gh3intsPlnCbsWCBP 平面と曲線境界曲面の交線を得る gh3intsRBssCbsWCBP 有理Bスプライン曲面と曲線境界曲面の交線を得る gh3intsRBzsCbsWCBP 有理ベジエ曲面と曲線境界曲面の交線を得る gh3intsRtsCbsWCBP 矩形有限曲面と曲線境界曲面の交線を得る gh3intsSphCbsWCBP 球面と曲線境界曲面の交線を得る gh3intsTLesCbsWCBP 柱面と曲線境界曲面の交線を得る gh3intsTRvsCbsWCBP 回転面と曲線境界曲面の交線を得る
gh3ifltBscCbsWCBP Bスプライン曲線と曲線境界曲面間にフィレットを挿入する gh3ifltBssCbsWCBP Bスプライン曲面と曲線境界曲面間にフィレットを挿入する gh3ifltBzcCbsWCBP ベジエ曲線と曲線境界曲面間にフィレットを挿入する gh3ifltBzsCbsWCBP ベジエ曲面と曲線境界曲面間にフィレットを挿入する gh3ifltCbsCbsWCBP 2曲線境界曲面間にフィレットを挿入する gh3ifltCirCbsWCBP 円と曲線境界曲面間にフィレットを挿入する gh3ifltConCbsWCBP 円錐面と曲線境界曲面間にフィレットを挿入する gh3ifltCylCbsWCBP 円柱面と曲線境界曲面間にフィレットを挿入する gh3ifltEllCbsWCBP 楕円と曲線境界曲面間にフィレットを挿入する gh3ifltHypCbsWCBP 双曲線と曲線境界曲面間にフィレットを挿入する gh3ifltLesCbsWCBP 柱面と曲線境界曲面間にフィレットを挿入する gh3ifltLinCbsWCBP 直線と曲線境界曲面間にフィレットを挿入する gh3ifltParCbsWCBP 放物線と曲線境界曲面間にフィレットを挿入する gh3ifltPlnCbsWCBP 平面と曲線境界曲面間にフィレットを挿入する gh3ifltPntCbsWCBP 点と曲線境界曲面間にフィレットを挿入する gh3ifltRBscCbsWCBP 有理Bスプライン曲線と曲線境界曲面間にフィレットを挿入する gh3ifltRBssCbsWCBP 有理Bスプライン曲面と曲線境界曲面間にフィレットを挿入する gh3ifltRBzcCbsWCBP 有理ベジエ曲線と曲線境界曲面間にフィレットを挿入する gh3ifltRBzsCbsWCBP 有理ベジエ曲面と曲線境界曲面間にフィレットを挿入する gh3ifltRtsCbsWCBP 矩形有限曲面と曲線境界曲面間にフィレットを挿入する gh3ifltRvsCbsWCBP 回転面と曲線境界曲面間にフィレットを挿入する gh3ifltSphCbsWCBP 球面と曲線境界曲面間にフィレットを挿入する
gh3intpBlBss 4線からなる境界をBスプライン曲面で補間する
gh3allcGS Sパッチの初期化 gh3convGSBzs Sパッチをベジエ曲面で近似する gh3convGSSTri Sパッチを三角形群に変換する gh3coorGS Sパッチの幾何特性評価 gh3cretGS Gregory Sパッチを生成する gh3freeGS Sパッチを解放する gh3incdGS2 Sパッチの次数上げ gh3normGS Sパッチの法線ベクトルを求める
サポートに関する御連絡は、以下の宛先へお送り下さい。
株式会社 精密形状処理研究所 FAX:03-5276-6478
柿下 尚武 naokak@pml.co.jp 長谷川 亨 hasegawa@sra.co.jp
鹿野 信幸 shikano@pml.co.jp 徐 子韜 zitao@pml.co.jp 伊藤 英明 hideit@pml.co.jp