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.

  • $\begingroup$ How did it go for your project? :) $\endgroup$ – akauppi Jul 12 at 21:03

Answer: Yes, this is exactly how it is done in the real world. What you have described is what I do in my job to check systems in CAD.

Since you indicated you would like me to step through my design process, I have detailed it below. Note that most of this does not involve CAD. CAD is invaluable, but only if you are prepared to get out the pencil and paper first. Also note that this is just my design process, it is by no means the only way to go about things.


When I begin any design, I start by figuring out general parameters like what space will it need to fit into, what it needs to interface with, what the input and output will be. Lets say (for sake of a concrete example) that I'm making a machine that takes in a long pice of pipe and cuts it into predetermined sections. My first steps would be to determine the size and material of pipe that I want to input, what lengths the machine should cut the pipe into, what method I'm going to use to cut the pipe, and how much space I have on the shop floor for said machine.

I would then proceed to make a really rough sketch of what I'm thinking. In the pipe cutter example, it might be as simple as a box labeled "cutter" and a line labeled with the pipe weight diameter and length.

The next step is to do some math to figure out what forces, speeds, etc will be required. Since you said you come from a mathematics background, I won't dwell on this too much.

I usually make another sketch here, except now I have some feel for how big my components will need to be because I know the forces involved.

After I do the math, I look for commercial parts that fulfill my needs and (if possible) download CAD files or mechanical drawings for those parts.

Once I have some commercial parts, I'll make another sketch, this time showing the relative positions of my commercial parts with their interfaces labeled so I know what kind of support structure I have to build.

3D Modeling

At this point, I finally break out the CAD package. I start by making 3D models of whatever commercial parts I have that don't have 3D models available online and then proceed to my support structure parts and finlly assemble all the parts into an assembly.

Here's the part you are probably very curious about if you have never used CAD before.

In 3D CAD, you should draw each part (usually either something that comes as a commercial part or is made from a single piece of material in its own part file. Once you have part files, you can make what is called an assembly. An assembly allows you to select several part files and define the linkages between them. CAD programs have no sense of "collisions" so you have to tell the program which faces are aligned with other faces, what distance apart they are, etc. Each part starts out with six degrees of freedom and each constraint reduces the degrees of freedom by some amount. Specifying two faces are parallel removes one degree of freedom, a mate (two surfaces are coincident) removes two or three, etc.


I haven't used FreeCad, so I can't comment specifically on what the pros and cons will be, but my guess is this: the pros will be that it is free and you will see what dimensions work and what doesn't work, the cons will be that commercial software would have been easier to use.

  • $\begingroup$ Thanks for your answer. Since I'm brand new at this, could you please elaborate on your answer, the steps (or workflow), involved in getting the IDEA of a system from your head, into a DESIGN on a computer (without dwelling too much on the specifics of the software used). Thanks $\endgroup$ – Homunculus Reticulli Mar 18 '15 at 18:19
  • 1
    $\begingroup$ I added a lot of detail, but I'm really not sure what parts will be helpful. Whole books can easily be written about this stuff, but if there is anything you want be to elaborate on a bit, I can probably do that. $\endgroup$ – regdoug Mar 18 '15 at 21:55
  • $\begingroup$ +1 Thanks very much. That's exactly what I need to get me started! $\endgroup$ – Homunculus Reticulli Mar 19 '15 at 15:29

CAD is essential for determining Geometrical interference and special design. If Finite Elements are used in the CAD package, the data can be used for stress and strain calculations (determining if the system will withstand the loads). This can get complicated since if a system is going to be dynamic, there are static loads and dynamic loads. Dynamic loads need to be calculated when the model is subjected to varying loads.

In addition to mechanical strength, there are other parameters that need to be determined by using a simulation. Suppose you are designing a suspension system. The spring constant of the spring and the damping constant of the damper need to be selected using a simulation. A mathematical simulation can be developed using either Simulink or coding it up in a computer language. Using expected force profiles and test conditions the parameters can be determined using the simulation.


I work for a fortune 500 mechanical engineering company.

The process of product development in an mechanical system is broadly:

I assume that you have a complete specification of things like forces, temperatures, pressures etc. and can begin designing straight away. The first thing is to start generating design concepts that might or might not meet the specification. This is a combination of selecting the geometry that will accomplish the task, the material that will enable ease of manufacture and performance at all operating conditions, with the right structural integrity properties to last for the specified design life.

This design is completed in a CAD package, where the solid components are modeled.

From there, assemblies and production drawings can be made, but first we must validate our design with some analysis. This can be basic math and physics to show the dimensions will work within the design envelope, basic kinematics and kinetics, or mass balances for a design that processes a fluid for example.

More accurate analysis requires the use of sophisticated methods implemented in software known as CAE (computer aided engineering) or ALD (analysis led design)

For studying stresses and strains, temperatures, and to some extent fluids, the finite element method is used to calculate local properties based on a meshed model and some boundary conditions.

For studying fluid interaction with the geometry and looking at pressures, temperatures, and other fluid and thermal properties, computational fluid dynamics is used. This is most commonly an implementation of the finite volume method.

You alluded to simulate and iterate. That is essentially how the process is done. However, statistically verified methods are used using design of experiments theory to produce optimized design configurations.


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.

  • $\begingroup$ How does this address the question asked by the OP? This reads more like an attempt to create a conversation 18+ months after the question was originally asked. $\endgroup$ – GlenH7 Oct 20 '16 at 0:37
  • $\begingroup$ @GlenH7 "I am intending to use FreeCAD to do the design and testing." For future generations reading this, dear. Especially since no one ( other than answering a question saying they've not used it so they can't comment[?] ) has stated that it's still not usable at this time, whilst my alternative suggestions are... $\endgroup$ – Paul Uszak Oct 20 '16 at 1:29


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. 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.


Your Answer

