自動メッシュ生成機能では、解析やメッシュ生成条件を考慮したメッシュを自動で作成します。
また、JMAG-Designerの形状エディタを用いて分割数やサイズを決め、手動でメッシュ作成することもできます。
このスクリプトでは、スタディに作成されているメッシュの節点数と要素数を取得します。
前提条件
- スタディが1つ以上作成されていること
このスクリプト例では、プロジェクトツリー上でアクティブなスタディに対して実行している
スクリプトにおける実行内容
- スタディと指定したケースにおいて、メッシュが作成されていなければ自動メッシュ生成を実行する
- 生成されたメッシュの節点数と要素数を表示する
# Copyright (c) 2026 JSOL CORPORATION
#
# 本スクリプトはMITライセンスのもとで公開しています。
# ライセンス全文は以下を参照してください。
# https://www.jmag-international.com/jp/scriptlibrary/jmag_script_library_mit/
def generateMesh(study, caseNo):
"""引数で指定されたスタディのケースでメッシュが未生成であれば生成"""
# SetCurrentCaseの引数は0ベースのインデックスのため、ケース番号-1とする
caseIndex = caseNo - 1
study.SetCurrentCase(caseIndex)
if not study.HasMesh():
study.CreateMesh()
def checkNumNodesAndElems(study, caseNo):
"""引数で指定されたスタディのケースで節点数と要素数を取得し表示"""
caseIndex = caseNo - 1
study.SetCurrentCase(caseIndex)
if study.HasMesh():
report = study.GetReport()
num_nodes = report.NumVertices()
num_elements = report.NumElements()
print(f"Nodes of Case{caseNo}: {num_nodes}")
print(f"Elements of Case{caseNo}: {num_elements}")
else:
print(u"No mesh generated for the current case")
app = designer.GetApplication()
targetCase = 2
study = app.GetCurrentStudy()
if targetCase > study.GetDesignTable().NumCases():
print(u"The case", targetCase, u"doesn't exist in this study.")
else:
generateMesh(study, targetCase)
checkNumNodesAndElems(study, targetCase)



