Tecplot サポート > PyTecplot TIPS
更新日: 23/12/12

PyTecplot サンプルスクリプト

オリジナルサイト:https://github.com/Tecplot/handyscripts/tree/master/python

 

Tecplot をインストールしたディレクトリの pytecplot には多数のサンプルスクリプトが用意されています。また、下記の URL からもスクリプトを入手できます。

 

スクリプトを実行するには

スクリプトを実行するには、 Tecplot 360 のポート 7600 との接続を確立するために "-c" オプションを付けてください。

また、Tecplot 側で接続を有効にするために、Tecplot の Scripting メニューから PyTecplot Connections... を選択して、Accept connections にチェックを入れてください。

 

00_hello_world.py

Tecplot の新規フレームに "Hello, world!" という文字を出力します。出力する文字には位置情報、フォントサイズを指定します。フレームと同じ内容の画像を PNG 形式で出力します。

 

01_load_layout_save_image.py

Tecplot の examples\SimpleData ディレクトリにあるレイアウトファイル DuctFlow.lay を読み込んで、同じ内容の画像を PNG 形式で出力します。

 

03_slices_along_wing.py

Tecplot の examples\OneraM6wing ディレクトリにあるレイアウトファイル OneraM6_SU2_RANS.plt を読み込んで、同じ内容の画像を PNG 形式で出力します。その後、翼のサーフェスデータから任意のスライスを抽出し、x 値を配列として取得したあと、正規化を行ないます。正規化されたスライス値を積分します。ここで、CFDAnalyzer を使って積分計算を行うためにインデックスの開始を1に指定します。フレームの aux データから積分結果を取得し、その結果をプロットの右上に配置します。linemap プロットのスタイルを設定して、データが表示されるように軸の範囲を調整します。最後に x/c の関数としてあらわされる圧力係数の画像をエクスポートします。

 

07_execute_equation.py

Tecplot の examples\SimpleData ディレクトリにあるレイアウトファイル F18.lay を読み込んで、同じ内容の画像を PNG 形式で出力します。データセットの Right Wing と Left Wing の2つの Zone の変数 Nj を変更します。この簡単な例では Nj を 10倍に変更します。変更後の結果を PNG 形式で出力します。

 

08_save_data.py

Tecplot の examples ディレクトリにあるプロットファイル OneraM6wing\'OneraM6_SU2_RANS.plt を読み込みます。読み込んだファイルの 'WingSurface' Zone を PLT ファイルと ASCII ファイル (dat) に書き出します。

 

10_contour_filtering.py

Tecplot の examples\SimpleData ディレクトリにあるプロットファイル HeatExchanger.plt を読み込みます。読み込んだプロットのタイプを 2D field Plot に設定します。boundary faces と contour を表示します。デフォルトでは、contour 0 が表示されます。contour の変数、カラーマップ、レベル数を設定します。contour のカラーマップを有効にします。この等高線のカラーマップの override を有効にします。override 0 を有効にし、1番目~4番目までのレベルに赤を設定します。得られた画像を PNG ファイルに出力します。

 

11_linemaps.py

Tecplot の examples\SimpleData ディレクトリにあるデータファイル Rainfall.dat を読み込みます。アクティブなフレームを取得し、プロットタイプを XY Line に設定します。データセットの最初の 3 つのラインマップに名前、色、およびその他のいくつかのプロパティを設定します。3つのラインマップのそれぞれには roop を使って同じ設定を適用します。y 軸ラベルを設定します。凡例を有効にします。データ全体が表示されるよう軸の範囲を調整します。画像を PNG ファイルに保存します。

 

12_slices.py

Tecplot の examples\SimpleData ディレクトリにあるプロットファイル DuctFlow.plt を読み込みます。スライスを有効にしてスライスオブジェクトを取得します。スライスの透明度を有効にします。等間隔の4つのスライスを設定します。スライスの X Velocity に関する等高線を有効にします。得られた内容を PNG 画像にエクスポートします。

 

14_isosurface.py

Tecplot の examples\SimpleData ディレクトリにあるプロットファイル DuctFlow.plt を読み込みます。等値面の各種表示を設定します。表示内容を PNG 画像に出力します。

 

15_wing_mach_iso.py

Tecplot の examples\OneraM6wing ディレクトリにあるプロットファイル OneraM6_SU2_RANS.plt を現在アクティブなフレームに読み込みます。Contour Levels の最初のグループと一致する Isosurface を設定します。Isosurface レイヤーの定義を設定します。半透明の指定を有効にします。複数の Isosurface を表示します。得られた内容を PNG 画像にエクスポートします。

 

17_streamtrace_line.py

Tecplot の examples\SimpleData ディレクトリにあるプロットファイル Eddy.plt を現在アクティブなフレームに読み込みます。プロットタイプに 3D Cartesian を指定して、表示する 3D プロットと streamtrace の各種属性を指定します。streamtrace の終了ラインを赤の破線に指定します。マーカーを青の菱形に指定します。Surface Line の streamtrace を 追加します。得られた内容を PNG 画像にエクスポートします。

 

19_streamtrace_2D.py

Tecplot の examples\SimpleData ディレクトリにあるプロットファイル VortexShedding.plt を現在アクティブなフレームに 2D Cartesian として読み込みます。ベクトルと背景に表示する等高線の属性を設定します。Streamtrace を追加し、そのスタイルを指定します。得られた内容を PNG 画像にエクスポートします。

 

20_legend_line.py

Tecplot の examples\SimpleData ディレクトリにあるデータファイル Rainfall.dat を現在アクティブなフレームに XY Line プロットとして読み込みます。Y 軸のラベルと範囲を指定します。凡例の表示を有効にし、各種属性を設定します。得られた内容を PNG 画像にエクスポートします。

 

22_view_3D.py

Tecplot の examples\SimpleData ディレクトリにあるプロットファイル F18.plt を現在アクティブなフレームに 3D Cartesian プロットとして読み込みます。表示するサイズや角度を指定します。得られた内容を PNG 画像にエクスポートします。

 

24_frame_position.py

サイズと位置を指定した2つのフレームを生成し、それぞれにテキストとその位置とサイズを指定します。得られた結果を PNG 画像に出力します。

 

filledlines.py

(x, y) であらわされる複数のラインプロットを 3D ボリュームとしてプロットします。

パラメータ:

 

Forces_Moments_VS_Span.py

関数の内容:

各サーフェスの力とモーメントを計算する:

サーフェスの単位ベクトルの法線を計算します。Tecplot の方程式ツールで使用する文字列を手法に応じて定義します。指定した方向に min から max まで等間隔に配置された numPts 個のスライスを定義し、抽出します。スライスをゾーンに抽出します。スライスゾーンを名称で取得します。この部分は PyTecplot 1.4 移行で動作します。上記の2行は slice_zones = sl.extract() に置き換えることができます。sliceZnes をループし、各スライスの力とモーメントの積分を実行します (スカラー積分、変数は手法によって変わります)。([dir, irNormalized, fxNr, fyNr, fzNr, mxNr, myNr, mzNr]*Nslices array) を返します。力とモーメントの変数を取得します。返された配列に方向と積分値を入力します。方向を正規化します。

Forces VS Span のプロットを実行します。プロットタイプを変更したり、スタイルシートを読み込んでみてください。新規ページまたは新規フレームにプロットします。力とモーメントの行列を格納するデータセットを作成します。プロットを定義します。既存のラインマップを削除します。力とモーメントを成分とするラインマップを作成します。凡例と軸を設定します。

メインの処理:このスクリプトは ForcesAndMoments.py に定義された関数の使用法を説明するものです。使用するデータセットは、ONERA M6 wing です。このデータは Tecplot のインストールディレクトリの /examples/OneraM6wing にあります。

正しいフィールド変数の設定するには:Pressure and Velocity を実行するときは、変数の番号と変数の名称が正しいことを確認します。なお、ここでの変数は 1 で始まる点に注意してください。

力とモーメントを計算します。時間を短縮するため計算はサーフェスゾーンに限定します。翼に沿って nPts 個のスライスを作成します。各スライスの力とモーメントを統合します。力とモーメントをスパンに対してプロットします。

 

Histogram.py

事前にプロット (例:CircularContour.plt) を開き、変数名を確認しておきます (例:Mix)。プロットを開いた状態で、以下の2つの引数を付けて実行します。

ヒストグラムの結果をあらわすフレームとデータセットを作成します。FE - Quad タイプのゾーンを作成し、各セルでビン数をあらわします。結果をあらわすプロットの各種スタイルを設定します。フィールドマップは1つだけになります。ビューポートを縮小して軸タイトルの場所を確保します。

 

UniformVectorViaGeom.py

データセット VortexShedding.plt を読み込みます。(※スクリプト内のサンプルデータ (VortexShedding.plt) のパスは環境にあわせて変更してください。)

 

plot_max_over_time.py

各ゾーンの最大値を折れ線グラフであらわします。スクリプトを実行するには、事前に Example フォルダの VortexShedding.plt を Tecplot に開いておいてください。詳しくは下記ビデオの 6:00 以降をご覧ください。

https://www.tecplot.com/2020/01/10/webinar-ask-the-expert-about-tecplot-360/

実行時間を短縮するために、インターフェースを一時停止します。フレームを新規作成し、抽出したそれぞれの最大値をプロット作成に使用します。

 

pyqt5_execute_macro_command.py

Tecplot マクロコマンドを *.mcr ファイルとして保存しなくとも記述して実行できる GUI を作成します。

必要なモジュール:PyQt5 (クロスプラットフォームアプリケーションフレームワーク Qt を Python で使うためのモジュールです) https://pypi.org/project/PyQt5/

スクリプトを実行するには、まず Tecplot 360 ユーザー インターフェイスの Scripting > PyTecplot Connections... ダイアログで Accept connections をクリックします。

スクリプトを実行すると、Tecplot マクロコマンドを受け入れることができる PyQt5 GUI が起動します。 GUIで Execute を押すとマクロコマンドが一時ファイルに保存されて実行されるため、自分でファイルを作成する手間が省けます。

 

 

前のページにもどる