あらゆる形状要素の幾何的な問題を、
高精度で処理する汎用Cライブラリ
GHLは、精度と、汎用性を確保するために、次の項目に留意して開発されました。
- 【精度】
- すべての誤差判断は意味のはっきりした許容誤差(外部変数)と、
マシンに固有な丸めの誤差値により行っています。
- 【明瞭】
- 演算の結果は曖昧さのない意味が明瞭な情報として返されます。
- 【標準】
- 形状要素の表現形式は、原則として STEP の規格に沿っています。
- 【親切】
- 各関数の機能やインタフェイスを Web ブラウザで参照することができます。
- 【単純】
- 関数の入出力にはできる限り簡単な構造体を採用しています。
処理できる形状要素
- 【直線】
- (2次元/3次元)
- 【円錐曲線】
- (円/楕円/放物線/双曲線),(2次元/3次元)
- 【自由曲線】
- (Bezier/B-Spline),(有理/非有理),(2次元/3次元)
- 【トリム曲線】
- (2次元/3次元)
- 【複合曲線】
- (2次元/3次元)
- 【平面】
- 【2次曲面】
- (球/円柱/円錐)
- 【自由曲面】
- (Bezier/B-Spline),(有理/非有理)
- 【柱面】
- (底線+母線方向)
- 【回転面】
- (母線+回転軸)
- 【トリム曲面】
- (ベース面+任意の2次元形状),(穴の表現も可能)
- 【補助形状】
- (点/ベクトル/座標系)
演算の内容
- 【単独要素の評価】
- 指定箇所の幾何特性を得る
- 特異点 / 変曲点を得る
- 曲線の長さを得る
- 【複数要素間の干渉】
- 交点 / 交線 / 重複を得る
- 共通接線 / 共通法線を得る
- ある点からの垂線 / 接線を得る
- 【要素の生成】
- 通過点から円錐曲線を得る
- 点列を自由曲線 / 曲面で、補間 / 近似する
- 任意の形状をオフセットする
- 2つの形状の間にフィレットを挿入する
- 任意の曲線 / 曲面を直線 / 平面近似する
- 2次元:ボロノイ / ドロネー図を生成する
- 【その他】
- 座標変換 / ベクトル演算
- 各種の方程式を解く (高次代数方程式、連立方程式、最小自乗問題、等々)
関数インタフェイスの設計
- 関数は単純な機能のみを実行し、明確な結果を返します。
- 干渉計算では、対象となる形状要素のパラメータ空間での表現も返します。
- 複数個の解がある場合にもすべてを1度の呼び出しで返します。
利用例
- 新たな CAD の開発
- 印刷用の高精度フォントの開発
- 既存の CAD の機能拡張
- 3次元マンマシンインタフェイスの開発
- 古くなった CAD のリメイク、補修
- 有限要素法での局部的な特殊メッシュの生成
- 複数の CAD に共通のツールの開発
- 医療画像からの3次元モデルの生成
- 加工対象に最適な工具経路計算
- 新しい形状デザインツールの開発
動作環境
現在、以下の環境で稼働しています。
- SGI IRIX
- Sun SunOS4, SunOS5
- HP HP-UX
- FreeBSD
- Linux
- Apple MacOS & Metrowerks CodeWarrior (PowerMac only)
- Microsoft WindowsNT & Visual C++
この他についても、
通常の C コンパイラ (ただし int の表現: 32 bit 以上, double の表現: 64 bit 以上) が
利用できる環境であれば、問題なく動作するはずです。