"raise $w"
raise $w
tkwait window $w
という3行をコメントアウトします。行頭に # をつけるとよいでしょう。
とりあえずはこれで大丈夫ですが、なぜこんなことになるのかはわかりません。
Theta-I conversion で、Arc(correct) を選んでプロファイルを作成すると、
2θ=90度付近に高いピークが見えるだけになります。
平板カメラ以外が指定されていても、Arc(correct)では、回折環の面積の補正を
平板カメラを仮定して行います。よって、他のカメラでは不正確になります(特に湾曲型のカメラ)。
2θ=90度付近のピークもこのせいです(平板ではこんな角度はありえないため)。
拙作のiputilsの中の ipprofile ではこの問題を解決しています。
非Windowsで、出力先プリンタが選択できない。
方法1:プリンタ出力先を変更するような環境変数を設定しておく。
例(FreeBSD)
$ export PRINTER=mj700 (bash)
or
$ setenv PRINTER mj700 (csh系)
方法2:拙作のFreeBSDへの移植,及びプリンタ選択ダイアログの作成を
つかう。但し、プリンタの定義自体は各環境に応じて書き換える必要があります。
表示色の選択の際、カラーが選択肢として表示されない。
画面の表示色数によって制限されるようで、256色ではダメなようです。
"raxwish"とは?
名前から推測できるかもしれませんが、"wish"というのはTkのコマンドシェルで、
"raxwish"はそれに拡張を施し、R-AXISのファイルを扱いやすくしたwishだと思えばいいでしょう。
つまり、Tcl/TkにBLTやTIXなどの一般の拡張ライブラリを加えたものにさらにオリジナルの拡張を施したものと、
それを用いてGUIを作成するスクリプト群(%RAXISHOME%\bin\tcltk.src\以下)とから成るのが、
R-AXIS for Windowsだと考えられます。
なお、Linux/IRIS/FreeBSDなどで動くものでは、Cで書かれた古いバージョンもありますが、
最近のものであれば同じくTcl/Tkを用いたものでしょう。
"Fidicial" ってなに?
"fiducial"(起点の、基準の)のことでしょう、きっと。
リガク電機のホームページは?
無いと思います。
Rigaku International Corporationなんてのはありますが、
何かサポートしてもらえるのでしょうか?
...と思ったら、ありました。リガク電機。
displayでのピクセルサイズの変更時の変な挙動
display ソフトで、Setup - CameraType でピクセルサイズを変更すると、
画面表示中のカーソルが動き、カーソル座標の表示が変な値を示すことがあります。
ピクセル数単位での「座標」を示しているはずなのに、ピクセルサイズを変更した分だけ、
なぜか座標も変わってしまうのです。
HeaderEditなどで画像ファイル中のピクセルサイズ値を変更してから開くと、正しい値を示します。
ピクセルサイズを変更する際は、変更を保存し、ファイルを開きなおした方がいいようです。
displayで中心座標を変えても他のカーソルの中心との距離などの表示が変わらない
displayで、中心座標を移動させると、他のカーソルの欄に表示されている「中心との距離」などの表示も
変わるかと思うと、全く変わりません。一旦そのカーソルを選択してからカーソルを移動させて元に戻せば、
新しい表示になりますが、面倒ですし、間違いの元です。
仕様、でしょう...か?
$RAXISHOME/bin/tcltk.src/display/axisstat.tcl を修正することで対処できます。
こんな感じです。
displayで第2カーソルがファイルを読むたびに消える
これも仕様、でしょうか?...これはそのようです。
こんな感じで、リセットしている部分を無視すれば、消えなくなります。
積分強度をなるべく正確に得たい
R-AXISの"integral"では長方形の領域しか選択できませんが、これでは困ることが
多々あります。特に繊維写真など、スポットが伸びている場合にはほとんど使えません。
そこで、楕円領域を選択して強度計算をするツールを作りました。
主に、楕円領域を選択するためのGUI部分(実際には楕円は無理なので8点スプライン曲線)と
計算のためのシェル拡張とからなります。
GUI部分は、tcl言語で書けます。
問題はシェルの修正ですが、リガク電機の権利を侵害する恐れがあるので、公開できません。
SourceCodeをお持ちの方には、何らかの形でお知らせできるかもしれません。
また、GUI部分だけを用意し、出力は起動したShell/promptに出ればいい、ということなら、
拙作ippeakを呼ぶようにtclスクリプトを作れば良いと思います。
一応、スクリーンショット。
回転時のX-/Y-Profileがおかしい/ラインプロファイルを得たい
R-AXISの右方や下方にあるプロファイル部分をクリックすると、別ウィンドウで
プロファイルが表示されますが、"Cursor" - "Rotate"でカーソルを回転した場合、
別ウィンドウで表示されるプロファイルがdisplay画面上でのプロファイルと
異なる場合があります。
別ウィンドウのプロファイルは、回転しない場合のプロファイルであるためのようです。
一方、画像の任意の2点間のプロファイルを作成したい場合があります。
拙作iplineでできますが、GUIで両端点を指定したいと思うことがありますので、
2点を指定して別ウィンドウでプロファイルを表示するツールを作りました。
主に、2点を選択するためのGUI部分と計算のためのシェル拡張とからなります。
GUI部分は、tcl言語で書けます。
問題はシェルの修正ですが、これもリガク電機の権利を侵害する恐れがあるので、公開できません。
SourceCodeをお持ちの方には、何らかの形でお知らせできるかもしれません。
また、GUI部分だけを用意し、出力は起動したShell/promptに出ればいい、ということなら、
拙作iplineを呼ぶようにtclスクリプトを作れば良いと思います。
カーソル移動ボタンを押し続けたい
displayでカーソルを縦もしくは横方向にずーっと動かし続けたいとき、
カーソル移動ボタンを押し続けても(画面上での)1単位ずつしか動きませんでした。
特に、動かしながらプロファイルの変化を見たいときなどは、困ったりします。
そこで、こんなパッチを作ってみました。
今あるボタンで「押し続ける」ことを実現するのは難しいので、別メニューにしました。
Cursor - WalkCursorを選ぶと、2つのスピンボタンがあるウィンドウが出ますので、
ここで上下と左右のそれぞれの値をいじれば、すぐに画面上に反映されます。
逆に画面をいじってもこの値に反映されます。
ただし、画面表示の座標系とIPの座標系は、上下が異なるので、値に気をつけてください。
また、値は画面表示用の座標系です。IPの座標ではありません。IPでの位置は、従来どおりの
位置に正しく表示されているので、それを見てください。
その他、あまり丁寧に作っていませんので、画面の倍率を変えるなどすると落ちるかもしれません
あ、こっちのほうがいいですね。カーソルキーでなら押し続ければ連続的に動きます。
但し、"image operation"関連のコンボボックスを触った後は、そのコンボボックスも展開されてしまいます。
「最後に開いたファイル」を開けない
"File"メニュー中の"最後に開いたファイル名"をクリックしても、そのファイルが
開かないことがあります。
ファイル名/パス名にスペースが含まれている場合に起こるようです。
この問題を解決するには、$RAXISHOME/bin/tcltk.src/display/file.tcl の最初のほうの
RaxDisp_Menu:File:Create の中の
$m add command -label $_File(last_file) -command "RaxDisp_File:Load $_File(last_file)"
といった部分で、最後の $_File(last_file) を \"$_File(last_file)\" にすればOKです。
更に、既にファイルを開いている状態からもきちんと扱うには、同じファイルの下部の
RaxDisp_File:LastFile の中の
$_File(menu) ...
で始まる部分で、
-command "RaxDisp_File:Load \"$file\"" -state normal
の $file を \"$file\" にすれば、対処できます。
「HELP」が見えない
"Help"メニュー中の"Help(Japanese)"をクリックしても、何も起こらないことがあります。
Windows版では、レジストリのエントリからブラウザを決めているようですが、
「HKEY_CLASSES_ROOT\htmlfile\DefaultIcon」のキーが、Windowsのバージョンによっては
存在しないこともあるようです。
レジストリをいじって解決することもあるようですが、安直には、Windowsのディレクトリ(C:\Windowsなど)に、
"C:\Program Files\Internet Explorer\iexplore.exe" %1
とだけ書いたファイルを、"iexploer.bat"というファイル名で用意すれば何とかなります。
UNIX版では、"netscape"へのパスを記述しているスクリプトの部分を修正するか、
/path/to/netscape $1 (/path/to/の部分は、netscapeがインストールされているパス)
と書いたファイルを /usr/bin/netscape という名前で作って実行権を与えれば、使用できるでしょう。
エンハンスバーを操作すると、カーソル位置が少しずれることがある。
カーソルを目的の位置に移動し、画像の濃さを変えようと「エンハンスバー」を操作すると、
縦・横のいずれかまたは両方のカーソルが少しだけ動いてしまうことがあります。
大抵は動いても1ドット分(画面上矢印キー1回で動く分)ですが、矢印キーを押してもピクセル座標が
動かないことがあるくらいに拡大していると、もっと大きくずれることがあります。
これは、画面の各ドットと実際のピクセルとを対応付ける計算において、「ドットからピクセル」と
「ピクセルからドット」とで、計算が若干異なるからです。
実際には、端数処理の方法が異なりますので、通常は最初よりも右ないしは下に動くと思います。
回避方法はいくつか考えられます。スクリプトの修正だけで行うこともできますが、修正箇所が多くなります。
ソースコードを修正するのが一番ですが、公開できませんので、あしからず。
実際の運用では、位置の厳密性を気にするときには、常にカーソルを「右・左」「上・下」に1回ずつ動かすように
すると良いでしょう。これで元に戻ってきます。
ピークを探すと、異常終了する。
"Peak"メニューを選択し、画像上で矩形領域を指定してその中の最大強度の点を探す際、
画像の領域外を含むような領域を指定してしまうと、異常終了することがある。
特に、上下にはみ出した場合はほぼ確実に起こり、左右にはみ出した場合はピーク位置が異常になる。
原因は、矩形領域の強度を読み出して調べる際、本来の画像外の範囲の領域にアクセスして起こる
アクセス違反である。
対処するには、%RAXISHOME%\bin\tcltk.src\display\peaksrch.tclの"searchPeakTop"を定義している部分で、
"RaxImg_PeakPosition"を呼び出す前に範囲チェックを行えばよい。
でも、どうやれば実画像のサイズを得られるのか、よく解らない...ので、ソースコードがあれば
そちらを修正するほうが便利でしょう。
本来は、Zoomと同じようにソースコード側で対処すべき事案だと思います。