GHL 3.4.4 リリースノート

本ドキュメントでは、 GHL 3.4.3から 3.4.4 へのバージョンアップの内容 について述べています。



バージョンアップの概要

・3次元:三角形分割再考
曲線境界曲面を三角形分割する関数の高速化を図りました。 この高速化バージョンは、従来の関数 gh3convCbsSTri2 とは 別の関数 gh3convCbsSTri2_Rev2 として実装してあります。
・2次元:埋め込みグラフでループを表現できるように機能強化
疑似埋め込みグラフにおいて、面の内部にループ (穴) を持てるようにしました。
今回は上記の少しの機能だけの追加になってしまいましたが、 今後は新たな機能の用意ができる度に細かな間隔でバージョンアップを 行ないたいと考えております。

追加された関数

2次元

gh2pegCntItemsWL	要素の数を得る
gh2pegCopyWL	コピー
gh2pegE_GetFace	半辺の左面を得る
gh2pegE_GetMate	半辺の相方を得る
gh2pegE_GetNext	半辺の次の半辺を得る
gh2pegE_GetPrev	半辺の前の半辺を得る
gh2pegE_GetVrtx	半辺の始点を得る
gh2pegF_GetFirstEdge	面の最初の半辺を得る
gh2pegF_GetFirstLoop	面の最初のループを得る
gh2pegF_IsFace		面が実際に面であるか否か
gh2pegGetEbyL	ループを囲む辺のリストを獲得
gh2pegGetVbyL	ループを囲む頂点のリストを獲得
gh2pegIdentLoop	二つのループの識別子の同一性判定
gh2pegL_GetFace		ループを含む面を得る
gh2pegL_GetFirstEdge	ループの最初の半辺を得る
gh2pegL_GetNextLoop	ループの次のループを得る
gh2pegL_IsLoop		ループが実際にループであるか否か
gh2pegMEv2	辺と頂点の生成 (type 2)
gh2pegKLME	辺を生成して、ループを削除
gh2pegMLKE	辺を削除して、ループを生成
gh2pegGetLApplD	ループに設定したデータの獲得
gh2pegSetLApplD	ループに任意のデータを設定
gh2pegTrvL	すべてのループに対して指定の関数を実行
gh2pegV_GetFirstEdge	頂点の最初の半辺を得る

3次元

gh3convCbsSTri2_Rev2	曲線境界曲面を平面(三角形の集合)で近似する(タイプ2、レビジョン2)

不具合の修正

以下は、GHL 3.4.3 リリース以降に修正した不具合の一覧です。
トリム曲線を入力とする多くの関数
トリム曲線のパラメータ増分値が 0 である場合を考慮していない
gh2insk{Bsc,RBsc}, gh2divi{Bsc,RBsc}
与えられたパラメータ値が曲線のノット値の一つに非常に近い場合に プログラムが異常終了することがある
gh2trncCmc
曲線の継目近くで切断すると長さのないセグメントが残る
gh2ofstCmcCmcBy*
複合曲線を構成するトリム曲線のベース曲線が複合曲線であるような 場合にエラーが返る
gh2convRBscRBzc
常にプログラムが異常終了する。
gh2smplCmc
複合曲線を構成するトリム曲線のベース曲線がトリム曲線や複合曲線 であるような場合に一度の呼び出しではすべてのバラされない
gh2convLsgRBsc
閉じたラインセグメント全体が、閉じた形式のBsplineにならない
gh2cretCir3p
増分値が負になるべき場合の処理がおかしい
gh2lengCmc
閉じた曲線で周期の切目を跨ぐ区間の長さを求めると 0 が返ってしまう
gh2intsLinCir
直線と円が接触している場合に正しい解が出ないことがある
gh2intfTrcTrc
二つのトリム曲線のベースが共に円で、それらがオーバーラップしており、 さらにトリム曲線としては交点がある場合に、 交点のパラメータ値として返る値がおかしくなることがある
gh2intsLinLin
平行に近い直線間の角度の判定に誤差が含まれやすい
gh2anglVec
平行に近いベクトル間の角度に誤差が含まれやすい
gh2sdstXxxXxx (type 1)
type1関数において、解の数(number_solution)が正しくないことがある
gh2intsLinCir
直線と円が接触している場合に解が出ないことがある
gh2sdstCrvCrv
プログラムが異常終了することがある
(GHL 3.4.3 の 2D_patch02 に収録済み)
gh2evalRBzcH
内部で un-initialized memory read が起こる
(GHL 3.4.3 の 2D_patch02 に収録済み)
gh2leng{Bsc,RBsc}
長さを求める区間の幅が LMT_PTOL に等しい場合に、 プログラムが落ちることがある
(GHL 3.4.3 の 2D_patch02 に収録済み)
gh2trnc{Bsc,RBsc}
切断する区間の幅が LMT_PTOL に等しい場合に、プログラムが落ちることがある
(GHL 3.4.3 の 2D_patch02 に収録済み)
gh2divi{Bsc,RBsc}
端点からちょうど LMT_PTOL だけ離れた位置で分割しようとすると、 プログラムが落ちることがある
(GHL 3.4.3 の 2D_patch02 に収録済み)
gh2intfTrcTrc
対象が幾何的に閉じたラインセグメントである場合に、 周期を跨ぐオーバーラップが求まってしまうことがある
(GHL 3.4.3 の 2D_patch01 に収録済み)
gh2intfCmcCmc
対象が閉じた曲線の場合に周期を跨ぐオーバーラップを正しく 求められないことがある
(GHL 3.4.3 の 2D_patch01 に収録済み)
gh2pegKEf
一つの辺で出来た面を (消す/残す) 処理がおかしい
(GHL 3.4.3 の 2D_patch01 に収録済み)
gh2pegMVe
ぶら下がり辺を分割する処理がおかしい
(GHL 3.4.3 の 2D_patch01 に収録済み)
gh2pegKVe
両側の面のポインタの付け替えがおかしくなることがある
(GHL 3.4.3 の 2D_patch01 に収録済み)
gh2ofstBscBsc3, gh2ofstRBscBsc3
比較的大きなトレランスが与えられたときに、GH__OPE_GEOMERR で返ることがある
(GHL 3.4.3 の 2D_patch01 に収録済み)
gh2intfTrcTrc
二つのトリム曲線の母曲線が共に Gh2Line である場合に、 得られるパラメータが実際の交点からずれることがある
(GHL 3.4.3 の 2D_patch01 に収録済み)
gh2cretCir3p
増分値が負になるべきであると思われるような場合の処理が不明確
(GHL 3.4.3 の 2D_patch01 に収録済み)
gh2convLsgRBsc
この関数を呼び出すと予期できない結果が起り得る
(GHL 3.4.3 の 2D_patch01 に収録済み)
gh2mekm{Bsc,RBsc}
異常終了することがある
(GHL 3.4.3 の 2D_patch01 に収録済み)
gh3insk{Bsc,RBsc}, gh3divi{Bsc,RBsc}
与えられたパラメータ値が曲線のノット値の一つに非常に近い場合に プログラムが異常終了することがある
gh3projPntLes
柱面のベース曲線が直線あるいは円錐曲線の場合に、あるべき解 が返されないことがある
gh3diviSrf
曲面が穴を持つ場合に、分割後の穴が間違った曲面に属することがある
gh3trncCmc
曲線の継目近くで切断すると長さのないセグメントが残る
gh3diviTrc
端点で切ろうとすると OPE_PARAMERR が返る
gh3trncCmc, gh3diviCmc
閉じた曲線を境界で切断しようとすると OPE_PARAMERR が返る
gh3intsLin{Bsc,RBsc}
閉じたBスプライン曲線でエラーを発生する
gh3convLsgRBsc
閉じたラインセグメント全体が、閉じた形式のBsplineにならない
gh3intsPlnCon
円錐の軸と平面の法線が垂直である場合に、正しい解が得られないことがある
gh[23]diviCmc
gh2ofstCmcCmcBy{Bsc,Bzc}[23] 等で、干渉をトリミングしながら オフセットする際にトリミングした結果、曲線が一点に縮退するような 場合にプログラムが落ちる事がある
gh3intsCylCon
円錐の頂点が円柱の中にある場合に、円錐の中心軸が円柱の中心軸と 垂直であると閉曲線となるべき解の形状が一点に縮退してしまうことがある
gh3intsCirTrc
プログラムが落ちることがある
gh3projPntSph
投影点が球の極に一致する場合に、正しいパラメータ値が返らないことがある
gh3sdstXxxXxx (type 1)
type1関数において、解の数(number_solution)が正しくないことがある
gh3convCbs{Tri,Tri2}
(細かく分割された & 凹な) 境界を持つ曲面に対する処理結果が 正しくない (境界を保存しない) ときがある
(GHL 3.4.3 の 3D_patch02 に収録済み)
gh3projPnt{Bzs,Bss}
曲面に非常に近い点からの投影に失敗することがある
(GHL 3.4.3 の 3D_patch02 に収録済み)
gh3projPnt{Bss,RBss}2
内部で un-initialized memory read が起こる
(GHL 3.4.3 の 3D_patch02 に収録済み)
gh3evalRBzcH
内部で un-initialized memory read が起こる
(GHL 3.4.3 の 3D_patch02 に収録済み)
gh3projPnt{Bzc,Bsc}
曲線に非常に近い点からの投影に失敗することがある
(GHL 3.4.3 の 3D_patch02 に収録済み)
gh3leng{Bsc,RBsc}
長さを求める区間の幅が LMT_PTOL に等しい場合に、 プログラムが落ちることがある
(GHL 3.4.3 の 3D_patch02 に収録済み)
gh3trnc{Bsc,RBsc,Bss,RBss}
切断する区間の幅が LMT_PTOL に等しい場合に、 プログラムが落ちることがある
(GHL 3.4.3 の 3D_patch02 に収録済み)
gh3divi{Bsc,RBsc,Bss,RBss}
端点からちょうど LMT_PTOL だけ離れた位置で分割しようとすると、 プログラムが落ちることがある
(GHL 3.4.3 の 3D_patch02 に収録済み)
gh3aprcBss*, gh3aprcBss*_Rev2
gh3aprcBss* で、常に「補間」になってしまう。 また、gh3aprcBss*_Rev2 で、mid_tol の値が反映されない結果になる
(GHL 3.4.3 の 3D_patch02 に収録済み)
gh3convLsgRBsc
この関数を呼び出すと予期できない結果が起り得る
(GHL 3.4.3 の 3D_patch01 に収録済み)
gh3sdst*Cbs
エラーが発生することがある
(GHL 3.4.3 の 3D_patch01 に収録済み)
gh3mekm{Bsc,RBsc}
異常終了することがある
(GHL 3.4.3 の 3D_patch01 に収録済み)
gh3intsPlnCon
無限ループに陥ることがある。
(GHL 3.4.3 の 3D_patch01 に収録済み)
貴重な時間を費やして、 不具合を御報告頂いた皆様に改めて感謝致します。 ありがとうございました。

GHL 企画/開発担当者

柿下 尚武	naokak@pml.co.jp	
長谷川 亨	hasegawa@sra.co.jp
徐 子韜		zitao@pml.co.jp
鹿野 信幸	shikano@pml.co.jp
伊藤 英明	hideit@pml.co.jp

今後ともよろしくお願い致します。


Copyright (c) 2001 Precision Modeling Laboratory,Inc., Tokyo, Japan. All Rights Reserved.