esrf

Beamline Instrument Software Support
SPEC Macro documentation: [ Macro Index | BCU Home ]

#%NAME%
#  SLID10.MAC - gap and offset for two cylinder slits on ID10 
#%DESCRIPTION%
#%PRE%        
#  GAP   -
#  <-->| * | Cylinder    GAP = RADIUS*COS(OFFSET-hs) - CYLRAD
#       /_   with radius
#      /     CYLRAD
#     /
#    /
#   /  Angle: OFFSET - hs 
#  *-----------
#  <--RADIUS--> 
#%PRE% 
#  
#%EXAMPLE%
#  slid10setup 25 10 66.422 gaph hs gapv vs
#

def slid10_getgap '
global OLD_SSLIT
A[$1]=SSLIT_R*cos((-A[$2]+SSLIT_OFFSET)*PI/180 )-SSLIT_D
OLD_SSLIT[$3]=A[$1]
'

def slid10_movegap '
if (OLD_SSLIT[$3] != A[$2]) {
  A[$1]=SSLIT_OFFSET-180/PI*acos((A[$2]+SSLIT_D)/SSLIT_R)
  }
'

# very primitive setup radius diameter offset gaph hs gapv vs 
#%UU%  radius diameter offset gaph hs gapv vs
#%MDESC%

#    radius diameter offset are the parameters for the slits
#    the other for parameters are the mnemonics for the pseudomotors
def slid10setup ' 
global SSLIT_R SSLIT_D SSLIT_OFFSET
SSLIT_R=$1
SSLIT_D=$2
SSLIT_OFFSET=$3

cdef("user_getpangles","slid10_getgap $4 $5 0 ;",$4,1)
cdef("user_getpangles","slid10_getgap $6 $7 1 ;",$6,1)
cdef("user_checkall","slid10_movegap $5 $4 0 ;",$5,1)
cdef("user_checkall","slid10_movegap $7 $6 1 ;",$7,1)

'
#%MACROS%
#%IMACROS%
#%DEPENDENCIES%
# The file slid10.mac has to be read in         !done by: startup script
#    (this file needs: stchanges.mac)
#%AUTHOR%
#  SLID10.MAC  JK 8.93 
#%TOC%