poly_hole_count()

Selects polygons based upon the number of holes. Returns: A polygon layer.

See also: dve_drc()

Syntax

dve_drc (poly_hole_count (inLayer) operator numHoles);

where:

inLayer A polygon layer
operator < Less than
<= Less than or equal to
== Equal to
> Greater than
>= Greater than or equal to
numHoles An integer value representing the number of holes

Example

Consider a clearance check which is applied only between polygons on layer cond2 that are contained in the same polygon on layer cond:

We create new polygons by subtracting layer cond2 from layer cond. Polygons with > 1 hole are selected using poly_hole_count(). Polygons with no or 1 hole are not selected because they contain no or 1 polygon on cond2.

lyrPoly = dve_bool_not(cond, cond2);
lyrPolyHole = dve_drc(poly_hole_count(lyrPoly) > 1);


We use a clearance rule to select the inner edges. Qualifiers instruct the checker to direct the search between edges of same polygon and toward outside the polygon.

lyrEdges = dve_drc(single_clearance(lyrPolyHole)> 1, DVE_RN_EDGE_ANGLES, 
DVE_RV_PARALLEL, DVE_RN_POLARITY, DVE_RV_OUTSIDE, DVE_RN_TEMPLATE, 
DVE_RV_OPPOSITE, DVE_RN_STRUCTURE, DVE_RV_SAME_POLYGON);

Polygons are extracted with the quadout command.

lyrPolyCmp = dve_quadout(lyrEdges);

Finally, cond2 is subtracted from the new polygon layer and a clearance rule is applied. This time, the search is directed toward inside the polygons.

lyrPoly = dve_bool_not(lyrPolyCmp, cond2);
error= dve_drc(single_clearance(lyrPoly )> 100, "spacing between cond2 and 
cond2 inside cond is > 100.0um", DVE_RN_EDGE_ANGLES, DVE_RV_PARALLEL, 
DVE_RN_POLARITY, DVE_RV_INSIDE, DVE_RN_TEMPLATE, DVE_RV_OPPOSITE, 
DVE_RN_STRUCTURE, DVE_RV_SAME_POLYGON);

 

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

Contents
Additional Resources