Probably the simplest way to do it is to program a two-axis circular move, with one axis being a "dummy" that isn't really driving anything. The remaining axis will them move sinusoidally (after it gets accelerated up to speed). The basic command is either G2 or G3. Assuming Y is the "dummy" axis, and you want a 2" diameter motion at 10 IPM about x3.000 y5.000:

F10.0 (Set feedrate to use)

G0 X4.000 Y5.000 (Move to start point on circle 4.000,5.000)

M98 P001 L10 (Call subroutine 001 to do one circle, L10 calls subroutine 10 times)

M30 (Program End)

O001 (Subroutine ID)

G2 X3.000 Y5.000 I-1.000 J0.000 (Do one complete circle in XY plane, with center at X3.000, Y5.000)

M99 (Return)

M30

Regards,

Ray L.