FreeCAD
Every few months I forget that I hate FreeCAD and the reasons I hate FreeCAD and I got back to what is an analogy for an abusive relationship.
For the uninitiated, FreeCAD is a free, open-source general-purpose parametric 3D computer aided design (CAD) modeler with some building information modeling (BIM) tacked on. Also some computer numerical control (CNC) thrown in. Also some 2D drafting for good measure.
“What’s wrong with that?” you ask, you poor naive child you. “It’s free and it does everything!”
You’re right. And that is a part of the issue. It tries to do everything. And fails.
I’m gonna get a lot of flack for this, but look…I’ve been following FreeCAD since its initial release twenty-three years ago. So I’ve seen how its evolved over the last two decades. It started out rough. It’s still rough. It’s still prone to errors that make no sense even to the developers. And I honestly believe it to be a direct result of trying to make it an all in one package.
You have workbenches. Now, you would think these workbenches kinda flow together as they would in a shop. You have your bench that you rough out the design, then you take it to your shaping bench, then your sanding bench, and then your finishing bench. Sometimes you move back a few benches when you need to fix something or change something.
No, FreeCAD doesn’t like it when you do that. It would prefer you doing everything in one or two workbenches…else it decides to throw hands and give you every goddamn error it can think of. So if you want to do some parametric 3D modeling, you should stay in the Part Workbench….or is it the Part Design Workbench?
Ah, yes, the next issue. The naming conventions. So….which do YOU think you should use to design a part to use in a 3D assembly? The Part or the Part Design? If you said the later you would be wrong. It’s both! Or niether! Or only the one you like!
Part Workbench is strictly CSG style modeling. You make a shape, you extrude it, you use booleans to adjust it. The shapes you make are independant of one another and do not interact. Think Blender models.
Part Design on the other hand is your classic parametric step by step design. The one literally every other parametric 3D software uses. The part you make is culmulative, each step building on the previous.
So the issue? They do not play nice together.
Direct quote from the documentation under the Part and Part Design comparison:
Although not recommended for newcomers, it is possible to combine tools from Part workbench and PartDesign workbench, provided you know what you are doing. For example :
People get caught when they attempt to use some feature under the Body (rather than the Body itself) as one selection of a Part Workbench Boolean operation. This is a problem, because the selected feature does not represent THE complete solid.
In a sense, from a Part Workbench standpoint, the Body represents another primitive. So, using a Body (remember it is a proxy for the tip) and a Part Workbench object to do a Boolean is valid. But the resulting object is a Part Workbench object. And, thus PartDesign Workbench tools can’t be used on it any longer.
And, it can get even more complicated. If you create a new Body and drag the result from the previous paragraph into it, a BaseObject is created. And you can go off and use the PartDesign Workbench tools on it.
What…the hell. You gotta know advanced calculus to make sense of this mess.
To start with, call it Parametric Modeling not Part Design. Stop trying to sound different to everyone else, that’s what it is and it’ll cause less confusion for everyone. But even more to the point, why are you including a CSG modeling system in here in the first place? It’s well known among designers that mixing the two is a chore at best and its just easier to not bother.
That’s just one minor example. Try taking that model and using it in the Path CAM workbench. Oh yea…it’s not actually CNC it’s CAM. Because we can’t call it what it is, we have to call it what the end product is, I guess. Get ready for thousands of error messages yelling at you about things that do not relate to anything you’re setting up in the first place.
And this is the crux of this rant. I was doing something INCREDIBLY simple using the CAM workbench and the Part Workbench…and when it didn’t work I was told I should use the Part Workbench I should use the Part Design Workbench because the CAM workbench prefers models made there. Doesn’t mention that anywhere in the docs, mind you. In fact, it lists that workbench as one of the three you can use. And no I can’t just copy the model over, either, because as I said…workbenches don’t actually talk to one another. Once it’s a Part it’s a Part forever until you spend the six hours rebuilding it in Part Design. And then CAM will still screech at you because you maybe have a single constraint that it doesn’t like, even though Part Design had no issue with it.
All this adds up to a wasted day of trying to get a model I can run on the company CNC and failing miserably yet again and just crawling back to Fusion and begging for forgiveness. I hate Fusion as well…Autodesk decided to pull the shady ‘it’s free until it isn’t’ bullshit on us with that one. But at least I can build a quick model and have it on the table in under an hour.
I will inevitably attempt using FreeCAD again, and inevitably throw my hands up in disgust at how difficult it is when it doesn’t have to be. The UI alone makes me feel like I’m using someone’s sophomore college programming project. I never did look for branches to see if someone’s improved any of that, but considering just setting a vertical constraint can break the entire project and crash the program I don’t think it would matter.