-
Notifications
You must be signed in to change notification settings - Fork 13
20.2. Examples ja
seto edited this page Mar 23, 2026
·
1 revision
ReciProマクロの具体的な使用例を紹介します。
import os
# 保存先フォルダを選択
folder = File.GetDirectoryPath()
# 回折シミュレータを開く
DifSim.Open()
DifSim.Source_Electron()
DifSim.Energy = 200 # 200 keV
DifSim.Calc_Kinematical()
DifSim.SkipRendering = True # バッチ処理中は描画をスキップ
# 全結晶をループ
for i in range(80): # 結晶数に合わせて変更
CrystalList.SelectedIndex = i
name = Crystal.Name
Direction.ProjectAlongAxis(0, 0, 1) # [001] に投影
DifSim.SaveAsPng(os.path.join(folder, name + "_001.png"))
Direction.ProjectAlongAxis(1, 1, 0) # [110] に投影
DifSim.SaveAsPng(os.path.join(folder, name + "_110.png"))
DifSim.SkipRendering = Falseimport os
folder = File.GetDirectoryPath()
DifSim.Open()
DifSim.Source_Electron()
DifSim.Energy = 200
# [001] から開始
Direction.ProjectAlongAxis(0, 0, 1)
# 1度ずつ回転しながら90枚保存
for i in range(90):
DifSim.SaveAsPng(os.path.join(folder, "rot_%03d.png" % i))
Direction.RotateAroundAxisInDeg(1, 0, 0, 1) # a軸周りに1度回転# オイラー角を度で指定して結晶方位を設定
Direction.EulerInDeg(45, 30, 60)
# 同じことをラジアンで
import math
Direction.Euler(math.pi/4, math.pi/6, math.pi/3)# (111) 面の法線方向をスクリーンに垂直にする
Direction.ProjectAlongPlane(1, 1, 1)
# [110] 晶帯軸方向をスクリーンに垂直にする
Direction.ProjectAlongAxis(1, 1, 0)# 複数のCIFファイルを選択して読み込み
files = File.GetFileNames()
for f in files:
File.ReadCrystal(f)
CrystalList.Add()# 回折シミュレータのスポット情報をCSVとして取得
DifSim.Open()
Direction.ProjectAlongAxis(0, 0, 1)
info = DifSim.SpotInfo()
File.SaveText(info, "spot_info.csv")-
DifSim.SkipRendering = Trueを設定すると、画面描画をスキップしてバッチ処理を高速化できます。処理後はFalseに戻してください。 -
Sleep(ms)でスクリプトの実行を一時停止できます。描画の完了を待つ場合に有用です。 - マクロエディタ内でヘルプテキストを表示して、各関数の引数と説明を確認できます。