[S0062] 各要素または節点の計算結果をファイル出力する

計算結果の分布量は、節点または要素を指定してテーブル形式でファイル出力することができます。
GUIでは画面に表示しますが、スクリプトからはファイルへの出力に対応しています。
このスクリプトでは、選択した部品を構成する要素の磁束密度の結果をCSVファイルとして出力します。

前提条件

  • 解析済みのスタディが1つ以上あること
    このスクリプト例では、プロジェクトツリー上でアクティブな磁界解析スタディに対して実行している
  • 出力したい部品の名前が既知であること
  • 非ウィンドウモードではないこと
    非ウィンドウモードでは結果テーブルの出力対象を選択できない

スクリプトにおける設定内容

  • 出力したい結果の詳細を指定する
    結果タイプには磁束密度
    成分は全成分
    ステップ間隔は1として全ステップとする
    最大最小値、要素の位置も出力するものとする
  • 出力対象として部品Rotorを選択する。
  • 開かれているプロジェクトファイルと同階層に、CSVファイルをエクスポートする
    ファイル形式は出力ファイル名に指定した拡張子によって決められる
    出力形式はJMAG-Designer形式で出力する
    ※JMAG-Designer形式、旧JMAG-Studio形式で出力することが可能
     出力される内容は行列の差異、出力できる情報の差異がある
     (旧JMAG-Studio形式の場合、成分に全成分指定不可。位置情報の出力不可)
# Copyright (c) 2026 JSOL CORPORATION
#
# 本スクリプトはMITライセンスのもとで公開しています。
# ライセンス全文は以下を参照してください。
# https://www.jmag-international.com/jp/scriptlibrary/jmag_script_library_mit/

import os

app = designer.GetApplication()

def createTableDefinition(study, tableDefParam):
    """出力する計算結果量と出力内容を作成して設定を返す"""
    definition = study.CreateTableDefinition()
    definition.SetResultType(tableDefParam[u"resultType"])
    # The Argument of SetCoordinate
    # 名称かインデックス
    # プリセット座標系の名称は言語設定に従って固定
    # インデックスはプロジェクト-モデル-座標系の下にある座標系定義から0ベースで指定
    definition.SetCoordinate(tableDefParam[u"coordinate"])
    definition.SetComponent(tableDefParam[u"component"])
    definition.SetStepsByInterval(tableDefParam[u"stepInterval"])
    definition.SetIsShownMinMaxInfo(tableDefParam[u"showMinMaxInfo"])
    definition.SetIsShownPositionInfo(tableDefParam[u"showPositionInfo"])
    return definition

def getFolderPathOfOpenedProjectFile():
    """開かれているjprojファイルのフォルダのパスを取得する"""
    openedJprojFilePath = app.GetProjectPath()
    folderPath = os.path.dirname(openedJprojFilePath)
    return folderPath

model = app.GetCurrentModel()
study = app.GetCurrentStudy()
tableDefParam = {
    u"resultType"       : u"MagneticFluxDensity",
    u"coordinate"       : 0,
    u"component"        : u"All",
    u"stepInterval"     : 1,
    u"showMinMaxInfo"   : True,
    u"showPositionInfo" : True,
}
tableDefinition = createTableDefinition(study, tableDefParam)
# 対象となる部品を選択する
sel = model.CreateSelection()
sel.SelectPart(u"IPM/rotor-1")
folderPath = getFolderPathOfOpenedProjectFile()
fileName = u"MagneticFluxDensity.csv"
outputFullPath = os.path.join(folderPath, fileName)
# テーブルの出力形式は以下から選択可能。
# designer : JMAG-Designer形式でテーブルを出力
# studio : 旧JMAG-Studio形式でテーブルを出力
study.ExportTable(tableDefinition, outputFullPath, "designer")

Download Python source code

ファイルご利用の注意点
JMAGスクリプトライブラリをご利用されるに際し、以下をよくお読みいただき、ご同意の上ご利用くださるようお願い申し上げます。
絞込み検索
  • カテゴリー 一覧

JMAG-Express Online
An engineer's diary