OriginC関数を管理したり、アクセスする

サマリー

このチュートリアルでは、Origin C関数を呼び出す方法について学習します。

必要なOriginのバージョン:Origin 8.0 SR0

学習する項目

このチュートリアルでは、以下の項目について説明します。

  • プロジェクトと一緒にOrigin C関数を保存する
  • 図形オブジェクトとプログラムを結びつける
  • スクリプトからOrigin C関数をロード、コンパイルする

プロジェクトと一緒にOrigin C関数を保存する

Origin C関数をロードして、コンパイルする1つの方法は、Origin CファイルをOriginのプロジェクトファイル(.opj)に添付して、保存することです。プロジェクトが開くと、プロジェクトに添付しているすべてのファイルが取り出され、一時フォルダに保存されます。さらに、添付されたOrigin Cファイルはコードビルダワークスペースにロードされ、コンパイルされます。そして、関数は開いているOriginプロジェクトファイルから呼び出される準備が整います。

  1. 標準ツールバーの新規プロジェクトボタンImage:Button_New.png をクリックして、新しいプロジェクトを開きます。
  2. 標準ツールバーで、コードビルダボタンImage:Button_Code_Builder.pngをクリックします。
  3. コードビルダのメニューでファイル:新規を選びます。これで新規ファイルダイアログが開かれます。
  4. 最初のリストボックスで、C Fileを選びます。
  5. ファイル名テキストボックスにTestと入力します。ワークスペースに追加、のチェックは付けたままにします。OKをクリックします。すると、Test.cがワークスペースに追加されます。
  6. 以下の関数をTest.cにコピー&ペーストします。「//start your functions here」 のすぐ下にテキストを貼り付けてください。
void Plot_Data(string strTemplate, string strData) 
{
        // テンプレートからグラフウィンドウを作成
        GraphPage gp;                   
        BOOL bOK = gp.Create(strTemplate, CREATE_VISIBLE);
        if( !bOK )
                return;
 
        // 最初のレイヤ(0)をGraphLayerオブジェクトに接続      
        GraphLayer gl = gp.Layers(0); 
 
        //データセットをCurveオブジェクトに接続    
        Curve crv(strData); 
 
        // Curveをグラフレイヤに追加       
        int nPlot = gl.AddPlot(crv);   
        if(nPlot >= 0)      
        {                     
                // プロットの色をGreen(2)にセット
                gl.DataPlots(nPlot).SetColor(2, TRUE);
 
                // このグラフレイヤを再スケール
                gl.Rescale();
        }
}

Plot_Data関数は、2つの引数を取ります。(1)テンプレート名、(2)(プロットの)レイヤに含めるYデータセット名です。

  1. ビルドボタンImage:Button_Build.png をクリックしてファイルのコンパイルリンクを行います。
  1. ワークスペースツリーのUserサブフォルダブランチにあるTest.cファイルを、Projectサブフォルダにドラッグアンドドロップします。(Hint: 最初にUserサブフォルダを開いて、ドラッグする前にTest.c を表示する必要があります。)
  1. Originのユーザインターフェースに戻り、標準ツールバーの保存ボタン Image:Button_Save_Project.png をクリックしてプロジェクトを保存します。プロジェクトの名前をTest.OPJにして、選択した場所に保存します。
  1. これで、Origin Cファイル, Test.c, がプロジェクトと一緒に保存されました。これを確認するには、プロジェクトを閉じ、コードビルダに戻ります。ワークスペースツリーのProjectフォルダには何もないことがわかります。Originインターフェースに戻り、プロジェクトを再度開きます。コードビルダに行き、今度はTest.cがProjectサブフォルダに表示されていることが確認できます。(Hint: Test.cを表示するためにProjectサブフォルダを開く必要があるかもしれません。)

図形オブジェクトとプログラムを結びつける

ではワークシートにボタンを作成し、プロジェクトと一緒に保存したTest.cファイルにあるOrigin C関数をそのボタンから呼び出すようにプログラムする方法について学びます。

  1. ステップ9(前のセクション)で保存したTest.OPJプロジェクトを開きます。
  2. 列A(X)と列B(Y)を選択し、右クリックして、列値の一律設定:行番号を選択します。
  3. メニューから、フォーマット:ワークシートの表示属性を選択し、ワークシートプロパティダイアログを開きます。
  4. サイズタブのワークシート寸法ブランチで、上からのギャップ40にして、OKをクリックして、ダイアログを閉じます。
Image:Organizing_and_Accessing_Origin_C_Functions_1.png

これで、ワークシートの列ヘッダの上側にテキストラベルを追加する十分な余白ができました。

2列のすぐ上の領域を右クリックし、テキストの追加を選びます。

  1. カーソル位置で、Plot Dataと入力します。
  1. テキストラベルの外側をクリックし、選択を解除します。
  1. テキストラベルを右クリックし、オブジェクトのプログラム制御を選び、オブジェクトのプログラム制御ダイアログボックスを開きます。(Hint: Origin7.5ではラベルの制御でした。)
  1. ~の後でスクリプトを実行ドロップダウンリストから、ボタンアップを選びます。
  1. ダイアログの下にあるテキストボックスに次のスクリプトを入力します。
Plot_Data("scatter","book1_b");
  1. OKをクリックします。

テキストラベルはボタンのように表示されます。

Image:Organizing_and_Accessing_Origin_C_Functions_2.png
  1. ワークシートのPlot Data ボタンをクリックします。
  1. Test.cファイルのPlot_Data関数が呼ばれ、散布図が作成されます。
Note:ボタンに結びついたスクリプトは、Data1ワークシートの列B(Y)にデータがあり、それに結びついたXデータがあるものとしています。

スクリプトからOrigin C関数をロード、コンパイルする

このチュートリアルで、プロジェクトファイルと一緒にOrigin C関数を保存して、Originインターフェースから関数にアクセスする方法を学びました。Origin Cファイルをプロジェクトと一緒に保存すると、Origin C関数は、そのプロジェクト内でしかアクセスできないという制限があります。新しいプロジェクトを開くと、その関数は利用できなくなります。

保存したOrigin Cファイルの関数にアクセスするのため、LabTalkスクリプトを使って、ファイルをプログラムでロードし、コンパイルすることができます。プログラムでのロード/コンパイルを実行するスクリプトコマンドは、run.LoadOCです。このコマンドの使用についての詳細は、LabTalkヘルプ(ヘルプ:プログラミング:LabTalk)を参照してください。

これで、Origin C関数チュートリアルを終了します。