4.12. - Zone Macros
Zone mode is controlled with the
cz
(calculate zone),
sz
(set zone)
and
mz
(move zone) macros.
Given two Bragg reflections,
cz
will calculate and display the values of χ
and φ necessary to put both of these reflections in the
scattering plane.
To find the angles needed to put
(0,0,2) and (0,2,2) in the scattering plane, type
1.FOURC> cz 0 0 2 0 2 2
Chi = 45 Phi = 90 2.FOURC>
Once appropriate values of χ and φ have been calculated, the scattering plane can be set using the
pl
(plane) macro, which moves the 2θ and θ motors together,
1.FOURC> pl 45 90
2.FOURC>
Alternatively, you can use the
mz
macro, which calculates the necessary χ and φ, moves there, sets
zone mode, if not already in it,
and saves the values of the zone vectors in the
G[]
geometry parameter array.
1.FOURC> mz 0 0 2 0 2 2
2.FOURC> p A[chi], A[phi]
45 90 3.FOURC>
The
sz
macro calculates and displays the χ and φ values, sets
zone mode, if not already in it,
saves the values of the zone vectors, sets the frozen values of
zone -mode χ and φ, but does not move the diffractometer.
The
cz
,
sz
and
mz
macros make use of the
Z[]
array variables to pass the zone vectors to the geometry code.
1.FOURC> prdef cz
def cz ' if ($# != 6) { eprint "Usage: cz h0 k0 l0 h1 k1 l1" exit } Z[0]=$1; Z[1]=$2; Z[2]=$3; Z[3]=$4; Z[4]=$5; Z[5]=$6 calcZ printf("Chi = %g Phi = %g\n", A[chi], A[phi]) waitmove; get_angles; calcHKL ' 2.FOURC>