CSVファイルを読み込みケースを追加し、全ケースのバッチ実行を行うスクリプトを例示します。
※pywin32がインストールされている必要があります。
import win32com.client
# 計算終了チェックの待機時間(秒)
CHECK_INTERVAL_SEC = 5.0
# CSVファイルを指定(CSVファイルは各自、ご用意ください。)
filename = r"D:/test.csv"
app = designer.GetApplication()
# 現在開いているスタディを取得
study = app.GetCurrentStudy()
# ケースの数を取得
num_cases = study.GetDesignTable().NumCases()
# 複数ケースある場合はケースを削除
for i in range(num_cases - 1):
study.GetDesignTable().RemoveCase(1)
# ケースパラメータをCSVファイルからインポート
study.GetDesignTable().Import(filename)
# 最初のケースを削除
study.GetDesignTable().RemoveCase(0)
# バッチ実行を行うために Job オブジェクトを作成
job = study.CreateJob()
# ジョブのタイトルを設定
job.SetValue("Title", study.GetName())
# ジョブを実行待ちの状態にする
job.SetValue("Queued", True)
# JMAG-Schedulerにジョブを投入
job.Submit(True)
# JMAG-Schedulerのオブジェクト取得
scheduler = win32com.client.Dispatch("scheduler.JobApplication.241")
# 計算終了まで待機
while scheduler.UnfinishedJobs() > 0:
app.Sleep(CHECK_INTERVAL_SEC * 1000) # JMAGのSleep関数はミリ秒単位
# 全ケースの新しい結果を確認
study.CheckForNewResults()


