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.
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/
Or wait till v1?
https://github.com/realthunder/FreeCAD/releases
I highly recommend Link Branch, it's full of all sorts of usability improvements.
The fix is still being worked on for the next mainstream FreeCAD release.
Which is not to say that Ondsel 2024.2 is a bad way to experience those things, or that the Ondsel Lens (cloud collaboration suite) is not interesting, because it surely is.
It’s just to say it is only much more user-friendly if you’re not already using the 0.22 dev releases (that are considered to be generally as stable as 0.21 and are in wide use)
(I upvoted you for the rest: I too am waiting for the TNP mitigations before I recommend it to less technically-focussed people)
[0] https://news.ycombinator.com/item?id=40430893
Deleted Comment
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.
Also UX of Ondsel is much better and close to the Link Branch version by Real Thunder.
It's important to mention that Freecad doesn't support master sketches at the moment. So you'll need to create many smaller sketches based on geometry or parameters to make a complex part
At least in Link branch, my workflow is to name the first part in my document "Layout", and fill it with master assembly sketches, drawing cross-sections of an entire assembled product. Then I create subsequent parts which all import and reference the geometry in those sketches, and never reference other parts. This lets me do a top-down assembly-driven design, which is very fast and easy to modify later on, and freely delete and replace parts without breaking references. FreeCAD supports this workflow via shape binders, and Link Branch speeds it up greatly by automatically creating shape binders as needed.
Great to hear that mainstream FreeCAD will soon support those improvements, but I'll keep pointing people to Link Branch until those improvements actually get released.
It looks like mult solid bodies have been merged to main, but I'm not sure yet about the ability to do patterns on arbitrary objects, like other patterns.
If that makes it to mainline, I'll probably switch right away.
- 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
I now think of most open source projects as just as good as closed-source at 1) building the functionality and MVP UI/UX, but that there is more friction to communication overhead to do 2), as well as less incentives (smaller carrot, smaller stick). To decide on specific priorities, bring in a designer (who might be non-technical) that can fully understand the context, and then potentially change or move around a bunch of code, is not something that "just happens organically by people scratching their own itch"
I think projects that are high profile like blender have done better here over time, often when there are well resourced and governed foundations or companies backing them. Or occasionally an OSS author will do this. Though I think that's the exception rather than the rule, and certainly requires a larger breadth of skills that extend beyond pure technical ability.
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.
https://www.tootalltoby.com/Leaderboard/