Making Parametric Models in Fusion 360

We all know and love OpenSCAD for its sweet sweet parametrical goodness. However, it’s possible to get some of that same goodness out of Fusion 360. To do this we will be making a mathematical model of our object and then we’ll change variables to get different geometry. It’s simpler than it sounds.

Even if you don’t use Fusion 360 it’s good to have an idea of how different design tools work. This is web-based 3D Modeling software produced by Autodesk. One of the nice features is that it lets me share my models with others. I’ll do that in just a minute as I walk you through modeling a simple object. Another way to describe what we’re going to learn is: How to think when modeling in Fusion 360.

Meet the parameters box. The parameters box contains every single dimension (variable) defined inside the model. You can also add your own. This is what we’ll be doing to make the parametric model.

Parameters Box
Meet the parameters box.
The parameters box is under modify in the modeling environment.
The parameters box is under modify in the modeling environment.

For this tutorial we will be making a box to store small tools in. I recommend following along with the steps in the Fusion360 model. There’s a time line with playback controls at the bottom of the Fusion360 window. You can move the slider back and forth to see different stages. You can also right click on any of the steps and select, “Edit Sketch,” or, “Edit Feature,” to see particular things.

Before I even began making the box, I sat and thought about how I would put together the model. Since it’s parametric I knew I wanted as few variables as possible. I’d rather have the computer do the work for me. So I came up with five things that would define my box.

  1. Length – The length of the inside of the box. Since my box is for holding things I don’t care how big the outside is. I’d rather have the software calculate that.
  2. Width – The width of the inside of the box.
  3. Height – The height of the inside of the box.

    Your best friend. Secretly math.
    Your best friend. Secretly math.
  4. Thickness – How thick the walls and the lid are. I also derive the thickness of the ribs on top from this number.
  5. Fit – This is the fit/clearance between the lid and box. 0.25mm is pretty easy to hit for a well tuned printer.

Next came the sketch. When using any modern CAD software it’s important to keep in mind that what you are doing isn’t really drawing as much as it’s building a mathematical model of your object. I tend to think of the process as graphical programming. One mistake I see a lot of newbies make is to completely ignore the dimension tool (shortcut: D) and the constraints panel. The constraints tell the software that, mathematically, Line A is always parallel to Line B, or Circle A is always tangent to Line B. Grasping this lets you create models that will expand and adjust with changed dimensions and design considerations. It also dramatically speeds up your drafting time.

A few tips on the sketch:

  • Fusion has some great hotkeys. Some of the ones I use are Q – Cut/Extrude (push/pull) the sketch, D – dimension, C – circle, L – line, and P – Project.
  • Double check your constraints. Fusion is conservative about which constraints it places for you. Make sure the obvious ones are there.
  • The parameters are case-sensitive. “Thickness,” is not the same as, “thickness.”
  • I could sketch the box, and then using relations to the box, sketch the lid. However, if the shapes in the sketch aren’t touching they will be extruded as separate bodies.
A close up of the sketch used to generate this part.
A close up of the sketch used to generate this part. Note the fx: these are numbers taken from our parameters.

Once the profile of the part was finished I selected the lid profile and the box profile and extruded the box. Again, since I want a parametric part at the end, rather than entering numbers during this step I enter in the variables I had set previously.

Right now the box is a lid and an extrusion without ends. I need to cap the ends of the box. To do this, I will use a plane and the mirror operation to copy the ends to both sides. If that sentence is off, another way to think of this is pseudo code.

plane_of_symmetry=createMidPlaneBetween(boxEnd1, boxEnd2);
box_end=capBox(end1);
symmetricalCopy(box_end, plane_of_symmetry);

Once it starts to click that you are not drawing the shape or modeling it in a traditional sense, Fusion starts to make a lot more sense. You are programming in a visual way. A side note, the mirror and pattern commands in Fusion are really cool, but complicated. I’d recommend watching a YouTube video if this function is giving you quirky results (Such as filling in all the empty space in your box).

Next I added some decorative features to the lid. ThisMake a da pattern was similar to the previous steps: make a sketch that is dimensioned with the variables, then extrude or cut using the sketch. I used the slot tool to add ridges to the top for grip. After I added the ridges I drew a rectangle that cuts away some of the ridges so I can have an area to write what’s in the box.

Now it’s time to test the file. We’ll go back and open the parameters window and change one of the dimensions. Oh no! An error. Like any code, it didn’t compile the first time. In this case, when I drew the initial slot I didn’t have the midpoint of the slot constrained to the middle of the lid. I drew a line from one end of the box to the other, making sure to constrain each of its ends to the middle of the lid, and then used the coincident constraint to attach the middle of the slot to that line. Creating a mathematical relationship.

Oh no! An error in our code!
Oh no! An error in our code!

After fixing the sketch, I tried again. It works! When I change any of the values I get a new model of the box. As you can see in the opening image of this post! I used the make command to generate STLs for my printer. Then, admittedly, went a little overboard on the tiny boxes.

Only a little overboard!
Only a little overboard!

49 thoughts on “Making Parametric Models in Fusion 360

  1. Fusion360, the software that is the complete antithesis of the open source, maker movement. Proprietary, you don’t “own” it but instead rent access to it, and you can’t even save your files locally – only in “the cloud.”

    Stop buying/renting/using/promoting software like this, people. Contribute to open software like KiCAD, OpenSCAD, etc.

    1. I don’t know, if the open source software doesn’t exist what can you do? Nobody has succeeded in making a decent open source CAD package to my knowledge. OpenSCAD is a cool piece of software and great for simple tinkering, but you’re fat fingering in text commands to make circles and rectangles… Comparing it to Fusion360 is wrong, they are not comparable. I’m no Fusion360 fanboy, but they do offer this software FOR FREE to anyone who is a student, enthusiast or even for commercial use to startups. And it comes with a full CAM package that can be used for running CNC machines. This capability used to cost thousands or even tens of thousands and is now free, I think it’s pretty cool, open source or not.

      1. “they do offer this software FOR FREE”

        So do drug dealers, right?

        I remain extremely concerned about anybody buying into such a closed eco system that you cannot even run the software locally.

    2. “Contribute” doesn’t scratch the surface of what needs to be done… Blender 3D is a better CAD package than the FOSS CAD packages, and it isn’t even CAD.

      You have to use the proprietary software if you want to get shit done. It sucks. Life isn’t perfect. The tools are broken and there are no standards. x86 works by magic and RMS went back to his home planet.

      If you really want to “contribute” go to work, save up money and invest in your tools on bountysource.com.

    3. Whilst i agree that the fusion360 software model is not great for makers i think that there is a lack of good open source alternatives in this particular area. OpenSCAD can be useful be but its nowhere near the same as using a full cad package like autodesk / solidworks / solidedge. The closest i have seen to any of these is FreeCad and it cant even handle complex assemblies yet.

      I think your wrong to tell people to not use software like this just because of its software model. Some people just want to use a cad package to make a few 3d printable things, this doesn’t mean they are a capable developer that has time to spend working on an open source project. If fusion 3d is a simple but capable cad program then why not use it? . . . . at least until some people with the time create a good open source alternative.

    4. Rent as in $0 rent. Free, interactive, parametric CAD. It also has CAM.

      But, yes, I too am paranoid. I expect them to either close down, or start charging for what was once free.

    5. I use KiCAD. I tried OpenSCAD and ran out of time and brain-RAM. Looked at Fusion360 and finished a mount for a little Linux card on the back of an LCD in about 90 minutes which included watching a 40 minute tutorial and had it printing ten minutes later. And I didn’t rent it – but I would. It’s brilliant. I reward brilliance when I can.

    6. Sure, I’ll stop. Just as soon as open source software lets me get shit done as well and as effectively as the closed source stuff. I’m sorry, but buggy, unpolished, unstable software just isn’t my thing no matter how nice the idea of it is.

      I’ve tried OpenSCAD a few times over the years. Every.single.fucking.time it has been crashing on me (on different computers). Doesn’t help that it’s slow as hell.

      That said, there is good software in the open source community and I’ll gladly use it. But unfortunately a lot of it is really bad and I’m getting too damn old to spend a bunch of time poking at stuff until it works.

  2. For parametric CAD work, I prefer CadQuery. It’s a Python based interface and comes as a module to FreeCAD. I still use Fusion360 for the CAM part of the operation. As a programmer, CadQuery allows me to build things MUCH quicker than a visual interface like Fusion360. It also doesn’t suffer from the OpenSCAD problem of not exporting splines properly, which makes it impossible to make anything that isn’t going to be built on a 3D printer such as a CNC mill or lathe.

  3. I find Onshape (www.onshape.com) to be extremely easy and user-friendly. It seems to be very similar to solid works if you are familiar, and they have revolutionized the interface. You can export all files (assemblies, models, drawings, and sketches in the most common standard formats for use elsewhere.

    1. This looks like a very good option for hobbyists and such. It’s like Solidworks because it was developed by the original guys that created solid works and changed the face of the CAD world, before Dassault Systems bought it. The only thing Dassault Systems brought was nasty DRM, subscriptions, licensing fees, and bugs. Lots of bugs…

      Hopefully Onshape keeps it open and free like it is for small scale use… I really like Solid Works, even the very old dated version I am using that has some issues with the newer windows versions, so I might just have to give this a try…

    2. Onshape is nice enough, but it is behind Fusion 360. It is lacking in a lot of advanced modeling commands. It is the best if you want to CAD in Linux without running a virtual machine. I have hopes for them; any innovation in CAD is welcome.

      1. Gerrit, I find it far less restrictive than Fusion 360 and haven’t found (m)any missing functionality apart from a sheet metal module. What ‘advanced modeling commands’ is OnShape missing?

  4. If you’re looking for a good open source parametric modeler, consider trying SolveSpace. I stumbled across it a while back and have been using it instead of OpenSCAD ever since. I think the interface is great. Way more intuitive than other open source CAD software out there.
    http://solvespace.com/

      1. My problem with solvespace is that once you start assembling things, you lose the ability to change their parameters.

        Suppose for example your assembly consists of L profiles with holes cut on each end, and they come in different lengths, so you make one truss where the length is unconstrained, and then save it to a file. Then you import the file back to start assembling your thing – but oh, you can’t change the parameters of the imported parts. They’re now static. You can open the file of that part and change the length there, but you can’t change it while you’re assembling them together.

        So you have to know in advance the lengths of every single truss in your assembly, and save them in separate files, every single one, even if they’re the same size, to give you the provision to modify in case you need to.

        That’s incredibly cumbersome. Why can’t I change the unconstrained parameters of the imported part by giving the part more constraints? It’s a generic truss, or a generic model of a bolt or something, why can’t I just import it and then give it a definite length after the fact?

        1. Suppose you want to model a small truss bridge for the moat of your house, or you’re putting skirting board around the walls.

          The whole assembly might have hundreds of parts, so it becomes painfully apparent why you need to have a generic model of a piece that can be modified during assembly to produce the unique parts. Otherwise you end up with a different file for every single piece and juggling them around becomes a mighty chore.

          In programs like Sketchup3D, you have groups which behave like static objects relative to other groups in the same way as the imported objects in Solvespace behave, but which can still be modified internally while in assembly. You can have multiple instances of these objects, which all change when you modify one, and then you can pick one instance and make it unique, which basically conjures a copy of the group which you can then independently modify.

          In Solvespace you are starting from and constantly operating on a level that matches a single object (group) in Sketchup3D. It’s actually counter-intuitive and downright wrong to make an “assembly” at this level of hierarchy because you are in fact working inside a single object, a single part.

          To make an assembly, we should take a step higher up in the hierarchy tree.

  5. Your options:
    1.) Download Solidworks with China spyware that students have been infecting their machines for years
    2.) Get Solidworks from your school lab program
    3.) Join the sinking ship of AutoDesk… you are wasting everyone’s time, and it will cost you.
    4.) Use FreeCAD/LibreCAD/HeeksCAD with the retarded interfaces
    5.) Learn OpenSCAD, and render complex STLs that would crash all the above.

    OpenSCAD can do things that I could never do using a GUI.
    With Slic3r and PyCAM I can print and mill most designs with Pronterface and EMC.
    100% open-source, stuff is reliable, and retrofitting my CNC mill cost less than $200.

    I wish the HeeksCNC guy would finish the work, and make it fully GPL free (he was charging for it at one point).
    Being able to script a large drill hit during the roughing process would speed up surface milling process dramatically.

    Still looking for an open EMC compatible lathe path planner too.

  6. I dare someone to make a cad/cam package as cool as Fusion 360 and give it away for free (as in speech). Seriously. I dare ya.

    Nope, we won’t help you with your rent/groceries. Thats part of the dare.

    1. The estimated value of GPL code is incalculable, because talented people build for other reasons.

      The general rule is something-for-something…
      I donate cash, advice, coding time, and minimally bug reports for open projects… In exchange, others share their hobbies with projects that usually are not commercially feasible.

      I am also on kickstarter/indiegogo/patreon forking over cash for something new and unique…
      i.e. we avoid those ripping off other people with rehashed products.

      I wish I had the time to write a decent interface for BRL-CAD (maybe after I retire):
      http://brlcad.org/

      Fusion 360 looks an awful lot like SketchUp now… ahem…

      A message in a bottle for the modern tinkerers:
      “I don’t care that they stole my idea . . I care that they don’t have any of their own” ( Nikola Tesla )

    1. I really love it, especially as every field is available as a variable (ComponentTitle.Field), and can contain either a value or a formula. Unfortunately, there is no Windows build available, and the Linux build is out of date. I had to use a vm of Ubuntu to use it, and ran into the bugs that were corrected with the later version.

  7. Gerrit, I’m mostly done with following along with your tutorial, thanks. There’s a couple of things I can’t get. On your model, it seems that quantity of rectangular pattern for the grips can be expressed as (Length / Thickness / 2) but this stays red for me. I had to make a new parameter called Grips, with no unit (crucially) and then I could round() that and use it for quantity.
    Second thing is that I can’t seem to get all Grips to extrude. I can select the pattern and extrude it but then if I change the box length to be bigger, not all grips are extruded. Any hints?

    1. Oh! That’s probably because I was very lucky. I somehow managed to never get a (Length+Thickness)/2 that didn’t resolve to an integer. I think anyway.

      For the grips, I actually had to set the parameters to the largest box I could print, and manually select every grip. Unfortunately Fusion 360 still isn’t as clever as its competitors when it comes to figuring out which lines matter automatically. Once you select every grip though, it seems to remember pretty well even when the variables change. A definitely better way would be to sketch and extrude one grip and use the linear pattern on the feature itself (create->pattern->rectangular pattern).

      Let me know if this helps.

  8. One great thing about Fusion 360 is that they are constantly working on it and updating it automatically for free. None of this “you didn’t buy a service agreement, so you don’t get bug fixes” like SolidWorks has.
    Even if you are nobody and didn’t have to pay for a license or anything like that, they will read your bugs, suggestions, etc. The program was quite buggy when it started out, but they have really made great strides in the time I’ve been using it. At one point, I had three different engineers from Autodesk helping me with different problems.
    I was quite used to Solidworks, but I managed to pick Fusion up in a couple of days, the UI is fast and responsive, works well even on 4k screens, and is dead simple to make a beautiful render of whatever you made.
    As far as not being FOSS goes; the terms are decent so far, and the quality is so very much better than the FOSS alternatives.
    I wasn’t willing to use OnShape, because their terms were “make everything open source or pay us”, and being completely in the cloud means you are out of luck if the internet goes down, if they go out of business, or if they change their pricing model. Fusion runs locally and synchronizes data with the web, but can run without a connection. Arguably, you could keep using Fusion even if it couldn’t phone home, which might give you some recourse (sandbox in a VM with no net, maybe?) if they decide to change the terms or shut it down.
    Autodesk just bought Eagle, and I wish they would offer it under the same terms as Fusion. That might actually convince me to start using it again…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s