57 lines
1.8 KiB
Python
57 lines
1.8 KiB
Python
###################################################################################################
|
|
# Demonstrate use of Vector Scan: one or multiple positioners set with a list or generator.
|
|
###################################################################################################
|
|
|
|
|
|
|
|
#1D vector scan, positions in a list
|
|
vector = [ 1, 3, 5, 10, 25, 40, 45, 47, 49, 20, 2]
|
|
#r1 = vscan(inp,(out,sin),vector,False, 0.5, title = "1D Vector")
|
|
|
|
|
|
#1D vector scan, positions given by a generator
|
|
def gen():
|
|
num = 0.0
|
|
while num < 10:
|
|
yield num
|
|
num += 1
|
|
#v2 = vscan(ao1,(ai1,ai2),gen(),False, 0.5, title = "1D Generator")
|
|
|
|
|
|
vector = [ [1,1] , [1,2] , [1,3] , [1,4] ,
|
|
[1.5,2.5] ,
|
|
[2,1] , [2,2] , [2,3] , [2,4] ,
|
|
[2.5,2.5] ,
|
|
[3,1] , [3,2] , [3,3] , [3,4] , [2.1, 2.1] ]
|
|
|
|
r3 = vscan((m1,m2),(wf1, ai1,ai2),vector,False, 0.1, title = "2D Vector")
|
|
|
|
|
|
#2D vector scan, positions given by a generator
|
|
def gen():
|
|
a= 0
|
|
while abs(a) < len(vector):
|
|
|
|
yield vector[a]
|
|
a=a+1
|
|
|
|
|
|
#r2 = vscan((m1,m2),(ai1,ai2),gen(),False, 0.1, title = "2D Generator", range = [0.0,5.0, 0.0, 5.0])
|
|
|
|
|
|
def spiral_gen(radius, step, resolution=.1, angle=0.0, origin=[0.0, 0.0]):
|
|
d = 0.0
|
|
while d * math.hypot(math.cos(angle), math.sin(angle)) < radius:
|
|
cord=[]
|
|
cord.append(origin[0] + d * math.cos(angle))
|
|
cord.append(origin[1] + d * math.sin(angle))
|
|
yield(cord)
|
|
d+=step
|
|
angle+=resolution
|
|
|
|
spiral = spiral_gen(10, 0.1)
|
|
#for i in spiral_gen(10, 1, 0.1, 0.0, 0.0):
|
|
# print i
|
|
|
|
#r2 = vscan((m1,m2),(wf1, ai1,ai2),spiral,False, 0.1, title = "2D Generator", range = [-10.0,10.0, -10.0, 10.0])
|
|
|