73 lines
1.7 KiB
Python
Executable File
73 lines
1.7 KiB
Python
Executable File
|
|
from __future__ import absolute_import
|
|
|
|
|
|
from diffcalc import settings
|
|
from diffcalc.hkl.you.geometry import SixCircle
|
|
from diffcalc.hardware import DummyHardwareAdapter
|
|
import diffcalc.util # @UnusedImport
|
|
|
|
|
|
# Disable error handling designed for interactive use
|
|
diffcalc.util.DEBUG = True
|
|
|
|
|
|
# Configure and import diffcalc objects
|
|
settings.hardware = DummyHardwareAdapter(('mu', 'delta', 'gam', 'eta', 'chi', 'phi'))
|
|
settings.geometry = SixCircle() # @UndefinedVariable
|
|
|
|
|
|
# These must be imported AFTER the settings have been configured
|
|
from diffcalc.dc import dcyou as dc
|
|
from diffcalc.ub import ub
|
|
from diffcalc import hardware
|
|
from diffcalc.hkl.you import hkl
|
|
|
|
# Set some limits
|
|
hardware.setmin('gam', -179)
|
|
hardware.setmax('gam', 179)
|
|
|
|
# These demos reproduce the outline in the developer guide
|
|
def demo_all():
|
|
demo_orient()
|
|
demo_motion()
|
|
|
|
|
|
def demo_orient():
|
|
|
|
ub.listub()
|
|
|
|
# Create a new ub calculation and set lattice parameters
|
|
ub.newub('test')
|
|
ub.setlat('cubic', 1, 1, 1, 90, 90, 90)
|
|
|
|
# Add 1st reflection (demonstrating the hardware adapter)
|
|
settings.hardware.wavelength = 1
|
|
ub.c2th([1, 0, 0]) # energy from hardware
|
|
settings.hardware.position = 0, 60, 0, 30, 0, 0
|
|
ub.addref([1, 0, 0])# energy and position from hardware
|
|
|
|
# Add 2nd reflection (this time without the harware adapter)
|
|
ub.c2th([0, 1, 0], 12.39842)
|
|
ub.addref([0, 1, 0], [0, 60, 0, 30, 0, 90], 12.39842)
|
|
|
|
# check the state
|
|
ub.ub()
|
|
ub.checkub()
|
|
|
|
|
|
def demo_motion():
|
|
dc.angles_to_hkl((0., 60., 0., 30., 0., 0.))
|
|
hkl.con('qaz', 90)
|
|
hkl.con('a_eq_b')
|
|
hkl.con('mu', 0)
|
|
|
|
hardware.setmin('delta', 0)
|
|
dc.hkl_to_angles(1, 0, 0)
|
|
|
|
|
|
demo_all()
|
|
|
|
|
|
|
|
|