オブジェクトハンドル取得
オブジェクトハンドルの使用により、FVXとFieldViewスクリプトコマンド、リスタートファイル、FieldView GUIのインタラクティブ操作の間のギャップを橋渡しすることができます。サーフェス、Rakeまたはアノテーションにアクセスするためには、そのオブジェクトのハンドルを作成する必要があり、FVXコマンドget_current_object_handleおよびget_all_object_handlesによりこのタスクを実行します。
my_handle = get_current_object_handle()
これは、カレントデータセットのカレントオブジェクトのハンドルを取得します。
カレントデータセットにカレントオブジェクトがない場合、get_current_object_handle()はnilを返します。
handles_table = get_all_object_handles(dataset_number)
ここで、handles_tableは以下のようなサブテーブルを含みます。
handles_table = {
boundary_handles = {},
comp_handles = {},
coord_handles = {},
iso_handles = {},
streamline_handles = {},
particle_path_handles = {},
text_handles = {},
arrow_handles = {}
}
dataset_numberのデータセットにオブジェクトがない場合、get_all_object_handles()はnilを返します。上記の各サブテーブルについて、そのタイプのオブジェクトがデータセットにない場合、サブテーブルは出力テーブルに表示されません(サブテーブルはnilです)。また、返されるハンドルのテーブルは、コマンドが実行された時点でのFieldViewの状態の「スナップショット」であることに注意してください。nilでない各サブテーブルについて、インデックスは1から開始します。 comp_handles、text_handles、およびarrow_handlesサブテーブルを除いて、インデックスはGUIパネル上のオブジェクトの「番号」にも対応します。 例えば、handles.coord_handles[2]は、データセットの2番目のサーフェスのFVXハンドルになります。
Computational Surfaceのハンドル
Computational Surfaceはデータセット上のグリッドに属しているため、サブテーブルcomp_handlesは1つめのインデックスがグリッド、2つめのインデックスがグリッド上のサーフェスを示す2次元のテーブルになります。
例えば、
comp_handles[1] グリッド1上のサーフェスのハンドルを表すテーブル
comp_handles[1][1] グリッド1上の1番目のサーフェスのハンドルを表すテーブル
comp_handles[1][2] グリッド1上の2番目のサーフェスのハンドルを表すテーブル
comp_handles[2][1] グリッド2上の1番目のサーフェスのハンドルを表すテーブル
グリッドnにサーフェスがない場合、comp_handles[n]はnilになります。
テキストと矢印のハンドル
テキストと矢印は別々のFVXコマンドで作成されますが、FieldView GUIでは同じAnnotationパネル上で対話形式で作成されます。 Annotationパネル上ではテキストと矢印は作成順に従って混在させることができるため、text_handlesサブテーブルとarrow_handlesサブテーブルのインデックスは、Annotationパネル上のオブジェクト数と一致するとは限りません。
よって、text_handles[n]はAnnotationパネル上にあるn番目のテキストオブジェクトになり、arrow_handles[n]はAnnotationパネル上にあるn番目の矢印オブジェクトになります。
既知の制限および動作の変更
nilハンドルを返さないようにするためには、サーフェスがカレントである必要があります。 可視化パネルが閉じられている場合のように、カレントのサーフェスがない場合、ハンドルは返されません。
|