Dsl (Digital Simulation Library) for .Net

この章では計算結果の折れ線グラフ表示や各変数の一覧情報などを表示する DslDialogBox について説明します。

参照:DslDialog

DslDialogBoxの起動方法

DslDialogBox は以下のような機能を提供します。

  • 変数の一覧:値、フラグ、折れ線グラフの出力指定等を編集できます。

  • 折れ線グラフ:線種、シンボルの編集、任意のテキストの挿入等ができます。

  • 変数の時系列値:折れ線グラフの出力指定された変数の各積分刻み時の値。修正することもできます。

  • 計算順序決定・実行:値、フラグなどを編集した後で計算順序の決定、計算の実行ができます。

DslDialogBox を表示するには、まず、DslDialogBox のインスタンスを作成します。
 コピー イメージコードをコピー
DslDialogBox dlg = new DslDialogBox();
計算から除外された変数や、変数の数が多い場合等、一部の変数を一覧から外したい場合は以下のようにフィルターを定義 することができます。フィルターを定義しない場合(null)の場合、すべての変数が一覧表示されます。 VariableFilter は以下の文字列を返す必要があります。
  • null ... 引数で渡された変数は一覧に表示しない。
  • "" ... 引数で渡された変数は一覧に表示するが、折れ線グラフは表示しない。
  • 任意の文字列 ... 引数で渡された変数は一覧に表示すると同時に折れ線グラフも表示する。
注意事項:
"" や 「任意の文字列」は DslDialogBox 表示後に自由に変数できます。 ただし、編集すると今までの実行データはクリアされます。
 コピー イメージコードをコピー
// 一覧表示する変数の選別と折れ線グラフのグループ分け("積分変数","微分変数","通常の変数").
// 引数の変数 v が計算から無視されている場合は無視、時間に依存しない場合はグラフ出力されません.
dlg.VariableFilter = delegate(Processor pr, Variable v)
{
    if (!v.IsAlive())     return null;  // 計算から無視された変数は一覧から除外する.
    if (v.IsConstant())   return "";    // 時間に依存しない変数は折れ線グラフ出力はしない.
    if (v.IsIntegrated()) return "積分変数";
    if (v.IsDerivative()) return "微分変数";
    return "通常の変数";
};
注意事項:
null や "" 以外の文字列を返すと、折れ線グラフが出力されます。返される文字列は折れ線グラフ グループ分けに利用されるという重要な意味があります。上記の例では「積分変数」、「微分変数」、「通常の変数」という3つの グループに複数の変数がまとめて描画されます。例えば <I>型変数は全て一つの「積分変数」グラフにまとめられます。
DslDialogBox はいつでも表示できますが、実行結果と同時に折れ線グラフも表示させたい場合は、以下のように Show() メソッドで表示させます。
 コピー イメージコードをコピー
// 計算順序の決定.
if (pr.DeterminateOrder() == RESULT.OK)
{
    // 計算順序が決定したら時間 0 ~ 100 まで実行後、計算結果と折れ線グラフを表示.
    dlg.Show(null,pr,0,100,2);
}
注意事項:
DslDialogBox を取り敢えず表示させてから、計算順序の決定や計算実行を DslDialogBox のメニューから実行することもできます。

注意事項:
DslDialog はクラスライブラリーです。公開されている数々のクラスを利用してカスタマイズが可能です (DslGraphicsを参照してください)。 ただし、グラフ描画に関係する部分はオブジェクト構成なども含めて、改良のため将来色々と変更される可能性があります。 予めご了承ください。

先頭へ

折れ線グラフ

以下は例題2の結果を、前期のフィルターを定義して 表示したものです。

GraphTab

DslDialogBoxに属する描画可能なグラフエレメント(座標軸、矩形、文字等)は全てマウスで移動したり左ダブルクリックや 右クリックで個別に編集可能です。画面左下のペインにまとめられている「設定...」ボタンをクリックすれば対象とする描画エレメント全てを同時に編集できます。 左上のペインにはグラフと画面の相対位置が矩形で表示されています。個々の矩形をマウスでドラッグ移動すると対応するページが画面上で移動します。 描画可能なエレメントには以下のような親子関係があります。

  • Canvas
    全てのグラフエレメントの親オブジェクトです。Canvas は例るなら机のようなもので、1枚の印刷用紙(Page)を置いて上下左右に用紙をずらして眺めることができます。 CanvasからPage、PageからGraph、Graphから座標軸と殆どの描画オブジェクトにアクセスできます。 ただし、描画オブジェクトには一旦画面に描画されないとプロパティの値が決定できないものがあります (例えば画面の解像度等)。使用するには一旦描画(Show(IWin32Window, Processor))した後で delegate や継承メソッド内で使用するのが安全です。
  • Page
    印刷用紙と考えて差し支えありません。大きさや向きは接続されているプリンターに依存します。 DslDialogBoxを使用する場合は(使用不可能でも)プリンターを必ず設定してください。 一つの Page には縦・横に複数の Graph (折れ線グラフ)を描画することができます。 縦・横の設定を変更すると各 Graph は再作成されるので、線種などの設定は初期化されます。 Graph 以外にページのタイトルやページ番号を表示する文字ラベルを保持します。
  • Graph
    一つのグラフは縦と横の座標軸と(複数の)変数に対応する折れ線グラフを表示できます。 また、マウスの右クリックで任意の位置に任意の文字ラベルを挿入することができます。

参照:DslDialog

先頭へ

変数一覧

以下は変数の一覧画面です。 一覧画面では変数の値やフラグ、変数の折れ線グラフの出力指定等の編集・設定が可能です。 設定を変更後計算順序の決定や、計算実行が可能です。 編集できないセルは背景がグレーになっています。

VariableTab

先頭へ

折れ線グラフ用実行結果

以下は折れ線グラフ出力指定された変数の実行中にサンプリングされた時系列データの一覧です。 データは修正可能です(折れ線グラフに反映されますが、変数に影響ありません)。

ResultTab

先頭へ

参照

先頭へ