2020-02-04 Fusion 360
My history with CAD
I first learned CAD as an extension of paper drafting in about fifteen years ago, using an ancient version of AutoCAD to do 2D-perspective drawings of mechanical objects I had already drawn on paper.
Along with AutoCAD I learned basic 3D design modeling the same parts using CADKEY (now KeyCreator). While both software applications have graphical user interfaces (GUIs), the software was most effectively controlled using a combination of keyboard shortcuts and manually-typed text commands. Coming from paper drafting, I used construction lines extensively in forming my CAD shapes with the mid-point of lines for centering and a tremendous number of trim operations to bring a plane of infinite intersecting lines into a 2D shape of defined dimension. Everything was very manual. 3D shapes were largely an extension of these 2D shapes, extruded, drilled or manipulated with boolean operations like difference and union. CADKEY was limited in what it could model but did represent 3D shapes as solids rather than series of 2D surfaces.
About 8 years ago I tried using Rhino3D. It had a familiar command line interface to AutoCAD and CADKEY, and one tremendous advantage: the academic license was affordable for a college student, and even allowed for commercial use.
Rhino works well, but its conception of 3D shapes is based on everything being a series of 2D surfaces. That meant it sometimes had difficulty applying fillets or performing the boolean operations I was accustomed to using if surfaces were perfectly coincident. Rhino worked well enough for me to design basic mechanical fixtures, but the world of CAD software has advanced significantly since then! Rhino was notably missing the capability to draw things parametrically (and yes, the Grasshopper plugin exists, but its visual programming of parameters seemed messy, inefficient, difficult to learn, and more geared for generative design of complex meshes rather than parameterization of relatively basic shapes). I considered other software like SolidWorks (too expensive), OpenSCAD (strange language design especially with respect to operation order, scope, and [lack of] modularity and objects).
I was excited to use this class a an opportunity to modernize my CAD knowledge and get up to speed with Autodesk's Fusion 360. Fusion 360 builds on what Autodesk learned from making Inventor and is based on a re-write of the core geometry engine. Fusion360 can be parametric, it can model assemblies, and it even has a built-in CAM module for controlling milling machines and 3D printers to manufacture real 3D objects. Fusion 360 also has some capability to use finite element analysis, which can be used for shape optimization (I hope to explore this given the chance).
Getting started with Fusion 360
I downloaded Fusion 360 directly from autodesk.com and had difficulty installing it: it kept tripping the virus scanner on my machine. This seems to be a false positive and is an issue known to Autodesk; a page exists on the appropriate paths to whitelist to allow Fusion to install and run: https://knowledge.autodesk.com/support/fusion-360/troubleshooting/caas/sfdcarticles/sfdcarticles/Configuring-anti-virus-software-for-use-with-Fusion-360.html
After installing Fusion 360 from autodesk.com and whitelisting it in my computer's virus scanner, my Fusion360 journey began by following Nathan Melenbrink's tutorial for this class.
I learned a few things along the way:
Fusion 360 only stores documents in the cloud, though it can export files in inter-operable formats. I like to version control my work using Git, but since Fusion does not create files by default doing so would require constant cumbersome export operations to non-native formats.
Fusion has its own set of hotkeys, though I believe they can be customized.
Fusion represents what is known about a design in a hierarchical tree, with a few different distinct types of objects. So far I've learned seen sketches (2D, inherit dimensions from parameters), bodies (3D, inherit from sketches), and assemblies (inherit from bodies)
Inheritance exists from sketches->bodies->assemblies such that a change to a dimension in a 2D sketch will propagate to 3D bodies derived from the sketch, and changes to these entity types propagate to assemblies. That's handy to avoid mismatches after copying and pasting
Fusion360 drawings begin in a 2D sketch mode that lays the foundation for creating 3D shapes. As soon as they are drawn, shapes are parametric; the dimensions can be changed after the fact for any lines laid down.
Lines comprising sketches can be constrained in a number of ways in relation to other sketch elements: they can be constrained to always be perpendicular; to always be parallel; to maintain position a midpoint, endpoint, or center; as well as a few other constraint types. I'm still learning how to apply these constraints at a basic level (which element do you click first? etc.).
Lengths and other dimensions can be specified in absolute units (ex. 40mm
) or they can reference named user-defined parameters from the Modify->"Change parameters" menu.
Following Nathan's tutorial, I created a sketch for an example press-fit object. I drew everything with manually-specified dimensions at first to get a sense for the interface. I learned it is helpful to have a computer mouse with a middle button for being able to enter orbit view to spin a part around.
I drew center lines along one axis as instructed in the tutorial and then made a copy and rotated them 90º for the other axis. It turns out copying may break dimension inheritance. When I created a 3D extrusion of my sketch, the part looked great. Next I wanted to parameterize the model, so I re-entered sketch mode and set a few parameters for overall dimension, slot width and depth, etc. My first centerlines scaled with the model as they (apparently) had a midpoint-of-other-line position constrained, however my rotated lines lacked such a constraint and if the shape were scaled in the other axis the center lines would remain stationary and not scale with the rest of the object. I was able to get the model to work by creating a circular array copy of the center lines, with two copies, rotated 90º, and centered on a circle in the shape. Doing that seemed to create the right constraints without intervention and parameterization worked fine. One minor annoyance in relation to the old CAD software I've used is that circular copy ("polar array") operations seem to require a circle or arc in Fusion 360; I have not yet found a way to create a polar array around a single point.
The parameterization worked well, and I created a part that could be scaled in X or Y dimension, or material thickness, and the interlocking notches would scale appropriately to function without interference, using the shorter side of the part as the limiting value. This was possible because Fusion 360 supports a few mathematical functions in its parameter definitions. I only used min()
and basic arithmetic operators in my parameters.
Next I will explore creating assemblies of multiple copies of the part I created previously, as well as explore whether Fusion can implicitly pin parameters to some other dimension in a drawing without explicitly defining the relationship. I'll also design a press-fit object of my own!
Other potential final project ideas
- A "smart" microcentrifuge tube rack for automated fluid handling where a human is the robot. The racks could use basic light sensors to detect the position of tubes, presence/absence of fluid, and signal the user which tube to interact with next. Racks could interlock mechanically and electrically to form larger work surfaces.
Dietz, P., Yerazunis, W., & Leigh, D. (2003). Very Low-Cost Sensing and Communication Using Bidirectional LEDs. In A. K. Dey, A. Schmidt, & J. F. McCarthy (Eds.), UbiComp 2003: Ubiquitous Computing (2nd ed., Vol. 2864, pp. 175–191). Berlin, Heidelberg: Springer Berlin Heidelberg. http://doi.org/10.1007/978-3-540-39653-6_14
- An Internet-connected treat dispenser for my cat, Midnight. It's a solved problem, but my cat won't complain about wheel reinvention.