選択したトポロジー最適化形状のロード
import designer
app = designer.GetApplication()
def main():
cancel_message_en = "Process is canceled."
cancel_message_ja = "処理が中断されました。"
exit_message_en = "Process is done."
exit_message_ja = "処理が終了しました。"
exit_with_error_en = "Some shapes cannot be loaded."
exit_with_error_ja = "ロードできなかったケースが存在します。"
study = app.GetCurrentStudy()
studyName = study.GetName()
#show input dialog
dialog = create_input_dialog(studyName)
ret = dialog.Show()
if ret == 0:
show_cancel_exit_message(cancel_message_en, cancel_message_ja)
return
loadCasesLst = dialog.GetValueAsIntegerList("loadCases")
numCases = study.GetDesignTable().NumCases()
flgCanLoadAllCases = True
for caseNo in loadCasesLst:
try:
hasResult = False
if caseNo <= numCases:
hasResult = study.CaseHasResult(caseNo-1)
if hasResult == True:
folder = study.CalculationFolder(caseNo)
path = folder + "/Designer.jcf"
#Loading jcf as mesh model
app.LoadMesh(path)
loadStudy = app.GetCurrentStudy()
loadStudy.GetStudyProperties().SetValue(u"CsvOutputPath", u"")
loadStudy.GetStudyProperties().SetValue(u"CsvOutputResponseData", 0)
else:
flgCanLoadAllCases = False
except:
flgCanLoadAllCases = False
if flgCanLoadAllCases == True:
show_exit_message(exit_message_en, exit_message_ja)
else:
show_exit_message(exit_with_error_en, exit_with_error_ja)
return
def create_input_dialog(studyName):
title_en = "Specify loading cases"
title_ja = "ロードするケースの指定"
study_label_en = "Selecting study : " + studyName
study_label_ja = "選択中のスタディ : " + studyName
input_label_en = "Loading cases"
input_label_ja = "ロードするケース"
dialog = app.CreateDialogBox()
dialog.SetTranslation(title_en, title_ja)
dialog.SetTranslation(study_label_en, study_label_ja)
dialog.SetTranslation(input_label_en, input_label_ja)
dialog.SetTitle(title_en)
dialog.AddLabel(study_label_en)
dialog.AddIntegerList("loadCases", input_label_en, "1")
return dialog
def show_cancel_exit_message(message_en, message_ja):
title_en = "Cancel"
title_ja = "キャンセル"
show_message(title_en, title_ja, message_en, message_ja)
def show_exit_message(message_en, message_ja):
title_en = "Done"
title_ja = "終了"
show_message(title_en, title_ja, message_en, message_ja)
def show_message(title_en, title_ja, message_en, message_ja):
msgdlg = app.CreateDialogBox()
msgdlg.SetTranslation(title_en, title_ja)
msgdlg.SetTranslation(message_en, message_ja)
msgdlg.SetCancelButtonVisible(False)
msgdlg.SetTitle(title_en)
msgdlg.AddLabel(message_en)
msgdlg.Show()
main()


