Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
FreeCAD: Open-source 3D parametric modeler (freecadweb.org)
143 points by _benj on Feb 4, 2022 | hide | past | favorite | 71 comments


I have pretty mixed feelings about FreeCAD, having used it for 100+ hours across a few different projects.

It’s wonderful to have a open-source alternative to the expensive CAD software that muscled its way into a near monopoly in academia/industry, but it suffers from some really inexcusable design problems, on a fundamental level. As it is, I don’t think it’s really usable as a serious tool for creating complex assemblies.

I’d be curious if anyone here has managed to use it effectively for a large project (something real-world, not just showcasing FreeCAD).


> some really inexcusable design problems, on a fundamental level

Can you be more specific?

I understand that the Topological Naming Problem is big (discussed in https://www.youtube.com/watch?v=QSsVFu929jo), but as I understand it this is being fixed in the RealThunder branch (https://bit.ly/3iBzQly), and fixes may be flowing from this into FreeCAD 0.2.


A fundamental problem is that OpenCASCADE, despite being the most advanced open source CAD kernel, does kinda suck. It's single-threaded (FreeCAD has it on the main thread so any long operation blocks the entire UI) and it's… rather buggy.

Recent fun example I've encountered: doing a fillet in two places at the same time can result in either an unhelpful "resulting shape is invalid" or a crash inside OpenCASCADE, depending on the selection order (!) — https://github.com/realthunder/FreeCAD/issues/202


I have noticed that fillets in particular are a weak point for FreeCAD.


My complaint is that it is extremely modal and as a result not very friendly, not intuitive even to a relatively experienced CAD user.

I’ve used a variety of CAD and it just really didn’t click. I know it’s open source, so not going to be as UX oriented, but still.

I would love to be proved wrong. If there’s something I’m missing please share.


I've experienced that user unfriendliness too. I'm not at all an expert in this, I'm a FreeCAD newbie that has been trying to decide whether to invest in learning FreeCAD or not.

I keep wishing that FreeCAD had the UI polish of Blender, and ask myself if Blender can do enough of the CAD workflows that it makes sense to learn Blender instead of FreeCAD.

I keep reading that technically speaking, mesh-based modelers are woefully insufficient for CAD tasks. But then I see videos like this, which suggest that Blender can handle most modeling tasks, with the main exception of bevels and chamfers: https://www.youtube.com/watch?v=n5SehCbhxFs


Mesh modeling in blender has similar downfalls to OpenSCAD. When you’re designing a bit of precision equipment (or what have you) you don’t want your circles turned into high degree polygons.

Can a lathe turn a polygon? Can a drill drill a polygonal hole? Maybe you can machine a polygon on a fancy CNC lathe, but you certainly wouldn’t do so for a turbine shaft.

Also for less precise things, say construction, you care about dimensions. Select an arc to get it’s radius for instance.

This is why design for traditional construction techniques best done in boundary representations: https://en.m.wikipedia.org/wiki/Boundary_representation

I will concede that one can easily create nasty insoluble problems with boundary representations if not familiar with the limitations of splines, but this only really is a problem with curvy things like ship’s hulls and aircraft.


There is no downside in my opinion to learning a bit of OpenSCAD, FreeCAD, and Blender and reaching for the right tool when you need it. Personally, I have found the UI/UX of FreeCAD painful to use, but it is sufficient for most of my CAD needs. And after Fusion 360 crippled their hobbyist licensing, I don't really want to get in bed with any of the non-free CAD tools.


I found OpenSCAD to be very friendly for parametric designs, but after a while I switched to the SolidPython wrapper as it was more flexible.

However, I'm hunting for a better way to create 3d models via code (Blender Python?) because 'extrude_along_path'->SolidPython->OpenSCAD->stl export simply could not handle my model.


I wouldn't consider OpenSCAD real CAD. It doesn't aid you in design really, it's just a language to represent the design you already have in your head.

Without constraints, you're still doing a lot of stuff directly rather than declaratively, and without a GUI you're mostly limited to geometry you can imagine, because doing anything by trial and error in OpenSCAD takes forever.

The whole thing feels very open loop, like it's meant to be "imagine it>reason about it> code it" rather than "vauge idea > iteration > verify"

I could see it being useful in some cases for high level professional designers though.


The one thing I lack in OpenSCAD is dimensions: there is no good way to add any.


OpenSCAD is great in some ways, but the fact that everything gets boils straight to triangles drives me nuts. If there were an OpenSCAD equivalent to work with boundary representation models I’d have found my CAD nirvana.


Would this fit the bill?

https://solvespace.com/index.pl



CadQuery should be better as it is using the OpenCASCADE cad kernel (same as FreeCAD) instead of a simplistic ad-hoc thingy.


I honestly think CadQuery has more promise as a way to get open source 3D components and modules to the mainstream, because it's fundamentally code, and can be reasoned about as such (diffed, merged, blamed, parameterised, modularised, reused and tested). Putting SolidWorks or FreeCad file into source control is a very different thing.

Also, as it's natively Python, you have all sorts of library support, up to and including things like numpy.


On the other hand, sketching with constraints is very intuitive. Making interesting shapes that aren't trivial CSG demos by fiddling with code just doesn't sound that great.

The future dream mCAD for me is something where extrusions and fillets and other 3d stuff is code, but sketches are GUI edited.


Thanks for pointing this out! Looks pretty useful, will give it a shot.


Did you find the Part Design workflow? It took a while for Freecad to click for me but it ends up being fairly similar to other CAD programs in terms of workflow.


Topological naming issue is the biggest problem that they should address immediately. Otherwise they can’t call it a parametric drawing tool. Period.

I discovered the issue in a middle of a design where I tried to change what I thought was a parametric piece. It unrecoverable blew up everything.

I kind of lost trust in it after that. I ended up making a backup for every step on top of the regular backups, like: piece_name-step-1… etc.

I discovered the real thunder branch too late.


Maybe they should just scrap everything, make RealThunder lead dev, and start over from where he is...

I'm sure there's some great stuff in mainline though that deserves merging.


Nothing large(I'm not a mechanical guy, this is all incidental work) but I use the RealThunder branch at my job, and I'm building some furniture that I don't think I could ever have done without the software.

I've never used any other CAD though, so my evaluation might not mean much, to me, just having CAD at all completely changes everything, regardless of whether it's good or not, when your reference point is LibreOffice Draw and pen+paper.


Personally I also ran into some inexcusable bugs on my first try of FreeCAD recently. Sadly I don't have the link anymore, but the problem was offsets being incorrectly calculated in certain cases, and I found it to be a long standing bug in their issue tracker. There wasn't an easy way to work around it so I had to look elsewhere. Too bad, because FreeCAD did seem quite fine otherwise (Note: I never used SolidWorks, and my demands are amateur level).

For programmers I highly recommend OpenSCAD or Cadquery, which let you write code to build your models instead of using GUI. With this approach, "parametric" comes naturally, and so you don't need to learn a special constraint system, it's just your code (and a bit of math).

Cadquery was a bit hard to get started with being essentially a bunch of python scripts, but it's also more versatile and more powerful than OpenSCAD, and has a good collection of examples in their docs. OpenSCAD is still great for e.g. building simple models for 3D printing.


Even for simple models I've found OpenSCAD lacking. In 3d printing it is quite common to add chamfers and fillets to smooth objects. This is an extraordinarily amount of work in OpenSCAD, let alone the render times that increase significantly.


I agree. I'm working on a project to finish my basement, and decided to use FreeCAD for it. It mostly worked, but did weird things often enough it was frustrating. Often the solution was to look up on the forums for a hack to do things in a certain order and it would work. Sometimes there was no solution, like trying to print a floor plan of my 3d model always did weird things with the scale and the labels. I could mostly get it to "work", but really lacked polish that made using it more of a chore than I'd like, and I don't feel like I got the full power out of using it.


Curious if you have compared to SolveSpace?


Last time I used SolveSpace, what I hated the most was how the undo button was near useless.. and https://github.com/solvespace/solvespace/issues/91 is still open :/


Undo/redo works great and now has a 100 step history.


Wow, that looks like what I may be after!


I will give the latest version another go.

I last used it 3 years ago, and I agree, I found it difficult to use, and worse, it would frequently corrupt the model, or confuse the object hierarchy to the point I would have to start again.


I'm now using FreeCAD for all of my mechanical design work. It's about 10% as productive for me as SolidWorks (although I'm still climbing the learning curve), which I regard as a massive achievement for open-source software.

It's definitely got rough spots, especially the tendency for models to sometimes become corrupt and flip inside out. But overall I like it, and I can make do with the problems.


I've used it a couple of 100 hours to make 3d models for 3d-printing.

Once you get used to it it is possible to do complex designs that can be edited afterwards. In the beginning it felt like every change I made would break the model so much that I couldn't repair it again.

Now when I start a design I always start with a spreadsheet and add variables with measurements that I use in the model. Afterwards with a careful designed model I can change the variables and the model react to it in a good way. It took me a while to figure out this way if working. You learn what part works and what parts to stay away from.

That said. The GUI sucks. It crashes a lot. There are lots of weird bugs. The stable release 0.19.3 is very unstable on my computer. Even so it's a great tool for me and I'm grateful of the work put in by the developers!

The unreleased 0.20 is so much better and crashes a lot less. I wish they would just release it and be done with it.


I second your experience with 0.20. It's much more stable.


I have spent weeks using freecad to build various things. Then I tried fusion 360, (closed-source, free but nerfed for non-commercial use).

The usability differences are insane. What took me hours in freecad takes minutes in fusion 360. Fusion 360 just does what you expect, while freecad throws nonsensical errors and randomly breaks your whole model if you edit something you've already done and it takes hours to fix.


Looking around here, there's not a lot of FreeCAD fans I guess :)

I use FreeCAD to create custom parts for my 3D printer. I also strongly prefer Open Source solutions. They won't change terms, add spyware, or compromise the design because of business needs. A quick find|grep of my CAD directory says I've made a couple hundred designs.

FreeCAD is definitely rough around the edges with bugs and stability. But for my needs, it works really well. I can take measurements and transpose a design in my head to a design on a computer. It's not AutoCAD or Fusion360 but I don't need it to be. It's an open tool that's helped me solve a lot of problems.


I also use FreeCAD for my 3D prints. It works fantastic for that. I was officially trained to use SolidWorks in university and FreeCAD reminds me a lot of that.

Two quality of life tips: 1) don't make sketches on faces, instead create a plane at the faces height/angle. I don't know why but this single handedly stopped my models getting corrupted. 2) Do fillets at the end. After you saved a backup.

Then it works great. Can't be happier, really and looking forward to it's future.


I can do you one better, create a master sketch: a sketch that you don't pad/revolve/etc to form a 3D object. All your future sketches should attach to references on the master sketch. Make the existing object/shape invisible so it's easier to work only with the master sketch.

This mostly fixes the topo problem and as a bonus, it helps organize your thoughts into one sketch up front.


It's pretty clear why your sketch plane trick works: It makes it so that you never depend on previous geometry. Instead, all of your bodies are defined as floating somewhere in space, not "attached" to anything else


I've no experience with any other CAD tool, and, over the past 5 years, I've tried 4 times to learn FreeCAD. 3 times, I eventually gave up: the learning curve is very steep.

Now on my 4th try, it's finally starting to stick a little bit. One of the reasons is that Fusion 360 decided to reduce the functionality of their free version. Because of that many people flocked to FreeCAD and there has been an explosion of Youtube tutorials. They require a lot of time, but they do help.

Still, there are a lot of infuriating UI issues. In the Draft workbench, you have a set of amazing option to select just the right item of your design (the middle of a line, or the closest endpoint, or a point perpendicular etc) but in other workbenches, none of that exists, and you need to move your mouse with pixel precision to select a vertex instead of a line connected to it. Sometimes things also just don't work, and you need to try a bunch of workarounds to get what you want.

In the end, I settled on the following solution: I use it the way others use OpenSCad, where I construct my design in Python. Even that has its own issues (documentation is decent but not great), but at least, I can do things with pure math instead of a cranky UI.

I could, of course, just switch to OpenSCad instead, but one of then I'm fully committed to using only scripting, with no ways to do final postprocessing steps with a GUI.

For all its flaws, FreeCAD is the best you can get in open source form, and some people can do amazing things with it. Some of my issues are almost certainly due to never having used a CAD tool at all.

Once my first complex design is complete, I do want to try one of the commercial tools. Most people migrate from commerical to FreeCAD, not very many do the opposite. I'm intrigued by what it will be like.


Pro Tip:

Use the Realthunder version of freecad in an AppImage container. It seems to be more stable.

https://github.com/realthunder/FreeCAD_assembly3/releases


I can't wait to see FreeCAD or something like it mature into something on the level of Blender. The problem seems to be that other free-ish CAD software exists out there, so there's not much demand. Another problem seems to be that overlap between people interested in solid modeling and people able to program for solid modeling is very small.

For sculpting, Blender actually does pretty well. And for parametric solid modeling, Fusion360 has a free license for hobbyists and startups. For programmatic non-parametric modeling, there's OpenSCAD.

But like others have said here, FreeCAD is lacking a lot of polish, and that makes it pretty hard to use.


> For programmatic non-parametric modeling, there's OpenSCAD.

There is also CadQuery, which claims to have fundamental technical advantages over OpenSCAD: https://github.com/CadQuery/cadquery

I've tried CadQuery and had a rough time of it. I haven't used OpenSCAD at all though, so I can't compare.


OpenSCAD is very lisp like. It's basically just a series of functions that operate on primitives. I tried it out and didn't like it very much. Mostly because debugging your model this way isn't super efficient.

CadQuery should be better, but they refuse to just release a standalone pip library, instead everything is distributed through anaconda which just breaks my existing library setup. Technically you can use miniconda I guess, but in reality if I'm going through that much trouble to set up software, it's probably just best to move on.

I found FreeCad easier to install and use frankly -- especially the RealThunder AppImage version.

https://github.com/realthunder/FreeCAD_assembly3/releases


I currently design my FreeCAD models by writing them in Python. That way, I don't need to learn yet another base language, and I still get to use the FreeCAD GUI for manual refinement.


Note that almost by definition a programmatic interface to cad makes it parametric. The parameters are now in the program.


Parametric CAD means something more than just having parameters you can tweak. Like another comment said, having a constraint solver is key, and is much more complicated. Being able to say "this line must be tangent to this arc" or "this part must be concentric / mirrored / slotted to that part" is central to parametric modeling, and is not the same thing as merely having variables


The other (crucially) important part is that a change to a parameter only needs to cause recalculation of effected objects. With openscad, you have to re-run the entire program.


But it doesnt have a constraint solver, so you'll be doing some math here and there.


Past related threads:

FreeCAD 0.19 - https://news.ycombinator.com/item?id=26533384 - March 2021 (60 comments)

FreeCAD Simulator - https://news.ycombinator.com/item?id=25098981 - Nov 2020 (13 comments)

FreeCAD BIM development news - https://news.ycombinator.com/item?id=24951311 - Oct 2020 (23 comments)

FreeCAD: A free and open source multiplatform 3D parametric modeler - https://news.ycombinator.com/item?id=24513340 - Sept 2020 (268 comments)

FreeCAD on Raspberry Pi 4 - https://news.ycombinator.com/item?id=22347385 - Feb 2020 (36 comments)

FreeCAD BIM development news December 2018 - https://news.ycombinator.com/item?id=18800484 - Jan 2019 (22 comments)

FreeCAD 0.17 “Roland” released - https://news.ycombinator.com/item?id=16790814 - April 2018 (58 comments)

FreeCAD Arch development news - https://news.ycombinator.com/item?id=14480294 - June 2017 (44 comments)

FreeCAD 0.16 release notes - https://news.ycombinator.com/item?id=11533435 - April 2016 (75 comments)

Free CAD-CAM Software Demos - https://news.ycombinator.com/item?id=9893631 - July 2015 (1 comment)


For simple stuff I think it's pretty good. Though it falls apart when you have topological changes in the tree.

For more complex stuff I'm tempted to go buy Alibre Cad. It's $150 for personal use / no subscription.

https://www.alibre.com/atom3d/


Alibre looks quite nice, and it certainly refreshing to see a non-cloud non-subscription base software!


I first used FreeCAD around version 0.12 for designing simple parts for my 3D printer. At the time, it was very buggy and would reliably crash or corrupt your model if you ever tried to go back and edit a previously specified dimension or even just clicked the wrong thing. I ended up starting a new model from scratch whenever I needed to go back and change something.

I started using the latest versions (0.18, 0.19) again recently, and the experience is dramatically better. I’ve designed about a dozen distinct models and have been able to make major changes to a part without any crashes or bugs, and a number of much-needed ergonomic improvements have made the part design process much quicker and less frustrating. Thanks, FreeCAD devs! Your efforts are greatly appreciated.


I would love FreeCAD to be a viable alternative to proprietary CAD tools. I'm a web developer so I know nothing about CAD but I recently joined CERN and I'm now working on a PLM to handle our 3M+ CAD documents (yes, building the LHC is huge. And there are even bigger things coming). As you may know, CERN loves open source and it's heartbreaking to have to pay dozens of thousands of euros to have Catia, AutoCAD and Revit available for our mechanical engineers, so what I'm wondering now as someone who never used a CAD tool is, a free alternatives so much behind? Looks like when you're building machines like the LHC, the answer is yes.


Hi! Random plug: we're building an OSS data platform for 3d data called Speckle [0]. Currently focused on architecture, engineering and construction, but we already have integrations with Revit, AutoCAD, Rhino, etc. - it might be worth a look if you're interested, and perhaps some bits and parts can be adapted for your PLM.

[0] https://github.com/specklesystems


Also check out BlenderBIM (I work on the umbrella organization it is part of) it has really comprehensive covering of IFC (using what they call native IFC authoring) including things as FM, hvac systems and 4D. It's fairly new so probably rough around the edges.

Regardless, invest a good deal of effort in open standards such as IFC. The proprietary tools really leave you in the dark about long term maintenance and data ownership.


While I like this project, freecad is badly in need of a UX overhaul.

For example things being split into X workspace that you have to constantly switch between (each with their own toolbar layout) is not a good workflow.


I love the idea of FreeCAD so much that I committed pretty much a month to doing all my newer projects in it, watching tutorials, etc… and in the end had to give up and go back to Fusion 360.

I’m not some long term die-hard F360 fan either, just a casual hobbyist maker who uses all sorts of tools (I still regularly just whip things up in Tinkercad for the printers) but FreeCAD is just so damn hard to get things from your head to the screen. It feels like you’re constantly trying to fit square pegs into round holes just to do basic things.


I don't trust Autodesk and I bailed from F360 when they crippled the hobbyist version, but I ended up having to go back to a single user subscription for now.

CAD/CAM programs are a "hard" type of software to write. I view them as similar in difficulty to free operating systems in technical difficulty and scope of the project. Before Linux there were only a few options for Unix-like OSs (Minix, Coherent, etc), but none of them particularly good for much except for academic purposes. Real work still took a licensed copy of Unix.

There still hasn't been a similar project to produce a CAD system (not just 3d modeling, but parametric CAD) created that's open source. There are some great programs for 2d cad, for running machine tools and CNC routers, but beyond things like FreeCAD there's nothing available in the open source space that's comparable to even the cheapest commercial offering.


Completely agree with everything you're saying. It's a tough problem to solve, and I'd love something like FreeCAD to actually be able to complete with Fusion 360. I think with the explosion of the hobbyist maker scene and how common 3D printers are getting it's inevitable that something rises up eventually, but who knows.


Have you tried alibre cad? I hear it's a pretty good alternative to F360.


As a CAD system it's okay, I've tried it. However, for mechanical design and manufacturing integrated CAM is a huge advantage. CAM is really a related problem in open source to having a good CAD system... it's just about as complicated (if not more) mathematically and there's a big advantage in terms of complexity of the software and ease of use if CAM is integrated with CAD.

Lots of people have noticed this with Fusion 360... the ability to switch back and forth between workspaces, from Design to manufacture(CAM or 3d print or whatever) is huge.

So if all I needed was CAD, I'd consider Alibre or Rhino. For CAD with integrated CAM, there's no alternative to Fusion that doesn't cost over $10k per seat. Which sucks, because it's an Autodesk product and a subscription service rather than stand alone software.


I started with FreeCAD and got pretty good at it. it's a fairly capable system although the UI can have some issues.

At some point I started hitting up against a collection of problems and finally paid for Fusion 360. It was completely transformative. I'd be pretty impressed if FreeCAD can catch up to where Fusion 360 is today (in basic shape modelling, advanced shape modelling, and mesh modelling, as well as CNC toolpathing).


i've used FreeCAD but didn't like the UI so then I switched to OnShape. I used OnShape for a while but then switched over to Fusion360 because the vast majority of the people in my hobby ( amateur rocketry ) use Fusion360. Using the same tool as everyone else really helps when asking questions and reading tips/tricks.


Yeah. A major "cost" of CAD software is the investment in learning it, which is made much cheaper by having others learn it whom you can interact with, an open community to ask questions of, etc.

That's part of why it hurt so much when Autodesk crippled the hobbyist version of Fusion 360. All the stuff it can't do now no one can help you learn.


I didn't use Fusion 360 back when the hobbyist version was great. I actually pay $500/yr for Fusion 360 (it's one of the only pieces of software I use that costs money out of my pocket) and to me it's worth every cent. It's a phenomenally powerful program.

Now what I don't like is that advanced features are extra (on top of a single seat license); like, certain toolpaths cost extra money. But so far, the amount of features in the single seat license version has been good to me.


I do the same, although I got it on sale for about $300. The specific features that are missing which I really wanted to be able to use are multi-axis tool paths. Autodesk seems to think that only "professional" users will have a 4th axis, which really isn't the case any more.

Likewise on the more advanced high speed tool paths, although I could mostly live without those.

The biggest problem for me with both of these features is that to get them you need to pay yet another subscription fee for an extension and also pay for "cloud credits" to use it which are yet more money and which also expire after a year whether you use them or not.

You can't just buy what you need and do without upgrades and patches and run it standalone like you can with Siemens NX (for example). You have to pay and keep paying or otherwise go through the effort to download everything stored in their cloud and move to another package.

I like how the software functions in general although it's less "pro grade" than NX or Solidworks. If they offered a stand alone version that stored data and processed things locally and had basic multi-axis support, I'd be quite happy with paying up to about $1000 for it as a one time cost and more to get support.

I hate getting locked into recurring costs that may change at the whim or need of the company supplying the product, especially if that company is as untrustworthy as Autodesk.


If only it had more free form (while mathematically exact, e.g. NURBS-based) drawing tools, similar to the NURBS-based tools in Rhino 3D [1], it would be a killer platform for a lot of 3D modelling.

[1] https://www.rhino3d.com/


I've been using FreeCAD for a few months now and haven't ran into any issues that couldn't be fixed by turning it off, and back on again.

Fusion360 is disgusting with their relentless marketing. My email was bombarded and I got 2 phone calls from sales people... Errr survey people...

User interface was super Intuitive after skimming a tutorial.

I'm no advanced user, but I've done basic CAD in Catia, nx, solid works, and probably a few more over the years. Heck I prefer FreeCAD for the simplicity.

If we need something FreeCAD can't do, I can get other software or outsource it.

It's extremely liberating to not be reliant on always rising prices.


I have very little experience with FreeCAD, but I used Solid Works years ago. I still can't understand why with FreeCAD the chamfering or "smoothing" the edges breaks the model. I thought chamfering should be easy task if it uses SDF's or something like it for solid modelling, but somehow it makes unwanted holes.


No commercial CAD uses SDFs. Fillets and chamfers are a had problem particularly where multiple edges meet.


ntopology uses SDFs. I believe its based on libfive.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: