【Scilab/Xcos】 GUIの例題(グラフを表示するGUIの作成-1)

1.例題の説明

2006年頃、レーザー変位計の測定結果(数値データ)をMATLABのGUIで表示させるプログラムを作りました。

現在は、MATLABの利用契約を解約しています。
しかし、作ったものが使えないのは困ってしまうので、そのプログラムの一部を例題として公開することにしました。

【例題の内容】
公開する例題では、正弦波(Sin波)をプロットするGUI画面の作成します。

  • プロットする正弦波は y=A・sinωt (A はゼロではない実数とする)
  • 周波数の可変範囲 (0<= ω <= 100.)
  • 振幅(強度 = A)の可変範囲 (0 <= A <= 100.)
  • プロットする時間 (0 <= t <= 10.)
  • 時刻の刻み幅dt (dt = 0.01 sec.)

とします。
例題を通じて作り込むと、以下に示されるようなGUI画面になります。

早速、トライしてみましょう。

2.GUI Builderの起動

Scilabのコンソール画面から以下のコマンドを入力し、”GUI Builder”を起動します。

–> guibuilder

以下のようなウィンドウが2つ立ち上がります。
一つは、GUI作成時に使うコンポーネント(プッシュボタンやリストボックスなど)を選択するコンポーネント・パネル。
もう一つは、コンポーネントパネルで選択したコンポーネントを配置し、GUI画面をデザインするデザイン・パネルです。

以下の資料では、GUI Builderのバージョンは2.3ですが、現在、2024年3月時点では4.2.3になっています。
基本的には変わらないのて、一部の資料は、2012年当時のバージョン2.3の画面を使わせていただきます。

3.周波数の可変範囲を設定

コンポーネントパネルから以下のコンポーネントを選択し、デザインパネルに配置してください。

  • スライダー
  • テキスト
  • スライダー

コンポーネント作成時には、デザインパネル配置前にTagとStringを設定する必要があります。
下図に設定するTagとStringをまとめましたので、参考にしてください。

TagとStringの設定については、以下のブログ記事の2.4節に設定画面が示されています。
視覚的な説明が必要な方は、そちらもご覧ください。
【Scilab/Xcos】GUIの例題(シリアル通信回線の接続 / 切断 切換えボタン) -1 | 株式会社応用技術研究所 (hagane-karakuriya.com)

4.周波数の設定(コンポーネントの配置方法)

コンポーネントを配置する流れを示してあります。
画像だけでは理解しづらい方には、手順を言葉でまとめてみましたので、ご参考にしてください。

  1. コンポーネントパネルから’Slider’ボタンをクリックし、選択する。
  2. 「Scilab複数値リクエスト(下記の画像では「Scilab複数値要求」となっている)」にTabとStringを設定する。
    Tagはコンポーネントを識別するための名称なので、コンポーネント毎に名前を変えること。
    Stringは操作ずる利用者が認識できるように表示させる文字列(例えば、「開始」、「閉じる」など)にする。
  3. 「Scilab複数値リクエスト」にTagとStringを設定したら、「OK」ボタンをクリックし閉じる。
    そのまま、デザインパネル上に”Slider”を配置する位置を設定する。(詳細は次のステップで説明)
  4. デザインパネル上で”Slider”を配置する2点(コンポーネントの配置したい領域の左上と右下)をクリックする。
  5. 配置語、コンポーネントパネルのリストボックスにTag名が表示されます。
    “Slider”のプロパティ(詳細設定)を行うときに、このTagを選択します。
  6. 配置後のコンポーネントの大きさや位置、プロパティの設定については、’9.配置されたコンポーネントの微調整’で説明します。

5.周波数の設定(その他のコンポーネント配置)

この作業を、残りのコンポーネント、”Text”や”Editbox”にも適用し、デザインパネル上に配置します。

6.振幅(強度 = A)の設定(概要)

前節の’5.周波数の設定’と同様に振幅の大きさ(強度 = A)を調整するスライダーを作り込みます。
作業の過程は、’周波数の設定’と同じになります。
以下のコンポーネントを選択し設定してください。

  • スライダー
  • テキスト
  • スライダー

各コンポーネントを識別するためのTagとStringは、下図に示される表などを参考にしてください。

7.表示時間などを設定

表示するグラフの横軸(時間軸)の設定するため、以下のコンポーネントを選択し作成します。

  • エディット
  • テキスト
  • プッシュボタン

時間軸の設定方法はScilabの書式をそのまま入力するようにしています。

[0,0.01,10] ⇒ [開始時刻 (0.0 秒), 時刻の刻み幅 0.01 秒, 表示終了時刻(10.0 秒]

となっています。
各コンポーネントのTabとStringは、以下の図を参照にしてください。

8.プロット画面の設定

正弦波(Sin波)を表示するプロット画面を作成します。
コンポーネントパネルから’Axes’を選択します。

設定するTagやStringは、以下の図を参考にしてください。

9.配置されたコンポーネントの微調整

デザインパネルに配置したコンポーネントについては、微調整が可能です。

  1. コンポーネントパネルに表示されたコンポーネントのTagをクリックして選択すると、該当するデザインパネル上のコンポーネントが選ばれます。
  2. コンポーネントの位置については、リストボックスの下にあるボタン”Up(上に移動)”,”Left(左に移動)”,”Right(右に移動)”,”Down(下に移動)”で調整します。
  3. “Move”ボタンをクリックしマウスのカーソルとデザインパネル上に移動させると、選択したコンポーネントがマウスのカーソルに追従しデザインパネル上を自由に移動します。
    位置を決めたらマウスをクリックし、コンポーネントの移動を完了させます。
    大きく位置を変更させるときに利用してください。
  4. コンポーネントの大きさを変更する場合、幅は”W-(幅を狭くする)”、”W+(幅を広くする)”を使います。
    高さを調整する場合、高さは”H-(高さを様くする)”,”H+(高さを拡げる)”を使います。
  5. コンポーネントを削除する場合、”Delete”ボタンをクリックすると、選択したコンポーネントは削除されます。
    Undo(やり直し)機能はありませんので、削除したコンポーネントを元に戻すことはできません。
    削除するときは、コードとしてバックアップを保存するなど、ご注意ください。
    ※バックアップ方法については、次回の記事で説明します。
  6. 選択したコンポーネントのプロパティ設定は、”Object Properties”ボタンをクリックし、設定する画面を立ち上げてください。
    その画面でStringの位置(左詰め、センタリング、右詰めなど)や、コンポーネントのバックグラウンドカラーなどを設定できます。

下図を参照してみてください。

10.次回のおしらせ(例題の続き)

続きは次回の記事に掲載いたします。

次回は、デザインパネルで作成したGUI画面をScilabのプログラムに変換します。
プログラム編集で、GUIのコンポーネントを操作したとき、イベントが発生しますが、イベントに対する処理”Callback”をプログラムで作成します。

GUIの場合、イベント・ドリブンのプログラムになります。
通常のプログラムはバッチ処理型なので、GUI画面が開いている間はScilabのプログラムが実行中となります。

プログラムの駆動方法が変わりますので、初めて挑戦する方は、その辺の違いについても調べてみてください。

PAGE TOP