[ブログに戻る](/ja/blog) # ODA Drawings Explorerのメニューとツールバーのカスタマイズ

Yuri Moskovsky 2月 16, 2023 [\#Example](/ja/blog/tag/example) [\#getting started](/ja/blog/tag/getting-started)

<a class="a2a_button_facebook"></a><a class="a2a_button_twitter"></a><a class="a2a_button_linkedin"></a>

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()-&gt;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文字をエスケープしてください。

| **元の文字** | **エスケープされた文字** |
| --- | --- |
| &amp; | &amp;amp; |
| " | &amp;quot; |
| ' | &amp;apos; |
| &lt; | &amp;lt; |
| &gt; | &amp;gt; |

ODE は、OdDieselEvaluate() を呼び出すために OdDieselService の独自の実装を使用します。詳細については、Drawing/Examples/Qt/OdaQtConsole/OdqConsole.cpp の OdqDieselServiceImpl クラスを参照してください。必要に応じて、このクラスの getSystemVariable() の実装を変更することで、DIESEL 関数のセットを拡張できます。

詳細については、[ODA ドキュメント](https://docs.opendesign.com/td/td_sample_qtOdaQtApp_toolbars.html)を参照してください。

## 今すぐ始める

**ODAソフトウェアを60日間無料でお試しください。  
リスクなし、クレジットカード不要。**

[無料で試す](https://www.opendesign.com/ja/free-trial)
