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

app = designer.GetApplication()
graphNm = u"targetSectionArc001"

def createArcGraphForSection(study, params):
    """セクションの新規円弧グラフを作成する"""
    sectionGraph = study.CreateSectionGraph(graphNm)
    sectionGraph.SetResultType(params["resultType"], params["sourceTitle"])
    sectionGraph.SetAbscissa(params["abscissa"])
    sectionGraph.SetArcExpression(params["arcExpression"]["originX"], params["arcExpression"]["originY"], params["arcExpression"]["originZ"],
                                  params["arcExpression"]["axisX"],   params["arcExpression"]["axisY"],   params["arcExpression"]["axisZ"],
                                  params["arcExpression"]["startX"],  params["arcExpression"]["startY"],  params["arcExpression"]["startZ"],
                                  params["arcExpression"]["angle"],   params["arcExpression"]["radius"])
    sectionGraph.Build()
    return sectionGraph

def outputResultSet(sectionGraph):
    """セクションのデータセットをログ出力"""
    dataSet = sectionGraph.GetDataSet()
    header = f"{dataSet.GetXAxisTitle()}, {dataSet.GetYAxisTitle()}"
    print(header)
    for i in range(dataSet.GetRows()):
        msg = f"{dataSet.GetValue(i, 0):13.10f}, {dataSet.GetValue(i, 1):13.10f}"
        print(msg)

study = app.GetCurrentStudy()
params = {
    "resultType"    : u"MisesStress",
    "sourceTitle"   : u"",
    "abscissa"      : u"angle",
    "arcExpression" : { "originX" : u"0",  "originY" : u"0", "originZ" : u"5",
                        "axisX"   : u"0",  "axisY"   : u"0", "axisZ"   : u"1",
                        "startX"  : u"26", "startY"  : u"0", "startZ"  : u"5",
                        "angle"   : u"90", "radius"  : u"26" },
}
sectionGraph = createArcGraphForSection(study, params)
if study.HasResult():
    outputResultSet(sectionGraph)
