-
Notifications
You must be signed in to change notification settings - Fork 12
20.2. Examples
seto edited this page Mar 23, 2026
·
23 revisions
Practical examples for ReciPro macros.
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): # adjust to your crystal count
CrystalList.SelectedIndex = i
name = Crystal.Name
Direction.ProjectAlongAxis(0, 0, 1)
DifSim.SaveAsPng(os.path.join(folder, name + "_001.png"))
Direction.ProjectAlongAxis(1, 1, 0)
DifSim.SaveAsPng(os.path.join(folder, name + "_110.png"))
DifSim.SkipRendering = Falseimport os
folder = File.GetDirectoryPath()
DifSim.Open()
DifSim.Source_Electron()
DifSim.Energy = 200
Direction.ProjectAlongAxis(0, 0, 1)
for i in range(90):
DifSim.SaveAsPng(os.path.join(folder, "rot_%03d.png" % i))
Direction.RotateAroundAxisInDeg(1, 0, 0, 1)Direction.EulerInDeg(45, 30, 60)
import math
Direction.Euler(math.pi/4, math.pi/6, math.pi/3)Direction.ProjectAlongPlane(1, 1, 1) # (111) normal → screen
Direction.ProjectAlongAxis(1, 1, 0) # [110] → screenfiles = File.GetFileNames()
for f in files:
File.ReadCrystal(f)
CrystalList.Add()DifSim.Open()
Direction.ProjectAlongAxis(0, 0, 1)
info = DifSim.SpotInfo()
File.SaveText(info, "spot_info.csv")- Set
DifSim.SkipRendering = Trueduring batch operations to speed up processing. Reset toFalseafterwards. - Use
Sleep(ms)to pause execution when you need to wait for rendering to complete. - Use the macro editor's built-in help to check function signatures and descriptions.