POSTFEKO APIスクリプトの例
スクリプティングを理解してその使用に着手する最も簡単な方法は実例を分析することです。ここでは例の中で、いくつかの重要な側面を重点的に取り上げます。この実例をスクリプトエディターにコピーし、デモンストレーションとして実行できます。
モデルを開く
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に保存されるので、以降のスクリプト実行でもアクセスが容易です。
:
)を使用しますが、静的関数にアクセスするにはピリオド(.
)を使用します。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にはコレクションが数多く用意されていますが、どのコレクションも同じように動作し、どのコレクションにも同じメソッドと演算子が関連付けられています。コレクションにあるアイテムにアクセスするには、その名前を指定するか、そのインデックスを角括弧([]
)で囲んで指定します。
この例では、これら両方の方法を使用しています。モデルを名前でインデックス指定し、設定を番号でインデックス指定しているからです。モデルへのアクセスでも設定へのアクセスでも、名前と番号のどちらを使用しても同じ結果が得られます。
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レポートの生成
report = app:CreateQuickReport([[Example_report]], pf.Enums.ReportDocumentTypeEnum.PDF) report.DocumentHeading = "Example report" report:Generate()この例では、POSTFEKOアプリケーションプログラミングインターフェースを使用して実行できる処理の一部を示しているにすぎません。このスクリプトを出発点として、このAPIに用意されている他の機能を試してください。