Defining Controls

After defining the artwork, you use the Graphical Cell Compiler to define the controls that are available on the finished Parameterized Artwork Macro (PAM).

The basic steps required to define a control are:

This chapter provides details for control precedence, theory of operation, control lines, and the difference between control and component parameters.

Control Precedence

The order in which you define controls is important.

Not all controls are required, but the suggested order of implementation is shown in the following figure.

Order of Control Precedence

Theory of Operation

To understand why controls act the way they do you must understand the different data variables allocated to each shape in a generated macro. Each shape has (at least) these variables assigned to it:

i_ < number >Initial Variable = shape's original data
p_ < number >Primitive Variable = shape's modified data
l_ < number >List Variable = list of generated shapes' data
r_ < number >Rotation Variable = shape's rotation value
w_ < number >Width Variable = shape's width or height
where:
< number > is a value assigned at compile time to create a unique name.

When the macro executes, the Initial and Primitive variables are assigned the shape's initial location data. For details, see the section Code Walkthrough.

What is Output

When it comes time to output the results of the macro, a test is performed on the List variable. If the List variable contains a list of shapes, the list is output to generate the shapes in the destination layout. If the List variable is empty, only the Primitive variable is output. The macro never outputs the contents of both variables. This explains why a Stretch performed on a shape after a Repeat does not appear to have any effect. The Stretch operates on the Primitive variable, but at output time, the program uses the List variable, which contains the copies created by the Repeat and a copy of the original shape. Any modifications made on the Primitive variable by the Stretch are lost.

Multiple Repeats

When you perform more than one repeat on the same shape, the Repeat controls use the Primitive variable as the source for the shape data, placing the results in the List variable. If the initial shape does not move between Repeats, multiple copies of the shape are made at the starting location. That is, if you perform a Repeat Parallel followed by a Repeat Perpendicular, two copies of the shape are made at the starting location: one generated from the Repeat Perpendicular and one generated from the Repeat Parallel.

Modifying Data Between Repeats A shape's data (in the Primitive variable) can be modified between Repeats. Repeats use the same source to copy, so if that source is changed (by a Stretch or Mirror control, for example) after one repeat, the next repeat makes copies of a different-looking shape.

Modifying the Contents of Primitive Variable & List Variable Data

The Rotate/Move/Mirror control operates on both the Primitive variable and the List variable. This means that you can modify a shape either before or after you copy it.

Rotating a shape and then repeating the shape:

Repeat a shape and then rotate the results of the repetition:

As the example shows, if you modify (rotate) the shape before you copy it, the Repeat control makes copies of the rotated shape. If you copy the shape before you rotate it, the Rotate control operates on the list of shapes as a unit. The Rotate control also modifies the Primitive variable, but because the List variable contains a list, the modification to the Primitive variable is not visible unless you do another Repeat on the same shape. In that case, you do see the modification in the results of the second Repeat.

Using Control Lines

Control lines (construction lines) provide the reference for Stretch, Repeat, and Polar controls. When you define one of these controls, you must select both the shape that you want to manipulate/copy and the control line that you want to use as a reference. If you forget to select a control line, the program prompts you to do so.

With a Stretch control, you choose whether you want the stretch to be in the positive or negative direction with respect to the reference line.

With a Repeat control, you choose whether you want the repeat to be parallel or perpendicular to the reference line.

With a Polar control, a control line defines where a polyline or path is cut for a stretch-like operation. It does not have any effect on the rotation angle (0° is still the x-axis) or the rotation origin (which is 0,0).

A control line does not have to intersect a shape.

For example, if a shape is to one side of the control line and is included in a stretch, the entire shape moves by the stretch amount, rather than being stretched (see Stretch Control).

A control line can be at any angle; a control line is not limited to 90° angles.

Positive and Negative Stretch Directions

When you select a control line, you use the Stretch Control Definition dialog box to indicate the direction (positive or negative) in which you expect the stretch to occur relative to the selected line.

The following figure illustrates stretch direction with respect to the horizontal or vertical control lines.

Determining Stretch Direction

The point at which the program sees a line as moving from horizontal (positive = up) to vertical (positive = right) is when the angle of the line is greater than 45°.

The stretch direction for a line between 45° and 90° can appear to be backward, as shown below. Just remember that the line is at an angle greater than 45°, even though it may be hard to see the slight difference.

Parallel and Perpendicular Repeat Directions


When you select a control line, you use the Repeat Control Definition dialog box to indicate the direction (parallel or perpendicular) in which you can expect the copy to occur relative to the selected line.

As with a Stretch control (see Positive and Negative Stretch Directions):

Entering a positive or negative number determines the direction in which the copy is placed along the selected axis.

If the control line is horizontal: Parallel goes left/right; Perpendicular goes up/down.

If the control line is vertical: Parallel goes up/down; Perpendicular goes right/left.

When the control line is at an angle: Parallel is still parallel to the control line and Perpendicular is still perpendicular to it.

Repeating Both combines a parallel and a perpendicular copy, even at an angle.

Defining Parameters

When using the Graphical Cell Compiler, you work with Control Parameters and Component (model) Parameters.

Control Parameters

Control parameters are the fields within a control dialog box. For example, in the Stretch Control Definition dialog box, the control parameters are Distance and Offset.

You can use any one of the parameters listed in a control parameter field:

Component Parameters

Component (or model) parameters are the parameters you edit to customize an instance of a given component or model. These parameters appear in these locations.

Controlling Multiple Shapes on Different Layers

If you select a shape to be included in a control, it does not matter what layer the shape is on. A control operates on any number of shapes, on any combination of layers.

In the original design, the three shapes selected for a Stretch control are on three different layers. The control is defined with a length of 100 mil and an offset of 100 mil.

When the model is used and the length reduced to 50 mil, the top shape is moved (because the control line did not touch the original shape), and the other two shapes are stretched back.

When the length is increased to 150 mil, the top shape is moved again, and the other two shapes are stretched.

For details on using a Stretch control, refer to the section Stretch Control.

 

Privacy Statement  | Terms of Use  | Legal | Contact Us  | © Agilent 2000-2008 

Contents
Additional Resources