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.
Code:
ARC: build c3 poly
Building polygons...
Re-building AAT...
ARC: list c3.nat
Record 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.aat
Record 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