EncloseTo Commands
This topic describes the following EncloseTo commands:
- EncloseToErrors
- EncloseToPolygons
- EncloseToEdges
Input: One or two DV layers (containing polygons)
Constraint (operator and positive real number)
Measurement region qualifier (optional)
Orientation Qualifiers (optional)
Intersecting Edge qualifier (optional)
Raw/Merged qualifier (optional)
Output: DV layer – Type varies with the command. EncloseToErrors outputs a DV layer containing error clusters. EncloseToPolygons outputs a DV layer containing polygons. EncloseToEdges outputs a DV layer containing edges.
Description: Enclose is the distance between edges of separate geometry that face each other, one on the inside and one on the outside AND one of the geometry is completely inside the other. The single layer version checks the enclosure between different geometries on the same layer. Enclosure from one to the other, both ways, is checked on each pair of geometry. The two layer version checks the enclosure of geometry on the second layer by geometry on the first layer. This is an edge to edge check, not corner to corner, or corner to edge.
This is not a symmetric operation. The order of the input layers does change the results.
An edge is considered to enclose another edge if the geometry of the first edge contains the other geometry, and the first edge is inside facing and the other edge is outside facing. Arrows in the following diagrams indicate edge pairs where an edge of the geometry with dots encloses an edge of the white geometry:
Edges are considered to face each other for enclosure checking only if the angle between the inside of one edge and the outside of the other is less than 180 degrees. Collinear edges are not considered facing. The following diagram illustrates angles between inside/outside edges:
The arrows in the following figures indicate the edge pairs that are checked when considering the facing requirement and using default orientation and intersecting qualifiers: Acute Also, Not Obtuse, Parallel Also, Not Perpendicular, and Not Intersecting:
Single Layer Enclose
Two Layer Enclose
The first layer is white and the second layer has a dot fill pattern. The command looks for the enclosure of dot geometry by white geometry.
- EncloseToError results are clusters of
segments that meet the specified constraint. Each error segment indicates
the part of the geometry edge that meets the constraint. The error
clusters are returned in a DV layer. The heavy lines in the following example show the portions of edges that are returned as one error
cluster.

- EncloseToPolygons results are any polygons
that have at least one edge that meets the specified constraints. The
polygons are returned in a DV layer. Both polygons in the following example
are returned.

- EncloseToEdges results are segments of
edges that meet the specified constraints. These segments retain information
about the polygon they are created from. This information allows the
edges to be used as input to other DV commands. The segments are returned
in a DV layer. The heavy lines in the following example show
the segments that are returned as edges. They are not clustered, and
they retain information about the directions inside and outside of the
polygon and sibling relationship.

The constraint amount may be given with or without units. If no units are specified the current default length units are used.
Supported operators:
Qualifiers may be specified to constrain the edges checked. The defaults, if qualifiers are not specified, are Round (measurement region), Acute Also, Not Obtuse, Parallel Also, Not Perpendicular, Not Adjacent, and Merged (geometry).
Example (JScript):
var layer1 = DVChecker.ImportLayer("trace");
var encloseLayer1 = DVChecker.EncloseToErrors(Array("<", "5mm"), layer1,
Array( "Round", "Acute Also", "Not Obtuse", "Parallel Also",
"Not Perpendicular”));
DVChecker.SaveLayer(encloseLayer1, "enclose errors",
"enclose < 5 on trace layer");
var layer2 = DVChecker.ImportLayer("ground");
var encloseLayer2 = DVChecker.EncloseToErrors(Array("<", 5), layer1,
layer2, Array("Round", "Acute Also", "Not Obtuse", "Parallel Also"));
DVChecker.SaveLayer(encloseLayer2, "enclose errors",
"trace encloses ground by < 5");
Measurement Region Qualifier
Measurement region qualifier specifies the construction of the region used to test the constraint. There exist the following choices:
- Round: Forms a region with quarter-circle
boundaries that extend past the corners of the edge by the constraint
distance. Round is the default region, if no region is specified.

- Square: Forms a region with right-angle
boundaries that extend past the corners of the edge by the constraint
distance.

- Opposite: Forms a region with right-angle
boundaries that do not extend past the corners of the edge.

Measurement Region Use To Check Constraint
The following figure displays the returned segment for error or edge output, marked in blue, and the measurement regions, in red and green, that are used to check the constraint.
Orientation Qualifiers
Orientation qualifiers specify edge or angle orientations that qualify edges to be checked against each other. Up to one choice from each of the following four groups may be used:
- Acute Also
- Obtuse Also
- Not Parallel
- Not Acute
If multiple choices from any of the groups are used, the last choice on the group is used. It replaces any earlier choices of that group in the command.
EncloseToErrors(Array(“<”, 5), layer, Array(“Acute Also, Obtuse Also, Not Parallel, Not Acute));
is interpreted as:
EncloseToErrors(Array(“<”, 5), layer, Array(“Obtuse Also, Not Parallel, Not Acute));
If a choice contains “Only”, that is the only orientation qualifier recognized. Any other orientation qualifiers before or after the first “Only” is ignored.
EncloseToErrors(Array(“<”, “5mm”), layer, Array(“Acute Also, Obtuse Only, Not Parallel, Perpendicular Only));
is interpreted as:
EncloseToErrors(Array(“<”, “5mm”), layer, Array(“Obtuse Only));
Acute filter
- Acute Also – Include the measurement of edges that have an angle between them greater than 0 and less than 90 degrees. Default if none specified.
- Acute Only – Measure only edges that have an angle between them greater than 0 and less than 90 degrees.
- Not Acute – Do not measure edges that have an angle between them of greater than 0 and less than 90 degrees.
Obtuse filter
- Obtuse Also – Include the measurement of edges that have an angle between them of greater than 90 and less than 180 degrees.
- Obtuse Only – Measure only edges that have an angle between them of greater than 90 and less than 180 degrees.
- Not Obtuse – Do not measure edges that have an angle between them of greater than 90 and less than 180 degrees. Default if none specified.
Parallel filter
- Parallel Also – Include the measurement of parallel edges in addition to non-parallel edges. Default if none specified.
- Parallel Only – Measure only parallel edges.
- Not Parallel – Do not measure parallel edges.
Perpendicular filter
- Perpendicular Also – Include the measurement of perpendicular edges in addition to edges of other orientations.
- Perpendicular Only – Measure only perpendicular edges.
- Not Perpendicular – Do not measure perpendicular edges. Default if none specified.
Intersecting Edge Qualifier
Intersecting Edge qualifier determines if two edges that intersect are checked against each other. Intersecting edges are edges that share at least one point. This qualifier is used in conjunction with the orientation qualifiers to determine which edges to check. One of the three choices may be specified.
- Intersecting Also – Check applies to both intersecting and other edges.
- Intersecting Only – Check only applies to intersecting edges.
- Not Intersecting – Check does not apply to intersecting edges. Default if none specified.
Specifying Intersecting Also with Enclose always results in no results found. One geometry must be totally contained in the other geometry for edges to be enclosed. If there are intersecting edges, there is no enclosure and no results.
Raw/Merged Qualifier
The Raw/Merged qualifier applies to a DV layer created using the ImportLayer command. Raw specifies the geometry is to be used without first being merged. In contrast, the default setting of Merged specifies the geometry is merged prior to its use.
The arrows in the following figures indicate the edge pairs checked using Raw versus Merged with the other qualifiers defaulted (Acute Also, Not Obtuse, Parallel Also, Not Perpendicular, Not Intersecting).