For 3D design I use a number of apps, Solidworks, Autodesk, Aspire, also use CorelDraw to create/modify alot of things to later export to one of those programs for further work. All very expensive programs with a high learning curve. I thought I was getting raped spending $4,000 on a software program until I saw others spending twice and 3 times as much .. I thought Aspire was a bargain, just under $2,000. You simply have to have these programs if you want to advance, so you gotta bite the bullet and pony up.
For basic 2D, I use Cut2D. Both Cut2D & Aspire have the ability to not only design, but also generate the toolpath gcode of the actual cut files [.tap]
The program I use that opens these generated .tap files and actually runs the machine is WinCNC.
All of these I used a copied graphic, traced vectors by hand in Aspire, then made toolpaths in Cut2D with the resulting .dfx file. Really could do it all with just Aspire, but this stuff is relatively simple, and I like the simplicity that the Cut2D interface allows. Not a whole lot of options, because you don't need alot of options.
Whether you are talking about a router [my case], a laser, mill machine, plasma cutter ect, once you learn the basics of CNC, you can apply it to all of them, though of course each one has its own particular designing/setup routines.