magic/doc/html/element.html

199 lines
7.7 KiB
HTML

<HTML>
<HEAD>
<STYLE type="text/css">
H1 {color: black }
H2 {color: maroon }
H3 {color: #007090 }
A.head:link {color: #0060a0 }
A.head:visited {color: #3040c0 }
A.head:active {color: white }
A.head:hover {color: yellow }
A.red:link {color: red }
A.red:visited {color: maroon }
A.red:active {color: yellow }
</STYLE>
</HEAD>
<TITLE>Magic-7.3 Command Reference</TITLE>
<BODY BACKGROUND=graphics/blpaper.gif>
<H1> <IMG SRC=graphics/magic_title2.gif ALT="Magic VLSI Layout Tool Version 7.3">
<IMG SRC=graphics/magic_OGL_sm.gif ALIGN="top" ALT="*"> </H1>
<H2>element</H2>
<HR>
Handle generic drawing elements (line, box, text) in the layout.
<HR>
<H3>Usage:</H3>
<BLOCKQUOTE>
<B>element</B> <I>option</I> <BR><BR>
<BLOCKQUOTE>
where <I>option</I> is one of the following:
<DL>
<DT> <B>add</B> <I>type</I> <I>name</I> <I>parameters</I>
<DD> Create a new element. The <I>name</I> is a unique name
to be assigned to the new element. The <I>parameters</I>
depend on the <I>type</I>, and are as follows:
<DL>
<DT> <B>line</B> <I>name style x1 y1 x2 y2</I>
<DD> Create a new line element, with position starting
at coordinate <I>x1 y1</I> and ending at <I>x2 y2</I>.
The line does not need to be on a Manhattan grid.
Initial coordinates must be on internal magic grid
points (that is, must be integer). However, half-grid
units can be generated with the <B>configure</B>
option (see below).
<DT> <B>rectangle</B> <I>name style llx lly urx ury</I>
<DD> Create a new box element, with lower left corner
at coordinate <I>llx lly</I> and upper right corner
at coordinate <I>urx ury</I>.
<DT> <B>text</B> <I>name style cx cy label_text</I>
<DD> Create a new text label at coordinate position
<I>cx cy</I> with text string "<I>label_text</I>".
</DL>
For an explanation of the <I>style</I> parameter, see
the <B>configure</B> option, below.
<DT> <B>delete</B> <I>name</I>
<DD> Delete an existing element by name.
<DT> <B>configure</B> <I>name</I> <I>config_option</I>
<DD> Configure or query an existing element named <I>name</I>.
<I>config_option</I> may be one of the following:
<DL>
<DT> <B>text</B> [<I>new_label_text</I>]
<DD>
<DT> <B>style</B> [<B>add</B>|<B>remove</B> [<I>style_type</I>]]
<DD> With no arguments, return the list of styles used
to draw the element. With option <B>add</B> or
<B>remove</B>, add or remove, respectively, a
style from the list of styles for
an element. Styles are the same as styles for
tile types in magic, and are defined in the
"dstyle" file in the <B>magic</B> install directory.
The "dstyle" file declares a "long name" for each
style type. This "long name" is what is expected
for parameter <I>style_type</I>. The most useful
values are the colors defined in the "dstyle" file,
such as <B>black</B>, <B>white</B>, <B>red</B>,
etc. <P>
Like tile types, elements may be drawn in multiple
styles. So, styles are maintained as a list and
the <B>element configure style</B> option takes
the keyword <B>add</B> or <B>remove</B> to add
or remove specific styles from the list.
Removing the last remaining style for an element
is prohibited. Changing styles requires first
adding the new style type, then removing the
original.
<DT> <B>position</B> [<I>x y</I> [<I>x2 y2</I>]]
<DD> With no arguments, returns the position of the
element. For text elements, this is the label
position (a single coordinate). For lines, both
endpoint coordinates are returned, and for
rectangles, the lower-left and upper-right
coordinates are returned. With one or two coordinate
specified, the position of the element is changed.
For text, a single coordinate indicates the new
position of the text. For lines and rectangles,
the two coordinates completely describe the line
or box.
<DT> <B>flags</B> <I>flag_type</I>
<DD> Add or change flags of an element. The specific flag
indicated is set. Valid flags are as follows.
All elements have these flags:
<BLOCKQUOTE>
<DL>
<DT> <B>temporary</B>
<DD> Indicates an element that is not saved to the
database with a <B>save</B> or <B>writeall</B>
command (the default flag).
<DT> <B>persistant</B>
<DD> Indicates an element that is saved to the
database with a <B>save</B> or <B>writeall</B>
command, and can be recovered with a <B>load</B>
command.
</DL>
</BLOCKQUOTE>
Text elements have the following additional flags:
<BLOCKQUOTE>
<DL>
<DT> <B>small</B>, <B>medium</B>, <B>large</B>,
<B>xlarge</B>
<DD> One of four text sizes.
<DT> <A HREF=direction.html><I>direction</I></A>
<DD> Any valid <I>direction</I> specification in
<B>magic</B> will be translated to a text
justification; that is, the text will be
printed relative to its position in the
indicated direction.
</DL>
</BLOCKQUOTE>
Line elements have the following additional flags:
<BLOCKQUOTE>
<DL>
<DT> <B>halfx</B>, <B>halfy</B>
<DD> Adjust the position of the line endpoints
by one-half unit (postive, that is, right
or up). This allows lines to be drawn on,
for example, wire centerlines. There is
no allowance for having only one endpoint
on the half-integer grid.
<DT> <B>exactx</B>, <B>exacty</B>
<DD> Set line endpoints on the exact coordinates
of the line position (the default flag).
<DT> <B>arrowleft</B>, <B>arrowbottom</B>
<B>arrowtop</B>, <B>arrowright</B>
<DD> Add arrows to the line endpoints at the
indicated end. Note that four possible
positions are allowed, although only two
will be relevant for any given line.
Arrowheads are of fixed size and may not
be visible at large zoom factors.
<DT> <B>plainleft</B>, <B>plainbottom</B>
<B>plaintop</B>, <B>plaintright</B>
<DD> Draw plain lines, with no arrowheads
(the default flags).
</DL>
</BLOCKQUOTE>
Rectangle elements have no additional flags.
</DL>
<DT> <B>names</B>
<DD> Print names of all elements
<DT> <B>inbox</B>
<DD> Print name of element in (or nearest) the box
<DT> <B>help</B>
<DD> Print help information
</DL>
</BLOCKQUOTE>
</BLOCKQUOTE>
<H3>Summary:</H3>
<BLOCKQUOTE>
The <B>element</B> command creates and manipulates
general-purpose "elements", which are lines, rectangles,
and text that have no inherent meaning to the database.
They are positioned in units of the layout and so scale
and move with zooms and pans. They are intended to be
used for layout annotation, measurement rulers, user-defined
feedback, flylines, wire paths, and so forth.
</BLOCKQUOTE>
<H3>Implementation Notes:</H3>
<BLOCKQUOTE>
<B>element</B> is implemented as a built-in <B>magic</B> command.
The syntax is complicated and is expected to be driven by Tcl
scripts with simpler syntax for specific purposes such as
annotation or measurement rulers.
</BLOCKQUOTE>
<P><IMG SRC=graphics/line1.gif><P>
<TABLE BORDER=0>
<TR>
<TD> <A HREF=commands.html>Return to command index</A>
</TR>
</TABLE>
<P><I>Last updated:</I> October 5, 2004 at 6:32am <P>
</BODY>
</HTML>