スタディにて参照したり更新したりしたい対象の条件のオブジェクトを取得するには事前に識別可能なタイトルを付与しておくことが確実ですが、必ずしも整っていないことがあります。一方で1つのスタディには1つだけ付与されるタイプの条件も多くあります。このスクリプトでは条件のタイプを指定してスタディに付与されている条件を取得します。
前提条件
- スタディが1つ以上作成されていること
このスクリプト例では、プロジェクトツリー上でアクティブなスタディに対して実行している - 同じタイプの複数の条件がある場合はすべて取得できるが、その中での識別にはタイトルなどの識別できる事項が既知である必要
スクリプトにおける実行内容
- 回転運動条件のタイプ名”RotationMotion”を指定して、付与されている回転運動条件をすべて取得。タイプ名は言語設定に依らない
- 回転運動条件が付与されている対象の部品のIDを表示
- 回転運動条件のプロパティ値を表示。このスクリプトでは変位タイプと速度(一定値)を表示
- 開かれているプロジェクトファイルと同階層に、サイズを指定してイメージをエクスポートする
# Copyright (c) 2026 JSOL CORPORATION
#
# 本スクリプトはMITライセンスのもとで公開しています。
# ライセンス全文は以下を参照してください。
# https://www.jmag-international.com/jp/scriptlibrary/jmag_script_library_mit/
def getConditionsSpecifiedType(targetStudy, typeName):
"""スタディに付与されている指定されたタイプの条件を取得する"""
matches = []
numConds = targetStudy.NumConditions()
for i in range(numConds):
condition = targetStudy.GetCondition(i)
CondType = condition.GetScriptTypeName()
if CondType == typeName:
matches.append(condition)
return matches
def checkRotationMotionPropertyValues(conditions):
"""回転運動条件のいくつかのプロパティの値を取得して表示する"""
for cond in conditions:
if cond.GetScriptTypeName() == u"RotationMotion":
print(cond.GetType(), u"; name:", cond.GetName(), u"; Applied parts IDs", cond.GetParts())
proplist = conditions[0].GetPropertyNames()
for name in proplist:
if name == u"AngularVelocity":
print(cond.GetPropertyHelp(name), u":", cond.GetValue(name))
elif name == u"MotionGroupType":
print(cond.GetPropertyHelp(name), u":", cond.GetFlagAsString(name))
print(u"")
app = designer.GetApplication()
conditions = getConditionsSpecifiedType(app.GetCurrentStudy(), u"RotationMotion")
if len(conditions) <= 0:
print(u"Specified condition is not found.")
else:
checkRotationMotionPropertyValues(conditions)


