If I recall correctly, V+ does not have a circle or arc function. Probably the most flexible way is to record a frame at the circle centerpoint. Then calculate a series of points on the circle relative to the frame.
It's been a long while, but I think it would go something like this.
1. Touch tool to center point.
2. Teach point CIRC_O at circle frame origin
3. Move tool distance LX in the frame-X direction (or use the Tool-X direction).
4. Teach point CIRC_X (or if you are clever, you can calculate a new point on frame X-axis)
5. Return to CICR_O, move tool distance LY in frame-X direction (or Tool-Y direction).
6. Teach point CIRC_Y (or calculate point in frame Y-axis direction...not required to be on axis)
7. Programmatically create CIRCFRM = FRAME(CIRC_O, CIRC_X, CIRC_Y, CIRC_O)
8. Programmatically
CIRC_R = <circle radius value in mm>
FOR INDEX = 1 TO <some useful radial increment value in degrees>
CIRCLE[INDEX] = CIRCFRM:TRANS(CIRC_R*COS(INDEX),CIRC_R*SIN(INDEX))
END
Then you have an array of points in space that theoretically define a circle. But these points all have the same orientation of the frame you just created. So you will probably have to sequentially rotate the axes of each point a couple times to get the orienation you need.
The truth of the matter is, though, that the circularity and exactness of your "perfect" circle is dependent upon speed, payload, and arm configuration. Circles are hard to do, especially at high speeds.
TygerDawg
Blue Technik LLC
Virtuoso Robotics Engineering