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.