POSTFEKO APIスクリプトの例

スクリプティングを理解してその使用に着手する最も簡単な方法は実例を分析することです。ここでは例の中で、いくつかの重要な側面を重点的に取り上げます。この実例をスクリプトエディターにコピーし、デモンストレーションとして実行できます。

モデルを開く

この例の最初の部分では、POSTFEKOアプリケーションオブジェクトを取得して、新しいプロジェクトセッションを作成し、モデルを読み込みます。まず、スクリプトの動作の理解に努めたうえで、スクリプトについて説明しているセクションを参照してください。
app = pf.GetApplication()
app:NewProject()
FEKO_HOME = os.getenv("FEKO_HOME")
print("Feko is installed in " .. FEKO_HOME)
app:OpenFile(FEKO_HOME..[[/shared/Resources/Automation/startup.fek]])
printlist(app.Models:Items())

このコードは、GetApplication静的関数を使用して、アプリケーションオブジェクトにアクセスし、そのオブジェクトを保存することから動作を開始します。この静的関数はpf namespaceにあります。すべての関数、オブジェクト、定数、および列挙はpf namespaceにありますが、これらのサブセットはグローバルな範囲で利用できます。これらはnamespaceの1つに追加されているので、外部ライブラリを読み込んでも別のエンティティに置き換えられることがありません。このnamespaceには、エディターのオートコンプリート機能が使いやすくなる利点もあります(オートコンプリートメニューを表示するには、エディターでpf.と入力します)。アプリケーションオブジェクトは変数appに保存されるので、以降のスクリプト実行でもアクセスが容易です。

つづいてApplicationオブジェクトのNewProject()メソッドが実行され、新しいPOSTFEKOプロジェクト(セッション)が作成されます。
Note: このメソッドにアクセスするにはコロン(:)を使用しますが、静的関数にアクセスするにはピリオド(.)を使用します。

os(オペレーティングシステム)モジュールのgetenvメソッドを利用して、FEKO_HOME環境変数を新しい変数に保存します。このosモジュールは、Fekoをインストールする過程で同時にインストールされています。この変数の値は、検証できるように画面に出力されます。

つづいて、ApplicationオブジェクトのOpenFileメソッドを使用して、startupモデルが読み込まれます。これは、すべてのFekoのインストールで同時にインストールされるデモンストレーション用のモデルです。最後に、モデルが正しく読み込まれたことを確認できるように、そのモデルが画面に出力されます。

このスクリプトを実行すると、POSTFEKOによってstartupモデルが読み込まれます。この例の以降の部分では、startupモデルを使用して実行できる基本的なタスクを示しています。

モデル設定へのアクセス

次のスクリプト例では、モデルにある最初の設定(同時に唯一の設定)の開始周波数と終了周波数にアクセスし、それをコンソールに出力します。この例は前のスクリプト例の続きであり、同じスクリプトの中で実行することを前提としています。
c1 = app.Models["startup"].Configurations[1]
print(c1.EndFrequency)
print(c1.StartFrequency)

変数c1を使用して、モデルにある最初の設定へのリンクを保存します。ApplicationオブジェクトのModelsプロパティを使用して、読み込んだモデルにアクセスします。静的関数などのプロパティには、例で示すようにピリオドを使用してアクセスします。Modelsプロパティからはコレクションが返されます。POSTFEKO APIにはコレクションが数多く用意されていますが、どのコレクションも同じように動作し、どのコレクションにも同じメソッドと演算子が関連付けられています。コレクションにあるアイテムにアクセスするには、その名前を指定するか、そのインデックスを角括弧([])で囲んで指定します。

この例では、これら両方の方法を使用しています。モデルを名前でインデックス指定し、設定を番号でインデックス指定しているからです。モデルへのアクセスでも設定へのアクセスでも、名前と番号のどちらを使用しても同じ結果が得られます。

設定の開始周波数と終了周波数が出力され、モデル情報にアクセスしたことが示されます。
Note: 変数c1に設定を保存する必要はありませんが、以降のスクリプトの実行で、設定へのアクセスが容易で迅速になります。

直交座標グラフの作成とカスタマイズ

次のスクリプトは、直交座標グラフを作成して、その背景色と目盛線の色を設定します。また、補助目盛線も使用できるようにします。
cg = app.CartesianGraphs:Add()
cg.BackColour = pf.Enums.ColourEnum.Transparent
cg.Grid.BackColour = pf.Enums.ColourEnum.LightGrey
cg.Grid.Minor.Visible = true
cg.Grid.Minor.HorizontalLine.Style = pf.Enums.LineStyleEnum.SolidLine
cg.Grid.Minor.VerticalLine.Style = pf.Enums.LineStyleEnum.DashDotDotLine
cg.Grid.Major.HorizontalLine.Colour = pf.Enums.ColourEnum.Black
cg.Grid.Major.VerticalLine.Colour = pf.Enums.ColourEnum.Black
このスクリプトで導入した唯一の新しい概念は、列挙を使用して事前定義の色と線種にアクセスする処理です。列挙には、pf.Enums namespaceを使用してアクセスします。

グラフへのトレースの追加

グラフは作成しましたが、データがありません。次のスクリプトでは、モデル設定にある最初の近傍界を直交座標グラフに追加します。凡例、水平軸のタイトル、垂直軸のタイトルのスタイルも設定します。
cg.Traces:Add(c1.NearFields[1])
cg.Legend.Frame.BackColour = pf.Enums.ColourEnum.Transparent
cg.HorizontalAxis.Title.Frame.Line.Colour = pf.Enums.ColourEnum.Blue
cg.VerticalAxis.Title.Frame.Line.Colour = pf.Enums.ColourEnum.Blue

PDFレポートの生成

最後のスクリプトでは、PDFレポートを作成してディスクに保存します。生成したレポートが表示されます。
report = app:CreateQuickReport([[Example_report]], pf.Enums.ReportDocumentTypeEnum.PDF)
report.DocumentHeading = "Example report"
report:Generate()
この例では、POSTFEKOアプリケーションプログラミングインターフェースを使用して実行できる処理の一部を示しているにすぎません。このスクリプトを出発点として、このAPIに用意されている他の機能を試してください。