#--------------------------------------------------------------------- #Name: d0030_set_eddy_current_flag_on.py #Menu-en: Allow Eddy Current for selected parts #Menu-ja: 選択中の部品へ渦電流を考慮する #Type: Python #Create: Apr. 15, 2016 JSOL Corporation #Comment-en: This script sets the "Allow Eddy Current" flag for selected parts. #Comment-ja: 選択された部品に対して、[渦電流を考慮する]フラグを設定する。 #Copyright: (c) JSOL Corporation. All Rights Reserved. #--------------------------------------------------------------------- import designer app = designer.GetApplication() def main(): if check_HasResult(app) == True: return if is_study_type_magnetic() == False: return if is_selected_any_parts() == False: return if initial_notice() is True: return set_parts_eddy_current_on() def set_parts_eddy_current_on(): flag_name = "EddyCurrentCalculation" view = app.View() sel = view.GetCurrentSelection() study = app.GetCurrentStudy() parts_num = sel.NumParts() for i in range(0, parts_num): study.GetMaterial(sel.PartID(i)).SetValue(flag_name, 1) view.ClearSelect() def is_study_type_magnetic(): str = "Magnetic" str_ja = "磁界" study_type = app.GetCurrentStudy().GetType() if str in study_type or str_ja in study_type: return True else: message_is_not_study_type_magnetic() return False def message_is_not_study_type_magnetic(): msgdlg = app.CreateDialogBox() title = "Error" message = "The study type is not a magnetic analysis study." title_jp = "エラー" message_jp = " スタディタイプは磁界解析ではありません。" msgdlg.SetTranslation(title, title_jp) msgdlg.SetTranslation(message, message_jp) msgdlg.SetCancelButtonVisible(False) msgdlg.SetTitle(title) msgdlg.AddLabel(message) msgdlg.Show() def is_selected_any_parts(): sel = app.View().GetCurrentSelection() if 0 < sel.NumParts(): return True else: message_do_not_select_parts() return False def message_do_not_select_parts(): msgdlg = app.CreateDialogBox() title = "Error" message = "No parts are selected." title_jp = "エラー" message_jp = "部品が選択されていません。" msgdlg.SetTranslation(title, title_jp) msgdlg.SetTranslation(message, message_jp) msgdlg.SetCancelButtonVisible(False) msgdlg.SetTitle(title) msgdlg.AddLabel(message) msgdlg.Show() def initial_notice(): confirmDlg = app.CreateDialogBox() title = "Set Eddy current flag on" message = "This script will set the eddy current calculation flag on all the selected parts.
" message = message + "
" + " - air parts will be excluded." message = message + "
" + "
" + "Do you want to run?" title_jp = "渦電流を考慮するフラグをONにします" message_jp = "現在のスタディの中の選択した部品の渦電流を考慮するフラグをONに設定します。
" message_jp = message_jp + "
" + " ・ 空気材料以外の部品について設定をおこないます。" message_jp = message_jp + "
" + "
" + "実行しますか?" confirmDlg.SetTranslation(title, title_jp) confirmDlg.SetTranslation(message, message_jp) confirmDlg.SetTitle(title) confirmDlg.AddLabel(message) confirmDlg.Show() return confirmDlg.WasCancelled() def check_HasResult(app): targetStudy = app.GetCurrentStudy() hasResult = False if targetStudy.AnyCaseHasResult() == True: hasResult = True errorDlg = app.CreateDialogBox() title_jp = "エラー" message_jp = "結果を持つケースがあります。" title = "Error" message = "There are some cases those have result in this study." errorDlg.SetTranslation(title, title_jp) errorDlg.SetTranslation(message, message_jp) errorDlg.SetCancelButtonVisible(False) errorDlg.SetTitle(title) errorDlg.AddLabel(message) errorDlg.Show() return hasResult main()