# Copyright (c) 2026 JSOL CORPORATION
#
# 本スクリプトはMITライセンスのもとで公開しています。
# ライセンス全文は以下を参照してください。
# https://www.jmag-international.com/jp/scriptlibrary/jmag_script_library_mit/

app = designer.GetApplication()

def createScaling(study, param):
    """プロットに適用する倍率を設定する(スケール設定)"""
    scaFac = study.CreateScaling(param[u"title"])
    scaFac.SetScalingFactor(param[u"scalingFactor"])

def createVector(study, paramVector):
    """スケールを適用したベクトルプロットを作成し表示設定を行う"""
    vectorDefinition = study.CreateVector(paramVector[u"title"])
    vectorDefinition.SetResultType(paramVector[u"resultType"])
    vectorDefinition.SetPlace(paramVector[u"place"])
    vectorDefinition.SetViewScale(paramVector[u"viewScale"])
    vectorDefinition.SetScalingFactor(paramVector[u"scalingFactor"])
    # 表示タイプ
    # 0:シェーディング
    # 1:隠線なし
    # 2:ワイヤフレーム
    vectorDefinition.SetDisplayType(paramVector[u"displayType"])
    vectorDefinition.SetViewOriginalModel(paramVector[u"viewOriginalModel"])

study = app.GetCurrentStudy()
paramScale = {
    u"title" : u"SingleScale",
    u"scalingFactor" : 1.25
}
createScaling(study, paramScale)
paramVector = {
    u"title" : u"DispVecSingleScale",
    u"resultType" : u"Displacement",
    u"place" : u"SurfaceNodes",
    u"viewScale" : True,
    u"scalingFactor" : study.GetPostCondition(paramScale[u"title"]),
    u"displayType" : 2,
    u"viewOriginalModel" : True
}
createVector(study, paramVector)

# 結果のベクトル表示をON
view = app.View()
view.SetVectorView(True)
