HACKER Q&A
📣 ActorNightly

How does modern FreeCAD compare with Solidworks?


Its been a while since I have touched Freecad, and would like to go open source for my Cad projects, but the last time I used it it was severely lacking in features compared to Solidworks.

The main thing Im looking for is parametric modeling. The use case is basically sketches with constraints -> parts -> assembly with constraints -> drawings that show driven dimentions.

I have the time to learn it, but I don't want to be writing custom python scripts to do the above.


  👤 slabity Accepted Answer ✓
FreeCAD has improved immensely over the past 2-3 years in terms of stability and features. A decade ago it was not uncommon for me to experience crashes from it randomly losing its GLX context or the constraint solver segfaulting for some reason. Now it's rare for it to crash at all for me, though I still run into a lot of constraint solver errors that are a pain to deal with.

However, despite the recent improvements, I still cannot recommend it for new users compared to commercial solutions for the sole reason of the Topological Naming Issues: https://wiki.freecad.org/Topological_naming_problem

This issue has been probably the #1 problem I've had with FreeCAD since I started using it. And though I've learned how to design parts to get around the problem in most situations, it's a huge hurdle for newcomers to understand and get around. Luckily there's a fork that fixes a significant number of the issues: https://github.com/realthunder/FreeCAD_assembly3 and https://github.com/realthunder/FreeCAD

I've also heard of Ondsel, which is supposedly a much more user friendly version of FreeCAD that also includes some fixes to the issue: https://ondsel.com/

EDIT: Here's actually a better read of the topological naming issue, what's being done about it, and why it's difficult to fix: https://ondsel.com/blog/freecad-topological-naming/


👤 mitthrowaway2
I used to use SolidWorks. Now I use FreeCAD as a complete replacement.

Two tips:

(1) use RealThunder's Link Branch (https://github.com/realthunder/FreeCAD/releases). This fixes one of FreeCAD's fundamental problems.

(2) use the "Part Design" workbench. That's the one that is built around the SolidWorks workflow: sketches with constraints -> parts, etc. There are other workbenches for other workflows; you might need to hop over to them sometimes but you'll want Part Design for the most part.

FreeCAD still hasn't settled on "one correct way" to do assemblies of parts. There are various plugins that each offer their own take on how to do it. You'll have to pick the one that you like most.

You don't need to use Python. You can use spreadsheets, equation-driven dimensions, and so on, just like SolidWorks. You can make dimensioned drawings using the TechDraw workbench, which gets better all the time. (Also useful for making DXFs to export to a waterjet or laser cutter).

The documentation is sparse, so youtube demonstrations are the clearest way to learn. I like JokoEngineering's channel.


👤 SOLAR_FIELDS
FreeCAD is good for simple stuff. When I had to switch is when I was doing anything intermediate. The following are examples of operations that are totally trivial in Fusion360 that are nearly impossible to achieve in FreeCAD without either rebuilding large portion of the model or some other destructive operation, or gave incorrect results, or was difficult to work with the end result:

- adding a chamfer (such as when you need to add a 1 degree slope in an injection mold

- more complex spatial Boolean operations

- simple operations for manipulating entire models by pushing or pulling subsets of them

My use case was designing simple parts for injection molding (rudimentary electronics enclosure for outdoor use). Not in any way what someone would consider pushing the limits of what modeling software can do.

Overall, I cannot unfortunately recommend the software to others at this time unless you are 100% sure that it will satisfy your use cases. Or else you will end up in the same situation as me, someone who wasted hours and hours learning this tool and wanting it to be the tool I could use, only to find out it’s just straight up insufficient for my use case.


👤 Fwirt
I've been using it to do some basic 3D printed designs, and it has all of the features you mention. I haven't had to write any Python so far.

The main issues with FreeCAD are those common to most open-source software applications like GIMP. You can accomplish almost anything that you can with professional software, but the UI is obtuse, at times buggy, and the process is going to involve way more steps, plugins, and hidden menus.

I use it because it's one of the few CAD packages that runs on MacOS and has a viable free tier. Most other CAD free tiers are crippled or have bizarre licensing agreements.

If you decide to give it a shot, I highly recommend using realthunder's branch, which massively improves the topological naming problem issue that the main branch struggles with. It also includes the plugin that adds the "assembly with constraints" feature. https://github.com/realthunder/FreeCAD

This YouTube channel has some great FreeCAD tutorialss. FreeCAD operates very much under a TIMTWOTDI philsophy. https://www.youtube.com/@MangoJellySolutions


👤 dpifke
As a long-time Solidworks user (mostly for hobby projects) who switched to FreeCAD again recently, I highly recommend watching the tutorial videos from "MangoJelly Solutions" on YouTube: https://www.youtube.com/playlist?list=PLWuyJLVUNtc0UszswD0oD...

In my experience, a lot of what I used to think were limitations of FreeCAD turned out to be me just not knowing the FreeCAD way of doing things. More importantly, that FreeCAD almost always has more than one way of doing things, so if something seems too hard, you need to go digging for an alternative workflow.

The videos start kinda slow for folks who already know how to do parametric modeling, but it helps to put yourself in a beginners' mindset and pretend you're learning CAD for the first time. I found them a lot more useful than the documentation.

I should note that FreeCAD as of 0.21 is a lot more stable than previous versions. The last time I tried to switch (2-3 years back), I gave up and just paid for my annual SolidWorks renewal after the third time I lost several hours' work due to a crash. With the latest version, I don't think it's crashed on me once.

Where I still miss SolidWorks is when doing complicated assemblies, but I'm still getting to know the various assembly workbenches to figure out which one works best for me. For basic part modeling, I think I'm coming around to actually preferring FreeCAD now. (It's also a huge plus not having to reboot my Linux desktop into Windows, although I'm still keeping the Windows partition around for gaming.)


👤 contingencies
FreeCAD suffers from a serious case of open source disease.

In theory it can do a lot. In practice its interface is 'unique', its cognitive model is a dog's breakfast, its CAM offering is weak, its command line automation is brittle and poorly documented, and you are going to spend more time solving problems for the code than for yourself.

I have directly managed teams of CAD people for most of the last decade. Mostly they use Solidworks, which has its own problems (exceptionally broken namespacing, poor performance especially for cables/fasteners, horrific RCS/VCS offering, ridiculous electronics offering, weak command line support, etc.). Personally, I often use OpenSCAD for simple models. I virtually never use FreeCAD, with few exceptions.

IMHO: (1) Blender is better modeler than FreeCAD in many cases, especially with some modern extensions such as https://www.cadsketcher.com/ https://blenderbim.org/ https://github.com/kevancress/MeasureIt_ARCH (2) It is far more useful to learn Blender than to learn FreeCAD, since that will allow you to achieve animation, parametric models, point clouds, geospatial modeling, etc. where FreeCAD is basically functionally limited to working with solids and the output of conventional artifacts such as STEP files and drawings. (3) Drawings themselves are becoming largely outdated as the leading edge of industry seeks to move from "CAD->drawing->CAM-based production" to "CAD->CAM-based production" to finally rid itself of human errors of interpretation. This is of course a long term goal, and will never wholly succeed, but the migration has begun and the writing is on the wall.


👤 nelsonic
@ActorNightly for the use case you describe FreeCAD will serve you well. I recently spent 200h learning and using FreeCAD for an architectural project and once over the learning curve it’s great! Devs are super responsive on forum & GitHub. Definitely not as “mature” as Solidworks but easily “good enough” for 95% of use. If you get stuck, post on the forum and you’ll get help usually within a couple of hours.

👤 londons_explore
I've used both FreeCad and solidworks for hobby stuff.

Solidworks will take you perhaps only one quarter of the time to produce parts of similar complexity.

In both you can get quicker with experience. Both have far more features than you need, yet are missing the ability to make some shapes you can imagine yet cannot find a way to model.

Use Freecad if you care about opensource software. Use solidworks if you just want an STL file without hassle.


👤 firefly_owl
I was looking for a SolidWorks alternative and I found OnShape (onshape.com), works pretty well but is quite expensive (but it has a free plan where all projects are public) If someone knows of a valid open source, I'm glad to hear it!

👤 ortusdux

👤 jakeogh
I have used build123d to make a few parts recently, and it's a joy to use once you get the hang of it: https://github.com/gumyr/build123d https://github.com/gumyr/bd_warehouse

👤 sumnole
It pales in comparison but it's still the best free option besides Fusion 360, which I'd recommend if you don't mind the limitations of the personal license.

👤 gaze
There are no open source CAD systems that are near the maturity of commercial systems. FreeCAD is still severely lacking in features, though it may still meet your needs.

👤 xdennis
Not an answer to your question, but related. When I got into 3D printing, I started using FreeCAD. I found it horribly difficult to use. I switched to Fusion360, which is a joy to use, but it doesn't play nice. You can't collaborate with others, can't do commercial stuff, can't use more than 10 projects...

I've since started on my own project. I'm a big believer in the idea that language is the most versatile way of working, so it's one of those editors where you describe the model in a programming language (TypeScript in my case). It's not ready for use yet though.

It uses C++ on the backend in order to use GCAL (and its fast 3D boolean operations). The visual editor is in Electron, with Three.js for the 3D rendering.


👤 constantcrying
FreeCAD has all the features you need and I truly do appreciate it for its ambitions. But it is pretty much all around terrible software. On every metric, except the license it falls behind commercial offerings by a significant margin.

Something like Fusion360 or onshape is a pleasure to work with, with a well designed interface, great stability and comprehensive features. In my experience using FreeCAD meant significant amounts of pain and wasted time, even if it stable. If you are working with multiple parts FreeCAD becomes quite experimental.

You can definitely achieve what you want with it. But it's up to you whether the investment in time, effort and frustration is worth the license.


👤 bluGill
OpenSCAD is the big name in parametric modeling, but it is only parametric which is often not what you want (you often want to drag an object around and then have a solver figure out the correct parameters).

👤 Marthinwurer
I compare my use of FreeCAD to Stockholm Syndrome. The UI is clunky, fillets and chamfers are inconsistent at best, and sometimes things just break. Larger models are difficult at best. However, it has been getting better. Toponaming is finally being fixed, and the UI is getting cleaned up. If you're using CAD professionally, I wouldn't recommend it. Honestly, I wouldn't really recommend it unless you're willing to learn a lot and figure out how to deal with all the ideosyncracies. But still, deep down in my heart, I love it.

👤 sircastor
I’m a FreeCAD devotee. I switched after Fusion’s terms changed a few years ago. I regret nothing.

It does require some patience. Not everything is obvious or intuitive, but I think this is a matter of time. I think FreeCAD is going to experience the same kind of growing up that Blender did, quite shortly.


👤 zihotki
My biased opinion as a DIY-er. Solidworks and other commercial CAD's are more polished and friction free.

Freecad has too much legacy and quite verbose.

The things may change a bit this/next year when a solution to the topological naming issue is released. But UX is still a mess.

There is also an Ondsel, freecad based but opinionated. I find it ATM more user friendly.

Also keep in mind that freecad doesn't support master sketch. So you can't pick sketch lines for an extrusion or other operation. I found this quite confusing in the beginning. But this is also a subject to change this or next year.

If Freecad doesn't fit you now I'd recommend to check it a year later after v1 release.


👤 incomingpain
I took up CNC last year, I know solidworks well, onshape is my favourite. Kirimoto is my favourite CAM.

I gave freecad a try because it has CAM built in. I grabbed the latest stable snap version.

My main gripe was random crashes, naturally nothing saved.

Quite a few non-intuitive processes, or perhaps gotchas that I never got used to. The learning curve is suspiciously high with freecad. The documentation seemed to have issues or not explain things properly.

Overall, I stuck with onshape + kirimoto.


👤 remram
I keep running into weird limitations. Sometimes I can fillet an edge, sometimes I can't. Sometimes I can fillet any edge, but once I fillet one I can't fillet any other. With the "topological naming problem" that makes it hard to make changes to anything but the last step, it has been frustrating, but I hear it's improving all the time.

👤 pyb
It has all the features you need, but due to a lack of manpower, it's really lacking polish compared to Solidworks. "Free for personal use" Commercial CAD is probably better if you're learning. Once somewhat proficient, you could consider switching to FreeCAD.

👤 thebeardisred
Tragically, Freecad still has a few hundred million dollars less in funding year over year compared to Solidworks.

👤 fusslo
Sorry I dont know muchj about the parametric modeling in freecad. Ignore the rest of this comment, it's just a rant :)

I've been using freecad fairly heavily (hobbiest level heavily, so nights/weekends) for the past year and a half.

I can't recommend freecad for any project you'll put more than 10 hours, or 3 iterations into.

References suck in freecad. Sketches/constrains are okay, as long as all your references are in the sketch. If they're in another sketch or body, forget it.

Lets say you want to create two parts where a polar pattern of bolts align between the two. Top has a hole and counterbore, bottom is threaded. The most efficient way of doing that is drawing a copy on a piece of paper and write down the dimensions. then create two sketches on the two bodies and enter those dimensions. Which is dumb. Wouldn't it be nice to reference a constraint/dimension in another sketch? or use a master-sketch like fusion360? not in freecad.

freecad does have a reference system, but they're named references that are a pain in the ass to remember. And, there's no point since sketches lose their faces way too often. Modifying a sketch in the middle of the body history means risking all the other sketches just coming off the body and leaving you with a mess.

That said, i've used freecad to design fairly complicated assemblies that have electronics, gears, motors, bearings, and moving parts. iterating on the design just requires a lot of rework.


👤 peteforde
Strong vote for using Fusion 360 from me. All of the OSS CAD apps I've tried have had terrible UI/UX. FreeSCAD nightmares still haunt.

👤 xspiral
I get where you're coming from. FreeCAD has come a long way recently, especially with the realthunder branch which improved a lot of the parametric modeling features. It's still not as polished as SolidWorks, but for open source, it's impressive. You might not need custom scripts for basic stuff, but it's definitely not as seamless as SolidWorks. Worth checking out if you're okay with a bit of a learning curve and occasional workarounds.