FAMOS

シーケンス / 関数top

カーブウィンドウ

Qグループ名は異なるが、ファイル名が同じデータに対して共通のCCVファイルを適用したい

FAQ ID:s033

Q

以下のようにグループ名は異なるが、ファイル名が同じデータがあります。これらのグループ変数にカーブウィンドウ設定(CCVファイル)を適用したい。
しかし、グループ名が異なるため、適用できません。

A

チャンネルの置き換えを行うことで対応できます。
 注意このシーケンスを実行させる前に、以下のコマンドを実行してダミーデータを作成してください。

    _dummy1 = Ramp(0,1,10)
    _dummy2 = Ramp(0,1,10)
    _dummy3 = Ramp(0,1,10)
    _dummy4 = Ramp(0,1,10)


この後、これらの変数を表示させ、希望する設定を行います。設定後にカーブウィンドウのメニュー“<>/名前を付けて保存”をクリックして、_dummy1.CCVなど適当な名前で保存してください。

;ダミーデータの作成
_dummy1 = Ramp(0,1,10)
_dummy2 = Ramp(0,1,10)
_dummy3 = Ramp(0,1,10)
_dummy4 = Ramp(0,1,10)

;カーブウィンドウ設定(CCVファイル)を読み出します。
_err = CvConfig( _dummy1, "_dummy1.CCV")
_err = CvConfig( _dummy2, "_dummy2.CCV")
_err = CvConfig( _dummy3, "_dummy3.CCV")
_err = CvConfig( _dummy4, "_dummy4.CCV")

;カーブウィンドウの内容のみ置き換えます。
_err = CvReplaceChannel( _dummy1, Test2:sample1, "_dummy1")
_err = CvReplaceChannel( _dummy2, Test2:sample2, "_dummy2")
_err = CvReplaceChannel( _dummy3, Test2:sample3, "_dummy3")
_err = CvReplaceChannel( _dummy4, Test2:sample4, "_dummy4")

製品詳細はこちら

回答を閉じる

Qシーケンスを使ってマーカーを表示させる

FAQ ID:c051

A

以下の関数を使います。

err = CvAppendMarker( sintest1, 0.002, 1, 0, 1, 1, "test", 0, 0)

注意

上の式を成功させるためには、以下の準備が必要です。

(1)サンプルデータ”Sintest1”をFAMOSに予め読み込んでおく
(2)Sintest1をカーブウィンドウに表示させる

製品詳細はこちら

回答を閉じる

Q凡例を表示させたくない(シーケンス)

FAQ ID:c019

A

シーケンスから凡例の表示をコントロールする関数は用意されていません。
このような場合、カーブウィンドウのテンプレートファイルを利用します。
以下に手順を示します。

(1)適当なカーブウィンドウを表示させる。

例えば、”a=Ramp( 0, 1, 10 )”などと打ち込んで変数を作成してください。
この変数をカーブウィンドウに表示させます。

(2)この変数をカーブウィンドウから削除します。

カーブウィンドウ上で右クリックして、コンテキストメニューから”波形の追加”を選択してください。変数”a”を選択して、削除してください。

この結果、空のカーブウィンドウが作成されます。

(3)マニュアル時と同様にカーブウィンドウメニュー”オプション/凡例”をクリックして、”凡例の表示”リストから”表示しない”を選択します。

(4)この設定をテンプレートとして保存します。

カーブウィンドウメニュー”<>/名前をつけて保存”を選択して適切な場所へこの設定を保存します。


  ここまでが準備です。
以降でシーケンスからの利用方法を説明します。

(1)シーケンスで最初に空のテンプレートを呼び出します。

err = CvConfig( Sintest1, "c\test.ccv")

指定する変数は適当でかまいません。
以下のコマンドを実行しても、Sintest1はカーブウィンドウには表示されません。

2)この空のテンプレートに対して表示したい変数を追加します。

CvYAxis( Sintest1, Sintest1, 0, 0, 0, 400, -2)
CvYAxis( Sintest1, Sintest2, 0, 0, 0, 400, -2)

 

このように凡例が表示されないカーブウィンドウを作成できます。

製品詳細はこちら

回答を閉じる

Q目盛数を設定する(シーケンス)

FAQ ID:c020

A

CvYAxisを使用します。

;軸スケールを-180から180の範囲に指定して、目盛数を5[-180,-90,0,90,180]で表示します。

CvYAxis( sintest1, sintest1, 0,-180, 180, 500000,-2)

製品詳細はこちら

回答を閉じる

Qカーソルで指定した2点を通る直線を求める

FAQ ID:s011

A

Show DATA

CvWin( DATA, 9)

Ret=BoxMessage("Line1設定", "Line1を決定するポイントにカーソルを置き、
確定した後でOKボタンを押してください", "!1")

 X1 = CvCursor( DATA, 1)

 X2 = CvCursor( DATA, 2)

 Y1 = Value( Check1, X1)

 Y2 = Value( Check1, X2)


 Point1 = XYof(leng(0,2), Leng(0,2))

 Point1[1].x = X1

 Point1[2].X = X2

 Point1[1].y = Y1

 Point1[2].y = Y2

          CvYAxis( DATA, 2)

 CvYAxis( DATA, Point1, 0, 0, 0, 400+5000+70000, -2)

2点間の直線の係数を求めるために関数"Poly"を使用します。
Polyは標準波形しか引数に使用できないので、一度標準波形に変換します。

 TempLine = XYdt( Point1.X, Point1.Y, 0.01)

 Line1Coff = Poly( TempLine, 1, 2)
         Line1    = Line1Coff[2]*ramp( Min(Check1Volt),
(Max(Check1Volt) - Min(Check1Volt))/100, 100)+Line1Coff[1]
           CvYAxis( DATA, Line1, 0, 0, 0, 400, -2)

製品詳細はこちら

回答を閉じる

Qカーソルを使って値を取得する方法

FAQ ID:s009

A

カーソル位置の値を取得し、Excelにデータを転送します。

カーソルを使って値を取得すると、測定ポイントからずれるので修正しています。

;-----------------------------------------------
;ファイルの指定
;-----------------------------------------------

filename = DlgFileName("c:\imc\dat", "dat", "ファイルを開く", 0)
If TLeng( filename)=0
  del FileName
  ExitSequence
Else
  FAMOS
  Load <filename>DATA
   del filename
  Show DATA
End

;-----------------------------------------------
;ウィンドウ設定
;-----------------------------------------------

CvWin( DATA, 9)               ;カーソルのみを表示
CvWin( DATA, 3)               ;オーバービューウィンドウを表示
CvWin( DATA, 10)              ;ナビゲータを表示

CvXAxis( DATA, XOff?(DATA), XOff?(DATA)+Leng?(DATA)/10*XDel?(DATA), 0)
CvYAxis( DATA, DATA, 0, 0, 0, 50000+4000+200, -2)

;-----------------------------------------------
;ダミーデータ
;-----------------------------------------------

P_X = Leng( 0, 0)
P_Y = Leng( 0, 0)
Point = XYOf( P_X, P_Y)
CvYAxis( DATA, Point, 0, 0, 0, 70000+5000+400, -2)

;-----------------------------------------------
;コメント文字列
;-----------------------------------------------

crlf   = TAdd( SvToChar(0x0d), SvToChar(0x0a))
Text = TAdd( "カーソル位置が決定したら<再試行>ボタンを押してください。", crlf)
Text = TAdd( text, "シーケンスを終了する場合、<キャンセル>ボタンを押してください。")

exit=1
While exit
  err = BoxMessage("",Text, "!3")
  If Err=0
    ;-----------------------------------------------
    ;キャンセルならシーケンスを終了
    ;-----------------------------------------------

    exit=0
  Else
    ;-----------------------------------------------
    ;継続する場合、データを取得してExcelに転送
    ;-----------------------------------------------

    xLeft = CvCursor(DATA,1)
    xLeft = xLeft-Mod((xLeft-XOff?( DATA)), XDel?( DATA))              ;測定点に値を設定

    P_X   = Join( P_X, xLeft)                                                          ;測定点をカーブウィンドウに表示
    P_Y   = Join( P_Y, Value( DATA, xLeft))
    Point = XYOf( P_X, P_Y)

    Cell_1 = TAdd( "R", TForm( exit, "F00"))                                    ;Excelに転送
    Cell_N = TAdd( Cell_1, "C1")
    err     = DDESet( "Excel","Sheet1", Cell_N, TForm( exit, "F00"), 1)
    Cell_N = TAdd( Cell_1, "C2")
    err     = DDESet( "Excel","Sheet1", Cell_N, xLeft, 1)
    Cell_N = TAdd( Cell_1, "C3")
    err     = DDESet( "Excel","Sheet1", Cell_N, Value( DATA, xLeft), 1)

    exit = exit+1
 End
End

製品詳細はこちら

回答を閉じる