@zph wrote:
You could compare the X and Y coordinates of the quandrants and boundary box and apply a fuzz distance using the EQUAL function.
....
EDIT: or rather compare the boundary box min and max X and Y coordinates to the points on the spiral and match them using the EQUAL function. And when they do match...you've found the quandrant points.
The first suggestion isn't an option, because [if I understand correctly] they don't have the coordinates of the quadrants to compare -- they're trying to find them.
The second suggestion depends on what you mean by "the points on the spiral." If you mean the vertices of the Polyline, I don't think it can be assumed that the quadrant points are at vertices. [The OP can certainly clarify that with a screen shot showing the spiral selected with grips showing.] My assumption is that the quadrants will be at some random distances along arc segments, not necessarily at vertices. The only way I can imagine to find them from "points on the spiral" would be to step along it at tiny increments and try (equal) at each step [not absolutely precise, but some tolerance would be involved, depending on the step size].
But I can imagine a way for a routine to get them precisely. I first thought of an approach involving temporary Xlines through the Osnap-center locations for each arc segment, and (intersectwith) functions, but this should be simpler:
1) Get the spiral's bounding box and extract the extreme X and Y coordinate values.
2) Step through the Polyline, if a spiral like the one in the image is made of relatively few comparatively long arc segments, at a parameter value increment of, say, every .25 [0.0, 0.25, 0.5, 0.75, 1.0, etc.], and apply (osnap ...thatpoint... "_qua") at each one. That will return a quadrant point for any segment that includes one, including potentially multiple returns of the same point. With longer segments there's the possibility that one segment might include more than one quadrant point, which is why you should Osnap at multiple locations along each segment. If it's made of a lot of comparatively short segments, Osnapping at just the midpoint parameter values [0.5, 1.5, etc.] should be enough.
3) Eliminate the duplicates, if any, and compare the results to the bounding box's extreme X and Y coordinate values. Any that match within a reasonable tolerance will be one of the outer-perimeter quadrants.
Kent Cooper, AIA