FreeCAD Parametrics Made Simple

Simple drafting programs just let you draw like you’d use a pencil. But modern programs use parametric models to provide several benefits. One is that you can use parameters to change parts of your design and other parts will alter to take account of your changes. The other advantage is you can use one model for many similar but different designs. [Brodie Fairhall] has a nice video about how to use parameters in FreeCAD.

The nice thing about parameters is they don’t have to be just constants. You can put in formulae as well. For example, you could define one line as being twice as big as another line. You provide various constraints and parameters and FreeCAD works out the shape for you, keeping all the constraints and formulae satisfied.

[Brodie] shows how to use spreadsheets to manage complex parameters in big projects, which is pretty handy. There’s an upcoming feature that will allow you to group parameters into sets. As an example, you can see a model of a NEMA stepper motor that can change from a NEMA 17 to another size by just selecting different parameters from a configuration table.

OpenSCAD, of course, does nothing but parametric modeling in a very direct way. You code the constraints you want explicitly. We’ve also been enjoying Solvespace lately.

52 thoughts on “FreeCAD Parametrics Made Simple

  1. Yes, but the spreadsheets in 0.18 are not very user-friendly compared to “normal” spreadsheets, and everything slows down to a crawl with many objects (which has been an officially raised issue for the last few years). When I began using parametrics frequently, I actually switched from FreeCAD (after years as my primary mechanical CAD) due to seemingly no progress being made in that area.

          1. The ppa from the freecad website will provide you with the “daily” (actually weekly) version, which is fine if you’re on a newer distro. (Much more work if you’re on ubuntu 16.04 or the equivalent.) It would be really nice if the repositories moved to 0.19 because you definitely get version-shamed, and the majority of new freecad users are people who got 0.18 through their distro’s repo as they don’t know any differently.

      1. 0.19 ?!?!?
        ehhmmm this (FreeCAD-0.18.4.980bf90-WIN-x64-installer.exe) is the version you get when you go to the main page and press the download button (Windows 64 bit).
        Which obscure path do I need to walk along in order to get a version with the old bugs fixed (and new bugs added).

        Don’t get me wrong, I love FreeCAD but it drives me mad sometimes, so if there is a more modern version for Windows I can use, please lead me to it. I’m sure that others would like to here about this too.

          1. There is a giant disconnect between regular freecad users, who absolutely will lecture you like you’re an idiot about using the latest 0.19 version when you post questions about 0.18, and the new user community, who all get 0.18 because that’s what’s available in all the repos and through the immediately obvious download page. I’m a big freecad advocate and trying to get people up to speed on using it, and I think this is the largest single source of frustration for new users, when they get yelled at for using what they think is the latest version.

        1. You will be missing a lot of dependency options on a Windows 10 box even if using a new port.

          I’d suggest a small 240GB $40 SSD and install a Ubuntu LTS OS release for the ease/stability. Also, don’t attempt a dual boot install the first time you try this OS…. just remove the Win drive when you install onto the SSD… so If you mess up then you have a fallback plan ;-)

          There is also a free online class on now if you are interested in learning the basics of some popular Linux options:
          https://www.edx.org/course/introduction-to-linux

          Cross porting code is no fun at the best of times, and few want to volunteer their time to deal with Microsoft or Apple’s endless shenanigans. So ports will also often have more issues too. =)

      2. I only use the stable/release versions of tools I am not developing, not only-auto-tested nightlies (because I need a stable CAD tool). Then they need a faster dev cycle. All platform links on their download page lead to 0.18 versions.

      1. > …what will likely be in the next version

        You mean in version 1.x? Muharrr…

        FreeCAD is great, but its development process is a mess and the UX drives tears into my eyes. E.g. Draft vs. Sketch – who decided that it is a cool idea to have distinct 2 workbenches” for that?

        The programmers do a great job, but they have no clue how to deliver a product.
        It is ok, as it is free, but it is so wasteful and sad.

        1. And how. I would love to have an alternative to proprietary 3D modeling tools.

          FreeCad is definitely not it.

          As user who has been using 3D modeling tools for some 25 years, eliminate all the “modes”.

          Seriously

          1. If you think about the modes as tabs on the ribbon, it makes it a lot easier to compare with other programs. I.e. when i click the ribbon tab “sketch” it is very similar to changing all the shortcuts to “sketcher” workbench….

          2. I think one of freecad’s advantages is that it’s extensible: anyone who wants can write a workbench and release it. There are something like a hundred different workbenches available. If your primary use case is civil engineering/architecture, you set up to use the relevant workbenches, and don’t even need to have the modules for meshing and solving finite element analysis loaded. I’d strongly prefer to not have a multi-gigabyte download that has every single option hidden somewhere in a submenu, when I can instead download just the parts I want and switch amongst them via workbenches.

        2. It’s very much not that the devs “have no clue how to deliver a product” it’s that the entire project is an after hours hobby for 5 people with day jobs. Attention and support is what will give FreeCAD the polish it needs to get it over the line. They are looking into starting a company for it or getting it in under an umbrella etc.

          If you give learning FreeCAD a real shot, you’ll find the workflow is actually really good and there are tons of ways you can tweak the UI/UX if you feel the need.

          My only complaints are about OCCT and not FreeCAD itself.

  2. I love the parametric way of doing things. Basically anything mechanical that I do is all FreeCAD, except for some postprocessing in Blender’s sculpt view before actually printing.

  3. Perfectly timed – I’ve just had to switch from Fusion because I was using it for parametric sketches for the laser, and it won’t output dxf for free any more. Took a bit of youtubing to get it sorted (and the spreadsheet-to-parameter hoops are _horrible_), but it should be easy enough to pivot to working that way.

    Good info about 0.19 too.

  4. Freecad is great as long as you never want to revisit a model. Multiple times now a minor version change has resulted in all of my previous model files failing to load, with the only recourse I can find being to re-craft them. Not my idea of time well spent.

    1. good to know. i’ve only done a few freecad parts. The commercial products seem to not have an issue moving forward in revisions. perhaps when freecad hits rev 1, consistency of early models will be maintained. at the moment there doesn’t seem to be a worry about turning on the box and the same version of freecad boots up… i cant say the same for fusion…

      1. I just got a proper working version of FreeCAD 0.18 locally at home last night- for some reason the same install in Kubuntu with KDE gave a very different setup than Mint 20, with Mint 20’s looking like every tutorial view of it I’d seen, and the Kubuntu version strangely massively different.

        I’d happily donate to the project if it gets another serious software contender on this market, I’m hoping I run into none of the problems mentioned here. Going to try the RealThunder fork.

        1. I was impressed with the appimage version 0.19. It ran with no changes on my debian stretch machine. Just download, right click and change permission to execute as a program and double click the icon…

          it almost felt like.. dare I say, opening a windows programs… lol.

  5. I really tried my best to do freecad… parametric design is the way to go, and OpenSCAD just doesn’t cut it. So cue a good two months banging my head on freecad. Managed to learn enough to make some fairly complex designs, but parts are always getting corrupt and the tree becomes a mess and sketches get unlinked and external features…yarggg. Completely possible I’m just using it wrong, but I was able to pick up OnShape in a few hours and it’s a breeze. I do miss the straightforward spreadsheet -> parametric value interface of FreeCAD, but overall it’s a much nicer experience. FreeCAD would sit and churn for minutes deleting a feature from a STEP file, and sometimes hours, until I’d kill it. Just so much pain.

    1. Sigh, as long as you attach sketches or datums to generated geometry you’ll break the model when changing features up the tree. It’s a well documented issue and the work flow that avoids it actually produces more well thought out and parametric designs.

  6. I’ve been learning freeCad (0.18 as that is what is in Ubuntu Linux repository), So far have had no problems generating simple parts. The interface seems fine to me, but then I am new to this. When I am satisfied with design, I export dxf, so my son can do his magic and laser cut my designs for me.

    Can’t say I’ve run into any bugs. So far it just works.

    My revision process is simply saving to a new file before working on the next ‘revision’.

      1. All of the buzz on this site for FreeCAD lately should be getting noticed by the development, hopefully it gives them a good kick in the rear to develop hard, hopefully get something much more stable and functional.

        We NEED a good alternative to Fusion 360 that works!

  7. I also love parametric, but had never got round to looking up how FreeCAD did it – so while I use it, I’ve always used it as a planner/doodle pad searching for the right parameter and shape selections for OpenSCAD… Watching this makes me think I may finally stop using OpenSCAD much at all, doesn’t look as much of pain in the learning curve as I was expecting.

    1. I haven’t used this so I’m not recommending it as a known good product, just something to explore, but freecad has an openscad workbench, so you can openscad to your heart’s content and then go mess with the result using the other freecad tools.

  8. Boo, Hiss, don’t sully appimages with comparisons to Windoze! Any windows install futz’s with the registry and can bork the whole install. Appimages are basicly entirely selfcontained – don’t like ’em just delete it nothing in your core system is at all changed (None of the windoze uninstall failed to replace program x’s variation on y with the previously installed version so the the whole system, or some other programs wont’ run any more)..

    That said I prefer source installs or full virtualisation (when sandboxing or testing safely is the primary goal – but I’ve become very comfortable with the qemu/kvm stuff so its ‘easy’ for me)

    1. I’ve used appimages before and I’ve not had any problem with them. Three (minor) drawbacks is they don’t automatically integrate into your menu system for GUI access, the ‘image’ is huge because it holds everything it needs to run the application, and then it will not automatically upgrade if a new one becomes available. Like I said minor. I guess there is another in that you first need to use the command line. So not newbie friendly or for mouse cripples.

      Going to download the .19 version this weekend for kicks. See how it runs in KUbuntu 20.04.

      1. Tried 0.19. Right away ran into first problem. Brought in a simple part designed in 0.18 — looks good. But … can’t get it to export DXF. I get “Export of this object type is not supported by Drawing module”. In 0.18 I just selected the sketch and exported it. But doesn’t work in 0.19. Probably something simple I am missing. Yes I did allow it to download the addon for dxf. Anyway, for now work with 0.18 until this problem is resolved.

        Ironically, I went to the ‘help’ forum, registered, tried to post this problem in a new thread and it crashed the back-end with a server error. To add insult to injury, it says I can’t post again, because I already posted and have to wait before trying to repost :) . Gotta love it.

        1. Forget about 0.18 and figure out why the dxf is not working for you in 0.19. Did you try setting use legacy export? As for the help forum, was that some sort of automated message? I’ve seen plenty of forum posts about dxf, never seen any discussion of what you describe. Did you try to post and attach your 0.18 file? 0.19 has been rock solid for me going on 2 years now. 0.19.

    2. If you choose to delete FreeCAD if you install with an Appimage, does it delete all your work created with it as well? I worry about upgrading and losing work this way.

      Whats the best way to get a permanent upgradable version 0.19 that doesn’t do this if you delete?

      1. The Appimage is just a single file. All self contained. You really aren’t installing anything. You download the file. Move it where you would like to access it from. Make it executable. Then just run it either from your GUI by double-clicking on it, or from the command terminal. That’s it. I made an icon on my desktop to point to it.

        So deleting the application file will not affect your projects which are located in any folder (of your choosing) on your computer. Hope that helps.

  9. FreeCAD developers are sending really mixed messages by both saying that 0.19 as a beta is more stable than 0.18 but still leaving 0.18 as the “stable” version and continuing to label 0.19 as a beta — and then complaining when people use 0.18. They say they aren’t done yet, but… when is software ever done?

    I’ve also been bitten by the “topological naming problem” making freecad designs unstable. Most of the tutorials I watched when I was first learning FreeCAD led me down the garden path by suggesting workflows that set me up for failure there. It’s not unique to FreeCAD; I’ve certainly run into topological naming instability sometimes in SolidWorks, but there I have been bitten less often; I think that its naming scheme ends up more stable in practice; not sure why.

    All this to say: I am really impressed with the solution to the topological naming problem that realthunder came up with. So far when I tried to provoke problems, it was remarkably stable with respect to modifications; so far it looks to me to have leapfrogged SolidWorks for model stability though I haven’t much time with it yet so it’s just an early impression. Also, he has implemented storing models as directories instead of zip files, which is awesome for versioning, allowing efficient storage in a git repository. Lots of other innovations too!

Leave a Reply to MacCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.