Kate, the problem mentioned by Stig is also the same problem within Don's routine. What happens is that while the points that define the arc are exact, the method for getting them can give an inaccurate center point or the arc IF either of the lines angle fits this profile : 180 < angle < 0
The same thing can happen IF the line is drawn in the opposite direction, instead of drawing the lines from left to right, if they were drawn from right to left it buggers up the code without some more error checking.
So, to put the whole thing together and eliminate the need for a whole lot of error checking, the key was to have the user select the beginning tangent point and the line to have a matching point. Using each point, we needed to find the intersection of both of those point at 90deg from the line they are located on.
So, basically it is ..
(setq center (inters pt1 pt2 pt3 pt4))
Now we know that the distance between pt1 and center is the radius of the arc, AND it will always be on the smaller angle side of the lines because there is no intersection of the lines on the larger angle side.
So, you have the point selected by the user, and the center of the arc, now all you need to do is draw an arc from PT1 using a radius of (distance pt1 center) to PT3 which is a point lying on the second line an equal distance from the intersection of the two lines to PT1.
The only error checking reqired is to make sure the arc is drawn using the correct beginning angle, otherwise it creates the arc representing the remaining portion of the circle.
Not really too difficult, but I wanted to make it as simple for the end user as possible. I am glad it worked out ok.