VELREP(OPCS)            Optical Printer Control System          VELREP(OPCS)

NAME
    velrep - special purpose velocity repeat patterns for tandem shooting

USAGE
    velrep [filename] [repcnt]

        'filename' is the name of a '.vrp' file (format described
        below) that contains the commands to define the velocities 
        necessary for tandem shooting.

        'repcnt' is the number of times to loop the velocity
        patterns defined in the .vrp file.

DESCRIPTION
    This command lets advanced users define very specific velocity patterns
    to send to the motors for precise tandem-motor shooting, such as shooting
    YCM B & W separation masters at full speed.

    Basically, any situation where shooting with separate cam and pro commands
    is too slow.

    The .vrp file defines which motors will be running.

    Normally this command is not executed directly by camera operators;
    typically a custom OPCS 'runcmd' command is defined to invoke velrep
    to implement shooting operations. This way, the runcmd programmer
    can hide the filename, which the camera operator shouldn't have to
    deal with.
    
    For instance, one might define a 'ycmshoot' command in the
    OPCSDEFS.OPC file as:

        runcmd ycm ycm.run 1

    ..and creating a one-line 'ycm.run' file that contains:

        @velrep ycm.vrp $1

    Then the operator can just type 'ycm 10', and this will invoke the
    more obscure command 'velrep ycm.vrp 10' behind the scenes.

EXAMPLE
    velrep campro.vrp 5 # repeat the campro.vrp pattern 5 times

THE .VRP FILE FORMAT

<label>:                # text label used to identify blocks of vels
0       0       0       # vels, one for each channel (a, b, c..)
-10     0       0       # '-' prefix indicates run in reverse
10+     10+     10+     # '+' postfix indicates increment/decrement the 
                        #     frame counter by 1. Inc or dec depends on the
                        #     vel's direction; 10+ will inc, -10+ will dec.
0!      0       0       # '!' postfix (in 'a' chan ONLY) does 'allstop check'
                        #     (if true, jumps to <label> for 'allstop <label>')
                        #     'allstop <label>' must be defined if ! specified.
                        #     Check is done AFTER these vels are sent to motors.
goto <label>            # where to go next after last vels sent
repeat <label>          # if repeating, go to <label>
allstop <label>         # if allstop occurs, jumps to <label> to stop the motors
                        # Only one 'allstop <label>' allowed in entire file.
                        # '!' postfix indicates where to do the allstop check.
tension +1 +1 -1 ..     # Sets directions motors are primarily running,
                        # either +1 (fwd), -1(rev), or 0 (still) for each chan.
done                    # return to OPCS, shooting completed

    o Lines whose first character starts with a '#' are ignored.
      These are comment lines,  and are not parsed by velrep.

    o Each line should have no more than 256 characters.

    o Always checks for BUCKLE and VIEWER as part of allstop checking.

EXAMPLE VRP FILE
----------------------------------------------------------------------->% snip
#
# YCM SHOOT -- DRY GATE PROJECTOR
#     Run projector and camera at 20FPM
#
# 	RECALC:
# 	awk '{ if (match($0,"^[0-9]")==0) { print $0; next; } 
#      	  a += $2; b += $3; c += $6; 
#      	  printf("%s\t%s\t%s\t%s\t%s\t%s\t\t# %d\t%d\t%d\n",
#      	  $1,$2,$3,$4,$5,$6,a,b,c); } ' < in.vrp > out.vrp
#
#	
# FILTER WHEEL CONFIGURATION:                 0 -- Center of 'X' filter (empty)
#                                           500 -- Center of 'Y' filter (yellow)
#                                          1000 -- Center of 'C' filter (cyan)
#			      0            1500 -- Center of 'M' filter (magenta)
#			      |    
#			      |
#			   ::: :::
#		       ::::: XXX :::::
#		    :::::: XXXXXXX ::::::
#		  :::::: XXXXXXXXXXX ::::::
#		 ::::: MMM XXXXXXX YYY :::::
#		:::: MMMMMMM XXX YYYYYYY ::::
#      1500 --- :: MMMMMMMMMMM YYYYYYYYYYY :: --- 500
#		:::: MMMMMMM CCC YYYYYYY ::::
#		 ::::: MMM CCCCCCC YYY :::::
#		  :::::: CCCCCCCCCCC ::::::
#		    :::::: CCCCCCC ::::::
#		       ::::: CCC :::::
#			   ::: :::
#			      |
#			      |
#			     1000
#

# CHANGE TENSION MOTORS TO RUN FORWARD FOR CAM AND PRO
tension 0 +1 +1

# 1) CAP CAMERA
# 2) MOVE CAMERA TO SEAT POSITION
# 3) MOVE FILTER FROM "X"(0) TO "Y"(500)
# 4) ASSUME PRO ALREADY HAS "Y" SEATED

begin:
#AER    MAIN    CAM   FAD	CAP	FILTER		# MAIN	CAM	FILT
0	0 	5 	0	-1	5   		# 0	5	5
0	0	10	0	-1	10 		# 0	15	15
0	0	15	0	-1	15 		# 0	30	30
0	0	20	0	-1	20 		# 0	50	50
0	0	25	0	-1	25		# 0	75	75
0	0	30	0	-1	30		# 0	105	105
0	0	35	0	-1	35		# 0	140	140
0	0	40	0	-1	40		# 0	180	180 
0	0	45	0	-1	45		# 0	225	225 
0	0	50	0	-1	50		# 0	275	275 
0	0	55	0	-1	45		# 0	330	320 
0	0	55	0	-1	40		# 0	385	360 
0	0	55	0	-1	35		# 0	440	395 
0	0	60	0	-1	30		# 0	500	425 
0	0	60	0	-1	25		# 0	560	450 
0	0	55	0	-1	20		# 0	615	470 
0	0	55	0	-1	15		# 0	670	485 
0	0	55	0	-1	10		# 0	725	495 
0	0	50	0	-1	5		# 0	775	500 
0	0	45	0	-1	0		# 0	820	500 
0	0	40	0	-1	0		# 0	860	500 
0	0	35	0	-1	0		# 0	895	500 
0	0	30	0	-1	0		# 0	925	500 
0	0	25	0	-1	0		# 0	950	500 
0	0	20	0	-1	0		# 0	970	500 
0	0	15	0	-1	0		# 0	985	500 
0	0	10	0	-1	0		# 0	995	500 
0	0	5	0	-1	0		# 0	1000	500 

# "Y" EXPOSURE FOR 18/120 = .15 SEC

ycmshoot:
allstop finish
#AER    MAIN    CAM   FAD	CAP	FILTER		# MAIN	CAM	FILT
0	0	0	0	1	0		# 0	1000	500    # 1)          ^           
0	0	0	0	1	0		# 0	1000	500    # 2)         /|\         
0	0	0	0	1	0		# 0	1000	500    # 3)          |          
0	0	0	0	1	0		# 0	1000	500    # 4)          |          
0	0	0	0	1	0		# 0	1000	500    # 5)          |          
0	0	0	0	1	0		# 0	1000	500    # 6)          |          
0	0	0	0	1	0		# 0	1000	500    # 7)          |          
0	0	0	0	1	0		# 0	1000	500    # 8)          |          
0	0	0	0	1	0		# 0	1000	500    # 9)          |          
0	0	0	0	1	0		# 0	1000	500    # 10)   "Y" EXPOSURE     
0	0	0	0	1	0		# 0	1000	500    # 11)         |          
0	0	0	0	1	0		# 0	1000	500    # 12)         |          
0	0	0	0	1	0		# 0	1000	500    # 13)         |          
0	0	0	0	1	0		# 0	1000	500    # 14)         |          
0	0	0	0	1	0		# 0	1000	500    # 15)         |          
0	0	0	0	1	0		# 0	1000	500    # 16)         |          
0	0	0	0	1	0		# 0	1000	500    # 17)        \|/         
0	0	0	0	1	0		# 0	1000	500    # 18)         v          

# 1) CAP CAMERA                                                                                             
# 2) MOVE PROJECTOR TO "C"                                                                                  
# 3) MOVE FILTER FROM "Y"(500) -> "C"(1000)                                                                 

#AER    MAIN    CAM   FAD	CAP	FILTER		# MAIN	CAM	FILT
0	5	0	0	-1	5               # 5	1000	505
0	10	0	0	-1	10              # 15	1000	515
0	15	0	0	-1	15              # 30	1000	530
0	20	0	0	-1	20              # 50	1000	550
0	25	0	0	-1	25              # 75	1000	575
0	30	0	0	-1	30              # 105	1000	605
0	35	0	0	-1	35              # 140	1000	640
0	40	0	0	-1	40              # 180	1000	680
0	45	0	0	-1	45              # 225	1000	725
0	50	0	0	-1	50              # 275	1000	775
0	55	0	0	-1	45              # 330	1000	820
0	60	0	0	-1	40              # 390	1000	860
0	65	0	0	-1	35              # 455	1000	895
0	70	0	0	-1	30              # 525	1000	925
0	75	0	0	-1	25              # 600	1000	950
0	80	0	0	-1	20              # 680	1000	970
0	80	0	0	-1	15              # 760	1000	985
0       80	0	0	-1	10              # 840	1000	995
0       80	0	0	-1	5               # 920	1000	1000
0       80	0	0	-1	0               # 1000	1000	1000
0       80	0	0	-1	0               # 1080	1000	1000
0       80	0	0	-1	0               # 1160	1000	1000
0       80	0	0	-1	0               # 1240	1000	1000
0       80	0	0	-1	0               # 1320	1000	1000
0       80	0	0	-1	0               # 1400	1000	1000
0       75	0	0	-1	0               # 1475	1000	1000
0       70	0	0	-1	0               # 1545	1000	1000
0       65	0	0	-1	0               # 1610	1000	1000
0       60	0	0	-1	0               # 1670	1000	1000
0       55	0	0	-1	0               # 1725	1000	1000
0       50	0	0	-1	0               # 1775	1000	1000
0       45	0	0	-1	0               # 1820	1000	1000
0       40	0	0	-1	0               # 1860	1000	1000
0       35	0	0	-1	0               # 1895	1000	1000
0       30	0	0	-1	0               # 1925	1000	1000
0       25	0	0	-1	0               # 1950	1000	1000
0       20	0	0	-1	0               # 1970	1000	1000
0       15	0	0	-1	0               # 1985	1000	1000
0       10	0	0	-1	0               # 1995	1000	1000
0       5+	0	0	-1	0               # 2000	1000	1000

# "C" EXPOSURE FOR 18/120 = .15 SEC                                                                         

#AER    MAIN    CAM     FAD	CAP	FILTER		# MAIN	CAM	FILT
0	0       0	0	1	0		# 1790	1000	1000   # 1)          ^      
0	0       0	0	1	0		# 1850	1000	1000   # 2)         /|\     
0	0       0	0	1	0		# 1900	1000	1000   # 3)          |      
0	0       0	0	1	0		# 1940	1000	1000   # 4)          |      
0	0       0	0	1	0		# 1970	1000	1000   # 5)          |      
0	0       0	0	1	0		# 1990	1000	1000   # 6)          |      
0	0       0	0	1	0		# 2000	1000	1000   # 7)          |      
0	0       0	0	1	0		# 2000	1000	1000   # 8)          |      
0	0	0	0	1	0		# 2000	1000	1000   # 9)          |      
0	0	0	0	1	0		# 2000	1000	1000   # 10)   "C" EXPOSURE 
0	0	0	0	1	0		# 2000	1000	1000   # 11)         |      
0	0	0	0	1	0		# 2000	1000	1000   # 12)         |      
0	0	0	0	1	0	        # 2010	1000	1000   # 13)         |      
0	0	0	0	1	0	        # 2030	1000	1000   # 14)         |      
0	0	0	0	1	0	        # 2060	1000	1000   # 15)         |      
0	0	0	0	1	0               # 2100	1000	1000   # 16)         |      
0	0	0	0	1	0               # 2150	1000	1000   # 17)        \|/     
0	0	0	0	1	0               # 2210	1000	1000   # 18)         v      

# 1) CAP CAMERA
# 2) MOVE PROJECTOR TO "M"
# 3) MOVE FILTER FROM "C"(1000) -> "M"(1500)

#AER    MAIN    CAM   FAD	CAP	FILTER          # MAIN	CAM	FILT
0	5	0	0	-1	5               # 2005	1000	1005 
0	10	0	0	-1	10              # 2015	1000	1015 
0	15	0	0	-1	15              # 2030	1000	1030 
0	20	0	0	-1	20              # 2050	1000	1050 
0	25	0	0	-1	25              # 2075	1000	1075 
0	30	0	0	-1	30              # 2105	1000	1105 
0	35	0	0	-1	35              # 2140	1000	1140 
0	40	0	0	-1	40              # 2180	1000	1180 
0	45	0	0	-1	45              # 2225	1000	1225 
0	50	0	0	-1	50              # 2275	1000	1275 
0	55	0	0	-1	45              # 2330	1000	1320 
0	60	0	0	-1	40              # 2390	1000	1360 
0	65	0	0	-1	35              # 2455	1000	1395 
0	70	0	0	-1	30              # 2525	1000	1425 
0	75	0	0	-1	25              # 2600	1000	1450 
0	80	0	0	-1	20              # 2680	1000	1470 
0	80	0	0	-1	15              # 2760	1000	1485 
0       80	0	0	-1	10              # 2840	1000	1495 
0       80	0	0	-1	5               # 2920	1000	1500 
0       80	0	0	-1	0               # 3000	1000	1500 
0       80	0	0	-1	0               # 3080	1000	1500 
0       80	0	0	-1	0               # 3160	1000	1500 
0       80	0	0	-1	0               # 3240	1000	1500 
0       80	0	0	-1	0               # 3320	1000	1500 
0       80	0	0	-1	0               # 3400	1000	1500 
0       75	0	0	-1	0               # 3475	1000	1500 
0       70	0	0	-1	0               # 3545	1000	1500 
0       65	0	0	-1	0               # 3610	1000	1500 
0       60	0	0	-1	0               # 3670	1000	1500 
0       55	0	0	-1	0               # 3725	1000	1500 
0       50	0	0	-1	0               # 3775	1000	1500 
0       45	0	0	-1	0               # 3820	1000	1500 
0       40	0	0	-1	0               # 3860	1000	1500 
0       35	0	0	-1	0               # 3895	1000	1500 
0       30	0	0	-1	0               # 3925	1000	1500 
0       25	0	0	-1	0               # 3950	1000	1500 
0       20	0	0	-1	0               # 3970	1000	1500 
0       15	0	0	-1	0               # 3985	1000	1500 
0       10	0	0	-1	0               # 3995	1000	1500 
0       5+	0	0	-1	0               # 4000	1000	1500 

# "M" EXPOSURE FOR 18/120 = .15 SEC

#AER    MAIN    CAM   FAD	CAP	FILTER		# MAIN	CAM	FILT 
0	0 	0	0	1	0		# 4000	1000	1500   # 1)          ^            
0	0 	0	0	1	0		# 4000	1000	1500   # 2)         /|\          
0	0 	0	0	1	0		# 4000	1000	1500   # 3)          |           
0	0 	0	0	1	0		# 4000	1000	1500   # 4)          |           
0	0 	0	0	1	0		# 4000	1000	1500   # 5)          |           
0	0 	0	0	1	0		# 4000	1000	1500   # 6)          |           
0	0	0	0	1	0		# 4000	1000	1500   # 7)          |           
0	0	0	0	1	0		# 4000	1000	1500   # 8)          |           
0	0	0	0	1	0		# 4000	1000	1500   # 9)          |           
0	0	0	0	1	0		# 4000	1000	1500   # 10)   "M" EXPOSURE      
0	0	0	0	1	0		# 4000	1000	1500   # 11)         |           
0	0	0	0	1	0		# 4000	1000	1500   # 12)         |           
0	0	0	0	1	0		# 4000	1000	1500   # 13)         |           
0	0	0	0	1	0		# 4000	1000	1500   # 14)         |           
0	0	0	0	1	0		# 4000	1000	1500   # 15)         |           
0	0	0	0	1	0		# 4000	1000	1500   # 16)         |           
0	0	0	0	1	0		# 4000	1000	1500   # 17)        \|/          
0	0	0	0	1	0		# 4000	1000	1500   # 18)         v           

# 1) MOVE FILTER FROM "M"(1500) -> "X"(2000) -> "Y"(2500)
# 2) MOVE PROJECTOR FROM "M" -> "Y"
# 3) ADVANCE CAMERA +1x
# 4) CAP

#AER    MAIN    CAM   FAD	CAP	FILTER	        # MAIN	CAM	FILT 
0	5	5	0	-1	5 	        # 4005	1005	1505
0	10	10	0	-1	10	        # 4015	1015	1515
0	15	15	0	-1	15	        # 4030	1030	1530
0	20	20	0	-1	20	        # 4050	1050	1550
0	25	25	0	-1	25	        # 4075	1075	1575
0	30	30	0	-1	30	        # 4105	1105	1605
0	35	35	0	-1	35	        # 4140	1140	1640
0	40	40	0	-1	40	        # 4180	1180	1680
0	45	45	0	-1	45	        # 4225	1225	1725
0	50	50	0	-1	50	        # 4275	1275	1775
0	55	55	0	-1	55	        # 4330	1330	1830
0	60	60	0	-1	55	        # 4390	1390	1885
0	65	65	0	-1	55	        # 4455	1455	1940
0	70	70	0	-1	60	        # 4525	1525	2000
0	75	75	0	-1	60	        # 4600	1600	2060
0	80	80	0	-1	55	        # 4680	1680	2115
0	80	80	0	-1	55	        # 4760	1760	2170
0	80	80	0	-1	55	        # 4840	1840	2225
0	80	80	0	-1	50	        # 4920	1920	2275
0	80	80+	0	-1	45	        # 5000	2000	2320
0	80	80	0	-1	40	        # 5080	2080	2360
0	80	80	0	-1	35	        # 5160	2160	2395
0	80	80	0	-1	30	        # 5240	2240	2425
0	80	80	0	-1	25	        # 5320	2320	2450
0 	80	80	0	-1	20	        # 5400	2400	2470
0       75	75	0       -1      15	        # 5475	2475	2485
0       70	70	0       -1      10	        # 5545	2545	2495
0       65	65	0       -1      5	        # 5610	2610	2500
0       60	60	0       -1      0               # 5670	2670	2500
0       55	55	0       -1      0               # 5725	2725	2500
0       50	50	0       -1      0               # 5775	2775	2500
0       45	45	0       -1      0               # 5820	2820	2500
0       40	40	0       -1      0               # 5860	2860	2500
0       35	35	0       -1      0               # 5895	2895	2500
0       30	30	0       -1      0               # 5925	2925	2500
0       25	25	0       -1      0               # 5950	2950	2500
0       20	20	0       -1      0               # 5970	2970	2500
0       15	15	0       -1      0               # 5985	2985	2500
0       10	10	0       -1      0               # 5995	2995	2500
0       5+	5	0       -1      0               # 6000	3000	2500
0!      0	0	0       -1      0               # 6000	3000	2500

repeat ycmshoot
goto finish

# 1) Backup camera to seat it
# 2) Backup filter from "Y"(500) -> "X"(0)
# 3) Uncap camera on "X"

finish:
#AER    MAIN    CAM   FAD	CAP	FILTER		# MAIN	CAM	FILT
0	0	-5	0	-1	-5	        # 6000	2995	2495
0	0	-10	0	-1	-10	        # 6000	2985	2485
0	0	-15	0	-1	-15	        # 6000	2970	2470
0	0	-20	0	-1	-20	        # 6000	2950	2450
0	0	-25	0	-1	-25	        # 6000	2925	2425
0	0	-30	0	-1	-30	        # 6000	2895	2395
0	0	-35	0	-1	-35	        # 6000	2860	2360
0	0	-40	0	-1	-40	        # 6000	2820	2320
0	0	-45	0	-1	-45	        # 6000	2775	2275
0	0	-50	0	-1	-50	        # 6000	2725	2225
0	0	-55	0	-1	-45	        # 6000	2670	2180
0	0	-55	0	-1	-40	        # 6000	2615	2140
0	0	-55	0	-1	-35	        # 6000	2560	2105
0	0	-60	0	-1	-30	        # 6000	2500	2075
0	0	-60	0	-1	-25	        # 6000	2440	2050
0	0	-55	0	-1	-20	        # 6000	2385	2030
0	0	-55	0	-1	-15	        # 6000	2330	2015
0	0	-55	0	-1	-10	        # 6000	2275	2005
0	0	-50	0	-1	-5	        # 6000	2225	2000
0	0	-45	0	-1	0               # 6000	2180	2000
0	0	-40	0	-1	0               # 6000	2140	2000
0	0	-35	0	-1	0               # 6000	2105	2000
0	0	-30	0	-1	0               # 6000	2075	2000
0	0	-25	0	-1	0               # 6000	2050	2000
0	0	-20	0	-1	0               # 6000	2030	2000
0	0	-15	0	-1	0               # 6000	2015	2000
0	0	-10	0	-1	0               # 6000	2005	2000
0	0	-5	0	-1	0               # 6000	2000	2000
0	0	0	0	1	0               # 6000	2000	2000
done
----------------------------------------------------------------------->% snip



FUTURE o Add a way to specify BUCKLE/VIEWER/TRIP checks in the .vrp file. ORIGIN Gregory Ercolano, Altadena, California 12/15/03
© Copyright 1997 Greg Ercolano. All rights reserved.