Vectors

PyStages provides the pystages.Vector for basic vector manipulation. Querying or setting the position of stages is done with instances of pystages.Vector.

pos = mystage.position
print(f'Position: {pos}')
mystage.position = Vector(100e-6, 0e-6, 0e-6)

The dimension of vectors is arbitrary and depends on the number of axis of the controlled stage. In addition to indexing operator [], the fourth first elements of vectors can be accessed using the x, y, z and w attributes.

pos = mystage.position
print(f'Position: {pos[0], pos[1], pos[2]}')
print(f'Position: {pos.x, pos.y, pos.z}')

Position attribute details

The position property of stage instances return a detached pystages.Vector. Modifying the returned vector does not move the stage, so the following code does not work as intended:

# Does NOT work
mystage.position.x = 100

This should be written as:

# Move the X axis
pos = mystage.position
pos.x = 100
mystage.position = pos

This is more verbose, but may prevent awkward situations where a user thinks he has a copy of the position and then starts editing it.