We have several CAD (computer-aided design) tools available for designing physical structures, namely Rhino and SolidWorks. This overview is intended as a high-level introduction to the essential features of SolidWorks which make it useful for this course.
SolidWorks is a parametric design tool. In the broadest sense, this makes it closer to visual programming than drawing: parts are defined by geometric sketch primitives constrained by relations and processed into geometric features through operations. So a cylindrical part might be defined by a circle on a plane that is extruded for a given distance or up to a given point.
Unlike Rhino, that tree of elements is what defines the part and is kept through the life of the part. So if that circle is moved, or split or reshaped, or the extrusion distance changed, the geometry of the solid form can be recomputed.
Using parametric design efficiently involves structuring the part model so that it accurately captures design intent. E.g. if two particular holes are mechanically related, their relative position can be defined by dimensions and relations which capture that mechanical relationship. That way, if other features change and the part shape changes, the holes can maintain their relationship and preserve the intent.
SolidWorks is especially suited for designing assemblies of parts. Machines are typically built from individually manufactured parts assembled together. This is captured in the design model by creating assemblies which define the relative position of individual parts via mates which define geometric constraints. For example, a shaft can be mated to a bearing hole by a concentric mate which limits it to axial rotation and translation (2 remaining freedoms), then further limited by a co-planarity mate between a groove face, snap-ring face, and bearing face which then leaves only axial rotation free. If mates correctly correspond to actual physical constraints, the model helps visualize that all parts have the correct freedoms. And the parametric nature of the constraint tree means that many part dimensions can be changed and other part positions can adapt.
A negative side-effect of the parametric feature tree is that if the structure of the the design intent changes, it can be difficult to modify the tree structure to match. This is because all features are defined in relation to existing features, so if a parent feature is removed, the child feature becomes only partly defined. It takes a great deal of practice to learn to structure models well at the beginning to minimize these problems later.
We maintain a separate git repository on github for sample parts and projects at physcomp-solidworks. This repository includes sample parts and projects, see README.md.
A complex snap-fit plastic robot assembly example is available for reference here: romibo-mechanism. This was largely designed by Garth Zeglin, and demonstrates several ideas for creating 3-D structures from flat parts using interlocking joints.
The IDeATe 15-294 Rapid Prototyping Technologies course taught by Dave Touretzky has many links to information and tutorials.