In the Linux environment, there are numerous G-code generators.
Checkout the following link for a long but incomplete listing of
tools:
http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Cam
I have no personal experience with these, so you can train me...
Jim