[S8532] 任意磁化設定のテーブルをcsvファイルから設定するするスクリプト

 

任意磁化設定のテーブルをcsvファイルから設定するするスクリプトを例示します。

※インストールディレクトリ内のサンプルデータ『2D_PM_motor.jproj』を使用しています。

CSVファイルの記入例
Y1
0 0.5 1
0 135 90 45
0.5 135 90 45
1 135 90 45
import csv

import os

# CSVファイルを指定

filename = r"D:/test.csv"

app = designer.GetApplication()

# 表示しているスタディを取得

study = app.GetCurrentStudy()

# 数値データを格納するリスト

data_list = []

# CSVファイルを読み込み、データを二次元リストに格納

with open(filename, 'r', newline='', encoding='utf-8') as f:

# csv.readerオブジェクトを作成

   reader = csv.reader(f)

   # 1行目をスキップ

   next(reader)

   # 各行のデータをリストとして取得し、data_listに追加

   for row in reader:

       # 変換結果を格納するリスト

       numeric_row = []

       for item in row: 

           # 文字列の " を削除し、前後の空白を取り除く

           clean_item = item.replace('"', '').strip()

           # 空白や空の文字列でないかを確認

           if clean_item:

               # 文字列を浮動小数点数に変換し、numeric_rowに追加

               numeric_row.append(float(clean_item))

           else:

               # 空だった場合に 0.0 という浮動小数点数をnumeric_rowリストに追加

               numeric_row.append(0.0)

       # 変換された行をリストに追加

       data_list.append(numeric_row)

# 着磁パターンの変更

study.GetMaterial(u"Magnet").SetPattern(u"AnySpecifiedRectangular")

# 磁石形状の幅を設定

study.GetMaterial(u"Magnet").SetValue(u"RectangularWidth", 21.81)

# 磁石形状の厚さを設定

study.GetMaterial(u"Magnet").SetValue(u"RectangularThickness", 2.5)

# 基準軸の軸上の一点を設定

study.GetMaterial(u"Magnet").SetOriginXYZ(1.48138870658581, 16.9033876042644, 0)

# 基準軸の方向を設定

study.GetMaterial(u"Magnet").SetDirectionXYZ(0.707106781186548, -0.707106781186547, 0)

# 磁化方向のテーブルを設定

study.GetMaterial(u"Magnet").SetTableList(u"AngleTableListRectangular", 0, "", data_list)

ファイルご利用の注意点

JMAGスクリプトライブラリをご利用されるに際し、以下の利用規約をよくお読みいただき、ご同意の上ご利用下さるようお願い申し上げます。