Selects polygons based upon the total length of the outside edges. Returns: A polygon layer.

See also: dve_drc()


dve_drc (poly_perimeter (inLayer) operator distance);


inLayer A polygon layer
operator < Less than
<= Less than or equal to
== Equal to
> Greater than
>= Greater than or equal to
distance A real value in layout units


decl lyrCond = dve_import_layer ("cond");
decl lyrError101 = dve_export_layer ("error101");
decl lyrPoly = NULL;
lyrPoly = dve_drc (poly_perimeter (lyrCond) < 20.0);
lyrError101 += dve_drc (all_edges (lyrPoly), "Polygon perimeter < 20.0");

Polygon Selection Based on Merge Properties

Polygon Selection Based on Merge Properties selection functions include: poly_edge_code(), poly_path_count(), and poly_path_length().

Polygon merge qualifier commands constrain the selection of edges based upon a specified edge code. All of the commands in this section are based upon edge information computed during a merge operation.

Convention for TOP and BOTTOM layers

Some of the notation in this section depends on a naming convention. The first mentioned layer is called the TOP layer and the second mentioned layer is called the BOTTOM layer. For example,

lyrPoly = dve_bool_and(cond, cond2);

Layer cond is TOP, layer cond2 is BOTTOM.

This is an arbitrary, rather than a descriptive designation. For example the TOP layer might be "metal" and the BOTTOM layer might be "contact".

Using edge codes

When polygon TOP and polygon BOTTOM merge, a set of vertices consisting of the intersection points is derived. Each resultant edge between pairs of these vertices has a unique `edge_code' that describe its relationship to other edges.

Consider two polygons on the TOP and BOTTOM levels (vertices at the intersection are shown as asterisks '*'):

Merging the two polygons produces a merged database containing six types of edges. Each type is shown with a different character:

TOP_OUTSIDE_BOTTOM (T) polygon TOP outside polygon BOTTOM
BOTTOM_OUTSIDE_TOP (B) polygon BOT outside polygon TOP
TOP_INSIDE_BOTTOM (t) polygon TOP inside polygon BOTTOM
BOTTOM_INSIDE_TOP (b) polygon BOT inside polygon BOTTOM
INTERNAL (I) edges of TOP and BOTTOM butting internally
EXTERNAL (E) edges of TOP and BOTTOM butting externally

A side effect of the algorithm is that corner-to-edge and corner-to-corner interactions are not evaluated. For instance, when checking to see if two polygons touch, a contact between a corner and an edge, or between two corners is not counted.

For example, these polygons are not classified as touching:

Edge Code Qualifier

The following qualifier is used extensively in polygon selection commands:


Qualifier Resource Value:

DVE_RV_TOP (default) Select edges on top that are outside bottom
DVE_RV_BOT Select edges on bottom that are outside top
DVE_RV_TIB Select edges on top that are inside bottom
DVE_RV_BIT Select edges on bottom that are inside top
DVE_RV_INT Select edges on top and bottom that are butting internally
DVE_RV_EXT Select edges on top and bottom that are butting externally

Definition of paths and anti-paths

A "path" is a set of coincident edges of a polygon, all of the same type. Other paths of the polygon which do not satisfy the requested path type are called the "anti-paths" of the polygon.


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

Additional Resources