ユーザーコンポーネントは、分布量の解析結果に任意の数式を適用し独自の出力項目を作成できます。
ユーザーコンポーネントではスカラー演算のみをサポートしています。
作成したユーザーコンポーネントは、コンタープロット、プローブなどで表示することができます。
このスクリプトでは、ユーザーコンポーネントの式を作成し、作成したユーザーコンポーネントを使用したプローブを定義します。
前提条件
- スタディが1つ以上作成されていること
このスクリプト例では、プロジェクトツリー上でアクティブな磁界周波数応答解析スタディに対して実行している
スクリプトにおける設定内容
- ユーザーコンポーネントを作成する。
解析タイプに磁界解析を設定
式に節点力(0次成分)のx成分を用いた"abs(Fn0x)"を設定
ユーザーコンポーネント名を"UCMagFn0xAbs"と設定 - 結果のタイプをユーザーコンポーネントとしたプローブを作成する。
結果のタイプに作成したユーザーコンポーネント"UCMagFn0xAbs"を設定
# Copyright (c) 2026 JSOL CORPORATION
#
# 本スクリプトはMITライセンスのもとで公開しています。
# ライセンス全文は以下を参照してください。
# https://www.jmag-international.com/jp/scriptlibrary/jmag_script_library_mit/
app = designer.GetApplication()
def createUserComponent(param):
"""ユーザコンポーネントを作成する"""
usrCompoList = app.GetUserComponentList()
usrCompo = usrCompoList.CreateUserComponent(param[u"title"])
# 解析タイプ
# 0 : 磁界解析
# 1 : 熱解析
# 2 : 構造解析
# 3 : 電界解析
# 4 : 鉄損解析
usrCompo.SetAnalysisType(param[u"anType"])
usrCompo.SetDescription(param[u"desc"])
usrCompo.SetExpression(param[u"expr"])
def createProbeByUserComponent(study, userCompoTitle):
"""作成したユーザコンポーネントを結果のタイプとして使用したプローブの作成を行う"""
probeDef = study.CreateProbe(u"probeUserCompo")
probeDef.SetResultType(u"User")
probeDef.SetUserComponentType(userCompoTitle)
# The 1st argumet of SetResultCoordinate
# 名称かインデックス
# プリセット座標系の名称は言語設定に従って固定
# インデックスはプロジェクト-モデル-座標系の下にある座標系定義から0ベースで指定
probeDef.SetResultCoordinate(0)
probeDef.SetLocationCoordinate(0)
probeDef.SetProbeType(u"Coordinate")
probeDef.SetLocation(0, u"0", u"0", u"1")
probeDef.RenamePoint(0, u"PointAlpha")
probeDef.SetUseElementValue(False)
probeDef.SetMoveWithPart(True)
userCompoTitle = u"UCMagFn0xAbs"
param = {
u"title" : userCompoTitle,
u"anType" : 0,
u"desc" : u"節点力0次xの絶対値",
u"expr" : u"abs(Fn0x)",
}
createUserComponent(param)
study = app.GetCurrentStudy()
createProbeByUserComponent(study, userCompoTitle)


