• 検索結果がありません。

メインプログラムのソースコード解説

ドキュメント内 TITLE (ページ 33-36)

第 3 章 プログラム 15

3.4 ソースコード

3.4.1 メインプログラムのソースコード解説

使用するモジュールを適用する。

import os

⇒オペレーションシステムを参照。

import re

⇒正規表現モジュールを参照。

import formatconvert as convert

⇒フォーマット変換プログラムをconvertという名前に指定。このプログラムの下記で使用し ている。

import visualize_isosurface as view

⇒可視化プログラムをviewという名前に指定。このプログラムの下記で使用している。

import vtk

⇒vtkのライブラリを参照している。

————————————————————————————————————

パスの指定、実行したCubeファイルを記録するログの出力、他初期値の指定。

pwd = os.getcwd()

⇒パスをカレントディレクトリに指定。

files = os.listdir(pwd)

⇒path(カレントディレクトリ)にあるすべてのファイルとサブディレクトリの名前からなる

リストを返す。順番は不動。

out_log = open(’log_VTK.txt’,’w’)

⇒log_VTK.txtと名付けたファイルを書き込み専用で作成し、out_logという変数で置いてお く。

cnt = 0

⇒カウンタを指定し、以下で使用している。

⇒実行するモードを指定する。キーボードでの入力を待っている部分。「a」を押せば連続でCube ファイルをPNG形式で出力する。「c」を押せば、インタラクティブに操作できるようになる。

それ以外のキーを押した場合、実行される内容は、「a」を押したときと同様である。

boundary_mode = raw_input("Periodic:0, No_Periodic:1=")

⇒可視化のモードを周期境界条件を適用するか、適用しないかを選択する。

「0」を選択すると、周期境界条件を適用し、「1」を選択すると適用しないように設定してい る。

————————————————————————————————————

インプットのCubeファイルを引数として、フォーマット変換プログラムと、可視化プログラ ムに渡して実行する。また、1回目と2回目以降に実行するフォーマット変換のプログラムは 異なる。

for filenametext in files:

⇒filesは、カレントディレクトリにあるファイル名一覧である。カレントディレクトリにあ

るファイル名をfilenametextという変数に入れて、ファイルの数だけループを回す。

if filenametext.find(".cube") >= 0:

⇒ファイル名が.cubeと付くものがあればif文に従う。

if filenametext.find(".png") <0:

⇒ファイル名に.pngと付いていないものをif文に従わせる。これは、以前作成したPNGファ イル名の中に.cubeが入っていたりする場合のif文などである。(「sample.cube.png」など のファイルをCubeファイルと間違えて実行しないため。)

print "---"

⇒区切り線。実行内容を区切って分かるようにするため。

print filenametext

⇒実行しているファイル名を出力する。今どのCubeファイルを実行しているかわかるようにす るため。

out_log.write(filenametext + ’\n’)

⇒ログファイルに実行したファイル名を書き込む。後から、どのファイルが実行されたかわか るようにするため。

if cnt == 0:

⇒カウンタが0ならば以下のif文に従う。1回目と2回目以降ではフォーマット変換の処理が 異なるため。

30

check_line=convert.cube_vtk(filenametext,boundary_mode)

⇒filenametextの引数を渡して、コンバート変換プログラムを実行する。引数には、現在実

行しているファイルの名前と周期境界条件を適用するかどうかを選択した、ユーザーインプッ トの値が入っている。

view.vtk(filenametext,Batch_mode)

⇒filenametext,Batch_modeの引数を渡して、可視化プログラムを実行する。

cnt +=1

⇒カウンタに1を追加する。

elif cnt >= 1:

⇒カウンタが1以上ならば以下のif文に従う。1回目と2回目以降ではフォーマット変換の処 理が異なるため。

check_line=convert.cube_vtk2(filenametext,check_line,boundary_mode)

⇒filenametextの引数を渡して、コンバート変換プログラムを実行する。実行した内容を

check_lineに入れなおす。引数には、現在実行しているファイルの名前と周期境界条件を適用

するかどうかを選択した、ユーザーインプットの値が入っている。

view.vtk(filenametext,Batch_mode)

⇒filenametext,Batch_modeの引数を渡して、可視化プログラムを実行する。

out_log.close

⇒ログファイルを閉じる。

————————————————————————————————————

ドキュメント内 TITLE (ページ 33-36)

関連したドキュメント