FAMOS
カーブウィンドウに関するFAQ
QShowコマンドで表示したカーブウィンドウをCw系関数で操作したい。
CwSelectMode("variable")関数でカーブウィンドウに表示した変数によってカーブウィンドウを識別できるようになります。
例)
DataABC = Sin(Ramp(0, 0.001, 1000)*PI2*9)*Sin(Ramp(0, 0.001, 1000)*PI2*0.5) ; サンプルデータ
Show DataABC ; Showコマンドで表示
CwSelectMode("variable") ; 表示した変数でカーブウィンドウを識別するモードに変更
CwSelectWindow(DataABC) ; 表示した変数でカーブウィンドウを識別
CwPosition(0,0,640,480) ; カーブウィンドウの表示位置と大きさを変更
Qグループ変数をCw関数で表示する。
グループ変数はCwNewChannel()関数の引数として使用できません。ループ文でグループ変数の要素毎にカーブウィンドウへ追加してください。
例)
GrData = GrNew() ; サンプルデータ
GrData:Ch1 = Ramp(0, 0.1, 100)
GrData:Ch2 = Ramp(0, 0.1, 100)*2
GrData:Ch3 = Ramp(0, 0.1, 100)*5
GrData:Ch4 = Ramp(0, 0.1, 100)*10
CwNewWindow("Cv1", "show")
CwSelectWindow("Cv1")
CwAction("reset")
CwPosition(0,0,640,480)
_nnn = GrChanNum?(GrData) ; グループ変数の要素数
for _iii = 1 to _nnn step 1
CwNewChannel("append last axis", GrData:[_iii]) ; 要素ごとにカーブウィンドウに追加
end
Q波形の位相をカーブウィンドウで表示したい。
QX軸の時間表示を分:秒にしたい。
Qカーブウィンドウの3次元グラフ表示の軸は右手系か左手系か?
Qカーブウィンドウの3次元グラフ表示を右手系で表示したい。
Q波形の一部を切り取りたい(FAMOSコマンドによる方法)
Qスペクトラムキットで計算したFFT結果(横軸:周波数、縦軸:振幅値、奥行軸:時間)を横軸時間、縦軸:振幅値、奥行軸:周波数でウォーターフォール表示したい。
Qカラーマップ上に波形や点を描画したい。
[設定]>[線]の[エクストラ]タブでカラーマップ上に描画したい波形の[効果]を[オーバーラップ]にして下さい。
シーケンスでのサンプルを下記に示します。
例)
LOAD sintest1
ColorMap = sintest1
SetSeglen(ColorMap, 40)
_x = Leng(0, 3)
_y = _x
_x[1] = 0.0001 ; プロットしたい点のX座標
_x[2] = 0.0006
_x[3] = 0.0002
_y[1] = 1 ; プロットしたい点のY座標
_y[2] = 8.2
_y[3] = 4
plot = XYof(_x, _y) ; 点をプロットしたい座標をもつXY波形
CwNewWindow("Cv1", "show") ; カーブウィンドウで表示
CwSelectWindow("Cv1")
CwAction("reset")
CwPosition(0,0,640,480)
CwNewChannel("append last axis", ColorMap)
CwDisplaySet("displaymode", 4)
CwNewChannel("append last axis", plot)
CwLineSet("effect", 1)
CwLineSet("type", 0)
CwLineSet("symbol", 8)
QX軸を右から左へ増加させて表示したい。
2DカーブウィンドウではX軸を右から左へ増加するようには表示できませんが、3D表示に投影することにより擬似的に表示することができます。
例)
Load slope
_std = slope ; 表示する波形
x = Ramp( XOff?(_std), XDel?(_std), Leng?(_std) ) ; XY波形の場合はX成分を代入する
y = _std ; XY波形の場合はY成分を代入する
z = Leng(0, Leng?(_std)) ; Z=0の線上へ投影
SetUnit(x, Unit?(_std, 0), 1)
CwNewWindow("Cv1", "show") ; カーブウィンドウで表示
CwSelectWindow("Cv1")
CwAction("reset")
CwPosition(0, 0, 640, 480)
CwDisplaySet("displaymode", 8) ; 表示形式=3D
CwNewChannel_xyz("append last axis", x, y, z, "xyz")
CwDisplaySet("3D.angle1", 0)
CwDisplaySet("3D.angle2", 0)
CwSelectByIndex("y-axis", 1) ; Y軸を選択
CwAxisSet("description.option", 3) ; 単位を表示
CwSelectByIndex("x-axis", 1) ; X軸を選択
CwAxisSet("description.option", 3) ; 単位を表示
CwAxisSet("direction", 1) ; 軸を逆向きに表示
Qバーメーター表示時にバーの中心をX座標に合わせたい。
[設定]>[線]>[エクストラ]の[タイムシフト]に -0.5*サンプリング時間 となる数値を設定して下さい。
シーケンスでのサンプルを下記に示します。
例)
Line = ramp( 0, 0.1, 10 )^2
Bar = Line
CwNewWindow("Cv1", "show")
CwSelectWindow("Cv1")
CwAction("reset")
CwPosition(0,0,640,480)
CwNewChannel("append last axis", Line)
CwLineSet("symbol", 8)
CwNewChannel("append last axis", Bar)
CwLineSet("shift.x", -XDel?(Bar)/2) ; バーグラフの中心がビン値にくるように調整
CwLineSet("type", 5)
Qズームの取り消し
FAQ ID:c037
ズームを実施したカーブウインドウに対してカーブウインドウのメニューバーよりX軸やY軸のスケールの設定を変更してOKボタンを押した最後の設定を呼び出します。
具体例をあげます。
- データを表示します。
このときX軸がMin:0、Max:100s、Y軸がMin:-50V、Max50Vのスケールリングで表示したとします。 - カーブウインドウのメニューより[Y]-[レンジ]-[固定レンジ]を選択してMin:-30V、Max:30Vと変更してOKボタンを押して確定します。
- ズーム機能を使用しX軸、Y軸の変更をおこないます。
- ここで「ズームの取り消し」機能を使用すると下記のスケールになります。
X軸がMin:0、Max:100s、Y軸がMin:-30V、Max:30V (②で保存された設定が呼び出されます。) - 注意:1度カーブウインドウを閉じると保存されたグラフ設定は使用できません。
Qデータ間隔を示すために矢印を表示させたい
Qシーケンスを使ってカーブウィンドウを4段のスタック表示にして、各座標にデータを表示させたい。
FAQ ID:c035
データ量が多いのでシーケンスを使って同じX軸のデータを4段*2CH表示したいのですがうまく出来ません。
テンプレートを作成して、ダミーチャンネルと置換します。
具体的には以下に従ってください。
STEP1:準備
最初に以下のようにダミーデータを作成してください。
例では各グラフに2個のダミーデータを配置します。
;- 最上段のダミーデータ dummy11 = Leng(0,0) dummy12 = dummy11 ;- 2段目のダミーデータ dummy21 = dummy11 dummy22 = dummy11 ;- 3段目のダミーデータ dummy31 = dummy11 dummy32 = dummy11 ;- 4段目のダミーデータ dummy41 = dummy11 dummy42 = dummy11
ウィンドウ設定でカーブウィンドウの構造を以下のように設定してください。
この後、データdummyは必要ありません。
削除してください。
Delete dummy*
設定したカーブウィンドウの書式を保存します。
操作方法はカーブウィンドウのメニュー”<>/名前を付けて保存”を選択して、適当な名前を付けてください。
ここでは例として"Default.CCV"とします。
この後、データdummyXXは必要ありません。
削除してください。
STEP2:準備2
ここでは表示させたいデータを作成します。
;------------------------------------ ;サンプルデータの作成 ;------------------------------------ data1 = Ramp(0,1,10) data2 = data1+1 data3 = data1+2 data4 = data1+3 data5 = data1+4 data6 = data1+5 data7 = data1+6 data8 = data1+7
STEP3:作成
ここでは表示させたいデータを作成します。
dummy11 = Leng(0,0) _Err = CvConfig(dummy11, "default.ccv") _i=1 While _i<=4 _tempNew = "data" + TForm( 2*(_i-1)+1, "F00") _tempOld = "dummy" + TForm( _i*10+1, "F00") CvReplaceChannel( dummy11, <_tempNew>, _tempOld) _tempNew = "data" + TForm( 2*(_i-1)+2, "F00") _tempOld = "dummy" + TForm( _i*10+2, "F00") CvReplaceChannel( dummy11, <_tempNew>, _tempOld) _i=_i+1 End
Qアンズーム
Qトリパタイト・グラフを作成できますか?
FAQ ID:c032
この機能は標準ではカーブウィンドウにはありません。
しかし、波形として定義することで以下のようにトリパタイトグラフを作成できます。
Example
;ダミー Line = XYof( Leng(0,0), Leng(0,0)) Line = EventNew(Line, 0) _LineX = Leng(0,2) _LineY = Leng(0,2) _XStart = -2 _XDelta = 4 _YStart = -2 _YDelta = 6 _X=0 While _X <= (_XDelta+_YDelta) _i=1 While _i<=9 _LineX[1]=_i*10^(_X+_XStart+_YDelta) _LineX[2]=_i*10^(_X+_XStart) _LineY[1]=10^(_YStart+_YDelta) _LineY[2]=10^(_YStart) _AddLine = XYof(_LineX, _LineY) EventAppend(Line,_AddLine,0) _LineY[1]=10^(_YStart) _LineY[2]=10^(_YStart+_YDelta) _AddLine = XYof(_LineX, _LineY) EventAppend(Line,_AddLine,0) _i=_i+1 End _X=_X+1 End
Example2
一度、トリパタイト線図を作成すれば、以下のような簡単なサンプルで表示できます。
こちらのサンプルファイルを展開して"A:\"に格納し、Hammer.SEQを実行させてください。
;トリパタイト線図の読み込み FAMOS Load A:\Line.dat ;データの読み込み _fh = FileOpenFAS("A:\HAMMER.AE2", "A:\OROS.FAS", 0) DATA = FileObjRead( _fh, 1) err = fileclose(_fh) ;結果の表示 _err = CvConfig(Line,"A:\HAMMER.CCV")
QXY(もしくは欠損値を持つ)波形をカラーマップ表示した場合の色の変化について
FAQ ID:c029
例えば、以下のようなデータをカラーマップに表示した場合、欠損データ部分はどのように表示されるのか確認します。
X=1 | X=2 | X=3 | X=4 | |
---|---|---|---|---|
Y=3 | 30 | 30 | 10 | |
Y=2 | 50 | 50 | 10 | |
Y=1 | 20 | 0 | 10 |
表示方法
上のようなデータをカラーマップで表示するためには各YについてXY波形を作成します。
具体的には
- WAVE1 = { 20, 0, 10}
- WAVE2 = { 50, 50, 10}
- WAVE3 = { 30, 30, 10}
という3つのXY波形を作成します。
さらにこれらのZ方向のオフセット値を設定することにより、マッピングできます。
具体的なコードは下記シーケンスを参照してください
以下に表示結果を示します。
結果
この結果より、欠損値に対するデータの補間はX軸方向のみに行われます。
従って、以下のようなデータを表示していることと同じです。
X=1 | X=2 | X=3 | X=4 | |
---|---|---|---|---|
Y=3 | 30 | 30 | 30 | 10 |
Y=2 | 50 | 50 | 30 | 10 |
Y=1 | 20 | 10 | 0 | 10 |
シーケンス
参考に今回のデータは以下のシーケンスで作成しました。
生成されたWave1~3を1つのカーブウィンドウで表示させ、カラーマップに設定してください。
XPOS = Leng(0,4)
XPOS[1] = 1
XPOS[2] = 2
XPOS[3] = 3
XPOS[4] = 4
YPOS = Leng(0,3)
YPOS[1] = 20
YPOS[2] = 0
YPOS[3] = 10
XDATA = Join(XPOS[1],XPOS[3])
XDATA = Join(XDATA ,XPOS[4])
WAVE1 = XYOf(XDATA, YPOS)
SetZoff(WAVE1,1)
YPOS = Leng(0,3)
YPOS[1] = 50
YPOS[2] = 50
YPOS[3] = 10
XDATA = Join(XPOS[1],XPOS[2])
XDATA = Join(XDATA ,XPOS[4])
WAVE2 = XYOf(XDATA, YPOS)
SetZoff(WAVE2,2)
YPOS = Leng(0,3)
YPOS[1] = 30
YPOS[2] = 30
YPOS[3] = 10
XDATA = Join(XPOS[1],XPOS[3])
XDATA = Join(XDATA ,XPOS[4])
WAVE3 = XYOf(XDATA, YPOS)
SetZoff(WAVE3,3)
Qカーブウィンドウのフォントの大きさを変更するには?
Qタイトルや軸ラベルを表示できますか
Qカラーマップとクリップボード
FAQ ID:c016
カラーマップは大量のメモリーを消費しますので注意してください。カラーマップはビットマップとして表示されます。これがカラーの場合、ピクセルあたり3Byte使用します。例えば、600dpiのプリンターで100mm * 100mmの設定の場合、2000 * 2000 * 3 = 12[MByte]必要になります。
十分な仮想メモリーが必要になることに注意してください。
レポートジェネレータに対してはc:\tmp、もしくは”Options/ Data manager/ memory”で設定されたドライブに十分なスペースが必要です。
“<> / Clipboard”でMS-Wordに貼り付けたら白黒で表示される
メニュー“<>/ Clipboard”を操作したときには、Wordで使用されるプリンターの形式はわかりません。そこで、カーブウィンドウメニュー”<> /Printer setup”で設定されたプリンターを分解能などを計算するベースと仮定します。ここで、プリンターに白黒プリンターが選択されていた場合、カラーマップは白黒になります。
カラーマップでなく波形が表示されている場合はこのプリンター設定を考慮しません。常に色つきのメタファイルとして扱う。
レポートジェネレータに貼り付け時に真黒で表示される
メモリー不足です。カーブウィンドウからレポートジェネレータに波形を転送する場合、レポートジェネレータのプリンター設定を使用します。
レポートジェネレータメニュー“オブジェクト/波形サイズ固定”で指定された大きさがドラッグ&ドロップで使用されます。
注意:クリップボード設定の変更
カーブウィンドウメニュー“オプション/クリップボード設定”で大きさを変更しても、この変更はレポートジェネレータには伝わりません。この大きさはレポートジェネレータの起動時にレジストリーから読み出します。