English

# Problem: Intersect count differs between ARC INTERSECTERR and ARCEDIT DRAWENVIRONMENT ARC INTERSECT

## Description

The intersection count between the ARC INTERSECTERR and the ARCEDIT DRAWENVIRONMENT ARC INTERSECT commands disagree.

## Cause

When there is a common, non-node vertex at the intersection of two line segments, the ARC INTERSECTERR command does not report any intersections, while ARCEDIT shows one intersection location.

The ARC BUILD command converts the non-node vertex to a node. The ARCEDIT BUILD command sees the non-node vertex as a potential problem and flags it with a square maker.

## Solution or Workaround

The following examples show how the ARC INTERSECTERR and ARCEDIT DRAWENVIRONMENT ARC INTERSECT commands handle non-node vertices.

• Two 2-point arcs intersect.

Both ARC INTERSECTERR and ARCEDIT DRAWENVIRONMENT ARC INTERSECT report one intersection at the crossing point.

BUILD POLY will fail on this coverage. Use CLEAN instead.

O (5,5)
|
|
(0,0) O-----------O (10,0)
|
|
O (5,-5)
The two arcs with beginning and ending nodes cross each other at their mid points. There are no intermediate vertices.

Run the following AML to create a test coverage to illustrate the results of the ARC INTERSECTERR command and ARCEDIT DE ARC INTERSECT for this example.

`Code:/*Create the test coverage GENERATE clines10,010,0end25,-55,5endendquit/* Build the test coverage BUILD c lineINTERSECTERR c/*Run DE ARC INTERSECT In ArcEditARCEDITDISPLAY 9999Edit cde alldrawde arc intersectdraw &return`

One intersection is returned by the ARC INTERSECTERR command. ARCEDIT draws a square marker at the intersection.
• Two 3-point arcs intersecting at a common vertex.

ARC INTERSECTERR does not report any errors since BUILD for polygons runs successfully. The ARCEDIT DRAWENVIRONMENT ARC INTERSECT command flags the intersection for editing prior to running BUILD POLY.

O (5,5)
|
|
(0,0) O-----*-----O (10,0)
|
|
O (5,-5)

This is the same as the previous example, except the lines now share a vertex at the crossing point (5,0). There is a vertex, not a node at(5,0).

ARC INTERSECTERR returns zero intersections. ARCEDIT reports one intersection location at (5,0).
Run the following AML to create a test coverage to illustrate the results of the ARC INTERSECTERR command and ARCEDIT DRAWENVIRONMENT ARC INTERSECT for this example.

`Code:GENERATE c2lines10,05,010,0end 25,-55,05,5end endquitbuild c2 line ARCEDITDISPLAY 9999EDIT c2DE ALLDRAWDE ARC INTERSECTDRAW&return`

Before running BUILD POLY, we have only 4 nodes in coverage C2, and a common
vertex at (5,0). BUILD POLY converts the vertex to a node.

`Code:ARC: build c3 poly Building polygons... Re-building AAT...ARC: list c3.natRecord   ARC#   C3# C3-ID     1      1     1     1     2      2     2     2     3      1     3     0     4      3     4     3     5      4     5     4`

Now there are 5 nodes. The vertex at the intersection point (5,0) is automatically converted to a node and the coverage builds successfully.

`Code:ARC: list c3.aatRecord  FNODE# TNODE# LPOLY# RPOLY#       LENGTH   C3# C3-ID     1      3      1      1      1         5.000     1     2     2      2      3      1      1         5.000     2     1     3      3      4      1      1         5.000     3     1     4      5      3      1      1         5.000     4     2`