ODA Drawings Explorer (ODE) は、ODAデータベースの表示および編集用のQTベースのサンプルアプリケーションです。.dwgファイルのサポートが統合されており、OdDbDatabasePEおよび対応するブリッジモジュールを介して他の形式(DGN、PRCなど)のデータベースにアクセスできます。DGNおよび.dwgファイルの編集がサポートされています。アプリケーションのソースコードは、Drawing/Examples/Qt/OdaQtAppディレクトリにあります。
アプリケーションのユーザーインターフェースはコマンド処理に基づいています。Autodesk® AutoCAD®と同様に、メニューとツールバーのロードとアンロードは、CUILOADおよびCUIUNLOADコマンドを使用して実行されます(MENUコマンドはCUILOADの同義語です)。
アプリケーションのmain()関数で、リソースまたはファイルシステムからCUIファイルをロードすることもできます。
int main(int argc, char *argv[])
{
...
QString qsMenuProfile = "qrc:/cui/odq_menu_base.cui",
qsToolbarsProfile = "qrc:/cui/odq_toolbar_base.cui";
getIConsole()->postponeCommand(QString("menu \"%1\"").arg(qsMenuProfile),
true, NULL, 100);
getIConsole()->postponeCommand(QString("cuiload \"%1\"").arg(qsToolbarsProfile),
true, NULL, 100);
...
}
"qrc:/"プレフィックスは、Drawing/Examples/Qt/OdaQtApp/data/data.qrcファイルで指定されたリソースからCUIファイルをロードするときに使用されます。
ODEのツールバーおよびメニューファイルは、ユーザーインターフェース用のAutoCAD CUI形式に基づいています。CUIファイルは、当初AutoCAD 2009のユーザーインターフェースカスタマイズ(CUI)エディターで作成されました。AutoCADのそれ以降のバージョンではCUIx形式(CUIファイルのセットを含むZIP圧縮されたディレクトリ)を使用するため、AutoCAD CUIエディターの代わりに好みのテキストエディターを使用することを強くお勧めします。ファイル形式はXMLに基づいており、非常にシンプルです。必要な変更の数は通常少ないです。
AutoCADと同様に、メニュー項目、アイコン、コマンドの場合、DIESEL評価器を介して事前処理が実行されます。たとえば、開いている図面の現在の状態でメニュー項目に対してgetIConsole()->evaluateDieselExpression(...);が'~'で始まるテキストを返した場合、対応するメニュー項目は無効になります(灰色でクリック不可)。空のテキストの場合、メニュー項目はスキップされます。
ODE dieselコマンドは、コンソールで結果を確認します。例:
diesel "$(if,$(or,$(<,$(strlen,$(getvar,filename)),1),$(and,$(eq,$(getvar,tilemode),0),$(eq,$(getvar,cvport),1))),~,)Top"
開いている図面がない場合、コマンドは「~Top」を返し、モデル空間タブが選択された開いている図面がある場合、「Top」を返します。
注: DIESELコマンドをCUIファイルに追加する際は、次のXML文字をエスケープしてください。
|
元の文字 |
エスケープされた文字 |
|
& |
& |
|
" |
" |
|
' |
' |
|
< |
< |
|
> |
> |
ODE は、OdDieselEvaluate() を呼び出すために OdDieselService の独自の実装を使用します。詳細については、Drawing/Examples/Qt/OdaQtConsole/OdqConsole.cpp の OdqDieselServiceImpl クラスを参照してください。必要に応じて、このクラスの getSystemVariable() の実装を変更することで、DIESEL 関数のセットを拡張できます。
詳細については、ODA ドキュメントを参照してください。