パネルマクロの基本 ーIgorの使い方ー

本記事ではグラフィカルにマクロを制御するパネルマクロの基本について解説します。

スポンサーリンク

パネルマクロとは何か

パネルマクロとはIgorのプログラム内に「パネル」と呼ばれるWindowを作り、そのパネル内のボタンなどでマクロを制御できる、Igorのマクロの一種です。グラフィカルにマクロを扱えるので、様々な解析をする際にはとても便利です。

パネルWindowの1例

外観は例えば上図のようになります。ボタン1つとタイトル文字だけのシンプルなパネルです。さらに解析の計算結果の数字を表示したり、様々な要素をパネルに加えることもできます。

スポンサーリンク

パネルの作り方

実は、私もこのパネルマクロは既成のマクロを改変することでしか作ったことがないので、最も効率がよい作成方法が分からないのですが、最も簡単なのはWindowsメニューから新規パネル作成を選ぶことです(下図)

作成すると下図のようになにも表示がない灰色のパネルができます。

この状態でCtrl+tを押すとツールボックスが現れ、パネルは編集モードになります。文字や図形を加えることができますし、パネル上で右クリックで背景の色も変えられます。

まずはパネルにボタンを加えてみましょう。メニューのPanelから→Add Controls→Add Buttonでボタンを加えられます。

Add Buttonを押すと下図のようにボタンについての入力を求められます。

Nameはマクロとしてのボタンの名前
Titleはボタン上に表示される文字
Top、Leftはパネル上でのボタンの位置
HeightとWidthはボタンの大きさです。

このボタンに、以前の記事で作った軸の名前を付けるマクロの機能を追加しましょう。

Procedureの右側にあるNewボタンを押すと下の黒文字ようなコードが出てくるので、赤字の部分を追加します。また、Titleも”axis”と変えてみましょう。

Function ButtonProc_1(ba) : ButtonControl
	STRUCT WMButtonAction &ba

	switch( ba.eventCode )
		case 2: // mouse up
			// click code here
ModifyGraph lsize=2
ModifyGraph tick=2,mirror=1,fSize=18;DelayUpdate
Label left "\\Z24Y axis (unit)";DelayUpdate
Label bottom "\\Z24X axis (unit)"
			
			break
		case -1: // control being killed
			break
	endswitch

	return 0
End

そして、Do itボタンを押せば下図のようなパネルが完成するはずです。ボタンの位置が変ですが、位置や大きさはドラックで変えることができます。

これでこのボタンを押すことによって軸の名前と表示を変更できるはずです。現状は編集モードになっているはずなので、ツールボックスのGoボタンを押してから試してみてください。

このように、これまで作成したマクロの機能をボタンに持たせることができます。自分の解析に便利なパネルマクロを作ってみましょう。

最後にこのパネルマクロを保存して終了です。パネルWindowを閉じると保存を求められますので、保存しましょう。あとから修正を加えた場合にはReplace(上書き保存)です。

パネルマクロの呼び出し

パネルマクロは通常のMacrosメニューにいないので戸惑うかもしれません。Window→Panel Macrosから呼び出せます。

マクロの構造

作ったパネルマクロは実際には全てマクロのコードで記述されています。

WindowsメニューのProcedure windowに作成したマクロのコードがあるはずです。今回作成したパネルであれば、以下のような記述がされているはずです。図に示したように、ボタンの内容について記載するマクロ(実際にはFunctionですが)とパネルのデザインやボタンの配置などに関するマクロ部分に分かれます。

より複雑なパネルを作成していくと、今回やったようにパネルにボタンを加えるよりも、このコードを直接編集した方が楽な場合があります。このことについてはまた別記事で扱うかもしれません。

このProcedureをipfファイルとして保存しておきましょう。Fileメニューからできます。保存したipfファイルは別のIgorファイル内で開いて使うことができます。

まとめ

今回はパネルマクロについてひとまず簡単な作り方を紹介しました。同じようにボタンを増やしていき、自分の解析効率を上げていってください。

コメント

タイトルとURLをコピーしました