ネイティブおよび変更された.satおよび.sabファイルバージョン
Standard ACIS Text (SAT)およびStandard ACIS Binary (SAB)は、Spatial Corporationによって開発された3D ACIS Modelerがサポートするファイル形式です。Spatial Corp. SAT®形式はテキスト形式であり、テキストエディタで表示できます。SAB形式はSAT形式のコンパクト版です。
Teighaは、3Dエンティティ (OdDbRegion、OdDbBody、OdDb3dSolid、OdDbSurfaceなど) の3Dジオメトリを定義するために.satおよび.sabファイルを使用します。
次の表は、.dwgおよび.dxfファイルの異なるバージョンで使用されるデフォルトのSATおよびSAB形式バージョンに関する情報を示しています。
| R14リリース | 106 |
| R15 (2000) リリース | 400 |
| R18 (2004) リリース | 20800 |
| R21 (2007) リリース | 21200 |
| R24 (2010) リリース | 21500 |
| R27 (2013) リリース | 21800 |
そして、以下の列挙型は、TeighaがサポートするすべてのSATおよびSAB形式バージョンのリストです。
enum AfTypeVerEnum
{
kAfVer105 = 105,
kAfVer106 = 106,
kAfVer107 = 107,
kAfVer200 = 200,
kAfVer201 = 201,
kAfVer400 = 400,
kAfVer500 = 500,
kAfVer600 = 600,
kAfVer700 = 700,
kAfVer20800 = 20800,
kAfVer21200 = 21200,
kAfVer21500 = 21500,
kAfVer21600 = 21600,
kAfVer21700 = 21700,
kAfVer21800 = 21800
};
バージョン700まではSpatial Corp. ACIS®と互換性があることに注意することが非常に重要です。バージョン20800以降は、追加の変換なしにはSpatial ACISライブラリ内で使用できません。20800以降、Autodesk® AutoCAD®は変更されたSATおよびSAB形式を使用しており、これらの変更されたバージョンはSpatial ACISのネイティブではありません。バージョン700を超えるすべてのネイティブSpatial ACIS SATおよびSAB形式も、.dwgおよび.dxfファイル形式と互換性がなく、Teighaでそのまま使用することはできません。
TeighaとSpatial ACIS間で3Dジオメトリデータを交換する一般的な解決策は、バージョン7を中間として使用することです。したがって、Teighaからバージョン700を取得し、Spatial ACISで使用します。または、Spatial ACISのバージョンを700にダウングレードしてTeighaで使用します。
TeighaでのSATおよびSABデータストリームへのアクセス
この静的メソッドは、.satおよび.sabファイルをロードし、エンティティの配列を返します。
static OdResult OdDbBody::acisIn(const OdString& filename, OdDbEntityPtrArray& solids);
なぜ単一のエンティティではなく配列を返すのですか?単一の.sat/.sabファイルには複数の3Dボディを含めることができます。しかし、.dwgファイルは、単一のボディを含む1つの.sat/.sabファイルを持つ1つの3Dエンティティに制限されています。そのため、.sat/.sabファイルの入力はボディの数をチェックされ、.sat/sabファイル内のボディのタイプに応じて3Dエンティティのセットが作成されます。出力配列には、3Dエンティティのセット (OdDbRegion、OdDbBody、OdDb3dSolid、OdDbSurfaceなど) が含まれます。ワイヤーボディのインポートはサポートされていません。
SATおよびSAB形式で3Dデータをエクスポートする対称的なメソッドは次のとおりです。
static OdResult OdDbBody::acisOut(const OdString& filename, const OdDbEntityPtrArray& solids, AfTypeVer typeVer = kAfVer700|kAfTypeASCII);
3Dデータを取得および設定する別の方法があります。各3Dエンティティクラスには、SATおよびSABデータに直接アクセスできる非静的メソッドがあります。これらのメソッドは、有効なデータ処理にのみ使用できます。例:
OdResult OdDbRegion::acisIn(OdStreamBuf* pStreamBuf, AfTypeVer *typeVer = 0);
OdResult OdDbRegion::acisOut(OdStreamBuf* pStreamBuf, AfTypeVer typeVer = kAfTypeVerAny);
例
OdaMFCAppは主要なTeighaビューアサンプルアプリケーションであり、.sat/.sabヘルパーを含んでいます。ヘルパーを起動するには、データベース内のAcDb3dSolidオブジェクトを右クリックします。
.sat/.sabファイルをロードおよび保存したり、3DエンティティからSATおよびSABデータを取得したり、.sat/.sabファイルから新しい3Dエンティティを作成したりできます。