QUICKREF(DOCS)		Optical Printer Control Systems	  	QUICKREF(DOCS)

        quickref - OPCS quick reference


    *** STANDARD PROCEDURES **********************************************

    There are two things to remember about the movements that are typical 
    when the OPCS system is idle:

	1) The projectors are SEATED when system is idle

	2) The camera is UNSEATED when system is idle

    This way, you can look through the viewer and see a pinned, seated 
    projector image. This is the image that is about to be shot.
    Film in the camera should be unseated, so that the camera shutter 
    is closed, and not exposing film.

	   It is important to be familiar with the order of how the system
	   executes shooting operations:
    >>	       1) Motors seek positions FIRST. (for feeds, fades, dissolves)

    >>	       2) Camera exposes film SECOND.

    >>	       3) Projectors advance THIRD.

    >>	       4) Wedge/filter wheels are moved LAST. (autofilt)

	   If a fade, feed or dissolve is pending, these will move to 
	   positions first.

	   If the camera is told to shoot, it will shoot AFTER feed/fade/dx's
	   have moved to position.

	   After the camera exposes the image in the projector gate(s), the
	   projector(s) advance to their new positions.

    >>	   Before a step print, remember that the image in the projector's
    >>	   gate is ABOUT TO BE SHOT. The camera always shoots first, and
    >>	   the projectors advance after.

	   If there are any pending autofilt commands, these will move last.
	   This way, before a wedge, you are looking at a projector image
	   through the filter wheel position that has no filter in it, making
	   it easier to look through the viewer before a wedge.

    The allstop key will stop running motors. If a camera or projector run
    is in progress, ALLSTOP will stop at the nearest frame, and prompt
    for ABORT or CONTINUE. If you choose CONTINUE, the shot will resume
    as if nothing happened. This will not affect the shot's exposure or 
    frame count. If you choose ABORT, the command will stop, and you will
    be able to start new commands.

    If someone has setup 'seekcap yes' in your opcsdefs.opc file, the 
    following will cap the shutter and run off the frames at the camera's
    slewing speed, and then return the fader to its previous position:

        seek 100       # caps fader, runs off 100 frms on camera at
	               # slew speed,  and returns fader to previous
	               # position.

    This is the equivalent, more obvious way, but does not use the 'slew'
    speed for the camera:

        cls cam 100 opn     # Close fader, wind cam 100x, open fader

    Before starting a shot, you will probably want to reset your counters,
    roll off some black on the camera, and send the projectors out to their
    starting frames to prep for the first shot. Here's an actual typical
    example as typed in by a camera operator:

        load                  # operator loads camera & projectors
        res 0 0 0             # resets all counters to zero
        seek >120 >120 >100   # send projectors to start, winds off
                              #  100 frames of black on camera.
        rat 1 1 1 spd .25     # Setup a default ratio and camera speed.
        opn                   # Make sure shutter is open, and that no
                              # fades or dissolves are pending.

    The above commands can be put into a file, since it is done each time
    the operator starts a shot. See RUNCMD(OPCSDEFS) for defining new
    commands, and RUN(OPCS) for making and executing scripts. An example
    of making the above into a command would be:

	Add the following to your OPCSDEFS.OPC file:

	    runcmd newshot newshot.run 2

	Now enter 'ldefs opcsdefs.opc' to make sure the RUNCMD takes effect.
	Then, make a file called NEWSHOT.RUN with the following commands:

	    res 0 0 0
	    seek $1 $2 >100
	    rat 1 1 1 spd .25 opn

	You should now be able to type the following at the OPCS prompt, which
	will automatically run the LOAD command, reset counters, run the
	projectors out to their starting frames, etc:

	    newshot >120 >120

    To hold on a frame currently in the projector's gate, use the CAM command.
    Note you can specify frames, feet/frames, or absolute frame positions:

         cam 12       #  run camera 12 frames
	 cam 4'2      #  run camera 4 feet 2 frames
	 cam >12      #  run camera TO frame 12 on the counter
	 cam >4'2     #  run camera TO 4 feet 2 frames on the counter

    To do a straight print, you can do it the slow way, or the fast and 
    efficient way...

	do 12  cam 1 pro 1     #  SLOW WAY: straight print 12x
	do 12  cam 1 pro -1    #  SLOW WAY: straight reverse print 12x

	rat 1  1  rep 12       #  FAST WAY: straight print 12x
	rat 1 -1  rep 12       #  FAST WAY: straight reverse print 12x

    To do a step print of any kind, it is recommended you use RAT and REP:

        rat 2 1   rep 12    #  FAST MOTION: 12x step print of every other
                            #  projector frame

	rat 1 2   rep 6     #  SLOW MOTION: 12x step print on twos
                            #  Note REP 6 because camera shoots 2x each time

        rat -1 1  rep 12    #  REVERSE MOTION: 12x reverse print

    Sometimes it is desirable to cycle projector frames rather than do a
    simple hold. Here is a back and forth cycle (1,2,3,2,1,2...):

	do 12  rat 1 1 rep 3 pro -1 rat -1 1 rep 2

    Here is a cycle of selected projector frames (3,6,8,6,3...):

	do 12  pro >3 cam 1 pro >6 cam 1 pro >8 cam 1 pro >6 cam 1

	1) fdi 12 cam 12

	2) rat 1 1 dxo 12 rep 12

	3) do 12  dxo 4 cam 4 seek 8 -4 dxi 4 cam 4
	          ^These commands repeat 12 times from left to right.

    The first example sets up and shoots a 12x fade-in in on a still
    projector image.

    The second example sets up and shoots a 12x dissolve out of a
    moving projector image.

    The last example does (12) 4-frame cross dissolves on every 8th
    projector image, having the effect of 'weaving' still frames from 
    an otherwise slow-motion moving projector image. Here's a break
    down of the command:

      do 12  dxo 4 cam 4  seek 8 -4  dxi 4 cam 4
      -----  -----------  ---------  -----------
        |         |           |           |
        |         |           |           Shoot 4x dissolve in
        |         |           Projector advances 8, camera backwinds 8.
        |         |           (note: fader is closed after DXO 4 CAM 4
        |         |           finished executing, so it's OK to backwind)
        |         Shoot 4x dissolve out.
        Repeat all commands to the right 12 times. One execution would do
        a single cross dissolve. 'do 12' will do 12 cross dissolves.

    You can use the SPD command to easily do exposure wedges. 
    To do a wedge the hard way, you can make a small script out of
    the following commands:

	    spd .20 cam 1
	    spd .30 cam 1
	    spd .40 cam 1
	    spd .50 cam 1
	    spd .60 cam 1
	    spd .70 cam 1
	    spd .80 cam 1
	    spd .90 cam 1
	    spd 1.0 cam 1

    This shoots a 9 frame wedge of the camera speeds between .20 and 1.0
    at .10 increments.

    There is a shorthand way to achieve the same, using the 'relative 
    offset' feature in the SPD command:

	    spd .20 do 9 cam 1 spd +.10

    NOTE: When done executing, the current speed speed will be left at 1.1,
    even though it won't have been shot as part of the wedge.

    If you have a filter wheel, you can automate wedging the filter
    wheel using the AUTOFILT command.

    For instance, the most efficient way to shoot a simple 20x wedge 
    on the filter wheel:

	autofilt on  cam 20

    Or, in long hand, and somewhat slower to shoot:

	home autofilt         # home the filter wheel
	do 20 cam 1 go h 100  # shoot 20x, filter +100 pulses each frm

    To shoot a combination exposure and filter wedge, you can do the 
    following to wedge both the exposure (1.0 thru 0.2 on .10 increments)
    and the full 20x on the filter wheel:

	spd 1.0 do 8 autofilt on cam 20 spd -.1

    To break this down:
	spd 1.0      - start the exposure speed at 1.0
	do 8         - repeat the following commands 8 times
	autofilt on  - home the filter wheel, and enable auto-wedging
	cam 20       - shoot 20x; filter wheel will move each frame
	spd -.1      - subtract .1 from exposure speed

*** AUTOMATED SCRIPTS ***************************************************

    You can setup scripts to do several operations automatically. 
    Experienced operators can setup a complicated printing operation
    as a script file, so another operator can shoot it without knowing
    the intricate details involved.
    This also lets you re-run the script later if a reshoot is necessary.

    You can either use a text editor to create a script of OPCS commands,
    or you can use the LOG command to have the software save commands to a
    file as you execute them. If you use the LOG command to create a file,
    you can use a text editor to make corrections or modifications afterwards.

        log myfile.log   # Start a command log to the file 'myfile.log'
	                 # Commands executed in the OPCS software from
	                 # here on will be saved to the file.

	log off          # This closes the logfile, and turns off
	                 # command logging. Note: if you quit the
	                 # OPCS software, it will automatically close
	                 # and save any log files that were in progress.

    Once you have a script file, you can run it by executing:

        run myfile.log        #  run the commands in the script

    While the script runs, the filename is shown in the runbar, along
    with the line number its currently executing.

    You may find that at a certain point, you want the script to pause
    so the operator can change filters, or do some other manual operation
    before continuing. Use the PSE command for this. Consider this excerpt
    from a script:

        fdo 12 cam 12 cam 24       # fade out and hold black
	seek >1878 -               # find Scene 4A

	# HEY YOU! Wake up, and insert the ND 60 filter for Scene 4A
	@ pse

	rat 2 1 rep 400            # fast motion of guy running

    When this script executes, the 'HEY YOU' comment will appear on the
    screen, and PSE will stop with a prompt:

	# HEY YOU! Wake up, and insert the ND 60 filter for Scene 4A
        RETURN to continue,  SPACEBAR to abort: _

    ...The operator can then insert the filter, and continue the shot.

    While a script is running, the operator can hit ALLSTOP, which will
    pause the script wherever it happens to be at the time, allowing the
    option of continuing or aborting.

    The operator may decide to ABORT the running script to execute other
    commands before continuing or to fix a problem. When a script is aborted,
    the software displays the line number at which the script was stopped.
    To start the script up from the same place, the operator can supply
    the 'stopped at' line number to the RUN command:

	STOPPED AT LINE 33 IN 'MYSCRIPT.RUN'  # operator aborts script
	run myscript.run 33                   # continue script where left off

    See the man page on 'run' for more on this.

    To use scripts effectivly, here are some tips:

		Scripts are great when you write them, but you'll never
		remember what they do days later just by looking at them.
		'What the hell did I set this up to do?' comes to mind.
		PUT COMMENTS IN YOUR SCRIPTS so you (and others) know 
		what it does. A quick one liner comment at the top of 
		your script at least. Use brief comments to describe 
		lines or blocks of lines that you think might need 

	        Cramming lots of commands needlessly into long lines
		is best avoided when writing scripts. If nothing else,
		to make it easy to see what's going on. Also, it makes
		it easier to restart a script at a particular line.

		There's nothing wrong with putting several operations on
		one line, if they're all related. 

	        It's often a good idea to break a long shot into seprate
		scripts, and then make a 'main script' that calls all the
		smaller ones.

		Also, if you find yourself copying blocks of commands over
		and over into different places in a file, it's probably better 
		to put these commands into a script, and then call that script.
		This avoids typos, and can simplify things greatly.

	        If you are going to use a script from another scene,
		make a copy, and then modify the copy. Never modify your 
		original script if it was used for a shot that may need a
		reshoot in the future.

		Hard disks are great, but when they crash, you can loose
		the whole works, unless you have backups on floppies.
		Learn how to format floppies, and copy files to/from them.
		Keep related shots together on one floppy. You can even make
		subdirectories on floppies to keep shots separate.

	    Come up with some sort of standard for keeping track of files
	    for your shots. Since filenames can have up to 8 letters (plus
	    3 letter extensions), you dont have much flexibility, and can
	    end up with cryptic insanity such as:

	    	ILM057T2.RUN			#  insane file name
		|  |  |
		|  |  'Take 2'
		|  Shot or scene number
		3 letter  job name

	   A better technique is to use subdirectories, allowing you the
	   freedom to use any filenames you want (since people tend to make
	   their own names for files anyway):

	       ILM\SHOT05A\DXTEST.RUN		#  first take
	       ILM\SHOT05A\DXTEST2.RUN		#  second take
	       ILM\SHOT05A\FINAL.RUN		#  final shot used
		|   |       |
		|   |       Any  filenames  appropriate
		|   Shot  directory
		Job  directory

    *** MOTION CONTROL MOVES ***********************************************

    The OPCS software supports motion control to the extent that you can
    either specify moving motors with the GO(OPCS) command, or by 
    an ascii file containing columns of numbers that represent absolute
    positions using the FEED(OPCS) command. Channels can be moved by
    hand and 'key frames' can be created using the JOG(OPCS) command.

    OPCS does not have any curve editors or graphing programs built into
    it. However, OPCS does come with some external commands that help you
    create FEED(OPCS) files. These external commands can be made to look
    like they're part of OPCS using RUNCMD(OPCSDEFS) and DOSCMD(OPCSDEFS).
    You can also generate FEED(OPCS) files by either use existing 3rd party
    software (like Kuper) or your own custom C programs. FEED files are
    simple ascii files, which you can even create using a text editor.

    OPCS does *NOT* support streaking. See below, STREAKING.
    Pans are relatively straight forward. They usually involve one or
    more axes that simply move to a position before shooting.

	Show examples of how to create and shoot pans.

    Zooms are somewhat more complicated than simple pans by two peculiarities:

	 1) Follow focus
	 2) Exposure compensation

    Regarding #1, focus is usually achieved by moving the lens, and having
    the camera move relative to it. See INTERP(OPCSDEFS) for how to configure
    For manual control of focus, you can run the focus channel separately 
    using either FEED(OPCS) or go(OPCS). Simply specifying the focus channel
    for movement will override auto-focus.

    Regarding #2, as you zoom into the film frame, light is lost. This is
    because the same amount of light for 1:1 spreads out the more you zoom 
    in. Exposure speed can compensate for the lost light by slowing the 

    Exposure can either be auto-compensated with SPDINTERP(OPCSDEFS) or
    by manual specification in a FEED(OPCS) file by specifying a column
    of numbers to the special channel 'x'.

	Show examples of how to create and shoot zooms.

    OPCS does *NOT* support streaking. It never will. This is advertised
    in the FAQ, and is adamantly underlined.
    If you want streaking capabilities, that is a whole other bag of worms 
    which is best handled by dedicated motion control software, such as that 
    supplied by Kuper Controls. OPCS does not purport to be a full on motion
    control system, and streaking is where the line is drawn.

    *** MISCELLANEOUS TIPS *************************************************

    The following OPCSDEFS.OPC commands can be set up to the 
    operator's taste. You will not 'mess anything up' if you
    change these commands, they are only for the operator to
    play with, and will not affect motors, running speeds, etc.

	bigcounters [on or off]
	    If you prefer the large screen counters set 'bigcounters on'.
	    If you would rather have more screen space to see commands
	    and files, you may want to try 'bigcounters off'.

	leadingzeroes [on or off]
	    If you dont like all the leading zeroes in the counter
	    displays, you can turn them off with 'leadingzeroes off'.

	pro2display [on or off]
	    If you have a single headed printer, you will probably
	    prefer not to have the unwanted 'projector 2' counter on
	    the screen. You can turn it off by setting 'pro2display off'.
	    However, if you have an aerial head, you will want this
	    setting 'on'.

    If you want to change these values permanently, alter the 
    OPCSDEFS.OPC file. If you just want to try them out with out
    having them be a permanent change, you can use the LDEFS command
    to read commands from the keyboard:

	ldefs con              # type this at the OPCS prompt
	bigcounters off        # try a different setting
	^Z                     # (type control-z and hit return)
	                       # Back in OPCS, big counters off.

    At any time in the OPCS software, you can do calculator entries.
    Simply form a math expression that is encapsulated in parenthesis..
    Do this on an empty OPCS command line. When you hit return, the answer
    will be displayed:

	(20*(12+8+9+54))      # type this in to add up your hours..
	1660.0000             # Result displayed

    If you are in DOS, there is a 'calc' command that will let you do
    the same thing:

	C:\USR\OPCS>calc        #  run CALC from DOS
	(34+sqrt(47))           #  type in a math expression
	40.855655               #  Result

	(3+4+5)                 #  keep entering commands..
	12.000000               #  Result

	^C                      #  Type CONTROL-C to return to DOS
	C:\USR\OPCS>            #  (back in DOS)

    These are the math functions allowed currently for math expressions:

	/*** MATH FUNCTIONS  ***/
	sqrt()    	log()      	exp()  
	sin()     	cos()      	tan()  
	asin()    	acos()     	atan() 
	radians() 	degrees()              

	-12           #  negative 12
	+34           #  positive 34
	0x3ff         #  hex representation for 1023 decimal

    Use the MAN command to get general and specific documentation.
    The '-k' flag tells MAN to be general, and look for anything related
    to the argument that follows. In the following examples, case is 
    important (ie upper/lower case):

    *** General Documentation  ****************************************

	man -k OPCS:       # list OPCS commands
	man -k OPCSDEFS:   # list opcsdefs commands
	man -k OPCS        # list OPCS related commands
	man -k             # list everything MAN knows about

    Any if the above will display a long list of commands, followed by
    simple one line descriptions of each command. With this list, you
    can then zero in on any of the commands to get more complete 

    *** Detailed Documentation ***************************************

	man cam            #  specific docs on the CAM command

    Often, there are sometimes 'non-standard' utilities in the \bin 
    directory. These can USUALLY be documented by running the DOS
    command HELP, which is a batch file in the \bin directory that 
    types itself, describing utilities available in the \bin directory.
    These utilities are useful, and should be used by anyone willing 
    to learn them. Try typing HELP from DOS to see what's available
    on your system.

    Note that to run a DOS command, you should preceed the command
    with a '!' when you are in the OPCS software. Or, if you prefer,
    you can set up more DOSCMD(OPCSDEFS) entries in your OPCSDEFS.OPC
    file so you can type in certain DOS commands without the need for
    using '!'.

    *** Formatting Floppy Disks  *****************************************

	    format a:

	Be careful with the DOS 'format' command.. If you dont supply any
	arguments to format, it will often default to formatting the 
	hard disk! An easy mistake to make. 

    *** Directory Listings  **********************************************

    The DIR command is how to get directory listings:

	dir                  # list files in the current directory
	dir *.run            # list files that end in .run
	dir m*.*             # list all files that start with 'm'
	dir ilm/scn4a/*.*    # list all files in the ilm/scn4a directory
	dir a:               # list files on floppy drive

    Most versions of DOS support sorting of file listings.
    Dos 6.0 supports these:

	dir /on     # sort by name
	dir /ox     # sort by extension
	dir /od     # sort by date (oldest first)

    See 'dir /?' for a list of all the options dir supports.

    For unix users, there is also an LS command (if installed) that
    can sort listings alphabetically, or by order of their date stamp:

	ls -l      # alphabetically sorted listing
	ls -lt     # listing sorted by time/date stamp (oldest last)
	ls -C      # list alphabetically using columns
	ls -Ct     # list by time/date stamp using columns
	ls -RC     # list alphabetically in columns, descending into
	           # sub directories recursivly.

    'ls' has many arguments which are documented in 'man ls'.
	The copy command has two arguments... a source and a destination.
	If the destination is not supplied, the current drive is assumed
	to be the destination.

	copy *.run a:              # copy files ending in .run to floppy
	copy a:*.run .             # copy files ending in .run FROM floppy
	copy myfile.pos save.pos   # make a copy of myfile.pos to save.pos

	When you delete files, they don't come back, so BE CAREFUL.

	   del junk.pos      # deletes 'junk.pos' from disk
	   del a:crap.jnk    # deletes crap.jnk from floppy disk
	   del crap*.*       # deletes files that start with 'crap'
	   del *.*           # deletes ALL FILES - Watch out!

	mkdir fred         # makes a subdir 'fred' in the current dir
	mkdir fred\jobs    # makes a subdir 'jobs' in 'fred'
	mkdir a:save       # makes a 'save' subdir on the floppy

	cd fred            # go into 'fred' directory
	cd jobs            # go into 'jobs' directory
	cd ..              # go back one to 'fred'
	cd                 # tells you what directory you are in

	del fred\job\*.*   # clean out JOB directory of all files first
	rmdir fred\job     # removes JOB directory (FRED remains)
	rmdir fred         # removes FRED directory
    You should definately refer to your DOS manual for this one.
    See the docs on BACKUP and RESTORE commands. But here are a
    few examples:

	mkdir a:\opcs
	xcopy /s c:\opcs a:\opcs

	cd \
	mkdir \opcs
	xcopy /s a:\opcs c:\opcs a:

	type myfile.pos    # Type out myfile.pos in one blast
	more myfile.pos    # View the file a page at a time

    *** SHOOTING ************************************************************

    The 'KEY' command allows the operator to use buttons to control the
    camera, projector and fader much like the mechanical printer controls
    that many people are used to.


    The function keys across the top of the keyboard are windoff buttons.
    Number keys (below the function keys) control ratio shooting, counter
    resets, fade/dissolve setups, fader open/close, etc.

    If you don't have a keyboard template which shows which keys do what,
    refer to the man pages on KEY(OPCS), and make your own. It is best to
    have some sort of template on the keyboard.

    Hitting ESC or Q will exit the 'KEY' mode so you can execute any of the
    other OPCS commands.

    The following shows common operations the cameraman wants to do, showing
    the keystrokes that do them. 'Operation' is the label on the keyboard 
    template, 'Key to hit' is the actual keyboard key to hit.

    Only in cases where "Then type:" is specified, it is assumed you should 
    always hit ENTER after typing the specified values. [Space] is used to denote 
    hitting the spacebar. 

    To reset the camera counter to zero:

	  Operation   Key to hit
	  ---------   ----------
	    RES CAM   | 6 |          Then type: 0 [Enter]

    For the main projector, same thing, but hit '5'. For the aerial 
    projector, hit '4'.

    To set the counters to other values, type the desired value.
    To set the camera counter to 100:

	  Operation   Key to hit
	  ---------   ----------
	    RES CAM   | 6 |          Then type: 100 [Enter]
    The following shows how to cap the shutter, windoff some frames on
    the camera, then open the shutter again:
	  Operation   Key to hit
	  ---------   ----------
		CLS   | = |
	    CAM FWD   | F9 |         (Camera runs while F9 pressed)
		OPN   | - |

    Windoff 100 frames on the camera, shutter automatically caps:

	  Operation   Key to hit
	  ---------   ----------
	       SEEK   | BACKSPACE |       Then type: 100 [Enter]

    Windoff camera out to frame #304, shutter automatically caps:

	  Operation   Key to hit
	  ---------   ----------
	       SEEK   | BACKSPACE |       Then type: >304 [Enter]

    Send aerial to frame #200, main to #100, and windoff 50x on camera:

	  Operation   Key to hit
	  ---------   ----------
	       SEEK   | BACKSPACE |       Then type: >200 [Space] >100 [Space] 50 [Enter]

    For a 1:1 step print with ONLY main projector (single projector system):

	  Operation   Key to hit
	  ---------   ----------
	        RAT   | 3 |          Then type: 1 [Space] 1 [Enter]
	       REP+   | 1 |

    ..same thing, but on an aerial system:

	  Operation   Key to hit
	  ---------   ----------
	        RAT   | 3 |          Then type: 0 [Space] 1 [Space] 1 [Enter]
	       REP+   | 1 |

    For a 1:1:1 step print on an aerial system:

	  Operation   Key to hit
	  ---------   ----------
	        RAT   | 3 |          Then type: 1 [Space] 1 [Space] 1 [Enter]
	       REP+   | 1 |

    For a 2:1 step print:

	  Operation   Key to hit
	  ---------   ----------
		RAT   | 3 |          Then type: 2 [Space] 1 [Enter]
	       REP+   | 1 |

    For a 2:2:1 step print:

		RAT   | 3 |          Then type: 2 [Space] 2 [Space] 1 [Enter]
	       REP+   | 1 |

    For a 24 frame fade in on a held projector frame:

	  Operation   Key to hit
	  ---------   ----------
		FDI   | 7 |          Then type: 24 [Enter]
	 CAMERA FWD   | F9 |

    For a 24 frame fade in on a straight print, make sure your
    ratio is currently 1:1 (See STRAIGHT PRINTS) then:

	  Operation   Key to hit
	  ---------   ----------
		FDI   | 7 |          Then type: 24 [Enter]
	       REP+   | 1 |

    To set up a fade in, hit the FADE IN button, and enter the number of frames
    for the fade. When you run the camera, the fade will take place. Fade outs
    and dissolves are set up the same way. You can cancel a fade by hitting
    the FADER OPEN or FADER CLOSE buttons.

© Copyright 1997 Greg Ercolano. All rights reserved.