I've made a software that designs hardware based on your requirements and the machine you want to 3D print it with. 
The idea is to abstract away a lot of the boring details (like tolerances, stress analysis, fatigue, etc...) and make hardware development faster.Of course, it can not make every component (yet). Someone (me, at the moment, but I hope to open it up at some point) has to design a basic "blueprint" but then SOL75 can run with it. The software can manipulate the individual blueprints and/or combine them to meet the user requirements.To better understand what it does, there is an open (free) demo you can try at  info about the project: 