FEED(OPCS) Optical Printer Control System FEED(OPCS)
NAME
feed - feed motion control moves to motors every camera frame
USAGE
feed [chans] [file] # start feeding motors from file
feed off # disable feeding
[chans] declares specific channels to be used from the
file, and should consist of combined channel letters (ie. 'efgh'),
Asterisk (*) can be used to specify ALL channels.
[file] specifies the name of the file containing the positions
for the channels.
[off] tells FEED to cancel any FEEDs in progress.
EXAMPLE
feed efgh zoomfile.pos # Specify motion control file to
# control the e,f,g,h channels.
feed off # cancel any motion control files
# that may currently be in progress.
feed * zoomfile.pos # all channels from file
# (note: abc chans are ignored)
DESCRIPTION
FEED sets up per-frame motion control for situations such as zooms
and pans to be automatically controlled by an ASCII file containing
columns of numbers that represent absolute positions.
When FEED has been given a file, any command that shoots a frame on
the camera (such as cam or rep) will first read the next positions
from the file, send the motors to their new positions, and then shoot
the frame. This will continue until the end of the FEED file is
reached, at which point the FEED file is automatically turned off.
The file will be read one line at a time for each frame exposed.
When the end of the file is reached, the feed command is disabled,
and the file is closed.
FEED files can be disabled prematurely by specifying feed off,
canceling any FEED that is in effect, closing the file.
FEED is functionally similar to the FDI/FDO commands in that FEED
does not actually shoot any frames, but sets things up so that when
commands such as cam or rep are used, the motors move to the positions
JUST BEFORE the camera shoots each frame.
POSITION FILES (xxx.pos)
Position files can be created in a text editor by typing in the values
manually (see 'FEED FILE FORMAT' below), or by using external programs
to generate the numbers (e.g. 'ease.exe' for generating ease-in/outs)
The file contains white space delimited columns of numbers.
Each line in the file corresponds to a frame on the camera.
Each white-space delimited column corresponds to a motor axis
or 'channel'; the first column being channel 'a', the second 'b',
and so on.
Lines that start with '#' are ignored, so that comments can be
included within the file for readability.
Example:
# zoom.pos file
# a b c d e f g h i ..
0 0 0 0 0 0 505 100 0 <-- frame 1
0 0 0 0 112 0 505 201 0 <-- frame 2
0 0 0 0 340 0 505 302 0 <-- frame 3
0 0 0 0 652 0 505 403 0 <-- frame 4
0 0 0 0 1034 0 505 504 0 <-- frame 5
0 0 0 0 1480 0 505 605 0 <-- frame 6
0 0 0 0 1982 0 505 706 0 <-- frame 7
In this case the 'e', 'g' and 'h' channels have moves programmed
into them; 'e' has a ramp, 'g' has a holding position of '505',
and 'h' has a linear ramp. The rest of the channels are zero.
So to use just the 'e' channel from this file, the operator would use:
feed e zoom.pos rep 20
..this will set up and shoot the motion control move; each time
the camera exposes a frame, the 'e' channel will move to the next
position specified in the file under the 'e' column.
For more info on the position file format, see 'POSITION FILE FORMAT'
below.
SPECIAL CHANNELS
Currently, FEED ignores channels ABC, even if specified.
These correspond to the Aerial, Main, and Camera respectively,
and are only controlled by shooting commands (PRO2, PRO, CAM, etc)
FEED is only for the positioning non-shutter motors.
Like the GO(OPCS) command, if you have zoom and follow focus channels
configured on your system, FEED will do auto-follow focus ONLY if the
focus channel is specified to FEED. The file need not contain any
relevant values for the focus channel, but the channel must be
specified in order to do a follow focus zoom.
Typically channels are assigned this way:
a - aerial projector (if any)
b - main projector
c - camera
d - fader (if any)
e - zoom, usually the lens
f - focus, usually the camera body
g - filter wheel (if any)
Only the a/b/c/d channels must be assigned as shown; if there's
a fader, it must be on the 'd' channel, the camera must be on 'c'.
The other channels (e/f/g/h..) can be assigned to any axis you
like; the above are just recommendations.
FOLLOW FOCUS
In order for follow focus to work, the follow focus channel (f)
must be specified to FEED. The values in the file for that
channel will be ignored if INTERP is configured for followfocus,
and can therefore be all zeroes.
The INTERP command will control the motor movement for this
channel, automatically slaving the position of the focus to
the positions on the zoom (e), based on the interpolations.
If the focus channel is not specified to FEED, zooms will move
without moving the focus channel. In the following example,
'e' is the zoom, and 'f' is focus, with the 'f' channel slaved
to the zoom with an INTERP command (not shown):
feed ef zoom.pos # DO follow focus during zooms
feed e zoom.pos # DONT follow focus during zooms
If you want to specify your OWN focus positions in the FEED file,
simply disable the INTERP(OPCSDEFS) command for the focus channel:
! echo interp f - 0 0 0 > foo.foo ! ldefs foo.foo
This disables interpolation slaving for the focus channel, so that
it can be run like a normal channel, using the values from the file
for the positions.
POSITION FILE FORMAT
Position files are simple ascii files. They can be created with
text editors, custom programs, or with software that comes with
OPCS to create position files (e.g. ease.exe, gr.exe, etc).
o Lines whose first character starts with '#' are ignored.
These are comment lines, and are not parsed by FEED(OPCS).
o Each line in the file is considered a 'frame'.
o Each line should have no more than 256 characters.
o Each number on the line represents an ABSOLUTE POSITION for
that channel's motor. There is no way to represent RELATIVE
positioning in a FEED file currently.
o The channels are always (ABCDEFGH..) respectively from left to
right. Even though the software always ignores values for the
'abc' channels, some value (usually zeroes) must be there.
o Numbers are normally ASCII signed integers, although can
be floating point values for channels such as the fader,
to specify floating point 'degrees'.
Here is a sample file that has a 5 frame zoom programmed into
the 'e' channel:
# TEST.POS
# A B C D E F G H
0 0 0 0 10 0 0 0
0 0 0 0 25 0 0 0
0 0 0 0 45 0 0 0
0 0 0 0 60 0 0 0
0 0 0 0 65 0 0 0
Although values must be specified in the A,B and C columns, they are
automatically ignored by the OPCS software to avoid screwing up the
camera and projector positions which are better controlled by other
commands such as CAM, PRO and REP.
To use the above file:
feed ef test.pos # Start 'feed'ing numbers from test.pos
cam 5 # Shoot all 5 frames in the file
Note that you can use any shooting command, including RAT and REP
to shoot the frames. The rule to remember is new positions are fed to
the motors BEFORE the camera ever shoots a frame.
SEE ALSO
GO(OPCS) - Move motors some distance or to new positions
INTERP(OPCSDEFS) - configure channel position interpolations
ORIGIN
Gregory Ercolano, Los Feliz California 01/10/91