プラグインの使用

プラグインの例

1つのアルゴリズムが、テーブル全体を入力および出力として扱う与えられた演算子で実行できない場合があります。この1つの例が、処理される1つ1つのレコードについてロジックおよび制御フローを必要とする安全のBrittle破壊要因の計算です。


図 1. 安全のBrittle破壊要因

この種の計算は、ユーザー定義のスクリプトが各入力値について実行するインタープリターに理想的に適しています。Result Mathには、ユーザーがTcl、TemplexまたはコンパイルされたDLLで拡張することのできる演算子ライブラリが含まれています。

この計算を行うTclプロシージャは:


Tclインタープリターには、入力およびレコード保管インターフェースへのアクセスを可能とする以下の2つの関数が追加されています:
  • GetRecordInfo– 現在のレコードについての情報を取得
  • AddRecord– 計算された値を保管
以下のXMLはこのプロシージャへの入力を定義し、Tclファイルをプロシージャがコールするものとして指定します。


“TclPlugin”演算子へのコールは、下記のパラメータを必要とします:
  • src– プロシージャに渡される値のテーブル
  • ents– ソース値に対応するエンティティ(応力の場合は要素、変位の場合は節点)。これにより、要素に付加されているパートIDは、GetRecordInfo関数を参照することができます。
  • onrecord– スクリプトファイル内でのプロシージャの名称
  • script– onrecordプロシージャを含んだスクリプトファイルへのパス
  • answer– データタイプ出力テーブル
“TclPlugin”演算子のコールは他のビルトイン演算子と同じように挙動し、テーブルベースの演算子のスピードアップとユーザー定義のスクリプトをコールする柔軟性を達成するために、コールによって処理または追従されます。この例の出力を以下に示します:


図 2.