[D0021] トポロジー最適化形状のロード

 

選択したトポロジー最適化形状のロード

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()

Download Python source code

ファイルご利用の注意点

JMAGスクリプトライブラリをご利用されるに際し、以下の利用規約をよくお読みいただき、ご同意の上ご利用下さるようお願い申し上げます。