Mechanical SDK を操作する方法は、「イネーブラー」モードと「エディター」モードの 2 つがあります。使用する方法は通常、既存のメカニカルファイルやオブジェクトをそのまま使用するか、現在のバージョンに変換するかに依存します。
デフォルトモードは「イネーブラー」で、検証チェックや追加オブジェクトの作成なしに、メカニカルエンティティを含むデータベースをそのまま読み込み、レンダリングします。メカニカル SDK はすべてのオブジェクトを現在のメカニカルバージョンに変換しないため (これは主に記号標準の異なるリビジョンに適用されます)、古いバージョンのファイルはイネーブラーモードで正しくレンダリングされない場合があります。このモードを使用するために特別なアクションは必要ありません。メカニカルモジュールをロードするだけです。
もう1つのモードは「エディター」で、機械オブジェクトとの対話のための全機能を提供します。これには、作成、編集、削除、異なるバージョンへの保存などが含まれます。このモードを使用する場合、ファイル読み込み中のすべてのオブジェクトは最新の機械バージョンに変換されます。基本的なセットから不足しているオブジェクトも、機械データベースと正しく連携するために作成されます。このモードでMechanical SDKを使用するには、OdDbDatabaseオブジェクトではなく、OdDbDatabaseMechデータベースオブジェクトを作成する必要があります。
モードを切り替える機能は、リリース20.8で追加されました。
例
Mechanical SDKのコード例では、MyServicesクラス(OdDbHostAppServiceクラスから中間を介して継承)がモジュールとの特定の操作に使用されます。OdDbHostAppServiceには、データベース作成に使用される特別なdatabaseClass()メソッドがあります。したがって、「エディター」モードでMechanical SDKを使用したい場合は、databaseClass()メソッドをオーバーライドするだけで、新しいデータベースの静的なOdRxClass記述が返されます。
class MyServices : public ExSystemServices, public ExHostAppServices
{
protected:
ODRX_USING_HEAP_OPERATORS(ExSystemServices);
public:
virtual OdRxClass* databaseClass() const
{
return OdDbDatabaseMech::desc();
};
次に、サービスオブジェクトを作成し、初期化して、データベースを作成します。
// create MyServices object
OdStaticRxObject svcs;
//init ODA Platform
odInitialize(&svcs);
// load Mechanical modules
LoadTeighaMechanicalModules(false);
// next code creates an OdDbDatabaseMech object that allows you to use Mechanical SDK // in “editor” mode
OdDbDatabasePtr pDb = svcs.createDatabase(true, OdDb::kMetric);
pDb-> …