You don't need an expensive 3d printer to get great results, I am an engineer/machinist by trade and use my printers for mechanical prototypes. I have a wooden frame Makerfarm i3v, at the time of buying a $500.00 machine and a Anet A8 $75.00 with a chinesium acrylic frame.

Both of them print better than my daughter's schools engineering class MakerBot z18 and Lulzbot Taz 3d printers. If you spend time putting the machines together using machine square, calipers, and a good ole tape measure you will have a machine that can usually hold tolerances well. Setting up software and calibration is also critical, take your time.

Most any 3d printer you can buy in 2018 will give you some nice prints.
With that said whatever you chose to buy make sure you buy something with good customer service or a large community for troubleshooting and improvement.

For design, I use Fusion 360 with a free student license very intuitive and easy to learn.