For the parts of each edge of the source that are not coincident or overlapping with source-compatible figures but are coincident or overlapping with target figures which extend to the interior of the source figure, a rectangle extending normally from the edge out of the source figure by the given dimension is constructed. The test fails if the constructed rectangle is not completely covered by target figures. Figure 15.11 illustrates the test performed under this keyword, for no Region and an expression consisting of a single layer.
If the Enclosed keyword is given, it requires that where the source and target intersect, the source is entirely covered by the target, with a spacing greater than or equal to the enc_dimen between outside edges. This applies only if the source figure is rectangular. If this clause is used, the dimesnsion_in_microns should be set to zero.
The Opposite clause also requires that if there is intersection, the source must be entirely covered by the target. This test also applies only when the source shape is rectangular. Two widths are given following the keyword. The test passes if two opposite sides of the source rectangle have extension greater than or equal to the larger of the two numbers, and the other two edges have extensions greater than or equal to the smaller dimension. If the two dimensions are equal, this is equivalent to the Enclosed clause. When the two values are different, there is no corner test performed. If this clause is given, the dimension_in_microns should be set to zero.
In either clause, a dimension value of 0.0 can be given, meaning that the source and target can share an edge.
Without the clauses, this is in many cases redundant with the MinNoOverlap test (see below) if applied to the result of the expression, if the expression is simply a layer name.
The Enclosed and Opposite clauses are set by minEnclosure and minOppExtension constraints when importing virtuoso technology data. These may have their own reference strings. To keep these distinguishable, the string can actually be three double-quoted strings, e.g., the form is
"# rule description" "minEnclosure string" "minOppExtension string"
This guarantees that the original reference strings are regenerated when the !dumpcds command is used to generate a Virtuoso technology file. If a component string doesn't exist, one can use "" (two double-quote marks) as a placeholder. Strings to the right that don't exist can be skipped entirely.