Compose-5010:ComposeでのPythonとOMLの使用
Tutorial Level: Advanced
Composeは多言語対応の統合開発環境(IDE)であり、OML、Tcl、およびPythonをサポートしています。
このチュートリアルでは、以下の操作方法について説明します:
- ComposeでPythonを使用して、PythonとOMLとの通信を実現するブリッジを導入する。
ComposeによるPythonのサポートの概要
-
スタートメニューで、
を選択します。Composeが起動するときのデフォルトの言語はOMLです。 または を選択すると、ComposeによってPythonインタープリターが読み込まれ、PythonのCommand Windowが表示されます。
-
ファイル<installation_dir>/tutorials/Python/reverse_string.pyを開きます。このファイルには、文字列を操作する簡単なPythonコマンドがいくつか記述されています。
-
実行をクリックしてreverse_string.pyスクリプトを実行します。
PythonのCommand Windowに実行結果が表示されます。注: このスクリプトでは、Pythonのコマンドウィンドウでユーザーとの対話操作が実行されます。
Pythonスクリプトでの計算とプロット
-
<installation_dir>/tutorials/PythonにあるPythonスクリプトnumpy_matrix.pyを読み込んで実行します。
import numpy as npコマンドにより、Pythonによる科学計算向けパッケージであるNumpy拡張が読み込まれ、配列に対する簡単な演算が実行されます。
このスクリプトを読み込んで実行すると、次のようにPythonのコマンドウィンドウで値を照会できるようになります。
-
Pythonでプロットを生成することもできます。
次の例は、Matplotlibを使用してPythonで正弦波をプロットする方法を示しています。Matplotlibには、カスタマイズ可能な一連のデフォルト設定が用意されていて、そのプロパティを変更できます。例えば、図のサイズ、線の幅、色、スタイル、軸とグリッドのプロパティ、テキストとフォントのプロパティを変更できます。
-
ファイル<installation_dir>/tutorials/Python/sine_wave.pyを読み込んで実行します。
ComposeでのPythonスクリプトのデバッグ
- ファイル<installation_dir>/tutorials/Python/debug_demo.pyを読み込みます。
-
次の図のようにブレークポイントを設定します。
-
デバッガーのツールバーを使用して、スクリプトのデバッグに進みます。
このスクリプトでは、PythonのCommand Windowに次の結果が生成されます。
OMLからPythonへのブリッジ
-
<installation_dir>/tutorials/Pythonにあるファイルoml_to_python.omlを読み込みます。
このスクリプトに使用されているコマンドでOMLの変数を作成し、Pythonに渡します。
-
スクリプトoml_to_python.omlを実行します。
-
OMLのCommand Windowを使用して、次のようにOMLの変数を確認します。
-
PythonのCommand Windowに切り替え、次のコマンドを再生成して、Pythonのワークスペースにどのようなデータが存在するか確認します。
-
次のコマンドを入力してPythonの新しい変数を作成します。
-
OMLのCommand Windowに戻り、Pythonで新たに作成した変数を取得します。
PythonとOMLのコラボレーション
- PythonでOMLスクリプトを実行する。
- OMLでPythonスクリプトを実行する。
-
次の例では、でhelloという関数をOMLで定義し、それをPythonスクリプトで実行します。Pythonスクリプトで定義した変数が、getpythonvarによってOMLスクリプトで返されます。
-
このスクリプトでは、OMLファイルであるhello.omlをPythonスクリプトで実行する方法を示しています。
- 指定したOMLファイルが、EvalOmlFile()関数を使用してPythonで実行されます。
- 指定のOMLファイルで定義した関数が、EvalOmlScript()を使用して評価されます。
-
python_interface_Demo.pyを実行すると、OMLのコマンドウィンドウに次の結果が得られます。
-
次の例では、Pythonでフィボナッチ関数を定義し、それをOMLスクリプトで実行します。
- このスクリプトでは、Pythonファイルであるfibonacci.pyをOMLスクリプトで実行する方法を示しています。
- 指定したPythonファイルが、evalpythonfile()を使用してOMLスクリプトで実行されます。
- 指定のPythonファイルで定義した関数が、evalpythonscript()を使用して評価されます。
-
exporttopython()を使用して、OMLスクリプトからPythonスクリプトに変数がエクスポートされます。
-
python_interface_Demo.omlを実行すると、Pythonのコマンドウィンドウに次の結果が得られます。
Pythonスクリプトを使用してOMLから読み取るCAE Reader
readmultvectors()にファイルを渡すと、ファイルにあるすべての情報を収めたセルが次の書式で返されます:
- 1番目のエントリにはタイプが記述されます。
- 2番目のエントリには要求が記述されます。
- 3番目のエントリにはコンポーネントが記述されます。
- 4番目のエントリには、上記の3つのエントリに対応する情報で指定されたデータベクトルが記述されます。各行には、さまざまなデータセットが記述されます。
このコマンドは<installation_dir>/tutorials/Python/oml_CAE_python.omlで使用されていて、ComposeのOMLスクリプトからPythonに変数をエクスポートする方法を提供します。

- <installation_dir>/tutorials/Python/analysis.pyを読み込んで実行します。
-
現在の作業ディレクトリを<installation_dir>/tutorials/Python/に設定し、ファイルoml_CAE_python.omlを読み込んで実行します。
上記の例では、exporttopython関数を使用してPythonスクリプトのanalysis.pyに変数をエクスポートします。
これらの変数をPythonで使用して、詳しく処理できます。この例では、これらの値の時系列変化をPythonでプロットします。
-
oml_CAE_python.omlスクリプトで次のプロットが生成されます。