任意磁化設定のテーブルをcsvファイルから設定するするスクリプトを例示します。
※インストールディレクトリ内のサンプルデータ『2D_PM_motor.jproj』を使用しています。
| 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)


