このトピックは、Origin C関数を記述して、値の設定ダイアログボックスの関数メニューに表示する方法について説明しています。
自分のOrigin C関数をOriginに追加する方法についての一般的な情報は、LabTalkからOC関数を呼び出すをご覧下さい。
値の設定ダイアログからアクセス可能なOrigin C関数は、次の要件を満たしている必要があります。
関数をコンパイルすると、値の設定ダイアログの関数メニュードロップダウンリストで利用できるようになります。
次は文字列関数のサンプルです。
string AddSomethingToStr(string str) { str += " test"; return str; }
コンパイルすれば、次のように、この関数を値の設定ダイアログで利用できます。
Col(B) = AddSomethingToStr(Col(A))$;
次は、整数を返す関数のサンプルです。
int CopyNumeric(int nn) { return nn; }
関数は値の設定ダイアログから利用でき、次のようにある列から別の列に数値データをコピーすることができます。
Col(B) = CopyNumeric(Col(A));
次の #pragma ディレクティブの1つを自分のOrigin Cソースコードに追加して、LabTalkからOrigin C関数にアクセス可能、不可、制限付きアクセス にすることができます。
デフォルトでは、LabTalkからOC関数を呼び出すことができるようにOriginは動作しますので、Origin C関数に #pragma labtalk(1) と記述する必要はありません。#pragma labtalk(...) は、別の #pragma labtalk(...)で変更されるまで、そのファイル内のすべての関数に対して影響します。ですので、いくつかのC関数を関数メニューには表示したくない場合、 #pragma labtalk(0) を関数の前に配置し、そして、F(x)メニューに配置する関数の前で再び #pragma labtalk(1) を配置します。この方法を使うことで、関数メニュー内の関数名を制御したり、管理することができます。
自分のOC関数を関数メニューの適切なカテゴリに表示させるためには、次のようにpragmaステートメントを追加します。
関数は、次のように値の設定ダイアログボックスの関数メニューに現れます。この例では、文字列を受けて、文字列を返す関数を表しています。
Date and Time : FunctionName(str)$
自分のOC関数にカテゴリーを指定しない場合、関数は ユーザのOriginCカテゴリーに表示されます。
関数メニューから組み込み関数を選択すると、基本的な関数情報(プロトタイプ、返されるものなど)を含む「スマートヒント」が表示されます。示されるように、/*$$$と$$$*/の間にコメントを挿入することで、このようなヒントをOriginC関数(以下のチュートリアル)に追加できます。
|
次の手順は、ユーザ定義関数を値の設定ダイアログボックスの関数メニューに追加するチュートリアルです。Originのプログラムフォルダの \OriginC\System\ サブフォルダにあるinternal.cにサンプルコードがあります。
ステップ:
#pragma labtalk(1,Math) double add2num(double a, double b) { return a + b; }
Note: 関数定義の前の"pragma"行は、関数メニューの数学カテゴリーに関数を配置するものです。 |
Note:コンパイルについての詳細は、コードビルダワークスペースをビルドする4つの方法および Origin C関数のロードとコンパイルをご覧下さい。 |
add2num(col(1),col(2))
Note: この関数"add2num"には2つの(double型)スカラ引数があり、スカラ値を返しますが、2列(vector型)を引数として、値の設定ダイアログボックスでこの関数を使用するとき、 値の設定ダイアログボックスは各要素(iによって暗示的に示される)に自動的に計算式を適用するので、計算結果が目的の列に入力されます。 |