Mathcad is possibly the one piece of software that is useful to every mechanical engineer, regardless of job function. Mathcad gives you the ability to do math within a document, as well as to add relevant images and text to explain your work. You can add plots which either read from arrays of data, or which can be linked to defined equations. The result is a beautifully formatted document containing your "hand" calculations.
- Ability to write and evaluate equations
- Unit conversion
- Linear algebra -- useful for solving 3D statics problems, for solving systems of linear equations, etc.
- Symbolic equation solver -- useful for when you just don't feel like manually solving for the integral of some complex equation
- Programming -- useful for numeric analysis
Computer Aided Design (CAD) Software
A 3D CAD (Computer Aided Design) package is especially useful to any engineer with a focus on design. This software allows you to build 3D models of parts and assemblies. For instance, you could model all of the individual parts of an engine, and then combine them into an assembly. This will allow you to ensure that all of the parts fit together as intended. Many CAD packages allow you to do things like allow motion of parts (i.e. to allow a shaft to rotate) and to check for interferences between parts. Most CAD packages have a drafting component that allows you to create 2D drawings of your parts so that they can be manufactured. Many CAD tools also have direct integration into an FEA (Finite Element Analysis) package so you can iterate seamlessly between design and analysis. Popular examples of 3D CAD software include SolidWorks, Unigraphics NX, CATIA, and Autodesk Inventor.
Finite Element Analysis (FEA) Software
Finite Element Analysis (FEA) is useful to any engineer that needs to perform structural analysis. This software allows you to analyze stresses and deflections in complex structures. Popular examples include ANSYS and Nastran. Typically a structure will be modeled in a 3D CAD program and then ported over to the FEA software. Previously, the porting process involved exporting the CAD model to a file format that could then be interpreted by the FEA software, but now many FEA packages integrate directly with CAD packages to make the transition seamless. Once the geometry is built, a mesh is created to discretize the structure into elements. Forces and constraints are applied, and the model can then be solved. From the solved model you can interrogate stresses and deflections in the structure.
Excel is probably the most versatile software used not just by mechanical engineers, but by nearly every office worker. Excel is useful for quick calculations, for tabulating data, for laying out ideas, for drawing with shapes, for basic programming -- the possibilities are endless.
Visual Basic for Applications (VBA)
Visual Basic for Applications (VBA) is the programming language built into all of the Microsoft Office products. It is useful for automating Excel files, Access files, Word files, and any other files created using the MS Office suite. It can be a bit clunky and awkward to use compared to other more full-featured programming languages, but its direct integration into MS Office makes it an incredibly compelling option for implementing small scripts to perform basic automation tasks.
MATLAB is the programming language/environment of choice among mechanical engineers. MATLAB is essential for doing more complex numerical analysis where simple math doesn't cut it and a programming solution is required. MATLAB is especially well suited for calculations with matrices and vectors. It has an excellent plotting capability, so it is easy to run a simulation and then quickly display results. There are many additional libraries available for purchase for doing more complicated things such as optimization and control system design, among others.
Some examples of things you might do with MATLAB include:
- Analyze heat transfer from a power bottle to the surrounding environment
- Design a control system to land a rocket on a barge
- Analyze the response characteristics of a spring-mass-damper with an externally applied force
Python is a general-purpose programming language with a strong capability for scientific programming. Because of this, Python is an excellent alternative to MATLAB. Python is open-source, and many useful libraries are actively developed and maintained by the widespread Python community. Comparable functionality to MATLAB can be achieved by installing the NumPy, SciPy, and Matplotlib libraries. There are many other scientific libraries available such as Pandas that are worth looking into as well.
One major advantage of Python (besides the price of free) is that it is a general purpose programming language -- it is not specifically tailored to scientific programming, although it is excellent for that. This means that you can use it to do many other things besides numerical analysis, such as work with your file system, manage a database, or build a website.
We couldn't write a post on the best software for mechanical engineers without at least mentioning our own software. MechaniCalc is a suite of web-based calculators built to assist in the design and analysis tasks of a mechanical engineer. MechaniCalc includes calculators for many common analysis tasks, including bolted joint analysis, lug analysis, column buckling, and more. It has a database of material properties and cross section properties that can be used within the calculators. It allows you to save your work, and to print reports for easy documentation. All of the calculators are available to try for free, so check out our full list of calculators here and get started!