Xic supports ``pseudo-properties'' which when applied are not saved as properties, but rather change or return some parameter related to the object. This allows the property setting mechanism to be used to alter the physical layout, which can be an important feature in design automation.
In physical mode, when the Property Editor is in use, the listing will include the available pseudo-properties for the current object. The pseudo-properties can be ``added'' or ``edited'' to modify the current object (or all objects if in global mode). As usual, such changes can be undone/redone with the standard operations.
Internally, pseudo-properties can be applied to any object, electrical or physical. Many of the script functions that modify objects use the pseudo-property mechanism internally. These functions can take electrical or physical input. The graphical user interface, though, allows pseudo-properties to be applied in physical mode only, through the Property Editor.
The pseudo-properties are listed below, giving the property number and an internal name for the pseudo-property.
object reference point box lower-left corner polygon first vertex in internal list wire first vertex in internal list label label reference point instance transformed master origin
leading character style f,F, or 0 (zero) flush r,R, or 1 (one) rounded e,E, or 2 extended
Applying this property to a wire will cause that wire to be rendered with the given end style. The property has no effect if given to objects other than wires.
The general syntax for the string value is
[+|-] [0x]hex|word[,...]
Optionally, the string begins with a + or - character. If + appears, it indicates that the flag bits that are specified will be set, and those not specified will be unchanged. If - is given, the flag bits specified will be unset, those not specified will be unchanged. If neither, the flags will be set to a new value consisting of the bits specified which are set, other bits are not set.
The remaining part of the string effectively specifies a set of flag bits. This consists of space or comma-separated keywords or hex integers. Hex integers can have an optional ``0x'' or ``0X'' prefix. The overall value is the OR of all terms given. The table below lists the accepted keywords and the equivalent flag bits. Keyword recognition is case-insensitive.
Word Hex Bits Description R0 0 no rotation (dummy token) R45 10 45 degree rotation R90 1 90 degree rotation R135 11 135 degree rotation R180 2 180 degree rotation R225 12 225 degree rotation R270 3 270 degree rotation R315 13 315 degree rotation MY 4 mirror Y after rotation MX 8 mirror X after rotation and mirror Y HJL 0 left justify (dummy token) HJC 20 center X justify HJR 40 right justify VJB 0 bottom justify (dummy token) VJC 80 center Y justify VJT 100 top justify T0 0 text font 0 (dummy) T1 200 text font 1 (unused) T2 400 text font 2 (unused) T3 600 text font 3 (unused) SHOW 1000 show hidden label HIDE 2000 hide label TLEN 4000 show in top-level only LIML 8000 limit lines
The HJR will override HJC if both are given, similarly VJT will override VJC.
The SHOW/HIDE bits are for implementing a clickable text display, where the label text can be shown or ``hidden'' by rendering a small glyph instead. At most one of these bits should be set. Either bit overrides the default which is in force when neither is set. These can be applied to any label, however the ``clickability'' of the label is set by the LabelHiddenMode variable. All labels are ``clickable'' by default, press Shift and click on the label to toggle the hidden/viewing status.
The TLEV bit gives the label the property of being invisible in instances of the containing cell, but visible when the cell is viewed as the top-level (current cell).
The LIML bit causes the label to limit the number of lines displayed, when the label text has multiple lines. The maximum line count defaults to 5, and is otherwise given with the LabelMaxLines variable.
The TLEV and LIML bits may be applied when reading schematic cells through OpenAccess for Virtuoso compatibility, but are not otherwise used in Xic, except as controlled through this pseudo-property.
When applied to a label, the label will be rendered using the new flags. This property has no effect when applied to objects other than labels.
The settable pseudo-properties for an object are listed in the Property Editor, along with the ``real'' properties. These can be changed in the same way, which will produce physical changes to the object.