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.
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/
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.
- 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.
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
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.)
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.
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.
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.
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.
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.
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.
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.
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.