Top Up Prev Next Bottom Contents Index Search

19.3 General Commands

Below is a reference for all vem commands. This section outlines general commands available for editing all types of cells. Section 19.4 discusses options, section 19.5 describes the general selection mechanism. and section 19.6 describes property and bag editing features. The next three sections describe editing commands for physical, symbolic, and schematic cells respectively. The summary includes the name of the command as it appears on a menu, if it appears in the menu. The command name can be typed in as well. Place the mouse in the window where you wish to execute the command, enter the command arguments (points, objects, etc.), type a colon (:), and type the command name. The TAB character will automatically complete command names. The phrase <no-name> implies it has no default menu or command name binding.

The list below also shows the default keyboard binding for each command, if it has one, and the syntax of the argument list passed to it. The symbol <*> implies the command has no default key binding. In general, the commands used most often have key and menu bindings. Less often used commands may have only command name bindings. See table 2-3 on page 11 for a concise summary.

Some vem commands are not documented here because they are dangerous or conflict with the objectives of pigi. Those commands will not appear in the vem menu, and have no key binding, although all are still available by typing them in. Adventurous users may wish to consult the standard octtools documentation before using them.

<no-name>			Delete or Control-H	
Any Argument List
This command deletes the last item of the last argument on the argument list. Thus, if the last argument is 10 boxes, it will delete the last box entered and the argument list will be modified to contain 9 boxes.

<no-name>			Control-W		Any Argument List
This command is similar to the one above, but deletes the entire last argument on the argument list. Thus, if the last argument is 5 lines, it will delete all 5 lines and leave the remaining arguments unchanged.

<no-name>			Control-X or Control-U
Any Argument List
This command erases the entire argument list allowing the user to start over.

bindings					Saves Arguments
This command asks the user for a command and displays all of its current key, menu, and alias bindings. The command will display a prompt (vem bindings>) and the user can specify a command using any of the four means of normally specifying commands (via menu, single keystroke, type-in, or last command). The command also outputs a one line description of the command for help purposes.

close-window			Control-D		No Arguments
The close-window command closes the window the cursor was in when the command was invoked. This DOES NOT flush the contents of the window to disk. Even after all windows looking at a facet are closed, the contents are not saved on disk. This must be done using the save-window or save-all commands.

deep-reread			<*>		[objs]
The deep-reread command is a specialized form of the re-read command. With no arguments, it re-reads a facet and all of master facets of its subcells (instances). Both the contents and interface facets of the instances are re-read. If a set of objects is specified, the command re-reads the master cells of the instances in the object set. Only the master cells of the instances are re-read; cells are not re-read recursively when using this form.

interrupt			^C		No Arguments
This routine interrupts (deactivates) the window containing the cursor. No drawing will be done in the window until a full redraw requested by the user (using pan, zoom, or redraw-window) is done. The key binding for this command can also be used while a window is drawing to immediately stop drawing in that window.

kill-buffer			<*>		"cell view {facet} {version}"
The kill-buffer command flushes a facet out of memory without saving its contents. If the string specification of the facet is missing, the facet is determined by the window containing the cursor. All windows looking at this facet are destroyed. There are no key or menu bindings for the command and it will ask the user for confirmation before carrying out the command.

log-bindings			<*>		Saves Arguments
The log-bindings command writes out a description of all type-in, menu, and key bindings for all commands in the editing style of the window containing the cursor. This description is written to the log file for the session.

open-window			o		[box] or
The open-window command is primary way to create new graphics windows in vem. It takes a string specifying the cell to open. When specifying the cell portion of the name, typing a TAB will attempt to complete the string as a file or offer alternatives if the name is not unique. If this string is absent, it will duplicate the window containing the cursor. Normally, the extent of the duplicated window is the same as the parent window. However, if the user specifies a box, the duplicated window will be zoomed to that extent (see zoom-in). The string specifying the cell contains four fields. The last three are optional and default to "physical", "contents", and the null string respectively. It is possible to specify your own defaults for these fields. Newly created windows are always zoomed to contain all geometry in the cell. If the cell does not exist, it will be created. When creating new cells, vem prompts the user for required cell properties. See the introduction for details. Most of the time, the defaults presented in this dialog are acceptable and activating the Ok button is sufficient to proceed.

palette			P		{"palette-name"}
The palette command opens a new window onto a previously created facet which contains standard layers or instances for a given technology. This window can be used to select layers for creating geometry or instances for instantiation. The command takes one argument: the name of the palette. If omitted, it defaults to "layer".

Palette cells are found using the function tapGetPalette (see tap(3)). For all standard technologies and viewtypes, there is a "layer" palette. In the symbolic editing style, there are also "mosfet" and "connector" palettes which display mosfets and connectors respectively. In the schematic editing style, there are "device" and "gate" palettes which contain device level and gate level schematic primitives. New palettes can be added easily. See "Customizing Vem" for details.

pan			p		[Any Arguments] [point]
The pan command centers the window containing the cursor around the last point on the argument list. The window will be redrawn so that the argument list point is now the center of the window. The point need not be in the same window as the cursor. Thus, a user can point in a window showing a large portion of a cell and invoke the command in a more detailed window for a magnifying glass effect. If the point is omitted, the command assumes the cursor position is also the desired center point. This is the fast way to pan in a single window.

pop-context			)		No Arguments
This command pops off an input context from the context stack and replaces the current context with that context. See the push-context command for details.

push-context			(		No Arguments
This command pushes the current argument list context onto the context stack and gives the user a new context. This can be used to do other commands while preserving entered arguments. Note that the current arguments remain displayed. The old context can be restored using the pop-context command. Four context levels are supported in the current version of vem.

push-master			<*>		{"facet"}
The push-master command opens a new window on the master of the instance under the mouse cursor. This command can be used all editing styles. If a facet name is supplied, the command will use that facet name instead of "contents". In Ptolemy, this command is rarely needed. The edit-icon command accomplishes the same objective.

recover-facet			<*>		No Arguments
Unless directed otherwise, vem saves all cells occasionally in case of a system crash or some other unforeseen disaster. Whenever a new cell is opened, vem checks to see if the last automatically saved version is more recent than the user saved version. If the automatically saved version is more recent, a warning is produced and the user version is loaded. One can use the recover-facet command to replace the cell with the more recent automatically saved version. The command displays a dialog containing a list of all of the saved versions. Generally, there are two possible alternative versions for a cell. The autosave version is written by vem automatically after a certain number of changes to the cell. The crashsave version is written when vem detects a serious error. Note that the crashsave version may itself be corrupt since a serious error occurred just before it was written. This command is destructive: it replaces the cell with the selected alternate. One can use the Cancel button to abort the recovery. Before using the recover-facet command, it is often useful to view the alternate cells. This can be done by specifying the version (either "autosave" or "crashsave") as the last field in the cell specification to open-window.

re-read			<*>		No Arguments
The re-read command flushes the facet associated with the window containing the cursor out of memory and reads it back in from the disk. This can be used to see changes to a cell that were done outside vem or to revert back to the cell before changes were made. This is a dangerous command and vem asks for confirmation before proceeding.

redraw-window			Control-L		[box]
This command redraws the contents of the window containing the cursor. It does not effect the argument list (i.e. it can be done regardless of the argument list contents). If a box is provided, only the portion of the window in the box is redrawn. If the window is interrupted, this command will reactivate it. However, if the box form is used, vem will only draw the specified area and leave the window deactivated. This can be used to selectively draw portions of a deactivated window.

same-scale			= 		[Any Arguments] [point]
This command changes the scale of the window containing the mouse to the same scale as the window containing the last point on the argument list. It is commonly used to compare the sizes of two facets.

save-window			S		[Any Arguments]
This command saves the contents of the facet associated with the window where the command was invoked. It asks for confirmation and does not effect the argument list.

set-path-width			w		[box] [line] [point] or
["size string"]
This command sets the current path width for a given layer on a window-by-window basis. It takes one argument which may be points, lines, boxes, or text. For points and lines, the argument length must be two. The path width is set to the maximum Manhattan distance between the points. For boxes, only one box is allowed and the new width is the larger of the two dimensions. For text, the string should contain the path width in lambda. If no width is specified, the path width will be set to the minimum layer width as specified in the technology.

The layer for the path width command is determined by looking at the object under the cursor. If there are objects on more than one layer under the cursor, a dialog will be presented and the user should choose one of the listed layers and press "OK" to continue.

show-all			f		No Arguments
The show-all command causes vem to zoom the window containing the cursor so that all of the cell is displayed in the window. The key binding is an abbreviation for "full". It does not effect the argument list.

switch-facet			<*>		["cell view {facet {version}}"] 
or [point]
This command replaces the facet in the window containing the mouse with a different facet. The first form replaces the window's facet with the named facet. The second form replaces the window's facet with the facet of the window containing the point.

toggle-grid			g		No Arguments
The toggle-grid command toggles the visibility of the grid in the window containing the cursor.

version			V		No Arguments
This command outputs the current version of vem to the console window.

where			?		No Arguments
The where command can be used to find out the position of the cursor in terms of oct units. It also displays a textual representation of the objects under the cursor. The command can be issued while building an argument list without effecting the list. Alternatively, if the argument list includes an object set, the where command will print textual descriptions of the selected items.

write-window			W		"cell:view" [any arguments]
The write-window command saves the contents of the cell associated with the window where the command was invoked under another name. This alternate name is specified by the "cell:view" argument.

zoom-in			z		[Any Arguments] [box]
The zoom-in command zooms the window containing the mouse to the extent indicated by the last box on the argument list. The box and the zoom window must be in the same facet. However, the extent may be in a different window from the mouse which can be used to achieve a magnifying glass effect. If the box is not provided, it zooms in the window containing the mouse by a factor of two. If provided, the command removes the box from the argument list but leaves other arguments untouched.

zoom-out			Z		[Any Arguments] [box]
The zoom-out command is the opposite of zoom-in. This command zooms the window containing the mouse out far enough so that the OLD contents of the window are contained in the extent of the box provided on the argument list. Thus, smaller boxes zoom out farther than larger ones. If the box is omitted, the window containing the mouse is zoomed out by a factor of two.

Top Up Prev Next Bottom Contents Index Search

Copyright © 1990-1997, University of California. All rights reserved.