PythonからOpenTD・Thermal Desktopを操作する環境構築

March 21, 2020      

OpenTD

Thermal Desktop Version 6.1にはOpenTDと呼ばれる,Thermal Desktopを操作するためのAPIが含まれている.Version 6.0でTD APIとして初めて導入された機能で, Version 6.1へのアップデートに伴って,大幅な機能の拡張と名前の変更が行われたようだ. 通常Thermal Desktopは,AutoCADに組み込まれたGUIを用いて,ポチポチクリックしながら熱モデルの作成や解析を行うが,OpenTDを用いると,これらのマニュアル作業をスクリプトで書き表すことができる.以下のような点で非常に便利な機能だ.

  • 形状,材料,熱環境など様々なパラメタに関して,パラメトリックな解析を簡単に行うことができる
  • モデルの作成手順がそのままスクリプト化されるので,モデル作成の情報がすべて残る
  • スクリプトの一部あるいは全部を,将来的に再利用をすることが(うまくやれば)容易
  • Thermal Desktopから直接データを受け取って,グラフ等にプロットすることができる

OpenTDは.NETを用いるので,基本的にはC#での利用が推奨されている.ただ,個人的には最近Pythonしか使っていないので,できればThermal Desktopの操作,Thermal Desktopから渡されたデータの解析・プロットまでを,Python環境で全てできるようにしてしまいたい.そこで今回は,PythonからOpenTD・Thermal Desktopを操作するために必要な環境の,セットアップ方法について解説する.

仮想環境の構築

バージョン互換などの問題が生じないように,Thermal Desktopを操作するための仮想環境を立てて,その中に必要なパッケージをインストールしよう.まずはAnacondaのターミナルを開いて,以下のコマンドを打つと現在存在する環境の一覧が確認できる.もし,何も追加で作成されていなければbase環境のみが存在するはずだ.

(base) C:\>conda info --envs
# conda environments:
#
base                  *  C:\ProgramData\Anaconda3

通常,仮想環境を作成するとユーザーフォルダに.conda\envsと.conda\pkgsが作成されて,ここに環境設定ファイルやパッケージが展開されるのだが,諸事情によりユーザーフォルダ以下を重たくしたくないので,インストールディレクトリをC:\conda\の下に変更する.これには,ユーザーフォルダにある,.condarcファイルに以下のテキストを書き込めばよい.

envs_dirs:
  - C:\conda\envs

pkgs_dirs:
  - C:\conda\pkgs

これを行った上で,Anacondaのターミナルで以下のコマンドを打って,ディレクトリの指定・優先順位設定がされていることを確認しよう.

(base) C:\>conda config --show envs_dirs
envs_dirs:
  - C:\conda\envs
  - C:\Users\XXXXXX\.conda\envs
  - C:\ProgramData\Anaconda3\envs
  - C:\Users\XXXXXX\AppData\Local\conda\conda\envs

(base) C:\>conda config --show pkgs_dirs
pkgs_dirs:
  - C:\conda\pkgs

ここまで確認出来たら,以下のコマンドを打って仮想環境を作成しよう.このコマンドではtdという名前の仮想環境を作成して,そこにPython 3.7をインストールしている.インストールを行った時点でPython 3.8が利用可能だが,後でインストールするPython for .NET (pythonnet)のために,Python 3.7を指定している.

(base) C:\>conda create -n td python=3.7

これで,仮想環境ができているはずなので,以下のコマンドを打ってtd環境に入ろう・

(base) C:\>conda activate td

パッケージのインストール

ここから,td環境に各種パッケージをインストールしていく.OpenTDを使用するために必要なのはPython for .NET (pythonnet)だけではあるのだが,その他にも最低限必要そうなパッケージはインストールしておく.

(td) C:\>conda install -c conda-forge pythonnet
(td) C:\>conda install numpy
(td) C:\>conda install scipy
(td) C:\>conda install pandas
(td) C:\>conda install matplotlib
(td) C:\>conda install jupyterlab

注意点として,pythonnetはインストールの際にきちんとチャネルを指定して,バージョンを確認しよう.今回はpythonnet 2.4をインストールしているが,このバージョンとpythonnet 2.3では動作が異なる(自分の確認している限りでは,場合によってデータ型がC#のgeneric listからpython listに変わっていたりする).以下のページでインストールコマンドやソフトウェアバージョンが確認できる.

以下のコマンドでtd環境を終了し,現在存在する環境のリストを再度確認することができる.

(td) C:\>conda deactivate

(base) C:\>conda info --envs
# conda environments:
#
base                  *  C:\ProgramData\Anaconda3
td                       C:\conda\envs\td