Conference Room SAD
[thread display] [new arrival display] [word search] [past log] [管理用]

Subject その4
Date: 2006/01/30(Mon) 20:02:26
ContributorKentaro Harada < >

  その4:SADによるオプティクスのグラフの書き方

(準備:既知の未解決エラー)
  
1、topdrawer形式
 
(main branch の SAD では必ず起きるエラーがあります。森田氏はもしか
すると、直してくれているかも知れません。)
 
・縦軸凡例の文字(√βxとか)が必ず文字化けします。(DEC の
 true unix 上の topdrawer では大丈夫なんですが……)
 原因(未解決)
 topdrawer形式のファイルの中の
  TITLE 1.10 7.33 CENTER ANGLE 90. SPACE= 7.1 '2B06O0X1 (2M062O1)'
  CASE 'MGUUDXLX MLUUUDU '
 が軸の凡例指定です。上の行の'2B06....'が文字指定、CASE はその文字の
 役割(大文字、小文字、数学記号……)です。これが、Linux 版の
 topdrawer で解読できないみたいです。下のエラーも、true unix の
 topdrawer では起きません。
 
・軸のラベル大きさが「負」だというエラーメッセージが出ます。
 Xで使っていればいいんですが、teraterm でグラフを書かせると、
 上書きされてグラフが見えなくなります。でも、これは解決できます。
 twsdraw.f と tdlat.f の軸ラベルの"-"を取ってしまえばいいです。
 例えば、以下の如し。
sed s/"sngl(-2.4"/"sngl(2.4"/g oldsad/src/twsdrw.f
sed s/"sngl(-2.0"/"sngl(2.0"/g oldsad/src/twsdrw.f
sed s/"TITLE SIZE -1.6"/"TITLE SIZE 1.6"/g oldsad/src/twsdrw.f
sed s/"tsize=-3d0"/"tsize=3d0"/g oldsad/src/twsdrw_new.f
sed s/"TITLE SIZE -1.6"/"TITLE SIZE 1.6"/g oldsad/src/tdlat.f
 
2、TclTk 形式
 
・やっぱり軸ラベルが文字化けすることがあります。OSとバージョンに
 依って、起きたり起きなかったり。(何とかして欲しいです……)
 
(グラフの書き方)
 
1、topdrawer形式(個人的には普段はこちらを使っています。)
 
 draw "書き出したいパラメータ" "ラティス先頭の文字"
です。
 draw bx & by q*
だと、βx と βy(のルート)を書き出し、下にラティスの絵を加えて、
Qで始まる要素(種類(BQS…)に依らず)の名前を表示します。
q* をやめて、draw bx & by だけだと、下にラティスの絵を書きません。
名前表示なしでラティスの絵だけ、はできません。
 draw bx by q*
だと、βx と βy が同じところに上書きされます。

コマンド例
$DisplayFunction=TopDrawer;
  (これをやっておけば、tdr が見つからなくても tdr 形式のファイルを
  書き出せます。)
draw bx q*;
  (画面に tdr 形式のテキストデータがずらずらと並びます。これを個別に
  ファイルに保存する為に、下のようにします。)
out 15 draw bx & by q* end;
  (普段の出力(ディスプレイ)は6番です。それを out 15 で装置番号15番に
  変更します。これは普通は "fort.15" というファイルになります。そのファイルに
  向かって "draw bx&by q*" の結果を書き出し、end で出力を6番に戻します。
  fort.15 にβxとβyのグラフを tdr 形式で書き出す為の1行です。)
FFS["draw bx by & ex b*",12];
  (個人的に好きなのはこちら。FFS["コマンド"、出力装置番号]ですので、
  これで "fort.12" に上と同じβxとβyのグラフを書き出せます。)
FFS["draw nx & ny & epx b*",13];
  ("fort.13"に水平分散関数、垂直分散関数を書き出し。)
FFS["draw geo",14];
  (これだけは TclTk で同じグラフが書けません。リングのラティスを
  書き出します。"fort.14")
 
2、TclTk 形式

  例えば以下のように書きます。WEB の Tkinter のマニュアルに中身については
詳しく書いてあるので参照してください。(TclTkはややこしいです。)

w = KBMainFrame["sample", namae, Title->"Optics Plot!"];
c1=Canvas[namae,Width->640,Height->400];
$DisplayFunction=CanvasDrawer;
Canvas$Widget=c1;
pl=OpticsPlot[{{"BX"},{"BY"},{"EX"}}];
TkWait[];
 
  コマンドサンプルと出力されたグラフのサンプルを添付します。
td -d postscr fort.12 などと .ps 形式にして、それを Acrobat distiller で
pdf にしました。tcltk 形式は画面キャプチャです。


- 関連一覧ツリー (Click ▼ to display all articles in a thread.)