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