FF534 Python対応のFVX
 
 ◆ 概要 ◆

Python対応のFVXについて説明します。

 ◆ 詳細 ◆

Python対応FVX

FieldViewのプログラミング言語FVXはLUAスクリプト言語に基づいていますが、FieldViewはPython (バージョン2または3)と一緒に使用することもできます。FVX関数はPythonからも呼び出すことができ、PythonとFVXの間でデータ構造を相互に渡すことができます。 Python環境とカスタムプログラミングをFieldViewに統合するような実装になっています。このPython対応FVXの構造を以下の図に示します。

データの読み込み、サーフェスやストリームラインの作成、変更、照会、削除など、FVXのポスト処理関数が実装されています。 これは、FVXデータ構造をあたかもネイティブのPython構造であるかのようにアクセスできるようにして処理されます。 使用するPythonのバージョンを設定するには、Installation Guideの”Python Installation (Optional)”を参照してください。

Tkinterのサポート

グラフィカルユーザインタフェース(GUI)のカスタマイズオプションをさらに提供するために、FieldViewはTkinter関数呼び出しを含むPythonスクリプトの実行をサポートしています。TkinterはTk GUIツールキットのPythonバインディングです。幅広いGUIウィジェットをサポートすることで、 Python標準のGUI構築ツールになっています。
TkinterはFieldView付属のPythonインストールに含まれますが、FieldViewをユーザーが別にインストールしたPythonにリンクさせる場合は、Installation Guideの”Python Installation (Optional)”を参照してください。
下の図は、FieldViewでPythonスクリプトを実行して得られたTkパネルを示しています。 このパネルには、Tkinterがサポートするさまざまなウィジェットの例がいくつか示されています。

このようなウィジェットはPython対応のFVX関数の呼び出しにより使用できます。TkinteのrサポートがFieldViewイベントループに追加され、TkパネルとFieldViewの双方向の対話が可能になります。つまり、ユーザー定義のパネルはオリジナルのFieldViewのパネルとまったく同じように動作します。
Tkinterはimportコマンドを使ってPythonスクリプトにインポートすることができます:

import Tkinter

Tkinterの制限事項
・TkinterはMac OSではサポートされていません。
・Tkinterは32ビットLinuxではサポートされていません。
・FieldViewから実行されるTkinterスクリプトは、デフォルトのルートウィンドウを使用する必要があります。

Python対応FVXの制限事項
Pythonの名前空間の選択は、コマンド構文に影響を与えます。例えば、以下のいずれかを選択します。

import fv FVX cmd is fv.create_boundary
from fv import * FVX cmd is create_boundary

Python対応FVXのコマンドは元のFVXコマンドから少し変更する必要があります。
FVXで有効な境界面の入力テーブルは次の通りです。

boundary_table = { scalar_func = 'Normalized density [PLOT3D]',
            types = {'body', 'wing'},
            display_type = 'smooth_shading' }

一方、同じ入力テーブルはPythonで次のように表されます

boundary_table = { scalar_func : "Normalized density [PLOT3D]",
            types : {1 : 'body', 2 : 'wing'},
            display_type : 'smooth_shading' }

Pythonスクリプトにエラーがある場合、FieldViewがクラッシュする可能性があります。

FVXにおけるのgraph()およびmake_panel()コマンドはサポートされていません。

Pythonで利用できないFVX関数:

appendto(filename)
closefile(handle)
dostring(cmd_string)
dump(tbl)
dumpall(tbl)
execute(cmd)
format(string,arg,...)
getn(tbl)
openfile(filename,mode)
read(handle,format...)
readfrom(filename)
remove(filename)
rename(oldname,newname)
self:get()
self:set()
set_view({tbl})
stop()
strfind(string,pattern,...)
tinsert(tbl, pos, value)
tonumber(string[,base])
tostring(number)
tremove(tbl, pos)
type(arg)
write(handle,arg,...)
writeto(filename)

Pythonのサポートは、以下のプラットフォームに制限されます:
linux 64-bit
linux 32-bit
Mac 64-bit
Windows 32-bit (XP, Vista, 7)
Windows 64-bit (XP, Vista, 7)

・この資料の内容は予告なしに変更されることがあります。
・いかなる場合でも、この資料の内容およびその運用の結果に関しては一切の責任を負いません。
・この資料の一部または全部を無断で使用、作成することはできません。
All rights reserved by Vinas Co., Ltd.
sales@vinas.com