ACIS背景
1. ACISとは?
ACIS (Alan, Charles, Ian's System) は、CADジオメトリモデリングカーネルです。C++で実装されており、サードパーティのアプリケーションに対して、高度なジオメトリモデリング機能を提供します。
- 主な役割: 3Dモデルの形状を「ジオメトリ(geometry)」と「トポロジ(topology)」で記述します。ボリューム、独立面、ワイヤーエッジといった様々なタイプの形状表現をサポートしています。
- Scheme AIDE: ACISの機能をテストしたり、プロトタイプを開発したりするためのSchemeインタープリタです。Spatial Corpとの連携にも利用されます。
2. コア概念ENTITYと派生クラス
ACISの根幹をなすのが、**ENTITY**という基底クラスです。
-
基本機能:
ENTITYクラスは、モデルの作成、削除、コピー、保存、復元、アンドゥ/リドゥ、デバッグといった基本的な操作メカニズムを定義しています。 - オブジェクト指向設計: オブジェクト指向プログラミング(OOP)の原則に基づいて設計されており、派生クラスはこれらの基本操作を継承しつつ、それぞれ具体的なロジックを実装します。
-
命名規則:
ENTITYから派生するクラスは、BODY,FACE,EDGEなどのように、通常すべて大文字で命名されます。
3. ACIS APIの種類と使い分け
ACISの機能にアクセスするための関数には、主に「API関数」と「Direct Interface関数」の2種類があります。
| 特性 | API関数 (api_プレフィックス) |
Direct Interface関数 |
|---|---|---|
| 主な用途 | 高レベル操作、安全性、異常回復が必要な場合 | 低レベル操作、直接的なジオメトリ変更、高速性が必要な場合 |
| 入力パラメータチェック | あり | なし(入力が正しいことを前提) |
| 異常処理 | 自動で例外を捕捉し、メモリリークを防止 | 基本的な例外捕捉、メモリリークを防止 |
| モデルロールバック | 操作失敗時に自動で有効な状態に回復 | なし(手動で処理が必要) |
| エラー返却 | 状態コードを返却(エラー情報を含む) | なし(例外捕捉や手動チェックが必要) |
| 実行効率 | 低い | 高い |
| 学習難易度 | 低い | 高い(ACIS内部実装の理解が必要) |
4. ACISアプリケーション開発の必須要素
ACISを利用したアプリケーションを構築・実行するには、以下の3つのコア要素が不可欠です。
- ACIS 認証ソフトウェア: ACISバージョン17以降では、ライセンス認証システムの統合が必須です。
-
api_start_modeller/api_stop_modeller: ACISモデラーのライフサイクル管理(初期化と終了)を行います。すべてのACIS API呼び出しは、この間に実行する必要があります。 -
api_initialize/api_terminate:BODYやFACEなどの特定のACISコンポーネントを初期化・終了します。必要に応じて適切なコンポーネントを初期化します。