For 2D design I have been using Inkscape. Since most of my previous experience with computer aided design was with Auto Cad, it took a little getting use to using Inkscape. I found the tutorials to extremely useful. The ability to interact with images in them made learning the basics much easier than with a typical tutorial. Below is a design I laser cut for my sons birthday cake.
I broke the design into three components and cut them on the laser cutter. Fabricated an acrylic ring and assembled the pieces into a 3 dimensional object. I added a couple LEDs, a coin cell battery, a plastic jar, motor and a battery pack. Viola, a 3D light up spinning cake topper.
My 3D design efforts have not been nearly as successful as my 2D work. That 3rd dimension has had my unders in a bit of a twist. For my first foray into 3D I decided to use openSCAD. After banging my head against the wall for a couple of days I decided it was not the right program for me. It was like writing code (which I don't know how to do.) to generate your shapes. I could create shapes,( cylinders,cones,cubes etc.) but struggled to combine them into a useful image. The additive and subtractive elements just didn't make sense to me. I think the order in which you create elements may be the key. Regardless, the image below was all I got. That and a headache!
Once my headache subsided I changed tactics and downloaded Google SketchUp. Makes me want a hot dog. Anyway, I found SketchUp to be a bit more user friendly. I was able to draw a 2D image, like a top view in drafting, then push and pull my shapes to generate a 3D image. Editing the shapes still takes a bit of trickery but its making more sense to me than OpenSCAD did. I think I need to take a different approach to my current drawing but at least I feel like there is a light at the end of the tunnel.