next up previous contents index
Next: Conversions Up: xicmanual Previous: Example Script   Contents   Index


Keyboard `!' Commands

The command line interface through the prompt area provides an interface to operating system commands, as well as to a number of internal commands which are often rather specialized and are not associated with a menu button. Each of these commands starts with an exclamation point ``!'', and may be entered when no other command is active, or inside of many commands. These key presses are not recorded in the ``keys'' area below the side menu. If the command entered matches one of the internal commands listed below, that command is executed. Otherwise, an operating system shell and associated window is produced to execute the command, with the exclamation mark stripped.

Special Form: !
Entering a single exclamation point with no other text will produce an interactive (xterm) window in which the user can issue operating system commands. When the user is finished, typing ``exit'' will close the window. If any text follows the exclamation point, and that text does not match an internal command, the exclamation point will be stripped, the remaining text sent to the operating system for execution, and the result will be displayed in a pop-up window. The shell which is used to execute operating system commands can be selected by the user, through the Shell variable and the !set command.

Special Form: !!
If a line starts with ``!!'', the rest of the line is taken as a script, and executed by the script parser. This is how to map script interface functions into a macro. For example, below is a macro to reset the current transform:

!!SetTransform(0,0,1) Ctrl-Return

Special Form: !?
Entering ``!?'' will bring up help about the `!' commands.

Special Form: !#
The last six commands given are saved, and can be recalled with the form ``!#[n]'', that is, an exclamation point and a pound sign followed by an optional integer. The n is an optional integer 0-5, and if not given (the square brackets indicate ``optional'' and are not literal) a value of 0 is taken. The n'th previous command will be printed in the prompt area, where it can be edited and re-executed. If no matching command is found, there is no action.

Each `!' command given, including those from `!#', will be pushed onto the history list in the 0 position if it is not identical to the previous command given.

The following table summarizes the internal commands available. These commands are described in detail in the following sections.

Conversions
!assemble Merge archive files
!sced2xic Convert from sced format
!gzip Apply compression to file
!gunzip Uncompress a file
Current Directory
!cd Change working directory
!pwd Print working directory
Diagnostics
!logfiles Browse the log files
!compare Compare geometry in files
!empties Check for empty symbols
!checkgrid Check object for off-grid vertices
!checkover Report cells that overlap
!dups Select coincident identical objects
!check Check electrical input for consistency
!regen Regenerate damaged file
!polycheck Check polygon characteristics
!polymanh Select Manhattan polygons
!polyfix Fix polygon errors
!polynum Show polygon vertex indices
!bincnt Database diagnostic
!setflag Set cell flags
!summary Print summary info of current hierarchy
!fileinfo Print info about archive file in console
!time Print elapsed run time in seconds in console
!xdepth Print transform stack depth in console
Design Rule Checking
!showz Show DRC partitioning
!errs Rebuild errors database
!errlayer Create error polygons on some layer
Extraction
!source Update schematic from SPICE file
!exset Update schematic from physical data
!addcells Add missing cells
!find Find devices
!ptrms Physical terminal manipulations
!terms Update electrical terminals
!ushow Show unassociated elements
!fx Control FastCap/FastHenry interface
!fxcell Create cell from FastCap/FastHenry interface
Fonts
!dumpfont Dump label font to file
!dumplogofont Dump logo font to file
!logofont Set font for logo command
Graphics
!setcolor Set attribute color
!display Display graphics in a foreign X window
Grid
!sg Save the current grid
!rg Restore saved grid
Help
!help Call the help system
!helpfont Set help base font family
!helpfixed Set help fixed font family
!helpreset Clear help topic cache
Layers
!layer Create logical layers
!ltab Manipulate layer table
!lal Manipulate layer alias table
!ltsort Alphanumerically sort layer table
Libraries
!mklib Create or append to a library file
Memory Management
!clearall Clear all memory
!vmem Windows only, print virtual memory statistics
!mmrecycle Assert or vacate recycle mode
!mmclear Clear recycle mode free lists
!mmstats print memory manager statistics
Operations
!mo Move objects
!co Copy objects
!ro Rotate objects
!rename Rename subcells
!sa Save current cell
!sqdump Save selections as native cell
!cont Read contents of native cell
!svq Save selections in register
!rcq Recall selections from register
Physical
!box2poly Convert boxes to polygons
!path2poly Convert wire paths to polygons
!poly2path Convert polygon boundaries to wires
!bloat Expand/contract object
!area Measure object area
!join Join objects into polygon
!split Split polygon into trapezoids
!manh Convert to Manhattan polygons
!polyrev Reverse polygon winding
!noacute Eliminate acute angles
!togrid Move selected object vertices to grid
!tospot Condition object for spot size
!bb Print bounding box of current cell
!origin Set origin of current cell
!import Import structures into the current cell
Rulers
!dr Delete rulers
Scripts
!script Add a script to the User Menu
!exec Execute a script
!lisp Execute a Lisp script
!tk Execute a Tcl/Tk script
!listfuncs Pop-up list of saved functions
!rehash Re-read script libraries and rebuild User Menu
!rmfunc Delete a saved function
Selections
!select Select objects
!desel Deselect objects
!zs Zoom to selected objects
Symbol Table
!symtab Manipulate symbol tables
Variables
!set Set/examine variables
!unset Unset variables
Window Cells
!cc Load cell into window
!sw Swap cells in main and subwindow



Subsections
next up previous contents index
Next: Conversions Up: xicmanual Previous: Example Script   Contents   Index
Stephen R. Whiteley 2006-10-23