1、START SCRIPT #!/bin/csh -f # # start_script # # set path = (~ /id/scripts /manager/utilities /bin /usr/bin /com) onintr - alias a alias a SOT 'echo \#\%\@ "\!:*"; set SYNC = $<' a SIN 'echo \#\@\% "\!:2*"; set \!:1 = $<' a CMD 'echo \@\#\% "\!:*"; set STATUS = $< ; set ERRNO = $< ; i
2、f ($STATUS \!= OK && $STATUS \!= BAD) set STATUS = $ERRNO; if ($STATUS \!= OK) exit 9' a GMD 'echo \@\#\% "\!:*"; set STATUS = $< ; set ERRNO = $< ; if ($STATUS \!= OK && $STATUS \!= BAD) set STATUS = $ERRNO; if ($STATUS \!= OK) exit 9' a SYS 'echo \@\%\# "\!:*"; set SYNC = $<' a FOT 'echo "\!:
3、2*" > /id/workfile/\!:1' a FIN 'set \!:2 = `cat /id/workfile/\!:1`' a SCR 'source /id/scripts/\!:1; if ($status \!= 0) exit $status' a GRP 'echo \%\#\@ "\!:*"; set STATUS = $<; set ERRNO = $<;if ($STATUS \!= OK) exit 9' a SUS 'echo \%\@\# zzz; set STATUS = $<; set ERRNO = $<' a VON 'a CMD '\''
4、echo \@\#\% '\"\\\!:\*\"\; ' set STATUS = $<; set ERRNO = $<;if ($STATUS != OK) exit 9'\' a VOF 'a CMD '\''echo \@\#\% '\"\\\!:\*\"\; ' set STATUS = $< ;set ERRNO = $<'\' a CON 'echo \%\%\@ ; set SYNC = $<' a COF 'echo \%\%\# ; set SYNC = $<' a PUP 'echo \@\@\% ; set SYNC = $<' a PDN 'echo \@
5、\@\# ; set SYNC = $<' a GOF 'echo \%\#\# ; set SYNC = $<' a GON 'echo \%\#\% ; set SYNC = $<' a ANS 'echo \#\@\# "\!:*"; set SYNC = $<' a MIN 'echo \@\@\@ "\!:2*"; set STATUS = $< ; set \!:1 = $< ; if ($STATUS \!= OK) exit 9' a FIX 'echo \#\#\# "\!:*"; set STATUS = $< ; set DUMMY = $<;if (
6、STATUS \!= OK && $STATUS \!= BAD) set STATUS = $ERRNO; if ($STATUS \!= OK) exit 9' a UOF 'echo \#\@\@ ; set SYNC = $<' a UON 'echo \%\@\@ ; set SYNC = $<' a LIS 'echo \%\%\% "\!:*"; set STATUS = $< ; set DUMMY = $<;if ($STATUS \!= OK) exit 9' # set a = $< ; set ERRNO = $< if ($a != OK) th
7、en set ERRNO = $< endif # if ($#argv < 1) then SOT Not enough arguments for start_script exit 1 endif # if ($#argv >= 2) then set SCR_KEY="$argv[2-]" else set SCR_KEY="" endif # source $1 exit $status # LINE MODE General This is a DRAFT (and should BE considered
8、as such) of the line mode commands in Image 5000. In any case of A problem, please invoke the process in line mode and get the help for the command (using HELPLN,command and/or SHODEF,command). LINE MODE HELP command description HELPLN Line mode help. Syntax: - HELPLN : Disp
9、lay of this help - HELPLN, ALL : Display of process commands and their description. - HELPLN, command : Display of a process command and its description. SCREEN Switch to screen mode (Not available on dumb terminals). BYEBYE Quit the process. Syntax: - BYEBYE : Quit no log
10、 - BYEBYE, file : Quit and save the process log file under the specified name. SETDEF Set Parameters current defaults. Syntax: - SETDEF, command, parameter-number, parameter-value : This command assigns parameter value to the parameter whose number is specified, for the spe
11、cified command. SHODEF Show all parameter names and defaults for a specified command. Syntax: - SHODEF, command CLEARF Clear fields to system defaults. Syntax: - CLEARF, command : Set all command parameters to system default. - CLEARF, ALL : Set all parameter of all process
12、 commands to System defaults.
STUNIT Set working units of the process.
Syntax:
- STUNIT, INCH : Set units to inches.
- STUNIT, MM : Set units to mm.
13、e process command,using current defaults of the unspecified parameters.
xxxxxx [,parameters] :
Invoke process command,prompting for anyunspecified parameter.
IMAGE-5000 SCRIPT commands
A. IMAGE specific commands
ANS
14、 - process command COF - check off CON - check on [D] FIN file var - input from file FIX file - print to fixed area FOT file multi-word-string - output to file GMD namexx,parameters * - graphics command GOF - graphics off GON - graphics on [D] GRP graphic-script-name
15、 - execute graphic script LIS [control] input-file output-file header - list input MIN var file title - menu input PDN - priority down PUP - priority up SCR script-name - execute nested script SIN var multi-word-string - input from terminal SOT multi-word-string - output to terminal
16、 SUS - suspend script SYS name,parameters - system command UOF - Undo off UON - Undo on [D] VOF * - verify off VON * - verify on [D] Note 1: The '*' is unpubliced variable. Note 2: The [D] is default value. Note 3: multi-word-string may be one or more words. N
17、ote 4: graphic-script-name is identical to the name entered at the end of the specific graphic script definition, and NOT include "g_" prefix as added by the system. For example, graphic script "grp_1" appear as file "/id/scripts/g_grp_1". A.1. Process command parameters - Parameters a
18、re separated by comma sign (,). - Empty value is a blank delimited by comma (par1, ,par3,...) - Undefined value is an empty string delimited by comma (par1,,par3,...) - Long command line may be divided into several lines, each of them (but the last line) terminated with a backslash (\).
19、 - Parameter list is terminated and may be divided by semicolon (;),where each semicolon is preceded by a backslash (\). List example 1: f1:6\; (layer's f1 to f6) List example 2: comp\;solder\;grd\; (layer's comp, solder and grd) Example from Input Design (idsn) p
20、rocess: CMD STARTI,pcb2,f1:2\;,DISK,gap,1,gap5,04/10/88,gap, ,GERBER,NO,1024,1,\ 2,1,ASCII,*,5.3,INCREMENTAL,LEADING,INCHES,1.0000,0.0000,0.0000 A.2. SYStem commands description SYS actv,xxxx -nmy_name -ascript_name - activate a process (xxxx) with name (my_name) and start its
21、 script (script_name) SYS sets - set screen (put all processes windows to "normal" window position) SYS quit,xxxx - terminate all xxxx (e.g. idsn) processes SYS misc,xxxx [activation list] - activate a miscellaneous process B. General c-shell commands B.1. Definitions $var
22、 String variable value @ num : Numeric variable value $#list : Number of elements in list $list[*] : All of list elements $list[i] : i'th element of list (i = 1,2,3...) ${var}nfpr : concatenate "nfpr" to variable value Important note : for list indexing (e.g. $layers[2]),
23、 you must use the -------------- following commands: SIN layers Please enter layers names - getting layers list from user OR FIN file1 layers from a file set layers = ($layers) - set index list B.2. Numeric operators || && - lowest precedent |,
24、^, & == != =~ !~ < <= > >= << >> + - * % / ! ~ () - highest precedent B.3. Regular commands - set pcb = "img_r_pcb101" - string variable @ num = 5 - numeric variable - sleep x - sleep x seconds
25、 B.4. Control commands - exit (status code) - status code: 0 - O.K. exit 1,9 - reserved other - error exit 1:Not enough arguments for start_script 9:Run-time error for start_script - goto label - "label:" must appears in script - if ($var != "solder") t
26、hen ... endif - if ($ans == "Y" || $ans == "y") then ... else ... endif - if ($ans == "Y" || $ans == "y") then ... else if ($ans == "N" || $ans == "n") then ... else ... endif -
27、only one endif required - while ($c > 0) . . . end - foreach name ($list) . . (using $name) . end - switch ($mode) case s: ... breaksw case l: ...
28、 breaksw case r: case R: ... breaksw default: - all other cases ... breaksw endsw B.5. File status if (-e filename) then ... if (! -e filename) then ... Where :
29、e = exist -r = read permission -w = write permission -x = execute permission -z = zero size -f = file -d = directory Note: filename must include full path name of the specific file. For example: /id/scripts/init_input - script file nam
30、e /id/pcbs/h-121/pcbhdr - pcb header file name /id/pcbs/h-121/l1/vector - pcb vector file name /id/panels/h-121/drill/drill - panel drill file name /id/tmp/sc_file - temporary file name (Used by script commands FOT / FIN) C. Script debug session /bin/csh -f /scd script-nam
31、e - regular debug session /bin/csh -fv /scd script-name - detailed debug session For example: debug lb_input script in regular debug session: /bin/csh -f /scd lb_input C.1. Debug session commands executing -The following commands are executed the same as in regular script a
32、ctivation: SIN, SOT, FIN, FOT and SCR. -CMD, SYS, GRP and SUS commands are only displayed with their parameters. No activation is taken place. -All general c-shell commands are executed in the regular manner. C.2. Detailed debug session In this session each IMAGE specific script command i
33、s printed twice: first as it is written in the script and then as it is executed by the running process, after the proper interpretation. Regular c script commands are printed only once. For example, in the following sequence each command marked with (*) appear as it is written in the script,
34、 while those marked with (+) are after interpretation, as they are executed: * SIN PCB1 Please enter pcb name + Please enter pcb name : h-121 (h-121 - user input) * CMD COPPCB,$PCB1, + CMD COPPCB,h-121, Important note: In IMAGE-5000 version 1.0 activate script debug s
35、ession ------------ by using the following commands: /bin/csh -f /ie/all/debug_start_script script-name - regular /bin/csh -fv /ie/all/debug_start_script script-name - detailed D. General example D.1. sc_gnrl script: run from selection process # # I M A G E - 5 0 0 0 G l o b
36、 a l S c r i p t # # Activating input design process with lb_input script # SYS actv,idsn -nlb_input -alb_input D.2. lb_input script: run by input design process # # I M A G E - 5 0 0 0 S c r i p t # # Script File 'lb_input', Created From Log File 'lb_input' # SIN PCB1 Pl
37、ease input the pcb name: SIN WRKF Please input the workfile name: SIN LAYLIST Please enter layers names set LAYLIST = ($LAYLIST) # # Build layers list according to I-5000 script rules # set LAYERS = "" foreach LAYER ($LAYLIST) set LAYERS = ${LAYERS}$LAYER\\\; end CMD STARTI,$PCB1,$LAYE
38、RS,DISK,$WRKF,1,gap5,04/10/88,sc, ,GERBER,NO,1024,1,\ $#LAYLIST,1,ASCII,*,5.3,INCREMENTAL,LEADING,INCHES,1.0000,0.0000,0.0000 FOT sc_file $PCB1 SIN ans Do you want to exit this process ([N]/Y) ? if ($ans == 'Y' || $ans == 'y') then CMD byebye endif # # Activate edit pcb process with gap_grp
39、1 script # SYS actv,epcb -ngap_epcb -agap_grp1 D.3. gap_grp1 script: run by edit pcb process # # I M A G E - 5 0 0 0 S c r i p t # # Script File 'gap_grp1', Created From Log File 'gap_epcb' # SIN xx Do you want to end design-input process ([N]/Y) ? if ($xx == 'Y' || $xx == 'y')
40、then SYS quit,idsn endif FIN sc_file PCB1 CMD COPPCB,$PCB1 CMD CCCREG,1.0000,2.0000,16.0000,12.0000 SOT Current pcb : $PCB1 SIN layers Enter the layers that you wish to edit: foreach ly ($layers) CMD GDISPL,$ly, , , # # Activate Graphic script 'grp_1' in the current displayed layer # GR
41、P grp_1 end foreach ly ($layers) CMD ALNFPR,$ly,${ly}nfpr,YES end IMAGE_OUT Usage : image_out [-p][-a][-l][-s][-g|G][-f file[; file]] OTYPE ONAME [-e|-E ELEMENT] [-V] [-I] Where OTYPE is PCB, PANEL, APERTURE, SYMBOL, WHEEL, SYSTEM, CONFIG, QUEUES or AOIMSTRS
42、 ONAME is the object name (for all OTYPES except for SYSTEM and QUEUES) ELEMENT is the element name (usually from Image 5000 Database Description) and the options are : -p - print : print the object -a - allow : remove any limitations on the object files' permissions -l -
43、 list : list all files to stderr before printing -f files : match only specified file names (files may be wild names and lists) -e element : print only the specified element from the file -E element : Display element with full path name -s - summary : to print object-level summary of
44、pcbs (apertures and symbols) and panels (symbols) -g - grand total : summary for all pcbs or panels (also pcbs in panels) -G - Grand total : Sum up all unused apertures in the PCBs -V - Version : print version info -I - Ignore : Do not exit in case of 1000 errors. Current status
45、 CONFIG gives an element of a config file with -e or a full listing for -p. SYSTEM Files are apername, pnltypes and text. checks apername against the apertures in the directory. ONAME may be a list of names in the format 'name1; name*-pf; xxx'. ELEMENT defines a specific p
46、ath to search. For vector, flash and extra files, and for the number of images on panel the element 'count' gives results. wild elements are supported for layer names and for names in extra file. For more OTYPE-element-specific information type image_out -h CAUTION Always use names in quotes i
47、f you use wild cards. EXAMPLES : image_out pcb 'atp*' -E 'layer:*.extra:*' image_out panel 1298aas -e layer:ps.layerhdr.copper_area image_out pcb atp1 -p -f pcbhdr FLOAT_EXPR2 Usage : float_expr2 exp1 [...] [-V] Use '_' instead of '-' (ONLY IN THE
48、 '-' OPERATION !!!!). Put each expression in separate quotes. - The following are the binary arithmetic operations : + - add _ - subtract * - multiply / - divide ^ - power @ - remainder - The following are binary logical operations : < - less than > - greater th
49、an 1 = true = - equal to 0 = false - Math functions (all unary) : % - round d - floor u - ceiling s - sine (degrees) S - sine (radians) c - cosine (degrees) C - cosine (radians) t - tangent(degrees) T - tangent(radians) rs- arcsin (degrees) rS- arcsin (radians) rc- arcc
50、os (degrees) rC- arccos (radians) rt- arctan (degrees) rT- arctan (radians) P - pi (3.14159..) E - natural log base a - absolute value l - log base 10 q - square root M - conv. mm > mil m - conv. microns > mil I - conv. inch > mm i - conv. mil > mm Example : float_expr2 's






