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 c lines 1 0,0 10,0 end 2 5,-5 5,5 end end quit /* Build the test coverage BUILD c line INTERSECTERR c /*Run DE ARC INTERSECT In ArcEdit ARCEDIT DISPLAY 9999 Edit c de all draw de arc intersect draw &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 c2 lines 1 0,0 5,0 10,0 end 2 5,-5 5,0 5,5 end end quit build c2 line ARCEDIT DISPLAY 9999 EDIT c2 DE ALL DRAW DE ARC INTERSECT DRAW &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.