Question: I am new to mechanical engineering, although I have a scientific background (postgrad in Mathematics), and I (mostly) code for a living.

I have an idea about creating a mechanical device; I envisage it will entail gears, linkages and actuators.

I have a rough idea where things will fit but I would like to be able to test and tweak the design in software before building the actual device. As a point of clarification, when I say "test," I mean view via animation, for example, whether two items will collide when in motion, or if there is sufficient leeway between them as they move past each other.

This allows me to do the design and simulation testing of the parts, before finalising the design and then building the physical system from the design.

The stages are:

1. Build the 3D design in software
2. Run simulation to see if it "works," if not fix design and iterate
3. Build physical system from design that "works"

I have figured out that the system consists of three subsystems working together.

So, I would like to design and test each sub-component before integrating them into the complete system.

### My question then is this:

* Is this how design is done in the real world?
* What are the pros and cons of the scheme I have planned?

I am intending to use FreeCAD to do the design and testing.

Answer: 
Not sure how you've gotten on but I'm in the same boat and have gotten stumped...

"it will entail gears, linkages and actuators" I believe is very difficult for the hobbyist. This level of modelling requires professional design software costing ££££. If you can get that, then all is well after you've engaged with the 3D modelling way of thinking. It's not like 2D drafting. 

Specifically, I've been testing FreeCAD 0.16 (the current stable[?] version) and been disappointed. It's not really at a usable point yet. I'm think that it might never reach usability as a lot of open source packages don't, such as the 2D LibreCAD. It also can't deal with more than one part, so can only try to model a link, not linkages.

As you're academically linked, might I suggest getting a student /academic license for something like SolidWorks or SolidEdge. There might also be Fusion 360. They work well and are of a suitable stature for linkages and such. They also allow the range of motion to be modelled. Unfortunately for me as a Linux user, there are no free usable 3D modelling packages at this time.
> 
> I am new to mechanical engineering, although I have a scientific
>  background (postgrad in Mathematics), and I (mostly) code for a
>  living.
> 
> 
> 

My observation is that there are plenty of analogues between how software is designed, tested for, coded (heh, in that order), and distributed - and how mechanical models are described in CAD. Maybe this is because most of what I do is parametric modeling, e.g. describing the computer a recipe on how to produce a model from parameters, that can then be tested.

You certainly sound to be on the right tracks.

As with software tools, you need to pick and know your tools well, to work with them and not against them.

---

Meta note: this question is going against the StackOverflow [tour](https://engineering.stackexchange.com/tour). It advices e.g. against opinionated answers and those ".. with too many possible answers or that would require an extremely long answer". What this might mean is someone closes the entry eventually.